html`${expandedShifts.map(({start, end, minTideFeet, minTideTime, people}) => {
let lowestTide = '';
if (minTide !== Infinity) {
lowestTide = `Lowest tide is ${minTideFeet}ft at ${minTideTime.toLocaleTimeString("en-US", {timeZone: "UTC"})} so `;
}
let day = start.toISOString().split("T")[0];
return `<h3>${start.toLocaleDateString("en-US", {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
timeZone: "UTC"
})}</h3><p>Shift from ${start.toLocaleTimeString("en-US", {
timeZone: "UTC"
})} to ${end.toLocaleTimeString("en-US", {
timeZone: "UTC"
})} (${displayDurationInMinutes(start, end)})<br>${
predictionForDate(day).innerHTML || ""
}${lowestTide} the shift needs ${people} people</p>`;
}).join("") || "There are no shifts, try playing with the sliders"}`