`;
});
}
// Element Management
function tawgAddElement() {
const element = document.getElementById('tawg-in-element-name').value.trim();
const example = document.getElementById('tawg-in-element-example').value.trim();
const analysis = document.getElementById('tawg-in-element-analysis').value.trim();
if (element && example) {
tawgData.elements.push({ id: Date.now(), element, example, analysis });
document.getElementById('tawg-in-element-name').value = '';
document.getElementById('tawg-in-element-example').value = '';
document.getElementById('tawg-in-element-analysis').value = '';
tawgRenderAllLists();
}
}
function tawgRemoveElement(id) {
tawgData.elements = tawgData.elements.filter(e => e.id !== id);
tawgRenderAllLists();
}
function tawgRenderElementList() {
const list = document.getElementById('tawg-list-elements');
list.innerHTML = '';
if (tawgData.elements.length === 0) {
list.innerHTML = 'No elements defined. ';
return;
}
tawgData.elements.forEach(e => {
list.innerHTML += `
`;
});
}
// --- Preview Renderer ---
function tawgUpdatePreview() {
// Header
document.getElementById('tawg-prev-title').innerText = `Theme Analysis: ${tawgData.meta.textTitle}`;
document.getElementById('tawg-prev-course').innerText = tawgData.meta.course;
document.getElementById('tawg-prev-reviewer').innerText = tawgData.meta.reviewer;
document.getElementById('tawg-prev-author').innerText = tawgData.meta.author;
// Theme Table
const themeBody = document.getElementById('tawg-prev-themes-body');
themeBody.innerHTML = '';
if (tawgData.themes.length === 0) {
themeBody.innerHTML = 'No core themes defined. ';
} else {
tawgData.themes.forEach(t => {
themeBody.innerHTML += `
${t.theme}
${t.evidence}
${t.connection}
`;
});
}
// Elements Cards
const elementContainer = document.getElementById('tawg-prev-elements-container');
elementContainer.innerHTML = '';
if (tawgData.elements.length === 0) {
elementContainer.innerHTML = '
`;
});
}
// Summary
document.getElementById('tawg-prev-thesis').innerText = tawgData.summary.thesis || "No thesis provided.";
document.getElementById('tawg-prev-conclusion').innerText = tawgData.summary.conclusion || "No concluding interpretation provided.";
}
// --- PDF Generation ---
function tawgGeneratePDF() {
const element = document.getElementById('tawg-doc-paper');
const btn = document.getElementById('tawg-btn-download');
const originalText = btn.innerHTML;
tawgSwitchTab('tawg-preview');
btn.innerHTML = ' Generating PDF...';
document.body.classList.add('generating-pdf');
const opt = {
margin: [10, 10, 10, 10],
filename: `Theme_Analysis_${tawgData.meta.textTitle.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');
});
}
${e.element}
Example: ${e.example}
No literary elements analyzed.
';
} else {
tawgData.elements.forEach(e => {
elementContainer.innerHTML += `
${e.element}
"${e.example}"
${e.analysis}
