`;
}
elements.resultsPlaceholder.classList.add('hidden');
elements.resultsContainer.classList.remove('hidden');
}
function setLoadingState(isLoading) {
elements.convertBtn.disabled = isLoading;
if (isLoading) {
elements.convertBtn.innerHTML = `Converting...`;
elements.resultsContainer.classList.add('hidden');
elements.resultsPlaceholder.classList.remove('hidden');
elements.resultsPlaceholder.innerHTML = ``;
} else {
elements.convertBtn.innerHTML = `Convert to Active`;
}
}
function displayError(message) {
elements.resultsPlaceholder.innerHTML = ``;
elements.resultsPlaceholder.classList.remove('hidden');
elements.resultsContainer.classList.add('hidden');
}
// --- PDF Generation ---
function generatePdf() {
if (!analysisResults || !analysisResults.conversions || analysisResults.conversions.length === 0) return;
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
doc.setFont('helvetica', 'bold');
doc.setFontSize(18);
doc.text("Passive-to-Active Voice Report", doc.internal.pageSize.getWidth() / 2, 20, { align: 'center' });
doc.setFontSize(11);
doc.setTextColor(100);
doc.text(`Generated on: ${new Date().toLocaleDateString('en-US')}`, 14, 30);
const tableBody = analysisResults.conversions.map(c => [
c.passive,
c.active
]);
doc.autoTable({
startY: 35,
head: [['Original Passive Sentence', 'Converted Active Sentence']],
body: tableBody,
theme: 'grid'
});
doc.save(`passive-to-active-report.pdf`);
}
initialize();
});
Rewriting Sentences...
Conversion Failed
${message}
