1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/IqamaSelfieCropDialog-BQvgaqRm.js","assets/index-CWfHYO5E.js","assets/i18n-vendor-Co-krN6G.js","assets/react-vendor-D5E1hOjb.js","assets/supabase-vendor-Co_IX6oM.js","assets/index-CaNX_8Dm.css","assets/x-vmD7m2IU.js","assets/createLucideIcon-BPd9wT8k.js","assets/check-Dmd9WXya.js"])))=>i.map(i=>d[i]); 2import{j as t,h as aa,n as lt,_ as ra}from"./index-CWfHYO5E.js";import{u as sa,r as d}from"./i18n-vendor-Co-krN6G.js";import{b as ot,c as it,g as dt,d as na,e as St}from"./employeeData-C8aL7inU.js";import{u as la,g as oa,a as ia,b as da}from"./employeePhotos-D9Y3giLT.js";import{u as ca,s as ma,c as ua}from"./employeeStore-Bf93IXuN.js";import{c as pa,m as ct}from"./subscriptionData-CfsfRpPn.js";import{u as xa}from"./useCompanySubscription-F3044_gY.js";import{f as ba}from"./idRecords-DEMAw_-Y.js";import{g as ha}from"./fileUploadPolicy-Dsb_MFV2.js";import{a as ga}from"./vehicleStore-C_Od9wq7.js";import{g as fa}from"./vehicleIcons-bClxm9na.js";import{r as ya}from"./employeeDocumentOcr-KQQg7Wid.js";import{A as Na}from"./AddableCombobox-CqXSGXMf.js";import{C as ka,L as va}from"./Feedback-DYG2Z_bd.js";import{C as ja}from"./CollapsibleFilterPopup-1cOH-R2J.js";import{A as wa}from"./ActiveFiltersBar-BLfIExsM.js";import{m as Ea}from"./search-BjfNVckD.js";import{c as Ca}from"./permissionGuard-CncTqt-b.js";import{u as L}from"./listPageFilterStore-f3vrQt4m.js";import{c as Sa,B as Ia}from"./employeeListView-CxZWBZKH.js";import{a as _a}from"./employees-BRHETJwx.js";import{e as qa,f as Da,u as La}from"./react-vendor-D5E1hOjb.js";import{L as Aa}from"./list-filter-DaDcnip1.js";import{U as mt}from"./user-plus-HXoSqdDg.js";import{A as ut}from"./arrow-up-down-CkLpXE6A.js";import{C as pt}from"./calendar-days-CjnZjrFT.js";import{X as Ue}from"./x-vmD7m2IU.js";import{c as Fa}from"./createLucideIcon-BPd9wT8k.js";import{I as $e}from"./id-card-Bnn-5gHP.js";import{P as xt}from"./phone-2YosEfW8.js";import{T as Ma}from"./truck-4Rzdymf1.js";import{S as $a}from"./shield-check-CoXA4xpb.js";import{F as Te}from"./file-text-DDMr4pQb.js";import{M as za}from"./message-circle-DjE03uxv.js";import{U as It}from"./upload-CSd9GWjy.js";import{L as Ne}from"./loader-circle-BnjBO311.js";import{S as Pa}from"./sparkles-PWBhcwyB.js";import{C as Oa}from"./circle-check-big-BlA7vPdq.js";import{T as Ua}from"./triangle-alert-JFzfoOgH.js";import{C as Ta}from"./copy-CeMvOoUT.js";import"./supabase-vendor-Co_IX6oM.js";import"./browserCache-CpZow4D-.js";import"./car-front-B5Iqc2A_.js";import"./DropdownSurface-CB6DlvDk.js";import"./SearchHighlight-jWkw4w8k.js";import"./chevron-down-dM4Lsy2M.js";import"./plus-kWcs1cQG.js";import"./check-Dmd9WXya.js";import"./info-DPZ067dm.js";import"./circle-alert-ENI3C5U8.js";import"./circle-check-Doi6ea3z.js";import"./refresh-cw-BvuhVw-0.js";import"./listSortRules-BuRGlpy7.js";/** 3 * @license lucide-react v1.11.0 - ISC 4 * 5 * This source code is licensed under the ISC license. 6 * See the LICENSE file in the root directory of this source tree. 7 */const Ba=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],Ra=Fa("clipboard-list",Ba),bt="/assets/iqama-upload-sample-C3J95B-Y.jpg",Va=864e5,ht=a=>Date.UTC(a.getFullYear(),a.getMonth(),a.getDate()),Wa=(a,s=new Date)=>{if(!a)return null;const o=new Date(a);if(Number.isNaN(o.getTime())||Number.isNaN(s.getTime()))return null;const n=Math.floor((ht(s)-ht(o))/Va);return Math.max(1,n+1)},gt=(a,s)=>s.toLowerCase().startsWith("ar")?`${a.toLocaleString("ar-SA")} ÙÙÙ `:`${a.toLocaleString("en-US")} ${a===1?"Day":"Days"}`,Ka=d.lazy(()=>ra(()=>import("./IqamaSelfieCropDialog-BQvgaqRm.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))),ye=["Complete","Not Complete"],Ha=["0","1","2","3","3+"],Ya=["iqama"],Ga=["selfie","iqama"],Ja={selfie:"Selfie",iqama:"Iqama"}
7,Xa=["arabicName","dateOfBirth","fullName","iqamaExpiry","iqamaNumber","nationality","occupationVisa","sponsor"],ft=/^(?:05\d{8}|\+9665\d{8})$/,Qa=/^2\d{9}$/,Za=/^[0-9]{1,9}$/,er=a=>{const s=a.trim();if(!Za.test(s))return!1;const o=Number(s);return Number.isInteger(o)&&o>0},tr=(a,s)=>a.replace(/\D/g,"").slice(0,s),yt=(a,s)=>{const o=a instanceof Error?a.message:typeof a=="string"?a:a&&typeof a=="object"&&"message"in a?String(a.message??""):"";return/failed to fetch|network|timeout|connection/i.test(o)?"The server could not be reached. Check the internet connection and press Save Employee again.":o||s},ar=[{key:"nickName",label:"Nickname"},{key:"fullName",label:"Full Name (English)"},{key:"arabicName",label:"Arabic Name"},{key:"phoneNo",label:"Phone"},{key:"designation",label:"Designation"},{key:"occupationVisa",label:"Visa Occupation"},{key:"branch",label:"Branch"},{key:"status",label:"Status"},{key:"iqamaNumber",label:"Iqama Number"},{key:"iqamaExpiry",label:"Iqama Expiry"},{key:"dateOfBirth",label:"Date of Birth"},{key:"nationality",label:"Nationality"},{key:"entryDate",label:"Entry Date"},{key:"sponsor",label:"Sponsor"},{key:"accomodation",label:"Accommodation"},{key:"agreement",label:"Agreement"},{key:"commitment",label:"Commitment"},{key:"transferCount",label:"Transfer Count"}],Nt=["Working","Waiting","Ready","On-Leave"],ze=[{key:"iqamaExpiry",label:"Iqama Expiry"},{key:"passportExpiry",label:"Passport Expiry"},{key:"insurancePriority",label:"Insurance"},{key:"joinDate",label:"Join Date"},{key:"transferCount",label:"Transfer Count"}],kt=new Set(["branch","sponsor","nationality","designation","agreement","commitment"]),Pe=60,rr=(a,s)=>{var o;switch(s){case"branch":return a.branch.trim();case"sponsor":return a.sponsor.trim();case"status":return a.status;case"designation":return((o=a.designation)==null?void 0:o.trim())||"";case"nationality":return a.nationality.trim();case"accomodation":return a.accomodation.trim();case"agreement":return a.agreement;case"commitment":return a.commitment;case"transferCount":return a.transferCount.trim();default:return""}},sr=(a,s)=>Object.entries(s).every(([o,n])=>n.length===0?!0:n.includes(rr(a,o))),nr={Working:"border-emerald-200 shadow-[0_0_0_1px_rgba(16,185,129,0.08),0_8px_22px_-16px_rgba(16,185,129,0.55)]",Waiting:"border-yellow-200 shadow-[0_0_0_1px_rgba(234,179,8,0.08),0_8px_22px_-16px_rgba(234,179,8,0.55)]",Ready:"border-blue-200 shadow-[0_0_0_1px_rgba(59,130,246,0.08),0_8px_22px_-16px_rgba(59,130,246,0.55)]","On-Leave":"border-orange-200 shadow-[0_0_0_1px_rgba(249,115,22,0.08),0_8px_22px_-16px_rgba(249,115,22,0.55)]",Exited:"border-red-200 shadow-[0_0_0_1px_rgba(239,68,68,0.08),0_8px_22px_-16px_rgba(239,68,68,0.55)]"},vt={Ready:"border-blue-400 shadow-[0_0_0_3px_rgba(59,130,246,0.14),0_16px_36px_-28px_rgba(59,130,246,0.9)]",Waiting:"border-amber-400 shadow-[0_0_0_3px_rgba(245,158,11,0.14),0_16px_36px_-28px_rgba(245,158,11,0.9)]",Working:"border-emerald-400 shadow-[0_0_0_3px_rgba(16,185,129,0.14),0_16px_36px_-28px_rgba(16,185,129,0.9)]","On-Leave":"border-orange-400 shadow-[0_0_0_3px_rgba(249,115,22,0.14),0_16px_36px_-28px_rgba(249,115,22,0.9)]",Exited:"border-red-400 shadow-[0_0_0_3px_rgba(248,113,113,0.14),0_16px_36px_-28px_rgba(248,113,113,0.9)]"},lr=()=>{const a=new Date,s=a.getFullYear(),o=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0");return`${s}-${o}-${n}`},jt=()=>({idNumber:"",nickName:"",arabicName:"",fullName:"",phoneNo:"",phoneNo2:"",email:"",designation:"",occupationVisa:"",branch:"",status:"Waiting",vehicleNumber:"-",iqamaNumber:"",iqamaExpiry:"",dateOfBirth:"",passportNo:"",passportExpiry:"",nationality:"",entryDate:lr(),sponsor:"",accomodation:"",agreement:"",commitment:"",transferCount:"",healthInsuranceName:"",healthInsuranceExpiry:"",bankAccounts:[],documents:{selfie:!1,iqama:!1,license:!1,passport:!1,medicalInfo:!1,driverCard:!1,ajeerContract:!1}}),or=a=>{const s=a.map(n=>n.idNumber.trim()).filter(er).map(n=>Number(n));if(s.length>0)return String(Math.max(...s)+1);const o=a.reduce((n,u)=>Math.max(n,u.id),0)+1;return`EMP${String(o).padStart(3,"0")}`},D=a=>Array.from(new Set(a.map(s=>(s==null?void 0:s.trim())??"").filter(s=>s&&s!=="-"))).sort((s,o)=>s.localeCompare(o)),wt=["Driver","Supervisor"],_t=a=>{if(!a)return null;const s=new Date;s.setHours(0,0,0,0);const o=new Date(a);if(o.setHours(0,0,0,0),Number.isNaN(o.getTime()))return null;const n=24*60*60*1e3;return Math.floor((o.getTime()-s.getTime())/n)},ke=a=>{if(!a)return"â";const s=new Date(a);return Number.isNaN(s.getTime())?"â":s.toLocaleDateString("en-GB")},Y=a=>a.startsWith("ar"),x=(a,s,o)=>Y(a)?o:s,Be=a=>`${a} day${a===1?"":"s"}`,ir=(a,s)=>{const o=[],n=Y(s),u=_t(a.iqamaExpiry);u!==null&&(u<0?o.push(n?`Ø§ÙØªÙت Ø§ÙØ¥ÙاÙ
Ø© Ù
ÙØ° ${Math.abs(u)} ÙÙÙ
`:`Iqama expired (${Be(Math.abs(u))} ago)`):u<10&&o.push(n?`ØªÙØªÙÙ Ø§ÙØ¥ÙاÙ
Ø© Ø®ÙØ§Ù ${u} ÙÙÙ
`:`Iqama expires in ${Be(u)}`)),a.agreement==="Not Complete"&&o.push(x(s,"Agreement is not complete","Ø§ÙØ§ØªÙاÙÙØ© ØºÙØ± Ù
ÙØªÙ
ÙØ©")),a.commitment==="Not Complete"&&o.push(x(s,"Commitment is not complete","Ø§ÙØ§ÙتزاÙ
ØºÙØ± Ù
ÙØªÙ
Ù"));const r=!!a.healthInsuranceName.trim(),y=!!a.healthInsuranceExpiry.trim();return!r&&!y?o.push(x(s,"Health insurance is missing","Ø§ÙØªØ£Ù
ÙÙ Ø§ÙØµØÙ ØºÙØ± Ù
ÙØ¬Ùد")):r?y||o.push(x(s,"Health insurance expiry is missing","ØªØ§Ø±ÙØ® Ø§ÙØªÙاء Ø§ÙØªØ£Ù
ÙÙ Ø§ÙØµØÙ ØºÙØ± Ù
ÙØ¬Ùد")):o.push(x(s,"Health insurance name is missing","اسÙ
Ø§ÙØªØ£Ù
ÙÙ Ø§ÙØµØÙ ØºÙØ± Ù
ÙØ¬Ùد")),o},Et=a=>a.replace(/[^0-9]/g,""),Re=a=>a.toLowerCase().replace(/[^\p{L}\p{N}]+/gu," ").trim().replace(/\s+/g," "),dr=(a,s)=>St(s,a),cr=(a,s)=>{const o=Re(a);return!o||o==="unassigned"||o==="not assigned"||o==="ØºÙØ± Ù
عÙÙ"?!1:St(s,a)},qt=(a,s)=>
7{const o=[a.phoneNo,a.phoneNo2].map(Et).filter(Boolean);return s.filter(n=>{if(dr(n.owner,a))return!0;const u=Et(n.phoneNumber);return!!(u&&o.includes(u))})},mr=(a,s)=>s.find(o=>cr(o.driver,a)),ur=(a,s)=>a!=null&&a.vehicleNumber?a.vehicleNumber:x(s,"Not assigned","ØºÙØ± Ù
عÙÙ"),pr=(a,s)=>Array.from(new Set(a.map(n=>n.idNumber).filter(Boolean))).join(", ")||x(s,"Not provided","ØºÙØ± Ù
تÙÙØ±"),Ct=(a,s)=>a==="Complete"?x(s,"Complete","Ù
ÙØªÙ
Ù"):x(s,"Not Complete","ØºÙØ± Ù
ÙØªÙ
Ù"),xr=a=>{const s=a.trim().length;return s>36?"0.68rem":s>30?"0.74rem":s>24?"0.8rem":s>18?"0.88rem":"0.96rem"},br=(a,s,o)=>[o,a.fullName,a.arabicName,a.nickName,a.idNumber,a.iqamaNumber,a.phoneNo,a.phoneNo2,a.designation,a.occupationVisa,a.status,a.vehicleNumber,...qt(a,s).map(n=>n.idNumber)],hr=(a,s)=>{const o=Y(s);if(!a.healthInsuranceName.trim()&&!a.healthInsuranceExpiry.trim())return x(s,"Insurance: Not provided","Ø§ÙØªØ£Ù
ÙÙ: ØºÙØ± Ù
تÙÙØ±");if(!a.healthInsuranceExpiry.trim())return x(s,"Insurance: Expiry not provided","Ø§ÙØªØ£Ù
ÙÙ: ØªØ§Ø±ÙØ® Ø§ÙØ§ÙØªÙØ§Ø¡ ØºÙØ± Ù
تÙÙØ±");const n=_t(a.healthInsuranceExpiry);return n===null?o?`Ø§ÙØªØ£Ù
ÙÙ: ${a.healthInsuranceExpiry}`:`Insurance: ${a.healthInsuranceExpiry}`:n<0?o?`Ø§ÙØªØ£Ù
ÙÙ: Ù
ÙØªÙÙ Ù
ÙØ° ${Math.abs(n)} ÙÙÙ
`:`Insurance: Expired ${Be(Math.abs(n))} ago`:o?`Ø§ÙØªØ£Ù
ÙÙ: ØµØ§ÙØ ØØªÙ ${ke(a.healthInsuranceExpiry)}`:`Insurance: Valid until ${ke(a.healthInsuranceExpiry)}`},gr=({title:a,issues:s,type:o,language:n})=>{if(s.length===0)return null;const u=Y(n);return t.jsxs("div",{className:"relative z-20 group/issue",children:[t.jsx("button",{onClick:r=>r.stopPropagation(),className:"inline-flex h-7 w-7 items-center justify-center rounded-full border border-red-400/35 bg-red-500/10 text-red-400 hover:bg-red-500/15",title:a,children:o==="notification"?t.jsx(Ua,{size:14}):t.jsx(Te,{size:14})}),t.jsxs("div",{style:{insetInlineEnd:0},dir:u?"rtl":"ltr",className:`ars-floating-menu hidden group-hover/issue:block absolute top-full mt-1 w-64 bg-white border border-slate-200 rounded-lg shadow-lg p-2 z-40 ${u?"text-right":"text-left"}`,children:[t.jsx("p",{className:"text-[11px] font-semibold text-slate-600 mb-1",children:a}),t.jsx("ul",{className:"space-y-1",children:s.map(r=>t.jsxs("li",{className:"text-[11px] text-red-600 leading-snug",children:["- ",r]},r))})]})]})},fr=a=>{if(!a)return!1;const s=a.trim().toLowerCase();return!!(s&&s!=="-"&&s!=="not provided"&&s!=="ØºÙØ± Ù
تÙÙØ±"&&s!=="not assigned"&&s!=="ØºÙØ± Ù
عÙÙ")},yr=async a=>{try{await navigator.clipboard.writeText(a)}catch{const s=document.createElement("textarea");s.value=a,s.style.position="fixed",s.style.opacity="0",document.body.appendChild(s),s.select(),document.execCommand("copy"),s.remove()}},z=({icon:a,label:s,value:o,copyValue:n})=>t.jsxs("div",{className:"grid grid-cols-[88px_minmax(0,1fr)] items-start gap-1 px-2 py-0.5 text-[11px] leading-tight",children:[t.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[a,s]}),t.jsxs("span",{className:"flex min-w-0 items-start gap-1.5",children:[t.jsx("span",{className:"min-w-0 flex-1 break-words font-semibold text-slate-700 dark:text-slate-200",children:o}),fr(n)&&t.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),yr(n)},className:"inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-slate-400 transition-colors hover:bg-slate-100 hover:text-emerald-700 dark:text-slate-400 dark:hover:bg-slate-800 dark:hover:text-emerald-300",title:`Copy ${s}`,children:t.jsx(Ta,{size:10})})]})]});function ks(){const a=qa(),[s,o]=Da(),{i18n:n,t:u}=sa(),r=e=>u(`terms.${e}`,e),y=La(),g=(y==null?void 0:y.searchTerm)??"",h=L(e=>e.employees.activeFilter),q=L(e=>e.setEmployeesActiveFilter),[j,A]=d.useState(!1),ae=L(e=>e.employees.columnFilters.branch??[]),F=L(e=>e.employees.columnFilters.sponsor??[]),k=L(e=>e.employees.columnFilters),ie=k.nationality??[],Dt=k.designation??[],Lt=k.agreement??[],At=k.commitment??[],Ve=L(e=>e.toggleEmployeesColumnFilterValue),de=L(e=>e.setEmployeesColumnFilter),We=L(e=>e.clearEmployeesColumnFilter),Ft=L(e=>e.setEmployeesSearchTerm),[G,ve]=d.useState(null),[ce,P]=d.useState(!1),O=L(e=>e.employees.sortBy),J=L(e=>e.setEmployeesSortBy),je=d.useRef(null),Ke=d.useRef([]),me=ca(),N=me.employees,B=Ca("employees"),E=d.useMemo(()=>N.filter(e=>e.status!=="Exited"),[N]),Mt=ga(),$t=d.useMemo(()=>pa(E.length),[E.length]),R=d.useMemo(()=>({designation:D([...wt,...N.map(e=>e.designation)]),occupationVisa:D(N.map(e=>e.occupationVisa)),nationality:D(N.map(e=>e.nationality)),branch:D(N.map(e=>e.branch)),sponsor:D(N.map(e=>e.sponsor)),accomodation:D(N.map(e=>e.accomodation)),healthInsuranceName:D(N.map(e=>e.healthInsuranceName))}),[N]),{subscription:we}=xa($t),[zt,Pt]=d.useState({}),ue=(me.status==="idle"||me.status==="loading")&&N.length===0,He=me.error,[Ee,pe]=d.useState(!1),[w,Ce]=d.useState(null),[i,X]=d.use
7State(jt),[re,Ye]=d.useState(!1),Se=d.useRef(!1),[xe,v]=d.useState(""),[$,Q]=d.useState({}),[Ge,U]=d.useState(""),[be,Z]=d.useState(""),[Ot,Ie]=d.useState(""),[Je,se]=d.useState(null),[ne,he]=d.useState({key:null,progress:0,status:""}),[Ut,ee]=d.useState(null),[_e,Tt]=d.useState([]),[Bt,Xe]=d.useState({}),S=Y(n.language),V=!!ne.key,qe=ot(i.status),Qe=it(i.status),De=Object.values(k).some(e=>e.length>0),Rt={branch:r("Branch"),sponsor:r("Sponsor"),nationality:r("Nationality"),designation:r("Designation"),agreement:r("Agreement"),commitment:r("Commitment")},Vt=Object.entries(k).flatMap(([e,l])=>(l??[]).map(c=>({key:`${e}-${c}`,label:Rt[e]??e,value:r(c),onRemove:()=>Ve(e,c)}))),Wt=()=>{Object.keys(k).forEach(e=>We(e)),Ft("")},ge=O!=="statusPriority",Le=d.useMemo(()=>N.filter(e=>e.status==="On-Leave").map(e=>e.id).join(","),[N]),I=d.useMemo(()=>({branch:D(E.map(e=>e.branch)),sponsor:D(E.map(e=>e.sponsor)),nationality:D(E.map(e=>e.nationality)),designation:D(E.map(e=>e.designation||"")),agreement:ye,commitment:ye}),[E]);d.useEffect(()=>{if(!be)return;const e=window.setTimeout(()=>Z(""),4e3);return()=>window.clearTimeout(e)},[be]),d.useEffect(()=>{if(!Ee||Object.keys($).length===0)return;const e=l=>{l.preventDefault(),l.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[Ee,$]);const Ze=e=>l=>{Ke.current[e]=l},et=()=>{A(!1),P(e=>!e)},Kt=()=>{kt.forEach(e=>We(e)),A(!1)},Ht=e=>{ve(l=>l===e?null:e)};d.useEffect(()=>{if(G===null)return;const e=()=>{ve(null)};return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[G]),d.useEffect(()=>{if(!j)return;const e=l=>{je.current&&!je.current.contains(l.target)&&A(!1)};return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[j]),d.useEffect(()=>{if(!ce)return;const e=l=>{const c=l.target;Ke.current.some(f=>f==null?void 0:f.contains(c))||P(!1)};return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[ce]),d.useEffect(()=>{let e=!0;return ba().then(l=>{e&&Tt(l)}).catch(l=>{console.warn("ID Manager records unavailable for employee cards:",l)}),()=>{e=!1}},[]),d.useEffect(()=>{let e=!0;if(Xe({}),!Le)return()=>{e=!1};const l=Le.split(",").map(c=>Number(c));return _a(l).then(c=>{e&&Xe(c)}).catch(c=>{console.warn("Employee leave durations unavailable:",c)}),()=>{e=!1}},[Le]),d.useEffect(()=>{Object.entries(k).forEach(([e,l])=>{kt.has(e)||l.length===0||de(e,[])})},[k,de]),d.useEffect(()=>{const e={branch:I.branch,sponsor:I.sponsor,nationality:I.nationality,designation:I.designation,agreement:I.agreement,commitment:I.commitment};Object.entries(e).forEach(([l,c])=>{const m=k[l]??[];if(m.length===0)return;const f=new Set(c),M=m.filter(C=>f.has(C));M.length!==m.length&&de(l,M)})},[I,k,de]),d.useEffect(()=>{O==="statusPriority"||ze.some(e=>e.key===O)||J("statusPriority")},[J,O]);const Ae=d.useMemo(()=>E.filter(e=>sr(e,k)),[E,k]),fe=d.useMemo(()=>Ae.filter(e=>Ea(g,br(e,_e,dt(e,n.language)))),[Ae,n.language,_e,g]),Yt=d.useMemo(()=>{const e={Working:0,Waiting:0,Ready:0,"On-Leave":0,Exited:0};return fe.forEach(l=>{e[l.status]+=1}),e},[fe]),T=d.useMemo(()=>[...fe.filter(l=>h==="All"?!0:l.status===h)].sort((l,c)=>Sa(l,c,O,n.language)),[h,n.language,fe,O]),[tt,at]=d.useState(Pe);d.useEffect(()=>{if(at(Pe),T.length<=Pe)return;const e=()=>at(T.length);if(typeof window.requestIdleCallback=="function"){const c=window.requestIdleCallback(e,{timeout:900});return()=>window.cancelIdleCallback(c)}const l=window.setTimeout(e,120);return()=>window.clearTimeout(l)},[T.length]);const Fe=d.useMemo(()=>T.slice(0,tt),[tt,T]),Gt=la(Fe),rt=e=>{ve(null),P(!1),A(!1),a(`/employees/${e}`)},le=d.useCallback(()=>{if(!B)return v("You do not have edit permission for Employees."),!1;const e=ct(we,E.length);return e?(v(e),a("/subscription?limit=employees"),!1):(Ce(null),X({...jt(),idNumber:or(N)}),Q({}),U(""),Z(""),Ie(l=>(l&&URL.revokeObjectURL(l),"")),se(null),he({key:null,progress:0,status:""}),ee(null),v(""),pe(!0),!0)},[E.length,B,N,a,we]);d.useEffect(()=>{ue||s.get("action")!=="add"||(o(e=>{const l=new URLSearchParams(e);return l.delete("action"),l},{replace:!0}),le())}
7,[ue,le,s,o]);const b=(e,l)=>{const c=e==="phoneNo"||e==="phoneNo2"?aa(l):e==="iqamaNumber"?tr(l,10):l;X(m=>{if(e==="status"&&!ot(c)){const f=c;return{...m,status:f,designation:it(f)?m.designation:"",accomodation:""}}return{...m,[e]:c}})},Jt=e=>{X(l=>{const c={...l};return Xa.forEach(m=>{var M;const f=(M=e[m])==null?void 0:M.trim();f&&!c[m].trim()&&(c[m]=f)}),c})},st=async(e,l)=>{U(""),Z(""),ee(null);const c=ha(l,"image");if(c){U(c);return}Q(m=>({...m,[e]:l})),X(m=>({...m,documents:{...m.documents,[e]:!0}})),se(l),Ie(m=>(m&&URL.revokeObjectURL(m),URL.createObjectURL(l))),he({key:e,progress:0,status:"Starting Document Intelligence"});try{const m=await ya(l,e,(f,M)=>he({key:e,progress:f,status:M}));Jt(m.fields),ee(e)}catch(m){ee(null),U(S?"تعذر ÙØ±Ø§Ø¡Ø© اÙÙ
Ø³ØªÙØ¯ تÙÙØ§Ø¦ÙاÙ. ÙÙ
ÙÙ٠تعبئة Ø§ÙØ¨ÙØ§ÙØ§Øª ÙØ¯ÙÙØ§Ù.":`Document Intelligence could not read the document. Fill the details manually. ${m instanceof Error?m.message:""}`.trim())}finally{he({key:null,progress:0,status:""})}},Xt=()=>{V||(Q(e=>{const l={...e};return delete l.iqama,delete l.selfie,l}),X(e=>({...e,documents:{...e.documents,iqama:!1,selfie:!1}})),Ie(e=>(e&&URL.revokeObjectURL(e),"")),se(null),U(""),Z(""),ee(null))},Qt=e=>{le()&&window.setTimeout(()=>{st("iqama",e)},0)},Zt=async e=>{if(e.preventDefault(),V||Se.current)return;if(!w){const c=ct(we,E.length);if(c){v(c),a("/subscription?limit=employees");return}}Se.current=!0,Ye(!0),v(""),U("");let l=null;try{if(!w&&(Ya.some(p=>!$[p])||!$.selfie)){U(S?"Ø§ÙØ¥ÙاÙ
Ø© ÙØªØØ¯Ùد ØµÙØ±Ø© Ø§ÙØ±Ø§Ùب Ù
Ù Ø§ÙØ¥ÙاÙ
Ø© Ù
Ø·ÙÙØ¨Ø§Ù.":"Iqama and a confirmed rider portrait from the Iqama are required.");return}const c=ar.find(({key:p})=>!String(i[p]??"").trim()&&(qe||p!=="designation"&&p!=="accomodation"));if(c){v(S?`${r(c.label)} Ù
Ø·ÙÙØ¨.`:`${r(c.label)} is required.`);return}const m=i.nickName.trim();if(!m){v(r("Nickname is required."));return}if(!/^[\p{L}\p{N}_-]+$/u.test(m)){v(S?"اسÙ
Ø§ÙØ´Ùرة ÙØ§ ÙÙØ¨Ù اÙÙ
Ø³Ø§ÙØ§Øª. استخدÙ
Ø§ÙØØ±ÙÙ Ø£Ù Ø§ÙØ£Ø±ÙاÙ
Ø£Ù Ø§ÙØ´Ø±Ø·Ø© Ø£Ù Ø§ÙØ´Ø±Ø·Ø© Ø§ÙØ³ÙÙÙØ© ÙÙØ·.":"Nickname cannot contain spaces. Use letters, numbers, dashes, or underscores only.");return}if(N.some(p=>p.id!==(w==null?void 0:w.id)&&Re(p.nickName)===Re(m))){v(r("Nickname must be unique."));return}if(!ft.test(i.phoneNo)){v(S?"ÙØ¬Ø¨ Ø£Ù ÙØ¨Ø¯Ø£ رÙÙ
اÙÙØ§ØªÙ ب٠05 ÙÙØªØ¨Ø¹Ù 8 Ø£Ø±ÙØ§Ù
Ø Ø£Ù Ø¨Ù +966 ÙÙØªØ¨Ø¹Ù رÙÙ
Ø¬ÙØ§Ù.":"Phone must be 05 followed by 8 digits, or +966 followed by a mobile number.");return}if(i.phoneNo2&&!ft.test(i.phoneNo2)){v(S?"ÙØ¬Ø¨ Ø£Ù ÙØ¨Ø¯Ø£ رÙÙ
اÙÙØ§ØªÙ Ø§ÙØ«Ø§Ù٠ب٠05 ÙÙØªØ¨Ø¹Ù 8 Ø£Ø±ÙØ§Ù
Ø Ø£Ù Ø¨Ù +966 ÙÙØªØ¨Ø¹Ù رÙÙ
Ø¬ÙØ§Ù.":"Second Phone must be 05 followed by 8 digits, or +966 followed by a mobile number.");return}if(!Qa.test(i.iqamaNumber)){v(S?"رÙÙ
Ø§ÙØ¥ÙاÙ
Ø© ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ 10 Ø£Ø±ÙØ§Ù
ÙÙØ¨Ø¯Ø£ ب٠2.":"Iqama Number must be 10 digits and start with 2.");return}if(N.some(p=>p.id!==(w==null?void 0:w.id)&&p.iqamaNumber.trim()===i.iqamaNumber.trim())){v(S?"رÙÙ
Ø§ÙØ¥ÙاÙ
Ø© ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ ØºÙØ± Ù
ÙØ±Ø±.":"Iqama Number must be unique.");return}if(!i.agreement||!i.commitment){v(r("Agreement and Commitment are required."));return}if(i.healthInsuranceName.trim()&&!i.healthInsuranceExpiry){v(r("Insurance expiry is required when insurance name is selected."));return}const C={...i,agreement:i.agreement,commitment:i.commitment,nickName:m,fullName:i.fullName.trim(),arabicName:i.arabicName.trim(),phoneNo:lt(i.phoneNo),phoneNo2:lt(i.phoneNo2),healthInsuranceName:i.healthInsuranceName.trim(),documents:{...i.documents,selfie:!!$.selfie||i.documents.selfie,iqama:!!$.iqama||i.documents.iqama}},te=w?await ma(w.id,C):await ua(C);w||(l=te),Ce(te);const W={...$},K=[];for(const p of Ga){const nt=W[p];if(!nt)continue;const Me=Ja[p];try{const oe=await ia({employeeNo:te.id,fileKey:p,title:Me,fileType:"image",file:nt});delete W[p],p==="selfie"&&da(te.id,oe.thumbnailUrl||oe.signedUrl)}catch(oe){console.error(`${Me} upload failed:`,oe),K.push(`${Me} upload failed. ${yt(oe,"Required file could not be uploaded.")}`)}}if(Q(W),K.length>0)throw new Error(K.join(" "));pe(!1),Ce(null),Q({}),Z(""),ee(null)}catch(c){const m=yt(c,"Failed to save employee.");w||Object.keys($).length>0?U(l&&!w?`Employee details were saved, but one or more files could not be uploaded. Keep this form open and press Save Employee again; files that already uploaded will not be repeated. ${m}`:m):v(m)}finally{Se.current=!1,Ye(!1)}},ea=(e,l)=>{l.stopPropagation(),window.location.href=`tel:${e}`},ta=(e,l,c)=>{c.stopPropagation();const m=`https://wa.me/${e.replace(/[^0-9]/g,"")}?text=Hello%20${encodeURIComponent(l)}`;window.open(m,"_blank")};return t.jsxs("div",{className:"ars-page",children:[t.jsx("div",{className:"ars-page-control-bar px-2.5 py-2.5 md:px-4 md:py-3",children:t.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_2.75rem] items-start gap-2 sm:flex sm:items-center sm:justify-between",children:[t.jsxs("div",{className:"contents sm:flex sm:min-w-0 sm:items-center sm:justify-start sm:gap-2",children:[t.jsxs("div",{className:"ars-filter-scroll flex w-full min-w-0 items-center gap-2 overflow-x-auto pe-1 scrollbar-hide ars-toolbar-dock sm:w-fit",children:[t.jsxs("button",{onClick:()=>q("All"),className:`ars-filter-pill shrink-0 transition-all ${h==="All"?"ars-filter-pill-active":""}`,children:[r("All")," (",Ae.length,")"]}),Nt.map(e=>t.jsxs("button",{onClick:()=>q(e),className:`ars-filter-pill shrink-0 transition-all ${h===e?"ars-filter-pill-active ars-filter-pill-selected ars-active-control":""}`,children:[r(e)," (",Yt[e],")"]},e))]}),t.jsxs("div",{ref:je,onClick:e=>e.stopPropagation(),className:"relative shrink-0",children:[t.jsxs("button",{type:"button",onClick:()=>{P(!1),A(e=>!e)},"aria-label":r("Filter"),"aria-expanded":j,className:`ars-glass-button relative flex h-11 w-11 items-center justify-center rounded-xl transition hover:border-emerald-300 hover:bg-emerald-50 focus:ring-2 focus:ring-emerald-200 dark:hover:bg-emerald-950/30 ${De?"ars-active-control":""}`,children:[t.jsx(Aa,{size:20}),De&&t.jsx("span",{className:"absolute end-1 top-1 h-2 w-2 rounded-full bg-emerald-500 ring-2 ring-white dark:ring-slate-900","aria-hidden":"true"})]}
7),j&&t.jsx(ja,{sections:[{key:"branch",title:r("Branch"),options:I.branch.map(e=>({value:e,label:r(e)})),selectedValues:ae},{key:"sponsor",title:r("Sponsor"),options:I.sponsor.map(e=>({value:e,label:r(e)})),selectedValues:F},{key:"nationality",title:r("Nationality"),options:I.nationality.map(e=>({value:e,label:r(e)})),selectedValues:ie},{key:"designation",title:r("Designation"),options:I.designation.map(e=>({value:e,label:r(e)})),selectedValues:Dt},{key:"agreement",title:r("Agreement"),options:I.agreement.map(e=>({value:e,label:r(e)})),selectedValues:Lt},{key:"commitment",title:r("Commitment"),options:I.commitment.map(e=>({value:e,label:r(e)})),selectedValues:At}],hasActiveFilters:De,clearLabel:r("Clear Filter"),onClearAll:Kt,onToggle:(e,l)=>Ve(e,l)})]})]}),t.jsxs("div",{className:"order-2 hidden shrink-0 items-center justify-end gap-2 sm:flex",children:[t.jsxs("button",{onClick:le,disabled:!B,className:"ars-primary-button flex shrink-0 items-center gap-1.5 rounded-xl px-3 py-2 text-xs font-black sm:px-3.5 sm:text-sm",children:[t.jsx(mt,{size:15,className:"sm:h-[17px] sm:w-[17px]"})," ",r("Add")]}),t.jsxs("div",{ref:Ze(0),onClick:e=>e.stopPropagation(),className:"relative",children:[t.jsxs("button",{onClick:et,className:`ars-glass-button flex shrink-0 items-center gap-1.5 rounded-xl px-3 py-2 text-xs font-black hover:text-emerald-700 sm:px-3.5 sm:text-sm ${ge?"ars-active-control":""}`,children:[t.jsx(ut,{size:15,className:"sm:h-[17px] sm:w-[17px]"})," ",r("Sort")]}),ce&&t.jsxs("div",{style:{insetInlineEnd:0},className:"ars-floating-menu absolute top-full z-[140] mt-2 w-56 rounded-2xl border border-slate-100 p-2 shadow-lg",children:[t.jsxs("div",{className:"mb-2 flex items-center justify-between gap-2 px-1",children:[t.jsx("span",{className:"text-[10px] font-black uppercase tracking-wider text-slate-400 dark:text-slate-500",children:r("Sort by")}),t.jsx("button",{type:"button",onClick:()=>{J("statusPriority"),P(!1)},className:"shrink-0 whitespace-nowrap rounded-lg border border-red-200 bg-red-50 px-2.5 py-1.5 text-[10px] font-black text-red-600 transition hover:border-red-300 hover:bg-red-100 dark:border-red-900/60 dark:bg-red-950/35 dark:text-red-300 dark:hover:bg-red-950/55",children:r("Clear Sort")})]}),ze.map(e=>t.jsx("button",{onClick:()=>{J(e.key),P(!1)},className:`mb-1 flex w-full items-center rounded-lg border px-3 py-2 text-left text-xs transition last:mb-0 ${O===e.key?ge?"border-red-200 bg-red-50 font-black text-red-600 dark:border-red-900/60 dark:bg-red-950/35 dark:text-red-300":"border-emerald-200 bg-emerald-50 font-black text-emerald-700 dark:border-emerald-800/70 dark:bg-emerald-950/30 dark:text-emerald-300":"border-slate-100 bg-slate-50/80 font-semibold text-slate-600 hover:border-emerald-200 hover:bg-emerald-50/70 hover:text-emerald-700 dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300 dark:hover:border-emerald-800 dark:hover:bg-emerald-950/25"}`,children:r(e.label)},e.key))]})]})]})]})}),t.jsxs("div",{className:"px-2.5 pb-4 md:px-4",children:[t.jsx(wa,{className:"mb-3",visibleCount:T.length,totalCount:E.length,hasSearch:!!g.trim(),filters:Vt,onClearAll:Wt,showingLabel:r("Showing"),clearAllLabel:r("Clear all"),removeLabel:r("Remove filter"),ariaLabel:r("Active filters")}),xe&&t.jsx("div",{className:"mb-3 rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-xs font-semibold text-red-700",children:xe}),He&&t.jsx("div",{className:"mb-3 rounded-xl border border-slate-200 bg-white/80 px-3 py-2 text-xs font-semibold text-slate-500",children:He}),ue&&t.jsx(ka,{className:"mb-3",label:r("Loading employees..."),rows:9}),t.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Fe.map(e=>{const l=ir(e,n.language),c=zt[e.id]?null:oa(e,Gt),m=dt(e,n.language),f=qt(e,_e),M=pr(f,n.language),C=mr(e,Mt),te=ur(C,n.language),W=C?fa(C.vehicleType):null,K=e.status==="On-Leave"?Wa(Bt[e.id]):null;return t.jsx("div",{onClick:()=>rt(e.id),className:`ars-list-card relative min-h-[82px] cursor-pointer rounded-[1.35rem] p-2 sm:min-h-[88px] ${G===e.id?"z-[90]":""} ${nr[e.status]}`,children:t.jsxs("div",{className:"grid grid-cols-[52px_minmax(0,1fr)_auto] grid-rows-[auto_1fr] gap-x-2 gap-y-1",children:[t.jsxs("div",{className:"relative row-span-2 h-[64px] w-[52px] shrink-0 self-start overflow-visible",children:[c?t.jsx("img",{src:c,alt:m,loading:"lazy",decoding:"async",onError:()=>Pt(p=>({...p,[e.id]:!0})),className:`ars-avatar-ring h-[64px] w-[52px] rounded-[14px] object-cover ${vt[e.status]}`}):t.jsx("div",{className:`ars-avatar-ring flex h-[64px] w-[52px] items-center justify-center rounded-[14px] bg-emerald-100 text-2xl font-black text-emerald-700 ${vt[e.status]}`,children:na(e)}),W&&t.jsx("span",{className:`absolute bottom-0 right-0 inline-flex h-5 w-5 items-center justify-center rounded-full border border-slate-950/60 bg-slate-950 shadow-sm ${W.className}`,title:C==null?void 0:C.vehicleType,children:t.jsx(W.Icon,{size:12})}),K!==null&&t.jsxs("span",{className:"absolute -bottom-1 left-1/2 z-10 inline-flex -translate-x-1/2 items-center gap-0.5 whitespace-nowrap rounded-full border border-orange-200 bg-orange-50 px-1.5 py-0.5 text-[9px] font-black leading-none text-orange-700 shadow-sm dark:border-orange-800 dark:bg-orange-950 dar
7k:text-orange-200",title:`${r("On-Leave")} · ${gt(K,n.language)}`,children:[t.jsx(pt,{size:9,"aria-hidden":"true"}),gt(K,n.language)]})]}),t.jsxs("div",{className:"min-w-0 self-end",children:[t.jsx("h3",{className:"block max-w-full overflow-hidden text-ellipsis whitespace-nowrap font-black leading-tight text-slate-900 dark:text-slate-100",style:{fontSize:xr(m)},title:m,onClick:()=>rt(e.id),children:m}),t.jsxs("p",{className:"truncate text-[11px] font-semibold text-slate-500 sm:text-xs",children:[e.designation||"No designation"," - ",e.status]})]}),t.jsxs("div",{className:"relative z-20 row-span-2 flex flex-col items-end justify-between gap-2",children:[t.jsx("button",{onClick:p=>{p.stopPropagation(),Ht(e.id)},"aria-expanded":G===e.id,className:"ars-header-icon h-8 min-w-8 rounded-full text-slate-400 hover:text-emerald-600",children:G===e.id?t.jsx(Ue,{size:16}):t.jsx(Ra,{size:16})}),t.jsx(gr,{title:x(n.language,"Notifications","Ø§ÙØ¥Ø´Ø¹Ø§Ø±Ø§Øª"),issues:l,type:"notification",language:n.language}),G===e.id&&t.jsxs("div",{onClick:p=>p.stopPropagation(),style:{insetInlineEnd:0},dir:Y(n.language)?"rtl":"ltr",className:`ars-floating-menu absolute top-[2rem] w-60 rounded-xl shadow-lg border border-slate-100 py-1 z-[100] ${Y(n.language)?"text-right":"text-left"}`,children:[t.jsx("div",{className:"px-2 py-1 text-[10px] font-medium text-slate-500 border-b",children:x(n.language,"Detail Snapshot","Ù
ÙØ®Øµ Ø§ÙØªÙاصÙÙ")}),t.jsx(z,{icon:t.jsx($e,{size:12}),label:x(n.language,"Iqama","Ø§ÙØ¥ÙاÙ
Ø©"),value:e.iqamaNumber||x(n.language,"Not provided","ØºÙØ± Ù
تÙÙØ±"),copyValue:e.iqamaNumber}),t.jsx(z,{icon:t.jsx(pt,{size:12}),label:x(n.language,"Iqama Expiry","Ø§ÙØªÙاء Ø§ÙØ¥ÙاÙ
Ø©"),value:ke(e.iqamaExpiry),copyValue:ke(e.iqamaExpiry)}),t.jsx(z,{icon:t.jsx(Ia,{size:12}),label:x(n.language,"Passport","Ø§ÙØ¬Ùاز"),value:e.passportNo||x(n.language,"Not provided","ØºÙØ± Ù
تÙÙØ±"),copyValue:e.passportNo}),t.jsx(z,{icon:t.jsx(xt,{size:12}),label:x(n.language,"Phone","اÙÙØ§ØªÙ"),value:e.phoneNo||x(n.language,"Not provided","ØºÙØ± Ù
تÙÙØ±"),copyValue:e.phoneNo}),t.jsx(z,{icon:t.jsx(Ma,{size:12}),label:x(n.language,"Vehicle","اÙÙ
Ø±ÙØ¨Ø©"),value:te,copyValue:C==null?void 0:C.vehicleNumber}),t.jsx(z,{icon:t.jsx($e,{size:12}),label:x(n.language,"ID Manager","إدارة اÙÙ
Ø¹Ø±ÙØ§Øª"),value:M,copyValue:f.length>0?f.map(p=>p.idNumber).filter(Boolean).join(", "):void 0}),t.jsx(z,{icon:t.jsx($a,{size:12}),label:x(n.language,"Insurance","Ø§ÙØªØ£Ù
ÙÙ"),value:hr(e,n.language).replace(/^(Insurance|Ø§ÙØªØ£Ù
ÙÙ):\s*/,"")}),t.jsx(z,{icon:t.jsx(Te,{size:12}),label:x(n.language,"Agreement","Ø§ÙØ§ØªÙاÙÙØ©"),value:Ct(e.agreement,n.language)}),t.jsx(z,{icon:t.jsx(Te,{size:12}),label:x(n.language,"Commitment","Ø§ÙØ§ÙتزاÙ
"),value:Ct(e.commitment,n.language)})]})]}),t.jsxs("div",{className:"col-start-2 flex items-end gap-1.5 self-end",children:[t.jsx("button",{type:"button",title:e.branch||r("Branch"),onClick:p=>p.stopPropagation(),className:"flex h-7 max-w-[7rem] flex-[1.15] items-center justify-center truncate rounded-full border border-teal-300/35 bg-teal-400/10 px-2 text-[10px] font-black uppercase tracking-wide text-teal-700 transition-colors hover:border-teal-300/55 hover:bg-teal-400/20 dark:border-teal-300/35 dark:bg-teal-400/10 dark:text-teal-200 dark:hover:bg-teal-400/18","aria-label":e.branch||r("Branch"),children:t.jsx("span",{className:"truncate",children:e.branch||"-"})}),t.jsx("button",{onClick:p=>ea(e.phoneNo,p),className:"flex h-7 flex-1 items-center justify-center rounded-full border border-sky-300/35 bg-sky-400/10 text-sky-600 transition-colors hover:border-sky-300/55 hover:bg-sky-400/20 dark:border-sky-300/35 dark:bg-sky-400/10 dark:text-sky-300 dark:hover:bg-sky-400/18","aria-label":"Call",children:t.jsx(xt,{size:13})}),t.jsx("button",{onClick:p=>ta(e.phoneNo,m,p),className:"flex h-7 flex-1 items-center justify-center rounded-full border border-emerald-400/35 bg-emerald-500/15 text-emerald-600 transition-colors hover:border-emerald-400/50 hover:bg-emerald-500/25 dark:border-emerald-400/45 dark:bg-emerald-400/15 dark:text-emerald-300 dark:hover:bg-emerald-400/25","aria-label":"WhatsApp",children:t.jsx(za,{size:13})})]})]})},e.id)})}),Fe.length<T.length&&t.jsx("div",{className:"mt-3 rounded-2xl border border-slate-200 bg-white/80 px-3 py-2 text-center text-xs font-black text-slate-500",children:r("Loading employees...")}),!ue&&T.length===0&&(E.length===0?t.jsx("section",{className:"mx-auto flex min-h-[52vh] w-full items-center justify-center px-3 py-8",children:t.jsxs("label",{className:`group relative w-full max-w-lg overflow-hidden rounded-3xl border-2 border-dashed border-emerald-300 bg-gradient-to-b from-white to-emerald-50/80 p-3 text-center shadow-[0_24px_70px_-38px_rgba(5,150,105,0.75)] transition duration-300 dark:border-emerald-700 dark:from-slate-900 dark:to-emerald-950/30 ${B?"cursor-pointer hover:-translate-y-1 hover:border-emerald-500 hover:shadow-[0_30px_80px_-36px_rgba(5,150,105,0.9)]":"cursor-not-allowed opacity-60"}`,children:[t.jsx("input",{type:"file",accept:"image/jpeg,image/png,image/webp",className:"sr-only",disabled:!B,"aria-label":r("Upload an Iqama image to add an employee"),onChange:e=>{var c;const l=(c=e.target.files)==null?void 0:c[0];l&&Qt(l),e.target.value=""}}),t.jsxs("span",{className:"relative block aspect-[1.586/1] w-full overflow-hidden rounded-2xl bg-slate-100 dar
7k:bg-slate-950",children:[t.jsx("img",{src:bt,alt:r("Iqama sample"),draggable:!1,onContextMenu:e=>e.preventDefault(),className:"h-full w-full select-none object-contain transition duration-300 group-hover:scale-[1.02]"}),t.jsx("span",{"aria-hidden":"true","data-testid":"employee-iqama-image-guard",className:"absolute inset-0 z-10 select-none",onContextMenu:e=>e.preventDefault(),onDragStart:e=>e.preventDefault()}),t.jsx("span",{className:"absolute bottom-4 right-4 z-20 inline-flex h-12 w-12 items-center justify-center rounded-2xl border border-white/80 bg-emerald-600 text-white shadow-lg shadow-emerald-900/20 transition group-hover:scale-110 group-hover:bg-emerald-500",children:t.jsx(It,{size:22})})]}),t.jsx("span",{className:"block px-3 pb-2 pt-4 text-base font-black text-emerald-800 dark:text-emerald-200",children:r("Upload an Iqama image to add an employee")})]})}):t.jsx("div",{className:"ars-card text-center py-8 rounded-2xl",children:t.jsx("p",{className:"text-slate-400 text-sm",children:r("No employees found")})}))]}),t.jsxs("div",{ref:Ze(1),onClick:e=>e.stopPropagation(),className:"ars-mobile-fab-group !gap-1.5 sm:hidden",children:[ce&&t.jsxs("div",{className:"ars-floating-menu z-[140] w-56 rounded-2xl border border-slate-100 p-2 shadow-lg",children:[t.jsxs("div",{className:"mb-2 flex items-center justify-between gap-2 px-1",children:[t.jsx("span",{className:"text-[10px] font-black uppercase tracking-wider text-slate-400 dark:text-slate-500",children:r("Sort by")}),t.jsx("button",{type:"button",onClick:()=>{J("statusPriority"),P(!1)},className:"shrink-0 whitespace-nowrap rounded-lg border border-red-200 bg-red-50 px-2.5 py-1.5 text-[10px] font-black text-red-600 transition hover:border-red-300 hover:bg-red-100 dark:border-red-900/60 dark:bg-red-950/35 dark:text-red-300 dark:hover:bg-red-950/55",children:r("Clear Sort")})]}),ze.map(e=>t.jsx("button",{onClick:()=>{J(e.key),P(!1)},className:`mb-1 flex w-full items-center rounded-lg border px-3 py-2 text-left text-xs transition last:mb-0 ${O===e.key?ge?"border-red-200 bg-red-50 font-black text-red-600 dark:border-red-900/60 dark:bg-red-950/35 dark:text-red-300":"border-emerald-200 bg-emerald-50 font-black text-emerald-700 dark:border-emerald-800/70 dark:bg-emerald-950/30 dark:text-emerald-300":"border-slate-100 bg-slate-50/80 font-semibold text-slate-600 hover:border-emerald-200 hover:bg-emerald-50/70 hover:text-emerald-700 dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300 dark:hover:border-emerald-800 dark:hover:bg-emerald-950/25"}`,children:r(e.label)},e.key))]}),t.jsx("button",{onClick:et,className:`ars-glass-button inline-flex h-11 w-11 items-center justify-center rounded-xl shadow-lg transition hover:border-emerald-300 hover:bg-emerald-50 dark:hover:bg-emerald-950/30 ${ge?"ars-active-control":""}`,"aria-label":r("Sort employees"),children:t.jsx(ut,{size:20})}),t.jsx("button",{onClick:le,disabled:!B,className:"ars-primary-button inline-flex h-11 w-11 items-center justify-center rounded-xl shadow-lg transition disabled:opacity-50","aria-label":r("Add employee"),children:t.jsx(mt,{size:20})})]}),Ee&&t.jsx("div",{className:"fixed inset-0 z-[300] flex items-center justify-center overflow-hidden bg-slate-950/60 p-3 backdrop-blur-sm",children:t.jsxs("div",{className:"flex max-h-[calc(100dvh-1.5rem)] w-full max-w-4xl flex-col overflow-hidden rounded-2xl bg-white shadow-2xl",children:[t.jsxs("div",{dir:S?"rtl":"ltr",className:"shrink-0 flex items-center justify-between border-b border-slate-100 px-4 py-3",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-base font-black text-slate-900",children:r(w?"Edit Employee":"Add Employee")}),t.jsx("p",{className:"text-xs font-semibold text-slate-500",children:r("Employee details and documents are saved securely.")})]}),t.jsx("button",{type:"button",onClick:()=>pe(!1),disabled:V,className:"rounded-full p-2 text-slate-400 hover:bg-slate-100 hover:text-slate-700 disabled:cursor-wait disabled:opacity-40",children:t.jsx(Ue,{size:18})})]}),t.jsxs("form",{onSubmit:Zt,dir:S?"rtl":"ltr",className:"relative flex-1 overflow-y-auto p-4",children:[re&&t.jsx("div",{className:"absolute inset-0 z-20 grid place-items-center bg-white/75 backdrop-blur-[2px]",children:t.jsxs("div",{className:"inline-flex items-center gap-2 rounded-2xl border border-emerald-100 bg-white px-4 py-3 text-sm font-black text-emerald-700 shadow-xl shadow-emerald-950/10",children:[t.jsx(Ne,{size:18,className:"animate-spin"}),r("Saving...")]})}),t.jsxs("section",{className:"mb-4 rounded-2xl border border-slate-200 bg-slate-50/70 p-3 dark:border-slate-700 dark:bg-slate-900/70",children:[Ge&&t.jsx("div",{className:"mb-2 rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-xs font-semibold text-red-700 dark:border-red-700 dark:bg-red-950/70 dark:text-red-200",children:Ge}),V&&t.jsxs("div",{role:"status",className:"mb-3 overflow-hidden rounded-xl border border-sky-200 bg-sky-50 px-3 py-3 text-sky-800 shadow-sm dark:border-sky-800 dark:bg-sky-950/40 dark:text-sky-100",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsxs("span",{className:"relative inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-white text-sky-600 shadow-sm dark:bg-slate-900 dark:text-sky-300",children:[t.jsx(Ne,{size:23,className:"animate-spin"}),t.jsx(Pa,{size:11,className:"absolute right-0.5 top-0.5 animate-pulse"})]}),t.jsx("p",{className:"text-xs font-bold leading-relaxed",children:r("Artificial intelligence is filling out the form for you. Please wait.")})]}),t.jsx("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-sky-100 dark:bg-sky-900",children:t.jsx("div",{className:"h-full rounded-full bg-sky-500 transition-all duration-300",style:{width:`${Math.max(8,ne.progress)}%`}})})]}),Ut&&!V&&t.jsxs("div",{role:"status",className:"mb-3 flex items-start gap-3 rounded-xl border border-emerald-200 bg-emerald-50 px-3 py-3 text-emerald-800 shadow-sm dark:border-emerald-800 dark:bg-emerald-950/40 dark:text-emerald-100",children:[t.jsx("span",{className:"inline-flex h-10 w-10 shrink-0 animate-[pulse_650ms_ease-out_1] items-center justify-center rounded-full bg-emerald-600 text-white shadow-sm shadow-emerald-200 dark:shadow-none",children:t.jsx(Oa,{size:23})}),t.jsx("p",{className:"pt-0.5 text-xs font-bold leading-relaxed",children:r("The form has been filled out. Artificial intelligence may make mistakes when anal
7yzing the image. Please compare the completed information with the image.")})]}),be&&t.jsx("div",{className:"mb-2 rounded-xl border border-emerald-200 bg-emerald-50 px-3 py-2 text-xs font-semibold text-emerald-700 dark:border-emerald-700 dark:bg-emerald-950/70 dark:text-emerald-200",children:be}),t.jsx("div",{className:"flex justify-center",children:t.jsx(Nr,{label:r("Iqama"),file:$.iqama,previewUrl:Ot,sampleUrl:bt,helperText:S?"Ø§Ø±ÙØ¹ ÙÙØ·Ø© ÙØ§Ø¶ØØ© ÙÙØ§Ù
ÙØ© Ù
Ø«Ù Ø§ÙØ¹ÙÙØ©Ø Ø¨ØØ¬Ù
ÙØ§ ÙØªØ¬Ø§Ùز 1 MB. بعد Ø§ÙØ±Ùع ØØ¯Ø¯ ØµÙØ±Ø© Ø§ÙØ±Ø§Ùب.":"Upload a clear, complete screenshot like the sample, within 1 MB. Then select the rider portrait.",icon:t.jsx($e,{size:18}),required:!0,processing:ne.key==="iqama",disabled:!!ne.key,progress:ne.progress,status:r("Analyzing..."),onFile:e=>st("iqama",e),onClear:Xt})})]}),t.jsxs("div",{className:"grid min-w-0 gap-3 md:grid-cols-3",children:[t.jsx(_,{label:r("Nickname"),value:i.nickName,placeholder:"Karim_1",pattern:"[\\p{L}\\p{N}_-]+",title:"No spaces. Use letters, numbers, dashes, or underscores only.",onChange:e=>b("nickName",e),required:!0}),t.jsx(_,{label:r("Full Name (English)"),value:i.fullName,placeholder:"MUHAMMAD ABDUL KARIM",inputDir:"ltr",onChange:e=>b("fullName",e),required:!0}),t.jsx(_,{label:r("Arabic Name"),value:i.arabicName,placeholder:"Ù
ØÙ
د عبد اÙÙØ±ÙÙ
",inputDir:"rtl",onChange:e=>b("arabicName",e),required:!0}),t.jsx(_,{label:r("Phone"),value:i.phoneNo,type:"tel",inputMode:"tel",pattern:"(?:05[0-9]{8}|\\+9665[0-9]{8})",title:"05 followed by 8 digits, or +966 followed by a mobile number",onChange:e=>b("phoneNo",e),required:!0}),t.jsx(_,{label:r("Second Phone"),value:i.phoneNo2??"",type:"tel",inputMode:"tel",pattern:"(?:05[0-9]{8}|\\+9665[0-9]{8})",title:"05 followed by 8 digits, or +966 followed by a mobile number",onChange:e=>b("phoneNo2",e)}),t.jsx(_,{label:r("Email"),type:"email",value:i.email,onChange:e=>b("email",e),required:!0}),t.jsx(H,{label:r("Designation"),value:i.designation??"",options:R.designation,fixedOptions:wt,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("designation",e),disabled:!Qe,required:Qe}),t.jsx(H,{label:r("Visa Occupation"),value:i.occupationVisa,options:R.occupationVisa,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("occupationVisa",e),required:!0}),t.jsx(H,{label:r("Branch"),value:i.branch,options:R.branch,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("branch",e),required:!0}),t.jsx(kr,{label:r("Status"),value:i.status,options:Nt,getOptionLabel:r,onChange:e=>b("status",e),disabled:!!w,required:!0}),t.jsx(_,{label:r("Iqama Number"),value:i.iqamaNumber,inputMode:"numeric",maxLength:10,pattern:"2[0-9]{9}",title:"10 digits, starts with 2",onChange:e=>b("iqamaNumber",e),required:!0}),t.jsx(_,{label:r("Iqama Expiry"),type:"date",value:i.iqamaExpiry,onChange:e=>b("iqamaExpiry",e),required:!0}),t.jsx(_,{label:r("Date of Birth"),type:"date",value:i.dateOfBirth,onChange:e=>b("dateOfBirth",e),required:!0}),t.jsx(_,{label:r("Passport Number"),value:i.passportNo,onChange:e=>b("passportNo",e)}),t.jsx(_,{label:r("Passport Expiry"),type:"date",value:i.passportExpiry,onChange:e=>b("passportExpiry",e)}),t.jsx(H,{label:r("Nationality"),value:i.nationality,options:R.nationality,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("nationality",e),required:!0}),t.jsx(_,{label:r("Entry Date"),type:"date",value:i.entryDate,onChange:e=>b("entryDate",e),required:!0}),t.jsx(H,{label:r("Sponsor"),value:i.sponsor,options:R.sponsor,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("sponsor",e),required:!0}),t.jsx(H,{label:r("Accommodation"),value:i.accomodation,options:R.accomodation,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("accomodation",e),disabled:!qe,required:qe}),t.jsx(Oe,{name:"agreement",label:r("Agreement"),value:i.agreement,options:ye,getOptionLabel:r,onChange:e=>b("agreement",e),required:!0}),t.jsx(Oe,{name:"commitment",label:r("Commitment"),value:i.commitment,options:ye,getOptionLabel:r,onChange:e=>b("commitment",e),required:!0}),t.jsx(Oe,{name:"transfer-count",label:r("Transfer Count"),value:i.transferCount,options:Ha,onChange:e=>b("transferCount",e),required:!0}),t.jsx(H,{label:r("Insurance Name"),value:i.healthInsuranceName,options:R.healthInsuranceName,placeholder:r("Select"),addNewLabel:r("Add New..."),onChange:e=>b("healthInsuranceName",e)}),t.jsx(_,{label:r("Insurance Expiry"),type:"date",value:i.healthInsuranceExpiry,onChange:e=>b("healthInsuranceExpiry",e),required:!!i.healthInsuranceName.trim()})]}),xe&&t.jsx("div",{className:"mt-3 rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-xs font-semibold text-red-700",children:xe}),t.jsxs("div",{className:"mt-4 flex justify-end gap-2 border-t border-slate-100 pt-4",children:[t.jsx("button",{type:"button",disabled:re||V,onClick:()=>pe(!1),className:"rounded-xl px-4 py-2 text-sm font-bold text-slate-600 hover:bg-slate-100 disabled:cursor-not-allowed disabled:opacity-50",children:r("Cancel")}),t.jsxs("button",{type:"submit",disabled:!B||re||V,className:"inline-flex min-w-[9.5rem] items-center justify-center gap-2 rounded-xl bg-emerald-600 px-5 py-2 text-sm font-black text-white hover:bg-emerald-700 disabled:cursor-wait disabled:opacity-70",children:[re&&t.jsx(Ne,{size:16,className:"animate-spin"}),r(re?"Saving...":"Save Employee")]})]})]})]})}),Je&&t.jsx(d.Suspense,{fallback:t.jsx("div",{className:"fixed inset-0 z-[360] grid place-items-center bg-slate-950/60 p-4 backdrop-blur-sm",children:t.jsx(va,{label:r("Loading...")})}),children:t.jsx(Ka,{file:Je,isArabic:S,onCancel:()=>se(null),onConfirm:e=>{Q(l=>({...l,selfie:e})),X(l=>({...l,documents:{...l.documents,selfie:!0}}
7)),se(null),Z(S?"تÙ
ØÙظ ØµÙØ±Ø© Ø§ÙØ±Ø§Ùب اÙÙ
ØØ¯Ø¯Ø© ÙØµÙرة Ø´Ø®ØµÙØ©.":"Selected rider portrait saved as the Selfie.")}})})]})}function Nr({label:a,file:s,icon:o,processing:n=!1,disabled:u=!1,progress:r=0,status:y="",previewUrl:g="",sampleUrl:h="",helperText:q="",required:j=!1,onFile:A,onClear:ae}){return s&&g?t.jsxs("div",{className:"relative w-full overflow-hidden rounded-xl border border-emerald-300 bg-white p-2 shadow-sm dark:border-emerald-700 dark:bg-slate-900/60",children:[t.jsx("img",{src:g,alt:a,className:"aspect-[1.586/1] max-h-[360px] w-full rounded-lg bg-slate-50 object-contain dark:bg-slate-950"}),t.jsx("button",{type:"button",onClick:ae,disabled:u||n,"aria-label":`Remove ${a} image`,className:"absolute right-4 top-4 inline-flex h-9 w-9 items-center justify-center rounded-full border border-white/70 bg-slate-950/75 text-white shadow-lg backdrop-blur-sm transition hover:scale-105 hover:bg-red-600 disabled:cursor-wait disabled:opacity-50",children:t.jsx(Ue,{size:18})})]}):t.jsxs("label",{className:`group flex w-full flex-col items-center justify-center overflow-hidden rounded-xl border border-dashed p-2 text-center shadow-sm transition ${u?"cursor-wait opacity-70":"cursor-pointer"} max-w-[320px] border-red-300 bg-white text-slate-700 hover:border-red-400 hover:bg-red-50/60 dark:border-red-700 dark:bg-slate-800 dark:text-slate-100 dark:hover:border-red-500 dark:hover:bg-red-950/30`,children:[t.jsx("input",{type:"file",accept:"image/jpeg,image/png,image/webp",className:"sr-only",required:j,"aria-required":j,disabled:u||n,onChange:F=>{var ie;const k=(ie=F.target.files)==null?void 0:ie[0];k&&A(k),F.target.value=""}}),t.jsxs("div",{className:"relative flex h-40 w-full flex-col items-center justify-center overflow-hidden rounded-lg bg-slate-50 dark:bg-slate-950",children:[h?t.jsx("img",{src:h,alt:`${a} sample`,draggable:!1,onContextMenu:F=>F.preventDefault(),className:"h-full w-full select-none object-contain opacity-70"}):o,h&&t.jsx("span",{"aria-hidden":"true","data-testid":"employee-iqama-drawer-image-guard",className:"absolute inset-0 z-10 select-none",onContextMenu:F=>F.preventDefault(),onDragStart:F=>F.preventDefault()}),t.jsx("span",{className:"absolute bottom-2 right-2 z-20 inline-flex h-9 w-9 items-center justify-center rounded-lg border border-emerald-100 bg-white text-emerald-600 shadow-sm transition group-hover:scale-105 dark:border-emerald-900 dark:bg-slate-800",children:n?t.jsx(Ne,{size:18,className:"animate-spin"}):o})]}),t.jsxs("span",{className:"mt-2 flex max-w-full items-center justify-center gap-1 text-xs font-black",children:[a,j&&t.jsx("span",{className:"text-red-500",children:"*"})]}),t.jsx("span",{className:"mt-0.5 block max-w-full truncate px-2 text-[10px] font-semibold text-slate-500 dark:text-slate-300",children:n?`${y||"Reading document"}${r?` ${r}%`:""}`:(s==null?void 0:s.name)||"Choose image"}),q&&!n&&t.jsx("span",{className:"mt-1 block max-w-xl text-[9px] font-semibold leading-snug text-slate-500 dark:text-slate-300",children:q}),n&&t.jsx("span",{className:"mt-2 block h-1 w-full max-w-sm overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700",children:t.jsx("span",{className:"block h-full rounded-full bg-emerald-500 transition-all",style:{width:`${Math.max(4,r)}%`}})}),t.jsx(It,{size:15,className:"mt-2 shrink-0 text-slate-400 group-hover:text-red-500"})]})}function _({label:a,value:s,onChange:o,type:n="text",placeholder:u,pattern:r,title:y,inputDir:g,inputMode:h,maxLength:q,required:j=!1,readOnly:A=!1}){return t.jsxs("label",{className:"space-y-1",children:[t.jsxs("span",{className:"text-[11px] font-black uppercase tracking-wide text-slate-500",children:[a,j&&t.jsx("span",{className:"text-red-500",children:" *"})]}),t.jsx("input",{type:n,value:s,placeholder:u,pattern:r,title:y,dir:g,inputMode:h,maxLength:q,required:j,readOnly:A,onChange:ae=>o(ae.target.value),className:`w-full rounded-xl border border-slate-200 px-3 py-2 text-sm font-semibold text-slate-700 outline-none focus:border-emerald-400 focus:ring-2 focus:ring-emerald-100 ${A?"bg-slate-100 text-slate-500":""}`})]})}function H({label:a,value:s,options:o,placeholder:n,addNewLabel:u,onChange:r,disabled:y=!1,required:g=!1,fixedOptions:h=[]}){const q=s.trim(),j=D([q,...o]);return t.jsxs("label",{className:"space-y-1",children:[t.jsxs("span",{className:"text-[11px] font-black uppercase tracking-wide text-slate-500",children:[a,g&&t.jsx("span",{className:"text-red-500",children:" *"})]}),t.jsx(Na,{value:q,options:j,placeholder:n,addLabel:u.replace(/^\+\s*/,"").replace(/\.\.\.$/,""),required:g,disabled:y,onChange:r,fixedOptions:h})]})}function kr({label:a,value:s,placeholder:o,options:n,getOptionLabel:u,onChange:r,disabled:y=!1,required:g=!1}){return t.jsxs("label",{className:"space-y-1",children:[t.jsxs("span",{className:"text-[11px] font-black uppercase tracking-wide text-slate-500",children:[a,g&&t.jsx("span",{className:"text-red-500",children:" *"})]}),t.jsxs("select",{value:s,disabled:y,required:g,onChange:h=>r(h.target.value),className:"w-full rounded-xl border border-slate-200 px-3 py-2 text-sm font-semibold text-slate-700 outline-none focus:border-emerald-400 focus:ring-2 focus:ring-emerald-100 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500",children:[o&&t.jsx("option",{value:"",children:o}),n.map(h=>t.jsx("option",{value:h,children:u?u(h):h},h))]})]})}function Oe({name:a,label:s,value:o,options:n,getOptionLabel:u,onChange:r,required:y=!1}){return t.jsxs("fieldset",{className:"space-y-1",children:[t.jsxs("legend",{className:"text-[11px] font-black uppercase tracking-wide text-slate-500",children:[s,y&&t.jsx("span",{className:"text-red-500",children:" *"})]}),t.jsx("div",{className:"flex min-h-[38px] overflow-hidden rounded-xl border border-slate-200 bg-white p-0.5",children:n.map(g=>{const h=o===g,q=g==="Not Complete"?"bg-red-600 text-white shadow-sm":"bg-emerald-600 text-white shadow-sm";return t.jsxs("label",{className:"min-w-0 flex-1 cursor-pointer",children:[t.jsx("input",{type:"radio",name:a,value:g,checked:h,required:y,onChange:j=>r(j.target.value),className:"sr-only"}),t.jsx("span",{className:`flex h-full items-center justify-center rounded-[9px] px-1.5 py-2 text-center text-xs font-black transition ${h?q:"text-slate-600 hover:bg-slate-100"}`,children:u?u(g):g})]},g)})})]})}export{ks 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.