@richard.fadiora/liveness-detection 4.2.4 → 4.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(v,_){typeof exports=="object"&&typeof module<"u"?_(exports,require("@mediapipe/tasks-vision"),require("react"),require("react-webcam")):typeof define=="function"&&define.amd?define(["exports","@mediapipe/tasks-vision","react","react-webcam"],_):(v=typeof globalThis<"u"?globalThis:v||self,_(v.LivenessSDK={},v.mediapipe,v.React,v.ReactWebcam))})(this,function(v,_,T,z){"use strict";const I=async(p,t,c)=>{const i=new FormData;t.forEach((n,a)=>{i.append("files",n,`frame_${a}.jpg`)}),i.append("challenge",JSON.stringify(c));const r=await fetch(`${p}/v1/verify`,{method:"POST",body:i});if(!r.ok)throw new Error("Network response was not ok");return await r.json()},B=Object.freeze(Object.defineProperty({__proto__:null,verifyLiveness:I},Symbol.toStringTag,{value:"Module"}));class N{constructor(t){this.models={face:null,hand:null},this.webcam=null,this.currentStepRef=0,this.isStepTransitioningRef=!1,this.timerId=null,this.requestId=null,this.offscreenCanvas=document.createElement("canvas"),this.CHALLENGE_POOL=["Smile","Blink","Turn_Head","Thumbs_Up"],this.attachVideo=c=>{this.webcam=c,console.log("[LivenessEngine] Video stream attached.")},this.start=()=>{if(this.state.status!=="ready"||!this.webcam){console.warn("[LivenessEngine] Engine not ready or video missing.");return}console.log("[LivenessEngine] Session Starting..."),this.state.status="capturing",this.updateState({status:"capturing"}),this.startTimer(),this.detectLoop()},this.stop=()=>{this.timerId&&clearInterval(this.timerId),this.requestId&&cancelAnimationFrame(this.requestId),this.timerId=null,this.requestId=null},this.reset=()=>{this.stop(),this.currentStepRef=0,this.isStepTransitioningRef=!1,this.generateSequence(),this.updateState({status:"ready",currentStep:0,timeLeft:this.config.duration,isStepTransitioning:!1,errorMsg:""})},this.detectLoop=()=>{var i;if(this.state.status!=="capturing"||!this.webcam||!this.models.face)return;const c=performance.now();try{const r=this.models.face.detectForVideo(this.webcam,c),l=(i=this.models.hand)==null?void 0:i.detectForVideo(this.webcam,c),n=this.state.sequence[this.currentStepRef];if(this.checkAction(r,l,n)){this.handleStepSuccess();return}}catch(r){console.error("[LivenessEngine] Loop detection error:",r)}this.requestId=requestAnimationFrame(this.detectLoop)},this.config={apiUrl:t.apiUrl,duration:t.duration??60,smileThreshold:t.smileThreshold??.2,blinkThreshold:t.blinkThreshold??.012,minturnHeadThreshold:t.minturnHeadThreshold??.15,maxturnHeadThreshold:t.maxturnHeadThreshold??.85,onStateChange:t.onStateChange||(()=>{}),onComplete:t.onComplete||(()=>{}),onError:t.onError||(()=>{})},this.state={status:"loading",sequence:[],currentStep:0,timeLeft:this.config.duration,isStepTransitioning:!1,errorMsg:""},this.offscreenCanvas.width=224,this.offscreenCanvas.height=224}async loadModels(){console.log("[LivenessEngine] Loading AI Models...");try{const t=await _.FilesetResolver.forVisionTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.3/wasm");this.models.face=await _.FaceLandmarker.createFromOptions(t,{baseOptions:{modelAssetPath:"https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task",delegate:"GPU"},outputFaceBlendshapes:!0,runningMode:"VIDEO"}),this.models.hand=await _.HandLandmarker.createFromOptions(t,{baseOptions:{modelAssetPath:"https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task",delegate:"GPU"},runningMode:"VIDEO",numHands:1}),this.generateSequence(),this.updateState({status:"ready"}),console.log("[LivenessEngine] Models Loaded.")}catch(t){console.error("[LivenessEngine] Init Error:",t),this.updateState({status:"error",errorMsg:"Failed to load security assets."})}}updateState(t){this.state={...this.state,...t},this.config.onStateChange(this.state)}generateSequence(){const t=[...this.CHALLENGE_POOL].sort(()=>.5-Math.random()).slice(0,3);return this.state.sequence=t,t}startTimer(){this.timerId&&clearInterval(this.timerId),this.timerId=setInterval(()=>{this.state.timeLeft>0?this.updateState({timeLeft:this.state.timeLeft-1}):(this.stop(),this.updateState({status:"expired"}))},1e3)}handleStepSuccess(){this.isStepTransitioningRef||(this.isStepTransitioningRef=!0,this.updateState({isStepTransitioning:!0}),setTimeout(()=>{this.currentStepRef<this.state.sequence.length-1?(this.currentStepRef++,this.isStepTransitioningRef=!1,this.updateState({currentStep:this.currentStepRef,isStepTransitioning:!1}),this.requestId=requestAnimationFrame(this.detectLoop)):this.sendFinalProof()},1500))}checkAction(t,c,i){var r,l;if(this.isStepTransitioningRef)return!1;if(i==="Thumbs_Up"&&((r=c==null?void 0:c.landmarks)==null?void 0:r.length)>0){const n=c.landmarks[0];return n[4].y<n[2].y&&[8,12,16,20].every(a=>n[a].y>n[a-2].y)}if(((l=t==null?void 0:t.faceLandmarks)==null?void 0:l.length)>0){const n=t.faceLandmarks[0];switch(i){case"Smile":return n[291].x-n[61].x>this.config.smileThreshold;case"Blink":const a=Math.abs(n[159].y-n[145].y),h=Math.abs(n[386].y-n[374].y);return(a+h)/2<this.config.blinkThreshold;case"Turn_Head":const m=(n[1].x-n[33].x)/(n[263].x-n[33].x);return m<this.config.minturnHeadThreshold||m>this.config.maxturnHeadThreshold;default:return!1}}return!1}async sendFinalProof(){var t,c;this.stop(),this.updateState({status:"verifying"});try{const i=[];let r="";for(let a=0;a<5&&this.webcam;a++){const h=(t=this.models.face)==null?void 0:t.detectForVideo(this.webcam,performance.now());if((c=h==null?void 0:h.faceLandmarks)!=null&&c[0]){const m=this.getFaceCrop(this.webcam,h.faceLandmarks[0]),o=await new Promise(g=>m.toBlob(g,"image/jpeg",.9));o&&i.push(o),a===4&&(r=m.toDataURL("image/jpeg"))}await new Promise(m=>setTimeout(m,100))}const{verifyLiveness:l}=await Promise.resolve().then(()=>B),n=await l(this.config.apiUrl,i,this.state.sequence);if(n.is_live)this.updateState({status:"success"}),this.config.onComplete({success:!0,image:r,skinConfidence:n.skin_confidence});else{const a=n.reason||"Liveness check failed";this.updateState({status:"error",errorMsg:a}),this.config.onError({success:!1,reason:a})}}catch{this.updateState({status:"error",errorMsg:"Verification failed."}),this.config.onError({success:!1,reason:"Network error"})}}getFaceCrop(t,c){const i=this.offscreenCanvas.getContext("2d"),r=c.map(E=>E.x*t.videoWidth),l=c.map(E=>E.y*t.videoHeight),n=Math.min(...r),a=Math.max(...r),h=Math.min(...l),m=Math.max(...l),o=a-n,g=m-h,b=o*.3;return i.clearRect(0,0,224,224),i.drawImage(t,n-b,h-b,o+b*2,g+b*2,0,0,224,224),this.offscreenCanvas}}const F=p=>{const[t,c]=T.useState({status:"loading",sequence:[],currentStep:0,timeLeft:p.duration||60,isStepTransitioning:!1,errorMsg:""}),i=T.useRef(null),r=T.useRef(null);T.useEffect(()=>{const a=new N({...p,onStateChange:h=>c({...h})});return i.current=a,a.loadModels(),()=>a.stop()},[]),T.useEffect(()=>{var a,h;if(t.status!=="loading"&&t.status!=="error"){const m=(a=r.current)==null?void 0:a.video;if(m&&m.readyState>=2)(h=i.current)==null||h.attachVideo(m);else{const o=setInterval(()=>{var b,E;const g=(b=r.current)==null?void 0:b.video;g&&g.readyState>=2&&((E=i.current)==null||E.attachVideo(g),clearInterval(o))},100);return()=>clearInterval(o)}}},[t.status]);const l=T.useCallback(()=>{var a;console.log("[Hook] Start Clicked"),(a=i.current)==null||a.start()},[]),n=T.useCallback(()=>{var a;console.log("[Hook] Reset Clicked"),(a=i.current)==null||a.reset()},[]);return{...t,webcamRef:r,start:l,reset:n}};var x={exports:{}},y={};/**
1
+ (function(f,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("@mediapipe/tasks-vision"),require("react"),require("react-webcam"),require("@angular/core")):typeof define=="function"&&define.amd?define(["exports","@mediapipe/tasks-vision","react","react-webcam","@angular/core"],m):(f=typeof globalThis<"u"?globalThis:f||self,m(f.LivenessSDK={},f.mediapipe,f.React,f.ReactWebcam,f.ng.core))})(this,function(f,m,C,P,i){"use strict";var Ns=Object.create;var Tn=Object.defineProperty;var $s=Object.getOwnPropertyDescriptor;var Er=(f,m)=>(m=Symbol[f])?m:Symbol.for("Symbol."+f),_t=f=>{throw TypeError(f)};var vr=(f,m,C)=>m in f?Tn(f,m,{enumerable:!0,configurable:!0,writable:!0,value:C}):f[m]=C;var yr=(f,m)=>Tn(f,"name",{value:m,configurable:!0});var Yt=f=>[,,,Ns((f==null?void 0:f[Er("metadata")])??null)],br=["class","method","getter","setter","accessor","field","value","get","set"],At=f=>f!==void 0&&typeof f!="function"?_t("Function expected"):f,Gs=(f,m,C,P,i)=>({kind:br[f],name:m,metadata:P,addInitializer:k=>C._?_t("Already initialized"):i.push(At(k||null))}),Hs=(f,m)=>vr(m,Er("metadata"),f[3]),zt=(f,m,C,P)=>{for(var i=0,k=f[m>>1],s=k&&k.length;i<s;i++)m&1?k[i].call(C):P=k[i].call(C,P);return P},Zt=(f,m,C,P,i,k)=>{var s,L,St,z,Ee,v=m&7,Z=!!(m&8),j=!!(m&16),ht=v>3?f.length+1:v?Z?1:2:0,Q=br[v+5],gt=v>3&&(f[ht-1]=[]),Kt=f[ht]||(f[ht]=[]),_=v&&(!j&&!Z&&(i=i.prototype),v<5&&(v>3||!j)&&$s(v<4?i:{get[C](){return Cr(this,k)},set[C](M){return Fr(this,k,M)}},C));v?j&&v<4&&yr(k,(v>2?"set ":v>1?"get ":"")+C):yr(i,C);for(var mt=P.length-1;mt>=0;mt--)z=Gs(v,C,St={},f[3],Kt),v&&(z.static=Z,z.private=j,Ee=z.access={has:j?M=>Ys(i,M):M=>C in M},v^3&&(Ee.get=j?M=>(v^1?Cr:zs)(M,i,v^4?k:_.get):M=>M[C]),v>2&&(Ee.set=j?(M,K)=>Fr(M,i,K,v^4?k:_.set):(M,K)=>M[C]=K)),L=(0,P[mt])(v?v<4?j?k:_[Q]:v>4?void 0:{get:_.get,set:_.set}:i,z),St._=1,v^4||L===void 0?At(L)&&(v>4?gt.unshift(L):v?j?k=L:_[Q]=L:i=L):typeof L!="object"||L===null?_t("Object expected"):(At(s=L.get)&&(_.get=s),At(s=L.set)&&(_.set=s),At(s=L.init)&&gt.unshift(s));return v||Hs(f,i),_&&Tn(i,C,_),j?v^4?k:_:i},u=(f,m,C)=>vr(f,typeof m!="symbol"?m+"":m,C),On=(f,m,C)=>m.has(f)||_t("Cannot "+C),Ys=(f,m)=>Object(m)!==m?_t('Cannot use the "in" operator on this value'):f.has(m),Cr=(f,m,C)=>(On(f,m,"read from private field"),C?C.call(f):m.get(f));var Fr=(f,m,C,P)=>(On(f,m,"write to private field"),P?P.call(f,C):m.set(f,C),C),zs=(f,m,C)=>(On(f,m,"access private method"),C);var cr,En,lr,vn,dr,bn;function k(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const s=k(i),L=async(n,e,t)=>{const r=new FormData;e.forEach((c,l)=>{r.append("files",c,`frame_${l}.jpg`)}),r.append("challenge",JSON.stringify(t));const o=await fetch(`${n}/v1/verify`,{method:"POST",body:r});if(!o.ok)throw new Error("Network response was not ok");return await o.json()},St=Object.freeze(Object.defineProperty({__proto__:null,verifyLiveness:L},Symbol.toStringTag,{value:"Module"}));class z{constructor(e){this.models={face:null,hand:null},this.webcam=null,this.currentStepRef=0,this.isStepTransitioningRef=!1,this.timerId=null,this.requestId=null,this.offscreenCanvas=document.createElement("canvas"),this.CHALLENGE_POOL=["Smile","Blink","Turn_Head","Thumbs_Up"],this.attachVideo=t=>{this.webcam=t,console.log("[LivenessEngine] Video stream attached.")},this.start=()=>{if(this.state.status!=="ready"||!this.webcam){console.warn("[LivenessEngine] Engine not ready or video missing.");return}console.log("[LivenessEngine] Session Starting..."),this.state.status="capturing",this.updateState({status:"capturing"}),this.startTimer(),this.detectLoop()},this.stop=()=>{this.timerId&&clearInterval(this.timerId),this.requestId&&cancelAnimationFrame(this.requestId),this.timerId=null,this.requestId=null},this.reset=()=>{this.stop(),this.currentStepRef=0,this.isStepTransitioningRef=!1,this.generateSequence(),this.updateState({status:"ready",currentStep:0,timeLeft:this.config.duration,isStepTransitioning:!1,errorMsg:""})},this.detectLoop=()=>{var r;if(this.state.status!=="capturing"||!this.webcam||!this.models.face)return;const t=performance.now();try{const o=this.models.face.detectForVideo(this.webcam,t),a=(r=this.models.hand)==null?void 0:r.detectForVideo(this.webcam,t),c=this.state.sequence[this.currentStepRef];if(this.checkAction(o,a,c)){this.handleStepSuccess();return}}catch(o){console.error("[LivenessEngine] Loop detection error:",o)}this.requestId=requestAnimationFrame(this.detectLoop)},this.config={apiUrl:e.apiUrl,duration:e.duration??60,smileThreshold:e.smileThreshold??.2,blinkThreshold:e.blinkThreshold??.012,minturnHeadThreshold:e.minturnHeadThreshold??.15,maxturnHeadThreshold:e.maxturnHeadThreshold??.85,onStateChange:e.onStateChange||(()=>{}),onComplete:e.onComplete||(()=>{}),onError:e.onError||(()=>{})},this.state={status:"loading",sequence:[],currentStep:0,timeLeft:this.config.duration,isStepTransitioning:!1,errorMsg:""},this.offscreenCanvas.width=224,this.offscreenCanvas.height=224}async loadModels(){console.log("[LivenessEngine] Loading AI Models...");try{const e=await m.FilesetResolver.forVisionTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.3/wasm");this.models.face=await m.FaceLandmarker.createFromOptions(e,{baseOptions:{modelAssetPath:"https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task",delegate:"GPU"},outputFaceBlendshapes:!0,runningMode:"VIDEO"}),this.models.hand=await m.HandLandmarker.createFromOptions(e,{baseOptions:{modelAssetPath:"https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task",delegate:"GPU"},runningMode:"VIDEO",numHands:1}),this.generateSequence(),this.updateState({status:"ready"}),console.log("[LivenessEngine] Models Loaded.")}catch(e){console.error("[LivenessEngine] Init Error:",e),this.updateState({status:"error",errorMsg:"Failed to load security assets."})}}updateState(e){this.state={...this.state,...e},this.config.onStateChange(this.state)}generateSequence(){const e=[...this.CHALLENGE_POOL].sort(()=>.5-Math.random()).slice(0,3);return this.state.sequence=e,e}startTimer(){this.timerId&&clearInterval(this.timerId),this.timerId=setInterval(()=>{this.state.timeLeft>0?this.updateState({timeLeft:this.state.timeLeft-1}):(this.stop(),this.updateState({status:"expired"}))},1e3)}handleStepSuccess(){this.isStepTransitioningRef||(this.isStepTransitioningRef=!0,this.updateState({isStepTransitioning:!0}),setTimeout(()=>{this.currentStepRef<this.state.sequence.length-1?(this.currentStepRef++,this.isStepTransitioningRef=!1,this.updateState({currentStep:this.currentStepRef,isStepTransitioning:!1}),this.requestId=requestAnimationFrame(this.detectLoop)):this.sendFinalProof()},1500))}checkAction(e,t,r){var o,a;if(this.isStepTransitioningRef)return!1;if(r==="Thumbs_Up"&&((o=t==null?void 0:t.landmarks)==null?void 0:o.length)>0){const c=t.landmarks[0];return c[4].y<c[2].y&&[8,12,16,20].every(l=>c[l].y>c[l-2].y)}if(((a=e==null?void 0:e.faceLandmarks)==null?void 0:a.length)>0){const c=e.faceLandmarks[0];switch(r){case"Smile":return c[291].x-c[61].x>this.config.smileThreshold;case"Blink":const l=Math.abs(c[159].y-c[145].y),D=Math.abs(c[386].y-c[374].y);return(l+D)/2<this.config.blinkThreshold;case"Turn_Head":const g=(c[1].x-c[33].x)/(c[263].x-c[33].x);return g<this.config.minturnHeadThreshold||g>this.config.maxturnHeadThreshold;default:return!1}}return!1}async sendFinalProof(){var e,t;this.stop(),this.updateState({status:"verifying"});try{const r=[];let o="";for(let l=0;l<5&&this.webcam;l++){const D=(e=this.models.face)==null?void 0:e.detectForVideo(this.webcam,performance.now());if((t=D==null?void 0:D.faceLandmarks)!=null&&t[0]){const g=this.getFaceCrop(this.webcam,D.faceLandmarks[0]),p=await new Promise(h=>g.toBlob(h,"image/jpeg",.9));p&&r.push(p),l===4&&(o=g.toDataURL("image/jpeg"))}await new Promise(g=>setTimeout(g,100))}const{verifyLiveness:a}=await Promise.resolve().then(()=>St),c=await a(this.config.apiUrl,r,this.state.sequence);if(c.is_live)this.updateState({status:"success"}),this.config.onComplete({success:!0,image:o,skinConfidence:c.skin_confidence});else{const l=c.reason||"Liveness check failed";this.updateState({status:"error",errorMsg:l}),this.config.onError({success:!1,reason:l})}}catch{this.updateState({status:"error",errorMsg:"Verification failed."}),this.config.onError({success:!1,reason:"Network error"})}}getFaceCrop(e,t){const r=this.offscreenCanvas.getContext("2d"),o=t.map(y=>y.x*e.videoWidth),a=t.map(y=>y.y*e.videoHeight),c=Math.min(...o),l=Math.max(...o),D=Math.min(...a),g=Math.max(...a),p=l-c,h=g-D,E=p*.3;return r.clearRect(0,0,224,224),r.drawImage(e,c-E,D-E,p+E*2,h+E*2,0,0,224,224),this.offscreenCanvas}}const Ee=n=>{const[e,t]=C.useState({status:"loading",sequence:[],currentStep:0,timeLeft:n.duration||60,isStepTransitioning:!1,errorMsg:""}),r=C.useRef(null),o=C.useRef(null);C.useEffect(()=>{const l=new z({...n,onStateChange:D=>t({...D})});return r.current=l,l.loadModels(),()=>l.stop()},[]),C.useEffect(()=>{var l,D;if(e.status!=="loading"&&e.status!=="error"){const g=(l=o.current)==null?void 0:l.video;if(g&&g.readyState>=2)(D=r.current)==null||D.attachVideo(g);else{const p=setInterval(()=>{var E,y;const h=(E=o.current)==null?void 0:E.video;h&&h.readyState>=2&&((y=r.current)==null||y.attachVideo(h),clearInterval(p))},100);return()=>clearInterval(p)}}},[e.status]);const a=C.useCallback(()=>{var l;console.log("[Hook] Start Clicked"),(l=r.current)==null||l.start()},[]),c=C.useCallback(()=>{var l;console.log("[Hook] Reset Clicked"),(l=r.current)==null||l.reset()},[]);return{...e,webcamRef:o,start:a,reset:c}};var v={exports:{}},Z={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var M;function J(){if(M)return y;M=1;var p=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function c(i,r,l){var n=null;if(l!==void 0&&(n=""+l),r.key!==void 0&&(n=""+r.key),"key"in r){l={};for(var a in r)a!=="key"&&(l[a]=r[a])}else l=r;return r=l.ref,{$$typeof:p,type:i,key:n,ref:r!==void 0?r:null,props:l}}return y.Fragment=t,y.jsx=c,y.jsxs=c,y}var R={};/**
9
+ */var j;function ht(){if(j)return Z;j=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function t(r,o,a){var c=null;if(a!==void 0&&(c=""+a),o.key!==void 0&&(c=""+o.key),"key"in o){a={};for(var l in o)l!=="key"&&(a[l]=o[l])}else a=o;return o=a.ref,{$$typeof:n,type:r,key:c,ref:o!==void 0?o:null,props:a}}return Z.Fragment=e,Z.jsx=t,Z.jsxs=t,Z}var Q={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,9 +14,23 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var D;function X(){return D||(D=1,process.env.NODE_ENV!=="production"&&function(){function p(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===oe?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case O:return"Fragment";case Q:return"Profiler";case K:return"StrictMode";case se:return"Suspense";case ne:return"SuspenseList";case ie:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case Z:return"Portal";case te:return e.displayName||"Context";case ee:return(e._context.displayName||"Context")+".Consumer";case re:var s=e.render;return e=e.displayName,e||(e=s.displayName||s.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ae:return s=e.displayName||null,s!==null?s:p(e.type)||"Memo";case L:s=e._payload,e=e._init;try{return p(e(s))}catch{}}return null}function t(e){return""+e}function c(e){try{t(e);var s=!1}catch{s=!0}if(s){s=console;var u=s.error,d=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u.call(s,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",d),t(e)}}function i(e){if(e===O)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===L)return"<...>";try{var s=p(e);return s?"<"+s+">":"<...>"}catch{return"<...>"}}function r(){var e=j.A;return e===null?null:e.getOwner()}function l(){return Error("react-stack-top-frame")}function n(e){if(q.call(e,"key")){var s=Object.getOwnPropertyDescriptor(e,"key").get;if(s&&s.isReactWarning)return!1}return e.key!==void 0}function a(e,s){function u(){V||(V=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",s))}u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}function h(){var e=p(this.type);return U[e]||(U[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function m(e,s,u,d,w,A){var f=u.ref;return e={$$typeof:Y,type:e,key:s,props:u,_owner:d},(f!==void 0?f:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:h}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:w}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:A}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function o(e,s,u,d,w,A){var f=s.children;if(f!==void 0)if(d)if(ce(f)){for(d=0;d<f.length;d++)g(f[d]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else g(f);if(q.call(s,"key")){f=p(e);var k=Object.keys(s).filter(function(le){return le!=="key"});d=0<k.length?"{key: someKey, "+k.join(": ..., ")+": ...}":"{key: someKey}",G[f+d]||(k=0<k.length?"{"+k.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var gt;function Kt(){return gt||(gt=1,process.env.NODE_ENV!=="production"&&function(){function n(d){if(d==null)return null;if(typeof d=="function")return d.$$typeof===Ps?null:d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case G:return"Fragment";case ie:return"Profiler";case pt:return"StrictMode";case Ms:return"Suspense";case xs:return"SuspenseList";case Vs:return"Activity"}if(typeof d=="object")switch(typeof d.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),d.$$typeof){case O:return"Portal";case bt:return d.displayName||"Context";case $t:return(d._context.displayName||"Context")+".Consumer";case Gt:var F=d.render;return d=d.displayName,d||(d=F.displayName||F.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case Ls:return F=d.displayName||null,F!==null?F:n(d.type)||"Memo";case An:F=d._payload,d=d._init;try{return n(d(F))}catch{}}return null}function e(d){return""+d}function t(d){try{e(d);var F=!1}catch{F=!0}if(F){F=console;var S=F.error,B=typeof Symbol=="function"&&Symbol.toStringTag&&d[Symbol.toStringTag]||d.constructor.name||"Object";return S.call(F,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",B),e(d)}}function r(d){if(d===G)return"<>";if(typeof d=="object"&&d!==null&&d.$$typeof===An)return"<...>";try{var F=n(d);return F?"<"+F+">":"<...>"}catch{return"<...>"}}function o(){var d=_n.A;return d===null?null:d.getOwner()}function a(){return Error("react-stack-top-frame")}function c(d){if(fr.call(d,"key")){var F=Object.getOwnPropertyDescriptor(d,"key").get;if(F&&F.isReactWarning)return!1}return d.key!==void 0}function l(d,F){function S(){pr||(pr=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",F))}S.isReactWarning=!0,Object.defineProperty(d,"key",{get:S,configurable:!0})}function D(){var d=n(this.type);return Dr[d]||(Dr[d]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),d=this.props.ref,d!==void 0?d:null}function g(d,F,S,B,Ht,wn){var R=S.ref;return d={$$typeof:T,type:d,key:F,props:S,_owner:B},(R!==void 0?R:null)!==null?Object.defineProperty(d,"ref",{enumerable:!1,get:D}):Object.defineProperty(d,"ref",{enumerable:!1,value:null}),d._store={},Object.defineProperty(d._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(d,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(d,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Ht}),Object.defineProperty(d,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:wn}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d}function p(d,F,S,B,Ht,wn){var R=F.children;if(R!==void 0)if(B)if(js(R)){for(B=0;B<R.length;B++)h(R[B]);Object.freeze&&Object.freeze(R)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(R);if(fr.call(F,"key")){R=n(d);var Dt=Object.keys(F).filter(function(Us){return Us!=="key"});B=0<Dt.length?"{key: someKey, "+Dt.join(": ..., ")+": ...}":"{key: someKey}",mr[R+B]||(Dt=0<Dt.length?"{"+Dt.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,d,f,k,f),G[f+d]=!0)}if(f=null,u!==void 0&&(c(u),f=""+u),n(s)&&(c(s.key),f=""+s.key),"key"in s){u={};for(var C in s)C!=="key"&&(u[C]=s[C])}else u=s;return f&&a(u,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,f,u,r(),w,A)}function g(e){b(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===L&&(e._payload.status==="fulfilled"?b(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function b(e){return typeof e=="object"&&e!==null&&e.$$typeof===Y}var E=T,Y=Symbol.for("react.transitional.element"),Z=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),K=Symbol.for("react.strict_mode"),Q=Symbol.for("react.profiler"),ee=Symbol.for("react.consumer"),te=Symbol.for("react.context"),re=Symbol.for("react.forward_ref"),se=Symbol.for("react.suspense"),ne=Symbol.for("react.suspense_list"),ae=Symbol.for("react.memo"),L=Symbol.for("react.lazy"),ie=Symbol.for("react.activity"),oe=Symbol.for("react.client.reference"),j=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q=Object.prototype.hasOwnProperty,ce=Array.isArray,P=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var V,U={},H=E.react_stack_bottom_frame.bind(E,l)(),W=P(i(l)),G={};R.Fragment=O,R.jsx=function(e,s,u){var d=1e4>j.recentlyCreatedOwnerStacks++;return o(e,s,u,!1,d?Error("react-stack-top-frame"):H,d?P(i(e)):W)},R.jsxs=function(e,s,u){var d=1e4>j.recentlyCreatedOwnerStacks++;return o(e,s,u,!0,d?Error("react-stack-top-frame"):H,d?P(i(e)):W)}}()),R}process.env.NODE_ENV==="production"?x.exports=J():x.exports=X();var S=x.exports;const $=({apiUrl:p,duration:t,onComplete:c,onError:i,classNames:r={},render:l,smileThreshold:n,blinkThreshold:a,minturnHeadThreshold:h,maxturnHeadThreshold:m})=>{var g;const o=F({apiUrl:p,duration:t,smileThreshold:n,blinkThreshold:a,minturnHeadThreshold:h,maxturnHeadThreshold:m,onComplete:c,onError:i});return l?l(o):S.jsxs("div",{className:r.container,children:[o.status==="loading"&&S.jsx("div",{children:"Initializing..."}),["ready","capturing","verifying"].includes(o.status)&&S.jsxs(S.Fragment,{children:[S.jsx(z,{ref:o.webcamRef,mirrored:!0,screenshotFormat:"image/jpeg",className:r.webcam}),o.status==="capturing"&&S.jsx("div",{className:"liveness-challenge",children:o.isStepTransitioning?"Step verified! Get ready for the next...":`Do this: ${(g=o.sequence[o.currentStep])==null?void 0:g.replace("_"," ")}`}),["capturing","ready"].includes(o.status)&&S.jsxs("div",{className:r.timer,children:[o.timeLeft,"s"]}),o.status==="ready"&&S.jsx("button",{onClick:o.start,className:r.button,children:"Start Challenge"}),o.status==="verifying"&&S.jsx("div",{children:"Analyzing..."})]}),o.status==="error"&&S.jsxs("div",{className:r.error,children:[o.errorMsg,S.jsx("button",{onClick:o.reset,className:r.button,children:"Retry"})]}),o.status==="success"&&S.jsx("div",{className:r.success,children:"Verification Complete"})]})};v.LivenessEngine=N,v.LivenessSDK=$,v.useLiveness=F,v.verifyLiveness=I,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
22
+ <%s key={someKey} {...props} />`,B,R,Dt,R),mr[R+B]=!0)}if(R=null,S!==void 0&&(t(S),R=""+S),c(F)&&(t(F.key),R=""+F.key),"key"in F){S={};for(var In in F)In!=="key"&&(S[In]=F[In])}else S=F;return R&&l(S,typeof d=="function"?d.displayName||d.name||"Unknown":d),g(d,R,S,o(),Ht,wn)}function h(d){E(d)?d._store&&(d._store.validated=1):typeof d=="object"&&d!==null&&d.$$typeof===An&&(d._payload.status==="fulfilled"?E(d._payload.value)&&d._payload.value._store&&(d._payload.value._store.validated=1):d._store&&(d._store.validated=1))}function E(d){return typeof d=="object"&&d!==null&&d.$$typeof===T}var y=C,T=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),G=Symbol.for("react.fragment"),pt=Symbol.for("react.strict_mode"),ie=Symbol.for("react.profiler"),$t=Symbol.for("react.consumer"),bt=Symbol.for("react.context"),Gt=Symbol.for("react.forward_ref"),Ms=Symbol.for("react.suspense"),xs=Symbol.for("react.suspense_list"),Ls=Symbol.for("react.memo"),An=Symbol.for("react.lazy"),Vs=Symbol.for("react.activity"),Ps=Symbol.for("react.client.reference"),_n=y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,fr=Object.prototype.hasOwnProperty,js=Array.isArray,Sn=console.createTask?console.createTask:function(){return null};y={react_stack_bottom_frame:function(d){return d()}};var pr,Dr={},hr=y.react_stack_bottom_frame.bind(y,a)(),gr=Sn(r(a)),mr={};Q.Fragment=G,Q.jsx=function(d,F,S){var B=1e4>_n.recentlyCreatedOwnerStacks++;return p(d,F,S,!1,B?Error("react-stack-top-frame"):hr,B?Sn(r(d)):gr)},Q.jsxs=function(d,F,S){var B=1e4>_n.recentlyCreatedOwnerStacks++;return p(d,F,S,!0,B?Error("react-stack-top-frame"):hr,B?Sn(r(d)):gr)}}()),Q}process.env.NODE_ENV==="production"?v.exports=ht():v.exports=Kt();var _=v.exports;const mt=({apiUrl:n,duration:e,onComplete:t,onError:r,classNames:o={},render:a,smileThreshold:c,blinkThreshold:l,minturnHeadThreshold:D,maxturnHeadThreshold:g})=>{var h;const p=Ee({apiUrl:n,duration:e,smileThreshold:c,blinkThreshold:l,minturnHeadThreshold:D,maxturnHeadThreshold:g,onComplete:t,onError:r});return a?a(p):_.jsxs("div",{className:o.container,children:[p.status==="loading"&&_.jsx("div",{children:"Initializing..."}),["ready","capturing","verifying"].includes(p.status)&&_.jsxs(_.Fragment,{children:[_.jsx(P,{ref:p.webcamRef,mirrored:!0,screenshotFormat:"image/jpeg",className:o.webcam}),p.status==="capturing"&&_.jsx("div",{className:"liveness-challenge",children:p.isStepTransitioning?"Step verified! Get ready for the next...":`Do this: ${(h=p.sequence[p.currentStep])==null?void 0:h.replace("_"," ")}`}),["capturing","ready"].includes(p.status)&&_.jsxs("div",{className:o.timer,children:[p.timeLeft,"s"]}),p.status==="ready"&&_.jsx("button",{onClick:p.start,className:o.button,children:"Start Challenge"}),p.status==="verifying"&&_.jsx("div",{children:"Analyzing..."})]}),p.status==="error"&&_.jsxs("div",{className:o.error,children:[p.errorMsg,_.jsx("button",{onClick:p.reset,className:o.button,children:"Retry"})]}),p.status==="success"&&_.jsx("div",{className:o.success,children:"Verification Complete"})]})};var M=function(n,e){return M=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])},M(n,e)};function K(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");M(n,e);function t(){this.constructor=n}n.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function Wt(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],r=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Xt(n,e){var t=typeof Symbol=="function"&&n[Symbol.iterator];if(!t)return n;var r=t.call(n),o,a=[],c;try{for(;(e===void 0||e-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(l){c={error:l}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(c)throw c.error}}return a}function qt(n,e,t){if(t||arguments.length===2)for(var r=0,o=e.length,a;r<o;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return n.concat(a||Array.prototype.slice.call(e))}typeof SuppressedError=="function"&&SuppressedError;function W(n){return typeof n=="function"}function Bn(n){var e=function(r){Error.call(r),r.stack=new Error().stack},t=n(e);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Jt=Bn(function(n){return function(t){n(this),this.message=t?t.length+` errors occurred during unsubscription:
23
+ `+t.map(function(r,o){return o+1+") "+r.toString()}).join(`
24
+ `):"",this.name="UnsubscriptionError",this.errors=t}});function Qt(n,e){if(n){var t=n.indexOf(e);0<=t&&n.splice(t,1)}}var wt=function(){function n(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return n.prototype.unsubscribe=function(){var e,t,r,o,a;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var l=Wt(c),D=l.next();!D.done;D=l.next()){var g=D.value;g.remove(this)}}catch(O){e={error:O}}finally{try{D&&!D.done&&(t=l.return)&&t.call(l)}finally{if(e)throw e.error}}else c.remove(this);var p=this.initialTeardown;if(W(p))try{p()}catch(O){a=O instanceof Jt?O.errors:[O]}var h=this._finalizers;if(h){this._finalizers=null;try{for(var E=Wt(h),y=E.next();!y.done;y=E.next()){var T=y.value;try{Mn(T)}catch(O){a=a??[],O instanceof Jt?a=qt(qt([],Xt(a)),Xt(O.errors)):a.push(O)}}}catch(O){r={error:O}}finally{try{y&&!y.done&&(o=E.return)&&o.call(E)}finally{if(r)throw r.error}}}if(a)throw new Jt(a)}},n.prototype.add=function(e){var t;if(e&&e!==this)if(this.closed)Mn(e);else{if(e instanceof n){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(e)}},n.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},n.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},n.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&Qt(t,e)},n.prototype.remove=function(e){var t=this._finalizers;t&&Qt(t,e),e instanceof n&&e._removeParent(this)},n.EMPTY=function(){var e=new n;return e.closed=!0,e}(),n}(),Rn=wt.EMPTY;function kn(n){return n instanceof wt||n&&"closed"in n&&W(n.remove)&&W(n.add)&&W(n.unsubscribe)}function Mn(n){W(n)?n():n.unsubscribe()}var Ar={Promise:void 0},_r={setTimeout:function(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];return setTimeout.apply(void 0,qt([n,e],Xt(t)))},clearTimeout:function(n){return clearTimeout(n)},delegate:void 0};function Sr(n){_r.setTimeout(function(){throw n})}function xn(){}function It(n){n()}var Ln=function(n){K(e,n);function e(t){var r=n.call(this)||this;return r.isStopped=!1,t?(r.destination=t,kn(t)&&t.add(r)):r.destination=Tr,r}return e.create=function(t,r,o){return new en(t,r,o)},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,n.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(wt),wr=function(){function n(e){this.partialObserver=e}return n.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(r){Tt(r)}},n.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(r){Tt(r)}else Tt(e)},n.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(t){Tt(t)}},n}(),en=function(n){K(e,n);function e(t,r,o){var a=n.call(this)||this,c;return W(t)||!t?c={next:t??void 0,error:r??void 0,complete:o??void 0}:c=t,a.destination=new wr(c),a}return e}(Ln);function Tt(n){Sr(n)}function Ir(n){throw n}var Tr={closed:!0,next:xn,error:Ir,complete:xn},Or=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Br(n){return n}function Rr(n){return n.length===0?Br:n.length===1?n[0]:function(t){return n.reduce(function(r,o){return o(r)},t)}}var Vn=function(){function n(e){e&&(this._subscribe=e)}return n.prototype.lift=function(e){var t=new n;return t.source=this,t.operator=e,t},n.prototype.subscribe=function(e,t,r){var o=this,a=Mr(e)?e:new en(e,t,r);return It(function(){var c=o,l=c.operator,D=c.source;a.add(l?l.call(a,D):D?o._subscribe(a):o._trySubscribe(a))}),a},n.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},n.prototype.forEach=function(e,t){var r=this;return t=Pn(t),new t(function(o,a){var c=new en({next:function(l){try{e(l)}catch(D){a(D),c.unsubscribe()}},error:a,complete:o});r.subscribe(c)})},n.prototype._subscribe=function(e){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(e)},n.prototype[Or]=function(){return this},n.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Rr(e)(this)},n.prototype.toPromise=function(e){var t=this;return e=Pn(e),new e(function(r,o){var a;t.subscribe(function(c){return a=c},function(c){return o(c)},function(){return r(a)})})},n.create=function(e){return new n(e)},n}();function Pn(n){var e;return(e=n??Ar.Promise)!==null&&e!==void 0?e:Promise}function kr(n){return n&&W(n.next)&&W(n.error)&&W(n.complete)}function Mr(n){return n&&n instanceof Ln||kr(n)&&kn(n)}var xr=Bn(function(n){return function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),tn=function(n){K(e,n);function e(){var t=n.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return e.prototype.lift=function(t){var r=new jn(this,this);return r.operator=t,r},e.prototype._throwIfClosed=function(){if(this.closed)throw new xr},e.prototype.next=function(t){var r=this;It(function(){var o,a;if(r._throwIfClosed(),!r.isStopped){r.currentObservers||(r.currentObservers=Array.from(r.observers));try{for(var c=Wt(r.currentObservers),l=c.next();!l.done;l=c.next()){var D=l.value;D.next(t)}}catch(g){o={error:g}}finally{try{l&&!l.done&&(a=c.return)&&a.call(c)}finally{if(o)throw o.error}}}})},e.prototype.error=function(t){var r=this;It(function(){if(r._throwIfClosed(),!r.isStopped){r.hasError=r.isStopped=!0,r.thrownError=t;for(var o=r.observers;o.length;)o.shift().error(t)}})},e.prototype.complete=function(){var t=this;It(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var r=t.observers;r.length;)r.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(t){return this._throwIfClosed(),n.prototype._trySubscribe.call(this,t)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var r=this,o=this,a=o.hasError,c=o.isStopped,l=o.observers;return a||c?Rn:(this.currentObservers=null,l.push(t),new wt(function(){r.currentObservers=null,Qt(l,t)}))},e.prototype._checkFinalizedStatuses=function(t){var r=this,o=r.hasError,a=r.thrownError,c=r.isStopped;o?t.error(a):c&&t.complete()},e.prototype.asObservable=function(){var t=new Vn;return t.source=this,t},e.create=function(t,r){return new jn(t,r)},e}(Vn),jn=function(n){K(e,n);function e(t,r){var o=n.call(this)||this;return o.destination=t,o.source=r,o}return e.prototype.next=function(t){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.next)===null||o===void 0||o.call(r,t)},e.prototype.error=function(t){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.error)===null||o===void 0||o.call(r,t)},e.prototype.complete=function(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)},e.prototype._subscribe=function(t){var r,o;return(o=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&o!==void 0?o:Rn},e}(tn),Lr=function(n){K(e,n);function e(t){var r=n.call(this)||this;return r._value=t,r}return Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(t){var r=n.prototype._subscribe.call(this,t);return!r.closed&&t.next(this._value),r},e.prototype.getValue=function(){var t=this,r=t.hasError,o=t.thrownError,a=t._value;if(r)throw o;return this._throwIfClosed(),a},e.prototype.next=function(t){n.prototype.next.call(this,this._value=t)},e}(tn);cr=[i.Injectable({providedIn:"root"})];class yt{constructor(e){this.ngZone=e,this.stateSubject=new Lr(null),this.state$=this.stateSubject.asObservable()}init(e){this.ngZone.runOutsideAngular(()=>{this.engine=new z({...e,onStateChange:t=>{this.ngZone.run(()=>this.stateSubject.next(t))}}),this.engine.loadModels()})}attach(e){var t;(t=this.engine)==null||t.attachVideo(e)}start(){var e;(e=this.engine)==null||e.start()}reset(){var e;(e=this.engine)==null||e.reset()}ngOnDestroy(){var e;(e=this.engine)==null||e.stop()}}En=Yt(null),yt=Zt(En,0,"LivenessService",cr,yt),zt(En,1,yt);/**
25
+ * @license Angular v21.2.3
26
+ * (c) 2010-2026 Google LLC. https://angular.dev/
27
+ * License: MIT
28
+ */let Vr=null;function nn(){return Vr}const Ze=class Ze{historyGo(e){throw new Error(ngDevMode?"Not implemented":"")}};u(Ze,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ze,deps:[],target:s.ɵɵFactoryTarget.Injectable})),u(Ze,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ze,providedIn:"platform",useFactory:()=>i.inject(ve)}));let ee=Ze;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ee,decorators:[{type:i.Injectable,args:[{providedIn:"platform",useFactory:()=>i.inject(ve)}]}]}),new i.InjectionToken(typeof ngDevMode<"u"&&ngDevMode?"Location Initialized":"");const ce=class ce extends ee{constructor(){super();u(this,"_location");u(this,"_history");u(this,"_doc",i.inject(i.DOCUMENT));this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return nn().getBaseHref(this._doc)}onPopState(t){const r=nn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=nn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",t,!1),()=>r.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,r,o){this._history.pushState(t,r,o)}replaceState(t,r,o){this._history.replaceState(t,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}};u(ce,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ce,deps:[],target:s.ɵɵFactoryTarget.Injectable})),u(ce,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ce,providedIn:"platform",useFactory:()=>new ce}));let ve=ce;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ve,decorators:[{type:i.Injectable,args:[{providedIn:"platform",useFactory:()=>new ve}]}],ctorParameters:()=>[]});/**
29
+ * @license Angular v21.2.3
30
+ * (c) 2010-2026 Google LLC. https://angular.dev/
31
+ * License: MIT
32
+ */function rn(n,e){return n?e?n.endsWith("/")?e.startsWith("/")?n+e.slice(1):n+e:e.startsWith("/")?n+e:`${n}/${e}`:n:e}function Un(n){const e=n.search(/#|\?|$/);return n[e-1]==="/"?n.slice(0,e-1)+n.slice(e):n}function X(n){return n&&n[0]!=="?"?`?${n}`:n}const Ke=class Ke{historyGo(e){throw new Error(ngDevMode?"Not implemented":"")}};u(Ke,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ke,deps:[],target:s.ɵɵFactoryTarget.Injectable})),u(Ke,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ke,providedIn:"root",useFactory:()=>i.inject(ae)}));let te=Ke;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:te,decorators:[{type:i.Injectable,args:[{providedIn:"root",useFactory:()=>i.inject(ae)}]}]});const Ot=new i.InjectionToken(typeof ngDevMode<"u"&&ngDevMode?"appBaseHref":""),We=class We extends te{constructor(t,r){var o;super();u(this,"_platformLocation");u(this,"_baseHref");u(this,"_removeListenerFns",[]);this._platformLocation=t,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??((o=i.inject(i.DOCUMENT).location)==null?void 0:o.origin)??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return rn(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+X(this._platformLocation.search),o=this._platformLocation.hash;return o&&t?`${r}${o}`:r}pushState(t,r,o,a){const c=this.prepareExternalUrl(o+X(a));this._platformLocation.pushState(t,r,c)}replaceState(t,r,o,a){const c=this.prepareExternalUrl(o+X(a));this._platformLocation.replaceState(t,r,c)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){var r,o;(o=(r=this._platformLocation).historyGo)==null||o.call(r,t)}};u(We,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:We,deps:[{token:ee},{token:Ot,optional:!0}],target:s.ɵɵFactoryTarget.Injectable})),u(We,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:We,providedIn:"root"}));let ae=We;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ae,decorators:[{type:i.Injectable,args:[{providedIn:"root"}]}],ctorParameters:()=>[{type:ee},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[Ot]}]}]});const Xe=class Xe extends ae{prepareExternalUrl(e){const t=Nn(e);return t.endsWith("/")&&t.length>1&&(e=t.slice(0,-1)+e.slice(t.length)),super.prepareExternalUrl(e)}};u(Xe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Xe,deps:null,target:s.ɵɵFactoryTarget.Injectable})),u(Xe,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Xe,providedIn:"root"}));let sn=Xe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:sn,decorators:[{type:i.Injectable,args:[{providedIn:"root"}]}]});const qe=class qe extends ae{prepareExternalUrl(e){const t=Nn(e);return t.endsWith("/")||(e=t+"/"+e.slice(t.length)),super.prepareExternalUrl(e)}};u(qe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:qe,deps:null,target:s.ɵɵFactoryTarget.Injectable})),u(qe,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:qe,providedIn:"root"}));let on=qe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:on,decorators:[{type:i.Injectable,args:[{providedIn:"root"}]}]});function Nn(n){const e=n.search(/[?#]/),t=e>-1?e:n.length;return n.slice(0,t)}const Y=class Y{constructor(e){u(this,"_subject",new tn);u(this,"_basePath");u(this,"_locationStrategy");u(this,"_urlChangeListeners",[]);u(this,"_urlChangeSubscription",null);this._locationStrategy=e;const t=this._locationStrategy.getBaseHref();this._basePath=jr(Un(Gn(t))),this._locationStrategy.onPopState(r=>{this._subject.next({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){var e;(e=this._urlChangeSubscription)==null||e.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,t=""){return this.path()==this.normalize(e+X(t))}normalize(e){return Y.stripTrailingSlash(Pr(this._basePath,Gn(e)))}prepareExternalUrl(e){return e&&e[0]!=="/"&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,t="",r=null){this._locationStrategy.pushState(r,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+X(t)),r)}replaceState(e,t="",r=null){this._locationStrategy.replaceState(r,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+X(t)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){var t,r;(r=(t=this._locationStrategy).historyGo)==null||r.call(t,e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??(this._urlChangeSubscription=this.subscribe(t=>{this._notifyUrlChangeListeners(t.url,t.state)})),()=>{var r;const t=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(t,1),this._urlChangeListeners.length===0&&((r=this._urlChangeSubscription)==null||r.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",t){this._urlChangeListeners.forEach(r=>r(e,t))}subscribe(e,t,r){return this._subject.subscribe({next:e,error:t??void 0,complete:r??void 0})}};u(Y,"normalizeQueryParams",X),u(Y,"joinWithSlash",rn),u(Y,"stripTrailingSlash",Un),u(Y,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Y,deps:[{token:te}],target:s.ɵɵFactoryTarget.Injectable})),u(Y,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Y,providedIn:"root",useFactory:$n}));let Bt=Y;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Bt,decorators:[{type:i.Injectable,args:[{providedIn:"root",useFactory:$n}]}],ctorParameters:()=>[{type:te}]});function $n(){return new Bt(i.ɵɵinject(te))}function Pr(n,e){if(!n||!e.startsWith(n))return e;const t=e.substring(n.length);return t===""||["/",";","?","#"].includes(t[0])?t:e}function Gn(n){return n.replace(/\/index.html$/,"")}function jr(n){if(new RegExp("^(https?:)?//").test(n)){const[,t]=n.split(/\/\/[^\/]+/);return t}return n}/**
33
+ * @license Angular v21.2.3
34
+ * (c) 2010-2026 Google LLC. https://angular.dev/
35
+ * License: MIT
36
+ */const Je=class Je extends te{constructor(t,r){super();u(this,"_platformLocation");u(this,"_baseHref","");u(this,"_removeListenerFns",[]);this._platformLocation=t,r!=null&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){const r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(t){const r=rn(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,o,a){const c=this.prepareExternalUrl(o+X(a))||this._platformLocation.pathname;this._platformLocation.pushState(t,r,c)}replaceState(t,r,o,a){const c=this.prepareExternalUrl(o+X(a))||this._platformLocation.pathname;this._platformLocation.replaceState(t,r,c)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){var r,o;(o=(r=this._platformLocation).historyGo)==null||o.call(r,t)}};u(Je,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Je,deps:[{token:ee},{token:Ot,optional:!0}],target:s.ɵɵFactoryTarget.Injectable})),u(Je,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Je}));let an=Je;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:an,decorators:[{type:i.Injectable}],ctorParameters:()=>[{type:ee},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[Ot]}]}]});const Hn={ADP:[void 0,void 0,0],AFN:[void 0,"؋",0],ALL:[void 0,void 0,0],AMD:[void 0,"֏",2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],AZN:[void 0,"₼"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,void 0,2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",2],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GHS:[void 0,"GH₵"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KGS:[void 0,"⃀"],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:["₱"],PKR:[void 0,"Rs",2],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLE:[void 0,void 0,2],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XCG:["Cg."],XOF:["F CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["¤"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]};var Ct;(function(n){n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific"})(Ct||(Ct={}));var ue;(function(n){n[n.Zero=0]="Zero",n[n.One=1]="One",n[n.Two=2]="Two",n[n.Few=3]="Few",n[n.Many=4]="Many",n[n.Other=5]="Other"})(ue||(ue={}));var x;(function(n){n[n.Format=0]="Format",n[n.Standalone=1]="Standalone"})(x||(x={}));var b;(function(n){n[n.Narrow=0]="Narrow",n[n.Abbreviated=1]="Abbreviated",n[n.Wide=2]="Wide",n[n.Short=3]="Short"})(b||(b={}));var V;(function(n){n[n.Short=0]="Short",n[n.Medium=1]="Medium",n[n.Long=2]="Long",n[n.Full=3]="Full"})(V||(V={}));const w={Decimal:0,Group:1,PercentSign:3,MinusSign:5,Exponential:6,Infinity:9,CurrencyDecimal:12,CurrencyGroup:13};var Yn;(function(n){n[n.Sunday=0]="Sunday",n[n.Monday=1]="Monday",n[n.Tuesday=2]="Tuesday",n[n.Wednesday=3]="Wednesday",n[n.Thursday=4]="Thursday",n[n.Friday=5]="Friday",n[n.Saturday=6]="Saturday"})(Yn||(Yn={}));function Ur(n){return i.ɵfindLocaleData(n)[i.ɵLocaleDataIndex.LocaleId]}function Nr(n,e,t){const r=i.ɵfindLocaleData(n),o=[r[i.ɵLocaleDataIndex.DayPeriodsFormat],r[i.ɵLocaleDataIndex.DayPeriodsStandalone]],a=N(o,e);return N(a,t)}function $r(n,e,t){const r=i.ɵfindLocaleData(n),o=[r[i.ɵLocaleDataIndex.DaysFormat],r[i.ɵLocaleDataIndex.DaysStandalone]],a=N(o,e);return N(a,t)}function Gr(n,e,t){const r=i.ɵfindLocaleData(n),o=[r[i.ɵLocaleDataIndex.MonthsFormat],r[i.ɵLocaleDataIndex.MonthsStandalone]],a=N(o,e);return N(a,t)}function Hr(n,e){const r=i.ɵfindLocaleData(n)[i.ɵLocaleDataIndex.Eras];return N(r,e)}function Rt(n,e){const t=i.ɵfindLocaleData(n);return N(t[i.ɵLocaleDataIndex.DateFormat],e)}function kt(n,e){const t=i.ɵfindLocaleData(n);return N(t[i.ɵLocaleDataIndex.TimeFormat],e)}function Mt(n,e){const r=i.ɵfindLocaleData(n)[i.ɵLocaleDataIndex.DateTimeFormat];return N(r,e)}function U(n,e){const t=i.ɵfindLocaleData(n),r=t[i.ɵLocaleDataIndex.NumberSymbols][e];if(typeof r>"u"){if(e===w.CurrencyDecimal)return t[i.ɵLocaleDataIndex.NumberSymbols][w.Decimal];if(e===w.CurrencyGroup)return t[i.ɵLocaleDataIndex.NumberSymbols][w.Group]}return r}function un(n,e){return i.ɵfindLocaleData(n)[i.ɵLocaleDataIndex.NumberFormats][e]}function Yr(n){return i.ɵfindLocaleData(n)[i.ɵLocaleDataIndex.Currencies]}const zr=i.ɵgetLocalePluralCase;function zn(n){if(!n[i.ɵLocaleDataIndex.ExtraData])throw new i.ɵRuntimeError(2303,ngDevMode&&`Missing extra locale data for the locale "${n[i.ɵLocaleDataIndex.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Zr(n){const e=i.ɵfindLocaleData(n);return zn(e),(e[i.ɵLocaleDataIndex.ExtraData][2]||[]).map(r=>typeof r=="string"?cn(r):[cn(r[0]),cn(r[1])])}function Kr(n,e,t){const r=i.ɵfindLocaleData(n);zn(r);const o=[r[i.ɵLocaleDataIndex.ExtraData][0],r[i.ɵLocaleDataIndex.ExtraData][1]],a=N(o,e)||[];return N(a,t)||[]}function N(n,e){for(let t=e;t>-1;t--)if(typeof n[t]<"u")return n[t];throw new i.ɵRuntimeError(2304,ngDevMode&&"Locale data API: locale data undefined")}function cn(n){const[e,t]=n.split(":");return{hours:+e,minutes:+t}}function Wr(n,e,t="en"){const r=Yr(t)[n]||Hn[n]||[],o=r[1];return e==="narrow"&&typeof o=="string"?o:r[0]||n}const Xr=2;function qr(n){let e;const t=Hn[n];return t&&(e=t[2]),typeof e=="number"?e:Xr}const Jr=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,be={},Qr=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function es(n,e,t,r){let o=ls(n);e=q(t,e)||e;let c=[],l;for(;e;)if(l=Qr.exec(e),l){c=c.concat(l.slice(1));const p=c.pop();if(!p)break;e=p}else{c.push(e);break}(typeof ngDevMode>"u"||ngDevMode)&&ts(c);let D=o.getTimezoneOffset();r&&(D=Kn(r,D),o=cs(o,r));let g="";return c.forEach(p=>{const h=as(p);g+=h?h(o,t,D):p==="''"?"'":p.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),g}function ts(n){if(n.some(e=>/^Y+$/.test(e))&&!n.some(e=>/^w+$/.test(e))){const e=`Suspicious use of week-based year "Y" in date pattern "${n.join("")}". Did you mean to use calendar year "y" instead?`;if(n.length===1)console.error(i.ɵformatRuntimeError(2300,e));else throw new i.ɵRuntimeError(2300,e)}}function xt(n,e,t){const r=new Date(0);return r.setFullYear(n,e,t),r.setHours(0,0,0),r}function q(n,e){const t=Ur(n);if(be[t]??(be[t]={}),be[t][e])return be[t][e];let r="";switch(e){case"shortDate":r=Rt(n,V.Short);break;case"mediumDate":r=Rt(n,V.Medium);break;case"longDate":r=Rt(n,V.Long);break;case"fullDate":r=Rt(n,V.Full);break;case"shortTime":r=kt(n,V.Short);break;case"mediumTime":r=kt(n,V.Medium);break;case"longTime":r=kt(n,V.Long);break;case"fullTime":r=kt(n,V.Full);break;case"short":const o=q(n,"shortTime"),a=q(n,"shortDate");r=Lt(Mt(n,V.Short),[o,a]);break;case"medium":const c=q(n,"mediumTime"),l=q(n,"mediumDate");r=Lt(Mt(n,V.Medium),[c,l]);break;case"long":const D=q(n,"longTime"),g=q(n,"longDate");r=Lt(Mt(n,V.Long),[D,g]);break;case"full":const p=q(n,"fullTime"),h=q(n,"fullDate");r=Lt(Mt(n,V.Full),[p,h]);break}return r&&(be[t][e]=r),r}function Lt(n,e){return e&&(n=n.replace(/\{([^}]+)}/g,function(t,r){return e!=null&&r in e?e[r]:t})),n}function $(n,e,t="-",r,o){let a="";(n<0||o&&n<=0)&&(o?n=-n+1:(n=-n,a=t));let c=String(n);for(;c.length<e;)c="0"+c;return r&&(c=c.slice(c.length-e)),a+c}function ns(n,e){return $(n,3).substring(0,e)}function I(n,e,t=0,r=!1,o=!1){return function(a,c){let l=rs(n,a);if((t>0||l>-t)&&(l+=t),n===3)l===0&&t===-12&&(l=12);else if(n===6)return ns(l,e);const D=U(c,w.MinusSign);return $(l,e,D,r,o)}}function rs(n,e){switch(n){case 0:return e.getFullYear();case 1:return e.getMonth();case 2:return e.getDate();case 3:return e.getHours();case 4:return e.getMinutes();case 5:return e.getSeconds();case 6:return e.getMilliseconds();case 7:return e.getDay();default:throw new i.ɵRuntimeError(2301,ngDevMode&&`Unknown DateType value "${n}".`)}}function A(n,e,t=x.Format,r=!1){return function(o,a){return ss(o,a,n,e,t,r)}}function ss(n,e,t,r,o,a){switch(t){case 2:return Gr(e,o,r)[n.getMonth()];case 1:return $r(e,o,r)[n.getDay()];case 0:const c=n.getHours(),l=n.getMinutes();if(a){const g=Zr(e),p=Kr(e,o,r),h=g.findIndex(E=>{if(Array.isArray(E)){const[y,T]=E,O=c>=y.hours&&l>=y.minutes,G=c<T.hours||c===T.hours&&l<T.minutes;if(y.hours<T.hours){if(O&&G)return!0}else if(O||G)return!0}else if(E.hours===c&&E.minutes===l)return!0;return!1});if(h!==-1)return p[h]}return Nr(e,o,r)[c<12?0:1];case 3:return Hr(e,r)[n.getFullYear()<=0?0:1];default:const D=t;throw new i.ɵRuntimeError(2302,ngDevMode&&`unexpected translation type ${D}`)}}function Vt(n){return function(e,t,r){const o=-1*r,a=U(t,w.MinusSign),c=o>0?Math.floor(o/60):Math.ceil(o/60);switch(n){case 0:return(o>=0?"+":"")+$(c,2,a)+$(Math.abs(o%60),2,a);case 1:return"GMT"+(o>=0?"+":"")+$(c,1,a);case 2:return"GMT"+(o>=0?"+":"")+$(c,2,a)+":"+$(Math.abs(o%60),2,a);case 3:return r===0?"Z":(o>=0?"+":"")+$(c,2,a)+":"+$(Math.abs(o%60),2,a);default:throw new i.ɵRuntimeError(2310,ngDevMode&&`Unknown zone width "${n}"`)}}}const os=0,Pt=4;function is(n){const e=xt(n,os,1).getDay();return xt(n,0,1+(e<=Pt?Pt:Pt+7)-e)}function Zn(n){const e=n.getDay(),t=e===0?-3:Pt-e;return xt(n.getFullYear(),n.getMonth(),n.getDate()+t)}function ln(n,e=!1){return function(t,r){let o;if(e){const a=new Date(t.getFullYear(),t.getMonth(),1).getDay()-1,c=t.getDate();o=1+Math.floor((c+a)/7)}else{const a=Zn(t),c=is(a.getFullYear()),l=a.getTime()-c.getTime();o=1+Math.round(l/6048e5)}return $(o,n,U(r,w.MinusSign))}}function jt(n,e=!1){return function(t,r){const a=Zn(t).getFullYear();return $(a,n,U(r,w.MinusSign),e)}}const dn={};function as(n){if(dn[n])return dn[n];let e;switch(n){case"G":case"GG":case"GGG":e=A(3,b.Abbreviated);break;case"GGGG":e=A(3,b.Wide);break;case"GGGGG":e=A(3,b.Narrow);break;case"y":e=I(0,1,0,!1,!0);break;case"yy":e=I(0,2,0,!0,!0);break;case"yyy":e=I(0,3,0,!1,!0);break;case"yyyy":e=I(0,4,0,!1,!0);break;case"Y":e=jt(1);break;case"YY":e=jt(2,!0);break;case"YYY":e=jt(3);break;case"YYYY":e=jt(4);break;case"M":case"L":e=I(1,1,1);break;case"MM":case"LL":e=I(1,2,1);break;case"MMM":e=A(2,b.Abbreviated);break;case"MMMM":e=A(2,b.Wide);break;case"MMMMM":e=A(2,b.Narrow);break;case"LLL":e=A(2,b.Abbreviated,x.Standalone);break;case"LLLL":e=A(2,b.Wide,x.Standalone);break;case"LLLLL":e=A(2,b.Narrow,x.Standalone);break;case"w":e=ln(1);break;case"ww":e=ln(2);break;case"W":e=ln(1,!0);break;case"d":e=I(2,1);break;case"dd":e=I(2,2);break;case"c":case"cc":e=I(7,1);break;case"ccc":e=A(1,b.Abbreviated,x.Standalone);break;case"cccc":e=A(1,b.Wide,x.Standalone);break;case"ccccc":e=A(1,b.Narrow,x.Standalone);break;case"cccccc":e=A(1,b.Short,x.Standalone);break;case"E":case"EE":case"EEE":e=A(1,b.Abbreviated);break;case"EEEE":e=A(1,b.Wide);break;case"EEEEE":e=A(1,b.Narrow);break;case"EEEEEE":e=A(1,b.Short);break;case"a":case"aa":case"aaa":e=A(0,b.Abbreviated);break;case"aaaa":e=A(0,b.Wide);break;case"aaaaa":e=A(0,b.Narrow);break;case"b":case"bb":case"bbb":e=A(0,b.Abbreviated,x.Standalone,!0);break;case"bbbb":e=A(0,b.Wide,x.Standalone,!0);break;case"bbbbb":e=A(0,b.Narrow,x.Standalone,!0);break;case"B":case"BB":case"BBB":e=A(0,b.Abbreviated,x.Format,!0);break;case"BBBB":e=A(0,b.Wide,x.Format,!0);break;case"BBBBB":e=A(0,b.Narrow,x.Format,!0);break;case"h":e=I(3,1,-12);break;case"hh":e=I(3,2,-12);break;case"H":e=I(3,1);break;case"HH":e=I(3,2);break;case"m":e=I(4,1);break;case"mm":e=I(4,2);break;case"s":e=I(5,1);break;case"ss":e=I(5,2);break;case"S":e=I(6,1);break;case"SS":e=I(6,2);break;case"SSS":e=I(6,3);break;case"Z":case"ZZ":case"ZZZ":e=Vt(0);break;case"ZZZZZ":e=Vt(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=Vt(1);break;case"OOOO":case"ZZZZ":case"zzzz":e=Vt(2);break;default:return null}return dn[n]=e,e}function Kn(n,e){n=n.replace(/:/g,"");const t=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(t)?e:t}function us(n,e){return n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+e),n}function cs(n,e,t){const o=n.getTimezoneOffset(),a=Kn(e,o);return us(n,-1*(a-o))}function ls(n){if(Wn(n))return n;if(typeof n=="number"&&!isNaN(n))return new Date(n);if(typeof n=="string"){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[o,a=1,c=1]=n.split("-").map(l=>+l);return xt(o,a-1,c)}const t=parseFloat(n);if(!isNaN(n-t))return new Date(t);let r;if(r=n.match(Jr))return ds(r)}const e=new Date(n);if(!Wn(e))throw new i.ɵRuntimeError(2311,ngDevMode&&`Unable to convert "${n}" into a date`);return e}function ds(n){const e=new Date(0);let t=0,r=0;const o=n[8]?e.setUTCFullYear:e.setFullYear,a=n[8]?e.setUTCHours:e.setHours;n[9]&&(t=Number(n[9]+n[10]),r=Number(n[9]+n[11])),o.call(e,Number(n[1]),Number(n[2])-1,Number(n[3]));const c=Number(n[4]||0)-t,l=Number(n[5]||0)-r,D=Number(n[6]||0),g=Math.floor(parseFloat("0."+(n[7]||0))*1e3);return a.call(e,c,l,D,g),e}function Wn(n){return n instanceof Date&&!isNaN(n.valueOf())}const fs=/^(\d+)?\.((\d+)(-(\d+))?)?$/,Xn=22,Ut=".",Ft="0",ps=";",Ds=",",fn="#",qn="¤",hs="%";function pn(n,e,t,r,o,a,c=!1){let l="",D=!1;if(!isFinite(n))l=U(t,w.Infinity);else{let g=Fs(n);c&&(g=Cs(g));let p=e.minInt,h=e.minFrac,E=e.maxFrac;if(a){const ie=a.match(fs);if(ie===null)throw new i.ɵRuntimeError(2306,ngDevMode&&`${a} is not a valid digit info`);const $t=ie[1],bt=ie[3],Gt=ie[5];$t!=null&&(p=hn($t)),bt!=null&&(h=hn(bt)),Gt!=null?E=hn(Gt):bt!=null&&h>E&&(E=h)}Es(g,h,E);let y=g.digits,T=g.integerLen;const O=g.exponent;let G=[];for(D=y.every(ie=>!ie);T<p;T++)y.unshift(0);for(;T<0;T++)y.unshift(0);T>0?G=y.splice(T,y.length):(G=y,y=[0]);const pt=[];for(y.length>=e.lgSize&&pt.unshift(y.splice(-e.lgSize,y.length).join(""));y.length>e.gSize;)pt.unshift(y.splice(-e.gSize,y.length).join(""));y.length&&pt.unshift(y.join("")),l=pt.join(U(t,r)),G.length&&(l+=U(t,o)+G.join("")),O&&(l+=U(t,w.Exponential)+"+"+O)}return n<0&&!D?l=e.negPre+l+e.negSuf:l=e.posPre+l+e.posSuf,l}function gs(n,e,t,r,o){const a=un(e,Ct.Currency),c=Dn(a,U(e,w.MinusSign));return c.minFrac=qr(r),c.maxFrac=c.minFrac,pn(n,c,e,w.CurrencyGroup,w.CurrencyDecimal,o).replace(qn,t).replace(qn,"").trim()}function ms(n,e,t){const r=un(e,Ct.Percent),o=Dn(r,U(e,w.MinusSign));return pn(n,o,e,w.Group,w.Decimal,t,!0).replace(new RegExp(hs,"g"),U(e,w.PercentSign))}function ys(n,e,t){const r=un(e,Ct.Decimal),o=Dn(r,U(e,w.MinusSign));return pn(n,o,e,w.Group,w.Decimal,t)}function Dn(n,e="-"){const t={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},r=n.split(ps),o=r[0],a=r[1],c=o.indexOf(Ut)!==-1?o.split(Ut):[o.substring(0,o.lastIndexOf(Ft)+1),o.substring(o.lastIndexOf(Ft)+1)],l=c[0],D=c[1]||"";t.posPre=l.substring(0,l.indexOf(fn));for(let p=0;p<D.length;p++){const h=D.charAt(p);h===Ft?t.minFrac=t.maxFrac=p+1:h===fn?t.maxFrac=p+1:t.posSuf+=h}const g=l.split(Ds);if(t.gSize=g[1]?g[1].length:0,t.lgSize=g[2]||g[1]?(g[2]||g[1]).length:0,a){const p=o.length-t.posPre.length-t.posSuf.length,h=a.indexOf(fn);t.negPre=a.substring(0,h).replace(/'/g,""),t.negSuf=a.slice(h+p).replace(/'/g,"")}else t.negPre=e+t.posPre,t.negSuf=t.posSuf;return t}function Cs(n){if(n.digits[0]===0)return n;const e=n.digits.length-n.integerLen;return n.exponent?n.exponent+=2:(e===0?n.digits.push(0,0):e===1&&n.digits.push(0),n.integerLen+=2),n}function Fs(n){let e=Math.abs(n)+"",t=0,r,o,a,c,l;for((o=e.indexOf(Ut))>-1&&(e=e.replace(Ut,"")),(a=e.search(/e/i))>0?(o<0&&(o=a),o+=+e.slice(a+1),e=e.substring(0,a)):o<0&&(o=e.length),a=0;e.charAt(a)===Ft;a++);if(a===(l=e.length))r=[0],o=1;else{for(l--;e.charAt(l)===Ft;)l--;for(o-=a,r=[],c=0;a<=l;a++,c++)r[c]=Number(e.charAt(a))}return o>Xn&&(r=r.splice(0,Xn-1),t=o-1,o=1),{digits:r,exponent:t,integerLen:o}}function Es(n,e,t){if(e>t)throw new i.ɵRuntimeError(2307,ngDevMode&&`The minimum number of digits after fraction (${e}) is higher than the maximum (${t}).`);let r=n.digits,o=r.length-n.integerLen;const a=Math.min(Math.max(e,o),t);let c=a+n.integerLen,l=r[c];if(c>0){r.splice(Math.max(n.integerLen,c));for(let h=c;h<r.length;h++)r[h]=0}else{o=Math.max(0,o),n.integerLen=1,r.length=Math.max(1,c=a+1),r[0]=0;for(let h=1;h<c;h++)r[h]=0}if(l>=5)if(c-1<0){for(let h=0;h>c;h--)r.unshift(0),n.integerLen++;r.unshift(1),n.integerLen++}else r[c-1]++;for(;o<Math.max(0,a);o++)r.push(0);let D=a!==0;const g=e+n.integerLen,p=r.reduceRight(function(h,E,y,T){return E=E+h,T[y]=E<10?E:E-10,D&&(T[y]===0&&y>=g?T.pop():D=!1),E>=10?1:0},0);p&&(r.unshift(p),n.integerLen++)}function hn(n){const e=parseInt(n);if(isNaN(e))throw new i.ɵRuntimeError(2305,ngDevMode&&"Invalid integer literal when parsing "+n);return e}const Qe=class Qe{};u(Qe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Qe,deps:[],target:s.ɵɵFactoryTarget.Injectable})),u(Qe,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Qe,providedIn:"root",useFactory:()=>new Et(i.inject(i.LOCALE_ID))}));let ne=Qe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ne,decorators:[{type:i.Injectable,args:[{providedIn:"root",useFactory:()=>new Et(i.inject(i.LOCALE_ID))}]}]});function Jn(n,e,t,r){let o=`=${n}`;if(e.indexOf(o)>-1||(o=t.getPluralCategory(n,r),e.indexOf(o)>-1))return o;if(e.indexOf("other")>-1)return"other";throw new i.ɵRuntimeError(2308,ngDevMode&&`No plural message found for value "${n}"`)}const et=class et extends ne{constructor(t){super();u(this,"locale");this.locale=t}getPluralCategory(t,r){switch(zr(r||this.locale)(t)){case ue.Zero:return"zero";case ue.One:return"one";case ue.Two:return"two";case ue.Few:return"few";case ue.Many:return"many";default:return"other"}}};u(et,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:et,deps:[{token:i.LOCALE_ID}],target:s.ɵɵFactoryTarget.Injectable})),u(et,"ɵprov",s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:et}));let Et=et;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Et,decorators:[{type:i.Injectable}],ctorParameters:()=>[{type:void 0,decorators:[{type:i.Inject,args:[i.LOCALE_ID]}]}]});const gn=/\s+/,Qn=[],tt=class tt{constructor(e,t){u(this,"_ngEl");u(this,"_renderer");u(this,"initialClasses",Qn);u(this,"rawClass");u(this,"stateMap",new Map);this._ngEl=e,this._renderer=t}set klass(e){this.initialClasses=e!=null?e.trim().split(gn):Qn}set ngClass(e){this.rawClass=typeof e=="string"?e.trim().split(gn):e}ngDoCheck(){for(const t of this.initialClasses)this._updateState(t,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const t of e)this._updateState(t,!0);else if(e!=null)for(const t of Object.keys(e))this._updateState(t,!!e[t]);this._applyStateDiff()}_updateState(e,t){const r=this.stateMap.get(e);r!==void 0?(r.enabled!==t&&(r.changed=!0,r.enabled=t),r.touched=!0):this.stateMap.set(e,{enabled:t,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const t=e[0],r=e[1];r.changed?(this._toggleClass(t,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(t,!1),this.stateMap.delete(t)),r.touched=!1}}_toggleClass(e,t){if(ngDevMode&&typeof e!="string")throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${i.ɵstringify(e)}`);e=e.trim(),e.length>0&&e.split(gn).forEach(r=>{t?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}};u(tt,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:tt,deps:[{token:s.ElementRef},{token:s.Renderer2}],target:s.ɵɵFactoryTarget.Directive})),u(tt,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:tt,isStandalone:!0,selector:"[ngClass]",inputs:{klass:["class","klass"],ngClass:"ngClass"},ngImport:s}));let Ae=tt;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ae,decorators:[{type:i.Directive,args:[{selector:"[ngClass]"}]}],ctorParameters:()=>[{type:s.ElementRef},{type:s.Renderer2}],propDecorators:{klass:[{type:i.Input,args:["class"]}],ngClass:[{type:i.Input,args:["ngClass"]}]}});const nt=class nt{constructor(e){u(this,"_viewContainerRef");u(this,"ngComponentOutlet",null);u(this,"ngComponentOutletInputs");u(this,"ngComponentOutletInjector");u(this,"ngComponentOutletEnvironmentInjector");u(this,"ngComponentOutletContent");u(this,"ngComponentOutletNgModule");u(this,"_componentRef");u(this,"_moduleRef");u(this,"_inputsUsed",new Map);this._viewContainerRef=e}get componentInstance(){var e;return((e=this._componentRef)==null?void 0:e.instance)??null}_needToReCreateNgModuleInstance(e){return e.ngComponentOutletNgModule!==void 0}_needToReCreateComponentInstance(e){return e.ngComponentOutlet!==void 0||e.ngComponentOutletContent!==void 0||e.ngComponentOutletInjector!==void 0||e.ngComponentOutletEnvironmentInjector!==void 0||this._needToReCreateNgModuleInstance(e)}ngOnChanges(e){var t;if(this._needToReCreateComponentInstance(e)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){const r=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(e)&&((t=this._moduleRef)==null||t.destroy(),this.ngComponentOutletNgModule?this._moduleRef=i.createNgModule(this.ngComponentOutletNgModule,vs(r)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:r,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent,environmentInjector:this.ngComponentOutletEnvironmentInjector})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(const e of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(e,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){var e;(e=this._moduleRef)==null||e.destroy()}_applyInputStateDiff(e){for(const[t,r]of this._inputsUsed)r?(e.setInput(t,this.ngComponentOutletInputs[t]),this._inputsUsed.set(t,!1)):(e.setInput(t,void 0),this._inputsUsed.delete(t))}};u(nt,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:nt,deps:[{token:s.ViewContainerRef}],target:s.ɵɵFactoryTarget.Directive})),u(nt,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:nt,isStandalone:!0,selector:"[ngComponentOutlet]",inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletEnvironmentInjector:"ngComponentOutletEnvironmentInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule"},exportAs:["ngComponentOutlet"],usesOnChanges:!0,ngImport:s}));let _e=nt;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:_e,decorators:[{type:i.Directive,args:[{selector:"[ngComponentOutlet]",exportAs:"ngComponentOutlet"}]}],ctorParameters:()=>[{type:s.ViewContainerRef}],propDecorators:{ngComponentOutlet:[{type:i.Input}],ngComponentOutletInputs:[{type:i.Input}],ngComponentOutletInjector:[{type:i.Input}],ngComponentOutletEnvironmentInjector:[{type:i.Input}],ngComponentOutletContent:[{type:i.Input}],ngComponentOutletNgModule:[{type:i.Input}]}});function vs(n){return n.get(i.NgModuleRef).injector}class bs{constructor(e,t,r,o){u(this,"$implicit");u(this,"ngForOf");u(this,"index");u(this,"count");this.$implicit=e,this.ngForOf=t,this.index=r,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}}const rt=class rt{constructor(e,t,r){u(this,"_viewContainer");u(this,"_template");u(this,"_differs");u(this,"_ngForOf",null);u(this,"_ngForOfDirty",!0);u(this,"_differ",null);u(this,"_trackByFn");this._viewContainer=e,this._template=t,this._differs=r}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){(typeof ngDevMode>"u"||ngDevMode)&&e!=null&&typeof e!="function"&&console.warn(`trackBy must be a function, but received ${JSON.stringify(e)}. See https://angular.dev/api/common/NgForOf#change-propagation for more information.`),this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;if(!this._differ&&e)if(typeof ngDevMode>"u"||ngDevMode)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch{let t=`Cannot find a differ supporting object '${e}' of type '${As(e)}'. NgFor only supports binding to Iterables, such as Arrays.`;throw typeof e=="object"&&(t+=" Did you mean to use the keyvalue pipe?"),new i.ɵRuntimeError(-2200,t)}else this._differ=this._differs.find(e).create(this.ngForTrackBy)}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const t=this._viewContainer;e.forEachOperation((r,o,a)=>{if(r.previousIndex==null)t.createEmbeddedView(this._template,new bs(r.item,this._ngForOf,-1,-1),a===null?void 0:a);else if(a==null)t.remove(o===null?void 0:o);else if(o!==null){const c=t.get(o);t.move(c,a),er(c,r)}});for(let r=0,o=t.length;r<o;r++){const c=t.get(r).context;c.index=r,c.count=o,c.ngForOf=this._ngForOf}e.forEachIdentityChange(r=>{const o=t.get(r.currentIndex);er(o,r)})}static ngTemplateContextGuard(e,t){return!0}};u(rt,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:rt,deps:[{token:s.ViewContainerRef},{token:s.TemplateRef},{token:s.IterableDiffers}],target:s.ɵɵFactoryTarget.Directive})),u(rt,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:rt,isStandalone:!0,selector:"[ngFor][ngForOf]",inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},ngImport:s}));let Se=rt;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Se,decorators:[{type:i.Directive,args:[{selector:"[ngFor][ngForOf]"}]}],ctorParameters:()=>[{type:s.ViewContainerRef},{type:s.TemplateRef},{type:s.IterableDiffers}],propDecorators:{ngForOf:[{type:i.Input}],ngForTrackBy:[{type:i.Input}],ngForTemplate:[{type:i.Input}]}});function er(n,e){n.context.$implicit=e.item}function As(n){return n.name||typeof n}const se=class se{constructor(e,t){u(this,"_viewContainer");u(this,"_context",new _s);u(this,"_thenTemplateRef",null);u(this,"_elseTemplateRef",null);u(this,"_thenViewRef",null);u(this,"_elseViewRef",null);this._viewContainer=e,this._thenTemplateRef=t}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){tr(e,(typeof ngDevMode>"u"||ngDevMode)&&"ngIfThen"),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){tr(e,(typeof ngDevMode>"u"||ngDevMode)&&"ngIfElse"),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,t){return!0}};u(se,"ngIfUseIfTypeGuard"),u(se,"ngTemplateGuard_ngIf"),u(se,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:se,deps:[{token:s.ViewContainerRef},{token:s.TemplateRef}],target:s.ɵɵFactoryTarget.Directive})),u(se,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:se,isStandalone:!0,selector:"[ngIf]",inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},ngImport:s}));let we=se;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:we,decorators:[{type:i.Directive,args:[{selector:"[ngIf]"}]}],ctorParameters:()=>[{type:s.ViewContainerRef},{type:s.TemplateRef}],propDecorators:{ngIf:[{type:i.Input}],ngIfThen:[{type:i.Input}],ngIfElse:[{type:i.Input}]}});class _s{constructor(){u(this,"$implicit",null);u(this,"ngIf",null)}}function tr(n,e){if(n&&!n.createEmbeddedView)throw new i.ɵRuntimeError(2020,(typeof ngDevMode>"u"||ngDevMode)&&`${e} must be a TemplateRef, but received '${i.ɵstringify(n)}'.`)}class mn{constructor(e,t){u(this,"_viewContainerRef");u(this,"_templateRef");u(this,"_created",!1);this._viewContainerRef=e,this._templateRef=t}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(e){e&&!this._created?this.create():!e&&this._created&&this.destroy()}}const st=class st{constructor(){u(this,"_defaultViews",[]);u(this,"_defaultUsed",!1);u(this,"_caseCount",0);u(this,"_lastCaseCheckIndex",0);u(this,"_lastCasesMatched",!1);u(this,"_ngSwitch")}set ngSwitch(e){this._ngSwitch=e,this._caseCount===0&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const t=e===this._ngSwitch;return this._lastCasesMatched||(this._lastCasesMatched=t),this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),t}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const t of this._defaultViews)t.enforceState(e)}}};u(st,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:st,deps:[],target:s.ɵɵFactoryTarget.Directive})),u(st,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:st,isStandalone:!0,selector:"[ngSwitch]",inputs:{ngSwitch:"ngSwitch"},ngImport:s}));let H=st;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:H,decorators:[{type:i.Directive,args:[{selector:"[ngSwitch]"}]}],propDecorators:{ngSwitch:[{type:i.Input}]}});const ot=class ot{constructor(e,t,r){u(this,"ngSwitch");u(this,"_view");u(this,"ngSwitchCase");this.ngSwitch=r,(typeof ngDevMode>"u"||ngDevMode)&&!r&&nr("ngSwitchCase","NgSwitchCase"),r._addCase(),this._view=new mn(e,t)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}};u(ot,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ot,deps:[{token:s.ViewContainerRef},{token:s.TemplateRef},{token:H,host:!0,optional:!0}],target:s.ɵɵFactoryTarget.Directive})),u(ot,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:ot,isStandalone:!0,selector:"[ngSwitchCase]",inputs:{ngSwitchCase:"ngSwitchCase"},ngImport:s}));let Ie=ot;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ie,decorators:[{type:i.Directive,args:[{selector:"[ngSwitchCase]"}]}],ctorParameters:()=>[{type:s.ViewContainerRef},{type:s.TemplateRef},{type:H,decorators:[{type:i.Optional},{type:i.Host}]}],propDecorators:{ngSwitchCase:[{type:i.Input}]}});const it=class it{constructor(e,t,r){(typeof ngDevMode>"u"||ngDevMode)&&!r&&nr("ngSwitchDefault","NgSwitchDefault"),r._addDefault(new mn(e,t))}};u(it,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:it,deps:[{token:s.ViewContainerRef},{token:s.TemplateRef},{token:H,host:!0,optional:!0}],target:s.ɵɵFactoryTarget.Directive})),u(it,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:it,isStandalone:!0,selector:"[ngSwitchDefault]",ngImport:s}));let Te=it;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Te,decorators:[{type:i.Directive,args:[{selector:"[ngSwitchDefault]"}]}],ctorParameters:()=>[{type:s.ViewContainerRef},{type:s.TemplateRef},{type:H,decorators:[{type:i.Optional},{type:i.Host}]}]});function nr(n,e){throw new i.ɵRuntimeError(2e3,`An element with the "${n}" attribute (matching the "${e}" directive) must be located inside an element with the "ngSwitch" attribute (matching "NgSwitch" directive)`)}const at=class at{constructor(e){u(this,"_localization");u(this,"_activeView");u(this,"_caseViews",{});this._localization=e}set ngPlural(e){this._updateView(e)}addCase(e,t){this._caseViews[e]=t}_updateView(e){this._clearViews();const t=Object.keys(this._caseViews),r=Jn(e,t,this._localization);this._activateView(this._caseViews[r])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(e){e&&(this._activeView=e,this._activeView.create())}};u(at,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:at,deps:[{token:ne}],target:s.ɵɵFactoryTarget.Directive})),u(at,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:at,isStandalone:!0,selector:"[ngPlural]",inputs:{ngPlural:"ngPlural"},ngImport:s}));let re=at;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:re,decorators:[{type:i.Directive,args:[{selector:"[ngPlural]"}]}],ctorParameters:()=>[{type:ne}],propDecorators:{ngPlural:[{type:i.Input}]}});const ut=class ut{constructor(e,t,r,o){u(this,"value");this.value=e;const a=!isNaN(Number(e));o.addCase(a?`=${e}`:e,new mn(r,t))}};u(ut,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ut,deps:[{token:"ngPluralCase",attribute:!0},{token:s.TemplateRef},{token:s.ViewContainerRef},{token:re,host:!0}],target:s.ɵɵFactoryTarget.Directive})),u(ut,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:ut,isStandalone:!0,selector:"[ngPluralCase]",ngImport:s}));let Oe=ut;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Oe,decorators:[{type:i.Directive,args:[{selector:"[ngPluralCase]"}]}],ctorParameters:()=>[{type:void 0,decorators:[{type:i.Attribute,args:["ngPluralCase"]}]},{type:s.TemplateRef},{type:s.ViewContainerRef},{type:re,decorators:[{type:i.Host}]}]});const ct=class ct{constructor(e,t,r){u(this,"_ngEl");u(this,"_differs");u(this,"_renderer");u(this,"_ngStyle",null);u(this,"_differ",null);this._ngEl=e,this._differs=t,this._renderer=r}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,t){const[r,o]=e.split("."),a=r.indexOf("-")===-1?void 0:i.RendererStyleFlags2.DashCase;t!=null?this._renderer.setStyle(this._ngEl.nativeElement,r,o?`${t}${o}`:t,a):this._renderer.removeStyle(this._ngEl.nativeElement,r,a)}_applyChanges(e){e.forEachRemovedItem(t=>this._setStyle(t.key,null)),e.forEachAddedItem(t=>this._setStyle(t.key,t.currentValue)),e.forEachChangedItem(t=>this._setStyle(t.key,t.currentValue))}};u(ct,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ct,deps:[{token:s.ElementRef},{token:s.KeyValueDiffers},{token:s.Renderer2}],target:s.ɵɵFactoryTarget.Directive})),u(ct,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:ct,isStandalone:!0,selector:"[ngStyle]",inputs:{ngStyle:"ngStyle"},ngImport:s}));let Be=ct;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Be,decorators:[{type:i.Directive,args:[{selector:"[ngStyle]"}]}],ctorParameters:()=>[{type:s.ElementRef},{type:s.KeyValueDiffers},{type:s.Renderer2}],propDecorators:{ngStyle:[{type:i.Input,args:["ngStyle"]}]}});const lt=class lt{constructor(e){u(this,"_viewContainerRef");u(this,"_viewRef",null);u(this,"ngTemplateOutletContext",null);u(this,"ngTemplateOutlet",null);u(this,"ngTemplateOutletInjector",null);u(this,"injector",i.inject(i.Injector));this._viewContainerRef=e}ngOnChanges(e){if(this._shouldRecreateView(e)){const t=this._viewContainerRef;if(this._viewRef&&t.remove(t.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}const r=this._createContextForwardProxy();this._viewRef=t.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this._getInjector()})}}_getInjector(){return this.ngTemplateOutletInjector==="outlet"?this.injector:this.ngTemplateOutletInjector??void 0}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,t,r)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,t,r):!1,get:(e,t,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,t,r)}})}};u(lt,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:lt,deps:[{token:s.ViewContainerRef}],target:s.ɵɵFactoryTarget.Directive})),u(lt,"ɵdir",s.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"21.2.3",type:lt,isStandalone:!0,selector:"[ngTemplateOutlet]",inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},usesOnChanges:!0,ngImport:s}));let Re=lt;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Re,decorators:[{type:i.Directive,args:[{selector:"[ngTemplateOutlet]"}]}],ctorParameters:()=>[{type:s.ViewContainerRef}],propDecorators:{ngTemplateOutletContext:[{type:i.Input}],ngTemplateOutlet:[{type:i.Input}],ngTemplateOutletInjector:[{type:i.Input}]}});const rr=[Ae,_e,Se,we,Re,Be,H,Ie,Te,re,Oe];function J(n,e){return new i.ɵRuntimeError(2100,ngDevMode&&`InvalidPipeArgument: '${e}' for pipe '${i.ɵstringify(n)}'`)}function sr(n,e){i.isSignal(e)&&console.warn(`The ${n} does not unwrap signals. Received a signal with value:`,e())}class Ss{createSubscription(e,t,r){return i.untracked(()=>e.subscribe({next:t,error:r}))}dispose(e){i.untracked(()=>e.unsubscribe())}}class ws{createSubscription(e,t,r){return e.then(o=>t==null?void 0:t(o),o=>r==null?void 0:r(o)),{unsubscribe:()=>{t=null,r=null}}}dispose(e){e.unsubscribe()}}const Is=new ws,Ts=new Ss,le=class le{constructor(e){u(this,"_ref");u(this,"_latestValue",null);u(this,"markForCheckOnValueUpdate",!0);u(this,"_subscription",null);u(this,"_obj",null);u(this,"_strategy",null);u(this,"applicationErrorHandler",i.inject(i.ɵINTERNAL_APPLICATION_ERROR_HANDLER));this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,t=>this._updateLatestValue(e,t),t=>this.applicationErrorHandler(t))}_selectStrategy(e){if(i.ɵisPromise(e))return Is;if(i.ɵisSubscribable(e))return Ts;throw J(le,e)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,t){var r;e===this._obj&&(this._latestValue=t,this.markForCheckOnValueUpdate&&((r=this._ref)==null||r.markForCheck()))}};u(le,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:le,deps:[{token:s.ChangeDetectorRef}],target:s.ɵɵFactoryTarget.Pipe})),u(le,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:le,isStandalone:!0,name:"async",pure:!1}));let ke=le;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ke,decorators:[{type:i.Pipe,args:[{name:"async",pure:!1}]}],ctorParameters:()=>[{type:s.ChangeDetectorRef}]});const de=class de{transform(e){return e==null?null:(yn(de,e),e.toLowerCase())}};u(de,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:de,deps:[],target:s.ɵɵFactoryTarget.Pipe})),u(de,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:de,isStandalone:!0,name:"lowercase"}));let Me=de;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Me,decorators:[{type:i.Pipe,args:[{name:"lowercase"}]}]});const Os=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g,fe=class fe{transform(e){return e==null?null:(yn(fe,e),e.replace(Os,t=>t[0].toUpperCase()+t.slice(1).toLowerCase()))}};u(fe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:fe,deps:[],target:s.ɵɵFactoryTarget.Pipe})),u(fe,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:fe,isStandalone:!0,name:"titlecase"}));let xe=fe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:xe,decorators:[{type:i.Pipe,args:[{name:"titlecase"}]}]});const pe=class pe{transform(e){return e==null?null:(yn(pe,e),e.toUpperCase())}};u(pe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:pe,deps:[],target:s.ɵɵFactoryTarget.Pipe})),u(pe,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:pe,isStandalone:!0,name:"uppercase"}));let Le=pe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Le,decorators:[{type:i.Pipe,args:[{name:"uppercase"}]}]});function yn(n,e){if(typeof e!="string")throw J(n,e)}const Bs="mediumDate",or=new i.InjectionToken(typeof ngDevMode<"u"&&ngDevMode?"DATE_PIPE_DEFAULT_TIMEZONE":""),ir=new i.InjectionToken(typeof ngDevMode<"u"&&ngDevMode?"DATE_PIPE_DEFAULT_OPTIONS":""),De=class De{constructor(e,t,r){u(this,"locale");u(this,"defaultTimezone");u(this,"defaultOptions");this.locale=e,this.defaultTimezone=t,this.defaultOptions=r}transform(e,t,r,o){var a,c;if(e==null||e===""||e!==e)return null;try{const l=t??((a=this.defaultOptions)==null?void 0:a.dateFormat)??Bs,D=r??((c=this.defaultOptions)==null?void 0:c.timezone)??this.defaultTimezone??void 0;return es(e,l,o||this.locale,D)}catch(l){throw J(De,l.message)}}};u(De,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:De,deps:[{token:i.LOCALE_ID},{token:or,optional:!0},{token:ir,optional:!0}],target:s.ɵɵFactoryTarget.Pipe})),u(De,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:De,isStandalone:!0,name:"date"}));let Ve=De;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ve,decorators:[{type:i.Pipe,args:[{name:"date"}]}],ctorParameters:()=>[{type:void 0,decorators:[{type:i.Inject,args:[i.LOCALE_ID]}]},{type:void 0,decorators:[{type:i.Inject,args:[or]},{type:i.Optional}]},{type:void 0,decorators:[{type:i.Inject,args:[ir]},{type:i.Optional}]}]});const Rs=/#/g,he=class he{constructor(e){u(this,"_localization");this._localization=e}transform(e,t,r){if(e==null)return"";if(typeof t!="object"||t===null)throw J(he,t);const o=Jn(e,Object.keys(t),this._localization,r);return t[o].replace(Rs,e.toString())}};u(he,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:he,deps:[{token:ne}],target:s.ɵɵFactoryTarget.Pipe})),u(he,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:he,isStandalone:!0,name:"i18nPlural"}));let Pe=he;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Pe,decorators:[{type:i.Pipe,args:[{name:"i18nPlural"}]}],ctorParameters:()=>[{type:ne}]});const ge=class ge{transform(e,t){if(e==null)return"";if(typeof t!="object"||typeof e!="string")throw J(ge,t);return t.hasOwnProperty(e)?t[e]:t.hasOwnProperty("other")?t.other:""}};u(ge,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ge,deps:[],target:s.ɵɵFactoryTarget.Pipe})),u(ge,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:ge,isStandalone:!0,name:"i18nSelect"}));let je=ge;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:je,decorators:[{type:i.Pipe,args:[{name:"i18nSelect"}]}]});const dt=class dt{transform(e){return ngDevMode&&sr("JsonPipe",e),JSON.stringify(e,null,2)}};u(dt,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:dt,deps:[],target:s.ɵɵFactoryTarget.Pipe})),u(dt,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:dt,isStandalone:!0,name:"json",pure:!1}));let Ue=dt;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ue,decorators:[{type:i.Pipe,args:[{name:"json",pure:!1}]}]});function ks(n,e){return{key:n,value:e}}const ft=class ft{constructor(e){u(this,"differs");u(this,"differ");u(this,"keyValues",[]);u(this,"compareFn",ar);this.differs=e}transform(e,t=ar){if(ngDevMode&&sr("KeyValuePipe",e),!e||!(e instanceof Map)&&typeof e!="object")return null;this.differ??(this.differ=this.differs.find(e).create());const r=this.differ.diff(e),o=t!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(a=>{this.keyValues.push(ks(a.key,a.currentValue))})),(r||o)&&(t&&this.keyValues.sort(t),this.compareFn=t),this.keyValues}};u(ft,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ft,deps:[{token:s.KeyValueDiffers}],target:s.ɵɵFactoryTarget.Pipe})),u(ft,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:ft,isStandalone:!0,name:"keyvalue",pure:!1}));let Ne=ft;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ne,decorators:[{type:i.Pipe,args:[{name:"keyvalue",pure:!1}]}],ctorParameters:()=>[{type:s.KeyValueDiffers}]});function ar(n,e){const t=n.key,r=e.key;if(t===r)return 0;if(t==null)return 1;if(r==null)return-1;if(typeof t=="string"&&typeof r=="string")return t<r?-1:1;if(typeof t=="number"&&typeof r=="number")return t-r;if(typeof t=="boolean"&&typeof r=="boolean")return t<r?-1:1;const o=String(t),a=String(r);return o==a?0:o<a?-1:1}const me=class me{constructor(e){u(this,"_locale");this._locale=e}transform(e,t,r){if(!Cn(e))return null;r||(r=this._locale);try{const o=Fn(e);return ys(o,r,t)}catch(o){throw J(me,o.message)}}};u(me,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:me,deps:[{token:i.LOCALE_ID}],target:s.ɵɵFactoryTarget.Pipe})),u(me,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:me,isStandalone:!0,name:"number"}));let $e=me;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:$e,decorators:[{type:i.Pipe,args:[{name:"number"}]}],ctorParameters:()=>[{type:void 0,decorators:[{type:i.Inject,args:[i.LOCALE_ID]}]}]});const ye=class ye{constructor(e){u(this,"_locale");this._locale=e}transform(e,t,r){if(!Cn(e))return null;r||(r=this._locale);try{const o=Fn(e);return ms(o,r,t)}catch(o){throw J(ye,o.message)}}};u(ye,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:ye,deps:[{token:i.LOCALE_ID}],target:s.ɵɵFactoryTarget.Pipe})),u(ye,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:ye,isStandalone:!0,name:"percent"}));let Ge=ye;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ge,decorators:[{type:i.Pipe,args:[{name:"percent"}]}],ctorParameters:()=>[{type:void 0,decorators:[{type:i.Inject,args:[i.LOCALE_ID]}]}]});const Ce=class Ce{constructor(e,t="USD"){u(this,"_locale");u(this,"_defaultCurrencyCode");this._locale=e,this._defaultCurrencyCode=t}transform(e,t=this._defaultCurrencyCode,r="symbol",o,a){if(!Cn(e))return null;a||(a=this._locale),typeof r=="boolean"&&((typeof ngDevMode>"u"||ngDevMode)&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),r=r?"symbol":"code");let c=t||this._defaultCurrencyCode;r!=="code"&&(r==="symbol"||r==="symbol-narrow"?c=Wr(c,r==="symbol"?"wide":"narrow",a):c=r);try{const l=Fn(e);return gs(l,a,c,t,o)}catch(l){throw J(Ce,l.message)}}};u(Ce,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ce,deps:[{token:i.LOCALE_ID},{token:i.DEFAULT_CURRENCY_CODE}],target:s.ɵɵFactoryTarget.Pipe})),u(Ce,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:Ce,isStandalone:!0,name:"currency"}));let He=Ce;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:He,decorators:[{type:i.Pipe,args:[{name:"currency"}]}],ctorParameters:()=>[{type:void 0,decorators:[{type:i.Inject,args:[i.LOCALE_ID]}]},{type:void 0,decorators:[{type:i.Inject,args:[i.DEFAULT_CURRENCY_CODE]}]}]});function Cn(n){return!(n==null||n===""||n!==n)}function Fn(n){if(typeof n=="string"&&!isNaN(Number(n)-parseFloat(n)))return Number(n);if(typeof n!="number")throw new i.ɵRuntimeError(2309,ngDevMode&&`${n} is not a number`);return n}const Fe=class Fe{transform(e,t,r){if(e==null)return null;if(!(typeof e=="string"||Array.isArray(e)))throw J(Fe,e);return e.slice(t,r)}};u(Fe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Fe,deps:[],target:s.ɵɵFactoryTarget.Pipe})),u(Fe,"ɵpipe",s.ɵɵngDeclarePipe({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:Fe,isStandalone:!0,name:"slice",pure:!1}));let Ye=Fe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:Ye,decorators:[{type:i.Pipe,args:[{name:"slice",pure:!1}]}]});const ur=[ke,Le,Me,Ue,Ye,$e,Ge,xe,He,Ve,Pe,je,Ne],oe=class oe{};u(oe,"ɵfac",s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:oe,deps:[],target:s.ɵɵFactoryTarget.NgModule})),u(oe,"ɵmod",s.ɵɵngDeclareNgModule({minVersion:"14.0.0",version:"21.2.3",ngImport:s,type:oe,imports:[Ae,_e,Se,we,Re,Be,H,Ie,Te,re,Oe,ke,Le,Me,Ue,Ye,$e,Ge,xe,He,Ve,Pe,je,Ne],exports:[Ae,_e,Se,we,Re,Be,H,Ie,Te,re,Oe,ke,Le,Me,Ue,Ye,$e,Ge,xe,He,Ve,Pe,je,Ne]})),u(oe,"ɵinj",s.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:oe}));let vt=oe;s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"21.2.3",ngImport:s,type:vt,decorators:[{type:i.NgModule,args:[{imports:[rr,ur],exports:[rr,ur]}]}]}),lr=[i.Component({selector:"lib-liveness",standalone:!0,imports:[vt],templateUrl:"./liveness.component.html",styleUrls:["./liveness.component.css"]})];class ze{constructor(e){this.liveness=e,this.duration=60,this.containerClass="",this.videoWrapperClass="",this.videoClass="",this.timerClass="",this.challengeTextClass="",this.buttonClass="",this.statusOverlayClass="",this.onComplete=new i.EventEmitter,this.onError=new i.EventEmitter}ngOnInit(){this.liveness.init({apiUrl:this.apiUrl,duration:this.duration,smileThreshold:this.smileThreshold,blinkThreshold:this.blinkThreshold,minturnHeadThreshold:this.minturnHeadThreshold,maxturnHeadThreshold:this.maxturnHeadThreshold,onComplete:e=>this.onComplete.emit(e),onError:e=>this.onError.emit(e)})}async ngAfterViewInit(){try{const e=await navigator.mediaDevices.getUserMedia({video:{width:640,height:480,facingMode:"user"}}),t=this.webcamRef.nativeElement;t.srcObject=e,t.onloadedmetadata=()=>{t.play(),this.liveness.attach(t)}}catch{this.onError.emit({success:!1,reason:"Camera access denied"})}}ngOnDestroy(){var t,r;const e=(r=(t=this.webcamRef)==null?void 0:t.nativeElement)==null?void 0:r.srcObject;e==null||e.getTracks().forEach(o=>o.stop())}}vn=Yt(null),ze=Zt(vn,0,"LivenessComponent",lr,ze),zt(vn,1,ze),dr=[i.NgModule({declarations:[],imports:[vt,ze],providers:[yt],exports:[ze]})];class Nt{}bn=Yt(null),Nt=Zt(bn,0,"LivenessModule",dr,Nt),zt(bn,1,Nt),f.LivenessComponent=ze,f.LivenessEngine=z,f.LivenessModule=Nt,f.LivenessSDK=mt,f.LivenessService=yt,f.useLiveness=Ee,f.verifyLiveness=L,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@richard.fadiora/liveness-detection",
3
- "version": "4.2.4",
3
+ "version": "4.2.7",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [