`;
elements.pdf.resultsContainer.insertAdjacentHTML('beforeend', pdfCard);
}
};
// --- PDF Generation Function ---
const generatePdf = () => {
const { jsPDF } = window.jspdf;
const pdfContent = document.getElementById('pdfResult');
elements.downloadPdfBtn.disabled = true;
elements.downloadPdfBtn.innerHTML = 'Generating...';
// Update PDF info
elements.pdf.date.textContent = `Generated on: ${new Date().toLocaleDateString('en-US')}`;
elements.pdf.location.textContent = `${elements.city.value}, ${elements.state.value}`;
elements.pdf.propertyType.textContent = elements.propertyType.value;
html2canvas(pdfContent, { scale: 2, backgroundColor: '#ffffff' }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' });
const pageWidth = pdf.internal.pageSize.getWidth();
const margin = 40;
const contentWidth = pageWidth - margin * 2;
const contentHeight = (contentWidth / canvas.width) * canvas.height;
pdf.addImage(imgData, 'PNG', margin, margin, contentWidth, contentHeight);
pdf.save('Off-Market_Leads.pdf');
}).catch(err => {
console.error("Error generating PDF:", err);
}).finally(() => {
elements.downloadPdfBtn.disabled = false;
elements.downloadPdfBtn.innerHTML = 'Download List';
});
};
// --- Event Listeners ---
elements.findDealsBtn.addEventListener('click', findDeals);
elements.downloadPdfBtn.addEventListener('click', generatePdf);
// --- Initial Load ---
findDeals();
});
