`;
elements.resultsPlaceholder.classList.remove('hidden');
elements.resultsContainer.classList.add('hidden');
}
function handleCopy() {
const textToCopy = elements.optimizedAnswer.textContent;
if (!textToCopy) return;
navigator.clipboard.writeText(textToCopy).then(() => {
const originalText = elements.copyBtn.innerHTML;
elements.copyBtn.innerHTML = `Copied!`;
setTimeout(() => {
elements.copyBtn.innerHTML = originalText;
}, 2000);
}).catch(err => {
console.error('Failed to copy text: ', err);
});
}
// --- PDF Generation ---
function generatePdf() {
if (!optimizationResult) return;
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
doc.setFont('helvetica', 'bold');
doc.setFontSize(18);
doc.text("Featured Snippet Optimization 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);
doc.setFont('helvetica', 'bold');
doc.setFontSize(12);
doc.text("Target Question:", 14, 45);
doc.setFont('helvetica', 'normal');
doc.setFontSize(10);
doc.text(originalContent.question, 14, 52);
doc.setFont('helvetica', 'bold');
doc.setFontSize(12);
doc.text("Optimized Answer:", 14, 62);
doc.setFont('helvetica', 'normal');
doc.setFontSize(10);
const answerLines = doc.splitTextToSize(optimizationResult.optimizedAnswer, doc.internal.pageSize.getWidth() - 28);
doc.text(answerLines, 14, 69);
const finalY = 69 + (answerLines.length * 5);
const tableBody = optimizationResult.optimizations.map(opt => [opt]);
doc.autoTable({
startY: finalY + 10,
head: [['Key Optimizations Made']],
body: tableBody,
theme: 'striped',
headStyles: { fillColor: '#0ea5e9' }
});
doc.save(`snippet-optimization-report.pdf`);
}
initialize();
});
