`;
});
html += '
';
getElem('pdf-output').innerHTML = html;
const { jsPDF } = window.jspdf;
html2canvas(getElem('pdf-output'), { scale: 2 }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF({ orientation: 'p', unit: 'px', format: 'a4' });
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
pdf.save(`Schedule_${dateStr}.pdf`);
});
};
// --- Event Listeners & Initial Load ---
tabBtns.forEach((btn, i) => btn.addEventListener('click', () => changeTab(i + 1)));
getElem('prev-month-btn').addEventListener('click', () => { currentDate.setMonth(currentDate.getMonth() - 1); renderCalendar(); });
getElem('next-month-btn').addEventListener('click', () => { currentDate.setMonth(currentDate.getMonth() + 1); renderCalendar(); });
getElem('save-config-btn').addEventListener('click', saveConfig);
getElem('cancel-btn').addEventListener('click', closeBookingModal);
getElem('download-btn').addEventListener('click', downloadPDF);
const daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
getElem('available-days').innerHTML = daysOfWeek.map((day, i) => `
`).join('');
saveConfig();
renderCalendar();
changeTab(1);
});
