export function renderCalendarHTML(calendar: any) {
const css = calendar.customCSS || calendar.defaultCSS;
const monthName = calendar.months[calendar.monthToShow];
const year = calendar.yearToShow;
return `
${Array.from(
{ length: calendar.WEEKS_IN_MONTH * calendar.DAYS_IN_WEEK },
(_, i) => {
const day = calendar.daySlots[i];
const hasEvents =
day &&
calendar.events.some(
(event: Record
) =>
event.day === day &&
event.month === calendar.monthToShow &&
event.year === calendar.yearToShow,
);
const isOtherMonth = !day || day < 1 || day > 31;
const isSelected =
calendar.selectedDay === day &&
calendar.selectedMonth === calendar.monthToShow &&
calendar.selectedYear === calendar.yearToShow;
const isToday =
day &&
calendar.todayDay === day &&
calendar.todayMonth === calendar.monthToShow &&
calendar.todayYear === calendar.yearToShow;
let classes = "calendar-day";
if (isOtherMonth) classes += " other-month";
if (isSelected) classes += " selected";
if (isToday) classes += " today";
if (hasEvents) classes += " has-events";
return `${day || ""}
`;
},
).join("")}
`;
}