1import{j as e}from"./chunk-editor-BoEejyrU.js";import{r as c,a as Dr,f as Jt,d as Le,m as Js,i as Hs,h as qs,u as Ys,L as Qr}from"./router-BpnsrfSX.js";import{R as Vs,u as Xs,M as Us,a as tt,g as Ae,C as Ws,s as Ks,b as Zs,r as Gs}from"./CandidateProfileModal-DAOzQP1q.js";import{g as Ht,u as Qs,a as ea,c as ra,b as ta,d as sa,e as aa}from"./PipelineStages-Co9sx2YN.js";import{c as lt,i as na,X as _e,C as oa,y as te,q as la,r as ia,v as kr,P as Er,T as ca,w as da,e as qt,j as Yt,B as st,x as _r,L as ua,z as pr,D as ma,E as _t,H as Pt,I as Vt,S as pa,a as xa,J as Ie,k as Fe,G as fa,s as yr,K as ga}from"./index-ChzAEmuP.js";import{s as ba,S as ha}from"./Constants-CJwEMyeS.js";import{C as Pr}from"./CustomDropDown-MCX44XBr.js";import{F as Xt}from"./funnel-j_TZrdgz.js";import{C as va}from"./ConformationModal-5pBaRcTY.js";import{U as ya}from"./upload-DRbKXlwq.js";import{F as ja}from"./file-text-D06ODNis.js";import{P as M}from"./index-Cpr-dGh1.js";import{F as Rt}from"./index-Suy7AZYj.js";import{P as Na}from"./CandidateBytesSection-ywhCQPZA.js";import{P as wa}from"./pencil-CwFax8d7.js";import{c as Ut}from"./candidates-CXVkPu2u.js";import{I as Rr}from"./info-XkRwZEsu.js";import{C as Wt}from"./circle-alert-DthcdxW3.js";import{L as Sa,G as Tt}from"./loader-ms8uEZhZ.js";import{I as Mt}from"./indian-rupee-CKVTELHd.js";import{C as Lt}from"./clock-744KVm5Q.js";import{M as at}from"./mail-BmImrV7x.js";import{P as zt}from"./CallCandidateNotification-DUav-lXs.js";import{S as Ca}from"./star-CXPZMGeP.js";import{B as Kt}from"./ban-CXx-G9Vi.js";import{A as Da}from"./arrow-left-CYEaLoUy.js";import{E as ka}from"./external-link-Dyi9f-Kp.js";import{L as Ea}from"./lock-CZHv3j_O.js";import{L as _a}from"./list-C6h3Eud3.js";import"./building--zj5pPpO.js";import"./eye-DLQ5smZw.js";import"./chevron-left-CX_nWjwD.js";import"./chevron-right-sBEYEQdP.js";import"./play-CLP-DpK8.js";import"./image-DUiBvbZ0.js";import"./ellipsis-vertical-BRFawpA2.js";import"./download-DbXJtnrj.js";import"./file-spreadsheet-DHT1mqc1.js";import"./circle-arrow-right-gzxi51bx.js";import"./Cards-BUu7oowz.js";import"./InterviewScheduling-BzXBcs_a.js";import"./chunk-select-CDhXmjgG.js";import"./MicrosoftIntegration-BXla7yz-.js";import"./refresh-cw-cZNrak62.js";import"./circle-check-Cu4zpD9p.js";import"./circle-x-BrJrOCqw.js";import"./circle-check-big-C0Xt5_9x.js";/** 2 * @license lucide-react v0.525.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Pa=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],Ra=lt("code",Pa);/** 7 * @license lucide-react v0.525.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Ta=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Ma=lt("layout-grid",Ta);/** 12 * @license lucide-react v0.525.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const La=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],Zt=lt("tag",La),za=({formData:r,setFormData:t,handleFormChange:s,handleFormSubmit:a,setSearchParams:n,onRestorePagination:o,sortBy:d,onSortChange:p})=>{const[l,h]=c.useState(!1),[x,j]=c.useState([]),b=c.useRef(null);c.useEffect(()=>{const g=C=>{C.target.closest("[data-dropdown-menu]")||b.current&&!b.current.contains(C.target)&&h(!1)};return document.addEventListener("mousedown",g),()=>document.removeEventListener("mousedown",g)},[]),c.useEffect(()=>{let g=!0;return Ht().then(C=>{g&&j(C||[])}).catch(()=>{g&&j([])}),()=>{g=!1}},[]);const S=(r.labels||"").split(",").map(g=>
16g.trim()).filter(Boolean),A=g=>{const C=String(g),I=S.includes(C)?S.filter(B=>B!==C):[...S,C];s({target:{name:"labels",value:I.join(",")}})},D=Object.entries(r).filter(([g,C])=>g!=="name"&&C&&C.toString().trim()!=="").length,y=()=>{o&&o(),t({yoe_min:"",yoe_max:"",name:"",email:"",phone:"",desired_job:"",occupation:"",salary_min:"",salary_max:"",city:"",profile_completion_min:"",profile_completion_max:"",notice_period_max:"",job_type:"",experience_company:"",college:"",certification:"",skills:"",labels:""}),p&&p(""),n(g=>{const C=new URLSearchParams,I=g.get("jobId");return I&&C.set("jobId",I),C}),h(!1)};return e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"relative flex-1 max-w-md group",children:[e.jsx(na,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-500 group-focus-within:text-[var(--primary)] transition-colors",size:18}),e.jsx("input",{type:"text",name:"name",value:r.name,onChange:s,placeholder:"Search candidates by name...",className:"w-full pl-10 pr-4 py-2 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--primary)]/20 focus:border-[var(--primary)] transition-all shadow-sm"}),r.name&&e.jsx("button",{onClick:()=>s({target:{name:"name",value:""}}),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:e.jsx(_e,{size:14})})]}),e.jsxs("div",{className:"relative",ref:b,children:[e.jsxs("button",{type:"button",onClick:()=>h(!l),className:`flex items-center gap-2 px-4 py-2 rounded-lg border text-sm font-semibold transition-all shadow-sm ${l||D>0?"border-[var(--primary)] bg-[var(--primary-light)]/10 text-[var(--primary)]":"border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]"}`,children:[e.jsx(Xt,{size:16}),"Filters ",D>0&&e.jsx("span",{className:"flex items-center justify-center w-5 h-5 bg-[var(--primary)] text-white text-[10px] rounded-full",children:D}),e.jsx(oa,{size:16,className:`transition-transform duration-200 ${l?"rotate-180":""}`})]}),l&&e.jsxs("div",{style:{maxHeight:"calc(100vh - 160px)"},className:"absolute left-0 top-full mt-2 z-[60] w-[820px] flex flex-col bg-[var(--bg-primary)] border border-[var(--border)] rounded-xl shadow-2xl p-5 animate-in fade-in slide-in-from-top-2 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4 pb-2 border-b border-[var(--border)]",children:[e.jsx("h3",{className:"text-sm font-bold text-[var(--text-primary)] uppercase tracking-wider",children:"Advanced Filters"}),e.jsxs("button",{onClick:y,className:"text-xs text-[var(--error)] font-bold hover:underline flex items-center gap-1",children:[e.jsx(Vs,{size:12})," RESET ALL"]})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-x-4 gap-y-4 overflow-y-auto flex-1 min-h-0 custom-scrollbar pr-1 -mr-1",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Min Years Exp."}),e.jsx("input",{type:"number",name:"yoe_min",value:r.yoe_min,onChange:s,placeholder:"e.g. 2",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:ring-2 focus:ring-[var(--primary)]/20 focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Max Years Exp."}),e.jsx("input",{type:"number",name:"yoe_max",value:r.yoe_max,onChange:s,placeholder:"e.g. 10",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:ring-2 focus:ring-[var(--primary)]/20 focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Job Type"}
16),e.jsxs("select",{name:"job_type",value:r.job_type,onChange:s,className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none",children:[e.jsx("option",{value:"",children:"Any"}),e.jsx("option",{value:"full_time",children:"Full Time"}),e.jsx("option",{value:"part_time",children:"Part Time"}),e.jsx("option",{value:"internship",children:"Internship"})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Occupation"}),e.jsx("input",{type:"text",name:"occupation",value:r.occupation,onChange:s,placeholder:"e.g. Frontend",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Previous Company"}),e.jsx("input",{type:"text",name:"experience_company",value:r.experience_company,onChange:s,placeholder:"e.g. Google",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"City"}),e.jsx("input",{type:"text",name:"city",value:r.city,onChange:s,placeholder:"e.g. Bangalore",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1 col-span-2",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Email (comma-separated)"}),e.jsx("input",{type:"text",name:"email",value:r.email,onChange:s,placeholder:"[email protected], [email protected]",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Phone (comma-separated)"}),e.jsx("input",{type:"text",name:"phone",value:r.phone,onChange:s,placeholder:"9876543210, ...",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1 col-span-3",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Skills (comma-separated)"}),e.jsx("input",{type:"text",name:"skills",value:r.skills,onChange:s,placeholder:"React, Node.js, Python...",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1 col-span-3",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Labels"}),x.length===0?e.jsx("p",{className:"text-xs text-[var(--text-secondary)] italic",children:"No labels available."}):e.jsx("div",{className:"flex flex-wrap gap-2",children:x.map(g=>{const C=S.includes(String(g.id));return e.jsxs("button",{type:"button",onClick:()=>A(g.id),className:`inline-flex items-center gap-1 px-2.5 py-1 rounded-full border text-xs font-semibold transition-all ${C?"border-[var(--primary)] bg-[var(--primary)]/10 text-[var(--primary)]":"border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-secondary)] hover:border-[var(--primary)]"}`,children:[g.name,C&&e.jsx(_e,{size:12})]},g.id)})})]}),e.jsxs("div",{className:"space-y-1 col-span-2",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"College/University"}),e.jsx(Pr,{searchable:!0,creatable:!0,value:r.college||"",onChange:g=>s({target:{name:"college",value:g}}),options:ba.colleges,placeholder:"Select or add a collegeâ¦",searchPlaceholder:"Search or type to addâ¦",containerClass:"w-full",buttonClass:"w-full px-3 py-1.5 rounded-md text-sm border border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-primary)]",menuZIndex:70,placement:"top"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Certification"}),e.jsx("input",{type:"text",name:"certification",value:r.certification,onChange:s,placeholder:"e.g. AWS",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Desired Job"}),e.jsx("input",{type:"text",name:"desired_job",value:r.desired_job,onChange:s,placeholder:"e.g. Manager",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Min Salary"}),e.jsx("input",{type:"number",name:"salary_min",value:r.salary_min,onChange:s,className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Max Salary"}),e.jsx("input",{type:"number",name:"salary_max",value:r.salary_max,onChange:s,className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Max Notice Period (Days)"}),e.jsx("input",{type:"number",name:"notice_period_max",value:r.notice_period_max,onChange:s,placeholder:"e.g. 30",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Profile Completion (Min %)"}),e.jsx("input",{type:"number",name:"profile_completion_min",value:r.profile_completion_min,onChange:s,placeholder:"0",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase",children:"Profile Completion (Max %)"}),e.jsx("input",{type:"number",name:"profile_completion_max",value:r.profile_completion_max,onChange:s,placeholder:"100",className:"w-full px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-md text-sm focus:border-[var(--primary)] outline-none"})]})]}),e.jsx("div",{className:"mt-6 flex justify-end gap-3 pt-4 border-t border-[var(--border)]",children:e.jsx("button",{onClick:()=>h(!1),className:"px-6 py-2 bg-[var(--primary)] text-white text-sm font-bold rounded-lg shadow-md hover:bg-[var(--primary-hover)] transition-all",children:"APPLY FILTERS"})})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm font-semibold text-[var(--text-secondary)] whitespace-nowrap",children:"Sort by:"}),e.jsx(Pr,{value:d||"",onChange:g=>p(g),containerClass:"min-w-[200px]",buttonClass:"w-full px-4 py-2 text-sm font-medium rounded-lg border border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:border-[var(--primary)] transition-all shadow-sm",options:[{label:"Most Recent",value:""},{label:"Newest First",value:"-created_at"},{label:"Oldest First",value:"created_at"},{label:"Match Score (High-Low)",value:"-match_score_result__score"},{label:"Match Score (Low-High)",value:"match_score_result__score"}]})]})]})},Aa=new Set(["jobId","job_id","view","table","board","ordering"]),Ia=({fetchFunction:r,selectedJobId:t,searchParamsRef:s}
16)=>{const[a,n]=c.useState({}),[o,d]=c.useState({}),p=c.useRef({}),l=c.useCallback(()=>{try{if(!(s!=null&&s.current))return{};const y={};for(const[g,C]of s.current.entries())Aa.has(g)||(y[g]=C);return y}catch{return{}}},[s]),h=c.useCallback((y,g=1,C={})=>{n(I=>({...I,[y]:{page:g,hasMore:(C==null?void 0:C.next)!=null,totalCount:(C==null?void 0:C.count)||0}})),g&&g>1&&(p.current={...p.current,[y]:g})},[]),x=c.useCallback((y,g)=>{var I,B;if(g)return 1;const C=(I=p.current)==null?void 0:I[y];return C||((B=a==null?void 0:a[y])==null?void 0:B.page)||1},[a]),j=c.useCallback(()=>{p.current={},n(y=>{const g={};for(const C in y)g[C]={page:1,hasMore:!0,totalCount:0};return g})},[]),b=c.useCallback(y=>{y&&Object.keys(y).length>0&&(n(y),Object.entries(y).forEach(([g,C])=>{C.page>1&&(p.current={...p.current,[g]:C.page})}))},[]),S=c.useCallback(async({stageId:y,showRejected:g=!1,jobId:C=t,extraFilters:I={}})=>{var ue;if(!y)return[];const B=a==null?void 0:a[y],ee=(!g&&((ue=p.current)!=null&&ue[y])?p.current[y]:(B==null?void 0:B.page)||1)+1;if(B&&B.hasMore===!1)return[];d(L=>({...L,[y]:!0}));try{const L={...l(),...typeof I=="object"?I:{}},Y=await r(C,y,ee,g?"REJECTED":"",L);return n(z=>({...z,[y]:{page:ee,hasMore:(Y==null?void 0:Y.next)!=null,totalCount:(Y==null?void 0:Y.count)||0}})),g||(p.current={...p.current,[y]:ee}),Y.results||[]}catch(L){return console.error("loadMore error:",L),[]}finally{d(L=>({...L,[y]:!1}))}},[r,a,t,l]),A=c.useCallback(y=>{const g=Array.isArray(y)?y:[y],C={...p.current};g.forEach(I=>delete C[String(I)]),p.current=C,n(I=>{const B={...I};return g.forEach(se=>{B[String(se)]={page:1,hasMore:!0,totalCount:0}}),B})},[]),D=c.useCallback((y,g)=>{n(C=>({...C,[y]:{...C[y]||{},...g}}))},[]);return{paginationState:a,loadingStages:o,initializeStage:h,getPageToFetch:x,loadMore:S,resetAllToFirstPage:j,resetStages:A,restorePaginationState:b,setStageMeta:D,_internal:{savedPageStateRef:p}}},Fa=({jobId:r,candidateId:t,refreshCallback:s,canManagePipeline:a=!0,lockMessage:n})=>{const o=c.useRef(null),[d,p]=c.useState(null),[l,h]=c.useState(!1),[x,j]=c.useState(!1),b=()=>{var D;(D=o.current)==null||D.click()},S=D=>{const y=D.target.files[0];y&&(p(y),h(!0))},A=async()=>{try{j(!0);const D=await Xs(d),y=D==null?void 0:D.profile_id;if(!y){h(!1),p(null),j(!1);return}if(!a){te.warn(n||"Resume parsed, but this job post is not published - publish it and add candidates to the pipeline."),h(!1),p(null),j(!1);return}await la(r,[y]),te.success("Resume uploaded & candidate shortlisted!"),h(!1),p(null),s&&s()}catch(D){console.error(D),te.error("Failed to upload/parse or shortlist.")}finally{j(!1)}};return e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:b,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-green-700 text-white px-4 py-2 rounded-md text-sm",children:[e.jsx(ya,{size:16}),"Upload Resume"]}),e.jsx("input",{ref:o,type:"file",accept:".pdf,.doc,.docx",className:"hidden",onChange:S}),e.jsxs(va,{isOpen:l,onClose:()=>h(!1),title:"Confirm Resume Upload",icon:ja,width:"max-w-md",children:[e.jsxs("p",{className:"text-sm text-gray-700 mb-4",children:["You selected ",e.jsx("strong",{children:d==null?void 0:d.name}),".",e.jsx("br",{}),a?"Upload, parse, and shortlist this candidate?":"Upload and parse this resume? This job post is not published, so the candidate won't be added to the pipeline until it is."]}),e.jsx("button",{onClick:A,disabled:x,className:"w-full bg-[var(--primary)] hover:bg-green-700 text-white py-2 rounded-md disabled:opacity-50 disabled:cursor-not-allowed",children:x?"Processing...":a?"Yes, Upload & Shortlist":"Yes, Upload & Parse"})]})]})},jr=(r="")=>{let t=0;for(let s=0;s<r.length;s++)t=r.charCodeAt(s)+((t<<5)-t);return`hsl(${Math.abs(t)%360}, 65%, 55%)`},Oa=3,Gt=({pipelineId:r,initialLabels:t=[]})=>{const[s,a]=c.useState(t),[n,o]=c.useState([]),[d,p]=c.useState(!1),[l,h]=c.useState(!1),[x,j]=c.useState(!1),[b,S]=c.useState(!1),[A,D]=c.useState(""),[y,g]=c.useState(""),[C,I]=c.useState(null),[B,se]=c.useState(""),ee=c.useRef(null),ue=c.useRef(null),[L,Y]=c.useState(null),z=new Set(s.map(w=>w.id)),X=()=>{var Se;const w=(Se=ee.current)==null?void 0:Se.getBoundingClientRect();if(!w)return;const V=224,Z=6;let Q=w.left;Q+V>window.innerWidth&&(Q=window.innerWidth-V-10),Y({top:w.bottom+Z,left:Math.max(10,Q)})};c.useEffect(()=>{if(!d)return;const w=V=>{const Z=ee.current&&ee.current.contains(V.target),Q=ue.current&&ue.current.contains(V.target);!Z&&!Q&&p(!1)};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[d]),c.useEffect(()=>{if(!d)return;const w=()=>X();return window.addEventListener("scroll",w,!0),window.addEventListener("resize",w),()=>{window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}},[d]);const K=async()=>{try{j(!0),o(await Ht())}catch{D("Failed to load labels")}finally{j(!1)}},R=w=>{w.stopPropagation();const V=!d;V&&X(),p(V),D(""),V&&n.length===0&&K()},U=async w=>{w.stopPropagation(),p(!1),h(!0),D(""),I(null),n.length===0&&await K()},N=()=>{h(!1),I(null),g(""),D("")},$=async w=>{if(!(b||!r)){S(!0),D("");try{z.has(w.id)?(await Qs(r,w.id),a(V=>V.filter(Z=>Z.id!==w.id))):(await ea(r,w.id),a(V=>[...V,{id:w.id,name:w.name}]))}catch{D("Failed to update label")}finally{S(!1)}}},J=async w=>{w.preventDefault();const V=y.trim();if(!(!V||b)){S(!0),D("");try{const Z=await ra(V);o(Q=>[...Q,Z].sort((Se,de)=>Se.name.localeCompare(de.name))),g("")}catch(Z){D((Z==null?void 0:Z.message)||"Failed to create label")}finally{S(!1)}}},O=w=>{I(w.id),se(w.name),D("")},pe=async w=>{var Z,Q,Se;w.preventDefault();const V=B.trim();if(!(!V||b)){S(!0),D("");try{const de=await ta(C,V);o(re=>re.map(ne=>ne.id===C?de:ne).sort((ne,He)=>ne.name.localeCompare(He.name))),a(re=>re.map(ne=>ne.id===C?{...ne,name:de.name}:ne)),I(null)}catch(de){const re=((Se=(Q=(Z=de==null?void 0:de.response)==null?void 0:Z.data)==null?void 0:Q.name)==null?void 0:Se[0])||(de==null?void 0:de.message)||"Failed to rename label";D(re)}finally{S(!1)}}},ce=async w=>{if(!b){S(!0),D("");try{await sa(w.id),o(V=>V.filter(Z=>Z.id!==w.id)),a(V=>V.filter(Z=>Z.id!==w.id))}catch{D("Failed to delete label")}finally{S(!1)}}},ae=s.slice(0,Oa),je=s.length-ae.length;return e.jsxs("div",{className:"flex items-center gap-1",ref:ee,children:[e.jsxs("div",{className:"relative",children:[s.length===0?e.jsx("button",{type:"button",onClick:R,title:"Labels",className:"inline-flex items-center justify-center rounded-full bg-[var(--bg-primary)] p-[3px] text-[var(--text-secondary)] shadow-sm ring-1 ring-[var(--border)] hover:text-[var(--primary)] transition-colors",children:e.jsx(Zt,{size:12})}):s.length===1?e.jsxs("button",{type:"button",onClick:R,title:s[0].name,className:"inline-flex items-center gap-1 max-w-[110px] rounded-full bg-[var(--bg-primary)] px-1.5 py-[2px] shadow-sm ring-1 ring-[var(--border)] hover:ring-[var(--primary)] transition-colors",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full flex-shrink-0",style:{backgroundColor:jr(s[0].name)}}),e.jsx("span",{className:"truncate text-[9px] font-semibold text-[var(--text-primary)] leading-none",children:s[0].name})]}):e.jsxs("button",{type:"button",onClick:R,title:s.map(w=>w.name).join(", "),className:"inline-flex items-center rounded-full bg-[var(--bg-primary)] px-1 py-[2px] shadow-sm ring-1 ring-[var(--border)] hover:ring-[var(--primary)] transition-colors",children:[ae.map((w,V)=>e.jsx("span",{title:w.name,className:`h-2.5 w-2.5 rounded-full ring-1 ring-white ${V>0?"-ml-1":""}`,style:{backgroundColor:jr(w.name)}},w.id)),je>0&&e.jsxs("span",{className:"ml-1 text-[9px] font-bold text-[var(--text-secondary)] leading-none",children:["+",je]})]}),d&&L&&Dr.createPortal(e.jsxs("div",{ref:ue,style:{position:"fixed",top:L.top,left
16:L.left,zIndex:9999},className:"w-56 rounded-lg border border-[var(--border)] bg-[var(--bg-primary)] shadow-xl p-2",onClick:w=>w.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between px-1 pb-2 mb-1 border-b border-[var(--border)]",children:[e.jsx("span",{className:"text-[12px] font-semibold text-[var(--text-primary)]",children:"Labels"}),e.jsx("button",{type:"button",onClick:U,title:"Manage labels",className:"rounded p-0.5 text-[var(--text-secondary)] hover:text-[var(--primary)] transition-colors",children:e.jsx(ia,{size:14})})]}),e.jsx("div",{className:"max-h-44 overflow-y-auto hide-scrollbar",children:x?e.jsx("p",{className:"text-[12px] text-[var(--text-secondary)] px-1 py-2",children:"Loadingâ¦"}):n.length===0?e.jsx("p",{className:"text-[12px] text-[var(--text-secondary)] px-1 py-2",children:"No labels yet. Use the gear to create one."}):n.map(w=>e.jsxs("button",{type:"button",onClick:()=>$(w),disabled:b,className:"flex w-full items-center gap-2 rounded px-2 py-1 text-[13px] text-[var(--text-primary)] hover:bg-[var(--bg-secondary)] transition-colors disabled:opacity-60",children:[e.jsx("span",{className:`flex h-3.5 w-3.5 items-center justify-center rounded-sm border ${z.has(w.id)?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:z.has(w.id)&&e.jsx(kr,{size:10,className:"text-white"})}),e.jsx("span",{className:"h-2 w-2 rounded-full flex-shrink-0",style:{backgroundColor:jr(w.name)}}),e.jsx("span",{className:"truncate",children:w.name})]},w.id))}),A&&e.jsx("p",{className:"mt-1 text-[10px] text-rose-500 px-1",children:A})]}),document.body)]}),l&&Dr.createPortal(e.jsx("div",{className:"fixed inset-0 z-[9998] flex items-center justify-center bg-black/50 p-4",onClick:N,children:e.jsxs("div",{className:"w-full max-w-2xl h-[80vh] flex flex-col rounded-xl bg-[var(--bg-primary)] border border-[var(--border)] shadow-2xl",onClick:w=>w.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between px-7 py-5 border-b border-[var(--border)]",children:[e.jsx("h3",{className:"text-xl font-semibold text-[var(--text-primary)]",children:"Manage Labels"}),e.jsx("button",{type:"button",onClick:N,className:"text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:e.jsx(_e,{size:26})})]}),e.jsxs("div",{className:"p-7 overflow-y-auto flex-1",children:[e.jsxs("form",{onSubmit:J,className:"flex items-center gap-3 mb-5",children:[e.jsx("input",{value:y,onChange:w=>{g(w.target.value),D("")},placeholder:"Create a new labelâ¦",className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--bg-primary)] px-4 py-3 text-base text-[var(--text-primary)] focus:outline-none focus:border-[var(--primary)]"}),e.jsxs("button",{type:"submit",disabled:b||!y.trim(),className:"inline-flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-5 py-3 text-base font-medium text-white disabled:opacity-50",children:[e.jsx(Er,{size:20})," Add"]})]}),A&&e.jsx("p",{className:"mb-4 text-sm text-rose-500",children:A}),x?e.jsx("p",{className:"text-base text-[var(--text-secondary)] py-8 text-center",children:"Loadingâ¦"}):n.length===0?e.jsx("p",{className:"text-base text-[var(--text-secondary)] py-8 text-center",children:"No labels yet."}):e.jsx("ul",{className:"divide-y divide-[var(--border)]",children:n.map(w=>e.jsx("li",{className:"flex items-center justify-between py-3.5",children:C===w.id?e.jsxs("form",{onSubmit:pe,className:"flex flex-1 items-center gap-3",children:[e.jsx("input",{autoFocus:!0,value:B,onChange:V=>{se(V.target.value),D("")},className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--bg-primary)] px-4 py-2.5 text-base text-[var(--text-primary)] focus:outline-none focus:border-[var(--primary)]"}),e.jsx("button",{type:"submit",disabled:b,className:"rounded p-2 text-[var(--primary)] disabled:opacity-50",title:"Save",children:e.jsx(kr,{size:20})}),e.jsx("button",{type:"button",onClick:()=>I(null),className:"rounded p-2 text-[var(--text-secondary)]",title:"Cancel",children:e.jsx(_e,{size:20})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"inline-flex items-center gap-3 text-base text-[var(--text-primary)]",children:[e.jsx("span",{className:"h-3 w-3 rounded-full",style:{backgroundColor:jr(w.name)}}),w.name]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>O(w),disabled:b,className:"rounded p-2 text-blue-600 hover:text-blue-800 disabled:opacity-50",title:"Edit",children:e.jsx(wa,{size:19})}),e.jsx("button",{type:"button",onClick:()=>ce(w),disabled:b,className:"rounded p-2 text-red-600 hover:text-red-800 disabled:opacity-50",title:"Delete",children:e.jsx(ca,{size:19})})]})]})},w.id))})]})]})}),document.body)]})};Gt.propTypes={pipelineId:M.oneOfType([M.number,M.string]),initialLabels:M.array};const $a=r=>async()=>{var t,s,a;return(a=(s=(t=await Ut(r))==null?void 0:t.data)==null?void 0:s.user)==null?void 0:a.profile_picture},Ba=r=>r>=80?"#24d366":r>=60?"#3b82f6":r>=40?"#f59e0b":"#ef4444",Qt=({scoreData:r,status:t})=>{var y,g,C,I,B,se,ee,ue,L,Y,z,X,K;const[s,a]=c.useState(!1),n=c.useRef(null),o=c.useRef(null),d=c.useRef(null);if(t==="PENDING"){const R=(y=n.current)==null?void 0:y.getBoundingClientRect(),U=120,N=220,$=4,J=window.innerHeight-((R==null?void 0:R.bottom)||0);let O={position:"fixed",left:`${(R==null?void 0:R.left)||0}px`,zIndex:9999};if(J<U+$+20){const ae=window.innerHeight-((R==null?void 0:R.top)||0)+$;O.bottom=`${ae}px`}else O.top=`${((R==null?void 0:R.bottom)||0)+$}px`;((R==null?void 0:R.left)||0)+N>window.innerWidth&&(O.left=`${window.innerWidth-N-10}px`);const pe=()=>{d.current&&clearTimeout(d.current),a(!0)},ce=()=>{d.current=setTimeout(()=>{a(!1)},100)};return e.jsxs(e.Fragment,{children:[e.jsx("span",{ref:n,onMouseEnter:pe,onMouseLeave:ce,className:"inline-flex items-center gap-1 text-[11px] font-medium px-2 py-[2px] rounded cursor-pointer bg-gray-100 text-gray-600 animate-pulse",children:e.jsx(Rt,{size:16})}),s&&R&&Dr.createPortal(e.jsxs("div",{style:O,className:"w-[220px] bg-[var(--bg-primary)] border border-[var(--border)] rounded-lg shadow-xl p-3 text-[11px]",onMouseEnter:pe,onMouseLeave:ce,children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Rt,{size:16,className:"text-[var(--primary)]"}),e.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Processing"})]}),e.jsx("p",{className:"text-[var(--text-secondary)] text-[11px] leading-relaxed",children:"Our AI is analyzing this candidateâs profile, skills, and match against the job requirements."}),e.jsx("div",{className:"mt-3 h-[4px] w-full bg-[var(--bg-secondary)] rounded overflow-hidden",children:e.jsx("div",{className:"h-full bg-[var(--primary)] animate-[loading_1.5s_infinite]"})})]}),document.body)]})}if(t!=="COMPLETED"||!r)return null;const p=Ba(r.score),l=(g=n.current)==null?void 0:g.getBoundingClientRect(),h=360,x=340,j=4,b=window.innerHeight-((l==null?void 0:l.bottom)||0);let S={position:"fixed",left:`${(l==null?void 0:l.left)||0}px`,zIndex:9999};if(b<h+j+20){const R=window.innerHeight-((l==null?void 0:l.top)||0)+j;S.bottom=`${R}px`}else S.top=`${((l==null?void 0:l.bottom)||0)+j}px`;((l==null?void 0:l.left)||0)+x>window.innerWidth&&(S.left=`${window.innerWidth-x-10}px`);const A=()=>{d.current&&clearTimeout(d.current),a(!0)},D=()=>{d.current=setTimeout(()=>{a(!1)},100)};return e.jsxs(e.Fragment,{children:[e.jsxs("span",{ref:n,onMouseEnter:A,onMouseLeave:D,className:"inline-flex items-center gap-1 text-[11px] font-bold px-2 py-[2px] rounded text-[var(--bg-primary)] cursor-pointer",style:{backgroundColor:p},children:[e.jsx(da,{size:16}),r.score]}),s&&l&&Dr.createPortal(e.jsxs("div",{ref:o,style:S,className:"w-[340px] max-h-[360px] overflow-y-auto bg-[var(--bg-primary)] border border-[var(--border)] rounded-lg shadow-xl p-4 text-[13px] hide-scrollbar",onMouseEnter:A,onMouseLeave:D,children:[e.jsxs("div",{className:"flex justify-between font-semibold mb-2",style:{color:p},children:[e.jsx("span",{children:"AI Match Analysis"}),e.jsxs("span",{children:[r.score,"/100"]})]}),e.jsx("div",{className:"h-[5px] rounded-full overflow-hidden mb-2",children:e.jsx("div",{className:"h-full",style:{width:`${r.score}%`,background:p}})}),r.match_level&&e.jsx("span",{className:"inline-block text-[12px] bg-[var(--bg-secondary)] text-[var(--text-secondary)] px-2 py-[2px] rounded mb-2 font-medium",children:r.match_level}),e.jsxs("div",{className:"flex flex-col gap-2 mb-4",children:[e.jsxs("div",{className:"flex justify-between items-center bg-[var(--bg-primary)] p-3 rounded-lg border border-[var(--border)] shadow-sm",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"text-[12px] font-bold text-[var(--text-secondary)] uppercase tracking-widest",children:"Raw Score"}),e.jsxs("div",{className:"relative cursor-pointer group/rawinfo",children:[e.jsx(Rr,{size:10,
16className:"text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors"}),e.jsxs("div",{className:"absolute left-1/2 -translate-x-1/2 top-full mt-1.5 w-32 bg-[var(--text-primary)] text-[var(--bg-primary)] text-[12px] rounded-lg p-2 shadow-xl opacity-0 invisible group-hover/rawinfo:opacity-100 group-hover/rawinfo:visible transition-all duration-200 z-50 border border-[var(--border)]",children:[e.jsx("div",{className:"font-bold mb-1 border-b border-[var(--border)] pb-1 opacity-90",children:"Pillars"}),e.jsxs("ul",{className:"space-y-0.5 mt-1 opacity-90",children:[e.jsx("li",{children:"Tech: 40%"}),e.jsx("li",{children:"Exp: 30%"}),e.jsx("li",{children:"Edu: 15%"}),e.jsx("li",{children:"Pro: 15%"})]}),e.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 bottom-full w-0 h-0 border-x-[6px] border-x-transparent border-b-[6px] border-b-[var(--text-primary)]"})]})]})]}),e.jsxs("span",{className:"font-extrabold text-[var(--text-primary)] text-sm",children:[r.raw_score||r.technical_skills_score+r.experience_score+r.education_score+r.professional_score,e.jsx("span",{className:"text-[12px] text-[var(--text-secondary)] font-medium opacity-70",children:"/100"})]})]}),e.jsxs("div",{className:"flex flex-col items-end",children:[e.jsx("span",{className:"text-[12px] font-bold text-[var(--text-secondary)] uppercase tracking-widest",children:"Final"}),e.jsxs("span",{className:"font-extrabold text-xl tracking-tight",style:{color:p},children:[r.score,e.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-medium opacity-70",children:"/100"})]})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-x-4 gap-y-2 mt-1 px-1",children:[{label:"Technical",value:r.technical_skills_score,max:40},{label:"Experience",value:r.experience_score,max:30},{label:"Education",value:r.education_score,max:15},{label:"Professional",value:r.professional_score,max:15}].map((R,U)=>e.jsxs("div",{className:"group",children:[e.jsxs("div",{className:"flex justify-between text-[12px] mb-1",children:[e.jsx("span",{className:"text-[var(--text-secondary)] font-medium group-hover:text-[var(--text-primary)] transition-colors",children:R.label}),e.jsxs("span",{className:"font-bold text-[var(--text-primary)]",children:[R.value,e.jsxs("span",{className:"text-[var(--text-secondary)] font-normal opacity-70",children:["/",R.max]})]})]}),e.jsx("div",{className:"w-full bg-[var(--border)] rounded-full h-1 overflow-hidden",children:e.jsx("div",{className:"bg-[var(--primary)] h-1 rounded-full transition-all duration-300",style:{width:`${R.value/R.max*100}%`}})})]},U))})]}),(((C=r.penalties)==null?void 0:C.total_penalty)>0||r.raw_score-r.score>0)&&e.jsxs("div",{className:"mb-4 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg p-2.5 relative",children:[e.jsxs("div",{className:"flex items-center gap-1.5 w-full mb-2",children:[e.jsx("div",{className:"w-1 h-3 bg-rose-500 rounded-full"}),e.jsxs("span",{className:"text-[12px] font-bold text-[var(--text-primary)] uppercase tracking-wider",children:["Penalties (-",((I=r.penalties)==null?void 0:I.total_penalty)||r.raw_score-r.score,")"]}),e.jsxs("div",{className:"relative ml-auto group/pinfo cursor-help",children:[e.jsx(Rr,{size:12,className:"text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors"}),e.jsxs("div",{className:"absolute right-0 top-full mt-1.5 w-48 bg-[var(--text-primary)] text-[var(--bg-primary)] text-[12px] rounded-lg p-2 shadow-xl opacity-0 invisible group-hover/pinfo:opacity-100 group-hover/pinfo:visible transition-all duration-200 z-50 border border-[var(--border)]",children:[e.jsx("div",{className:"font-bold mb-1 border-b border-[var(--border)] pb-1 opacity-90",children:"Penalty Breakdown"}),e.jsxs("ul",{className:"space-y-1 mt-1 opacity-90",children:[e.jsxs("li",{children:[e.jsx("span",{className:"text-rose-500",children:"Skills:"})," Miss(-6), No proof(-3)"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-amber-500",children:"Exp:"})," Gap deductions (-3 to -10)"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-blue-500",children:"Loc:"})," Relocation limits (-2 to -12)"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-emerald-500",children:"Salary:"})," Expectations (-3 or -6)"]})]}),e.jsx("div",{className:"absolute right-1 bottom-full w-0 h-0 border-x-[6px] border-x-trans
16parent border-b-[6px] border-b-[var(--text-primary)]"})]})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[((B=r.penalties)==null?void 0:B.missing_skills_penalty)>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] bg-[var(--bg-primary)] border border-[var(--border)] px-1.5 py-0.5 rounded shadow-sm",children:["Skills ",e.jsx("span",{className:"font-bold text-rose-500",children:r.penalties.missing_skills_penalty})]}),((se=r.penalties)==null?void 0:se.missing_required_skills)>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] bg-[var(--bg-primary)] border border-[var(--border)] px-1.5 py-0.5 rounded shadow-sm",children:["Required Skills ",e.jsx("span",{className:"font-bold text-rose-500",children:r.penalties.missing_required_skills})]}),((ee=r.penalties)==null?void 0:ee.partial_required_skills)>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] bg-[var(--bg-primary)] border border-[var(--border)] px-1.5 py-0.5 rounded shadow-sm",children:["Partial Required Skills ",e.jsx("span",{className:"font-bold text-rose-500",children:r.penalties.partial_required_skills})]}),((ue=r.penalties)==null?void 0:ue.experience_penalty)>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] bg-[var(--bg-primary)] border border-[var(--border)] px-1.5 py-0.5 rounded shadow-sm",children:["Exp ",e.jsx("span",{className:"font-bold text-rose-500",children:r.penalties.experience_penalty})]}),((L=r.penalties)==null?void 0:L.location_penalty)>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] bg-[var(--bg-primary)] border border-[var(--border)] px-1.5 py-0.5 rounded shadow-sm",children:["Loc ",e.jsx("span",{className:"font-bold text-rose-500",children:r.penalties.location_penalty})]}),((Y=r.penalties)==null?void 0:Y.salary_penalty)>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] bg-[var(--bg-primary)] border border-[var(--border)] px-1.5 py-0.5 rounded shadow-sm",children:["Salary ",e.jsx("span",{className:"font-bold text-rose-500",children:r.penalties.salary_penalty})]})]})]}),((z=r.strengths)==null?void 0:z.length)>0&&e.jsxs("div",{className:"mb-3",children:[e.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] font-bold mb-1.5",children:[e.jsx(kr,{size:12,className:"text-emerald-500"})," Strengths"]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:r.strengths.map((R,U)=>e.jsx("span",{className:"px-2 py-1 bg-[var(--bg-secondary)] border border-[var(--border)] text-[var(--text-primary)] text-[12px] font-medium rounded shadow-sm",children:R},U))})]}),((X=r.missing_critical)==null?void 0:X.length)>0&&e.jsxs("div",{className:"mb-3",children:[e.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] font-bold mb-1.5",children:[e.jsx(_e,{size:12,className:"text-rose-500"})," Missing Required"]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:r.missing_critical.map((R,U)=>e.jsx("span",{className:"px-2 py-1 bg-[var(--bg-secondary)] border border-[var(--border)] text-[var(--text-primary)] text-[12px] font-medium rounded shadow-sm",children:R},U))})]}),((K=r.concerns)==null?void 0:K.length)>0&&e.jsxs("div",{className:"mb-2",children:[e.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-[var(--text-primary)] font-bold mb-1.5",children:[e.jsx(Wt,{size:12,className:"text-orange-500"})," Concerns"]}),e.jsx("div",{className:"bg-[var(--bg-secondary)] border border-[var(--border)] text-[var(--text-primary)] rounded-lg p-2 text-[12px] space-y-1.5 shadow-sm",children:r.concerns.map((R,U)=>e.jsxs("p",{className:"leading-tight flex gap-1",children:[e.jsx("span",{className:"text-orange-500",children:"â¢"})," ",e.jsx("span",{children:R})]},U))})]})]}),document.body)]})},it=({candidate:r,onClick:t,isSidebarCollapsed:s,column:a,showSkills:n=!1,selectedCandidateIds:o=new Set,toggleSelectCandidate:d})=>{var j,b,S,A,D,y;const[p,l]=c.useState(!1),h=(r==null?void 0:r.match_score_result)||((j=r==null?void 0:r.originalData)==null?void 0:j.match_score_result),x=(r==null?void 0:r.match_score_status)||((b=r==null?void 0:r.originalData)==null?void 0:b.match_score_status);return e.jsxs("div",{className:`relative transition-all ${s?"w-full max-w-[700px]":""} ${((S=r.originalData)==null?void 0:S.status)==="REJECTED"?"rounded-lg":""}`,onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[d&&e.jsx("div",{className:"absolute -top-5 -left-5 z-20 p-0.5 rounded cursor-pointer",onClick:g=>g.stopPropagation(),children:e.jsx("input",{type:"checkbox",checked:o.has(r.id),onChange:()=>d(r.id),className:"w-4 h-4 rounded text-[var(--primary)] focus:ring-[var(--primary)] cursor-pointer"})}),e.jsxs("div",{className:"absolute -top-2 right-0 z-10 flex flex-col items-end gap-1.5",children:[e.jsx(Qt,{scoreData:h,status:x}
16),r.source&&e.jsx("span",{className:"px-1 py-1.5 rounded text-[8px] uppercase font-bold tracking-widest bg-[var(--primary)]/10 text-[var(--primary)] shadow-sm translate-x-1.5",children:r.source})]}),e.jsxs("div",{className:"flex gap-3 items-start",children:[e.jsxs("div",{className:"relative w-10 h-10 flex-shrink-0",children:[e.jsx(qt,{src:r.avatar||Yt(r.name),refresh:$a(r.slug||r.id),refreshKey:`candidate:${r.slug||r.id}`,alt:r.name,className:"absolute rounded-full object-cover bg-gray-100",style:{width:30,height:30,top:5,left:5}}),e.jsx(Na,{percentage:r.profileCompletion,ringSize:40,showLabel:!1,variant:"card"}),e.jsx("div",{className:"absolute -top-3.5 left-0 z-20",children:e.jsx(Gt,{pipelineId:r.pipelineId??((A=r.originalData)==null?void 0:A.id),initialLabels:r.labels??((D=r.originalData)==null?void 0:D.labels)??[]})})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-semibold cursor-pointer hover:underline hover:text-[var(--primary)] text-[var(--text-primary)] transition-colors",onClick:g=>{g.stopPropagation(),t(r,a)},children:r.name}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] line-clamp-2",children:r.position})]})]}),e.jsxs("div",{className:"flex flex-col gap-1 mt-4 text-[12px] text-[var(--text-secondary)]",children:[e.jsxs("div",{className:"flex items-center gap-1 font-medium",children:[e.jsx(st,{size:12,className:"opacity-70"}),e.jsxs("span",{children:[r.experience," experience"]})]}),e.jsxs("div",{className:"flex items-center gap-1 font-medium",children:[e.jsx(_r,{size:12,className:"opacity-70"}),e.jsxs("span",{children:["Applied ",r.appliedDate]})]}),r.interviewDate&&e.jsxs("div",{className:"flex items-center gap-1 font-medium text-[var(--primary)]",children:[e.jsx(_r,{size:12,className:"opacity-100"}),e.jsxs("span",{children:["Interview on ",r.interviewDate]})]})]}),n&&((y=r.skills)==null?void 0:y.length)>0&&e.jsxs("div",{className:"flex flex-wrap gap-1 mt-3",children:[r.skills.slice(0,3).map((g,C)=>e.jsx("span",{className:"flex items-center gap-1 rounded-full border border-[var(--primary)]/20 bg-[var(--primary)]/10 px-2 py-1 text-[12px] font-bold text-[var(--primary)] shadow-sm transition-all hover:bg-[var(--primary)]/20",children:g},C)),r.skills.length>3&&e.jsxs("span",{className:"text-xs text-gray-500",children:["+",r.skills.length-3]})]})]})},Nr=()=>e.jsxs("div",{className:"relative p-4 bg-[var(--bg-primary)] border border-[var(--border)] rounded-xl mb-2 animate-pulse",children:[e.jsx("div",{className:"absolute top-2 right-2 w-10 h-4 bg-[var(--bg-secondary)] rounded"}),e.jsxs("div",{className:"flex gap-3 items-start",children:[e.jsx("div",{className:"w-10 h-10 bg-[var(--bg-secondary)] rounded-full flex-shrink-0"}),e.jsxs("div",{className:"flex-1 space-y-2 py-0.5",children:[e.jsx("div",{className:"h-4 bg-[var(--bg-secondary)] rounded w-2/3"}),e.jsx("div",{className:"h-3 bg-[var(--border)] rounded w-1/2"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3.5 h-3.5 bg-[var(--bg-secondary)] rounded-full"}),e.jsx("div",{className:"h-3 bg-[var(--bg-secondary)] rounded w-1/3"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3.5 h-3.5 bg-[var(--bg-secondary)] rounded-full"}),e.jsx("div",{className:"h-3 bg-[var(--border)] rounded w-1/4"})]})]}),e.jsxs("div",{className:"flex gap-1.5 mt-3.5",children:[e.jsx("div",{className:"h-5 bg-[var(--primary)]/10 border border-[var(--primary)]/20 rounded-full w-14"}),e.jsx("div",{className:"h-5 bg-[var(--primary)]/10 border border-[var(--primary)]/20 rounded-full w-16"}),e.jsx("div",{className:"h-5 bg-[var(--primary)]/10 border border-[var(--primary)]/20 rounded-full w-12"})]})]});it.propTypes={candidate:M.shape({id:M.string.isRequired,name:M.string.isRequired,position:M.string.isRequired,avatar:M.string,experience:M.string.isRequired,skills:M.arrayOf(M.string).isRequired,video:M.bool,appliedDate:M.string.isRequired,interviewDate:M.string}).isRequired,index:M.number.isRequired,onClick:M.func.isRequired,isSidebarCollapsed:M.bool.isRequired};const es=({isOpen:r,column:t,candidates:s,onClose:a,onCandidateClick:n,isSidebarCollapsed:o,isLoading:d,totalCount:p,hasMore:l,onLoadMore:h})=>{const x=c.useRef(null),j=c.useRef(null),b=c.useRef(null);return c.useRef(0),c.useEffect(()=>{if(!r||!l||d)return;b.current&&b.current.disconnect();const S=new IntersectionObserver(A=>{A[0].isIntersecting&&l&&!d&&(h==null||h())},{root:null,rootMargin:"200px",threshold:.1});return x.current&&S.observe(x.current),b.current=S,()=>{b.current&&b.current.disconnect()}},[r,l,d,h]),r?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 bg-blur bg-opacity-50 z-40",onClick:a}),e.jsx("div",{className:"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm flex items-center justify-center px-2 sm:px-4 pointer-events-none",children:e.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg shadow-2xl w-full pointer-events-auto flex flex-col max-w-full sm:max-w-[95vw] md:max-w-[90vw] lg:max-w-[85vw] xl:max-w-[80vw] max-h-[95vh] sm:max-h-[90vh] md:max-h-[85vh]",onClick:S=>S.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-200",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:t.color||"#24d366"}}),e.jsx("h2",{className:"text-xl font-semibold",children:t.name}),e.jsx("span",{className:"px-2.5 py-0.5 text-sm font-medium bg-gray-100 text-gray-700 rounded-full",children:p!==void 0?p:s.length})]}),e.jsx("button",{onClick:a,className:"p-2 hover:bg-gray-100 rounded-lg transition-colors","aria-label":"Close modal",children:e.jsx(_e,{className:"w-5 h-5 text-gray-500"})})]}),e.jsx("div",{ref:j,className:"flex-1 overflow-y-auto px-6 py-4",children:s.length===0&&!d?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[e.jsx("div",{className:"text-6xl mb-4",children:"ð"}),e.jsxs("p",{className:"text-gray-500 text-lg",children:["No candidates in ",t.name.toLowerCase()]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 ga
16p-4 pb-4",children:s.map((S,A)=>e.jsx("div",{className:"p-4 rounded-lg overflow-hidden border border-green-600 hover:shadow-md transition-shadow",children:e.jsx(it,{candidate:S,onClick:()=>n(S,t),isSidebarCollapsed:o,showSkills:!0})},`${S.id}-${A}`))}),d&&s.length>0&&e.jsx("div",{className:"flex flex-col items-center justify-center py-8 gap-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Sa,{className:"w-5 h-5 text-blue-500 animate-spin"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Loading more candidates..."})]})}),d&&s.length===0&&e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(ua,{})}),e.jsx("div",{ref:x,className:"h-2 w-full","aria-label":"Load more trigger"}),!l&&s.length>0&&e.jsx("div",{className:"flex items-center justify-center py-6 text-gray-500",children:e.jsx("span",{className:"text-sm",children:"ð All candidates loaded"})})]})})]})})]}):null};es.propTypes={isOpen:M.bool.isRequired,column:M.object.isRequired,candidates:M.array.isRequired,onClose:M.func.isRequired,onCandidateClick:M.func.isRequired,isSidebarCollapsed:M.bool.isRequired,isLoading:M.bool,totalCount:M.number};function ge(r){r.preventDefault()}function Je(r){r.stopPropagation()}function rs(){const r=new Map;return[function(a,n){r.get(a)&&r.get(a).forEach(o=>{o(n)})},function(a,n){const o=r.get(a)??[];o.push(n),r.set(a,o)}]}var[ts,ss]=rs();function Ja(r,t){return r.source===t.source&&r.flags.split("").sort().join("")===t.flags.split("").sort().join("")}function xr(r,t,s=!0,a=["__key"]){if(r===t)return!0;if(typeof t=="object"&&typeof r=="object"&&r!==null&&t!==null){if(r instanceof Map||r instanceof Set)return!1;if(r instanceof Date&&t instanceof Date)return r.getTime()===t.getTime();if(r instanceof RegExp&&t instanceof RegExp)return Ja(r,t);if(r===null||t===null)return!1;const n=r,o=t;if(Object.keys(n).length!==Object.keys(o).length)return!1;for(const d of a)if((d in n||d in o)&&n[d]!==o[d])return!1;for(const d in n)if(!(d in o)||n[d]!==o[d]&&!s||s&&!xr(n[d],o[d],s,a))return!1;return!0}return!1}function as(r){return r.split(" ").filter(t=>t)}function ar(r){return{x:r.clientX,y:r.clientY}}Array();var ct=typeof window<"u",fe=new WeakMap,Pe=new WeakMap;function ns(){if(!ct)return!1;if("userAgentData"in navigator)return navigator.userAgentData.mobile===!0;const r=navigator.userAgent,t=/android|iphone|ipod/i.test(r),s=/iPad/.test(r)||r.includes("Macintosh")&&navigator.maxTouchPoints>1;return t||s}var Ha={affectedNodes:[],coordinates:{x:0,y:0},currentTargetValue:void 0,on:ss,emit:ts,originalZIndex:void 0,pointerSelection:!1,preventEnter:!1,rootUserSelect:void 0,nodePointerdown:void 0,longPress:!1,scrolling:!1,longPressTimeout:void 0,remapJustFinished:!1,selectedNodes:[],selectedParent:void 0,preventSynthDrag:!1,pointerDown:void 0,lastScrollContainerX:null,lastScrollContainerY:null,rootScrollWidth:void 0,rootScrollHeight:void 0,dragItemRect:void 0,windowScrollX:void 0,windowScrollY:void 0,lastScrollDirectionX:void 0,lastScrollDirectionY:void 0,scrollDebounceTimeout:void 0,frameIdX:void 0,frameIdY:void 0},v=Ha,Be=!1,At,et;function qa(){v.scrollDebounceTimeout&&clearTimeout(v.scrollDebounceTimeout),v.longPressTimeout&&clearTimeout(v.longPressTimeout),v.frameIdX!==void 0&&cancelAnimationFrame(v.frameIdX),v.frameIdY!==void 0&&cancelAnimationFrame(v.frameIdY),v={...{affectedNodes:[],coordinates:{x:0,y:0},on:ss,emit:ts,currentTargetValue:void 0,originalZIndex:void 0,pointerId:void 0,preventEnter:!1,remapJustFinished:!1,selectedNodes:[],nodePointerdown:void 0,rootUserSelect:void 0,preventSynthDrag:!1,scrolling:!1,selectedParent:void 0,pointerSelection:!1,synthScrollDirection:void 0,draggedNodeDisplay:void 0,synthDragScrolling:!1,longPress:!1,pointerDown:void 0,longPressTimeout:void 0,lastScrollContainerX:null,lastScrollContainerY:null,rootScrollWidth:void 0,rootScrollHeight:void 0,dragItemRect:void 0,windowScrollX:void 0,windowScrollY:void 0,lastScrollDirectionX:void 0,lastScrollDirectionY:void 0,scrollDebounceTimeout:void 0,frameIdX:void 0,frameIdY:void 0}}}function os(r){return Object.assign(v,r),r.initialParent.data.emit("dragStarted",v),Be=!1,v.emit("dragStarted",v),v}function Ya(){v.activeState&&Ke(v.activeState.parent,void 0,v),v.selectedState&&We(v.selectedState.nodes,v.selectedState.parent,v),v.selectedState=v.activeState=void 0}function Va(){if(v.pointerDown&&(v.pointerDown.node.el.draggable=!0),v.pointerDown=void 0,!ye(v))return;const r=v.currentParent.data.config;ye(v)&&r.handleEnd(v)}function Xa(r){r.key==="Escape"&&(v.selectedState&&We(v.selectedState.nodes,v.selectedState.parent,v),v.activeState&&Ke(v.activeState.parent,void 0,v),v.selectedState=v.activeState=void 0)}function Ua(r){if(!be(v))return;Be=!0;const t=v.initialParent.data.config.handleEnd;t(v)}function Wa(r){if(!be(v))return;ge(r);const{x:t,y:s}=ar(r);be(v)&&Ar({x:t,y:s},r,v)}function Ka(r){if(!v.pointerDown||!v.pointerDown.validated)return;const t=v.pointerDown.parent.data.config;if(!(r.pointerType==="mouse"&&!ns()))if(ye(v))ye(v)&&It(r,v);else{if(ge(r),t.longPress&&!v.longPress){clearTimeout(v.longPressTimeout),v.longPress=!1;return}const s=t.draggedNodes(v.pointerDown);t.dragstartClasses(v.pointerDown.node,s,t,!0);const a=v.pointerDown.node.el.getBoundingClientRect(),n=Dn(v.pointerDown.node,v.pointerDown.parent,r,v,s,a);It(r,n,!0)}}function Za({parent:r,getValues:t,setValues:s,config:a={}}){var l,h,x;if(!ct)return;At||(At=Tr(document,{dragover:Wa,pointerdown:Ya,pointerup:Va,keydown:Xa,drop:Ua,pointermove:Ka,pointercancel:ve(a.handlePointercancel),touchmove:j=>
16{be(v)&&j.cancelable&&ge(j)},contextmenu:j=>{ye(v)&&ge(j)}})),is(r);const[n,o]=rs(),d={getValues:t,setValues:s,config:{dragDropEffect:a.dragDropEffect??"move",dragEffectAllowed:a.dragEffectAllowed??"move",draggedNodes:un,dragstartClasses:fn,handleNodeKeydown:bn,handleDragstart:pn,handleNodeDragover:En,handleParentDragover:_n,handleNodeDrop:vn,handleNodeFocus:yn,handleNodeBlur:jn,handlePointercancel:wn,handleEnd:Sn,handleDragend:Nn,handleParentFocus:Qa,handleNodePointerup:Cn,handleNodePointerover:hn,handleParentPointerover:Pn,handleParentScroll:mn,handleNodePointerdown:xn,handleNodeDragenter:Tn,handleNodeDragleave:Mn,handleParentDrop:rn,multiDrag:a.multiDrag??!1,nativeDrag:a.nativeDrag??!0,performSort:Ga,performTransfer:en,root:a.root??document,setupNode:sn,setupNodeRemap:cs,reapplyDragClasses:an,tearDownNode:on,tearDownNodeRemap:nn,remapFinished:cn,threshold:{horizontal:0,vertical:0},...a},enabledNodes:[],abortControllers:{},privateClasses:[],on:o,emit:n};new MutationObserver(ln).observe(r,{childList:!0}),fe.set(r,d),(l=a.plugins)==null||l.forEach(j=>{var b,S;(S=(b=j(r))==null?void 0:b.tearDown)==null||S.call(b)}),(h=a.plugins)==null||h.forEach(j=>{var b,S;(S=(b=j(r))==null?void 0:b.tearDown)==null||S.call(b)}),(x=a.plugins)==null||x.forEach(j=>{var b,S;(S=(b=j(r))==null?void 0:b.setup)==null||S.call(b)}),tn(r,d),Lr(r,!0)}function ls(r,t,s,a,n,o){const{x:d,y:p}=ar(s),l=r.el.getBoundingClientRect();return{affectedNodes:[],ascendingDirection:!1,clonedDraggedEls:[],coordinates:{x:d,y:p},draggedNode:{el:r.el,data:r.data},draggedNodes:a,incomingDirection:void 0,initialIndex:r.data.index,initialParent:{el:t.el,data:t.data},currentParent:{el:t.el,data:t.data},longPress:t.data.config.longPress??!1,longPressTimeout:void 0,currentTargetValue:r.data.value,scrollEls:[],startLeft:n||d-((l==null?void 0:l.left)??0),startTop:o||p-((l==null?void 0:l.top)??0),targetIndex:r.data.index,transferred:!1}}function Ga({parent:r,draggedNodes:t,targetNodes:s}){Lr(r.el);const a=t.map(l=>l.data.value),n=sr(r.el,r.data),o=t[0].data.index,d=[...r.data.enabledNodes],p=[...n.filter(l=>!a.some(h=>xr(l,h)))];p.splice(s[0].data.index,0,...a),"draggedNode"in v&&(v.currentTargetValue=s[0].data.value),nt(r.el,r.data,[...p]),r.data.config.onSort&&r.data.config.onSort({parent:{el:r.el,data:r.data},previousValues:[...n],previousNodes:[...d],nodes:[...r.data.enabledNodes],values:[...p],draggedNodes:t,previousPosition:o,position:s[0].data.index,targetNodes:s,state:v})}function Ke(r,t,s){if(!t){s.activeState=void 0;return}s.activeState={node:t,parent:r}}function We(r,t,s){const a=t.data.config.selectedClass;if(!s.selectedState)return;const n=Array.from(r);$e(r.map(o=>o.el),a);for(const o of n){o.el.setAttribute("aria-selected","false");const d=s.selectedState.nodes.findIndex(p=>p.el===o.el);d!==-1&&s.selectedState.nodes.splice(d,1)}}function wr(r,t,s,a,n=!1){a.pointerSelection=n;for(const o of t)o.el.setAttribute("aria-selected","true"),tr([o.el],r.data.config.selectedClass,!0);a.selectedState={nodes:t,parent:r},Ke(r,s,a)}function Qa(r,t){const s=r.targetData.parent.data.enabledNodes[0];s&&(t.selectedState&&t.selectedState.parent.el!==r.targetData.parent.el?Ke(r.targetData.parent,s,t):t.selectedState||Ke(r.targetData.parent,s,t))}function en({currentParent:r,targetParent:t,initialParent:s,draggedNodes:a,initialIndex:n,targetNodes:o,state:d}){Lr(s.el);const p=a.map(b=>b.data.value),l=[...sr(r.el,r.data).filter(b=>!p.some(S=>xr(b,S)))],h=sr(t.el,t.data),x=s.el===t.el&&t.data.config.sortable===!1;let j;o.length?(x?j=n:t.data.config.sortable===!1?j=t.data.enabledNodes.length:j=o[0].data.index,h.splice(j,0,...p)):(j=x?n:t.data.enabledNodes.length,h.splice(j,0,...p)),nt(r.el,r.data,l),nt(t.el,t.data,h),t.data.config.onTransfer&&t.data.config.onTransfer({sourceParent:r,targetParent:t,initialParent:s,draggedNodes:a,targetIndex:j,state:d,targetNodes:o}),r.data.config.onTransfer&&r.data.config.onTransfer({sourceParent:r,targetParent:t,initialParent:s,draggedNodes:a,targetIndex:j,state:d,targetNodes:o||[]})}function sr(r,t){return[...t.getValues(r)]}function nt(r,t,s){t.setValues(s,r)}function rn(r,t){Je(r.e),Be=!0;const s=t.initialParent.data.config.handleEnd;s(t)}function is(r){const t=fe.get(r);t&&t.abortControllers.mainParent&&t.abortControllers.mainParent.abort()}function be(r){return"draggedNode"in r&&!!r.draggedNode}function ye(r){return"synthDragging"in r&&!!r.synthDragging}function tn(r,t){t.abortControllers.mainParent=Tr(r,{dragover:Sr(t.config.handleParentDragover),handleParentPointerover:t.config.handleParentPointerover,scroll:Sr(t.config.handleParentScroll),drop:Sr(t.config.handleParentDrop),hasNestedParent:s=>{const a=fe.get(s.target);a&&(a.nestedParent=s.detail.parent)},focus:Sr(t.config.handleParentFocus)}),t.config.externalDragHandle&&t.config.externalDragHandle.el&&t.config.externalDragHandle.callback&&(t.abortControllers.externalDragHandle=Tr(t.config.externalDragHandle.el,{pointerdown:s=>{if(!t.config.externalDragHandle||!t.config.externalDragHandle.callback)return;const a=t.config.externalDragHandle.callback();if(!Ir(a)){console.warn("No draggable item found from external drag handle callback");return}const n=Pe.get(a);if(!n)return;const o=a.parentNode;if(!(o instanceof HTMLElement))return;const d=fe.get(o);d&&(v.pointerDown={parent:{el:o,data:d},node:{el:a,data:n},validated:!0},a.draggable=!0)}}))}function sn(r){var s;const t=r.parent.data.config;r.node.data.abortControllers.mainNode=Tr(r.node.el,{keydown:ve(t.handleNodeKeydown),dragstart:ve(t.handleDragstart),dragover:ve(t.handleNodeDragover),dragenter:ve(t.handleNodeDragenter),dragleave:ve(t.handleNodeDragleave),dragend:ve(t.handleDragend),drop:ve(t.handleNodeDrop),focus:ve(t.handleNodeFocus),blur:ve(t.handleNodeBlur),pointerup:ve(t.handleNodePointerup),pointercancel:ve(t.handlePointercancel),pointerdown:ve(t.handleNodePointerdown),handleNodePointerover:t.handleNodePointerover,touchmove:a=>{be(v)&&a.cancelable&&ge(a)},contextmenu:a=>{ye(v)&&ge(a)}}),r.node.el.draggable=!0,t.reapplyDragClasses(r.node.el,r.parent.data),(s=r.parent.data.config.plugins)==null||s.forEac
16h(a=>{var n,o;(o=(n=a(r.parent.el))==null?void 0:n.setupNode)==null||o.call(n,r)})}function cs(r){var t;Pe.set(r.node.el,r.node.data),(t=r.parent.data.config.plugins)==null||t.forEach(s=>{var a,n;(n=(a=s(r.parent.el))==null?void 0:a.setupNodeRemap)==null||n.call(a,r)})}function an(r,t){if(!be(v))return;const s=ye(v)?t.config.synthDropZoneClass:t.config.dropZoneClass;v.draggedNode.el===r&&tr([r],s,!0)}function nn(r){var t;(t=r.parent.data.config.plugins)==null||t.forEach(s=>{var a,n;(n=(a=s(r.parent.el))==null?void 0:a.tearDownNodeRemap)==null||n.call(a,r)})}function on(r){var t,s,a,n,o;(t=r.parent.data.config.plugins)==null||t.forEach(d=>{var p,l;(l=(p=d(r.parent.el))==null?void 0:p.tearDownNode)==null||l.call(p,r)}),r.node.el.draggable=!1,(a=(s=r.node.data)==null?void 0:s.abortControllers)!=null&&a.mainNode&&((o=(n=r.node.data)==null?void 0:n.abortControllers)==null||o.mainNode.abort())}function ln(r){if(r.length===1&&r[0].addedNodes.length===1&&!(r[0].addedNodes[0]instanceof HTMLElement))return;const t=r[0].target;!(t instanceof HTMLElement)||!fe.get(t)||Lr(t)}function Lr(r,t){var p;const s=fe.get(r);if(!s)return;s.privateClasses=Array.from(r.classList);const a=[],n=s.config;for(let l=0;l<r.children.length;l++){const h=r.children[l];if(!Ir(h)||h.id==="dnd-dragged-node-clone")continue;const x=Pe.get(h);(t||!x)&&n.tearDownNode({parent:{el:r,data:s},node:{el:h,data:x}}),!n.disabled&&(!n.draggable||n.draggable&&n.draggable(h))&&a.push(h)}if(a.length!==s.getValues(r).length&&!n.disabled){console.warn("The number of draggable items defined in the parent element does not match the number of values. This may cause unexpected behavior.");return}const o=s.getValues(r),d=[];for(let l=0;l<a.length;l++){const h=a[l],x=Pe.get(h);if(n.draggableValue&&!n.draggableValue(o[l]))continue;const j=Object.assign(x??{privateClasses:[],abortControllers:{}},{value:o[l],index:l});if(!be(v)&&v.activeState&&xr(v.activeState.node.data.value,j.value)&&Ke({data:s,el:r},{el:h,data:j},v),be(v)&&xr(v.draggedNode.data.value,j.value)){v.draggedNode.data=j,v.draggedNode.el=h;const b=v.draggedNodes.find(S=>S.data.value===j.value);b&&(b.el=h)}d.push({el:h,data:j}),(t||!x)&&n.setupNode({parent:{el:r,data:s},node:{el:h,data:j}}),cs({parent:{el:r,data:s},node:{el:h,data:j}})}fe.set(r,{...s,enabledNodes:d}),n.remapFinished(s),(p=s.config.plugins)==null||p.forEach(l=>{var h,x;(x=(h=l(r))==null?void 0:h.remapFinished)==null||x.call(h)})}function cn(){v.remapJustFinished=!0,"draggedNode"in v&&(v.affectedNodes=[])}function dn(r){return!!r.targetData.parent.data.config.nativeDrag}function un(r){var t;if(r.parent.data.config.multiDrag){if(v.selectedState)return[r.node,...(t=v.selectedState)==null?void 0:t.nodes.filter(s=>s.el!==r.node.el)]}else return[r.node];return[]}function mn(r){be(v)&&(v.emit("scrollStarted",v),!ye(v)&&(v.preventEnter=!0,et&&clearTimeout(et),et=setTimeout(()=>{v.preventEnter=!1,v.emit("scrollEnded",v)},100)))}function pn(r,t){const s=r.targetData.parent.data.config;if(!s.nativeDrag||!dn(r)||!ds({x:r.e.clientX,y:r.e.clientY,node:r.targetData.node,config:s})){ge(r.e);return}let a=s.draggedNodes({parent:r.targetData.parent,node:r.targetData.node});a.length===0&&(a=[r.targetData.node]),s.dragstartClasses(r.targetData.node,a,s);const n=gn(r,a);if(s.onDragstart){const o={parent:r.targetData.parent,values:sr(r.targetData.parent.el,r.targetData.parent.data),draggedNode:n.draggedNode,draggedNodes:n.draggedNodes,position:n.initialIndex,state:n};s.onDragstart(o)}}function xn(r,t){var p,l;if(Je(r.e),t.pointerDown={parent:r.targetData.parent,node:r.targetData.node,validated:!1},!ds({x:r.e.clientX,y:r.e.clientY,node:r.targetData.node,config:r.targetData.parent.data.config}))return;t.pointerDown.validated=!0,kn(r,t,r.targetData.node);const s=r.targetData.parent.data;let a=[r.targetData.node];const n=r.e.ctrlKey||r.e.metaKey,o=r.e.shiftKey,d=r.targetData.node;if(n&&s.config.multiDrag){t.selectedState?t.selectedState.nodes.findIndex(x=>x.el===d.el)===-1?a=[...t.selectedState.nodes,d]:a=t.selectedState.nodes.filter(x=>x.el!==d.el):a=[d],wr(r.targetData.parent,a,r.targetData.node,t,!0);return}if(o&&s.config.multiDrag){const h=r.targetData.parent.data.enabledNodes;if(t.selectedState&&t.activeState)if(t.selectedState.parent.el!==r.targetData.parent.el){We(t.selectedState.nodes,t.selectedState.parent,t),t.selectedState=void 0;for(let x=0;x<=d.data.index;x++)a.push(h[x])}else{const[x,j]=t.activeState.node.data.index<r.targetData.node.data.index?[t.activeState.node.data.index,r.targetData.node.data.index]:[r.targetData.node.data.index,t.activeState.node.data.index];
16a=h.slice(x,j+1)}else for(let x=0;x<=d.data.index;x++)a.push(h[x]);wr(r.targetData.parent,a,r.targetData.node,t,!0);return}(l=(p=t.selectedState)==null?void 0:p.nodes)!=null&&l.length?t.selectedState.nodes.findIndex(x=>x.el===r.targetData.node.el)===-1&&(t.selectedState.parent.el!==r.targetData.parent.el?We(t.selectedState.nodes,r.targetData.parent,t):s.config.multiDrag&&ns()?a.push(...t.selectedState.nodes):We(t.selectedState.nodes,r.targetData.parent,t),wr(r.targetData.parent,a,r.targetData.node,t,!0)):wr(r.targetData.parent,[r.targetData.node],r.targetData.node,t,!0)}function fn(r,t,s,a=!1){tr(t.map(n=>n.el),a?s.synthDraggingClass:s.draggingClass),setTimeout(()=>{$e(t.map(n=>n.el),a?s.synthDraggingClass:s.draggingClass),tr(t.map(n=>n.el),a?s.synthDragPlaceholderClass:s.dragPlaceholderClass),tr(t.map(n=>n.el),a?s.synthDropZoneClass:s.dropZoneClass),$e(t.map(n=>n.el),s.selectedClass)})}function gn(r,t){Je(r.e);const s=os(ls(r.targetData.node,r.targetData.parent,r.e,t));if(r.e.dataTransfer){const a=r.targetData.parent.data.config;r.e.dataTransfer.dropEffect=a.dragDropEffect,r.e.dataTransfer.effectAllowed=a.dragEffectAllowed;let n;if(r.e.dataTransfer.setData("text/plain",""),a.dragImage)n=a.dragImage(r,t);else{if(!a.multiDrag||t.length===1)return r.targetData.node.el.style.zIndex="9999",r.targetData.node.el.style.boxSizing="border-box",r.e.dataTransfer.setDragImage(r.targetData.node.el,r.e.offsetX,r.e.offsetY),s.originalZIndex=r.targetData.node.el.style.zIndex,s;{const o=document.createElement("div");o.setAttribute("id","dnd-dragged-node-clone"),o.setAttribute("popover","manual");for(const p of t){const l=p.el.cloneNode(!0);l.id=p.el.id+"-clone",l.style.pointerEvents="none",o.appendChild(l)}const{width:d}=t[0].el.getBoundingClientRect();Object.assign(o.style,{display:"flex",flexDirection:"column",width:`${d}px`,position:"absolute",pointerEvents:"none",zIndex:"9999",left:"-9999px",boxSizing:"border-box",background:"transparent",overflow:"hidden"}),r.targetData.parent.el.appendChild(o),o.showPopover(),o.getBoundingClientRect(),n=o,r.e.dataTransfer.setDragImage(n,r.e.offsetX,r.e.offsetY)}}setTimeout(()=>{n==null||n.remove()})}return s}function ds({x:r,y:t,node:s,config:a}){if(a.externalDragHandle)return!1;if(!a.dragHandle)return!0;const n=s.el.querySelectorAll(a.dragHandle);if(!n)return!1;const o=a.root.elementFromPoint(r,t);if(!o)return!1;for(const d of Array.from(n))if(o===d||d.contains(o))return!0;return!1}function bn(r){}function hn(r){r.detail.targetData.parent.el===r.detail.state.currentParent.el?ms(r.detail,r.detail.state):zr(r.detail,r.detail.state)}function vn(r,t){const s=r.targetData.parent.data.config;s.nativeDrag&&(Je(r.e),Be=!0,s.handleEnd(t))}function yn(r){r.e.target!==r.e.currentTarget&&v.pointerDown&&(v.pointerDown.node.el.draggable=!1)}function jn(r){r.e.target!==r.e.currentTarget&&v.pointerDown&&(v.pointerDown.node.el.draggable=!0)}function Nn(r,t){const s=r.targetData.parent.data.config;if(s.nativeDrag){if(ge(r.e),Je(r.e),Be){Be=!1;return}s.handleEnd(t)}}function wn(r,t){var a;if(!ye(t))return;if(ge(r.e),Be){Be=!1;return}const s=(a=fe.get(t.initialParent.el))==null?void 0:a.config;s!=null&&s.onDragend&&s.onDragend({parent:t.currentParent,values:sr(t.currentParent.el,t.currentParent.data),draggedNode:t.draggedNode,draggedNodes:t.draggedNodes,state:t}),s==null||s.handleEnd(t)}function Sn(r){var x,j,b,S,A;r.draggedNode&&(r.draggedNode.el.draggable=!0);const t=r.draggedNodes.map(D=>D.el),s=r.initialParent.data,a=ye(r),n=(x=fe.get(r.initialParent.el))==null?void 0:x.config,o=a?n==null?void 0:n.synthDropZoneClass:n==null?void 0:n.dropZoneClass,d=(j=s==null?void 0:s.config)==null?void 0:j.longPressClass,p=a?(b=s==null?void 0:s.config)==null?void 0:b.synthDragPlaceholderClass:(S=s==null?void 0:s.config)==null?void 0:S.dragPlaceholderClass,l=r.originalZIndex;ye(r)&&(r.clonedDraggedNode&&r.clonedDraggedNode.remove(),r.longPressTimeout&&clearTimeout(r.longPressTimeout)),ot(r),r.lastScrollDirectionX=void 0,r.lastScrollDirectionY=void 0,r.preventEnter=!1,r.scrollDebounceTimeout&&(clearTimeout(r.scrollDebounceTimeout),r.scrollDebounceTimeout=void 0),l!==void 0&&r.draggedNode&&(r.draggedNode.el.style.zIndex=l),requestAnimationFrame(()=>{$e(t,o),$e(t,d),$e(t,p)}),We(r.draggedNodes,r.currentParent,r),Ke(r.currentParent,void 0,r);const h={...r};(A=n==null?void 0:n.onDragend)==null||A.call(n,{parent:h.currentParent,values:sr(h.currentParent.el,h.currentParent.data),draggedNode:h.draggedNode,draggedNodes:h.draggedNodes,state:h}),r.emit("dragEnded",h),qa()}function Cn(r,t){Je(r.e),!t.pointerSelection&&t.selectedState&&We(t.selectedState.nodes,r.targetData.parent,t);const s=r.targetData.parent.data.config;t.pointerSelection=!1,"longPressTimeout"in t&&t.longPressTimeout&&clearTimeout(t.longPressTimeout),t.longPress=!1,$e(r.targetData.parent.data.enabledNodes.map(a=>a.el),s.longPressClass),be(t)&&s.handleEnd(t)}function Dn(r,t,s,a,n,o){var A,D;const d=t.data.config;let p,l;const h=["display","flexDirection","alignItems","justifyContent","padding","paddingTop","margin","marginTop","marginBottom","marginLeft","marginRight","paddingBottom","paddingLeft","paddingRight","border","borderRadius","background","backgroundColor","boxShadow","font","color","lineHeight","gap","width","height","boxSizing","overflow"],x=(y,g)=>{const C=window.getComputedStyle(y);h.forEach(I=>{g.style[I]=C[I]})},j=(y,g={})=>{Object.assign(y.style,{position:"absolute",zIndex:"9999",pointerEvents:"none",willChange:"transform",boxSizing:"border-box",opacity:"0",overflow:"hidden",
16width:`${o.width}px`,height:`${o.height}px`,...g})};if(d.synthDragImage)l=d.synthDragImage(r,t,s,n),p=l.dragImage,p.setAttribute("popover","manual"),j(p);else if(!d.multiDrag||n.length===1)p=r.el.cloneNode(!0),x(r.el,p),p.setAttribute("popover","manual"),j(p);else{const y=document.createElement("div");y.setAttribute("popover","manual"),n.forEach(g=>{const C=g.el.cloneNode(!0);x(g.el,C),C.style.pointerEvents="none",C.style.margin="0",y.append(C)}),y.style.display="flex",y.style.flexDirection="column",y.style.padding="0",y.style.margin="0",y.style.position="absolute",y.style.zIndex="9999",y.style.pointerEvents="none",p=y}p.id="dnd-dragged-node-clone",t.el.appendChild(p),p.showPopover();const b={clonedDraggedEls:[],clonedDraggedNode:p,synthDragScrolling:!1,synthDragging:!0,rootScrollWidth:(A=document.scrollingElement)==null?void 0:A.scrollWidth,rootScrollHeight:(D=document.scrollingElement)==null?void 0:D.scrollHeight};return os({...ls(r,t,s,n,l==null?void 0:l.offsetX,l==null?void 0:l.offsetY),...b})}function kn(r,t,s){const a=r.targetData.parent.data.config;t.longPressTimeout=setTimeout(()=>{t&&(t.longPress=!0,a.longPressClass&&r.e.cancelable&&tr([s.el],a.longPressClass),ge(r.e))},a.longPressDuration||1e3)}function ot(r,t=!0,s=!0){t&&(r.frameIdX!==void 0&&(cancelAnimationFrame(r.frameIdX),r.frameIdX=void 0),r.lastScrollDirectionX=void 0),s&&(r.frameIdY!==void 0&&(cancelAnimationFrame(r.frameIdY),r.frameIdY=void 0),r.lastScrollDirectionY=void 0),!r.frameIdX&&!r.frameIdY&&(r.preventEnter=!1)}function us(r,t=!1){var x;const{x:s,y:a}=r.coordinates,n=r.startLeft??0,o=r.startTop??0,d=window.scrollX??0,p=window.scrollY??0,l=s-n+d,h=a-o+p;r.clonedDraggedNode.style.transform=`translate3d(${l}px, ${h}px, 0px)`,t&&(r.clonedDraggedNode.style.opacity="1",$e(r.draggedNodes.map(j=>j.el),(x=r.initialParent.data.config)==null?void 0:x.longPressClass))}function It(r,t,s=!1){const a=ar(r);t.coordinates.x=a.x,t.coordinates.y=a.y,us(t,s),t.scrollDebounceTimeout&&(clearTimeout(t.scrollDebounceTimeout),t.scrollDebounceTimeout=void 0),t.scrollDebounceTimeout=setTimeout(()=>{ye(t)&&Ar(t.coordinates,r,t)},16);const n=In(a);if(!n){document.dispatchEvent(new CustomEvent("handleRootPointerover",{detail:{e:r,state:t}}));return}const o={e:r,targetData:n,state:t};"node"in n?n.node.el.dispatchEvent(new CustomEvent("handleNodePointerover",{detail:o})):n.parent.el.dispatchEvent(new CustomEvent("handleParentPointerover",{detail:o}))}function En(r,t){var o;if(!r.targetData.parent.data.config.nativeDrag)return;const{x:a,y:n}=ar(r.e);t.coordinates.y=n,t.coordinates.x=a,ge(r.e),Je(r.e),be(t)&&Ar({x:a,y:n},r.e,t),r.targetData.parent.el===((o=t.currentParent)==null?void 0:o.el)?ms(r,t):zr(r,t)}function _n(r,t){if(!r.targetData.parent.data.config.nativeDrag)return;ge(r.e),Je(r.e);const{x:a,y:n}=ar(r.e);be(t)&&Ar({x:a,y:n},r.e,t),zr(r,t)}function Pn(r){r.detail.targetData.parent.el!==r.detail.state.currentParent.el&&zr(r.detail,r.detail.state)}function Rn({currentParent:r,targetParent:t,initialParent:s,draggedNodes:a,state:n}){if(t.el===r.el)return!1;const o=t.data.config;if(a[0].el.contains(t.el)||o.dropZone===!1)return!1;const d=s.data.config;return o.accepts?o.accepts(t,s,r,n):!(!o.group||o.group!==d.group)}function Tn(r,t){ge(r.e)}function Mn(r,t){ge(r.e)}function Ln(r,t,s,a){var x;if(t.affectedNodes.map(j=>j.data.value).includes(r.targetData.node.data.value))return!1;if(t.remapJustFinished)return t.remapJustFinished=!1,(r.targetData.node.data.value===t.currentTargetValue||t.draggedNodes.map(j=>j.el).includes(r.targetData.node.el))&&(t.currentTargetValue=r.targetData.node.data.value),!1;if(t.preventEnter)return!1;if(t.draggedNodes.map(j=>j.el).includes(r.targetData.node.el))return t.currentTargetValue=void 0,!1;if(r.targetData.node.data.value===t.currentTargetValue||r.targetData.parent.el!==((x=t.currentParent)==null?void 0:x.el)||r.targetData.parent.data.config.sortable===!1||r.targetData.node.el.contains(t.draggedNodes[0].el))return!1;const n=r.targetData.node.el.getBoundingClientRect(),o=t.draggedNode.el.getBoundingClientRect(),d=n.y-o.y,p=n.x-o.x;let l;Math.abs(d)>Math.abs(p)?l=d>0?"above":"below":l=p>0?"left":"right";const h=t.currentParent.data.config.threshold;switch(l){case"left":if(s>n.x+n.width*h.horizontal)return t.incomingDirection="left",!0;break;case"right":if(s<n.x+n.width*(1-h.horizontal))return t.incomingDirection="right",!0;break;case"above":if(a>n.y+n.height*h.vertical)return t.incomingDirection="above",!0;break;case"below":if(a<n.y+n.height*(1-h.vertical))return t.incomingDirection="below",!0;break}return!1}function ms(r,t){const{x:s,y:a}=ar(r.e);if(!Ln(r,t,s,a))return;const n=t.draggedNode.data.index>r.targetData.node.data.index?[r.targetData.node.data.index,t.draggedNode.data.index]:[t.draggedNode.data.index,r.targetData.node.data.index];t.targetIndex=r.targetData.node.data.index,t.affectedNodes=r.targetData.parent.data.enabledNodes.filter(o=>n[0]<=o.data.index&&o.data.index<=n[1]&&o.el!==t.draggedNode.el),r.targetData.parent.data.config.performSort({parent:r.targetData.parent,draggedNodes:t.draggedNodes,targetNodes:[r.targetData.node]})}function ve(r){function t(s){const a=Pe.get(s);if(!a)return;const n=fe.get(s.parentNode);
16if(n)return{node:{el:s,data:a},parent:{el:s.parentNode,data:n}}}return s=>{const a=t(s.currentTarget);if(a)return r({e:s,targetData:a},v)}}function zr(r,t){ge(r.e),Rn({currentParent:t.currentParent,targetParent:r.targetData.parent,initialParent:t.initialParent,draggedNodes:t.draggedNodes,state:t})&&(r.targetData.parent.data.config.performTransfer({currentParent:t.currentParent,targetParent:r.targetData.parent,initialParent:t.initialParent,draggedNodes:t.draggedNodes,initialIndex:t.initialIndex,state:t,targetNodes:"node"in r.targetData?[r.targetData.node]:[]}),t.currentParent=r.targetData.parent,t.transferred=!0)}function Sr(r){function t(s){const a=fe.get(s);if(a)return{parent:{el:s,data:a}}}return s=>{const a=t(s.currentTarget);if(a)return r({e:s,targetData:a},v)}}function tr(r,t,s=!1){function a(n,o){Pe.set(n,o)}for(const n of r){const o=Pe.get(n),d=zn(n,t,o,s);d&&a(n,d)}}function zn(r,t,s,a=!1){if(!t)return;const n=as(t);if(!n.length)return;if(!s){r.classList.add(...n);return}const o=[];for(const d of n)r.classList.contains(d)?r.classList.contains(d)&&a===!1&&o.push(d):r.classList.add(d);return s.privateClasses=o,s}function $e(r,t){if(!t)return;const s=as(t);if(s.length)for(const a of r){if(!Ir(a)){a.classList.remove(...s);continue}const n=Pe.get(a)||fe.get(a);if(n)for(const o of s)n.privateClasses.includes(o)||a.classList.remove(o)}}function Ft(r,t,s,a,n){const d=n.axis==="x",p=r===document.scrollingElement,l=d?"scrollLeft":"scrollTop",h=d?"clientWidth":"clientHeight",x=d?"offsetWidth":"offsetHeight",j=d?"scrollWidth":"scrollHeight",b=d?t.clientX:t.clientY,S=d?a.left:a.top,A=d?s.overflowX:s.overflowY;if(p){const D=r[l],y=r[h],g=D>0,C=D+y<(d?n.state.rootScrollWidth||0:r[j]);return d?{left:g&&b<y*.075,right:C&&b>y*(1-.075)}:{up:g&&b<y*.075,down:C&&b>y*(1-.075)}}if((A==="auto"||A==="scroll")&&r!==document.body&&r!==document.documentElement){const D=r[j],y=r[x],g=r[l],C=g>0,I=g<D-y;return d?{left:C&&b<S+y*.075,right:I&&b>S+y*(1-.075)}:{up:C&&b<S+y*.075,down:I&&b>S+y*(1-.075)}}return d?{left:!1,right:!1}:{up:!1,down:!1}}function An(r,t,s,a){if(!be(s)||!s.draggedNode)return;s.preventEnter=!0;const n=a.axis==="x",o=a.direction==="positive"?1:-1,d=20,p=n?"lastScrollDirectionX":"lastScrollDirectionY",l=n?"frameIdX":"frameIdY";s[l]!==void 0&&(cancelAnimationFrame(s[l]),s[l]=void 0),s[p]=a.direction;const h=()=>{if(!be(s)||!s.draggedNode){s[l]!==void 0&&(cancelAnimationFrame(s[l]),s[l]=void 0);return}const x=n?"scrollLeft":"scrollTop",j=n?"clientWidth":"clientHeight",b=n?"scrollWidth":"scrollHeight",S=r[x],A=r[j],D=r[b];if(!(o>0?S+A<D:S>0)){s[l]=void 0,s[p]=void 0;return}r[x]+=d*o,ye(s)&&us(s),s[l]=requestAnimationFrame(h)};s[l]=requestAnimationFrame(h)}function Ot(r,t,s){const a=r.getBoundingClientRect();return t>=a.left&&t<=a.right&&s>=a.top&&s<=a.bottom}function Ar(r,t,s){if(!be(s)||!s.draggedNode)return;ot(s);const{x:a,y:n}=r;let o=!1;const d=(l,h,x)=>{An(x,t,s,{axis:l,direction:h}),o=!0},p=l=>{const h=window.getComputedStyle(l),x=l.getBoundingClientRect(),j=Ft(l,t,h,x,{axis:"x",state:s}),b=Ft(l,t,h,x,{axis:"y"});(j.left||j.right)&&(s.lastScrollContainerX=l,d("x",j.right?"positive":"negative",l)),(b.up||b.down)&&(s.lastScrollContainerY=l,d("y",b.down?"positive":"negative",l))};if(s.lastScrollContainerX&&Ot(s.lastScrollContainerX,a,n)&&p(s.lastScrollContainerX),!o&&s.lastScrollContainerY&&Ot(s.lastScrollContainerY,a,n)&&p(s.lastScrollContainerY),!o){let l=d
16ocument.elementFromPoint(a,n);for(;l&&!(o&&s.lastScrollContainerX&&s.lastScrollContainerY);)l instanceof HTMLElement&&p(l),l=l.parentElement}if(!o){const l=document.scrollingElement;l instanceof HTMLElement&&p(l)}o||ot(s)}function In(r){let t=document.elementFromPoint(r.x,r.y);if(!Ir(t))return;let s,a=!0;for(;t&&a;){if(Pe.has(t)||fe.has(t)){a=!1,s=fe.has(t);break}t=t.parentNode}if(s){const n=fe.get(t);return n?{parent:{el:t,data:n}}:void 0}else{const n=Pe.get(t);if(!n)return;const o=fe.get(t.parentNode);return o?{node:{el:t,data:n},parent:{el:t.parentNode,data:o}}:void 0}}function Ir(r){return r instanceof HTMLElement&&r.parentNode instanceof HTMLElement}function Tr(r,t){const s=new AbortController;for(const a in t){const n=t[a];r.addEventListener(a,n,{signal:s.signal,passive:!1,capture:a==="focus"||a==="blur"})}return s}function Fn(r){if(r instanceof HTMLElement)return r;if("current"in r&&r.current instanceof HTMLElement)return r.current;console.warn("Invalid parent element",r)}function On(r,t){const s=Fn(r);s&&t(s)}var Mr=new WeakMap;function $n(r){const t=Mr.get(r);return t?t[0]:(console.warn("No values found for parent element"),[])}function Bn(r,t){const s=Mr.get(t);s&&s[1](r),Mr.set(t,[r,s[1]])}function Jn(r,t){return s=>{Mr.set(s,t),Za({parent:s,getValues:$n,setValues:Bn,config:r})}}function $t(r){ct&&(Array.isArray(r)||(r=[r]),r.forEach(t=>{const{parent:s,state:a,...n}=t;On(s,Jn(n,a))}))}function Hn(r,t={}){const s=c.useRef(null),[a,n]=c.useState(r);function o(d={}){$t({parent:s,state:[a,n],...d})}return c.useEffect(()=>{$t({parent:s,state:[a,n],...t})},[a]),c.useEffect(()=>()=>{s.current&&is(s.current)},[]),[s,a,n,o]}const ps=({checked:r,indeterminate:t=!1,onChange:s,className:a,...n})=>{const o=c.useRef(null);return c.useEffect(()=>{o.current&&(o.current.indeterminate=t&&!r)},[t,r]),e.jsx("input",{ref:o,type:"checkbox",checked:r,onChange:s,className:a,...n})},qn=Rr||(()=>null),xs=({jobId:r,column:t,candidates:s,pipelineStages:a,isStageLoading:n,onCandidateClick:o,onCandidateMove:d,isSidebarCollapsed:p,groupName:l,onLogAdded:h,refreshCallback:x,onLoadMore:j,onLoadPrevious:b,hasMore:S,hasPrevious:A,isLoadingMore:D,totalCount:y,isCollapsed:g,onToggleCollapse:C,onExpandColumn:I,showRejected:B,selectedCandidateIds:se=new Set,toggleSelectCandidate:ee,selectAllOnPage:ue,canManagePipeline:L=!0})=>{const Y=Jt(),[z,X]=c.useState(null),[K,R]=c.useState(!1),[U,N]=c.useState(!1),[$,J]=c.useState(!1),O=c.useRef(null),pe=c.useRef(null),ce=c.useRef(null),ae=c.useRef(null),je=c.useRef(!1),w=c.useRef(!1),[V,Z]=c.useState(!1),Q=c.useRef(L);Q.current=L;const Se=()=>({group:l,sortable:!0,disabled:!Q.current,draggable:P=>P.classList.contains("candidate-card"),onDragstart:P=>{Q.current&&(O.current={originalList:[...re],draggedNode:P.draggedNodes[0],sourceParent:P.draggedNodes[0].data.parent},document.dispatchEvent(new CustomEvent("kanban-drag-start",{detail:{columnId:t.id}})))},onDragend:P=>{var Ze,Ve,Ge,or,Qe;if(document.dispatchEvent(new CustomEvent("kanban-drag-end",{detail:{columnId:t.id}})),!Q.current){(Ze=O.current)!=null&&Ze.originalList&&ne(O.current.originalList),O.current=null;return}if(K||U){(Ve=O.current)!=null&&Ve.originalList&&ne(O.current.originalList);return}const W=(Ge=P.parent)==null?void 0:Ge.el,F=(or=P.draggedNodes)==null?void 0:or[0];if(!W||!F){O.current=null;return}const oe=W.getAttribute("data-column-id"),me=W.getAttribute("data-column-name"),he=String(t.id),xe=F.data.value.candidate_profile,Re=xe==null?void 0:xe.id,Ce=`${(xe==null?void 0:xe.first_name)||""} ${(xe==null?void 0:xe.last_name)||""}`.trim()||"The candidate";if((Qe=O.current)!=null&&Qe.originalList&&ne(O.current.originalList),String(oe)===he){O.current=null;return}if(!oe||!Re){te.error("Could not move candidate. Missing stage or candidate ID."),O.current=null;return}const ze=Array.isArray(a)?a.find(er=>String(er.id)===String(oe)):null,ke=(Array.isArray(a)&&a.length>0?String([...a].sort((er,lr)=>er.order-lr.order)[0].id):null)===String(oe);X({id:F.data.value.id,candidateId:Re,candidateName:Ce,newStageId:oe,newStageName:me,draggedCandidate:F.data.value,targetStageSuggestions:ke?[]:(ze==null?void 0:ze.suggestions)||[],hideSuggestions:ke}),R(!0)}}),[de,re,ne,He]=Hn(g?[]:s,Se());c.useEffect(()=>{de.current&&typeof He=="function"&&He(Se())},[L]),c.useEffect(()=>{const P=ce.current;if(!P)return;const W=F=>{Q.current||(F.preventDefault(),F.stopPropagation())};return P.addEventListener("dragstart",W,!0),()=>P.removeEventListener("dragstart",W,!0)},[]),c.useEffect(()=>{const P=()=>{w.current=!0,Z(!0)},W=()=>{w.current=!1,Z(!1),J(!1)};let F=null,oe=0;const me=he=>{if(!w.current)return;const xe=Date.now();xe-oe<16||(oe=xe,F&&cancelAnimationFrame(F),F=requestAnimationFrame(()=>{const Re=he.touches?he.touches[0].clientX:he.clientX,Ce=he.touches?he.touches[0].clientY:he.clientY,ze=ce.current;if(ze){const Ye=ze.getBoundingClientRect(),ke=g?15:0,Ze=Re>=Ye.left-ke&&Re<=Ye.right+ke&&Ce>=Ye.top&&Ce<=Ye.bottom;J(Ze)}}))};return document.addEventListener("kanban-drag-start",P),document.addEventListener("kanban-drag-end",W),document.addEventListener("pointermove",me,{passive:!0}),document.addEventListener("mousemove",me,{passive:!0}),document.addEventListener("dragover",me),()=>{F&&cancelAnimationFrame(F),document.removeEventListener("kanban-drag-start",P),document.removeEventListener("kanban-drag-end",W),document.removeEventListener("pointermove",me),document.removeEventListener("mousemove",me),document.removeEventListener("dragover",me)}},[g,t.id]),c.useEffect(()=>{!K&&!U&&(O.current=null)},[K,U]);const qe=c.useRef(ne);qe.current=ne,c.useEffect(()=>{const P=g?[]:s;qe.current(P)},[s,g]),c.useEffect(()=>{const P=ae.current;if(!P)return;const W=()=>{if(je.current)return;const{scrollTop:F,scrollHeight:oe,clientHeight:me}=P;if(oe-F-me<100&&S&&!D&&(je.current=!0,j(t.id).finally(()=>{je.current=!1})),F<100&&A&&!D){je.current=!0;
16const he=oe,xe=F;b(t.id).then(()=>{requestAnimationFrame(()=>{if(P){const Ce=P.scrollHeight-he;P.scrollTop=xe+Ce}})}).finally(()=>{je.current=!1})}};return P.addEventListener("scroll",W),()=>P.removeEventListener("scroll",W)},[t.id,S,A,D,j,b]),c.useEffect(()=>{const P=ae.current;if(!P||!A||re.length===0)return;const W=setTimeout(()=>{const{scrollHeight:F,clientHeight:oe}=P;if(F>oe){const me=(F-oe)/2;P.scrollTop=me}},50);return()=>clearTimeout(W)},[re.length,A,t.name]);const nr=async P=>{if(!(!z||U)){if(!Q.current){R(!1),X(null),O.current=null;return}N(!0);try{const W={candidate:[z.candidateId],pipeline_step:z.newStageId,job:r};P!=null&&P.trim()&&(W.comment=P.trim());const F=await tt(W);if(F){te.success(`'${z.candidateName}' moved to '${z.newStageName}'!`);const oe={type:"move",id:Date.now(),moved_by:{name:"You"},step:{name:z.newStageName},created_at:new Date().toISOString(),comment:(P==null?void 0:P.trim())||null,candidate:{name:z.candidateName}};h==null||h(oe),await(d==null?void 0:d(z.id,t.name,z.newStageName,!0))}else te.error((F==null?void 0:F.message)||`Failed to move ${z.candidateName}.`),console.error("â Move failed - candidate stays in original stage")}catch(W){console.error("Error updating candidate stage:",W),te.error("An unexpected error occurred. Please try again."),console.error("â Move error - candidate stays in original stage")}finally{N(!1),R(!1),X(null),O.current=null}}},fr=()=>{var P;U||((P=O.current)!=null&&P.originalList&&ne(O.current.originalList),R(!1),X(null),x(),O.current=null)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{ref:ce,className:`kanban-column ${g?"kanban-column--collapsed":""} ${$?"kanban-column--drop-target":""} ${B?"border border-[var(--error)]/50 bg-[var(--error)]/5":""}`,"data-column-id":t.id,"data-column-name":t.name,children:[g&&e.jsx("div",{className:"absolute inset-0 bg-transparent z-10 pointer-events-none"}),e.jsxs("div",{className:`column-header flex items-center cursor-pointer ${g?"column-header--collapsed justify-center":"justify-between"}`,onClick:C,children:[!g&&e.jsxs("div",{className:"flex items-center gap-2",onClick:P=>P.stopPropagation(),children:[re.length>0&&!B&&L&&e.jsx(ps,{checked:re.every(P=>se.has(P.id)),indeterminate:re.some(P=>se.has(P.id)),onChange:()=>ue(re.map(P=>P.id),t.id),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--primary)] focus:ring-[var(--primary)] cursor-pointer"}),e.jsx("h3",{className:"column-title text-sm font-semibold truncate",children:t.name}),t.enable_interview_scheduling&&e.jsxs("button",{type:"button",onClick:P=>{P.stopPropagation(),Y(r?`/recruiter/interviews?jobId=${r}`:"/recruiter/interviews")},className:"px-2 py-0.5 text-[9px] font-extrabold rounded-full bg-[var(--primary)]/10 text-[var(--primary)] hover:bg-[var(--primary)] hover:text-white transition-all duration-200 flex items-center gap-1 cursor-pointer border border-[var(--primary)]/20 shadow-sm hover:scale-105 active:scale-95 ml-1.5 whitespace-nowrap",title:"In this stage, interviews will be held. Click to manage scheduling.",children:[e.jsx(qn,{
16className:"w-3.5 h-3.5"}),"INTERVIEW"]})]}),e.jsxs("div",{className:`flex items-center gap-2 ${g?"justify-center":""}`,children:[e.jsx("span",{className:"column-count rounded text-xs font-medium px-2 py-0.5",style:{backgroundColor:"var(--bg-secondary)",color:t.color||"var(--text-secondary)"},children:y!==void 0?y:re.length}),!g&&(y!==0||re.length>0)&&e.jsx("button",{onClick:P=>{P.stopPropagation(),I==null||I(t)},className:"text-[var(--primary)] rounded hover:bg-[var(--bg-secondary)] transition p-1",title:"Expand column",children:"⤢"})]})]}),g&&t.order!==void 0&&e.jsx("div",{className:"collapsed-order-wrapper",children:e.jsx("div",{className:"inline-flex items-center justify-center w-8 h-8 bg-[var(--primary)]/10 text-[var(--primary)] text-sm font-bold rounded-full border border-[var(--primary)]/20 shadow-sm",children:t.order})}),g&&e.jsx("div",{className:"collapsed-column-title",onClick:C,children:t.name}),g&&$&&e.jsx("div",{className:"collapsed-drop-indicator",children:"Drop here"}),e.jsx("div",{ref:P=>{de.current=g?ce.current:P,g||(pe.current=P,ae.current=P)},className:`candidates-list block max-h-full pointer-events-auto ${g?"overflow-hidden min-h-[200px] flex-1":"overflow-y-auto"}`,"data-column-name":t.name,"data-column-id":t.id,children:!g&&e.jsxs(e.Fragment,{children:[n&&e.jsxs("div",{className:"space-y-3 p-1",children:[e.jsx(Nr,{}),e.jsx(Nr,{}),e.jsx(Nr,{})]}),!n&&re.map((P,W)=>e.jsx("div",{className:`candidate-card mb-2 ${B?"rejected-card":""} ${se.has(P.id)?"ring-2 ring-[var(--primary)] border-[var(--primary)] bg-[var(--primary)]/5 shadow-md":""}
16`,"data-candidate-id":P.id,children:e.jsx(it,{candidate:P,column:t,index:W,onClick:()=>o(P,t),isSidebarCollapsed:p,selectedCandidateIds:se,toggleSelectCandidate:ee})},`${P.id}-${t.id}`)),!n&&S&&D&&e.jsx("div",{className:"loading-more p-1 mt-2",children:e.jsx(Nr,{})}),!n&&re.length===0&&!D&&e.jsxs("div",{className:"empty-state",children:[e.jsx("div",{className:"empty-icon",children:"ð"}),e.jsxs("p",{children:["No candidates in ",t.name.toLowerCase()]})]})]})}),$&&!g&&e.jsx("div",{className:"drop-here-indicator",children:"Drop here"})]}),e.jsx(Us,{isOpen:K,onClose:fr,onConfirm:nr,fromStage:t.name,toStage:z==null?void 0:z.newStageName,candidateName:z==null?void 0:z.candidateName,isLoading:U,stageSuggestions:z==null?void 0:z.targetStageSuggestions,hideSuggestions:z==null?void 0:z.hideSuggestions})]})};xs.propTypes={jobId:M.oneOfType([M.string,M.number]).isRequired,pipelineStages:M.arrayOf(M.object),column:M.shape({id:M.number.isRequired,name:M.string.isRequired,color:M.string,count:M.number,enable_interview_scheduling:M.bool}).isRequired,candidates:M.arrayOf(M.object).isRequired,isStageLoading:M.bool,onCandidateClick:M.func.isRequired,onCandidateMove:M.func,isSidebarCollapsed:M.bool.isRequired,groupName:M.string.isRequired,onLogAdded:M.func,refreshCallback:M.func,onLoadMore:M.func,onLoadPrevious:M.func,hasMore:M.bool,hasPrevious:M.bool,isLoadingMore:M.bool,totalCount:M.number,canManagePipeline:M.bool};const Yn=({pipelineStages:r,candidates:t,selectedJobId:s,isJobSwitching:a,loadingStages:n,handleCandidateClick:o,handleCandidateMove:d,isSidebarCollapsed:p,handleLogAdded:l,refreshCandidates:h,handleLoadMoreCandidates:x,onLoadMore:j,paginationState:b,collapsedStages:S,toggleStageCollapse:A,setExpandColumn:D,expandedColumnIdRef:y,showRejected:g,loading:C,selectedCandidateIds:I=new Set,toggleSelectCandidate:B,selectAllOnPage:se,canManagePipeline:ee=!0})=>{const ue=c.useMemo(()=>{const Y={};if(!Array.isArray(r))return Y;for(const z of r)!z||z.id==null||(Y[z.id]=(t[z.name]||[]).filter(X=>{var R,U;const K=(X==null?void 0:X.status)==="REJECTED"||((R=X==null?void 0:X.originalData)==null?void 0:R.status)==="REJECTED"||((U=X==null?void 0:X.candidate_profile)==null?void 0:U.status)==="REJECTED";return g?K:!K}));return Y},[t,r,g]),L=g||!ee?null:B;return e.jsx("div",{className:"kanban-container animate-fade-in",children:e.jsx("div",{className:"kanban-board",children:Array.isArray(r)&&r.length>0&&r.map(Y=>{var X,K;if(!Y||!Y.id)return null;const z=Y.id;return e.jsx(xs,{jobId:s,column:Y,pipelineStages:r,candidates:ue[z]||[],isStageLoading:C||a||(n==null?void 0:n[z])===!0&&(ue[z]||[]).length===0,onCandidateClick:o,onCandidateMove:d,isSidebarCollapsed:p,groupName:"candidates",onLogAdded:l,refreshCallback:h,onLoadMore:j||x,hasMore:((X=b==null?void 0:b[z])==null?void 0:X.hasMore)||!1,isLoadingMore:(n==null?void 0:n[z])||!1,totalCount:((K=b==null?void 0:b[z])==null?void 0:K.totalCount)||0,isCollapsed:!!S[z],onToggleCollapse:()=>A(z),onExpandColumn:R=>{y&&(y.current=R.id),D(R)},showRejected:g,selectedCandidateIds:I,toggleSelectCandidate:L,selectAllOnPage:se,canManagePipeline:ee},z)})})})},Vn=r=>async()=>{var t,s,a;return(a=(s=(t=await Ut(r))==null?void 0:t.data)==null?void 0:s.user)==null?void 0:a.profile_picture},ur=({showCheckbox:r,visibleColumns:t})=>e.jsxs("tr",{className:"animate-pulse border-b border-[var(--border)]",children:[r&&e.jsx("td",{className:"px-4 py-4 w-12 text-center",children:e.jsx("div",{className:"w-4 h-4 bg-[var(--bg-secondary)] rounded mx-auto"})}),e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-9 w-9 rounded-full bg-[var(--bg-secondary)]"}),e.jsxs("div",{className:"space-y-2 flex-1",children:[e.jsx("div",{className:"h-4 bg-[var(--bg-secondary)] rounded w-2/3"}),e.jsx("div",{className:"h-3 bg-[var(--border)] rounded w-1/2"})]})]})}),t.includes("stage")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-5 bg-[var(--primary)]/10 border border-[var(--primary)]/20 rounded-full w-16"})}),t.includes("matchScore")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-4 bg-[var(--bg-secondary)] rounded w-10"})}),t.includes("appliedDate")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-16"})}),t.includes("experience")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-14"})}),t.includes("skills")&&e.jsx("td",{className:"px-6 py-4",children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx("div",{className:"h-5 bg-[var(--primary)]/10 border border-[var(--primary)]/20 rounded-full w-12"}),e.jsx("div",{className:"h-5 bg-[var(--primary)]/10 border border-[var(--primary)]/20 rounded-full w-14"})]})}),t.includes("ctc")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-16"})}),t.includes("noticePeriod")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-12"})}),t.includes("location")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-16"})}),t.includes("education")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-20"})}),t.includes("email")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-24"})}),t.includes("contact")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-16"})}),t.includes("activeStatus")&&e.jsx("td",{className:"px-6 py-4",children:e.jsx("div",{className:"h-3.5 bg-[var(--bg-secondary)] rounded w-16"})}),e.jsx("td",{className:"w-14","aria-hidden":"true"})]}),Xn=({pipelineStages:r,candidates:t,loading:s,handleCandidateClick:a,showRejected:n,onLoadMore:o,paginationState:d,loadingStages:p,selectedCandidateIds:l=new Set,toggleSelectCandidate:h,selectAllOnPage:x,canManagePipeline:j=!0})=>{const b=Le.useRef(null),S=Le.useRef(null),A=Le.useRef(null),[D,y]=Le.useState(!1),[g,C]=Le.useState({top:0,right:0}),I={stage:{label:"Stage",icon:e.jsx(Zt,{size:14})},matchScore:{label:"Match Score",icon:e.jsx(Ca,{size:14})},appliedDate:{label:"Applied Date",icon:e.jsx(_r,{size:14})},experience:{label:"Experience",icon:e.jsx(st,{size:14})},skills:{label:"Skills",icon:e.jsx(Ra,{size:14})},ctc:{label:"CTC",icon:e.jsx(Mt,{size:14})},noticePeriod:{label:"Notice Period",icon:e.jsx(Lt,{size:14})},location:{label:"Location",icon:e.jsx(_t,{size:14})},education:{label:"Education",icon:e.jsx(Tt,{size:14})},email:{label:"Email",icon:e.jsx(at,{size:14})},contact:{label:"Contact",icon:e.jsx(zt,{size:14})},activeStatus:{label:"Active Status",icon:e.jsx(Pt,{size:14})}},[B,se]=Le.useState(()=>{const N=localStorage.getItem("pipeline_table_visible_columns");try{return N?JSON.parse(N):Object.keys(I)}catch{return Object.keys(I)}});Le.useEffect(()=>{localStorage.setItem("pipeline_table_visible_columns",JSON.stringify(B))},[B]),Le.useEffect(()=>{const N=$=>{const J=S.current&&S.current.contains($.target),O=A.current&&A.current.contains($.target);!J&&!O&&y(!1)};return document.addEventListener("mousedown",N),()=>document.removeEventListener("mousedown",N)},[]);const ee=N=>{if(N.stopPropagation(),!D&&S.current){const $=S.current.getBoundingClientRect();C({top:$.bottom+8,right:window.innerWidth-$.right})}y($=>!$)},ue=N=>{se($=>$.includes(N)?$.filter(J=>J!==N):[...$,N])},L=N=>B.includes(N),Y=c.useMemo(()=>{const N=[];return r.forEach($=>
16{(t[$.name]||[]).forEach(O=>{var ce,ae;const pe=(O==null?void 0:O.status)==="REJECTED"||((ce=O==null?void 0:O.originalData)==null?void 0:ce.status)==="REJECTED"||((ae=O==null?void 0:O.candidate_profile)==null?void 0:ae.status)==="REJECTED";(n?pe:!pe)&&N.push({...O,currentStage:$.name})})}),N.sort(($,J)=>new Date(J.appliedDate)-new Date($.appliedDate))},[t,r,n]),z=c.useMemo(()=>Y.length>0&&Y.every(N=>l.has(N.id)),[Y,l]),X=c.useMemo(()=>Y.some(N=>l.has(N.id)),[Y,l]),K=c.useMemo(()=>r.some(N=>{var $;return($=d==null?void 0:d[N.id])==null?void 0:$.hasMore}),[r,d]),R=c.useMemo(()=>r.some(N=>p==null?void 0:p[N.id]),[r,p]),U=Le.useCallback(()=>{r.forEach(N=>{var $;($=d==null?void 0:d[N.id])!=null&&$.hasMore&&!(p!=null&&p[N.id])&&o(N.id)})},[r,d,p,o]);return c.useEffect(()=>{if(!K||R)return;const N=new IntersectionObserver($=>{$[0].isIntersecting&&U()},{threshold:.1});return b.current&&N.observe(b.current),()=>N.disconnect()},[K,R,U]),!s&&Y.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[300px] text-gray-500 bg-[var(--bg-secondary)] rounded-xl border border-[var(--border)] mt-4",children:[e.jsx(pr,{size:48,className:"mb-2 opacity-20"}),e.jsx("p",{children:"No candidates found matching current filters."})]}):e.jsxs("div",{className:"mt-2 max-h-[calc(100vh-78px)] overflow-y-auto animate-fade-in table-scrollbar",children:[e.jsxs("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--bg-primary)] shadow-sm relative",children:[e.jsx("div",{className:"absolute top-3 right-3 z-30",ref:S,children:e.jsx("button",{onClick:ee,className:"p-1.5 hover:bg-[var(--bg-secondary)] rounded-md transition-colors border border-[var(--border)] bg-[var(--bg-primary)] shadow-md cursor-pointer flex items-center justify-center hover:scale-105 active:scale-95 transition-all",title:"Manage columns",children:e.jsx(Er,{size:16,className:`${D?"rotate-45":""} transition-transform text-[var(--primary)]`})})}),e.jsx("div",{className:"overflow-x-auto table-scrollbar",children:e.jsxs("table",{className:"min-w-max w-full border-collapse text-left text-sm table-fixed-layout",children:[e.jsx("thead",{className:"bg-[var(--bg-secondary)] border-b border-[var(--border)] sticky top-0 z-20",children:e.jsxs("tr",{children:[!n&&j&&e.jsx("th",{className:"px-4 py-4 w-12 text-center sticky left-0 top-0 z-20 bg-[var(--bg-secondary)]",children:e.jsx(ps,{checked:z,indeterminate:X,onChange:()=>x(Y.map(N=>N.id)),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--primary)] focus:ring-[var(--primary)] cursor-pointer"})}),e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[220px]",children:"Candidate"}),L("stage")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[140px]",children:"Stage"}),L("matchScore")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[140px]",children:"Match Score"}),L("appliedDate")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[140px]",children:"Applied Date"}),L("experience")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[120px]",children:"Experience"}),L("skills")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[220px]",children:"Skills"}),L("ctc")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[140px]",children:"CTC"}),L("noticePeriod")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[130px]",children:"Notice Period"}),L("location")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[150px]",children:"Location"}),L("education")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[180px]",children:"Education"}),L("email")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[200px]",children:"Email"}),L("contact")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[140px]",children:"Contact"}),L("activeStatus")&&e.jsx("th",{className:"px-6 py-4 font-semibold text-[var(--text-primary)] min-w-[140px]",children:"Active Status"}),e.jsx("th",{className:"w-14 min-w-[56px]","aria-hidden":"true"})]})}),e.jsx("tbody",{className:"divide-y divide-[var(--border)]",children:s?e.jsxs(e.Fragment,{children:[e.jsx(ur,{showCheckbox:!n&&j,visibleColumns:B}),e.jsx(ur,{showCheckbox:!n&&j,visibleColumns:B}),e.jsx(ur,{showCheckbox:!n&&j,visibleColumns:B}),e.jsx(ur,{showCheckbox:!n&&j,visibleColumns:B}),e.jsx(ur,{showCheckbox:!n&&j,visibleColumns:B})]}):Y.map(N=>{var $,J,O,pe,ce;return e.jsxs("tr",{className:`transition-colors cursor-pointer group ${l.has(N.id
16)?"bg-[var(--primary)]/5 hover:bg-[var(--primary)]/10":"hover:bg-[var(--bg-secondary)]"}`,onClick:()=>a(N,r.find(ae=>ae.name===N.currentStage)),children:[!n&&j&&e.jsx("td",{className:"px-4 py-3 text-center",onClick:ae=>ae.stopPropagation(),children:e.jsx("input",{type:"checkbox",checked:l.has(N.id),onChange:()=>h(N.id),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--primary)] focus:ring-[var(--primary)] cursor-pointer"})}),e.jsx("td",{className:"px-6 py-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-9 w-9 rounded-full bg-[var(--bg-secondary)] flex items-center justify-center overflow-hidden border border-[var(--border)] shadow-sm group-hover:border-[var(--primary)]/30 transition-colors",children:N.avatar||N.name?e.jsx(qt,{refresh:Vn(N.slug||N.id),refreshKey:`candidate:${N.slug||N.id}`,src:N.avatar||Yt(N.name),alt:N.name,className:"h-full w-full object-cover"}):e.jsx(pr,{size:20,className:"text-[var(--text-secondary)]"})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-bold text-[var(--text-primary)] group-hover:text-[var(--primary)] transition-colors",children:N.name}),e.jsx("div",{className:"text-[10px] text-[var(--text-secondary)] font-medium truncate max-w-[150px] opacity-70",children:N.position||"Candidate"})]})]})}),L("stage")&&e.jsx("td",{className:"px-6 py-3",children:e.jsx("span",{className:"inline-flex items-center rounded-full bg-[var(--primary)]/10 px-2.5 py-1 text-xs font-bold text-[var(--primary)] border border-[var(--primary)]/20 shadow-sm",children:N.currentStage})}),L("matchScore")&&e.jsx("td",{className:"px-6 py-3",children:e.jsx("div",{className:"flex flex-col",children:e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(Qt,{scoreData:(($=N.originalData)==null?void 0:$.match_score_result)||N.match_score_result,status:((J=N.originalData)==null?void 0:J.match_score_status)||N.match_score_status})})})}),L("appliedDate")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-xs",children:[e.jsx(_r,{size:13,className:"opacity-50"}),N.appliedDate]})}),L("experience")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-xs text-[var(--text-primary)]",children:[e.jsx(st,{size:13,className:"opacity-50"}),N.experience]})}),L("skills")&&e.jsx("td",{className:"px-6 py-3",children:e.jsxs("div",{title:(O=N.skills)==null?void 0:O.join(", "),className:"flex flex-wrap gap-1.5 max-w-[200px]",children:[(pe=N.skills)==null?void 0:pe.slice(0,2).map((ae,je)=>e.jsx("span",{className:"flex items-center gap-1 rounded-full border border-[var(--primary)]/20 bg-[var(--primary)]/10 px-2 py-1 text-[10px] font-bold text-[var(--primary)] shadow-sm transition-all hover:bg-[var(--primary)]/20",children:ae},je)),((ce=N.skills)==null?void 0:ce.length)>2&&e.jsxs("span",{className:"text-[10px] font-bold text-[var(--text-secondary)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded-md border border-[var(--border)] opacity-70",children:["+",N.skills.length-2]}),(!N.skills||N.skills.length===0)&&e.jsx("span",{className:"text-[10px] text-[var(--text-secondary)] italic opacity-50",children:"Not listed"})]})}),L("ctc")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-xs text-[var(--text-primary)] whitespace-nowrap",children:[e.jsx(Mt,{size:13,className:"opacity-50"}),Number(N.ctc)?`â¹ ${ma(N.ctc)}`:N.ctc]})}),L("noticePeriod")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-xs",children:[e.jsx(Lt,{size:13,className:"opacity-50"}),N.notice_period]})}),L("location")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-xs",children:[e.jsx(_t,{size:13,className:"opacity-50"}),e.jsx("span",{className:"truncate max-w-[120px]",children:N.location})]})}),L("education")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{title:N.education,className:"flex items-center gap-2 font-semibold text-xs",children:[e.jsx(Tt,{size:13,className:"opacity-50"}),e.jsx("span",{className:"truncate max-w-[150px]",children:N.education})]})}),L("email")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{title:N.email,className:"flex items-center gap-2 font-semibold text-xs",children:[e.jsx(at,{size:13,className:"opacity-50"}),e.jsx("span",{className:"truncate max-w-[150px]",children:N.email})]})}),L("contact")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-xs",children:[e.jsx(zt,{size:13,className:"opacity-50"}),N.contact]})}),L("activeStatus")&&e.jsx("td",{className:"px-6 py-3 text-[var(--text-secondary)]",children:e.jsxs("div",{className:"flex items-center gap-2 font-semibold text-[10px] uppercase tracking-wider",children:[e.jsx(Pt,{size:13,className:"opacity-50"}),N.active_status||"N/A"]})}),e.jsx("td",{className:"w-14 min-w-[56px]","aria-hidden":"true"})]},N.id)})})]})})]}),K&&e.jsx("div",{ref:b,className:"mt-8 flex justify-center py-4",children:e.jsxs("div",{className:"flex items-center gap-3 px-6 py-2 bg-[var(--bg-primary)] border border-[var(--border)] rounded-full shadow-sm text-sm font-bold text-[var(--text-secondary)]",children:[e.jsx("div",{className:"h-4 w-4 border-2 border-[var(--primary)] border-t-transparent roun
16ded-full animate-spin"}),"Loading more candidates..."]})}),D&&Js.createPortal(e.jsxs("div",{ref:A,className:"fixed w-64 bg-[var(--bg-primary)] border border-[var(--border)] rounded-lg shadow-xl py-2 animate-in fade-in slide-in-from-top-2 duration-200",style:{top:g.top,right:g.right,zIndex:9999},children:[e.jsx("div",{className:"px-3 py-2 border-b border-[var(--border)] mb-1",children:e.jsx("span",{className:"text-xs font-bold text-[var(--text-secondary)] uppercase tracking-wider",children:"Visible Fields"})}),Object.entries(I).map(([N,{label:$,icon:J}])=>e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 hover:bg-[var(--bg-secondary)] cursor-pointer transition-colors group",onClick:()=>ue(N),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[var(--text-secondary)]",children:J}),e.jsx("span",{className:`text-sm ${L(N)?"font-semibold text-[var(--text-primary)]":"text-[var(--text-secondary)]"}`,children:$})]}),L(N)&&e.jsx(kr,{size:14,className:"text-[var(--primary)]"})]},N))]}),document.body)]})},Un=({selectedCount:r,onClearSelection:t,onSendMessage:s,onMoveStage:a,onReject:n,showMoveStage:o=!0})=>r===0?null:e.jsxs("div",{className:"fixed bottom-6 left-1/2 -translate-x-1/2 z-[90] flex items-center gap-4 bg-[var(--bg-primary)] border border-[var(--border)] px-6 py-4 rounded-2xl shadow-[0_10px_30px_rgba(0,0,0,0.15)] animate-in fade-in slide-in-from-bottom-4 duration-300 backdrop-blur-md bg-opacity-95",children:[e.jsxs("div",{className:"flex items-center gap-3 pr-4 border-r border-[var(--border)]",children:[e.jsx("span",{className:"flex items-center justify-center h-6 w-6 rounded-full bg-[var(--primary)]/10 text-[var(--primary)] text-xs font-black",children:r}),e.jsxs("span",{className:"text-sm font-bold text-[var(--text-primary)]",children:[r===1?"Candidate":"Candidates"," selected"]}),e.jsxs("button",{onClick:t,className:"text-xs text-[var(--text-secondary)] hover:text-[var(--primary)] font-bold transition-colors ml-2 hover:underline flex items-center gap-1",children:[e.jsx(_e,{size:12})," Clear"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:s,className:"flex items-center gap-2 px-4 py-2 text-xs font-black rounded-lg border border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow",children:[e.jsx(at,{size:14}),"Send Message"]}),o?e.jsxs("button",{onClick:a,className:"flex items-center gap-2 px-4 py-2 text-xs font-black rounded-lg border border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow",children:[e.jsx(Vt,{size:14}),"Move Stage"]}):e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2 text-[10px] font-bold text-[var(--text-secondary)] bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg opacity-80",title:"Move Stage is unavailable when candidates from multiple stages are selected.",children:[e.jsx(Wt,{size:12,className:"text-[var(--text-secondary)]"}),e.jsx("span",{children:"Multiple Stages Selected"})]}),e.jsxs("button",{onClick:n,className:"flex items-center gap-2 px-4 py-2 text-xs font-black rounded-lg border border-[var(--error)]/20 bg-red-50/10 text-[var(--error)] hover:bg-[var(--error)] hover:text-white transition-all cursor-pointer shadow-sm",children:[e.jsx(Kt,{size:14}),"Reject"]})]})]}),Wn=({isOpen:r,onClose:t,selectedCandidates:s,onSend:a,isSending:n})=>{const[o,d]=c.useState("Hi, We'd love to discuss an opportunity with you!.");if(!r)return null;const p=()=>{o.trim()&&a(o)};return e.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-sm animate-fade-in",children:e.jsxs("div",{className:"relative w-full max-w-lg bg-[var(--bg-primary)] border border-[var(--border)] rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh]",children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-[var(--border)]",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-black text-[var(--text-primary)]",children:"Send Bulk Message"}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:"Outreach to selected candidates"})]}),e.jsx("button",{onClick:t,className:"p-1 hover:bg-[var(--bg-secondary)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(_e,{size:18})})]}),e.jsxs("div",{className:"p-6 flex-1 overflow-y-auto space-y-4",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block mb-2",children:["Recipients (",s.length,")"]}),e.jsx("div",{className:"flex flex-wrap gap-2 max-h-24 overflow-y-auto border border-[var(--border)] rounded-lg p-2.5 bg-[var(--bg-secondary)] custom-scrollbar",children:s.map(l=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-[var(--bg-primary)] px-2.5 py-1 rounded-full text-xs font-semibold text-[var(--text-primary)] border border-[var(--border)] shadow-sm",children:[e.jsx(pr,{size:10,
16className:"text-[var(--primary)]"}),l.name]},l.id))})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"flex justify-between items-center",children:e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider",children:"Message Body"})}),e.jsx("textarea",{value:o,onChange:l=>d(l.target.value),disabled:n,rows:6,placeholder:"Write your custom message here...",className:"w-full px-4 py-2 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-xl focus:outline-none focus:ring-2 focus:ring-[var(--primary)]/20 focus:border-[var(--primary)] transition-all resize-none text-sm"})]})]}),e.jsxs("div",{className:"px-6 py-4 border-t border-[var(--border)] bg-[var(--bg-secondary)] flex justify-end gap-3",children:[e.jsx("button",{onClick:t,disabled:n,className:"px-4 py-2 text-xs font-bold rounded-lg border border-[var(--border)] text-[var(--text-primary)] hover:bg-[var(--bg-primary)] transition-all",children:"Cancel"}),e.jsx("button",{onClick:p,disabled:n||!o.trim(),className:"flex items-center gap-2 px-5 py-2 text-xs font-black rounded-lg bg-[var(--primary)] text-white hover:bg-[var(--primary)]/90 transition-all shadow-md disabled:opacity-50 disabled:cursor-not-allowed",children:n?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-3 w-3 border-2 border-white border-t-transparent rounded-full animate-spin"}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(pa,{size:12}),"Send to ",s.length," ",s.length===1?"Candidate":"Candidates"]})})]})]})})},Kn=({isOpen:r,onClose:t,selectedCandidates:s,pipelineStages:a,onConfirm:n,isUpdating:o})=>{const[d,p]=c.useState(""),[l,h]=c.useState("");if(!r)return null;const x=()=>{d&&n(d,l)},j=a.filter(b=>!s.some(S=>S.currentStage===b.name)).map(b=>({label:b.name,value:b.id}));return e.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-sm animate-fade-in",children:e.jsxs("div",{className:"relative w-full max-w-lg bg-[var(--bg-primary)] border border-[var(--border)] rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh]",children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-[var(--border)]",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-black text-[var(--text-primary)]",children:"Bulk Move Candidates"}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:"Move selected candidates to another stage"})]}),e.jsx("button",{onClick:t,className:"p-1 hover:bg-[var(--bg-secondary)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(_e,{size:18})})]}),e.jsxs("div",{className:"p-6 flex-1 overflow-y-auto space-y-4",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block mb-2",children:["Candidates (",s.length,")"]}),e.jsx("div",{className:"flex flex-wrap gap-2 max-h-24 overflow-y-auto border border-[var(--border)] rounded-lg p-2.5 bg-[var(--bg-secondary)] custom-scrollbar",children:s.map(b=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-[var(--bg-primary)] px-2.5 py-1 rounded-full text-xs font-semibold text-[var(--text-primary)] border border-[var(--border)] shadow-sm",children:[e.jsx(pr,{size:10,className:"text-[var(--primary)]"}),b.name]},b.id))})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block",children:"Select Target Stage"}),e.jsx(Pr,{value:d,onChange:b=>p(b),options:j,placeholder:"Select target stage",containerClass:"w-full",buttonClass:"w-full px-4 py-2 text-sm rounded-md border border-gray-300 bg-[var(--bg-primary)] hover:border-gray-400 focus:ring-2 focus:ring-[var(--primary)] focus:border-[var(--primary)] truncate"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block",children:"Reason / Comment (Optional)"}
16),e.jsx("textarea",{value:l,onChange:b=>h(b.target.value),disabled:o,rows:3,placeholder:"e.g. Cleared round 1 technical interview successfully...",className:"w-full px-4 py-3 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-xl focus:outline-none focus:ring-2 focus:ring-[var(--primary)]/10 focus:border-[var(--primary)] transition-all resize-none text-sm"})]})]}),e.jsxs("div",{className:"px-6 py-4 border-t border-[var(--border)] bg-[var(--bg-secondary)] flex justify-end gap-3",children:[e.jsx("button",{onClick:t,disabled:o,className:"px-4 py-2 text-xs font-bold rounded-lg border border-[var(--border)] text-[var(--text-primary)] hover:bg-[var(--bg-primary)] transition-all",children:"Cancel"}),e.jsx("button",{onClick:x,disabled:o||!d,className:"flex items-center gap-2 px-5 py-2 text-xs font-black rounded-lg bg-[var(--primary)] text-white hover:bg-[var(--primary)]/90 transition-all shadow-md disabled:opacity-50 disabled:cursor-not-allowed",children:o?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-3 w-3 border-2 border-white border-t-transparent rounded-full animate-spin"}),"Moving..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Vt,{size:12}),"Confirm Move"]})})]})]})})},Zn=["Lacks required technical experience","Failed technical assessment","Salary expectation mismatch","Poor communication skills","Culture fit mismatch","Role has been closed / filled"],Gn=({isOpen:r,onClose:t,selectedCandidates:s,onConfirm:a,isUpdating:n})=>{const[o,d]=c.useState("");if(!r)return null;const p=()=>{a(o)};return e.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-sm animate-fade-in",children:e.jsxs("div",{className:"relative w-full max-w-lg bg-[var(--bg-primary)] border border-[var(--border)] rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh]",children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-[var(--border)]",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-black text-[var(--error)]",children:"Reject Candidates in Bulk"}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:"Reject selected candidates from the pipeline"})]}),e.jsx("button",{onClick:t,className:"p-1 hover:bg-[var(--bg-secondary)] rounded-lg text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(_e,{size:18})})]}),e.jsxs("div",{className:"p-6 flex-1 overflow-y-auto space-y-4",children:[e.jsx("div",{className:"bg-red-50/10 border border-red-500/20 p-4 rounded-xl text-xs text-[var(--error)] font-bold",children:"Warning: This action will mark all selected candidates as REJECTED in the recruitment pipeline."}),e.jsxs("div",{children:[e.jsxs("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block mb-2",children:["Candidates (",s.length,")"]}),e.jsx("div",{className:"flex flex-wrap gap-2 max-h-24 overflow-y-auto border border-[var(--border)] rounded-lg p-2.5 bg-[var(--bg-secondary)] custom-scrollbar",children:s.map(l=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-[var(--bg-primary)] px-2.5 py-1 rounded-full text-xs font-semibold text-[var(--text-primary)] border border-[var(--border)] shadow-sm",children:[e.jsx(pr,{size:10,className:"text-[var(--error)]"}),l.name]},l.id))})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("label",{className:"text-[11px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block",children:["Reason / Comment (Required) ",e.jsx("span",{className:"text-[var(--error)]",children:"*"})]}),e.jsx("p",{className:"text-xs font-medium italic text-[var(--warning)]",children:"Providing a clear reason helps candidates identify areas for improvement and increases transparency in the hiring process."}),e.jsx("textarea",{value:o,onChange:l=>d(l.target.value),disabled:n,rows:3,placeholder:"e.g. Lacks required technical experience...",className:"w-full px-4 py-3 bg-[var(--bg-primary)] border border-[var(--border)] text-[var(--text-primary)] rounded-xl focus:outline-none focus:ring-2 focus:ring-red-500/10 focus:border-red-500 transition-all resize-none text-sm"}),e.jsxs("div",{className:"mt-2",children:[e.jsx("span",{className:"text-[10px] font-bold text-[var(--text-secondary)] uppercase tracking-wider block mb-1.5",children:"Suggestions:"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Zn.map(l=>e.jsx("button",{type:"button",onClick:()=>d(l),className:"px-2.5 py-1 text-[11px] font-semibold rounded-full border border-[var(--border)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-primary)] hover:border-[var(--error)] hover:text-[var(--error)] transition-all text-[var(--text-secondary)] cursor-pointer",children:l},l))})]})]})]}),e.jsxs("div",{className:"px-6 py-4 border-t border-[var(--border)] bg-[var(--bg-secondary)] flex justify-end gap-3",children:[e.jsx("button",{onClick:t,disabled:n,className:"px-4 py-2 text-xs font-bold rounded-lg border border-[var(--border)] text-[var(--text-primary)] hover:bg-[var(--bg-primary)] transition-all",children:"Cancel"}),e.jsx("button",{onClick:p,disabled:n||!o.trim(),className:"flex items-center gap-2 px-5 py-2 text-xs font-black rounded-lg bg-[var(--error)] text-white hover:bg-[var(--error)]/90 transition-all shadow-md disabled:opacity-50 disabled:cursor-not-allowed",children:n?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-3 w-3 border-2 border-white border-t-transparent roun
16ded-full animate-spin"}),"Rejecting..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Kt,{size:12}),"Confirm Rejection"]})})]})]})})},Oe=r=>r.map(t=>{var a;const s={id:t.candidate,user_id:t.user_id,slug:t.slug||t.user_id,first_name:t.first_name,last_name:t.last_name,profile_picture:t.profile_picture,occupation:t.current_role||"Not specified",desired_role:t.desired_role||"",yoe:t.yoe||0,rating:Number(t.rating)||0,skills:t.skills||[],ctc:t.ctc||t.salary||"Not Specified",notice_period:t.notice_period||(t.remaining_notice_days!==null?`${t.remaining_notice_days} days`:"Not Specified"),current_location:t.city||t.current_location||"Not Specified",education:t.education&&t.education.length>0?t.education[0].degree:"Not Specified",current_company:t.experience_company||(t.experiences&&t.experiences.length>0?t.experiences[0].company:"Not Specified"),email:t.email||"Not Specified",contact:t.phone_number||t.contact_number||"Not Specified",active_status:t.status||t.updated_at||"Not Actively Looking"};return{id:t.candidate.toString(),user_id:t.user_id,slug:t.slug||t.user_id,candidate_profile:s,name:`${t.first_name||"Unknown"} ${t.last_name||""}`.trim(),avatar:t.profile_picture||null,position:t.current_role||"Not specified",experience:`${t.yoe||0} years`,skills:(t.skills||[]).map(n=>n.name),appliedDate:new Date(t.applied_date||t.created_at).toLocaleDateString(),interviewDate:null,status:t.status,rating:Number(t.rating)||0,originalData:t,profileCompletion:t.profile_completion_percentage,match_score:(a=t==null?void 0:t.match_score_result)==null?void 0:a.score,ctc:s.ctc,notice_period:s.notice_period,location:s.current_location,education:s.education,email:s.email,contact:s.contact,active_status:s.active_status,source:t.source,pipelineId:t.id,labels:t.labels||[]}}),rt=(r,t)=>{const s=new Map;return r.forEach(a=>{s.set(a.id,a)}),t.forEach(a=>{s.set(a.id,a)}),Array.from(s.values())},mr=(r,t)=>{const s=[...t].sort((o,d)=>d.order-o.order),a=new Set,n={};return t.forEach(o=>{n[o.name]=[]}),s.forEach(o=>{const d=r[o.name]||[],p=[];d.forEach(l=>{a.has(l.id)||(a.add(l.id),p.push(l))}),n[o.name]=p}),n},Cr="PUBLISHED",Bt=new Set(["jobId","job_id","view","table","board","ordering"]),Uo=()=>{var Dt,kt,Et;const{isSidebarCollapsed:r}=Hs(),[t,s]=qs(),a=c.useRef(!1),n=c.useRef(),o=c.useRef({}),[d,p]=c.useState(null),[l,h]=c.useState(null),[x,j]=c.useState([]),b=c.useRef(null),[S,A]=c.useState([]),[D,y]=c.useState({}),[g,C]=c.useState(null),[I,B]=c.useState(!0),[se,ee]=c.useState([]),[ue,L]=c.useState(""),[Y,z]=c.useState(!1),X=c.useRef(null),K=c.useRef(null),R=Ys(),U=Jt(),[N]=c.useState(()=>{var i;return((i=R.state)==null?void 0:i.fromJobs)||null}),{hasPermission:$}=xa(),[J,O]=c.useState(!1),[pe,ce]=c.useState(null),[ae,je]=c.useState({}),[w,V]=c.useState(null),[Z,Q]=c.useState([]),[Se,de]=c.useState(1),[re,ne]=c.useState(!0),[He,qe]=c.useState(!1),nr=c.useRef(!1),fr=c.useRef(null),[P,W]=c.useState(!1),[F,oe]=c.useState(null),[me,he]=c.useState(""),[xe,Re]=c.useState(1),[Ce,ze]=c.useState(""),[Ye,ke]=c.useState(!0),[Ze,Ve]=c.useState(!1),[Ge,or]=c.useState(!1),Qe=c.useRef(null),er=c.useRef(!1),lr=c.useRef(!1),[gr,Fr]=c.useState({yoe_min:"",yoe_max:"",name:"",email:"",phone:"",desired_job:"",occupation:"",salary_min:"",salary_max:"",city:"",profile_completion_min:"",profile_completion_max:"",notice_period_max:"",job_type:"",experience_company:"",college:"",certification:"",skills:"",labels:""}),Or=c.useRef(gr);Or.current=gr;const[le,ir]=c.useState(new Set),[Te,$r]=c.useState(new Set),[dt,Br]=c.useState(!1),[fs,Jr]=c.useState(!1),[gs,ut]=c.useState(!1),[bs,Hr]=c.useState(!1),[hs,mt]=c.useState(!1),[vs,qr]=c.useState(!1),[ys,pt]=c.useState(!1),cr=c.useMemo(()=>{var u;const i=(u=F==null?void 0:F.status)==null?void 0:u.toUpperCase();return!i||i==="PUBLISHED"?null:i==="DRAFT"?"draft":"closed"},[F==null?void 0:F.status]),De=cr===null,xt=De?"":cr==="draft"?"This job post is still a draft - publish it to manage this pipeline.":"This job post is closed - reopen it to manage this pipeline.",js=c.useCallback(i=>{let u=!1;ir(m=>{const f=new Set(m);return f.has(i)?(f.delete(i),u=!0):f.add(i),f}),u&&(Br(!1),$r(m=>{if(m.size===0)return m;const f=Object.keys(D).find(E=>(D[E]||[]).some(T=>T.id===i)),k=x.find(E=>E.name===f);if(!k||!m.has(k.id))return m;const _=new Set(m);return _.delete(k.id),_}))},[D,x]),Xe=c.useCallback(()=>{ir(new Set),$r(new Set),Br(!1)},[]),ft=c.useCallback(i=>{const u=(Array.isArray(i)?i:[i]).map(String);ir(m=>{if(m.size===0)return m;let f=!1;const k=new Set(m);return u.forEach(_=>{k.delete(_)&&(f=!0)}),f?k:m})},[]),Ns=c.useCallback((i,u=null)=>{if(ir(m=>{const f=new Set(m),k=i.every(_=>f.has(_));
16return i.forEach(_=>{k?f.delete(_):f.add(_)}),f}),u!=null){const m=i.length>0&&i.every(f=>le.has(f));$r(f=>{const k=new Set(f);return m?k.delete(u):k.add(u),k})}else{const m=i.length>0&&i.every(f=>le.has(f));Br(!m)}},[le]),Me=c.useMemo(()=>{const i=[];return Object.entries(D).forEach(([u,m])=>{m.forEach(f=>{le.has(f.id)&&(i.some(k=>k.id===f.id)||i.push({...f,currentStage:f.currentStage||u}))})}),i},[D,le]),ws=c.useMemo(()=>new Set(Me.map(u=>u.currentStage)).size<=1,[Me]),Yr=c.useCallback(()=>{if(Te.size!==1)return null;const i=[...Te][0],u=x.find(_=>_.id===i);if(!u)return null;const m=D[u.name]||[],f=m.length>0&&m.every(_=>le.has(_.id)),k=Me.every(_=>_.currentStage===u.name);return f&&k?i:null},[Te,x,D,le,Me]),Ss=async i=>{if(le.size!==0){ut(!0);try{const u=Yr(),m=u!==null?{message:i,stage_id:u,job_id:H}:{message:i,candidate_ids:Array.from(le).map(f=>parseInt(f)),job_id:H};await Zs(m),te.success(`Message sent to ${le.size} candidates!`),Xe(),Jr(!1)}catch(u){const m=Fe(u);te.error(m.message||"Failed to send messages.")}finally{ut(!1)}}},Cs=()=>{De&&Hr(!0)},Ds=()=>{De&&qr(!0)},ks=async(i,u)=>{if(De&&le.size!==0){mt(!0);try{const m=Yr(),f=u&&u.trim(),k=m!==null?{job:H,from_stage:m,to_stage:i}:{candidate:Array.from(le).map(E=>parseInt(E)),pipeline_step:i,job:H};f&&(k.comment=f),await tt(k)?(te.success(`Successfully moved ${le.size} candidates!`),Xe(),Hr(!1),await dr()):te.error("Failed to move candidates.")}catch(m){const f=Fe(m);te.error(f.message||"An error occurred.")}finally{mt(!1)}}},Es=async i=>{if(De&&le.size!==0){pt(!0);try{const u=Yr(),m=i&&i.trim(),f=u!==null?{is_rejected:!0,job:H,from_stage:u}:{is_rejected:!0,candidate:Array.from(le).map(k=>parseInt(k)),job:H};m&&(f.comment=m),await Gs(f),te.success(`Successfully rejected ${le.size} candidates.`),Xe(),qr(!1),await dr()}catch(u){const m=Fe(u);te.error(m.message||"An error occurred.")}finally{pt(!1)}}},[br,Vr]=c.useState([]),[H,gt]=c.useState(null),Ne=c.useMemo(()=>{const i={};for(const[u,m]of t.entries())Bt.has(u)||(i[u]=m);return me&&(i.ordering=me),i},[t,me]),_s=c.useMemo(()=>JSON.stringify(Ne),[Ne]);c.useEffect(()=>{let i=!0;return(async()=>{var m,f,k,_;try{const E=t.get("search"),T=t.get("jobId")||t.get("job_id");if(er.current&&!E)return;Ve(!0);let q=[],G=null,we=!1;const Zr=await yr(E?null:Cr,1,10,null,E||"",null,null,!0);if(q=((m=Zr.data)==null?void 0:m.results)||Zr.data||[],i&&ke(!!((f=Zr.data)!=null&&f.next)),E){q.length>0&&(G=q[0],we=!0);try{const ie=await yr(Cr,1,10,null,"",null,null,!0);q=((k=ie.data)==null?void 0:k.results)||ie.data||[],i&&ke(!!((_=ie.data)!=null&&_.next))}catch(ie){Ie(ie)||console.error("Failed to load full jobs list:",ie)}}else if(T){if(G=q.find(ie=>ie.id===Number(T)),!G)try{const ie=await ga(Number(T));ie&&ie.job_post?G=ie.job_post:G=q[0]}catch(ie){console.error("Failed to fetch specific job details:",ie),G=q[0]}}else G=q[0];if(!i)return;const vr=new Map;q.forEach(ie=>vr.set(ie.id,ie)),G&&!vr.has(G.id)&&vr.set(G.id,G),Vr(Array.from(vr.values())),G&&(oe(G),gt(G.id),we&&s(ie=>{const Gr=new URLSearchParams(ie);return Gr.set("jobId",G.id.toString()),Gr.delete("search"),Gr})),er.current=!0}catch(E){Ie(E)||console.error("Job init failed:",E)}finally{i&&Ve(!1)}})(),()=>{i=!1}},[t]);const bt=c.useRef(!0);c.useEffect(()=>{if(bt.current){bt.current=!1;return}if(t.get("search"))return;const u=async()=>{try{Ve(!0);const k=(await yr(Cr,1,10,null,Ce||"",null,null,!0)).data,_=k.results||k,E=new Map;_.forEach(T=>E.set(T.id,T)),F&&!E.has(F.id)&&E.set(F.id,F),Vr(Array.from(E.values())),ke(!!k.next),Re(1)}catch(f){Ie(f)||console.error("loadSearchJobs failed",f)}finally{Ve(!1)}},m=setTimeout(()=>{u()},400);return()=>clearTimeout(m)},[Ce]),c.useEffect(()=>{n.current=t},[t]),c.useEffect(()=>{const i=u=>{Qe.current&&!Qe.current.contains(u.target)&&or(!1)};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[]);const Xr=c.useCallback(()=>Array.from(t.entries()).some(([i,u])=>!Bt.has(i)&&u&&u.trim()!==""),[t]),{paginationState:Ee,loadingStages:Ps,initializeStage:Ue,getPageToFetch:Ur,loadMore:ht,resetAllToFirstPage:rr,resetStages:Rs,restorePaginationState:vt}=Ia({fetchFunction:Ae,selectedJobId:H,searchParamsRef:n}),Ts=c.useMemo(()=>
16{if(Te.size===0)return le.size;let i=0;return Te.forEach(u=>{var _,E;const m=x.find(T=>T.id===u),f=m&&((_=D[m.name])==null?void 0:_.length)||0,k=(E=Ee==null?void 0:Ee[u])==null?void 0:E.totalCount;i+=typeof k=="number"&&k>0?k:f}),Me.forEach(u=>{const m=x.find(f=>f.name===u.currentStage);(!m||!Te.has(m.id))&&(i+=1)}),i},[Te,le,Me,x,D,Ee]);c.useEffect(()=>{H&&(a.current||(o.current={},rr(),W(!0),y({}),Xe()))},[H,rr,Xe]),c.useEffect(()=>{if(!w||!H||nr.current===w.id)return;nr.current=w.id,(async()=>{qe(!0),de(1);try{const u=await Ae(H,w.id,1,J?"REJECTED":"",{...Ne});Q(rt([],Oe(u.results||[]))),ne(u.next!==null)}catch(u){console.error("Modal initial load failed",u)}finally{qe(!1)}})()},[w==null?void 0:w.id,H]),c.useEffect(()=>{var i;(i=R.state)!=null&&i.shortlistResult&&ce({job:R.state.job,result:R.state.shortlistResult})},[R.state]);const Ms=()=>{ce(null),U(R.pathname,{replace:!0,state:{}})};c.useEffect(()=>{const i=Object.fromEntries(t.entries());Fr(f=>({...f,...Object.keys(f).reduce((k,_)=>(i[_]&&(k[_]=i[_]),k),{})})),i.name&&L(i.name),i.ordering&&he(i.ordering),Object.keys(gr).some(f=>t.has(f)&&t.get(f))&&z(!0)},[]);const Ls=async()=>{if(!(lr.current||!Ye)){lr.current=!0;try{const u=(await yr(Cr,xe+1,10,null,Ce,null,null,!0)).data,m=u.results||u;Vr(f=>[...new Map([...f,...m].map(k=>[k.id,k])).values()]),ke(!!u.next),Re(f=>f+1)}catch(i){console.error("loadMoreJobs failed",i)}finally{lr.current=!1}}},yt=i=>{ee(u=>[i,...u])},dr=async()=>{try{if(H&&x.length>0){rr();const i=await Promise.all(x.map(async m=>{try{const f=await Ae(H,m.id,1,J?"REJECTED":"",{...Ne}),k=Oe(f.results||[]);return Ue(m.id,1,f),{stageName:m.name,data:k}}catch(f){return console.error(`Error fetching candidates for stage ${m.id}:`,f),{stageName:m.name,data:[]}}})),u={};i.forEach(({stageName:m,data:f})=>{u[m]=f}),y(mr(u,x))}}catch(i){if(Ie(i))return;const u=Fe(i);te.error(u.message)}finally{B(!1)}},jt=async i=>{try{if(!H||i.length===0||x.length===0)return;Rs(i);const u=await Promise.all(i.map(async f=>{try{const k=x.find(T=>T.id===f);if(!k)return null;const _=await Ae(H,f,1,J?"REJECTED":"",{...Ne}),E=Oe(_.results||[]);return Ue(f,1,_),{stageName:k.name,data:E}}catch(k){return console.error(`Error refreshing candidates for stage ${f}:`,k),null}})),m={};u.forEach(f=>{f&&(m[f.stageName]=f.data)}),y(f=>{const k={...f,...m};return mr(k,x)})}catch(u){if(Ie(u))return;const m=Fe(u);te.error(m.message)}},zs=async()=>{!w||He||!re||(qe(!0),de(i=>{const u=i+1;return(async()=>{try{const m=await Ae(H,w.id,u,J?"REJECTED":"",{...Ne}),f=Oe(m.results||[]);Q(k=>rt(k,f)),ne(m.next!==null)}catch(m){console.error("Modal load more failed",m)}finally{qe(!1)}})(),u}))},Nt=c.useCallback(async i=>{const u=await ht({stageId:i,showRejected:J,jobId:H,extraFilters:Ne});if(!u||u.length===0)return;const f=Oe(u).filter(E=>{var q,G;const T=(E==null?void 0:E.status)==="REJECTED"||((q=E==null?void 0:E.originalData)==null?void 0:q.status)==="REJECTED"||((G=E==null?void 0:E.candidate_profile)==null?void 0:G.status)==="REJECTED";return J?T:!T}),k=x.find(E=>E.id===i),_=k==null?void 0:k.name;_&&(y(E=>{const T={...E,[_]:rt(E[_]||[],f)};return mr(T,x)}),(Te.has(i)||dt)&&f.length>0&&ir(E=>{const T=new Set(E);return f.forEach(q=>T.add(q.id)),T}))},[ht,J,H,Ne,x,Te,dt]),hr=c.useCallback(()=>{Object.keys(o.current).length>0&&(vt(o.current),o.current={})},[vt]),Wr=c.useCallback(async(i,u=!1)=>{if(i)try{B(!0);let m=x;if(m.length===0||b.current!==i){const _=await aa(i);_.sort((E,T)=>E.order-T.order),j(_),A(_.map(E=>E.id)),m=_,b.current=i}else B(!1);const f=await Promise.all(m.map(async _=>{try{const E=u||Xr()?1:Ur(_.id,!1),T=await Ae(i,_.id,E,u?"REJECTED":"",{...Ne}),q=Oe(T.results||[]);return Ue(_.id,E,T),{stageName:_.name,data:q}}catch(E){return console.error(`Error fetching candidates for stage ${_.id}:`,E),{stageName:_.name,data:[]}}})),k={};f.forEach(({stageName:_,data:E})=>{k[_]=E}),y(mr(k,m))}catch(m){if(Ie(m))return;const f=Fe(m);te.error(f.message)}finally{B(!1),W(!1)}},[x,Ne,Ur,Ue,Xr]);c.useEffect(()=>{if(!H)return;if(a.current){a.current=!1;return}K.current&&clearTimeout(K.current);const i=setTimeout(()=>{const u=Or.current;Object.entries(u).every(([f,k])=>!k||String(k).trim()==="")&&!J&&Object.keys(o.current).length>0&&hr(),x.length>0&&b.current===H?wt():Wr(H)},300);return K.current=i,()=>{clearTimeout(i)}},[H,J,_s]);const wt=async()=>{try{if(!H||x.length===0)return;const i=await Promise.all(x.map(async m=>{try{const f=J||Xr()?1:Ur(m.id,!1);if(f<=1){const E=await Ae(H,m.id,1,J?"REJECTED":"",{...Ne}),T=Oe(E.results||[]);return Ue(m.id,1,E),{stageName:m.name,data:T}}let k=[],_=null;for(let E=1;E<=f;E++){const T=await Ae(H,m.id,E,J?"REJECTED":"",{...Ne});if(k=k.concat(Oe(T.results||[])),_=T,(T==null?void 0:T.next)==null)return Ue(m.id,E,T),{stageName:m.name,data:k}}return Ue(m.id,f,_),{stageName:m.name,data:k}}catch(f){return console.error(`Error fetching candidates for stage ${m.id}:`,f),{stageName:m.name,data:[]}}})),u={};
16i.forEach(({stageName:m,data:f})=>{u[m]=f}),y(mr(u,x))}catch(i){if(Ie(i))return;const u=Fe(i);te.error(u.message)}finally{W(!1)}},St=async(i,u)=>{var m;h(i),C(u);try{(m=i==null?void 0:i.originalData)!=null&&m.id&&await Ks(i.originalData.id)}catch(f){console.error("Failed to send profile view notification:",f)}},As=()=>{h(null),C(null)},Is=async(i,u,m,f=null)=>{var k;if(f!==null){if(f===!0){ft(i);try{const _=x.find(T=>T.name===u),E=x.find(T=>T.name===m);_&&E&&await jt([_.id,E.id])}catch(_){console.error("Error refreshing specific stages:",_),te.error("Error refreshing candidates data"),y(E=>{var G;const T={...E},q=(G=T[u])==null?void 0:G.find(we=>we.id===i);return q&&(T[u]&&(T[u]=T[u].filter(we=>we.id!==i)),T[m]?T[m]=[...T[m],q]:T[m]=[q]),T})}}return f}try{const _=x.find(we=>we.name===m),E=x.find(we=>we.name===u),T=_?_.id:null,q=(k=D[u])==null?void 0:k.find(we=>we.id===i);return T?q!=null&&q.originalData?await tt({candidate:[q.originalData.id],pipeline_step:T,job:H})?(ft(i),E&&_&&await jt([E.id,_.id]),!0):!1:(console.error("Candidate data not found"),!1):(console.error("Destination stage not found"),!1)}catch(_){if(Ie(_))return!1;const E=Fe(_);return te.error(E.message),!1}},Fs=i=>{const{name:u,value:m}=i.target;Fr(f=>({...f,[u]:m})),X.current&&clearTimeout(X.current),X.current=setTimeout(()=>{const k={...Or.current,[u]:m},_=Object.entries(k).every(([T,q])=>!q||String(q).trim()===""),E=Object.entries(k).some(([T,q])=>q&&String(q).trim()!=="");E&&Object.keys(o.current).length===0&&(o.current=JSON.parse(JSON.stringify(Ee))),s(T=>{const q=new URLSearchParams(T);return m.trim()?q.set(u,m):q.delete(u),q}),_&&Object.keys(o.current).length>0?hr():E&&rr()},500)},Os=i=>{je(u=>({...u,[i]:!u[i]}))},$s=i=>{i.preventDefault()},Bs=i=>{A(u=>u.includes(i)?u.filter(m=>m!==i):[...u,i])},Ct={pipelineStages:x.filter(i=>S.includes(i.id)),allPipelineStages:x,candidates:D,selectedJobId:H,isJobSwitching:P,loadingStages:Ps,handleCandidateClick:St,handleCandidateMove:Is,isSidebarCollapsed:r,handleLogAdded:yt,refreshCandidates:dr,handleLoadMoreCandidates:Nt,onLoadMore:Nt,paginationState:Ee,collapsedStages:ae,toggleStageCollapse:Os,setExpandColumn:V,expandedColumnIdRef:fr,showRejected:J,loading:I,refreshAllCandidates:wt,selectedCandidateIds:le,toggleSelectCandidate:js,selectAllOnPage:Ns,canManagePipeline:De};if(d)return e.jsx("div",{className:"min-h-screen flex items-center justify-center",children:e.jsx(fa,{error:d,onRetry:()=>{p(null),window.location.reload()}})});if(br.length===0&&!Ce&&!H&&!Ze)return e.jsxs("div",{className:"recruiter-dashboard",children:[e.jsx("div",{className:"dashboard-header animate-fade-in",children:e.jsxs("div",{className:"header-content",children:[e.jsx("h1",{className:"page-title",children:"Recruitment Pipeline"}),e.jsx("p",{className:"page-subtitle",children:"Manage candidates through your recruitment process"})]})}),e.jsx("div",{className:"empty-state-container flex flex-col items-center justify-center min-h-[400px] text-center p-8",children:e.jsxs("div",{className:" rounded-xl p-12 max-w-[500px] border-2 border-dashed border-[#dee2e6]",children:[e.jsx(Er,{size:48,className:" mb-4"}),e.jsx("h2",{className:"text-[1.5rem] font-semibold mb-2",children:"No Jobs Available"}),e.jsx("p",{className:" text-base mb-6",children:"Add jobs first to see the pipeline UI and start managing candidates."}),$("add_jobpost")&&e.jsx(Qr,{to:"/jobs/createjob",children:e.jsxs("button",{className:"btn btn-primary text-white border-none rounded-md px-6 py-3 text-base font-medium cursor-pointer inline-flex items-center gap-2",children:[e.jsx(Er,{size:16})," Create Your First Job"]})})]})})]});const Kr=t.get("view")||(t.has("table")?"table":"board");return e.jsxs("div",{className:"recruiter-dashboard",children:[N&&e.jsxs("button",{onClick:()=>U(N),title:"Back to Jobs",className:"fixed bottom-6 left-6 z-50 inline-flex items-center gap-2 rounded-full border border-gray-300 bg-[var(--bg-primary)] px-4 py-2.5 text-sm font-medium shadow-lg hover:border-gray-400 hover:shadow-xl transition-all active:scale-95",children:[e.jsx(Da,{size:18}),"Back to Jobs"]}),e.jsx("div",{className:"dashboard-header animate-fade-in",children:e.jsxs("div",{className:"header-content",style:{display:"flex",alignItems:"center",gap:"2rem"},children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx("h1",{className:"page-title",children:"Recruitment Pipeline"}),e.jsxs("div",{className:"relative group",children:[e.jsx("div",{className:"flex text-blue-600 relative top-0.5 right-2 items-center justify-center w-10 h-10 rounded-full cursor-pointer transition",children:e.jsx(Rr,{size:18})}),e.jsxs("div",{className:"absolute left-0 top-9 z-50 hidden group-hover:block w-90 max-h-[400px] overflow-y-auto rounded-lg border border-gray-200 bg-white shadow-xl p-4 text-sm text-gray-700",children:[e.jsx("p",{className:"font-semibold text-gray-900 mb-2",children:"What happens on this page"}),e.jsxs("ul",{className:"space-y-1 list-disc list-inside mb-3",children:[e.jsx("li",{children:"Candidates are grouped by recruitment stages"}),e.jsx("li",{children:"Toggle between Board and Table views for better management"}),e.jsx("li",{children:"Filter by stages (labels) using the stage filter button"}),e.jsx("li",{children:"AI Match Score shows compatibility with job requirements"}),De&&e.jsx("li",{children:"Drag & drop candidates between stages in Board view"})]})]})]})]}),e.jsx("p",{className:"page-subtitle",children:"Manage candidates through your recruitment process"})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("label",{className:"text-sm font-medium whitespace-nowrap",children:"Select Job:"}),e.jsx(Pr,{searchable:!0,isRemoteSearch:!0,value:H||"",onChange:i=>
16{const u=Number(i),m=br.find(f=>f.id===u);gt(u),oe(m),s(f=>{const k=new URLSearchParams(f);return k.set("jobId",u.toString()),k.delete("search"),k})},onSearch:ze,onScrollEnd:Ls,placeholder:"Select a job",containerClass:"min-w-[360px]",buttonClass:"w-full px-4 py-2 text-sm rounded-md border border-gray-300 bg-[var(--bg-primary)] hover:border-gray-400 focus:ring-2 focus:ring-primary focus:border-primary truncate",options:br.length===0?[{label:"No jobs found",value:"",disabled:!0}]:br.map(i=>{const u=i.status?i.status.charAt(0).toUpperCase()+i.status.slice(1).toLowerCase():"";return{label:`${i.job_title}${i.jd_unique_id?` (${i.jd_unique_id})`:""} (${i.created_by}, ${i.team})${u?` - ${u}`:""}`,value:i.id}})}),F&&e.jsx(Qr,{to:`/jobs/${F.slug||F.id}`,title:"View Job Details",className:"flex items-center justify-center p-2 rounded-md border border-gray-300 bg-[var(--bg-primary)] text-gray-500 hover:text-[var(--primary)] hover:border-[var(--primary)] hover:bg-[var(--primary)]/5 transition-all outline-none","aria-label":"View Job Details",id:"job-details-link",children:e.jsx(ka,{size:16})})]}),e.jsx(Fa,{jobId:H,candidateId:null,refreshCallback:dr,canManagePipeline:De,lockMessage:xt})]})]})}),!De&&e.jsxs("div",{role:"status",className:"flex items-start gap-2 mt-1 px-3 py-2 rounded-lg border border-[var(--warning)]/40 bg-[var(--bg-secondary)] text-xs font-semibold text-[var(--text-secondary)]",children:[e.jsx(Ea,{size:14,className:"mt-0.5 shrink-0 text-[var(--warning)]"}),e.jsxs("span",{children:[e.jsx("span",{className:"font-black uppercase tracking-wide text-[var(--warning)]",children:cr==="draft"?"Draft job post":"Closed job post"})," - ",cr==="draft"?"stage changes, bulk actions and interview scheduling are locked until this job post is published.":"stage changes, bulk actions and interview scheduling are locked because this job post is closed."," You can still search, filter, review candidates and add notes.",F&&e.jsx(Qr,{to:`/jobs/${F.slug||F.id}`,className:"ml-1 text-[var(--primary)] underline underline-offset-2 hover:no-underline",children:cr==="draft"?"Publish job":"View job post"})]})]}),e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] py-2 mb-2 px-1 gap-4",children:[e.jsxs("div",{className:"flex-1 flex items-center gap-4",children:[e.jsx(za,{formData:gr,setFormData:Fr,handleFormChange:Fs,handleFormSubmit:$s,setSearchParams:s,onRestorePagination:hr,sortBy:me,onSortChange:i=>{he(i),o.current={},rr(),s(u=>{const m=new URLSearchParams(u);return i?m.set("ordering",i):m.delete("ordering"),m})}}),e.jsx("div",{className:"h-8 w-[1px] bg-[var(--border)] mx-1"}),e.jsxs("div",{className:"relative",ref:Qe,children:[e.jsxs("button",{onClick:()=>or(!Ge),className:`flex items-center gap-2 px-4 py-2 rounded-lg border text-sm font-bold transition-all shadow-sm ${Ge?"border-[var(--primary)] bg-[var(--primary)]/10 text-[var(--primary)]":"border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]"}`,children:[e.jsx(Xt,{size:14}),"Stages (",S.length,"/",x.length,")"]}),Ge&&e.jsxs("div",{className:"absolute left-0 top-full mt-2 z-50 w-64 bg-[var(--bg-primary)] border border-[var(--border)] rounded-xl shadow-2xl p-4 animate-in fade-in slide-in-from-top-2 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3 border-b border-[var(--border)] pb-2",children:[e.jsx("div",{className:"text-[10px] font-black text-[var(--text-secondary)] uppercase tracking-widest opacity-60",children:"Pipeline Labels"}),S.length<x.length&&e.jsx("button",{onClick:()=>A(x.map(i=>i.id)),className:"text-[10px] text-[var(--primary)] font-bold hover:underline",children:"RESET"})]}),e.jsx("div",{className:"space-y-1 max-h-[300px] overflow-y-auto custom-scrollbar",children:x.map(i=>e.jsxs("label",{className:"flex items-center gap-3 px-2 py-2.5 hover:bg-[var(--bg-secondary)] rounded-lg cursor-pointer transition-colors group",children:[e.jsx("input",{type:"checkbox",checked:S.includes(i.id),onChange:()=>Bs(i.id),className:"w-4.5 h-4.5 rounded border-[var(--border)] text-[var(--primary)] focus:ring-[var(--primary)] cursor-pointer transition-all bg-[var(--bg-primary)]"}),e.jsx("span",{className:"text-sm font-semibold text-[var(--text-primary)] group-hover:text-[var(--primary)]",children:i.name})]},i.id))})]})]}),e.jsxs("div",{className:"flex items-center gap-3 bg-[var(--bg-secondary)] px-3 py-1.5 rounded-lg border border-[var(--border)]",children:[e.jsx("span",{className:"text-sm font-bold text-[var(--text-secondary)]",children:"Show Rejected"}),e.jsx("button",{type:"button",onClick:()=>{const i=!J;i&&Object.keys(o.current).length===0&&(o.current=JSON.parse(JSON.stringify(Ee))),O(i),Xe(),i?(rr(),a.current=!0,Wr(H,i)):(a.current=!0,setTimeout(()=>{hr(),Wr(H,i)},0))},className:`relative inline-flex h-5 w-10 items-center rounded-full transition-colors duration-200 ease-in-out focus:outline-none ${J?"bg-[var(--error)]":"bg-[var(--gray-300)]"}`,role:"switch","aria-checked":J,children:e.jsx("span",{className:`inline-block h-3.5 w-3.5 transform rounded-full bg-white transition-transform duration-200 ease-in-out ${J?"translate-x-5.5":"translate-x-1"}`})})]})]}),e.jsxs("div",{className:"flex items-center bg-[var(--bg-secondary)] p-1 rounded-lg border border-[var(--border)]",children:[e.jsxs("button",{onClick:()=>{s(i=>{const u=new URLSearchParams(i);return u.set("view","board"),u.delete("table"),u})},className:`flex items-center gap-2 px-4 py-1.5 rounded-md text-sm font-bold transition-all ${Kr==="board"?"bg-[var(--bg-primary)] text-[var(--primary)] shadow-sm":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:[e.jsx(Ma,{size:16})," Board"]}),e.jsxs("button",{onClick:()=>{s(i=>{const u=new URLSearchParams(i);return u.set("view","table"),u.delete("board"),u})},className:`flex items-center gap-2 px-4 py-1.5 rounded-md text-sm font-bold transition-all ${Kr==="table"?"bg-[var(--bg-primary)] text-[var(--primary)] shadow-sm":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:[e.jsx(_a,{size:16})," Table"]})]})]}),e.jsx("div",{className:"pipeline-view-content flex-1 overflow-hidden flex flex-col",children:Kr==="board"?e.jsx(Yn,{...Ct}):e.jsx(Xn,{...Ct})}
16),l&&e.jsx(Ws,{selectedColumn:g,jobId:H,pipelineStages:x,candidate:l,onClose:As,candidateId:l==null?void 0:l.candidate_profile.user_id,jobpostId:H,logs:se,onLogAdded:yt,includeRejected:J,refreshCallback:dr,canManagePipeline:De,pipelineLockMessage:xt,defaultTab:g!=null&&g.enable_interview_scheduling&&!(J||(l==null?void 0:l.status)==="REJECTED"||((Dt=l==null?void 0:l.originalData)==null?void 0:Dt.status)==="REJECTED"||((kt=l==null?void 0:l.candidate_profile)==null?void 0:kt.status)==="REJECTED")?"interview":"overview"}),pe&&e.jsx(ha,{job:pe.job||F,shortlistResult:pe.result,onClose:Ms}),w&&e.jsx(es,{isOpen:!!w,column:w,candidates:Z,isLoading:He,hasMore:re,onLoadMore:zs,isSidebarCollapsed:r,onCandidateClick:St,totalCount:(Et=Ee==null?void 0:Ee[w.id])==null?void 0:Et.totalCount,onClose:()=>{V(null),Q([]),de(1),ne(!0),nr.current=!1,fr.current=null}}),!J&&De&&e.jsx(Un,{selectedCount:Ts,onClearSelection:Xe,onSendMessage:()=>Jr(!0),onMoveStage:Cs,onReject:Ds,showMoveStage:ws}),e.jsx(Wn,{isOpen:fs,onClose:()=>Jr(!1),selectedCandidates:Me,onSend:Ss,isSending:gs}),e.jsx(Kn,{isOpen:bs,onClose:()=>Hr(!1),selectedCandidates:Me,pipelineStages:x,onConfirm:ks,isUpdating:hs}),e.jsx(Gn,{isOpen:vs,onClose:()=>qr(!1),selectedCandidates:Me,onConfirm:Es,isUpdating:ys})]})};export{Uo 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.