1import{M as n}from"./MetricCard-K1pny4ak.js";import{g as l,d as t,a as i,F as y,z as p,x as d,o as s,t as u,H as v}from"./app-CdmVgUNI.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./phone-input-CFfmonCk.js";const f={class:"space-y-5"},g={class:"grid grid-cols-2 gap-3 lg:grid-cols-5"},k={class:"card p-5"},w={key:0,class:"py-6 text-center text-sm text-ink-400"},M={key:1,class:"flex items-end gap-2",style:{height:"220px"}},A={class:"text-xs font-medium text-ink-600"},j={class:"text-xs text-ink-400"},B={class:"card p-5"},J={key:0,class:"py-6 text-center text-sm text-ink-400"},N={key:1,class:"space-y-3"},T={class:"mb-1 flex items-center justify-between gap-2 text-sm"},z={class:"min-w-0 truncate text-ink-600"},F={class:"shrink-0 font-medium text-ink-700"},H={class:"h-2.5 w-full overflow-hidden rounded-full bg-ink-100"},E={__name:"AnalyticsTab",props:{analytics:{type:Object,default:()=>({})}},setup(a){const h=a,r=d(()=>h.analytics.monthly??[]),x=d(()=>Math.max(1,...r.value.map(o=>o.count||0))),m=d(()=>h.analytics.by_job??[]),b=d(()=>Math.max(1,...m.value.map(o=>o.count||0)));return(o,c)=>(s(),l("div",f,[t("div",g,[i(n,{label:"Total Jobs",value:a.analytics.total_jobs??0,icon:"ri-briefcase-line",color:"brand"},null,8,["value"]),i(n,{label:"Active Jobs",value:a.analytics.active_jobs??0,icon:"ri-checkbox-circle-line",color:"emerald"},null,8,["value"]),i(n,{label:"Total Applications",value:a.analytics.total_applications??0,icon:"ri-file-user-line",color:"indigo"},null,8,["value"]),i(n,{label:"This Month",value:a.analytics.this_month??0,icon:"ri-calendar-line",color:"amber"},null,8,["value"]),i(n,{label:"With Resume",value:a.analytics.with_resume??0,icon:"ri-file-text-line",color:"slate"},null,8,["value"])]),t("div",k,[c[0]||(c[0]=t("h3",{class:"mb-4 font-semibold text-ink-800"},"Applications (last 12 months)",-1)),r.value.length?(s(),l("div",M,[(s(!0),l(y,null,p(r.value,(e,_)=>(s(),l("div",{key:_,class:"flex flex-1 flex-col items-center justify-end gap-1"},[t("span",A,u(e.count),1),t("div",{class:"w-full rounded-t bg-brand-500",style:v({height:e.count/x.value*170+"px",minHeight:e.count?"4px":"0"})},null,4),t("span",j,u(e.label),1)]))),128))])):(s(),l("div",w,"No application data yet."))]),t("div",B,[c[1]||(c[1]=t("h3",{class:"mb-4 font-semibold text-ink-800"},"Applications by job",-1)),m.value.length?(s(),l("div",N,[(s(!0),l(y,null,p(m.value,e=>(s(),l("div",{key:e.id},[t("div",T,[t("span",z,u(e.label),1),t("span",F,u(e.count),1)]),t("div",H,[t("div",{class:"h-full rounded-full bg-brand-500",style:v({width:Math.max(4,e.count/b.value*100)+"%"})},null,4)])]))),128))])):(s(),l("div",J,"No applications yet."))])]))}};export{E as default};
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.