`;
});
elements.resultsBreakdown.innerHTML = breakdownHtml;
}
function downloadPdf() {
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
doc.setFont('helvetica', 'bold');
doc.setFontSize(18);
doc.text(`Quiz Results: ${elements.quizTopic.value}`, doc.internal.pageSize.getWidth() / 2, 20, { align: 'center' });
doc.setFontSize(14);
doc.text(`Final Score: ${elements.scoreDisplay.textContent}`, doc.internal.pageSize.getWidth() / 2, 28, { align: 'center' });
const tableBody = lastQuizData.questions.map((q, index) => {
const isCorrect = userAnswers[index] === q.correctAnswer;
return [
index + 1,
q.question,
userAnswers[index],
q.correctAnswer,
isCorrect ? 'Correct' : 'Incorrect'
];
});
doc.autoTable({
startY: 40,
head: [['#', 'Question', 'Your Answer', 'Correct Answer', 'Result']],
body: tableBody,
theme: 'grid',
headStyles: { fillColor: [79, 70, 229] }
});
doc.save('quiz-results.pdf');
}
// --- Event Listeners ---
elements.btnGenerate.addEventListener('click', generateQuiz);
elements.btnSubmitQuiz.addEventListener('click', submitQuiz);
elements.btnRestart.addEventListener('click', () => goToStep(1));
elements.btnDownloadPdf.addEventListener('click', downloadPdf);
});
