Agility Test Timer

Agility Test Timer

00:00.00

Results

Press 'Lap' to record times.

${formatTime(Math.max(...laps))}

This report was generated for performance tracking purposes. For official timing, please use certified equipment.

`; pdfContent.style.position = 'absolute'; pdfContent.style.left = '-9999px'; pdfContent.classList.remove('hidden'); try { const canvas = await html2canvas(pdfContent.firstElementChild, { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'portrait', unit: 'in', format: 'letter' }); pdf.addImage(imgData, 'PNG', 0, 0, pdf.internal.pageSize.getWidth(), pdf.internal.pageSize.getHeight()); pdf.save('Agility_Test_Results.pdf'); } catch (error) { console.error("Error generating PDF:", error); statusMessage.textContent = "An error occurred during PDF creation."; statusMessage.className = 'h-6 mt-2 text-sm font-medium text-red-600'; } finally { // Clear status message after a delay setTimeout(() => { statusMessage.textContent = ''; }, 4000); pdfContent.classList.add('hidden'); pdfContent.innerHTML = ''; downloadPdfBtn.disabled = false; } }; // --- INITIALIZATION --- updateButtonStates(); });
Scroll to Top