Business Mergers Compliance Risk Dashboard

Business Mergers Compliance Risk Dashboard

Assess, track, and report on compliance risks for your M&A transactions.

Overall Risk Score

75

High Risk

Transaction Value

$150.0M

Compliance Progress

25%

Risk by Category

High Priority Risks

${item.text}

${item.category}

`; }); } else { highRiskList.innerHTML = `
No high-priority risks identified.
`; } // Update Chart const ctx = document.getElementById('risk-breakdown-chart').getContext('2d'); const chartData = { labels: Object.keys(categoryScores), datasets: [{ label: 'Risk Score', data: Object.values(categoryScores).map(cat => cat.max > 0 ? (cat.score / cat.max) * 100 : 0), backgroundColor: ['#ef4444', '#f97316', '#eab308', '#22c55e', '#3b82f6'], borderColor: '#ffffff', borderWidth: 2, }] }; if (riskChart) { riskChart.data = chartData; riskChart.update(); } else { riskChart = new Chart(ctx, { type: 'doughnut', data: chartData, options: { responsive: true, plugins: { legend: { position: 'top', }, tooltip: { callbacks: { label: function(context) { return `${context.label}: ${context.raw.toFixed(1)}% Risk`; } } } } } }); } } async function downloadPDF() { downloadPdfButton.disabled = true; pdfLoadingMessage.classList.remove('hidden'); // Temporarily clone and prepare content for PDF const pdfContainer = document.getElementById('pdf-clone-container'); const dashboardContent = document.getElementById('dashboard-content').cloneNode(true); // Create a title element for the PDF const pdfTitle = document.createElement('h2'); pdfTitle.id = 'pdf-title-clone'; pdfTitle.textContent = 'Business Mergers Compliance Risk Dashboard'; pdfContainer.innerHTML = ''; // Clear previous pdfContainer.appendChild(pdfTitle); pdfContainer.appendChild(dashboardContent); pdfContainer.style.display = 'block'; // Ensure chart is rendered as an image for PDF const chartCanvas = dashboardContent.querySelector('#risk-breakdown-chart'); const chartImage = new Image(); chartImage.src = riskChart.toBase64Image(); // Wait for image to load before replacing canvas await new Promise(resolve => chartImage.onload = resolve); chartCanvas.parentNode.replaceChild(chartImage, chartCanvas); try { const canvas = await html2canvas(pdfContainer, { scale: 2, useCORS: true }); const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'px', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = (canvas.height * pdfWidth) / canvas.width; pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight); pdf.save('Compliance-Risk-Dashboard.pdf'); } catch (error) { console.error("Error generating PDF:", error); alert("An error occurred while generating the PDF."); } finally { downloadPdfButton.disabled = false; pdfLoadingMessage.classList.add('hidden'); pdfContainer.style.display = 'none'; // Hide the clone container } } // Event Listeners prevButton.addEventListener('click', () => navigateTabs(-1)); nextButton.addEventListener('click', () => navigateTabs(1)); downloadPdfButton.addEventListener('click', downloadPDF); tabButtons.forEach(button => { button.addEventListener('click', () => { showTab(parseInt(button.dataset.tab, 10)); }); }); // Update dashboard on any input change document.getElementById('merger-tool-container').addEventListener('change', (e) => { if (e.target.matches('.checklist-item, #transaction-value')) { if (currentTab === 1) { // Only update if dashboard is visible updateDashboard(); } } }); // Initial setup createChecklist(); showTab(1); });
Scroll to Top