"use strict"; /** * PDF export v4: same letter layout as v3, with practice details: full-width specialty row, * four fields in a 2×2 grid below; hero metrics stacked vertically (primary on top) beside inputs. */ (function initRoiPdfExport() { const ROOT_SELECTOR = ".roi_component"; const EXPORT_BUTTON_SELECTOR = '[data-roi="export-pdf"]'; const INPUT_SELECTORS = { specialty: '[data-roi="specialty"]', revenuePerYear: '[data-roi="revenue-per-year"]', visitsPerYear: '[data-roi="visits-per-year"]', visitsPerHour: '[data-roi="visits-per-hour"]', editingTime: '[data-roi="editing-time"]', }; const DEFAULT_PDF_LOGO_URL = "https://cdn.prod.website-files.com/68ae651227866af1d1340685/68ae651227866af1d13406cc_ZyDoc2025-Logo_Primary.svg"; const OUTPUT_SELECTORS = { totalROI: '[data-roi-out="total-roi"]', revenueUpliftPerYear: '[data-roi-out="revenue-uplift-per-year"]', chargePerEncounter: '[data-roi-out="charge-per-encounter"]', clinicianPerMinute: '[data-roi-out="clinician-per-minute"]', editingCostNoZyDoc: '[data-roi-out="editing-cost-no-zydoc"]', zydocAutomatedCost: '[data-roi-out="zydoc-automated-cost"]', /** Static display in Webflow (e.g. $0.00); read for PDF export. */ zydocAutoCost: '[data-roi-out="zydoc-auto-free"]', ehrIntegrationCost: '[data-roi-out="ehr-integration-cost"]', zydocStatCost: '[data-roi-out="zydoc-stat-cost"]', savingsPerEncounter: '[data-roi-out="savings-per-encounter"]', savingsPerYear: '[data-roi-out="savings-per-year"]', zydocCostPerYear: '[data-roi-out="zydoc-cost-per-year"]', opportunityCost: '[data-roi-out="opportunity-cost"]', timeSavedPerEncounter: '[data-roi-out="time-saved-per-encounter"]', additionalVisitsPerYear: '[data-roi-out="additional-visits-per-year"]', patientsPerDayIncrease: '[data-roi-out="patients-per-day-increase"]', salesSummary: '[data-roi-out="sales-summary"]', /** Legal / fine print; authored in Webflow, read for PDF only. */ disclaimerText: '[data-roi-out="disclaimer-text"]', }; const SUBHEAD_COST = "COST BREAKDOWN PER ENCOUNTER"; const SUBHEAD_KPI = "REVENUE UPLIFT & PRACTICE KPIS (ZYDOC STAT)"; function getInputValue(root, selector) { const node = root.querySelector(selector); if (!node) { return ""; } return "value" in node ? String(node.value || "").trim() : String(node.textContent || "").trim(); } /** For `