`;
});
container.innerHTML = html;
}
// --- Plan Compilation ---
function compilePlan() {
const container = document.getElementById('plan-summary');
// 1. Routine
let routineHtml = '
`;
const planSummaryClone = document.getElementById('plan-summary').cloneNode(true);
pdfWrapper.appendChild(planSummaryClone);
document.body.appendChild(pdfWrapper);
try {
const canvas = await html2canvas(pdfWrapper, { scale: 2, useCORS: true, logging: false });
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF({ orientation: 'portrait', unit: 'px', format: 'a4' });
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = pdf.internal.pageSize.getHeight();
const imgWidth = canvas.width;
const imgHeight = canvas.height;
const ratio = imgWidth / imgHeight;
let finalImgWidth = pdfWidth;
let finalImgHeight = pdfWidth / ratio;
if (finalImgHeight > pdfHeight) {
finalImgHeight = pdfHeight;
finalImgWidth = pdfHeight * ratio;
}
pdf.addImage(imgData, 'PNG', 0, 0, finalImgWidth, finalImgHeight);
pdf.save('Remote-Wellness-Plan.pdf');
} catch (error) {
console.error("PDF Generation Error:", error);
} finally {
document.body.removeChild(pdfWrapper);
downloadPdfBtn.textContent = 'Download PDF Plan';
downloadPdfBtn.disabled = false;
}
}
// --- Event Listeners ---
downloadPdfBtn.addEventListener('click', generatePDF);
// --- Initial Call ---
initializeRoutinePlanner();
initializeGoals();
showTab(0);
});
Your Daily Schedule
';
const scheduleSelects = document.querySelectorAll('#schedule-builder select');
let activityCount = 0;
scheduleSelects.forEach((select, index) => {
const activityType = activityTypes.find(a => a.type === select.value);
if (activityType) {
activityCount++;
const isLast = index === scheduleSelects.length - 1;
routineHtml += `
';
// 2. Goals
let goalsHtml = '
${select.dataset.hour}
${activityType.label}
`;
}
});
if (activityCount === 0) {
routineHtml += 'No activities scheduled.
'; } routineHtml += 'Your Wellness Goals & Tips
';
const selectedGoals = document.querySelectorAll('#goals-checklist input:checked');
if (selectedGoals.length > 0) {
selectedGoals.forEach(goalInput => {
const goal = wellnessGoals[goalInput.dataset.goalKey];
goalsHtml += ``;
});
} else {
goalsHtml += '
';
container.innerHTML = routineHtml + goalsHtml;
}
// --- PDF Generation ---
async function generatePDF() {
const { jsPDF } = window.jspdf;
const originalButtonText = downloadPdfBtn.textContent;
downloadPdfBtn.textContent = 'Generating...';
downloadPdfBtn.disabled = true;
const pdfWrapper = document.createElement('div');
// Style and append clone to be rendered off-screen
pdfWrapper.style.position = 'absolute';
pdfWrapper.style.left = '-9999px';
pdfWrapper.style.top = '0';
pdfWrapper.style.width = '800px';
pdfWrapper.style.backgroundColor = 'white';
pdfWrapper.className = 'p-8';
pdfWrapper.innerHTML = `
${goal.title}: ${goal.tip}
No goals selected.
'; } goalsHtml += 'Remote Work Wellness Plan
${new Date().toLocaleDateString('en-US', { dateStyle: 'long' })}
