From 29dc787c65c040fd33924f8b8399286603ab76b7 Mon Sep 17 00:00:00 2001 From: Admin Date: Fri, 19 Dec 2025 07:37:59 +0700 Subject: [PATCH] update(fe): remove speak check in and check out --- TrackingToolWeb/.DS_Store | Bin 8196 -> 8196 bytes .../{index-JE9ABJ5_.js => index-oi-Xrs3k.js} | 2 +- TrackingToolWeb/static/index.html | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename TrackingToolWeb/static/assets/{index-JE9ABJ5_.js => index-oi-Xrs3k.js} (98%) diff --git a/TrackingToolWeb/.DS_Store b/TrackingToolWeb/.DS_Store index c8cdfacab3fd79dc9de6c8f6bbe0d20b5dbf1cd1..5468111bb869af912954b4dea73263959f3a0fe5 100644 GIT binary patch delta 33 ocmZp1XmQwZN?63wKu5vI+^kkdq1w>c&_qYU%-CS_Jz+H-0I4hqMgRZ+ delta 33 ncmZp1XmQwZN?63)Ku5vEz_?aNq1w>E$PCD_FyDMnSd9k&sFw*w diff --git a/TrackingToolWeb/static/assets/index-JE9ABJ5_.js b/TrackingToolWeb/static/assets/index-oi-Xrs3k.js similarity index 98% rename from TrackingToolWeb/static/assets/index-JE9ABJ5_.js rename to TrackingToolWeb/static/assets/index-oi-Xrs3k.js index 355dabd..61abf82 100644 --- a/TrackingToolWeb/static/assets/index-JE9ABJ5_.js +++ b/TrackingToolWeb/static/assets/index-oi-Xrs3k.js @@ -77,4 +77,4 @@ Arguments: `+Array.prototype.slice.call(s).join("")+` newResult[${J}] = ${Z}.value; } - `)}N.write("payload.value = newResult;"),N.write("return payload;");const $=N.compile();return(V,Z)=>$(_,V,Z)};let u;const f=ac,h=!qS.jitless,m=h&&Cz.value,v=t.catchall;let y;e._zod.parse=(_,N)=>{y??(y=s.value);const E=_.value;return f(E)?h&&m&&N?.async===!1&&N.jitless!==!0?(u||(u=l(t.shape)),_=u(_,N),v?tw([],E,_,N,y,e):_):r(_,N):(_.issues.push({expected:"object",code:"invalid_type",input:E,inst:e}),_)}});function Sb(e,t,r,s){for(const u of e)if(u.issues.length===0)return t.value=u.value,t;const l=e.filter(u=>!xi(u));return l.length===1?(t.value=l[0].value,l[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(u=>u.issues.map(f=>Ss(f,s,_s())))}),t)}const c3=ne("$ZodUnion",(e,t)=>{Zt.init(e,t),ft(e._zod,"optin",()=>t.options.some(l=>l._zod.optin==="optional")?"optional":void 0),ft(e._zod,"optout",()=>t.options.some(l=>l._zod.optout==="optional")?"optional":void 0),ft(e._zod,"values",()=>{if(t.options.every(l=>l._zod.values))return new Set(t.options.flatMap(l=>Array.from(l._zod.values)))}),ft(e._zod,"pattern",()=>{if(t.options.every(l=>l._zod.pattern)){const l=t.options.map(u=>u._zod.pattern);return new RegExp(`^(${l.map(u=>Qm(u.source)).join("|")})$`)}});const r=t.options.length===1,s=t.options[0]._zod.run;e._zod.parse=(l,u)=>{if(r)return s(l,u);let f=!1;const h=[];for(const p of t.options){const m=p._zod.run({value:l.value,issues:[]},u);if(m instanceof Promise)h.push(m),f=!0;else{if(m.issues.length===0)return m;h.push(m)}}return f?Promise.all(h).then(p=>Sb(p,l,e,u)):Sb(h,l,e,u)}}),f3=ne("$ZodIntersection",(e,t)=>{Zt.init(e,t),e._zod.parse=(r,s)=>{const l=r.value,u=t.left._zod.run({value:l,issues:[]},s),f=t.right._zod.run({value:l,issues:[]},s);return u instanceof Promise||f instanceof Promise?Promise.all([u,f]).then(([p,m])=>wb(r,p,m)):wb(r,u,f)}});function Ih(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ql(e)&&ql(t)){const r=Object.keys(t),s=Object.keys(e).filter(u=>r.indexOf(u)!==-1),l={...e,...t};for(const u of s){const f=Ih(e[u],t[u]);if(!f.valid)return{valid:!1,mergeErrorPath:[u,...f.mergeErrorPath]};l[u]=f.data}return{valid:!0,data:l}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let s=0;s{Zt.init(e,t);const r=Az(t.entries),s=new Set(r);e._zod.values=s,e._zod.pattern=new RegExp(`^(${r.filter(l=>Rz.has(typeof l)).map(l=>typeof l=="string"?Dc(l):l.toString()).join("|")})$`),e._zod.parse=(l,u)=>{const f=l.value;return s.has(f)||l.issues.push({code:"invalid_value",values:r,input:f,inst:e}),l}}),h3=ne("$ZodTransform",(e,t)=>{Zt.init(e,t),e._zod.parse=(r,s)=>{if(s.direction==="backward")throw new $S(e.constructor.name);const l=t.transform(r.value,r);if(s.async)return(l instanceof Promise?l:Promise.resolve(l)).then(f=>(r.value=f,r));if(l instanceof Promise)throw new Di;return r.value=l,r}});function xb(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const m3=ne("$ZodOptional",(e,t)=>{Zt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ft(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ft(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Qm(r.source)})?$`):void 0}),e._zod.parse=(r,s)=>{if(t.innerType._zod.optin==="optional"){const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>xb(u,r.value)):xb(l,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,s)}}),p3=ne("$ZodNullable",(e,t)=>{Zt.init(e,t),ft(e._zod,"optin",()=>t.innerType._zod.optin),ft(e._zod,"optout",()=>t.innerType._zod.optout),ft(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Qm(r.source)}|null)$`):void 0}),ft(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,s)=>r.value===null?r:t.innerType._zod.run(r,s)}),g3=ne("$ZodDefault",(e,t)=>{Zt.init(e,t),e._zod.optin="optional",ft(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,s)=>{if(s.direction==="backward")return t.innerType._zod.run(r,s);if(r.value===void 0)return r.value=t.defaultValue,r;const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>Eb(u,t)):Eb(l,t)}});function Eb(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const y3=ne("$ZodPrefault",(e,t)=>{Zt.init(e,t),e._zod.optin="optional",ft(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,s)=>(s.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,s))}),v3=ne("$ZodNonOptional",(e,t)=>{Zt.init(e,t),ft(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(s=>s!==void 0)):void 0}),e._zod.parse=(r,s)=>{const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>Tb(u,e)):Tb(l,e)}});function Tb(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const b3=ne("$ZodCatch",(e,t)=>{Zt.init(e,t),ft(e._zod,"optin",()=>t.innerType._zod.optin),ft(e._zod,"optout",()=>t.innerType._zod.optout),ft(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,s)=>{if(s.direction==="backward")return t.innerType._zod.run(r,s);const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>(r.value=u.value,u.issues.length&&(r.value=t.catchValue({...r,error:{issues:u.issues.map(f=>Ss(f,s,_s()))},input:r.value}),r.issues=[]),r)):(r.value=l.value,l.issues.length&&(r.value=t.catchValue({...r,error:{issues:l.issues.map(u=>Ss(u,s,_s()))},input:r.value}),r.issues=[]),r)}}),_3=ne("$ZodPipe",(e,t)=>{Zt.init(e,t),ft(e._zod,"values",()=>t.in._zod.values),ft(e._zod,"optin",()=>t.in._zod.optin),ft(e._zod,"optout",()=>t.out._zod.optout),ft(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,s)=>{if(s.direction==="backward"){const u=t.out._zod.run(r,s);return u instanceof Promise?u.then(f=>Nu(f,t.in,s)):Nu(u,t.in,s)}const l=t.in._zod.run(r,s);return l instanceof Promise?l.then(u=>Nu(u,t.out,s)):Nu(l,t.out,s)}});function Nu(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}const S3=ne("$ZodReadonly",(e,t)=>{Zt.init(e,t),ft(e._zod,"propValues",()=>t.innerType._zod.propValues),ft(e._zod,"values",()=>t.innerType._zod.values),ft(e._zod,"optin",()=>t.innerType?._zod?.optin),ft(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,s)=>{if(s.direction==="backward")return t.innerType._zod.run(r,s);const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(Ob):Ob(l)}});function Ob(e){return e.value=Object.freeze(e.value),e}const w3=ne("$ZodCustom",(e,t)=>{Na.init(e,t),Zt.init(e,t),e._zod.parse=(r,s)=>r,e._zod.check=r=>{const s=r.value,l=t.fn(s);if(l instanceof Promise)return l.then(u=>Ab(u,r,s,e));Ab(l,r,s,e)}});function Ab(e,t,r,s){if(!e){const l={code:"custom",input:r,inst:s,path:[...s._zod.def.path??[]],continue:!s._zod.def.abort};s._zod.def.params&&(l.params=s._zod.def.params),t.issues.push(Gl(l))}}var Db;class x3{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){const s=r[0];if(this._map.set(t,s),s&&typeof s=="object"&&"id"in s){if(this._idmap.has(s.id))throw new Error(`ID ${s.id} already exists in the registry`);this._idmap.set(s.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){const r=t._zod.parent;if(r){const s={...this.get(r)??{}};delete s.id;const l={...s,...this._map.get(t)};return Object.keys(l).length?l:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function E3(){return new x3}(Db=globalThis).__zod_globalRegistry??(Db.__zod_globalRegistry=E3());const Mu=globalThis.__zod_globalRegistry;function T3(e,t){return new e({type:"string",...Me(t)})}function O3(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Me(t)})}function Cb(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Me(t)})}function A3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Me(t)})}function D3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Me(t)})}function C3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Me(t)})}function R3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Me(t)})}function N3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Me(t)})}function M3(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Me(t)})}function z3(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Me(t)})}function k3(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Me(t)})}function j3(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Me(t)})}function U3(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Me(t)})}function L3(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Me(t)})}function Y3(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Me(t)})}function H3(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Me(t)})}function V3(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Me(t)})}function B3(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Me(t)})}function Z3(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Me(t)})}function F3(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Me(t)})}function $3(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Me(t)})}function q3(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Me(t)})}function G3(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Me(t)})}function X3(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Me(t)})}function I3(e,t){return new e({type:"string",format:"date",check:"string_format",...Me(t)})}function Q3(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Me(t)})}function W3(e,t){return new e({type:"string",format:"duration",check:"string_format",...Me(t)})}function P3(e){return new e({type:"unknown"})}function K3(e,t){return new e({type:"never",...Me(t)})}function nw(e,t){return new wk({check:"max_length",...Me(t),maximum:e})}function sc(e,t){return new xk({check:"min_length",...Me(t),minimum:e})}function aw(e,t){return new Ek({check:"length_equals",...Me(t),length:e})}function J3(e,t){return new Tk({check:"string_format",format:"regex",...Me(t),pattern:e})}function e6(e){return new Ok({check:"string_format",format:"lowercase",...Me(e)})}function t6(e){return new Ak({check:"string_format",format:"uppercase",...Me(e)})}function n6(e,t){return new Dk({check:"string_format",format:"includes",...Me(t),includes:e})}function a6(e,t){return new Ck({check:"string_format",format:"starts_with",...Me(t),prefix:e})}function r6(e,t){return new Rk({check:"string_format",format:"ends_with",...Me(t),suffix:e})}function Li(e){return new Nk({check:"overwrite",tx:e})}function s6(e){return Li(t=>t.normalize(e))}function i6(){return Li(e=>e.trim())}function l6(){return Li(e=>e.toLowerCase())}function o6(){return Li(e=>e.toUpperCase())}function u6(){return Li(e=>Dz(e))}function c6(e,t,r){return new e({type:"array",element:t,...Me(r)})}function f6(e,t,r){return new e({type:"custom",check:"custom",fn:t,...Me(r)})}function d6(e){const t=h6(r=>(r.addIssue=s=>{if(typeof s=="string")r.issues.push(Gl(s,r.value,t._zod.def));else{const l=s;l.fatal&&(l.continue=!1),l.code??(l.code="custom"),l.input??(l.input=r.value),l.inst??(l.inst=t),l.continue??(l.continue=!t._zod.def.abort),r.issues.push(Gl(l))}},e(r.value,r)));return t}function h6(e,t){const r=new Na({check:"custom",...Me(t)});return r._zod.check=e,r}function Rb(e,t){try{var r=e()}catch(s){return t(s)}return r&&r.then?r.then(void 0,t):r}function m6(e,t){for(var r={};e.length;){var s=e[0],l=s.code,u=s.message,f=s.path.join(".");if(!r[f])if("unionErrors"in s){var h=s.unionErrors[0].errors[0];r[f]={message:h.message,type:h.code}}else r[f]={message:u,type:l};if("unionErrors"in s&&s.unionErrors.forEach(function(v){return v.errors.forEach(function(y){return e.push(y)})}),t){var p=r[f].types,m=p&&p[s.code];r[f]=$m(f,t,r,l,m?[].concat(m,s.message):s.message)}e.shift()}return r}function p6(e,t){for(var r={};e.length;){var s=e[0],l=s.code,u=s.message,f=s.path.join(".");if(!r[f])if(s.code==="invalid_union"&&s.errors.length>0){var h=s.errors[0][0];r[f]={message:h.message,type:h.code}}else r[f]={message:u,type:l};if(s.code==="invalid_union"&&s.errors.forEach(function(v){return v.forEach(function(y){return e.push(y)})}),t){var p=r[f].types,m=p&&p[s.code];r[f]=$m(f,t,r,l,m?[].concat(m,s.message):s.message)}e.shift()}return r}function g6(e,t,r){if(r===void 0&&(r={}),(function(s){return"_def"in s&&typeof s._def=="object"&&"typeName"in s._def})(e))return function(s,l,u){try{return Promise.resolve(Rb(function(){return Promise.resolve(e[r.mode==="sync"?"parse":"parseAsync"](s,t)).then(function(f){return u.shouldUseNativeValidation&&Gh({},u),{errors:{},values:r.raw?Object.assign({},s):f}})},function(f){if((function(h){return Array.isArray(h?.issues)})(f))return{values:{},errors:pb(m6(f.errors,!u.shouldUseNativeValidation&&u.criteriaMode==="all"),u)};throw f}))}catch(f){return Promise.reject(f)}};if((function(s){return"_zod"in s&&typeof s._zod=="object"})(e))return function(s,l,u){try{return Promise.resolve(Rb(function(){return Promise.resolve((r.mode==="sync"?Bz:Zz)(e,s,t)).then(function(f){return u.shouldUseNativeValidation&&Gh({},u),{errors:{},values:r.raw?Object.assign({},s):f}})},function(f){if((function(h){return h instanceof Pm})(f))return{values:{},errors:pb(p6(f.issues,!u.shouldUseNativeValidation&&u.criteriaMode==="all"),u)};throw f}))}catch(f){return Promise.reject(f)}};throw new Error("Invalid input: not a Zod schema")}const y6=ne("ZodISODateTime",(e,t)=>{qk.init(e,t),St.init(e,t)});function v6(e){return X3(y6,e)}const b6=ne("ZodISODate",(e,t)=>{Gk.init(e,t),St.init(e,t)});function _6(e){return I3(b6,e)}const S6=ne("ZodISOTime",(e,t)=>{Xk.init(e,t),St.init(e,t)});function w6(e){return Q3(S6,e)}const x6=ne("ZodISODuration",(e,t)=>{Ik.init(e,t),St.init(e,t)});function E6(e){return W3(x6,e)}const T6=(e,t)=>{Pm.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Vz(e,r)},flatten:{value:r=>Hz(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Xh,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Xh,2)}},isEmpty:{get(){return e.issues.length===0}}})},ta=ne("ZodError",T6,{Parent:Error}),O6=Rc(ta),A6=Nc(ta),D6=Mc(ta),C6=zc(ta),R6=qz(ta),N6=Gz(ta),M6=Xz(ta),z6=Iz(ta),k6=Qz(ta),j6=Wz(ta),U6=Pz(ta),L6=Kz(ta),It=ne("ZodType",(e,t)=>(Zt.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(Es(t,{checks:[...t.checks??[],...r.map(s=>typeof s=="function"?{_zod:{check:s,def:{check:"custom"},onattach:[]}}:s)]})),e.clone=(r,s)=>$r(e,r,s),e.brand=()=>e,e.register=((r,s)=>(r.add(e,s),e)),e.parse=(r,s)=>O6(e,r,s,{callee:e.parse}),e.safeParse=(r,s)=>D6(e,r,s),e.parseAsync=async(r,s)=>A6(e,r,s,{callee:e.parseAsync}),e.safeParseAsync=async(r,s)=>C6(e,r,s),e.spa=e.safeParseAsync,e.encode=(r,s)=>R6(e,r,s),e.decode=(r,s)=>N6(e,r,s),e.encodeAsync=async(r,s)=>M6(e,r,s),e.decodeAsync=async(r,s)=>z6(e,r,s),e.safeEncode=(r,s)=>k6(e,r,s),e.safeDecode=(r,s)=>j6(e,r,s),e.safeEncodeAsync=async(r,s)=>U6(e,r,s),e.safeDecodeAsync=async(r,s)=>L6(e,r,s),e.refine=(r,s)=>e.check(D5(r,s)),e.superRefine=r=>e.check(C5(r)),e.overwrite=r=>e.check(Li(r)),e.optional=()=>zb(e),e.nullable=()=>kb(e),e.nullish=()=>zb(kb(e)),e.nonoptional=r=>S5(e,r),e.array=()=>i5(e),e.or=r=>c5([e,r]),e.and=r=>d5(e,r),e.transform=r=>jb(e,p5(r)),e.default=r=>v5(e,r),e.prefault=r=>_5(e,r),e.catch=r=>x5(e,r),e.pipe=r=>jb(e,r),e.readonly=()=>O5(e),e.describe=r=>{const s=e.clone();return Mu.add(s,{description:r}),s},Object.defineProperty(e,"description",{get(){return Mu.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return Mu.get(e);const s=e.clone();return Mu.add(s,r[0]),s},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),rw=ne("_ZodString",(e,t)=>{Km.init(e,t),It.init(e,t);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...s)=>e.check(J3(...s)),e.includes=(...s)=>e.check(n6(...s)),e.startsWith=(...s)=>e.check(a6(...s)),e.endsWith=(...s)=>e.check(r6(...s)),e.min=(...s)=>e.check(sc(...s)),e.max=(...s)=>e.check(nw(...s)),e.length=(...s)=>e.check(aw(...s)),e.nonempty=(...s)=>e.check(sc(1,...s)),e.lowercase=s=>e.check(e6(s)),e.uppercase=s=>e.check(t6(s)),e.trim=()=>e.check(i6()),e.normalize=(...s)=>e.check(s6(...s)),e.toLowerCase=()=>e.check(l6()),e.toUpperCase=()=>e.check(o6()),e.slugify=()=>e.check(u6())}),Y6=ne("ZodString",(e,t)=>{Km.init(e,t),rw.init(e,t),e.email=r=>e.check(O3(H6,r)),e.url=r=>e.check(N3(V6,r)),e.jwt=r=>e.check(G3(t5,r)),e.emoji=r=>e.check(M3(B6,r)),e.guid=r=>e.check(Cb(Nb,r)),e.uuid=r=>e.check(A3(zu,r)),e.uuidv4=r=>e.check(D3(zu,r)),e.uuidv6=r=>e.check(C3(zu,r)),e.uuidv7=r=>e.check(R3(zu,r)),e.nanoid=r=>e.check(z3(Z6,r)),e.guid=r=>e.check(Cb(Nb,r)),e.cuid=r=>e.check(k3(F6,r)),e.cuid2=r=>e.check(j3($6,r)),e.ulid=r=>e.check(U3(q6,r)),e.base64=r=>e.check(F3(K6,r)),e.base64url=r=>e.check($3(J6,r)),e.xid=r=>e.check(L3(G6,r)),e.ksuid=r=>e.check(Y3(X6,r)),e.ipv4=r=>e.check(H3(I6,r)),e.ipv6=r=>e.check(V3(Q6,r)),e.cidrv4=r=>e.check(B3(W6,r)),e.cidrv6=r=>e.check(Z3(P6,r)),e.e164=r=>e.check(q3(e5,r)),e.datetime=r=>e.check(v6(r)),e.date=r=>e.check(_6(r)),e.time=r=>e.check(w6(r)),e.duration=r=>e.check(E6(r))});function _h(e){return T3(Y6,e)}const St=ne("ZodStringFormat",(e,t)=>{bt.init(e,t),rw.init(e,t)}),H6=ne("ZodEmail",(e,t)=>{Uk.init(e,t),St.init(e,t)}),Nb=ne("ZodGUID",(e,t)=>{kk.init(e,t),St.init(e,t)}),zu=ne("ZodUUID",(e,t)=>{jk.init(e,t),St.init(e,t)}),V6=ne("ZodURL",(e,t)=>{Lk.init(e,t),St.init(e,t)}),B6=ne("ZodEmoji",(e,t)=>{Yk.init(e,t),St.init(e,t)}),Z6=ne("ZodNanoID",(e,t)=>{Hk.init(e,t),St.init(e,t)}),F6=ne("ZodCUID",(e,t)=>{Vk.init(e,t),St.init(e,t)}),$6=ne("ZodCUID2",(e,t)=>{Bk.init(e,t),St.init(e,t)}),q6=ne("ZodULID",(e,t)=>{Zk.init(e,t),St.init(e,t)}),G6=ne("ZodXID",(e,t)=>{Fk.init(e,t),St.init(e,t)}),X6=ne("ZodKSUID",(e,t)=>{$k.init(e,t),St.init(e,t)}),I6=ne("ZodIPv4",(e,t)=>{Qk.init(e,t),St.init(e,t)}),Q6=ne("ZodIPv6",(e,t)=>{Wk.init(e,t),St.init(e,t)}),W6=ne("ZodCIDRv4",(e,t)=>{Pk.init(e,t),St.init(e,t)}),P6=ne("ZodCIDRv6",(e,t)=>{Kk.init(e,t),St.init(e,t)}),K6=ne("ZodBase64",(e,t)=>{Jk.init(e,t),St.init(e,t)}),J6=ne("ZodBase64URL",(e,t)=>{t3.init(e,t),St.init(e,t)}),e5=ne("ZodE164",(e,t)=>{n3.init(e,t),St.init(e,t)}),t5=ne("ZodJWT",(e,t)=>{r3.init(e,t),St.init(e,t)}),n5=ne("ZodUnknown",(e,t)=>{s3.init(e,t),It.init(e,t)});function Mb(){return P3(n5)}const a5=ne("ZodNever",(e,t)=>{i3.init(e,t),It.init(e,t)});function r5(e){return K3(a5,e)}const s5=ne("ZodArray",(e,t)=>{l3.init(e,t),It.init(e,t),e.element=t.element,e.min=(r,s)=>e.check(sc(r,s)),e.nonempty=r=>e.check(sc(1,r)),e.max=(r,s)=>e.check(nw(r,s)),e.length=(r,s)=>e.check(aw(r,s)),e.unwrap=()=>e.element});function i5(e,t){return c6(s5,e,t)}const l5=ne("ZodObject",(e,t)=>{u3.init(e,t),It.init(e,t),ft(e,"shape",()=>t.shape),e.keyof=()=>h5(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Mb()}),e.loose=()=>e.clone({...e._zod.def,catchall:Mb()}),e.strict=()=>e.clone({...e._zod.def,catchall:r5()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>kz(e,r),e.safeExtend=r=>jz(e,r),e.merge=r=>Uz(e,r),e.pick=r=>Mz(e,r),e.omit=r=>zz(e,r),e.partial=(...r)=>Lz(sw,e,r[0]),e.required=(...r)=>Yz(iw,e,r[0])});function o5(e,t){const r={type:"object",shape:e??{},...Me(t)};return new l5(r)}const u5=ne("ZodUnion",(e,t)=>{c3.init(e,t),It.init(e,t),e.options=t.options});function c5(e,t){return new u5({type:"union",options:e,...Me(t)})}const f5=ne("ZodIntersection",(e,t)=>{f3.init(e,t),It.init(e,t)});function d5(e,t){return new f5({type:"intersection",left:e,right:t})}const Qh=ne("ZodEnum",(e,t)=>{d3.init(e,t),It.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(s,l)=>{const u={};for(const f of s)if(r.has(f))u[f]=t.entries[f];else throw new Error(`Key ${f} not found in enum`);return new Qh({...t,checks:[],...Me(l),entries:u})},e.exclude=(s,l)=>{const u={...t.entries};for(const f of s)if(r.has(f))delete u[f];else throw new Error(`Key ${f} not found in enum`);return new Qh({...t,checks:[],...Me(l),entries:u})}});function h5(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new Qh({type:"enum",entries:r,...Me(t)})}const m5=ne("ZodTransform",(e,t)=>{h3.init(e,t),It.init(e,t),e._zod.parse=(r,s)=>{if(s.direction==="backward")throw new $S(e.constructor.name);r.addIssue=u=>{if(typeof u=="string")r.issues.push(Gl(u,r.value,t));else{const f=u;f.fatal&&(f.continue=!1),f.code??(f.code="custom"),f.input??(f.input=r.value),f.inst??(f.inst=e),r.issues.push(Gl(f))}};const l=t.transform(r.value,r);return l instanceof Promise?l.then(u=>(r.value=u,r)):(r.value=l,r)}});function p5(e){return new m5({type:"transform",transform:e})}const sw=ne("ZodOptional",(e,t)=>{m3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function zb(e){return new sw({type:"optional",innerType:e})}const g5=ne("ZodNullable",(e,t)=>{p3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function kb(e){return new g5({type:"nullable",innerType:e})}const y5=ne("ZodDefault",(e,t)=>{g3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function v5(e,t){return new y5({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():XS(t)}})}const b5=ne("ZodPrefault",(e,t)=>{y3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _5(e,t){return new b5({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():XS(t)}})}const iw=ne("ZodNonOptional",(e,t)=>{v3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function S5(e,t){return new iw({type:"nonoptional",innerType:e,...Me(t)})}const w5=ne("ZodCatch",(e,t)=>{b3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function x5(e,t){return new w5({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const E5=ne("ZodPipe",(e,t)=>{_3.init(e,t),It.init(e,t),e.in=t.in,e.out=t.out});function jb(e,t){return new E5({type:"pipe",in:e,out:t})}const T5=ne("ZodReadonly",(e,t)=>{S3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function O5(e){return new T5({type:"readonly",innerType:e})}const A5=ne("ZodCustom",(e,t)=>{w3.init(e,t),It.init(e,t)});function D5(e,t={}){return f6(A5,e,t)}function C5(e){return d6(e)}var R5=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],N5=R5.reduce((e,t)=>{const r=Rm(`Primitive.${t}`),s=w.forwardRef((l,u)=>{const{asChild:f,...h}=l,p=f?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),S.jsx(p,{...h,ref:u})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),M5="Label",lw=w.forwardRef((e,t)=>S.jsx(N5.label,{...e,ref:t,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(e.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));lw.displayName=M5;var z5=lw;function k5(e){const t=Xe.c(8);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);let l;t[3]!==r?(l=ot("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",r),t[3]=r,t[4]=l):l=t[4];let u;return t[5]!==s||t[6]!==l?(u=S.jsx(z5,{"data-slot":"label",className:l,...s}),t[5]=s,t[6]=l,t[7]=u):u=t[7],u}const j5=lz,ow=w.createContext({}),Sh=e=>{const t=Xe.c(9);let r;t[0]!==e?({...r}=e,t[0]=e,t[1]=r):r=t[1];let s;t[2]!==r.name?(s={name:r.name},t[2]=r.name,t[3]=s):s=t[3];let l;t[4]!==r?(l=S.jsx(cz,{...r}),t[4]=r,t[5]=l):l=t[5];let u;return t[6]!==s||t[7]!==l?(u=S.jsx(ow.Provider,{value:s,children:l}),t[6]=s,t[7]=l,t[8]=u):u=t[8],u},Jm=()=>{const e=Xe.c(13),t=w.useContext(ow),r=w.useContext(uw),{getFieldState:s}=Ac();let l;e[0]!==t.name?(l={name:t.name},e[0]=t.name,e[1]=l):l=e[1];const u=LS(l);let f;e[2]!==t.name||e[3]!==u||e[4]!==s?(f=s(t.name,u),e[2]=t.name,e[3]=u,e[4]=s,e[5]=f):f=e[5];const h=f;if(!t)throw new Error("useFormField should be used within ");const{id:p}=r,m=`${p}-form-item`,v=`${p}-form-item-description`,y=`${p}-form-item-message`;let _;return e[6]!==t.name||e[7]!==h||e[8]!==p||e[9]!==m||e[10]!==v||e[11]!==y?(_={id:p,name:t.name,formItemId:m,formDescriptionId:v,formMessageId:y,...h},e[6]=t.name,e[7]=h,e[8]=p,e[9]=m,e[10]=v,e[11]=y,e[12]=_):_=e[12],_},uw=w.createContext({});function wh(e){const t=Xe.c(13);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);const l=w.useId();let u;t[3]!==l?(u={id:l},t[3]=l,t[4]=u):u=t[4];let f;t[5]!==r?(f=ot("grid gap-2",r),t[5]=r,t[6]=f):f=t[6];let h;t[7]!==s||t[8]!==f?(h=S.jsx("div",{"data-slot":"form-item",className:f,...s}),t[7]=s,t[8]=f,t[9]=h):h=t[9];let p;return t[10]!==u||t[11]!==h?(p=S.jsx(uw.Provider,{value:u,children:h}),t[10]=u,t[11]=h,t[12]=p):p=t[12],p}function ku(e){const t=Xe.c(10);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);const{error:l,formItemId:u}=Jm(),f=!!l;let h;t[3]!==r?(h=ot("data-[error=true]:text-destructive",r),t[3]=r,t[4]=h):h=t[4];let p;return t[5]!==u||t[6]!==s||t[7]!==f||t[8]!==h?(p=S.jsx(k5,{"data-slot":"form-label","data-error":f,className:h,htmlFor:u,...s}),t[5]=u,t[6]=s,t[7]=f,t[8]=h,t[9]=p):p=t[9],p}function xh(e){const t=Xe.c(7);let r;t[0]!==e?({...r}=e,t[0]=e,t[1]=r):r=t[1];const{error:s,formItemId:l,formDescriptionId:u,formMessageId:f}=Jm(),h=s?`${u} ${f}`:`${u}`,p=!!s;let m;return t[2]!==l||t[3]!==r||t[4]!==h||t[5]!==p?(m=S.jsx(Nm,{"data-slot":"form-control",id:l,"aria-describedby":h,"aria-invalid":p,...r}),t[2]=l,t[3]=r,t[4]=h,t[5]=p,t[6]=m):m=t[6],m}function Eh(e){const t=Xe.c(10);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);const{error:l,formMessageId:u}=Jm(),f=l?String(l?.message??""):s.children;if(!f)return null;let h;t[3]!==r?(h=ot("text-destructive text-sm",r),t[3]=r,t[4]=h):h=t[4];let p;return t[5]!==f||t[6]!==u||t[7]!==s||t[8]!==h?(p=S.jsx("p",{"data-slot":"form-message",id:u,className:h,...s,children:f}),t[5]=f,t[6]=u,t[7]=s,t[8]=h,t[9]=p):p=t[9],p}function Th(e){const t=Xe.c(10);let r,s,l;t[0]!==e?({className:r,type:l,...s}=e,t[0]=e,t[1]=r,t[2]=s,t[3]=l):(r=t[1],s=t[2],l=t[3]);let u;t[4]!==r?(u=ot("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",r),t[4]=r,t[5]=u):u=t[5];let f;return t[6]!==s||t[7]!==u||t[8]!==l?(f=S.jsx("input",{type:l,"data-slot":"input",className:u,...s}),t[6]=s,t[7]=u,t[8]=l,t[9]=f):f=t[9],f}const U5=o5({name:_h().min(1,"Tên là bắt buộc"),email:_h().email("Email không hợp lệ"),avatar:_h().optional()});function L5({user:e,onSave:t,children:r,trackingOpen:s}){const l=tN(),u=!!e,[f,h]=w.useState(!1),[p,m]=w.useState(!1),{captureRegisterImage:v,setCaptureRegisterImage:y}=Fr(),_=Tz({resolver:g6(U5),defaultValues:{name:"",email:"",avatar:""}});w.useEffect(()=>{e?_.reset({name:e.name,email:e.email,avatar:e.avatar??""}):_.reset({name:"",email:"",avatar:""})},[e,f,_]);const N=async()=>{await l({title:"Thông báo",message:"Bạn muốn hủy đăng ký. Mọi dữ liệu bạn nhập sẽ bị mất",confirmText:"Discard",cancelText:"Hủy",variant:"warning"})&&(h(!1),y(null))},E=async x=>{try{m(!0);const O={id:e?.id||Date.now().toString(),...x,avatar:x.avatar||null},{data:z}=await $l.register({user:O,file:v});console.log({data:z}),t?.(O),h(!1),y(null),tr.success(z?.message||"Đăng ký thành công !")}catch(O){console.log({error:O}),tr.error(O?.message||"Internal Server Error")}finally{m(!1)}};return w.useEffect(()=>{s!==void 0&&h(s)},[s]),w.useEffect(()=>{if(v)return()=>{URL.revokeObjectURL(v)}},[v]),S.jsxs(Tm,{open:f,onOpenChange:x=>{if(!x){N();return}h(!0)},children:[S.jsx(C_,{children:r}),S.jsxs(Om,{className:"sm:max-w-[425px]",children:[S.jsxs(Am,{children:[S.jsx(Dm,{children:u?"Cập nhật thông tin":"Tạo người dùng mới"}),S.jsx(Cm,{children:u?"Cập nhật thông tin người dùng của bạn":"Nhập thông tin để tạo người dùng mới"})]}),S.jsx(j5,{..._,children:S.jsxs("form",{onSubmit:_.handleSubmit(E),className:"space-y-4",children:[S.jsx(Sh,{control:_.control,name:"name",render:({field:x})=>S.jsxs(wh,{children:[S.jsxs(ku,{children:["Tên ",S.jsx("span",{className:"text-red-600",children:"*"})]}),S.jsx(xh,{children:S.jsx(Th,{placeholder:"Nhập tên người dùng",...x})}),S.jsx(Eh,{})]})}),S.jsx(Sh,{control:_.control,name:"email",render:({field:x})=>S.jsxs(wh,{children:[S.jsxs(ku,{children:["Email ",S.jsx("span",{className:"text-red-600",children:"*"})]}),S.jsx(xh,{children:S.jsx(Th,{type:"email",placeholder:"Nhập email",...x})}),S.jsx(Eh,{})]})}),S.jsx(Sh,{control:_.control,name:"avatar",render:({field:x})=>S.jsxs(wh,{children:[S.jsx(ku,{children:"Avatar URL"}),S.jsx(xh,{children:S.jsx(Th,{placeholder:"https://example.com/avatar.jpg",...x})}),S.jsx(Eh,{})]})}),S.jsx(ku,{children:"Ảnh từ camera"}),S.jsx("a",{target:"_blank",href:URL.createObjectURL(v),children:S.jsxs(An,{size:"sm",variant:"outline",className:"w-full bg-transparent",type:"button",children:[S.jsx(tm,{className:"w-4 h-4 mr-2"}),"Xem ảnh"]})}),S.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[S.jsx(An,{type:"button",variant:"outline",onClick:N,children:"Hủy"}),S.jsxs(An,{type:"submit",children:[!p&&u?"Cập nhật":"Tạo mới",p&&S.jsx(Lu,{className:"animate-spin"})]})]})]})})]})]})}function Y5(){const e=Xe.c(9),{isAutoChecking:t,captureRegisterImage:r,isCountDown:s}=Fr();let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=S.jsx(PT,{className:"mr-2 size-4"}),e[0]=l):l=e[0];let u;e[1]!==t?(u=S.jsx(rz,{children:S.jsxs(An,{onClick:H5,disabled:t,className:"w-full bg-green-600 hover:bg-green-700 text-white font-semibold",children:[l,"Tạo User Checking"]})}),e[1]=t,e[2]=u):u=e[2];let f;e[3]!==r||e[4]!==s?(f=r&&!s&&S.jsx(L5,{trackingOpen:!0}),e[3]=r,e[4]=s,e[5]=f):f=e[5];let h;return e[6]!==u||e[7]!==f?(h=S.jsxs(S.Fragment,{children:[u,f]}),e[6]=u,e[7]=f,e[8]=h):h=e[8],h}function H5(){}function Ub(e){if(!e)return;const t=new SpeechSynthesisUtterance(e);t.lang="en-US",t.rate=1,t.pitch=1,t.volume=1,speechSynthesis.speak(t)}function V5(){const e=w.useRef(null),{canvasRef:t,videoRef:r}=Fr(),{currentUser:s,setCurrentUser:l}=MS(),{isAutoChecking:u,setIsAutoChecking:f,setRefreshLog:h}=Fr(),p=w.useRef(null),[m,v]=w.useState(!1),[y,_]=w.useState(!1),N=()=>{u?(p.current&&(clearInterval(p.current),p.current=null),f(!1)):(p.current=setInterval(()=>{x()},3e3),f(!0))},E=async()=>{if(!s){tr.warning("Vui lòng chọn user để tạo checkpoint");return}try{_(!0);const O=await Uh(r,t),{data:z}=await $l.register({user:s,file:O});if(!z){tr.error(z?.message||"Error In Checkpoint: "+JSON.stringify(z));return}tr.success(z?.message||"Tạo checkpoint thành công")}catch(O){const z=O;tr.error(z.response?.data?.message||"Error In Checkpoint: "+JSON.stringify(z))}finally{_(!1)}},x=w.useCallback(async()=>{try{v(!0);const O=await Uh(r,t),{data:z}=await $l.checkin({file:O});if(console.log({data:z}),!z||!z?.status){tr.error(z?.message||"Error In Checking: "+JSON.stringify(z));return}const $=z?.message||`Checking thành công lúc: ${D_(new Date().toLocaleString())}`;switch(tr.success($),z?.status_type){case"check in":{const V=`Hello ${R0(z?.data?.email)}. Check-in successful`;Ub(V);break}case"check out":{const V=`Bye ${R0(z?.data?.email)}. Check-out successful`;Ub(V);break}}h(!0)}catch(O){const z=O,$=z.response?.data?.message||"Error In Checking: "+JSON.stringify(z);if($.includes("No face detected"))return;tr.error($)}finally{v(!1)}},[t,l,r]);return w.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]),w.useEffect(()=>{const O=z=>{if(z.code==="Space"){if(z.preventDefault(),m)return;x()}};return window.addEventListener("keydown",O),()=>{window.removeEventListener("keydown",O)}},[x,m]),S.jsxs("div",{className:"absolute bottom-10 px-4 right-0 left-0 grid grid-cols-3 gap-4",children:[S.jsxs(An,{onClick:x,disabled:u,className:"w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold",children:[!m&&S.jsxs(S.Fragment,{children:[S.jsx(tm,{className:"mr-2 size-4"}),"Điểm Danh Ngay"]}),m&&S.jsx(Lu,{className:"size-4 animate-spin"})]}),S.jsxs(An,{onClick:N,variant:u?"destructive":"outline",className:ot("w-full font-semibold",u&&"animate-pulse"),children:[!m&&u?S.jsxs(S.Fragment,{children:[S.jsx(IT,{className:"mr-2 size-4"}),"Dừng Tự Động"]}):S.jsxs(S.Fragment,{children:[S.jsx(GT,{className:"mr-2 size-4"}),"Tự Động Điểm Danh"]}),m&&S.jsx(Lu,{className:"size-4 animate-spin"})]}),s&&S.jsxs(An,{disabled:u,onClick:E,className:ot("w-full font-semibold"),children:[!y&&S.jsxs(S.Fragment,{children:[S.jsx(YT,{}),"Tạo Check Point"]}),y&&S.jsx(Lu,{className:"size-4 animate-spin"})]}),!s&&S.jsx(Y5,{})]})}function B5(){const[e,t]=w.useState(!0),[r,s]=w.useState(!1),{setCanvasRef:l,setVideoRef:u}=Fr(),{isCountDown:f,setCaptureRegisterImage:h,setIsCountDown:p}=Fr(),m=w.useRef(null),v=w.useRef(null);return w.useEffect(()=>((async()=>{try{const _=await navigator.mediaDevices.getUserMedia({video:{width:1280,height:720,facingMode:"user"}});m.current&&(m.current.srcObject=_)}catch(_){console.error("Không thể truy cập camera:",_)}})(),()=>{m.current?.srcObject&&(m.current?.srcObject).getTracks().forEach(N=>N.stop())}),[]),w.useEffect(()=>{l(v),u(m)},[m,v]),S.jsx("div",{className:"min-h-screen bg-white",children:S.jsxs("div",{className:"flex h-screen",children:[S.jsx(O4,{isSidebarOpen:r}),S.jsx("div",{className:ot("flex-1 transition-all duration-300 ease-in-out",r&&"ml-96",e&&"mr-96"),children:S.jsx("div",{className:"h-full flex flex-col p-6",children:S.jsxs(z_,{className:"flex-1 overflow-hidden bg-black relative group",children:[S.jsx("video",{ref:m,autoPlay:!0,playsInline:!0,className:"w-full h-full object-cover"}),S.jsx("div",{className:"absolute inset-0 border-4 border-blue-500/30 pointer-events-none"}),f&&S.jsx(sN,{onCountdowned:async()=>{const y=await Uh(m,v);h(y),p(!1)}}),S.jsx(An,{onClick:()=>s(!r),variant:"outline",size:"icon",className:"absolute top-1/2 -translate-y-1/2 left-4 bg-white/90 hover:bg-white shadow-lg",children:r?S.jsx(y0,{className:"size-4"}):S.jsx(v0,{className:"size-4"})}),S.jsx(An,{onClick:()=>t(!e),variant:"outline",size:"icon",className:"absolute top-1/2 -translate-y-1/2 right-4 bg-white/90 hover:bg-white shadow-lg",children:e?S.jsx(v0,{className:"size-4"}):S.jsx(y0,{className:"size-4"})}),S.jsx(V5,{})]})})}),S.jsx(R4,{isSidebarOpen:e}),S.jsx("canvas",{ref:v,className:"hidden"})]})})}var Z5=(e,t,r,s,l,u,f,h)=>{let p=document.documentElement,m=["light","dark"];function v(N){(Array.isArray(e)?e:[e]).forEach(E=>{let x=E==="class",O=x&&u?l.map(z=>u[z]||z):l;x?(p.classList.remove(...O),p.classList.add(u&&u[N]?u[N]:N)):p.setAttribute(E,N)}),y(N)}function y(N){h&&m.includes(N)&&(p.style.colorScheme=N)}function _(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(s)v(s);else try{let N=localStorage.getItem(t)||r,E=f&&N==="system"?_():N;v(E)}catch{}},F5=w.createContext(void 0),$5={setTheme:e=>{},themes:[]},q5=()=>{var e;return(e=w.useContext(F5))!=null?e:$5};w.memo(({forcedTheme:e,storageKey:t,attribute:r,enableSystem:s,enableColorScheme:l,defaultTheme:u,value:f,themes:h,nonce:p,scriptProps:m})=>{let v=JSON.stringify([r,t,u,e,h,f,s,l]).slice(1,-1);return w.createElement("script",{...m,suppressHydrationWarning:!0,nonce:typeof window>"u"?p:"",dangerouslySetInnerHTML:{__html:`(${Z5.toString()})(${v})`}})});const G5=e=>{const t=Xe.c(7);let r;t[0]!==e?({...r}=e,t[0]=e,t[1]=r):r=t[1];const{theme:s}=q5(),u=s===void 0?"system":s;let f,h;t[2]===Symbol.for("react.memo_cache_sentinel")?(f={success:S.jsx(jT,{className:"size-4"}),info:S.jsx(_1,{className:"size-4"}),warning:S.jsx(S1,{className:"size-4"}),error:S.jsx($T,{className:"size-4"}),loading:S.jsx(BT,{className:"size-4 animate-spin"})},h={"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},t[2]=f,t[3]=h):(f=t[2],h=t[3]);let p;return t[4]!==r||t[5]!==u?(p=S.jsx(az,{theme:u,className:"toaster group",icons:f,style:h,...r}),t[4]=r,t[5]=u,t[6]=p):p=t[6],p};N2.createRoot(document.getElementById("root")).render(S.jsx(w.StrictMode,{children:S.jsxs(eN,{children:[S.jsx(B5,{}),S.jsx(G5,{richColors:!0,position:"top-right"})]})}))});export default X5(); + `)}N.write("payload.value = newResult;"),N.write("return payload;");const $=N.compile();return(V,Z)=>$(_,V,Z)};let u;const f=ac,h=!qS.jitless,m=h&&Cz.value,v=t.catchall;let y;e._zod.parse=(_,N)=>{y??(y=s.value);const E=_.value;return f(E)?h&&m&&N?.async===!1&&N.jitless!==!0?(u||(u=l(t.shape)),_=u(_,N),v?tw([],E,_,N,y,e):_):r(_,N):(_.issues.push({expected:"object",code:"invalid_type",input:E,inst:e}),_)}});function Sb(e,t,r,s){for(const u of e)if(u.issues.length===0)return t.value=u.value,t;const l=e.filter(u=>!xi(u));return l.length===1?(t.value=l[0].value,l[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(u=>u.issues.map(f=>Ss(f,s,_s())))}),t)}const c3=ne("$ZodUnion",(e,t)=>{Zt.init(e,t),ft(e._zod,"optin",()=>t.options.some(l=>l._zod.optin==="optional")?"optional":void 0),ft(e._zod,"optout",()=>t.options.some(l=>l._zod.optout==="optional")?"optional":void 0),ft(e._zod,"values",()=>{if(t.options.every(l=>l._zod.values))return new Set(t.options.flatMap(l=>Array.from(l._zod.values)))}),ft(e._zod,"pattern",()=>{if(t.options.every(l=>l._zod.pattern)){const l=t.options.map(u=>u._zod.pattern);return new RegExp(`^(${l.map(u=>Qm(u.source)).join("|")})$`)}});const r=t.options.length===1,s=t.options[0]._zod.run;e._zod.parse=(l,u)=>{if(r)return s(l,u);let f=!1;const h=[];for(const p of t.options){const m=p._zod.run({value:l.value,issues:[]},u);if(m instanceof Promise)h.push(m),f=!0;else{if(m.issues.length===0)return m;h.push(m)}}return f?Promise.all(h).then(p=>Sb(p,l,e,u)):Sb(h,l,e,u)}}),f3=ne("$ZodIntersection",(e,t)=>{Zt.init(e,t),e._zod.parse=(r,s)=>{const l=r.value,u=t.left._zod.run({value:l,issues:[]},s),f=t.right._zod.run({value:l,issues:[]},s);return u instanceof Promise||f instanceof Promise?Promise.all([u,f]).then(([p,m])=>wb(r,p,m)):wb(r,u,f)}});function Ih(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ql(e)&&ql(t)){const r=Object.keys(t),s=Object.keys(e).filter(u=>r.indexOf(u)!==-1),l={...e,...t};for(const u of s){const f=Ih(e[u],t[u]);if(!f.valid)return{valid:!1,mergeErrorPath:[u,...f.mergeErrorPath]};l[u]=f.data}return{valid:!0,data:l}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let s=0;s{Zt.init(e,t);const r=Az(t.entries),s=new Set(r);e._zod.values=s,e._zod.pattern=new RegExp(`^(${r.filter(l=>Rz.has(typeof l)).map(l=>typeof l=="string"?Dc(l):l.toString()).join("|")})$`),e._zod.parse=(l,u)=>{const f=l.value;return s.has(f)||l.issues.push({code:"invalid_value",values:r,input:f,inst:e}),l}}),h3=ne("$ZodTransform",(e,t)=>{Zt.init(e,t),e._zod.parse=(r,s)=>{if(s.direction==="backward")throw new $S(e.constructor.name);const l=t.transform(r.value,r);if(s.async)return(l instanceof Promise?l:Promise.resolve(l)).then(f=>(r.value=f,r));if(l instanceof Promise)throw new Di;return r.value=l,r}});function xb(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const m3=ne("$ZodOptional",(e,t)=>{Zt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ft(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ft(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Qm(r.source)})?$`):void 0}),e._zod.parse=(r,s)=>{if(t.innerType._zod.optin==="optional"){const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>xb(u,r.value)):xb(l,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,s)}}),p3=ne("$ZodNullable",(e,t)=>{Zt.init(e,t),ft(e._zod,"optin",()=>t.innerType._zod.optin),ft(e._zod,"optout",()=>t.innerType._zod.optout),ft(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Qm(r.source)}|null)$`):void 0}),ft(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,s)=>r.value===null?r:t.innerType._zod.run(r,s)}),g3=ne("$ZodDefault",(e,t)=>{Zt.init(e,t),e._zod.optin="optional",ft(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,s)=>{if(s.direction==="backward")return t.innerType._zod.run(r,s);if(r.value===void 0)return r.value=t.defaultValue,r;const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>Eb(u,t)):Eb(l,t)}});function Eb(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const y3=ne("$ZodPrefault",(e,t)=>{Zt.init(e,t),e._zod.optin="optional",ft(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,s)=>(s.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,s))}),v3=ne("$ZodNonOptional",(e,t)=>{Zt.init(e,t),ft(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(s=>s!==void 0)):void 0}),e._zod.parse=(r,s)=>{const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>Tb(u,e)):Tb(l,e)}});function Tb(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const b3=ne("$ZodCatch",(e,t)=>{Zt.init(e,t),ft(e._zod,"optin",()=>t.innerType._zod.optin),ft(e._zod,"optout",()=>t.innerType._zod.optout),ft(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,s)=>{if(s.direction==="backward")return t.innerType._zod.run(r,s);const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(u=>(r.value=u.value,u.issues.length&&(r.value=t.catchValue({...r,error:{issues:u.issues.map(f=>Ss(f,s,_s()))},input:r.value}),r.issues=[]),r)):(r.value=l.value,l.issues.length&&(r.value=t.catchValue({...r,error:{issues:l.issues.map(u=>Ss(u,s,_s()))},input:r.value}),r.issues=[]),r)}}),_3=ne("$ZodPipe",(e,t)=>{Zt.init(e,t),ft(e._zod,"values",()=>t.in._zod.values),ft(e._zod,"optin",()=>t.in._zod.optin),ft(e._zod,"optout",()=>t.out._zod.optout),ft(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,s)=>{if(s.direction==="backward"){const u=t.out._zod.run(r,s);return u instanceof Promise?u.then(f=>Nu(f,t.in,s)):Nu(u,t.in,s)}const l=t.in._zod.run(r,s);return l instanceof Promise?l.then(u=>Nu(u,t.out,s)):Nu(l,t.out,s)}});function Nu(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}const S3=ne("$ZodReadonly",(e,t)=>{Zt.init(e,t),ft(e._zod,"propValues",()=>t.innerType._zod.propValues),ft(e._zod,"values",()=>t.innerType._zod.values),ft(e._zod,"optin",()=>t.innerType?._zod?.optin),ft(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,s)=>{if(s.direction==="backward")return t.innerType._zod.run(r,s);const l=t.innerType._zod.run(r,s);return l instanceof Promise?l.then(Ob):Ob(l)}});function Ob(e){return e.value=Object.freeze(e.value),e}const w3=ne("$ZodCustom",(e,t)=>{Na.init(e,t),Zt.init(e,t),e._zod.parse=(r,s)=>r,e._zod.check=r=>{const s=r.value,l=t.fn(s);if(l instanceof Promise)return l.then(u=>Ab(u,r,s,e));Ab(l,r,s,e)}});function Ab(e,t,r,s){if(!e){const l={code:"custom",input:r,inst:s,path:[...s._zod.def.path??[]],continue:!s._zod.def.abort};s._zod.def.params&&(l.params=s._zod.def.params),t.issues.push(Gl(l))}}var Db;class x3{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){const s=r[0];if(this._map.set(t,s),s&&typeof s=="object"&&"id"in s){if(this._idmap.has(s.id))throw new Error(`ID ${s.id} already exists in the registry`);this._idmap.set(s.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){const r=t._zod.parent;if(r){const s={...this.get(r)??{}};delete s.id;const l={...s,...this._map.get(t)};return Object.keys(l).length?l:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function E3(){return new x3}(Db=globalThis).__zod_globalRegistry??(Db.__zod_globalRegistry=E3());const Mu=globalThis.__zod_globalRegistry;function T3(e,t){return new e({type:"string",...Me(t)})}function O3(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Me(t)})}function Cb(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Me(t)})}function A3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Me(t)})}function D3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Me(t)})}function C3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Me(t)})}function R3(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Me(t)})}function N3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Me(t)})}function M3(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Me(t)})}function z3(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Me(t)})}function k3(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Me(t)})}function j3(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Me(t)})}function U3(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Me(t)})}function L3(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Me(t)})}function Y3(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Me(t)})}function H3(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Me(t)})}function V3(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Me(t)})}function B3(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Me(t)})}function Z3(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Me(t)})}function F3(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Me(t)})}function $3(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Me(t)})}function q3(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Me(t)})}function G3(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Me(t)})}function X3(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Me(t)})}function I3(e,t){return new e({type:"string",format:"date",check:"string_format",...Me(t)})}function Q3(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Me(t)})}function W3(e,t){return new e({type:"string",format:"duration",check:"string_format",...Me(t)})}function P3(e){return new e({type:"unknown"})}function K3(e,t){return new e({type:"never",...Me(t)})}function nw(e,t){return new wk({check:"max_length",...Me(t),maximum:e})}function sc(e,t){return new xk({check:"min_length",...Me(t),minimum:e})}function aw(e,t){return new Ek({check:"length_equals",...Me(t),length:e})}function J3(e,t){return new Tk({check:"string_format",format:"regex",...Me(t),pattern:e})}function e6(e){return new Ok({check:"string_format",format:"lowercase",...Me(e)})}function t6(e){return new Ak({check:"string_format",format:"uppercase",...Me(e)})}function n6(e,t){return new Dk({check:"string_format",format:"includes",...Me(t),includes:e})}function a6(e,t){return new Ck({check:"string_format",format:"starts_with",...Me(t),prefix:e})}function r6(e,t){return new Rk({check:"string_format",format:"ends_with",...Me(t),suffix:e})}function Li(e){return new Nk({check:"overwrite",tx:e})}function s6(e){return Li(t=>t.normalize(e))}function i6(){return Li(e=>e.trim())}function l6(){return Li(e=>e.toLowerCase())}function o6(){return Li(e=>e.toUpperCase())}function u6(){return Li(e=>Dz(e))}function c6(e,t,r){return new e({type:"array",element:t,...Me(r)})}function f6(e,t,r){return new e({type:"custom",check:"custom",fn:t,...Me(r)})}function d6(e){const t=h6(r=>(r.addIssue=s=>{if(typeof s=="string")r.issues.push(Gl(s,r.value,t._zod.def));else{const l=s;l.fatal&&(l.continue=!1),l.code??(l.code="custom"),l.input??(l.input=r.value),l.inst??(l.inst=t),l.continue??(l.continue=!t._zod.def.abort),r.issues.push(Gl(l))}},e(r.value,r)));return t}function h6(e,t){const r=new Na({check:"custom",...Me(t)});return r._zod.check=e,r}function Rb(e,t){try{var r=e()}catch(s){return t(s)}return r&&r.then?r.then(void 0,t):r}function m6(e,t){for(var r={};e.length;){var s=e[0],l=s.code,u=s.message,f=s.path.join(".");if(!r[f])if("unionErrors"in s){var h=s.unionErrors[0].errors[0];r[f]={message:h.message,type:h.code}}else r[f]={message:u,type:l};if("unionErrors"in s&&s.unionErrors.forEach(function(v){return v.errors.forEach(function(y){return e.push(y)})}),t){var p=r[f].types,m=p&&p[s.code];r[f]=$m(f,t,r,l,m?[].concat(m,s.message):s.message)}e.shift()}return r}function p6(e,t){for(var r={};e.length;){var s=e[0],l=s.code,u=s.message,f=s.path.join(".");if(!r[f])if(s.code==="invalid_union"&&s.errors.length>0){var h=s.errors[0][0];r[f]={message:h.message,type:h.code}}else r[f]={message:u,type:l};if(s.code==="invalid_union"&&s.errors.forEach(function(v){return v.forEach(function(y){return e.push(y)})}),t){var p=r[f].types,m=p&&p[s.code];r[f]=$m(f,t,r,l,m?[].concat(m,s.message):s.message)}e.shift()}return r}function g6(e,t,r){if(r===void 0&&(r={}),(function(s){return"_def"in s&&typeof s._def=="object"&&"typeName"in s._def})(e))return function(s,l,u){try{return Promise.resolve(Rb(function(){return Promise.resolve(e[r.mode==="sync"?"parse":"parseAsync"](s,t)).then(function(f){return u.shouldUseNativeValidation&&Gh({},u),{errors:{},values:r.raw?Object.assign({},s):f}})},function(f){if((function(h){return Array.isArray(h?.issues)})(f))return{values:{},errors:pb(m6(f.errors,!u.shouldUseNativeValidation&&u.criteriaMode==="all"),u)};throw f}))}catch(f){return Promise.reject(f)}};if((function(s){return"_zod"in s&&typeof s._zod=="object"})(e))return function(s,l,u){try{return Promise.resolve(Rb(function(){return Promise.resolve((r.mode==="sync"?Bz:Zz)(e,s,t)).then(function(f){return u.shouldUseNativeValidation&&Gh({},u),{errors:{},values:r.raw?Object.assign({},s):f}})},function(f){if((function(h){return h instanceof Pm})(f))return{values:{},errors:pb(p6(f.issues,!u.shouldUseNativeValidation&&u.criteriaMode==="all"),u)};throw f}))}catch(f){return Promise.reject(f)}};throw new Error("Invalid input: not a Zod schema")}const y6=ne("ZodISODateTime",(e,t)=>{qk.init(e,t),St.init(e,t)});function v6(e){return X3(y6,e)}const b6=ne("ZodISODate",(e,t)=>{Gk.init(e,t),St.init(e,t)});function _6(e){return I3(b6,e)}const S6=ne("ZodISOTime",(e,t)=>{Xk.init(e,t),St.init(e,t)});function w6(e){return Q3(S6,e)}const x6=ne("ZodISODuration",(e,t)=>{Ik.init(e,t),St.init(e,t)});function E6(e){return W3(x6,e)}const T6=(e,t)=>{Pm.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Vz(e,r)},flatten:{value:r=>Hz(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Xh,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Xh,2)}},isEmpty:{get(){return e.issues.length===0}}})},ta=ne("ZodError",T6,{Parent:Error}),O6=Rc(ta),A6=Nc(ta),D6=Mc(ta),C6=zc(ta),R6=qz(ta),N6=Gz(ta),M6=Xz(ta),z6=Iz(ta),k6=Qz(ta),j6=Wz(ta),U6=Pz(ta),L6=Kz(ta),It=ne("ZodType",(e,t)=>(Zt.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(Es(t,{checks:[...t.checks??[],...r.map(s=>typeof s=="function"?{_zod:{check:s,def:{check:"custom"},onattach:[]}}:s)]})),e.clone=(r,s)=>$r(e,r,s),e.brand=()=>e,e.register=((r,s)=>(r.add(e,s),e)),e.parse=(r,s)=>O6(e,r,s,{callee:e.parse}),e.safeParse=(r,s)=>D6(e,r,s),e.parseAsync=async(r,s)=>A6(e,r,s,{callee:e.parseAsync}),e.safeParseAsync=async(r,s)=>C6(e,r,s),e.spa=e.safeParseAsync,e.encode=(r,s)=>R6(e,r,s),e.decode=(r,s)=>N6(e,r,s),e.encodeAsync=async(r,s)=>M6(e,r,s),e.decodeAsync=async(r,s)=>z6(e,r,s),e.safeEncode=(r,s)=>k6(e,r,s),e.safeDecode=(r,s)=>j6(e,r,s),e.safeEncodeAsync=async(r,s)=>U6(e,r,s),e.safeDecodeAsync=async(r,s)=>L6(e,r,s),e.refine=(r,s)=>e.check(D5(r,s)),e.superRefine=r=>e.check(C5(r)),e.overwrite=r=>e.check(Li(r)),e.optional=()=>zb(e),e.nullable=()=>kb(e),e.nullish=()=>zb(kb(e)),e.nonoptional=r=>S5(e,r),e.array=()=>i5(e),e.or=r=>c5([e,r]),e.and=r=>d5(e,r),e.transform=r=>jb(e,p5(r)),e.default=r=>v5(e,r),e.prefault=r=>_5(e,r),e.catch=r=>x5(e,r),e.pipe=r=>jb(e,r),e.readonly=()=>O5(e),e.describe=r=>{const s=e.clone();return Mu.add(s,{description:r}),s},Object.defineProperty(e,"description",{get(){return Mu.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return Mu.get(e);const s=e.clone();return Mu.add(s,r[0]),s},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),rw=ne("_ZodString",(e,t)=>{Km.init(e,t),It.init(e,t);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...s)=>e.check(J3(...s)),e.includes=(...s)=>e.check(n6(...s)),e.startsWith=(...s)=>e.check(a6(...s)),e.endsWith=(...s)=>e.check(r6(...s)),e.min=(...s)=>e.check(sc(...s)),e.max=(...s)=>e.check(nw(...s)),e.length=(...s)=>e.check(aw(...s)),e.nonempty=(...s)=>e.check(sc(1,...s)),e.lowercase=s=>e.check(e6(s)),e.uppercase=s=>e.check(t6(s)),e.trim=()=>e.check(i6()),e.normalize=(...s)=>e.check(s6(...s)),e.toLowerCase=()=>e.check(l6()),e.toUpperCase=()=>e.check(o6()),e.slugify=()=>e.check(u6())}),Y6=ne("ZodString",(e,t)=>{Km.init(e,t),rw.init(e,t),e.email=r=>e.check(O3(H6,r)),e.url=r=>e.check(N3(V6,r)),e.jwt=r=>e.check(G3(t5,r)),e.emoji=r=>e.check(M3(B6,r)),e.guid=r=>e.check(Cb(Nb,r)),e.uuid=r=>e.check(A3(zu,r)),e.uuidv4=r=>e.check(D3(zu,r)),e.uuidv6=r=>e.check(C3(zu,r)),e.uuidv7=r=>e.check(R3(zu,r)),e.nanoid=r=>e.check(z3(Z6,r)),e.guid=r=>e.check(Cb(Nb,r)),e.cuid=r=>e.check(k3(F6,r)),e.cuid2=r=>e.check(j3($6,r)),e.ulid=r=>e.check(U3(q6,r)),e.base64=r=>e.check(F3(K6,r)),e.base64url=r=>e.check($3(J6,r)),e.xid=r=>e.check(L3(G6,r)),e.ksuid=r=>e.check(Y3(X6,r)),e.ipv4=r=>e.check(H3(I6,r)),e.ipv6=r=>e.check(V3(Q6,r)),e.cidrv4=r=>e.check(B3(W6,r)),e.cidrv6=r=>e.check(Z3(P6,r)),e.e164=r=>e.check(q3(e5,r)),e.datetime=r=>e.check(v6(r)),e.date=r=>e.check(_6(r)),e.time=r=>e.check(w6(r)),e.duration=r=>e.check(E6(r))});function _h(e){return T3(Y6,e)}const St=ne("ZodStringFormat",(e,t)=>{bt.init(e,t),rw.init(e,t)}),H6=ne("ZodEmail",(e,t)=>{Uk.init(e,t),St.init(e,t)}),Nb=ne("ZodGUID",(e,t)=>{kk.init(e,t),St.init(e,t)}),zu=ne("ZodUUID",(e,t)=>{jk.init(e,t),St.init(e,t)}),V6=ne("ZodURL",(e,t)=>{Lk.init(e,t),St.init(e,t)}),B6=ne("ZodEmoji",(e,t)=>{Yk.init(e,t),St.init(e,t)}),Z6=ne("ZodNanoID",(e,t)=>{Hk.init(e,t),St.init(e,t)}),F6=ne("ZodCUID",(e,t)=>{Vk.init(e,t),St.init(e,t)}),$6=ne("ZodCUID2",(e,t)=>{Bk.init(e,t),St.init(e,t)}),q6=ne("ZodULID",(e,t)=>{Zk.init(e,t),St.init(e,t)}),G6=ne("ZodXID",(e,t)=>{Fk.init(e,t),St.init(e,t)}),X6=ne("ZodKSUID",(e,t)=>{$k.init(e,t),St.init(e,t)}),I6=ne("ZodIPv4",(e,t)=>{Qk.init(e,t),St.init(e,t)}),Q6=ne("ZodIPv6",(e,t)=>{Wk.init(e,t),St.init(e,t)}),W6=ne("ZodCIDRv4",(e,t)=>{Pk.init(e,t),St.init(e,t)}),P6=ne("ZodCIDRv6",(e,t)=>{Kk.init(e,t),St.init(e,t)}),K6=ne("ZodBase64",(e,t)=>{Jk.init(e,t),St.init(e,t)}),J6=ne("ZodBase64URL",(e,t)=>{t3.init(e,t),St.init(e,t)}),e5=ne("ZodE164",(e,t)=>{n3.init(e,t),St.init(e,t)}),t5=ne("ZodJWT",(e,t)=>{r3.init(e,t),St.init(e,t)}),n5=ne("ZodUnknown",(e,t)=>{s3.init(e,t),It.init(e,t)});function Mb(){return P3(n5)}const a5=ne("ZodNever",(e,t)=>{i3.init(e,t),It.init(e,t)});function r5(e){return K3(a5,e)}const s5=ne("ZodArray",(e,t)=>{l3.init(e,t),It.init(e,t),e.element=t.element,e.min=(r,s)=>e.check(sc(r,s)),e.nonempty=r=>e.check(sc(1,r)),e.max=(r,s)=>e.check(nw(r,s)),e.length=(r,s)=>e.check(aw(r,s)),e.unwrap=()=>e.element});function i5(e,t){return c6(s5,e,t)}const l5=ne("ZodObject",(e,t)=>{u3.init(e,t),It.init(e,t),ft(e,"shape",()=>t.shape),e.keyof=()=>h5(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Mb()}),e.loose=()=>e.clone({...e._zod.def,catchall:Mb()}),e.strict=()=>e.clone({...e._zod.def,catchall:r5()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>kz(e,r),e.safeExtend=r=>jz(e,r),e.merge=r=>Uz(e,r),e.pick=r=>Mz(e,r),e.omit=r=>zz(e,r),e.partial=(...r)=>Lz(sw,e,r[0]),e.required=(...r)=>Yz(iw,e,r[0])});function o5(e,t){const r={type:"object",shape:e??{},...Me(t)};return new l5(r)}const u5=ne("ZodUnion",(e,t)=>{c3.init(e,t),It.init(e,t),e.options=t.options});function c5(e,t){return new u5({type:"union",options:e,...Me(t)})}const f5=ne("ZodIntersection",(e,t)=>{f3.init(e,t),It.init(e,t)});function d5(e,t){return new f5({type:"intersection",left:e,right:t})}const Qh=ne("ZodEnum",(e,t)=>{d3.init(e,t),It.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(s,l)=>{const u={};for(const f of s)if(r.has(f))u[f]=t.entries[f];else throw new Error(`Key ${f} not found in enum`);return new Qh({...t,checks:[],...Me(l),entries:u})},e.exclude=(s,l)=>{const u={...t.entries};for(const f of s)if(r.has(f))delete u[f];else throw new Error(`Key ${f} not found in enum`);return new Qh({...t,checks:[],...Me(l),entries:u})}});function h5(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new Qh({type:"enum",entries:r,...Me(t)})}const m5=ne("ZodTransform",(e,t)=>{h3.init(e,t),It.init(e,t),e._zod.parse=(r,s)=>{if(s.direction==="backward")throw new $S(e.constructor.name);r.addIssue=u=>{if(typeof u=="string")r.issues.push(Gl(u,r.value,t));else{const f=u;f.fatal&&(f.continue=!1),f.code??(f.code="custom"),f.input??(f.input=r.value),f.inst??(f.inst=e),r.issues.push(Gl(f))}};const l=t.transform(r.value,r);return l instanceof Promise?l.then(u=>(r.value=u,r)):(r.value=l,r)}});function p5(e){return new m5({type:"transform",transform:e})}const sw=ne("ZodOptional",(e,t)=>{m3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function zb(e){return new sw({type:"optional",innerType:e})}const g5=ne("ZodNullable",(e,t)=>{p3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function kb(e){return new g5({type:"nullable",innerType:e})}const y5=ne("ZodDefault",(e,t)=>{g3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function v5(e,t){return new y5({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():XS(t)}})}const b5=ne("ZodPrefault",(e,t)=>{y3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _5(e,t){return new b5({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():XS(t)}})}const iw=ne("ZodNonOptional",(e,t)=>{v3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function S5(e,t){return new iw({type:"nonoptional",innerType:e,...Me(t)})}const w5=ne("ZodCatch",(e,t)=>{b3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function x5(e,t){return new w5({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const E5=ne("ZodPipe",(e,t)=>{_3.init(e,t),It.init(e,t),e.in=t.in,e.out=t.out});function jb(e,t){return new E5({type:"pipe",in:e,out:t})}const T5=ne("ZodReadonly",(e,t)=>{S3.init(e,t),It.init(e,t),e.unwrap=()=>e._zod.def.innerType});function O5(e){return new T5({type:"readonly",innerType:e})}const A5=ne("ZodCustom",(e,t)=>{w3.init(e,t),It.init(e,t)});function D5(e,t={}){return f6(A5,e,t)}function C5(e){return d6(e)}var R5=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],N5=R5.reduce((e,t)=>{const r=Rm(`Primitive.${t}`),s=w.forwardRef((l,u)=>{const{asChild:f,...h}=l,p=f?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),S.jsx(p,{...h,ref:u})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),M5="Label",lw=w.forwardRef((e,t)=>S.jsx(N5.label,{...e,ref:t,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(e.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));lw.displayName=M5;var z5=lw;function k5(e){const t=Xe.c(8);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);let l;t[3]!==r?(l=ot("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",r),t[3]=r,t[4]=l):l=t[4];let u;return t[5]!==s||t[6]!==l?(u=S.jsx(z5,{"data-slot":"label",className:l,...s}),t[5]=s,t[6]=l,t[7]=u):u=t[7],u}const j5=lz,ow=w.createContext({}),Sh=e=>{const t=Xe.c(9);let r;t[0]!==e?({...r}=e,t[0]=e,t[1]=r):r=t[1];let s;t[2]!==r.name?(s={name:r.name},t[2]=r.name,t[3]=s):s=t[3];let l;t[4]!==r?(l=S.jsx(cz,{...r}),t[4]=r,t[5]=l):l=t[5];let u;return t[6]!==s||t[7]!==l?(u=S.jsx(ow.Provider,{value:s,children:l}),t[6]=s,t[7]=l,t[8]=u):u=t[8],u},Jm=()=>{const e=Xe.c(13),t=w.useContext(ow),r=w.useContext(uw),{getFieldState:s}=Ac();let l;e[0]!==t.name?(l={name:t.name},e[0]=t.name,e[1]=l):l=e[1];const u=LS(l);let f;e[2]!==t.name||e[3]!==u||e[4]!==s?(f=s(t.name,u),e[2]=t.name,e[3]=u,e[4]=s,e[5]=f):f=e[5];const h=f;if(!t)throw new Error("useFormField should be used within ");const{id:p}=r,m=`${p}-form-item`,v=`${p}-form-item-description`,y=`${p}-form-item-message`;let _;return e[6]!==t.name||e[7]!==h||e[8]!==p||e[9]!==m||e[10]!==v||e[11]!==y?(_={id:p,name:t.name,formItemId:m,formDescriptionId:v,formMessageId:y,...h},e[6]=t.name,e[7]=h,e[8]=p,e[9]=m,e[10]=v,e[11]=y,e[12]=_):_=e[12],_},uw=w.createContext({});function wh(e){const t=Xe.c(13);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);const l=w.useId();let u;t[3]!==l?(u={id:l},t[3]=l,t[4]=u):u=t[4];let f;t[5]!==r?(f=ot("grid gap-2",r),t[5]=r,t[6]=f):f=t[6];let h;t[7]!==s||t[8]!==f?(h=S.jsx("div",{"data-slot":"form-item",className:f,...s}),t[7]=s,t[8]=f,t[9]=h):h=t[9];let p;return t[10]!==u||t[11]!==h?(p=S.jsx(uw.Provider,{value:u,children:h}),t[10]=u,t[11]=h,t[12]=p):p=t[12],p}function ku(e){const t=Xe.c(10);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);const{error:l,formItemId:u}=Jm(),f=!!l;let h;t[3]!==r?(h=ot("data-[error=true]:text-destructive",r),t[3]=r,t[4]=h):h=t[4];let p;return t[5]!==u||t[6]!==s||t[7]!==f||t[8]!==h?(p=S.jsx(k5,{"data-slot":"form-label","data-error":f,className:h,htmlFor:u,...s}),t[5]=u,t[6]=s,t[7]=f,t[8]=h,t[9]=p):p=t[9],p}function xh(e){const t=Xe.c(7);let r;t[0]!==e?({...r}=e,t[0]=e,t[1]=r):r=t[1];const{error:s,formItemId:l,formDescriptionId:u,formMessageId:f}=Jm(),h=s?`${u} ${f}`:`${u}`,p=!!s;let m;return t[2]!==l||t[3]!==r||t[4]!==h||t[5]!==p?(m=S.jsx(Nm,{"data-slot":"form-control",id:l,"aria-describedby":h,"aria-invalid":p,...r}),t[2]=l,t[3]=r,t[4]=h,t[5]=p,t[6]=m):m=t[6],m}function Eh(e){const t=Xe.c(10);let r,s;t[0]!==e?({className:r,...s}=e,t[0]=e,t[1]=r,t[2]=s):(r=t[1],s=t[2]);const{error:l,formMessageId:u}=Jm(),f=l?String(l?.message??""):s.children;if(!f)return null;let h;t[3]!==r?(h=ot("text-destructive text-sm",r),t[3]=r,t[4]=h):h=t[4];let p;return t[5]!==f||t[6]!==u||t[7]!==s||t[8]!==h?(p=S.jsx("p",{"data-slot":"form-message",id:u,className:h,...s,children:f}),t[5]=f,t[6]=u,t[7]=s,t[8]=h,t[9]=p):p=t[9],p}function Th(e){const t=Xe.c(10);let r,s,l;t[0]!==e?({className:r,type:l,...s}=e,t[0]=e,t[1]=r,t[2]=s,t[3]=l):(r=t[1],s=t[2],l=t[3]);let u;t[4]!==r?(u=ot("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",r),t[4]=r,t[5]=u):u=t[5];let f;return t[6]!==s||t[7]!==u||t[8]!==l?(f=S.jsx("input",{type:l,"data-slot":"input",className:u,...s}),t[6]=s,t[7]=u,t[8]=l,t[9]=f):f=t[9],f}const U5=o5({name:_h().min(1,"Tên là bắt buộc"),email:_h().email("Email không hợp lệ"),avatar:_h().optional()});function L5({user:e,onSave:t,children:r,trackingOpen:s}){const l=tN(),u=!!e,[f,h]=w.useState(!1),[p,m]=w.useState(!1),{captureRegisterImage:v,setCaptureRegisterImage:y}=Fr(),_=Tz({resolver:g6(U5),defaultValues:{name:"",email:"",avatar:""}});w.useEffect(()=>{e?_.reset({name:e.name,email:e.email,avatar:e.avatar??""}):_.reset({name:"",email:"",avatar:""})},[e,f,_]);const N=async()=>{await l({title:"Thông báo",message:"Bạn muốn hủy đăng ký. Mọi dữ liệu bạn nhập sẽ bị mất",confirmText:"Discard",cancelText:"Hủy",variant:"warning"})&&(h(!1),y(null))},E=async x=>{try{m(!0);const O={id:e?.id||Date.now().toString(),...x,avatar:x.avatar||null},{data:z}=await $l.register({user:O,file:v});console.log({data:z}),t?.(O),h(!1),y(null),tr.success(z?.message||"Đăng ký thành công !")}catch(O){console.log({error:O}),tr.error(O?.message||"Internal Server Error")}finally{m(!1)}};return w.useEffect(()=>{s!==void 0&&h(s)},[s]),w.useEffect(()=>{if(v)return()=>{URL.revokeObjectURL(v)}},[v]),S.jsxs(Tm,{open:f,onOpenChange:x=>{if(!x){N();return}h(!0)},children:[S.jsx(C_,{children:r}),S.jsxs(Om,{className:"sm:max-w-[425px]",children:[S.jsxs(Am,{children:[S.jsx(Dm,{children:u?"Cập nhật thông tin":"Tạo người dùng mới"}),S.jsx(Cm,{children:u?"Cập nhật thông tin người dùng của bạn":"Nhập thông tin để tạo người dùng mới"})]}),S.jsx(j5,{..._,children:S.jsxs("form",{onSubmit:_.handleSubmit(E),className:"space-y-4",children:[S.jsx(Sh,{control:_.control,name:"name",render:({field:x})=>S.jsxs(wh,{children:[S.jsxs(ku,{children:["Tên ",S.jsx("span",{className:"text-red-600",children:"*"})]}),S.jsx(xh,{children:S.jsx(Th,{placeholder:"Nhập tên người dùng",...x})}),S.jsx(Eh,{})]})}),S.jsx(Sh,{control:_.control,name:"email",render:({field:x})=>S.jsxs(wh,{children:[S.jsxs(ku,{children:["Email ",S.jsx("span",{className:"text-red-600",children:"*"})]}),S.jsx(xh,{children:S.jsx(Th,{type:"email",placeholder:"Nhập email",...x})}),S.jsx(Eh,{})]})}),S.jsx(Sh,{control:_.control,name:"avatar",render:({field:x})=>S.jsxs(wh,{children:[S.jsx(ku,{children:"Avatar URL"}),S.jsx(xh,{children:S.jsx(Th,{placeholder:"https://example.com/avatar.jpg",...x})}),S.jsx(Eh,{})]})}),S.jsx(ku,{children:"Ảnh từ camera"}),S.jsx("a",{target:"_blank",href:URL.createObjectURL(v),children:S.jsxs(An,{size:"sm",variant:"outline",className:"w-full bg-transparent",type:"button",children:[S.jsx(tm,{className:"w-4 h-4 mr-2"}),"Xem ảnh"]})}),S.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[S.jsx(An,{type:"button",variant:"outline",onClick:N,children:"Hủy"}),S.jsxs(An,{type:"submit",children:[!p&&u?"Cập nhật":"Tạo mới",p&&S.jsx(Lu,{className:"animate-spin"})]})]})]})})]})]})}function Y5(){const e=Xe.c(9),{isAutoChecking:t,captureRegisterImage:r,isCountDown:s}=Fr();let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=S.jsx(PT,{className:"mr-2 size-4"}),e[0]=l):l=e[0];let u;e[1]!==t?(u=S.jsx(rz,{children:S.jsxs(An,{onClick:H5,disabled:t,className:"w-full bg-green-600 hover:bg-green-700 text-white font-semibold",children:[l,"Tạo User Checking"]})}),e[1]=t,e[2]=u):u=e[2];let f;e[3]!==r||e[4]!==s?(f=r&&!s&&S.jsx(L5,{trackingOpen:!0}),e[3]=r,e[4]=s,e[5]=f):f=e[5];let h;return e[6]!==u||e[7]!==f?(h=S.jsxs(S.Fragment,{children:[u,f]}),e[6]=u,e[7]=f,e[8]=h):h=e[8],h}function H5(){}function Ub(e){if(!e)return;const t=new SpeechSynthesisUtterance(e);t.lang="en-US",t.rate=1,t.pitch=1,t.volume=1,speechSynthesis.speak(t)}function V5(){const e=w.useRef(null),{canvasRef:t,videoRef:r}=Fr(),{currentUser:s,setCurrentUser:l}=MS(),{isAutoChecking:u,setIsAutoChecking:f,setRefreshLog:h}=Fr(),p=w.useRef(null),[m,v]=w.useState(!1),[y,_]=w.useState(!1),N=()=>{u?(p.current&&(clearInterval(p.current),p.current=null),f(!1)):(p.current=setInterval(()=>{x()},3e3),f(!0))},E=async()=>{if(!s){tr.warning("Vui lòng chọn user để tạo checkpoint");return}try{_(!0);const O=await Uh(r,t),{data:z}=await $l.register({user:s,file:O});if(!z){tr.error(z?.message||"Error In Checkpoint: "+JSON.stringify(z));return}tr.success(z?.message||"Tạo checkpoint thành công")}catch(O){const z=O;tr.error(z.response?.data?.message||"Error In Checkpoint: "+JSON.stringify(z))}finally{_(!1)}},x=w.useCallback(async()=>{try{v(!0);const O=await Uh(r,t),{data:z}=await $l.checkin({file:O});if(console.log({data:z}),!z||!z?.status){tr.error(z?.message||"Error In Checking: "+JSON.stringify(z));return}const $=z?.message||`${(z?.status_type).toUpperCase()} thành công lúc: ${D_(new Date().toLocaleString())}`;switch(tr.success($),z?.status_type){case"check in":{const V=`Hello ${R0(z?.data?.email)}.`;Ub(V);break}case"check out":{const V=`Bye ${R0(z?.data?.email)}.`;Ub(V);break}}h(!0)}catch(O){const z=O,$=z.response?.data?.message||"Error In Checking: "+JSON.stringify(z);if($.includes("No face detected"))return;tr.error($)}finally{v(!1)}},[t,l,r]);return w.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]),w.useEffect(()=>{const O=z=>{if(z.code==="Space"){if(z.preventDefault(),m)return;x()}};return window.addEventListener("keydown",O),()=>{window.removeEventListener("keydown",O)}},[x,m]),S.jsxs("div",{className:"absolute bottom-10 px-4 right-0 left-0 grid grid-cols-3 gap-4",children:[S.jsxs(An,{onClick:x,disabled:u,className:"w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold",children:[!m&&S.jsxs(S.Fragment,{children:[S.jsx(tm,{className:"mr-2 size-4"}),"Điểm Danh Ngay"]}),m&&S.jsx(Lu,{className:"size-4 animate-spin"})]}),S.jsxs(An,{onClick:N,variant:u?"destructive":"outline",className:ot("w-full font-semibold",u&&"animate-pulse"),children:[!m&&u?S.jsxs(S.Fragment,{children:[S.jsx(IT,{className:"mr-2 size-4"}),"Dừng Tự Động"]}):S.jsxs(S.Fragment,{children:[S.jsx(GT,{className:"mr-2 size-4"}),"Tự Động Điểm Danh"]}),m&&S.jsx(Lu,{className:"size-4 animate-spin"})]}),s&&S.jsxs(An,{disabled:u,onClick:E,className:ot("w-full font-semibold"),children:[!y&&S.jsxs(S.Fragment,{children:[S.jsx(YT,{}),"Tạo Check Point"]}),y&&S.jsx(Lu,{className:"size-4 animate-spin"})]}),!s&&S.jsx(Y5,{})]})}function B5(){const[e,t]=w.useState(!0),[r,s]=w.useState(!1),{setCanvasRef:l,setVideoRef:u}=Fr(),{isCountDown:f,setCaptureRegisterImage:h,setIsCountDown:p}=Fr(),m=w.useRef(null),v=w.useRef(null);return w.useEffect(()=>((async()=>{try{const _=await navigator.mediaDevices.getUserMedia({video:{width:1280,height:720,facingMode:"user"}});m.current&&(m.current.srcObject=_)}catch(_){console.error("Không thể truy cập camera:",_)}})(),()=>{m.current?.srcObject&&(m.current?.srcObject).getTracks().forEach(N=>N.stop())}),[]),w.useEffect(()=>{l(v),u(m)},[m,v]),S.jsx("div",{className:"min-h-screen bg-white",children:S.jsxs("div",{className:"flex h-screen",children:[S.jsx(O4,{isSidebarOpen:r}),S.jsx("div",{className:ot("flex-1 transition-all duration-300 ease-in-out",r&&"ml-96",e&&"mr-96"),children:S.jsx("div",{className:"h-full flex flex-col p-6",children:S.jsxs(z_,{className:"flex-1 overflow-hidden bg-black relative group",children:[S.jsx("video",{ref:m,autoPlay:!0,playsInline:!0,className:"w-full h-full object-cover"}),S.jsx("div",{className:"absolute inset-0 border-4 border-blue-500/30 pointer-events-none"}),f&&S.jsx(sN,{onCountdowned:async()=>{const y=await Uh(m,v);h(y),p(!1)}}),S.jsx(An,{onClick:()=>s(!r),variant:"outline",size:"icon",className:"absolute top-1/2 -translate-y-1/2 left-4 bg-white/90 hover:bg-white shadow-lg",children:r?S.jsx(y0,{className:"size-4"}):S.jsx(v0,{className:"size-4"})}),S.jsx(An,{onClick:()=>t(!e),variant:"outline",size:"icon",className:"absolute top-1/2 -translate-y-1/2 right-4 bg-white/90 hover:bg-white shadow-lg",children:e?S.jsx(v0,{className:"size-4"}):S.jsx(y0,{className:"size-4"})}),S.jsx(V5,{})]})})}),S.jsx(R4,{isSidebarOpen:e}),S.jsx("canvas",{ref:v,className:"hidden"})]})})}var Z5=(e,t,r,s,l,u,f,h)=>{let p=document.documentElement,m=["light","dark"];function v(N){(Array.isArray(e)?e:[e]).forEach(E=>{let x=E==="class",O=x&&u?l.map(z=>u[z]||z):l;x?(p.classList.remove(...O),p.classList.add(u&&u[N]?u[N]:N)):p.setAttribute(E,N)}),y(N)}function y(N){h&&m.includes(N)&&(p.style.colorScheme=N)}function _(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(s)v(s);else try{let N=localStorage.getItem(t)||r,E=f&&N==="system"?_():N;v(E)}catch{}},F5=w.createContext(void 0),$5={setTheme:e=>{},themes:[]},q5=()=>{var e;return(e=w.useContext(F5))!=null?e:$5};w.memo(({forcedTheme:e,storageKey:t,attribute:r,enableSystem:s,enableColorScheme:l,defaultTheme:u,value:f,themes:h,nonce:p,scriptProps:m})=>{let v=JSON.stringify([r,t,u,e,h,f,s,l]).slice(1,-1);return w.createElement("script",{...m,suppressHydrationWarning:!0,nonce:typeof window>"u"?p:"",dangerouslySetInnerHTML:{__html:`(${Z5.toString()})(${v})`}})});const G5=e=>{const t=Xe.c(7);let r;t[0]!==e?({...r}=e,t[0]=e,t[1]=r):r=t[1];const{theme:s}=q5(),u=s===void 0?"system":s;let f,h;t[2]===Symbol.for("react.memo_cache_sentinel")?(f={success:S.jsx(jT,{className:"size-4"}),info:S.jsx(_1,{className:"size-4"}),warning:S.jsx(S1,{className:"size-4"}),error:S.jsx($T,{className:"size-4"}),loading:S.jsx(BT,{className:"size-4 animate-spin"})},h={"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},t[2]=f,t[3]=h):(f=t[2],h=t[3]);let p;return t[4]!==r||t[5]!==u?(p=S.jsx(az,{theme:u,className:"toaster group",icons:f,style:h,...r}),t[4]=r,t[5]=u,t[6]=p):p=t[6],p};N2.createRoot(document.getElementById("root")).render(S.jsx(w.StrictMode,{children:S.jsxs(eN,{children:[S.jsx(B5,{}),S.jsx(G5,{richColors:!0,position:"top-right"})]})}))});export default X5(); diff --git a/TrackingToolWeb/static/index.html b/TrackingToolWeb/static/index.html index 3c4c6f1..c908fa6 100644 --- a/TrackingToolWeb/static/index.html +++ b/TrackingToolWeb/static/index.html @@ -8,7 +8,7 @@