HR-ATS-Portal/frontend/dist/assets/Analytics-C14x4S-e.js

3 lines
6.2 KiB
JavaScript

import{d as L,a as h,s as o,r as d,b as a,j as e,I as M}from"./index-BTPmxtwM.js";import{C as c,a as l,b as m}from"./Chart-BGHtrE8S.js";function P(){const{toast:p}=L(),{data:n=[]}=h(o("candidates")),{data:t=[]}=h(o("recruiters")),x=d.useMemo(()=>({labels:a.hiringTrend.labels,area:!0,datasets:[{label:"Applications",data:a.hiringTrend.applications,color:c.PALETTE[4]},{label:"Hires",data:a.hiringTrend.hires,color:c.PALETTE[0]}]}),[]),j=d.useMemo(()=>({labels:a.hiringTrend.labels,data:a.hiringTrend.applications}),[]),u=d.useMemo(()=>({labels:a.sources.map(s=>s.source),data:a.sources.map(s=>s.count),centerValue:n.length,centerLabel:"Total"}),[n.length]),v=d.useMemo(()=>{const{accepted:s,pending:r,declined:i}=a.offerAcceptance;return{labels:["Accepted","Pending","Declined"],data:[s,r,i],colors:[c.token("--success"),c.token("--warning"),c.token("--danger")],centerValue:`${Math.round(s/(s+i||1)*100)}%`,centerLabel:"Accept rate"}},[]),N=d.useMemo(()=>({labels:a.pipeline.map(s=>s.stage),data:a.pipeline.map(s=>s.count),colors:c.PALETTE}),[]),b=d.useMemo(()=>({labels:a.departments.map(s=>s.dept),data:a.departments.map(s=>s.apps)}),[]),g=d.useMemo(()=>{const s=[...t].sort((r,i)=>i.hires-r.hires).slice(0,8);return{labels:s.map(r=>r.name),data:s.map(r=>r.hires)}},[t]),y=d.useMemo(()=>({labels:a.hiringTrend.labels,area:!0,yFmt:s=>`${s}d`,datasets:[{label:"Time to Hire",data:a.timeToHire,color:c.PALETTE[0]}]}),[]),T=d.useMemo(()=>({labels:a.hiringTrend.labels,area:!0,yFmt:s=>`${s}d`,datasets:[{label:"Time to Fill",data:a.timeToFill,color:c.PALETTE[2]}]}),[]),A=d.useMemo(()=>[{label:"Applications",color:c.PALETTE[4]},{label:"Hires",color:c.PALETTE[0]}],[]),E=d.useMemo(()=>a.sources.map((s,r)=>({label:s.source,color:c.PALETTE[r%c.PALETTE.length]})),[]);return e.jsxs("div",{className:"page",children:[e.jsxs("div",{className:"page-head",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:"Analytics"}),e.jsx("p",{className:"page-sub",children:"Deep-dive metrics across your recruitment funnel"})]}),e.jsxs("div",{className:"page-head-actions",children:[e.jsxs("div",{className:"pill-tabs",children:[e.jsx("span",{className:"pill-tab",children:"Week"}),e.jsx("span",{className:"pill-tab active",children:"Month"}),e.jsx("span",{className:"pill-tab",children:"Quarter"})]}),e.jsxs("button",{className:"btn btn-secondary",onClick:()=>p("Analytics exported","success"),children:[e.jsx(M,{name:"download"})," Export"]})]})]}),e.jsxs("div",{className:"grid g-2 mb-18",children:[e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsxs("div",{children:[e.jsx("h3",{children:"Hiring Trend"}),e.jsx("span",{className:"ch-sub",children:"Hires vs applications"})]})}),e.jsxs("div",{className:"card-body",children:[e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"line",data:x,height:260})}),e.jsx(m,{items:A})]})]}),e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsxs("div",{children:[e.jsx("h3",{children:"Applications Received"}),e.jsx("span",{className:"ch-sub",children:"Monthly volume"})]})}),e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"bar",data:j,height:260})})})]})]}),e.jsxs("div",{className:"grid g-3 mb-18",children:[e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsx("div",{children:e.jsx("h3",{children:"Source Breakdown"})})}),e.jsxs("div",{className:"card-body",children:[e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"doughnut",data:u,height:220})}),e.jsx(m,{items:E})]})]}),e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsx("div",{children:e.jsx("h3",{children:"Offer Acceptance"})})}),e.jsxs("div",{className:"card-body",children:[e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"doughnut",data:v,height:220})}),e.jsxs("div",{className:"chart-legend",children:[e.jsxs("span",{className:"legend-item",children:[e.jsx("span",{className:"legend-dot",style:{background:"var(--success)"}}),"Accepted"]}),e.jsxs("span",{className:"legend-item",children:[e.jsx("span",{className:"legend-dot",style:{background:"var(--warning)"}}),"Pending"]}),e.jsxs("span",{className:"legend-item",children:[e.jsx("span",{className:"legend-dot",style:{background:"var(--danger)"}}),"Declined"]})]})]})]}),e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsx("div",{children:e.jsx("h3",{children:"Pipeline Distribution"})})}),e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"horizontalBar",data:N,height:260})})})]})]}),e.jsxs("div",{className:"grid g-2 mb-18",children:[e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsxs("div",{children:[e.jsx("h3",{children:"Applications by Department"}),e.jsx("span",{className:"ch-sub",children:"Volume per team"})]})}),e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"bar",data:b,height:300})})})]}),e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsxs("div",{children:[e.jsx("h3",{children:"Recruiter Performance"}),e.jsx("span",{className:"ch-sub",children:"Hires by recruiter (top 8)"})]})}),e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"horizontalBar",data:g,height:300})})})]})]}),e.jsxs("div",{className:"grid g-2",children:[e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsxs("div",{children:[e.jsx("h3",{children:"Time to Hire"}),e.jsx("span",{className:"ch-sub",children:"Days, monthly average"})]})}),e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"line",data:y,height:240})})})]}),e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"card-head",children:e.jsxs("div",{children:[e.jsx("h3",{children:"Time to Fill"}),e.jsx("span",{className:"ch-sub",children:"Days, monthly average"})]})}),e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"chart-wrap",children:e.jsx(l,{type:"line",data:T,height:240})})})]})]})]})}export{P as default};
//# sourceMappingURL=Analytics-C14x4S-e.js.map