PageSourceSearch

https://eventbookings.domaineflorian.workers.dev/_app/immutable/nodes/122.BSNtD_ns.js

js eventbookings.domaineflorian.workers.dev collected 2026-10-03 08:09:37 UTC 25,770 bytes, 3 lines download raw bytes

1import"../chunks/CWj6FrbW.js";import{p as We,b as Ht,e as te,j as Ot,t as S,a as Be,s as l,c as s,g as e,h as vt,r as a,n as Vt,f as mt,i as rt}from"../chunks/__8XqHd2.js";import{d as Qe,s as p}from"../chunks/CXI9Z9cj.js";import{f,a as d,c as Tt,b as He,t as F}from"../chunks/B0g3Bnmm.js";import{i as h}from"../chunks/BcXKMwEx.js";import{e as Gt}from"../chunks/BN5o1A6Z.js";import{a as Oe}from"../chunks/CPHngfNB.js";import{s as kt,r as ee,b as ae}from"../chunks/BRLojIyr.js";import{s as z,c as se}from"../chunks/Behh1qYl.js";import{s as Ve}from"../chunks/Hgvy2Chz.js";import{e as Ge}from"../chunks/DjI0-DLU.js";import{i as re}from"../chunks/Cs2RwMgl.js";import{s as St}from"../chunks/D5GUxKdx.js";var Le=f('<span class="inline-flex items-center gap-1.5 rounded-full bg-amber-500/20 px-2.5 py-1 text-[10px] text-amber-300 sm:px-3 sm:text-xs"><svg class="h-3 w-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h2M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg> QR Only</span>'),Ze=f("<span><span></span> </span>"),qe=f('<span class="inline-flex items-center gap-1.5 rounded-full bg-red-500/20 px-2.5 py-1 text-[10px] text-red-300 sm:px-3 sm:text-xs"><span class="h-1.5 w-1.5 rounded-full bg-red-400"></span> Not Configured</span>'),Ie=f(`<div class="mb-3 rounded-xl border border-amber-500/30 bg-gradient-to-r from-amber-900/40 to-amber-800/40 p-3 sm:mb-4 sm:p-4"><div class="flex items-center gap-3"><div class="flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full bg-amber-500/20"><svg class="h-5 w-5 text-amber-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h2M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></div> <div><p class="font-semibold text-amber-200">QR Display Mode</p> <p class="text-sm text-amber-300/80">Punch functionality is disabled. Click employee names to view their Work Card QR
2							codes.</p></div></div></div>`),Ke=f('<div class="mx-auto max-w-md rounded-lg bg-red-900/30 p-4 text-center"><p class="text-sm text-red-200">ERGANI not configured. <a href="/admin/ergani" class="underline hover:text-red-100 active:text-red-50">Configure</a></p></div>'),Ue=f('<div class="mx-auto max-w-md rounded-lg bg-slate-800/50 p-4 text-center"><p class="text-sm text-slate-300"><!></p></div>'),Fe=f('<div class="mb-2 rounded-lg border border-amber-500/30 bg-amber-900/30 px-2 py-1.5 sm:mb-3 sm:px-3 sm:py-2"><p class="text-[10px] text-amber-300 sm:text-xs">⚠️ No confirmed schedule. <a href="/admin/scheduling" class="underline hover:text-amber-100 active:text-amber-50">Create schedule</a></p></div>'),Je=f('<div><div class="flex items-center justify-center gap-1.5"><svg class="h-3.5 w-3.5 sm:h-4 sm:w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h2M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg> <span class="font-medium"> </span></div> <div class="mt-0.5 text-center text-[9px] opacity-75 sm:text-[10px]"> </div></div>'),Xe=f("<div><!></div>"),Ye=(O,u,W)=>u(e(W)),$e=He('<svg class="h-3 w-3 flex-shrink-0 text-emerald-400 opacity-60 group-hover:opacity-100" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h2M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg>'),ta=f('<p class="truncate font-mono text-[9px] text-slate-400 sm:text-[10px]"> </p>'),ea=f('<p class="text-[9px] text-amber-400 sm:text-[10px]">⚠️ No ΑΦΜ</p>'),aa=f('<p class="text-[9px] text-emerald-400/80 sm:text-[10px]"> <!></p>'),sa=f('<div class="mt-1 rounded border border-amber-500/30 bg-amber-500/20 px-1 py-0.5 text-[9px] text-amber-300 sm:px-1.5 sm:text-[10px]"> <span class="text-amber-400/70">
2(yesterday)</span></div>'),ra=f("<div> </div>"),ia=f('<div class="shrink-0 rounded-full bg-amber-500/20 px-1.5 py-0.5 text-[9px] text-amber-300 sm:text-[10px]">🌙</div>'),na=f('<div class="mb-1.5 rounded-lg border border-emerald-500/30 bg-emerald-500/20 p-1.5 text-center sm:mb-2 sm:p-2"><div class="text-[9px] text-emerald-300 sm:text-[10px]"> </div> <div class="font-mono text-sm font-bold text-emerald-400 sm:text-base"> </div></div>'),oa=f('<div class="mb-1.5 rounded-lg border border-red-500/30 bg-red-500/20 p-1.5 text-center sm:mb-2 sm:p-2"><div class="text-[9px] text-red-300 sm:text-[10px]"> </div></div>'),da=f('<div class="mb-1.5 rounded bg-slate-900/50 px-1.5 py-0.5 sm:mb-2 sm:px-2 sm:py-1"><p class="text-[9px] text-slate-300 sm:text-[10px]"> <span class="font-mono"> </span> <span> </span></p></div>'),la=(O,u,W)=>u(e(W).id),ca=f('<div class="mb-1.5 sm:mb-2"><div class="flex flex-col items-center"><div class="relative h-16 w-16 sm:h-20 sm:w-20"><svg viewBox="0 0 80 80" class="h-full w-full -rotate-90 transform"><circle cx="40" cy="40" r="34" stroke="currentColor" stroke-width="6" fill="none" class="text-slate-700"></circle><circle cx="40" cy="40" r="34" stroke="currentColor" stroke-width="6" fill="none" stroke-linecap="round"></circle></svg> <div class="absolute inset-0 flex items-center justify-center"><span class="text-xl font-bold text-white sm:text-2xl"> </span></div></div></div> <button type="button" class="mt-1.5 min-h-[44px] w-full rounded-lg border border-slate-500 bg-slate-700/50 py-2 text-xs font-medium text-slate-200 transition-all active:bg-slate-600/70 sm:mt-2 sm:text-sm">Cancel</button></div>'),va=f('<div class="mb-1.5 flex flex-col items-center py-3 sm:mb-2 sm:py-4"><div class="h-6 w-6 animate-spin rounded-full border-2 border-slate-600 border-t-emerald-500 sm:h-8 sm:w-8 sm:border-3"></div> <p class="mt-1.5 text-[10px] text-slate-400 sm:mt-2 sm:text-xs">Submitting...</p></div>'),ma=f('<div class="flex min-h-[44px] w-full items-center justify-center gap-2 rounded-lg border border-slate-600/50 bg-slate-700/50 py-2.5 text-center text-xs font-medium text-slate-400 sm:py-3 sm:text-sm"><svg class="h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg> Punch Disabled</div>'),ua=(O,u,W)=>u(e(W).id,e(W).nextAction),xa=f('<button type="button"><!></button>'),fa=f('<div class="flex items-center justify-between rounded bg-slate-900/30 px-1 py-0.5 text-[8px] sm:px-1.5 sm:text-[9px]"><span class="text-slate-300"> </span> <span> </span></div>'),pa=f('<details class="mt-1.5 sm:mt-2"><summary class="-my-1 cursor-pointer py-1 text-[9px] text-slate-400 active:text-slate-200 sm:text-[10px]"> </summary> <div class="mt-1 max-h-16 space-y-0.5 overflow-y-auto sm:max-h-20"></div></details>'),ha=f('<div><div class="mb-1.5 flex items-start justify-between gap-1 sm:mb-2"><div class="min-w-0 flex-1"><button type="button" class="group w-full text-left"><h2 class="flex items-center gap-1 truncate text-xs font-semibold text-white transition-colors group-hover:text-emerald-300 sm:text-sm"> <!></h2></button> <!> <!> <!></div> <!></div>  <!> <!> <!> <!> <form method="POST" action="?/punch" class="hidden"><input type="hidden" name="vendorId"/> <input type="hidden" name="punchType"/></form> <div class="mt-auto pt-1.5 sm:pt-2"><!></div> <!></div>'),ba=f('<p class="py-2 text-center text-[10px] text-slate-400 sm:text-xs">No punches recorded yet</p>'),ga=f('<tr><td class="py-1 pr-2 font-mono whitespace-nowrap text-slate-300 sm:py-1.5 sm:pr-3"> </td><td class="max-w-[80px] truncate py-1 pr-2 text-white sm:max-w-[120px] sm:py-1.5 sm:pr-3"> </td><td class="py-1 pr-2 sm:py-1.5 sm:pr-3"><span> </span></td><td class="py-1 pr-2 sm:py-1.5 sm:pr-3"><span> </span></td><td class="py-1 font-mono text-[9px] text-slate-400 sm:py-1.5 sm:text-[10px]"> </td></tr>'),_a=f('<div class="-mx-2 overflow-x-auto px-2 sm:mx-0 sm:px-0"><table class="w-full min-w-[400px] text-[10px] sm:text-xs"><thead><tr class="border-b border-slate-700 text-left text-slate-400"><th class="pr-2 pb-1.5 sm:pr-3 sm:pb-2">Time</th><th class="pr-2 pb-1.5 sm:pr-3 sm:pb-2">Employee</th><th class="pr-2 pb-1.5 sm:pr-3 sm:pb-2">Action</th><th class="pr-2 pb-1.5 sm:pr-3 sm:pb-2">Status</th><th class="pb-1.5 sm:pb-2">Protocol</th></tr></thead><tbody></tbody></table></div>'),wa=f('<!> <div class="grid grid-cols-2 gap-2 sm:grid-cols-3 sm:gap-3 md:grid-cols-4 lg:grid-cols-5"></div> <details class="mt-4 sm:mt-6">
2<summary class="flex min-h-[44px] cursor-pointer items-center rounded-lg bg-slate-800/50 px-3 py-2 text-xs font-medium text-slate-300 active:bg-slate-800/70 sm:px-4 sm:text-sm">📋 Recent Punches Log</summary> <div class="mt-2 rounded-lg bg-slate-800/50 p-2 backdrop-blur sm:p-4"><!></div></details>',1),Ta=(O,u)=>{O.target===O.currentTarget&&u()},ka=(O,u)=>{O.key==="Escape"&&u()},Sa=f('<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm" role="dialog" aria-modal="true" tabindex="-1"><div class="w-full max-w-sm overflow-hidden rounded-2xl border border-slate-700/50 bg-gradient-to-b from-slate-800 to-slate-900 shadow-2xl"><div class="border-b border-slate-700/50 bg-slate-800/80 px-6 py-4"><div class="flex items-center justify-between"><div><h2 class="text-lg font-bold text-white"> </h2> <p class="font-mono text-sm text-emerald-400"> </p></div> <button type="button" class="rounded-full p-2 text-slate-400 transition-colors hover:bg-slate-700/50 hover:text-white" aria-label="Close"><svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div></div> <div class="flex flex-col items-center p-6"><div class="rounded-xl bg-white p-4 shadow-inner"><img class="h-64 w-64 object-contain"/></div> <p class="mt-4 text-center text-sm text-slate-400">Scan with Digital Work Card scanner</p></div> <div class="border-t border-slate-700/50 bg-slate-800/50 px-6 py-4"><button type="button" class="w-full rounded-lg bg-slate-700 py-3 text-sm font-medium text-white transition-colors hover:bg-slate-600">Close</button></div></div></div>'),ya=f('<main class="min-h-[100dvh] min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 px-[env(safe-area-inset-left)] py-3 pr-[env(safe-area-inset-right)] sm:py-4"><div class="container mx-auto px-2 pb-[env(safe-area-inset-bottom)] sm:px-4"><div class="mb-3 flex items-center justify-between rounded-xl bg-slate-800/50 px-3 py-2.5 backdrop-blur sm:mb-4 sm:px-4 sm:py-3"><div class="flex items-center gap-2 sm:gap-4"><div class="font-mono text-2xl font-bold tracking-wider text-emerald-400 sm:text-3xl"> </div> <div class="hidden border-l border-slate-600 pl-2 text-xs text-slate-400 sm:block sm:pl-4 sm:text-sm"> </div></div> <div class="flex items-center gap-2 sm:gap-4"><span class="hidden text-sm text-slate-400 lg:block">Digital Work Card</span> <!></div></div> <!> <!> <div class="mt-3 pb-2 text-center text-[10px] text-slate-500 sm:mt-4 sm:text-xs"><p>6-second confirmation • <a href="/admin/ergani" class="inline-flex min-h-[44px] items-center text-slate-400 active:text-white">Settings</a></p></div></div> <!></main>');function Ha(O,u){We(u,!0);const W="Europe/Athens";let yt=Ht(!1),J=Ht(null);function ie(t){if(!t.hasQrCode){St.info("No QR code available for this employee");return}vt(J,t,!0),vt(yt,!0)}function ut(){vt(yt,!1),vt(J,null)}let xt=Ht(te(new Date));Ot(()=>{const t=setInterval(()=>{vt(xt,new Date,!0)},1e3);return()=>clearInterval(t)});function ne(t){const o=t.toLocaleString("en-US",{timeZone:W,hour:"numeric",minute:"numeric",hour12:!1}),[c,b]=o.split(":").map(Number);return{hours:c,minutes:b}}let E=te({});Ot(()=>{for(const t of u.data.employees)E[t.id]||(E[t.id]={status:"idle",countdown:0})});function ft(t){const o=Math.abs(t);if(o>=60){const c=Math.floor(o/60),b=o%60;return b>0?`${c}h ${b}m`:`${c}h`}return`${o} min`}function L(t){const o=ne(e(xt)),[c,b]=t.split(":").map(Number),g=o.hours*60+o.minutes,m=c*60+b;return g-m}function Lt(t,o){if(t.overnightCheckout&&o==="END"){const m=L(t.overnightCheckout.endTime),P=u.data.lateWarningMinutes;return m<-P?{status:"early",message:`${ft(m)} early`}:m>P?{status:"late",message:`${ft(m)} late`}:{status:"on-time",message:"On time"}}let c=null;if(o==="START"?(c=t.scheduledStartTime,t.isSplitShift&&t.splitStartTime&&t.scheduledEndTime&&L(t.scheduledEndTime)>0&&(c=t.splitStartTime)):(c=t.scheduledEndTime,t.isSplitShift&&t.splitEndTime&&t.splitStartTime&&L(t.splitStartTime)>=0&&(c=t.splitEndTime)),!c)return null;const b=L(c),g=o==="START"?u.data.earlyWarningMinutes:u.data.lateWarningMinutes;return b<-g?{status:"early",message:`${ft(b)} early`}:b>g?{status:"late",message:`${ft(b)} late`}:{status:"on-time",message:"On time"}}
2function oe(t){const o=u.data.earlyWarningMinutes,c=u.data.lateWarningMinutes;let b=t.scheduledStartTime;if(t.isSplitShift&&t.splitStartTime&&t.scheduledEndTime&&L(t.scheduledEndTime)>0&&(b=t.splitStartTime),b){const m=L(b);if(m>=-o&&m<=c)return{type:"clock-in",time:b}}let g=t.scheduledEndTime;if(t.overnightCheckout&&(g=t.overnightCheckout.endTime),t.isSplitShift&&t.splitEndTime&&t.splitStartTime&&L(t.splitStartTime)>=0&&(g=t.splitEndTime),g){const m=L(g);if(m>=-o&&m<=c)return{type:"clock-out",time:g}}return null}const Zt=rt(()=>()=>{const t=[];for(const o of u.data.employees)for(const c of o.recentPunches)t.push({employeeName:o.name,employeeId:o.id,type:c.type,time:c.time,status:c.status,protocol:c.protocol});return t.sort((o,c)=>{const b=typeof o.time=="string"?new Date(o.time).getTime():o.time.getTime();return(typeof c.time=="string"?new Date(c.time).getTime():c.time.getTime())-b}),t.slice(0,10)});let X={};const de=(t,o)=>{E[t]={status:"countdown",countdown:6,punchType:o},X[t]=setInterval(()=>{if(E[t].countdown>1)E[t].countdown--;else{clearInterval(X[t]),delete X[t];const c=document.getElementById(`punch-form-${t}`);c&&(E[t]={status:"submitting",countdown:0},c.requestSubmit())}},1e3)},le=t=>{X[t]&&(clearInterval(X[t]),delete X[t]),E[t]={status:"idle",countdown:0},St.info("Punch cancelled")},ce=t=>t.toLocaleTimeString("el-GR",{timeZone:W,hour:"2-digit",minute:"2-digit",second:"2-digit"}),ve=t=>t.toLocaleDateString("el-GR",{timeZone:W,weekday:"long",year:"numeric",month:"long",day:"numeric"}),qt=t=>(typeof t=="string"?new Date(t):t).toLocaleTimeString("el-GR",{timeZone:W,hour:"2-digit",minute:"2-digit"}),me=t=>(typeof t=="string"?new Date(t):t).toLocaleString("el-GR",{timeZone:W,day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}),It=t=>{switch(t){case"success":return"bg-green-100 text-green-800";case"error":return"bg-red-100 text-red-800";
2case"pending":return"bg-yellow-100 text-yellow-800";case"submitted":return"bg-blue-100 text-blue-800";default:return"bg-gray-100 text-gray-800"}},ue=t=>{switch(t){case"success":return"bg-emerald-500/20 text-emerald-300 border-emerald-500/30";case"error":return"bg-red-500/20 text-red-300 border-red-500/30";case"pending":return"bg-amber-500/20 text-amber-300 border-amber-500/30";default:return"bg-slate-500/20 text-slate-300 border-slate-500/30"}},xe=(t,o,c)=>{E[t]={status:"success",countdown:0,protocol:o,message:c},setTimeout(()=>{var b;((b=E[t])==null?void 0:b.status)==="success"&&(E[t]={status:"idle",countdown:0})},8e3)},fe=(t,o)=>{E[t]={status:"error",countdown:0,message:o},setTimeout(()=>{var c;((c=E[t])==null?void 0:c.status)==="error"&&(E[t]={status:"idle",countdown:0})},5e3)};Ot(()=>()=>{for(const t of Object.values(X))clearInterval(t)});var Mt=ya(),Ct=s(Mt),Et=s(Ct),Pt=s(Et),At=s(Pt),pe=s(At,!0);a(At);var Kt=l(At,2),he=s(Kt,!0);a(Kt),a(Pt);var Ut=l(Pt,2),be=l(s(Ut),2);{var ge=t=>{var o=Le();d(t,o)},_e=(t,o)=>{{var c=g=>{var m=Ze(),P=s(m),Y=l(P);a(m),S(()=>{z(m,1,`inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-[10px] sm:px-3 sm:text-xs ${u.data.environment==="production"?"bg-amber-500/20 text-amber-300":"bg-blue-500/20 text-blue-300"}`),z(P,1,`h-1.5 w-1.5 rounded-full ${u.data.environment==="production"?"bg-amber-400":"bg-blue-400"}`),p(Y,` ${u.data.environment==="production"?"Prod":"Test"}`)}),d(g,m)},b=g=>{var m=qe();d(g,m)};h(t,g=>{u.data.isConfigured?g(c):g(b,!1)},o)}};h(be,t=>{u.data.punchDisabled?t(ge):t(_e,!1)})}a(Ut),a(Et);var Ft=l(Et,2);{var we=t=>{var o=Ie();d(t,o)};h(Ft,t=>{u.data.punchDisabled&&t(we)})}var Te=l(Ft,2);{var ke=t=>{var o=Ke();d(t,o)},Se=(t,o)=>{{var c=g=>{var m=Ue(),P=s(m),Y=s(P);{var Z=B=>{var V=F("No employees scheduled for today.");d(B,V)},at=B=>{var V=F("No employees configured.");d(B,V)};h(Y,B=>{u.data.hasConfirmedSchedule?B(Z):B(at,!1)})}a(P),a(m),d(g,m)},b=g=>{var m=wa(),P=mt(m);{var Y=C=>{var i=Fe();d(C,i)};h(P,C=>{u.data.hasConfirmedSchedule||C(Y)})}var Z=l(P,2);Gt(Z,21,()=>u.data.employees,C=>C.id,(C,i)=>{var $=ha();const y=rt(()=>E[e(i).id]||{status:"idle",countdown:0});{const ze=r=>{var n=Tt(),v=mt(n);{var T=_=>{var k=Tt();const w=rt(()=>oe(e(i)));var A=mt(k);{var R=D=>{var j=Je(),G=s(j),I=l(s(G),2),H=s(I,!0);a(I),a(G);var M=l(G,2),K=s(M,!0);a(M),a(j),S(()=>{z(j,1,`mb-1.5 animate-pulse rounded-lg border px-2 py-1.5 text-[10px] sm:mb-2 sm:px-3 sm:py-2 sm:text-xs ${e(w).type==="clock-in"?"border-emerald-500/40 bg-emerald-500/20 text-emerald-300":"border-rose-500/40 bg-rose-500/20 text-rose-300"}`),p(H,e(w).type==="clock-in"?"Scan for Check-In":"Scan for Check-Out"),p(K,e(w).time)}),d(D,j)};h(A,D=>{e(w)&&D(R)})}d(_,k)},x=_=>{var k=Tt();const w=rt(()=>Lt(e(i),e(i).nextAction));var A=mt(k);{var R=D=>{var j=Xe(),G=s(j);{var I=M=>{var K=F();S(()=>p(K,`⏰ ${e(w).message??""}`)),d(M,K)},H=(M,K)=>{{var Bt=N=>{var U=F();S(()=>p(U,`🕐 ${e(w).message??""}`)),d(N,U)},Qt=N=>{var U=F("✓ On time");d(N,U)};h(M,N=>{e(w).status==="early"?N(Bt):N(Qt,!1)},K)}};h(G,M=>{e(w).status==="late"?M(I):M(H,!1)})}a(j),S(()=>z(j,1,`mb-1.5 rounded px-1.5 py-0.5 text-[9px] sm:mb-2 sm:px-2 sm:py-1 sm:text-[10px] ${e(w).status==="late"?"bg-red-500/20 text-red-300":e(w).status==="early"?"bg-blue-500/20 text-blue-300":"bg-emerald-500/20 text-emerald-300"}`)),d(D,j)};h(A,D=>{e(w)&&D(R)})}d(_,k)};h(v,_=>{u.data.punchDisabled?_(T):_(x,!1)})}d(r,n)};var q=s($),Q=s(q),tt=s(Q);tt.__click=[Ye,ie,i];var et=s(tt),st=s(et),Rt=l(st);{var it=r=>{var n=$e();d(r,n)};h(Rt,r=>{e(i).hasQrCode&&r(it)})}a(et),a(tt);var bt=l(tt,2);{var nt=r=>{var n=ta(),v=s(n);a(n),S(()=>p(v,`ΑΦΜ: ${e(i).vatNumber??""}`)),d(r,n)},ot=r=>{var n=ea();d(r,n)};h(bt,r=>{e(i).hasAfm?r(nt):r(ot,!1)})}var gt=l(bt,2);{var dt=r=>{var n=aa(),v=s(n),T=l(v);{var x=_=>{var k=F();S(()=>p(k,`• ${e(i).splitStartTime??""}-${e(i).splitEndTime??""}`)),d(_,k)};h(T,_=>{e(i).isSplitShift&&e(i).splitStartTime&&e(i).splitEndTime&&_(x)})}a(n),S(()=>p(v,`📅 ${e(i).scheduledStartTime??""}-${e(i).scheduledEndTime??""} `)),d(r,n)};h(gt,r=>{e(i).scheduledStartTime&&e(i).scheduledEndTime&&r(dt)})}var lt=l(gt,2);{var Dt=r=>{var n=sa(),v=s(n);Vt(),a(n),S(()=>p(v,`🌙 ${e(i).overnightCheckout.endTime??""} `)),d(r,n)};h(lt,r=>{e(i).overnightCheckout&&r(Dt)})}a(Q);var _t=l(Q,2);{var jt=r=>{var n=ra(),v=s(n,!0);a(n),S(()=>{z(n,1,`shrink-0 rounded-full px-1.5 py-0.5 text-[9px] sm:text-[10px] ${e(i).lastPunch.type==="START"?"bg-green-500/20 text-green-300":"bg-slate-600/50 text-slate-300"}`),p(v,e(i).lastPunch.type==="START"?"●":"○")}),d(r,n)},Nt=(r,n)=>{{var v=T=>{var x=ia();d(T,x)};h(r,T=>{e(i).overnightCheckout&&T(v)},n)}};h(_t,r=>{e(i).lastPunch?r(jt):r(Nt,!1)})}a(q);var wt=l(q,2);ze(wt);var Jt=l(wt,2);{var Ce=r=>{var n=na(),v=s(n),T=s(v);a(v);var x=l(v,2),_=s(x,!0);a(x),a(n),S(()=>{p(T,`✓ ${e(y).message??""}`),p(_,e(y).protocol)}),d(r,n)};h(Jt,r=>{e(y).status==="success"&&r(Ce)})}var Xt=l(Jt,2);{var Ee=r=>{var n=oa(),v=s(n),T=s(v);a(v),a(n),S(()=>p(T,`✕ ${e(y).message??""}`)),d(r,n)};h(Xt,r=>{e(y).status==="error"&&r(Ee)})}var Yt=l(Xt,2);{var Pe=r=>{var n=da(),v=s(n),T=s(v),x=l(T),_=s(x,!0);a(x);var k=l(x,2),w=s(k,!0);a(k),a(v),a(n),S((A,R)=>{p(T,`${e(i).lastPunch.type==="START"?"In":"Out"} `),p(_,A),z(k,1,`${R??""} rounded px-0.5 text-[8px] sm:text-[9px]`),p(w,e(i).lastPunch.status)},[()=>qt(e(i).lastPunch.time),()=>It(e(i).lastPunch.status)]),d(r,n)};h(Yt,r=>{e(i).lastPunch&&e(y).status!=="success"&&r(Pe)})}var ct=l(Yt,2),zt=s(ct);ee(zt);var $t=l(zt,2);ee($t),a(ct),Oe(ct,(r,n)=>{var v;return(v=Ge)==null?void 0:v(r,n)},()=>()=>(E[e(i).id]={status:"submitting",countdown:0},async({result:r})=>{var n,v,T;if(r.type==="success"){const x=((n=r.data)==null?void 0:n.message)||"Punch recorded",_=((v=r.data)==null?void 0:v.protocol)||"N/A";xe(e(i).id,_,x),St.success(x),await re()}else if(r.type==="failure"){const x=((T=r.data)==null?void 0:T.error)||"Punch failed";fe(e(i).id,x),St.error(x),await re()}}));var Wt=l(ct,2),Ae=s(Wt);{var Re=r=>{var n=ca(),v=s(n),T=s(v),x=s(T),_=l(s(x));a(x);var k=l(x,2),w=s(k),A=s(w,!0);a(w),a(k),a(T),a(v);var R=l(v,2);R.__click=[la,le,i],a(n),S(()=>{z(_,0,se(e(y).punchType==="START"?"text-emerald-500":"text-rose-500")),Ve(_,`stroke-dasharray: 214; stroke-dashoffset: ${214-214*(6-e(y).countdown)/6}; transition: stroke-dashoffset 1s linear;`),p(A,e(y).countdown)}),d(r,n)},De=(r,n)=>{{var v=x=>{var _=va();d(x,_)},T=(x,_)=>{{var k=w=>{var A=Tt();const R=rt(()=>Lt(e(i),e(i).nextAction)),D=rt(()=>!u.data.punchDisabled&&e(R)&&(e(R).status==="on-time"||e(R).status==="late"));var j=mt(A);{var G=H=>{var M=ma();d(H,M)},I=H=>{var M=xa();M.__click=[ua,de,i];var K=s(M);{var Bt=N=>{var U=F("🟢 Clock In");d(N,U)},Qt=N=>{var U=F("🔴 Clock Out");d(N,U)};h(K,N=>{e(i).nextAction==="START"?N(Bt):N(Qt,!1)})}a(M),S(()=>{M.disabled=!e(i).hasAfm||e(y).status==="success",z(M,1,`min-h-[44px] w-full rounded-lg py-2.5 text-xs font-bold transition-all active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 sm:py-3 sm:text-sm ${e(i).nextAction==="START"?"bg-gradient-to-r from-emerald-500 to-emerald-600 text-white active:from-emerald-600 active:to-emerald-700":"bg-gradient-to-r from-rose-500 to-rose-600 text-white active:from-rose-600 active:to-rose-700"} ${e(D)?"animate-pulse ring-2 ring-white/30":""}`)}),d(H,M)};h(j,H=>{u.data.punchDisabled?H(G):H(I,!1)})}d(w,A)};h(x,w=>{(e(y).status==="idle"||e(y).status==="success"||e(y).status==="error")&&w(k)},_)}};h(r,x=>
2{e(y).status==="submitting"?x(v):x(T,!1)},n)}};h(Ae,r=>{e(y).status==="countdown"?r(Re):r(De,!1)})}a(Wt);var je=l(Wt,2);{var Ne=r=>{var n=pa(),v=s(n),T=s(v);a(v);var x=l(v,2);Gt(x,21,()=>e(i).recentPunches,_=>_.id,(_,k)=>{var w=fa(),A=s(w),R=s(A);a(A);var D=l(A,2),j=s(D,!0);a(D),a(w),S((G,I)=>{p(R,`${e(k).type==="START"?"●":"○"}
3												${G??""}`),z(D,1,`rounded px-0.5 ${I??""}`),p(j,e(k).status==="success"?"✓":e(k).status)},[()=>qt(e(k).time),()=>It(e(k).status)]),d(_,w)}),a(x),a(n),S(()=>p(T,`History (${e(i).recentPunches.length??""})`)),d(r,n)};h(je,r=>{e(i).recentPunches.length>0&&e(y).status==="idle"&&r(Ne)})}a($),S(()=>{kt(tt,"title",e(i).hasQrCode?"Click to view QR code":e(i).name),p(st,`${e(i).name??""} `),kt(ct,"id",`punch-form-${e(i).id??""}`),ae(zt,e(i).id),ae($t,e(i).nextAction)})}S(()=>z($,1,`flex flex-col rounded-lg bg-slate-800/50 p-2 backdrop-blur transition-all active:bg-slate-800/80 sm:p-3 ${e(y).status==="success"?"ring-2 ring-emerald-500/50":""} ${e(y).status==="error"?"ring-2 ring-red-500/50":""}`)),d(C,$)}),a(Z);var at=l(Z,2),B=l(s(at),2),V=s(B);{var pt=C=>{var i=ba();d(C,i)},ht=C=>{var i=_a(),$=s(i),y=l(s($));Gt(y,23,()=>e(Zt)(),q=>`${q.employeeId}-${q.time}`,(q,Q,tt)=>{var et=ga(),st=s(et),Rt=s(st,!0);a(st);var it=l(st),bt=s(it,!0);a(it);var nt=l(it),ot=s(nt),gt=s(ot,!0);a(ot),a(nt);var dt=l(nt),lt=s(dt),Dt=s(lt,!0);a(lt),a(dt);var _t=l(dt),jt=s(_t,!0);a(_t),a(et),S((Nt,wt)=>{z(et,1,`border-b border-slate-700/50 ${e(tt)===0?"bg-slate-700/20":""}`),p(Rt,Nt),p(bt,e(Q).employeeName),z(ot,1,se(e(Q).type==="START"?"text-emerald-400":"text-rose-400")),p(gt,e(Q).type==="START"?"● In":"○ Out"),z(lt,1,`rounded-full border px-1 py-0.5 text-[9px] sm:px-1.5 sm:text-[10px] ${wt??""}`),p(Dt,e(Q).status),p(jt,e(Q).protocol||"-")},[()=>me(e(Q).time),()=>ue(e(Q).status)]),d(q,et)}),a(y),a($),a(i),d(C,i)};h(V,C=>{e(Zt)().length===0?C(pt):C(ht,!1)})}a(B),a(at),d(g,m)};h(t,g=>{u.data.employees.length===0?g(c):g(b,!1)},o)}};h(Te,t=>{u.data.isConfigured?t(Se,!1):t(ke)})}Vt(2),a(Ct);var ye=l(Ct,2);{var Me=t=>{var o=Sa();o.__click=[Ta,ut],o.__keydown=[ka,ut];var c=s(o),b=s(c),g=s(b),m=s(g),P=s(m),Y=s(P,!0);a(P);var Z=l(P,2),at=s(Z);a(Z),a(m);var B=l(m,2);B.__click=ut,a(g),a(b);var V=l(b,2),pt=s(V),ht=s(pt);a(pt),Vt(2),a(V);var C=l(V,2),i=s(C);i.__click=ut,a(C),a(c),a(o),S(()=>{p(Y,e(J).name),p(at,`ΑΦΜ: ${e(J).vatNumber??""}`),kt(ht,"src",`/admin/scheduling/qr-view/${e(J).id??""}?t=${Date.now()??""}`),kt(ht,"alt",`Digital Work Card QR Code for ${e(J).name??""}`)}),d(t,o)};h(ye,t=>{e(yt)&&e(J)&&t(Me)})}a(Mt),S((t,o)=>{p(pe,t),p(he,o)},[()=>ce(e(xt)),()=>ve(e(xt))]),d(O,Mt),Be()}Qe(["click","keydown"]);export{Ha as component};

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.