`;
});
}
// --- Findings & Recs ---
function trgAddFinding() {
const val = document.getElementById('trg-in-finding').value.trim();
if (val) {
trgData.findings.push(val);
document.getElementById('trg-in-finding').value = '';
trgRenderFindings();
trgUpdatePreview();
}
}
function trgRemoveFinding(idx) {
trgData.findings.splice(idx, 1);
trgRenderFindings();
trgUpdatePreview();
}
function trgRenderFindings() {
const list = document.getElementById('trg-list-findings');
list.innerHTML = '';
trgData.findings.forEach((f, idx) => {
list.innerHTML += `
${f}
`;
});
}
function trgAddRec() {
const item = document.getElementById('trg-in-rec').value.trim();
const priority = document.getElementById('trg-in-rec-pri').value;
if (item) {
trgData.recs.push({ item, priority });
document.getElementById('trg-in-rec').value = '';
trgRenderRecs();
trgUpdatePreview();
}
}
function trgRemoveRec(idx) {
trgData.recs.splice(idx, 1);
trgRenderRecs();
trgUpdatePreview();
}
function trgRenderRecs() {
const list = document.getElementById('trg-list-recs');
list.innerHTML = '';
trgData.recs.forEach((r, idx) => {
list.innerHTML += `
${r.item} ${r.priority}
`;
});
}
// --- Preview Render ---
function trgUpdatePreview() {
// Header
document.getElementById('trg-prev-title').innerText = trgData.meta.title;
document.getElementById('trg-prev-id').innerText = trgData.meta.id;
document.getElementById('trg-prev-date').innerText = trgData.meta.date;
document.getElementById('trg-prev-author').innerText = trgData.meta.author;
document.getElementById('trg-prev-dept').innerText = trgData.meta.dept;
document.getElementById('trg-prev-summary').innerText = trgData.meta.summary;
// Body
const bodyContainer = document.getElementById('trg-prev-body-container');
bodyContainer.innerHTML = '';
trgData.sections.forEach((sec, idx) => {
bodyContainer.innerHTML += `
`;
});
// Findings
const findList = document.getElementById('trg-prev-findings');
findList.innerHTML = '';
trgData.findings.forEach(f => findList.innerHTML += `${f} `);
// Recs
const recTable = document.getElementById('trg-prev-recs');
recTable.innerHTML = '';
trgData.recs.forEach((r, idx) => {
let color = r.priority === 'High' ? 'text-red-600 bg-red-50' : (r.priority === 'Medium' ? 'text-orange-600 bg-orange-50' : 'text-green-600 bg-green-50');
recTable.innerHTML += `
${idx + 1}
${r.item}
${r.priority}
`;
});
}
// --- PDF Export ---
function trgGeneratePDF() {
const element = document.getElementById('trg-doc-paper');
const btn = document.getElementById('trg-btn-download');
const originalText = btn.innerHTML;
trgSwitchTab('trg-preview');
btn.innerHTML = ' Generating PDF...';
document.body.classList.add('generating-pdf');
const opt = {
margin: [15, 15, 15, 15],
filename: `${trgData.meta.id}_${trgData.meta.title.replace(/[^a-z0-9]/gi, '_')}.pdf`,
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
pagebreak: { mode: ['avoid-all', 'css', 'legacy'] }
};
html2pdf().set(opt).from(element).save().then(() => {
btn.innerHTML = originalText;
document.body.classList.remove('generating-pdf');
});
}
${idx + 2}. ${sec.title}
${sec.content}
