1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/html2pdf-D8q-XLSa.js","assets/vendor-react-DfYK9BWz.js"])))=>i.map(i=>d[i]); 2import{_ as e}from"./index-BYKmgAYP.js";import"./vendor-react-DfYK9BWz.js";import"./vendor-supabase-BdSyXXfB.js";import"./vendor-lucide-CS-yqt5y.js";async function t(t){const a=function({stats:e,distribution:t,routingBreakdown:a,scoresTimeline:n,behavioralAverages:i,benchmark:o,bluffFlagRate:s,topCandidates:r,timeRange:l}){const d=(new Date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),c=Math.max(...(t||[]).map(e=>e.count),1),p=(t||[]).map(e=>{const t=Math.round(e.count/c*100),a=e.bin>=80?"#10b981":e.bin>=60?"#6366f1":e.bin>=40?"#f59e0b":"#ef4444";return`<div class="bar-row"><div class="bar-label">${e.label}</div><div class="bar-track"><div class="bar-fill" style="width:${t}%;background:${a}"></div><div class="bar-value">${e.count}</div></div></div>`}).join(""),b=i?[{label:"Engagement",value:i.avgEngagement||0,color:"#6366f1"},{label:"Confidence",value:i.avgConfidence||0,color:"#10b981"},{label:"Clarity",value:i.avgClarity||0,color:"#3b82f6"},{label:"Interest",value:i.avgInterest||0,color:"#06b6d4"},{label:"Stress",value:i.avgStress||0,color:"#f59e0b"}].map(e=>`<div class="bar-row"><div class="bar-label">${e.label}</div><div class="bar-track"><div class="bar-fill" style="width:${e.value}%;background:${e.color}"></div><div class="bar-value">${e.value}%</div></div></div>`).join(""):'<p style="color:#94a3b8;text-align:center;padding:12px;">No behavioral data yet</p>',g=o?.company&&o?.platform?[{label:"Combined",c:o.company.combined_score,p:o.platform.combined_score},{label:"Interview",c:o.company.interview_score,p:o.platform.interview_score},{label:"Engagement",c:o.company.engagement,p:o.platform.engagement},{label:"Confidence",c:o.company.confidence,p:o.platform.confidence},{label:"Clarity",c:o.company.clarity,p:o.platform.clarity}].map(e=>{const t=((e.c||0)-(e.p||0)).toFixed(1),a=t>0;return`<div class="bench-card">\n <div class="bench-label">${e.label}</div>\n <div class="bench-row"><span class="bench-company">You: ${e.c||0}</span><span class="bench-platform">Avg: ${e.p||0}</span></div>\n <div class="bench-delta ${a?"bench-above":"bench-below"}">${a?"+":""}${t}</div>\n </div>`}).join(""):"",f=(r||[]).slice(0,10).map((e,t)=>{const a=e.combined_score>=80?"score-high":e.combined_score>=60?"score-mid":"score-low";return`<tr>\n <td style="font-weight:700">${t+1}. ${e.name||"Unknown"}</td>\n <td>${e.job_title||"â"}</td>\n <td><span class="score-badge ${a}">${e.combined_score||0}</span></td>\n <td>${e.routing_category||"â"}</td>\n <td>${e.interview_at?new Date(e.interview_at).toLocaleDateString("en-US",{month:"short",day:"numeric"}):"â"}</td>\n </tr>`}).join("");return`<!DOCTYPE html>\n<html><head><style>\n * { margin:0; padding:0; box-sizing:border-box; }\n body { font-family: -apple-system, 'Segoe UI', Arial, sans-serif; color:#1e293b; background:#fff; font-size:12px; }\n .page { max-width:820px; margin:0 auto; padding:40px; }\n\n .header { display:flex; justify-content:space-between; align-items:center; border-bottom:3px solid #6366f1; padding-bottom:16px; margin-bottom:24px; }\n .logo { display:flex; align-items:center; gap:10px; }\n .logo-mark { width:36px; height:36px; background:linear-gradient(135deg,#6366f1,#4f46e5); border-radius:10px; display:flex; align-items:center; justify-content:center; color:white; font-size:18px; font-weight:900; }\n .logo-text { font-size:20px; font-weight:900; color:#0f172a; letter-spacing:-0.5px; }\n .meta { text-align:right; }\n .meta-title { font-size:10px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:#6366f1; }\n .meta-info { font-size:10px; color:#94a3b8; margin-top:3px; line-height:1.5; }\n\n h2 { font-size:15px; font-weight:800; color:#0f172a; margin:24px 0 12px; display:flex; align-items:center; gap:8px; }\n h2 .icon { width:22px; height:22px; background:#ede9fe; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:12px; }\n\n .stats-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-bottom:24px; }\n .stat-box { background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:14px; text-align:center; }\n .stat-value { font-size:22px; font-weight:900; color:#0f172a; }\n .stat-label { font-size:10px; color:#64748b; margin-top:2px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; }\n\n .bar-chart { margin-bottom:20px; }\n .bar-row { display:flex; align-items:center; margin-bottom:6px; }\n .bar-label { width:90px; font-size:10px; color:#64748b; font-weight:600; flex-shrink:0; }\n .bar-track { flex:1; height:16px; background:#f1f5f9; border-radius:8px; overflow:hidden; position:relative; }\n .bar-fill { height:100%; border-radius:8px; transition:width 0.3s; }\n .bar-value { position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:9px; font-weight:800; color:#0f172a; }\n\n .benchmark-grid { display:grid; grid-template-columns:repeat(5, 1fr); gap:8px; margin-bottom:20px; }\n .bench-card { background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:10px; text-align:center; }\n .bench-label { font-size:9px; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; }\n .bench-row { display:flex; justify-content:space-between; font-size:10px; margin-bottom:3px; }\n .bench-company { color:#6366f1; font-weight:700; }\n .bench-platform { color:#94a3b8; font-weight:600; }\n .bench-delta { font-size:9px; font-weight:800; margin-top:4px; padding:2px 6px; border-radius:10px; display:inline-block; }\n .bench-above { background:#ecfdf5; color:#059669; }\n .bench-below { background:#fffbeb; color:#d97706; }\n\n table { width:100%; border-collapse:collapse; margin-bottom:20px; }\n th { background:#f8fafc; text-align:left; padding:8px 10px; font-size:9px; font-weight:700; color:#64748b; text-transform:uppercase; letter-spacing:0.5px; border-bottom:2px solid #e2e8f0; }\n td { padding:7px 10px; font-size:11px; color:#334155; border-bottom:1px solid #f1f5f9; }\n .score-badge { display:inline-block; padding:2px 8px; border-radius:20px; font-weight:800; font-size:10px; }\n .score-high { background:#ecfdf5; color:#059669; }\n .score-mid { background:#fffbeb; color:#d97706; }\n .score-low { background:#fef2f2;
2 color:#dc2626; }\n\n .footer { margin-top:32px; padding-top:16px; border-top:2px solid #f1f5f9; text-align:center; }\n .footer p { font-size:9px; color:#94a3b8; line-height:1.8; }\n .footer .brand { color:#6366f1; font-weight:700; }\n </style></head>\n<body><div class="page">\n\n \x3c!-- Header --\x3e\n <div class="header">\n <div class="logo">\n <div class="logo-mark">H</div>\n <div class="logo-text">HireAuto</div>\n </div>\n <div class="meta">\n <div class="meta-title">Hiring Analytics Report</div>\n <div class="meta-info">${d} · Last ${l} days</div>\n </div>\n </div>\n\n \x3c!-- Stats Grid --\x3e\n <div class="stats-grid">\n <div class="stat-box"><div class="stat-value">${e?.candidatesThisMonth??0}</div><div class="stat-label">Applications (Month)</div></div>\n <div class="stat-box"><div class="stat-value">${e?.avgCombinedScore??0}</div><div class="stat-label">Avg Combined Score</div></div>\n <div class="stat-box"><div class="stat-value">${e?.shortlistRate??0}%</div><div class="stat-label">Shortlist Rate</div></div>\n <div class="stat-box"><div class="stat-value">${e?.interviewsThisMonth??0}</div><div class="stat-label">Interviews (Month)</div></div>\n <div class="stat-box"><div class="stat-value">${s?.flagRate??0}%</div><div class="stat-label">Bluff Flag Rate</div></div>\n <div class="stat-box"><div class="stat-value">${e?.activeJobs??0}</div><div class="stat-label">Active Jobs</div></div>\n </div>\n\n \x3c!-- Score Distribution --\x3e\n <h2><span class="icon">ð</span> Score Distribution</h2>\n <div class="bar-chart">${p}</div>\n\n \x3c!-- Behavioral Averages --\x3e\n <h2><span class="icon">ð§ </span> Behavioral Averages</h2>\n <div class="bar-chart">${b}</div>\n\n \x3c!-- Benchmark --\x3e\n ${g?`<h2><span class="icon">ð</span> Platform Benchmark</h2><div class="benchmark-grid">${g}</div>`:""}\n\n \x3c!-- Top Candidates --\x3e\n <h2><span class="icon">ð</span> Top 10 Candidates</h2>\n <table>\n <thead><tr><th>Candidate</th><th>Role</th><th>Score</th><th>Category</th><th>Date</th></tr></thead>\n <tbody>${f||'<tr><td colspan="5" style="text-align:center;color:#94a3b8;padding:20px;">No candidates yet</td></tr>'}</tbody>\n </table>\n\n \x3c!-- Footer --\x3e\n <div class="footer">\n <p>Generated by <span class="brand">HireAuto</span> · Confidential · ${(new Date).toISOString()}</p>\n <p>This report contains aggregated hiring analytics. Do not share without authorization.</p>\n </div>\n\n</div></body></html>`}(t),n=(await e(async()=>{const{default:e}=await import("./html2pdf-D8q-XLSa.js").then(e=>e.h);return{default:e}},__vite__mapDeps([0,1]))).default,i=document.createElement("div");i.style.position="fixed",i.style.left="-9999px",i.style.top="0",i.style.width="820px",i.innerHTML=a,document.body.appendChild(i);try{await n().set({margin:[10,10,10,10],filename:`hireauto-analytics-${(new Date).toISOString().split("T")[0]}.pdf`,image:{type:"jpeg",quality:.95},html2canvas:{scale:2,useCORS:!0,logging:!1},jsPDF:{unit:"mm",format:"a4",orientation:"portrait"},pagebreak:{mode:["avoid-all","css"]}}).from(i).save()}finally{document.body.removeChild(i)}}export{t as downloadAnalyticsPdf};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.