1. Core Affirmation
2. Goal Areas (List 3-5 goals per area)
My Vision Board
User: Alex Sample | Timeline: Next 12 Months
Career & Finance
...
Health & Fitness
...
Relationships & Community
...
I am abundant, focused, and healthy.
Personal Growth & Skills
...
Travel & Environment
...
Custom Area
Define your own focus area here.
Required Action Steps
List the key habits required to achieve these goals.
Document Metadata
User: | Timeline:
Generated by Vision Board Template Generator. Goal: Visualize. Achieve.
• ${g.trim()}
`).join(''); } function updateDoc() { // 1. Map Text Areas (using innerHTML for formatted lists) document.getElementById('out-motto').innerText = document.getElementById('ctrl-motto').value || 'No motto defined.'; document.getElementById('out-career').innerHTML = formatGoals(document.getElementById('ctrl-career').value); document.getElementById('out-health').innerHTML = formatGoals(document.getElementById('ctrl-health').value); document.getElementById('out-relationships').innerHTML = formatGoals(document.getElementById('ctrl-relationships').value); document.getElementById('out-growth').innerHTML = formatGoals(document.getElementById('ctrl-growth').value); document.getElementById('out-travel').innerHTML = formatGoals(document.getElementById('ctrl-travel').value); } // --- PDF Export --- function generatePDF() { const template = document.getElementById('pdf-template'); const pdfBoardGrid = document.getElementById('pdf-board-grid'); // 1. Transfer Metadata document.getElementById('pdf-title').innerText = document.getElementById('cfg-title').value || 'My Vision Board'; document.getElementById('pdf-user').innerText = document.getElementById('cfg-user').value || 'User Name'; document.getElementById('pdf-timeline').innerText = document.getElementById('cfg-timeline').value || 'Next 12 Months'; // 2. Build PDF Content pdfBoardGrid.innerHTML = ''; const sections = [ { title: 'Career & Finance', id: 'ctrl-career' }, { title: 'Health & Fitness', id: 'ctrl-health' }, { title: 'Relationships & Community', id: 'ctrl-relationships' }, { title: 'Custom Area', goal: 'Define your own focus area here.', default: true, col: 1, row: 2 }, { title: 'Personal Growth & Skills', id: 'ctrl-growth' }, { title: 'Travel & Environment', id: 'ctrl-travel' }, { title: 'Required Action Steps', goal: 'List the key habits required to achieve these goals.', default: true, col: 3, row: 2 } ]; // Central Motto Cell pdfBoardGrid.innerHTML += `
${document.getElementById('ctrl-motto').value || 'CORE MOTTO'}
`;
sections.forEach(sec => {
const goalText = sec.default
? sec.goal
: (document.getElementById(sec.id).value.trim() || 'Paste images or write key goals here.');
const cell = document.createElement('div');
cell.className = 'pdf-cell';
cell.innerHTML = `
${sec.title.toUpperCase()}
${sec.default ? sec.goal : 'GOALS/AFFIRMATIONS'}
${goalText}
_________________________
`;
if (sec.col && sec.row) {
cell.style.gridColumn = `${sec.col} / ${sec.col + 1}`;
cell.style.gridRow = `${sec.row} / ${sec.row + 1}`;
}
pdfBoardGrid.appendChild(cell);
});
// 3. Generate PDF
template.style.display = 'block';
const opt = {
margin: 0.3,
filename: 'Vision_Board_Template.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'letter', orientation: 'landscape' }
};
html2pdf().set(opt).from(template).save().then(() => {
template.style.display = 'none';
});
}
return {
switchTab,
updateMeta,
updateDoc,
generatePDF
};
})();
