@sekyro/elements 0.0.0-stage → 0.1.0-rc.0
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/CHANGELOG.md +1 -0
- package/LICENSE +29 -0
- package/README.md +247 -2
- package/custom-elements.json +355 -0
- package/dist/cdn/chunks/background-monitor-GCMNCJMG-UXYQ5GX7.js +1 -0
- package/dist/cdn/chunks/camera-trait-HVV5ZEDI-JB4HN6S3.js +1 -0
- package/dist/cdn/chunks/capture-session-doc-K6LVXAGQ-SY3B27LY.js +1 -0
- package/dist/cdn/chunks/chunk-2SENV5CV.js +1 -0
- package/dist/cdn/chunks/chunk-2ZVKLBJD.js +14 -0
- package/dist/cdn/chunks/chunk-3KIFGAEK.js +1 -0
- package/dist/cdn/chunks/chunk-3VYQXVW4.js +1 -0
- package/dist/cdn/chunks/chunk-4FHWXBOB.js +1 -0
- package/dist/cdn/chunks/chunk-562ANROG.js +1 -0
- package/dist/cdn/chunks/chunk-6MEPT5ZS.js +1 -0
- package/dist/cdn/chunks/chunk-7HJH5Q4M.js +1 -0
- package/dist/cdn/chunks/chunk-7XAIG23G.js +1 -0
- package/dist/cdn/chunks/chunk-C66GZ7NN.js +1 -0
- package/dist/cdn/chunks/chunk-CMDITVXF.js +1 -0
- package/dist/cdn/chunks/chunk-CMS5FVGM.js +1 -0
- package/dist/cdn/chunks/chunk-D334IAZJ.js +1 -0
- package/dist/cdn/chunks/chunk-ET7NCKUV.js +1 -0
- package/dist/cdn/chunks/chunk-FAIDO3QL.js +1 -0
- package/dist/cdn/chunks/chunk-HDJ6JFXX.js +1 -0
- package/dist/cdn/chunks/chunk-HODE7UDG.js +1 -0
- package/dist/cdn/chunks/chunk-IBOJTLL7.js +1 -0
- package/dist/cdn/chunks/chunk-IFGPCCJH.js +1 -0
- package/dist/cdn/chunks/chunk-JM3CYFFZ.js +1 -0
- package/dist/cdn/chunks/chunk-JOZCJGRV.js +1 -0
- package/dist/cdn/chunks/chunk-KPGTFHQU.js +1 -0
- package/dist/cdn/chunks/chunk-OBPBHX2J.js +1 -0
- package/dist/cdn/chunks/chunk-OIJVTJML.js +1 -0
- package/dist/cdn/chunks/chunk-RK4HVNRS.js +1 -0
- package/dist/cdn/chunks/chunk-RRLXNT33.js +1 -0
- package/dist/cdn/chunks/chunk-SK6UAYX2.js +1 -0
- package/dist/cdn/chunks/chunk-T4M2J44L.js +1 -0
- package/dist/cdn/chunks/chunk-TCW6XNLI.js +1 -0
- package/dist/cdn/chunks/chunk-UYAVCSQ4.js +25 -0
- package/dist/cdn/chunks/chunk-UZWMCNZI.js +1 -0
- package/dist/cdn/chunks/chunk-X767DBO7.js +1 -0
- package/dist/cdn/chunks/chunk-XYQGAQBQ.js +1 -0
- package/dist/cdn/chunks/chunk-YEPHU5PX.js +1 -0
- package/dist/cdn/chunks/chunk-YMGCOMYZ.js +1 -0
- package/dist/cdn/chunks/chunk-Z3EEB4CI.js +1 -0
- package/dist/cdn/chunks/chunk-ZKEOHGBY.js +33 -0
- package/dist/cdn/chunks/clip-inspect-HZ7N2YOP-DCDXB76T.js +1 -0
- package/dist/cdn/chunks/create-document-capture-LNX6NFSK-A4LP25Y5.js +1 -0
- package/dist/cdn/chunks/create-portrait-capture-VRZZOMJS-I4FBRNBP.js +1 -0
- package/dist/cdn/chunks/detector-scanic-F3Y5X3DF-FGVR4NEM.js +1 -0
- package/dist/cdn/chunks/document-capture-view-JIKJWCFG-MMCEL43X.js +1 -0
- package/dist/cdn/chunks/eid-view-IW2ZP2NG-EB5SCHBD.js +1 -0
- package/dist/cdn/chunks/email-otp-view-VDTMZ4R5-Y5QHQDIB.js +1 -0
- package/dist/cdn/chunks/flow-views-N4FMOYIR-FDN6ATHN.js +1 -0
- package/dist/cdn/chunks/icao-gate-SO6YJ7RV-MPW6W3QN.js +1 -0
- package/dist/cdn/chunks/icao-tuning-DCZCMCEQ-ZQSK7ZOV.js +1 -0
- package/dist/cdn/chunks/keyframe-rank-R4NPQGN3-VRURE6OQ.js +1 -0
- package/dist/cdn/chunks/landmarker-3BBP3RBY-DDXMOLGK.js +1 -0
- package/dist/cdn/chunks/mrz-band-DCXFWDBD-OPMO6HYS.js +1 -0
- package/dist/cdn/chunks/overlay-de-F7GCMCGJ-FBTP3BSM.js +1 -0
- package/dist/cdn/chunks/overlay-es-HIO7CIKS-GDHVHUQW.js +1 -0
- package/dist/cdn/chunks/overlay-pt-YC4HRHKL-J3TGRZRW.js +1 -0
- package/dist/cdn/chunks/plan-runner-DIRERYBF-FANNXQNO.js +1 -0
- package/dist/cdn/chunks/portrait-capture-view-LWESDZPM-SEOHMLJQ.js +1 -0
- package/dist/cdn/chunks/portrait-review-view-FU3QSO4K-DZHDIMQX.js +1 -0
- package/dist/cdn/chunks/print-4WOMNRBE-DNXJ7ERA.js +11 -0
- package/dist/cdn/chunks/scanic-ml-stub-XPNKT2N3-YSXFN7KY.js +1 -0
- package/dist/cdn/chunks/segmenter-3CVPTZMM-WGI6XGWN.js +1 -0
- package/dist/cdn/chunks/turnstile-N4K4U2AI-SLP55XAA.js +1 -0
- package/dist/cdn/chunks/upload-file-C4MFKLT3-DXCNEDXP.js +1 -0
- package/dist/cdn/chunks/vision_bundle-WBHR7TEE.js +41 -0
- package/dist/cdn/define.js +1 -0
- package/dist/cdn/index.js +1 -0
- package/dist/chunk-43YHL2WG.js +1 -0
- package/dist/chunk-4QI2LTJD.js +1 -0
- package/dist/chunk-73JRPFCO.js +33 -0
- package/dist/chunk-HSQWGTF7.js +1 -0
- package/dist/chunk-JJNFGW3A.js +25 -0
- package/dist/chunk-JQ3ANVKN.js +1 -0
- package/dist/chunk-KU4DZ3OQ.js +1 -0
- package/dist/chunk-OSBGOI4W.js +14 -0
- package/dist/chunk-RPLVIGTS.js +1 -0
- package/dist/chunk-SEE6MST7.js +1 -0
- package/dist/chunk-TPIBYY2S.js +1 -0
- package/dist/chunk-UT2KIR2K.js +1 -0
- package/dist/chunk-W2UTL5PI.js +1 -0
- package/dist/chunk-WWGJDMZQ.js +1 -0
- package/dist/chunk-X5K27NXI.js +1 -0
- package/dist/chunk-X5WMOOH2.js +1 -0
- package/dist/define.cjs +66 -0
- package/dist/define.d.cts +7 -0
- package/dist/define.d.ts +7 -0
- package/dist/define.js +1 -0
- package/dist/document-capture-view-JIKJWCFG-OWMTF5A3.js +1 -0
- package/dist/eid-view-IW2ZP2NG-SKEYTRTX.js +1 -0
- package/dist/email-otp-view-VDTMZ4R5-EO7T6SL4.js +1 -0
- package/dist/flow-views-N4FMOYIR-J54ADNRO.js +1 -0
- package/dist/fonts/Cairo-OFL.txt +93 -0
- package/dist/fonts/Geist-OFL.txt +93 -0
- package/dist/fonts/Inter-OFL.txt +93 -0
- package/dist/fonts/SekyroCairo-Bold.woff2 +0 -0
- package/dist/fonts/SekyroCairo-Regular.woff2 +0 -0
- package/dist/fonts/SekyroCairo-SemiBold.woff2 +0 -0
- package/dist/fonts/SekyroGeist-Bold.woff2 +0 -0
- package/dist/fonts/SekyroGeist-SemiBold.woff2 +0 -0
- package/dist/fonts/SekyroInter-Medium.woff2 +0 -0
- package/dist/fonts/SekyroInter-Regular.woff2 +0 -0
- package/dist/fonts/SekyroInter-SemiBold.woff2 +0 -0
- package/dist/index.cjs +66 -0
- package/dist/index.d.cts +1099 -0
- package/dist/index.d.ts +1099 -0
- package/dist/index.js +1 -0
- package/dist/overlay-de-F7GCMCGJ-7OI7SGX4.js +1 -0
- package/dist/overlay-es-HIO7CIKS-LXC2SFGY.js +1 -0
- package/dist/overlay-pt-YC4HRHKL-2QCRICEV.js +1 -0
- package/dist/portrait-capture-view-LWESDZPM-XZOM6LXG.js +1 -0
- package/dist/portrait-review-view-FU3QSO4K-AGWEX2EQ.js +1 -0
- package/dist/styles.css +1475 -0
- package/package.json +117 -4
- package/sbom.cdx.json +153 -0
- package/types/empty.js +2 -0
- package/types/events.d.ts +9 -0
- package/types/jsx.d.ts +15 -0
- package/types/svelte.d.ts +16 -0
- package/types/vue.d.ts +15 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as d}from"./chunk-4FHWXBOB.js";async function Y(e){try{return E(await S(e))}catch{return null}}d(Y,"j");async function S(e){return typeof e.arrayBuffer=="function"?new Uint8Array(await e.arrayBuffer()):new Promise((r,i)=>{let t=new FileReader;t.onload=()=>r(new Uint8Array(t.result)),t.onerror=()=>i(t.error),t.readAsArrayBuffer(e)})}d(S,"B");function E(e){if(e.length<8)return null;try{if(e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163)return T(e);if(k(e,4,4)==="ftyp")return N(e)}catch{return null}return null}d(E,"O");var I=new Set(["moov","trak","mdia","minf","stbl","mvex","moof","traf","edts"]);function N(e){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=[],t=null,n=null,l=0,g=d((s,f)=>{let o=s;for(;o+8<=f;){let c=r.getUint32(o),b=k(e,o+4,4),z=8;if(c===1){if(o+16>f)return;c=Number(r.getBigUint64(o+8)),z=16}else c===0&&(c=f-o);if(c<z)return;let y=Math.min(o+c,f),a=o+z;if(b==="trak"&&(t={id:0,video:!1,timescale:0,frames:0,units:0,defaultDuration:0},i.push(t)),b==="traf"&&(n=null,l=0),I.has(b))g(a,y);else if(b==="tkhd"&&t)t.id=r.getUint32(a+(e[a]===1?20:12));else if(b==="hdlr"&&t)t.video=k(e,a+8,4)==="vide";else if(b==="mdhd"&&t)t.timescale=r.getUint32(a+(e[a]===1?20:12));else if(b==="stts"&&t){let u=r.getUint32(a+4);for(let m=0;m<u;m++){let w=r.getUint32(a+8+m*8);t.frames+=w,t.units+=w*r.getUint32(a+12+m*8)}}else if(b==="trex"){let u=i.find(m=>m.id===r.getUint32(a+4));u&&(u.defaultDuration=r.getUint32(a+12))}else if(b==="tfhd"){let u=r.getUint32(a)&16777215;n=i.find(w=>w.id===r.getUint32(a+4))??null;let m=a+8;u&1&&(m+=8),u&2&&(m+=4),l=u&8?r.getUint32(m):n?.defaultDuration??0}else if(b==="trun"&&n){let u=r.getUint32(a)&16777215,m=r.getUint32(a+4),w=a+8;u&1&&(w+=4),u&4&&(w+=4);let O=(u&256?4:0)+(u&512?4:0)+(u&1024?4:0)+(u&2048?4:0);for(let p=0;p<m;p++)n.units+=u&256?r.getUint32(w+p*O):l;n.frames+=m}o=y}},"d");g(0,e.length);let h=i.find(s=>s.video&&s.timescale>0);return!h||h.frames===0?null:{container:"mp4",frames:h.frames,durationMs:D(h.units*1e3/h.timescale)}}d(N,"L");var A=408125543,B=357149030,P=374648427,x=174,C=524531317,R=160,v=2807729,F=17545,W=215,j=131,q=231,G=163,H=161,J=290298740,V=new Set([A,B,P,x,C,R]);function K(e,r){let i=e[r];if(i===void 0||i===0)return null;let t=Math.clz32(i)-23;if(t<1||t>4||r+t>e.length)return null;let n=0;for(let l=0;l<t;l++)n=n*256+e[r+l];return[n,t]}d(K,"Y");function L(e,r){let i=e[r];if(i===void 0||i===0)return null;let t=Math.clz32(i)-23;if(t<1||t>8||r+t>e.length)return null;let n=i&255>>t,l=n===255>>t;for(let g=1;g<t;g++){let h=e[r+g];n=n*256+h,h!==255&&(l=!1)}return[l?-1:n,t]}d(L,"_");function U(e,r,i){let t=0;for(let n=0;n<i;n++)t=t*256+e[r+n];return t}d(U,"p");function M(e){let r=[],i=0;for(;i<e.length;){let t=K(e,i);if(!t)break;let n=L(e,i+t[1]);if(!n)break;let l={id:t[0],start:i,sizeAt:i+t[1],data:i+t[1]+n[1],size:n[0]};if(r.push(l),V.has(l.id))i=l.data;else{if(l.size<0)break;i=l.data+l.size}}return r}d(M,"k");function T(e){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=1e6,t=[],n=0,l=[];for(let s of M(e)){if(s.data+Math.max(0,s.size)>e.length&&!V.has(s.id))break;switch(s.id){case v:i=U(e,s.data,s.size)||i;break;case x:t.push({num:0,type:0});break;case W:t.length&&(t[t.length-1].num=U(e,s.data,s.size));break;case j:t.length&&(t[t.length-1].type=U(e,s.data,s.size));break;case q:n=U(e,s.data,s.size);break;case G:case H:{let f=L(e,s.data);if(!f||s.data+f[1]+2>e.length)break;let o=t.filter(c=>c.type===1).map(c=>c.num);if(o.length>0&&!o.includes(f[0]))break;l.push((n+r.getInt16(s.data+f[1]))*i/1e6);break}default:break}}if(l.length===0)return null;l.sort((s,f)=>s-f);let g=l.slice(1).map((s,f)=>s-l[f]),h=g.length?g.sort((s,f)=>s-f)[Math.floor(g.length/2)]:0;return{container:"webm",frames:l.length,durationMs:D(l[l.length-1]-l[0]+h)}}d(T,"H");function _(e,r){if(!(r>0))return null;let i=M(e),t=i.find(a=>a.id===A);if(!t||t.size!==-1||i.some(a=>a.id===J))return null;let n=i.find(a=>a.id===B);if(!n||n.size<0||n.data+n.size>e.length)return null;let l=1e6,g=[];for(let a of i)a.start<n.data||a.start>=n.data+n.size||(a.id===v&&(l=U(e,a.data,a.size)||l),a.id!==F&&g.push(e.subarray(a.start,a.data+a.size)));let h=new Uint8Array(11);h.set([68,137,136]),new DataView(h.buffer).setFloat64(3,r*1e6/l);let s=g.reduce((a,u)=>a+u.length,0)+h.length,f=new Uint8Array(12);f.set([21,73,169,102,1]);let o=s;for(let a=11;a>=5;a--)f[a]=o&255,o=Math.floor(o/256);let c=e.subarray(n.data+n.size),b=new Uint8Array(n.start+f.length+s+c.length),z=0,y=d(a=>{b.set(a,z),z+=a.length},"x");return y(e.subarray(0,n.start)),y(f),g.forEach(y),y(h),y(c),b}d(_,"q");function Q(e){let r=1e6,i=null,t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let n of M(e))if(n.id===v&&(r=U(e,n.data,n.size)||r),n.id===F&&(i=n.size===8?t.getFloat64(n.data):n.size===4?t.getFloat32(n.data):null),n.id===C)break;return i===null?null:D(i*r/1e6)}d(Q,"J");function k(e,r,i){let t="";for(let n=0;n<i&&r+n<e.length;n++)t+=String.fromCharCode(e[r+n]);return t}d(k,"A");function D(e){return Math.round(e*10)/10}d(D,"z");export{S as blobBytes,Y as inspectClip,E as inspectClipBytes,Q as webmDurationMs,_ as withWebmDuration};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as t,b as r,c as m,d as o}from"./chunk-KPGTFHQU.js";import"./chunk-SK6UAYX2.js";import"./chunk-CMS5FVGM.js";import"./chunk-HODE7UDG.js";import"./chunk-TCW6XNLI.js";import"./chunk-UZWMCNZI.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import"./chunk-4FHWXBOB.js";export{t as SAME_FACE_MAX_DROPS,m as createDocumentCapture,o as createDocumentCaptureInternal,r as warmDocumentCapture};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as r,b as a,c as t,d as o,e as m,f as p}from"./chunk-JM3CYFFZ.js";import"./chunk-HDJ6JFXX.js";import"./chunk-T4M2J44L.js";import"./chunk-FAIDO3QL.js";import"./chunk-IBOJTLL7.js";import"./chunk-ET7NCKUV.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import"./chunk-4FHWXBOB.js";export{r as ANALYSIS_LONG_EDGE,a as PORTRAIT_JPEG_QUALITY,m as createPortraitCaptureInternal,t as defaultGrabber,o as observe,p as warmPortraitCapture};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as fA}from"./chunk-X767DBO7.js";import"./chunk-CMS5FVGM.js";import"./chunk-UZWMCNZI.js";import{a as q}from"./chunk-4FHWXBOB.js";var Z,bA=1e3,pA=10;function qA(I,A={}){let o=A.width||Math.sqrt(I.length),t=A.height||I.length/o,C=A.mode!==void 0?A.mode:1,g=A.method!==void 0?A.method:2,Q=A.minArea||bA,E=o+2,a=t+2,i=new Int32Array(E*a);for(let s=0;s<t;s++)for(let e=0;e<o;e++)I[s*o+e]>0&&(i[(s+1)*E+(e+1)]=1);let h=[],D=2;for(let s=1;s<=t;s++)for(let e=1;e<=o;e++){let y=i[s*E+e],N=i[s*E+(e-1)],B=null,r=!1,F=-1;if(y===1&&N===0?(r=!0,B={x:e,y:s},F=2):y===0&&N>=1&&N!==-1&&N===1&&(r=!1,B={x:e-1,y:s},F=6),B){if(C===0&&!r){i[B.y*E+B.x]=-1;continue}let R=D++,m=xA(i,E,a,B,F,R);if(m&&m.length>0){let M=m;g===2&&(M=KA(m));let c=M.map(G=>({x:G.x-1,y:G.y-1}));if(c.length>=(g===2?4:pA)){let G={id:R,points:c,isOuter:r};h.push(G)}}else i[B.y*E+B.x]===1&&(i[B.y*E+B.x]=R)}}h.forEach(s=>{s.area=(function(e){let y=0,N=e.length;if(N<3)return 0;for(let B=0;B<N;B++){let r=(B+1)%N;y+=e[B].x*e[r].y,y-=e[r].x*e[B].y}return Math.abs(y)/2})(s.points),s.boundingBox=(function(e){if(e.length===0)return{minX:0,minY:0,maxX:0,maxY:0};let y=e[0].x,N=e[0].y,B=e[0].x,r=e[0].y;for(let F=1;F<e.length;F++){let R=e[F];y=Math.min(y,R.x),N=Math.min(N,R.y),B=Math.max(B,R.x),r=Math.max(r,R.y)}return{minX:y,minY:N,maxX:B,maxY:r}})(s.points)});let n=h.filter(s=>s.area>=Q);return n.sort((s,e)=>e.area-s.area),A.debug&&(A.debug.labels=i,A.debug.rawContours=h,A.debug.finalContours=n),n}q(qA,"YA");function xA(I,A,o,t,C,g){let Q=[],E=new Set,a=t.x,i=t.y,h=a,D=i,n=-1;I[D*A+h]=g;let s=0,e=A*o,y=[0,1,1,1,0,-1,-1,-1],N=[-1,-1,0,1,1,1,0,-1];for(;s++<e;){let B;if(n===-1){let M=!1;for(let c=0;c<8;c++){B=C+c&7;let G=a+y[B],u=i+N[B];if(G>=0&&G<A&&u>=0&&u<o&&I[u*A+G]>0){M=!0;break}}if(!M)return null}else B=n+2&7;let r=-1,F=-1;for(let M=0;M<8;M++){let c=B+M&7,G=a+y[c],u=i+N[c];if(G>=0&&G<A&&u>=0&&u<o&&I[u*A+G]>0){r=G,F=u,n=c+4&7;break}}if(r===-1){Q.length===0&&Q.push({x:a,y:i});break}let R=i*A+a;if(E.has(R))return Q;Q.push({x:a,y:i}),E.add(R);let m=F*A+r;if(I[m]===1&&(I[m]=g),a=r,i=F,a===h&&i===D)break}return s>=e?null:Q}q(xA,"qA");function KA(I){let A=I.length;if(A<=2)return I;let o=[],t=I[A-1],C=I[0],g=t,Q=C,E=I[1],a=Q.x-g.x,i=Q.y-g.y,h=E.x-Q.x,D=E.y-Q.y;a*D!==i*h&&o.push(Q);for(let n=1;n<A-1;n++)g=I[n-1],Q=I[n],E=I[n+1],a=Q.x-g.x,i=Q.y-g.y,h=E.x-Q.x,D=E.y-Q.y,a*D!==i*h&&o.push(Q);if(g=I[A-2],Q=t,E=C,a=Q.x-g.x,i=Q.y-g.y,h=E.x-Q.x,D=E.y-Q.y,a*D!==i*h&&o.push(Q),o.length===0){if(A===1)return[I[0]];if(A===2)return I;let n=0,s=1,e=C.x,y=C.y;for(let N=1;N<A;N++){let B=I[N],r=B.x-e,F=B.y-y,R=r*r+F*F;R>n&&(n=R,s=N)}return[C,I[s]]}return o}q(KA,"vA");function GA(I,A=1){if(I.length<=2)return I;let o=0,t=0,C=I[0],g=I[I.length-1];for(let Q=1;Q<I.length-1;Q++){let E=TA(I[Q],C,g);E>o&&(o=E,t=Q)}if(o>A){let Q=GA(I.slice(0,t+1),A),E=GA(I.slice(t),A);return Q.slice(0,-1).concat(E)}return[C,g]}q(GA,"uA");function TA(I,A,o){let t=o.x-A.x,C=o.y-A.y,g=t*t+C*C;if(g===0)return Math.sqrt(Math.pow(I.x-A.x,2)+Math.pow(I.y-A.y,2));let Q=((I.x-A.x)*t+(I.y-A.y)*C)/g,E,a;Q<0?(E=A.x,a=A.y):Q>1?(E=o.x,a=o.y):(E=A.x+Q*t,a=A.y+Q*C);let i=I.x-E,h=I.y-a;return Math.sqrt(i*i+h*h)}q(TA,"KA");function LA(I,A=.02){return GA(I,A*(function(o){let t=0,C=o.length;if(C<2)return 0;for(let g=0;g<C;g++){let Q=(g+1)%C,E=o[g].x-o[Q].x,a=o[g].y-o[Q].y;t+=Math.sqrt(E*E+a*a)}return t})(I))}q(LA,"SA");function JA(I,A){return Math.hypot(A.x-I.x,A.y-I.y)}q(JA,"mA");function SA(I){let A=0,o=0;for(let t of I)A+=t.x,o+=t.y;return{x:A/I.length,y:o/I.length}}q(SA,"RA");function WA(I,A={}){if(!I||!I.points||I.points.length<4)return null;let o=A.epsilon||.02,t=(function(g,Q){if(!g||g.length<4)return null;let E=[Q,1.3*Q,1.6*Q,2*Q],a=new Set;for(let i of E){let h=Math.min(.12,i),D=h.toFixed(4);if(a.has(D))continue;a.add(D);let n=vA(LA(g,h));if(n&&n.length===4)return n}return null})(I.points,o),C;return t&&t.length===4?C=(function(g){if(g.length!==4)return null;let Q=SA(g),E=[...g].sort((D,n)=>Math.atan2(D.y-Q.y,D.x-Q.x)-Math.atan2(n.y-Q.y,n.x-Q.x)),a=1/0,i=0;for(let D=0;D<4;D++){let n=E[D].x+E[D].y;n<a&&(a=n,i=D)}let h=[E[i],E[(i+1)%4],E[(i+2)%4],E[(i+3)%4]];return{topLeft:h[0],topRight:h[1],bottomRight:h[2],bottomLeft:h[3]}})(t):(C=(function(g){if(!g||g.length<4)return null;let Q=SA(g),E=null,a=null,i=null,h=null,D=0,n=0,s=0,e=0;for(let y of g){let N=JA(y,Q);y.x<Q.x&&y.y<Q.y?N>D&&(E=y,D=N):y.x>Q.x&&y.y<Q.y?N>n&&(a=y,n=N):y.x>Q.x&&y.y>Q.y?N>s&&(i=y,s=N):y.x<Q.x&&y.y>Q.y&&N>e&&(h=y,e=N)}return E&&a&&i&&h?{topLeft:E,topRight:a,bottomRight:i,bottomLeft:h}:null})(I.points),C&&C.topLeft&&C.topRight&&C.bottomRight&&C.bottomLeft||(C=(function(g){if(!g||g.length===0)return null;let Q=g[0],E=g[0],a=g[0],i=g[0],h=Q.x+Q.y,D=E.x-E.y,n=a.x+a.y,s=i.x-i.y;for(let e=1;e<g.length;e++){let y=g[e],N=y.x+y.y,B=y.x-y.y;N<h&&(h=N,Q=y),N>n&&(n=N,a=y),B>D&&(D=B,E=y),B<s&&(s=B,i=y)}return{topLeft:Q,topRight:E,bottomRight:a,bottomLeft:i}})(I.points))),C&&C.topLeft&&C.topRight&&C.bottomRight&&C.bottomLeft?C:null}q(WA,"TA");function vA(I){if(!I||I.length<4)return null;if(I.length===4)return I;if(I.length>8)return null;let A=(function(o,t){if(!o||o.length===0)return[];let C=[];for(let g of o)(C.length===0||JA(g,C[C.length-1])>t)&&C.push(g);return C.length>2&&JA(C[0],C[C.length-1])<=t&&C.pop(),C})(I,6);return A.length===4?A:(A.length,null)}q(vA,"WA");var tA=null;function UA(){return tA!==null&&tA.byteLength!==0||(tA=new Uint8Array(Z.memory.buffer)),tA}q(UA,"MA");var gA=0;function RA(I,A){let o=A(1*I.length,1)>>>0;return UA().set(I,o/1),gA=I.length,o}q(RA,"dA");function yA(I,A){return I>>>=0,UA().subarray(I/1,I/1+A)}q(yA,"cA");var oA=null;function HA(){return oA!==null&&oA.byteLength!==0||(oA=new Float32Array(Z.memory.buffer)),oA}q(HA,"bA");function ZA(I,A,o,t,C){let g=(function(i,h){let D=h(4*i.length,4)>>>0;return HA().set(i,D/4),gA=i.length,D})(I,Z.__wbindgen_malloc),Q=gA,E=Z.hysteresis_thresholding(g,Q,A,o,t,C);var a=yA(E[0],E[1]).slice();return Z.__wbindgen_free(E[0],1*E[1],1),a}q(ZA,"PA");var eA=null;function mA(I,A){let o=A(2*I.length,2)>>>0;return(eA!==null&&eA.byteLength!==0||(eA=new Uint16Array(Z.memory.buffer)),eA).set(I,o/2),gA=I.length,o}q(mA,"pA");function XA(I,A,o,t,C){let g=mA(I,Z.__wbindgen_malloc),Q=gA,E=mA(A,Z.__wbindgen_malloc),a=gA,i=Z.non_maximum_suppression(g,Q,E,a,o,t,C);var h,D,n=(h=i[0],D=i[1],h>>>=0,HA().subarray(h/4,h/4+D)).slice();return Z.__wbindgen_free(i[0],4*i[1],4),n}q(XA,"ZA");async function YA(I){if(Z!==void 0)return Z;if(I!==void 0&&Object.getPrototypeOf(I)===Object.prototype&&({module_or_path:I}=I),I===void 0)throw new Error("scanic: WASM module bytes must be passed to init().");let A=(function(){let C={wbg:{}};return C.wbg.__wbindgen_init_externref_table=function(){let g=Z.__wbindgen_export_0,Q=g.grow(4);g.set(0,void 0),g.set(Q+0,void 0),g.set(Q+1,null),g.set(Q+2,!0),g.set(Q+3,!1)},C})();(typeof I=="string"||typeof Request=="function"&&I instanceof Request||typeof URL=="function"&&I instanceof URL)&&(I=fetch(I));let{instance:o,module:t}=await(async function(C,g){if(typeof Response=="function"&&C instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(C,g)}catch(E){if(C.headers.get("Content-Type")=="application/wasm")throw E}let Q=await C.arrayBuffer();return await WebAssembly.instantiate(Q,g)}{let Q=await WebAssembly.instantiate(C,g);return Q instanceof WebAssembly.Instance?{instance:Q,module:C}:Q}})(await I,A);return(function(C,g){return Z=C.exports,YA.__wbindgen_wasm_module=g,oA=null,eA=null,tA=null,Z.__wbindgen_start(),Z})(o,t)}q(YA,"LA");var hA=null,kA=!1,FA=null;function VA(I){if(typeof atob=="function"){let A=atob(I),o=new Uint8Array(A.length);for(let t=0;t<A.length;t++)o[t]=A.charCodeAt(t);return o}return Uint8Array.from(Buffer.from(I,"base64"))}q(VA,"XA");async function PA(){if(!(function(){if(FA!==null)return FA;let I=!1;if(typeof WebAssembly=="object"&&typeof WebAssembly.validate=="function"){let A=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]),o=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,111,3,2,1,0,10,6,1,4,0,208,111,11]);try{I=WebAssembly.validate(A)&&WebAssembly.validate(o)}catch{I=!1}}return FA=I,I})())throw new Error("scanic: WebAssembly features required by the WASM module (reference-types, SIMD) are unavailable in this engine; using the JavaScript fallback.");return await YA({module_or_path:VA("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JAAgAiABIAJqIgFLBEBBAEEAEC0ACyADQQRqIAAoAgAiAiAAKAIEQQggASACQQF0IgIgASACSxsiASABQQhNGyIBQQFBARARIAMoAgRBAUYEQCADKAIIIAMoAgwQLQALIAMoAgghAiAAIAE2AgAgACACNgIEIANBEGokAAt5AQF/IwBBIGsiAiQAAn8gACgCAEGAgICAeEcEQCABIAAoAgQgACgCCBAwDAELIAJBEGogACgCDCgCACIAQQhqKQIANwMAIAJBGGogAEEQaikCADcDACACIAApAgA3AwggASgCACABKAIEIAJBCGoQBwsgAkEgaiQAC2kBA38jAEEQayIBJAAgAUEEaiAAKAIAIgIgACgCBEEEIAJBAXQiAiACQQRNGyICQQRBBBARIAEoAgRBAUYEQCABKAIIIAEoAgwQLQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtpAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgRBBCACQQF0IgIgAkEETRsiAkEEQQgQESABKAIEQQFGBEAgASgCCCABKAIMEC0ACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALaQEDfyMAQRBrIgEkACABQQRqIAAoAgAiAiAAKAIEQQQgAkEBdCICIAJBBE0bIgJBAkECEBEgASgCBEEBRgRAIAEoAgggASgCDBAtAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQACxIAIwBBMGsiACQAIABBMGokAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0Hkl8AANgIIIANCAjcCFCADQoCAgIAwIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhAmAAtHAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEBIgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtEAQJ/IAEoAgQhAiABKAIAIQNBCEEEEDUiAUUEQEEEQQgQOQALIAEgAjYCBCABIAM2AgAgAEHcksAANgIEIAAgATYCAAvGAgACQCAAIAJNBEAgACABTSABIAJLcg0BIwBBMGsiAiQAIAIgATYCBCACIAA2AgAgAkECNgIMIAJB2JbAADYCCCACQgI3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IAAAABwAEAAMAAAAEgAAABcAAAAcABAADAAAABcAAAAZAAAAHAAQAAwAAAAUAAAAGQAAABwAEAAMAAAAUQAAAB4AAAAcABAADAAAAFIAAAAeAAAATGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAA8CBAAKgAAAEgBEABaAAAACAMAABkAAAByZWVudHJhbnQgaW5pdAAAgAgQAA4AAABIARAAWgAAAHoCAAANAAAAfP2LMlfmV/kC30S/40jnr21dy9YsUOtjeEGmV3Ebi7ltZW1vcnkgYWxsb2NhdGlvbiBvZiAgYnl0ZXMgZmFpbGVkAADICBAAFQAAAN0IEAANAAAALwEQABgAAABkAQAACQAAAAQAAAAMAAAABAAAAAUAAAAGAAAABwAAAAAAAAAIAAAABAAAAAgAAAAJAAAACgAAAAsAAAAMAAAAEAAAAAQAAAANAAAADgAAAA8AAAAQAAAAAAAAAAgAAAAEAAAAEQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAAQBEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAEARAAKgAAALcEAAANAAAABAAAAAwAAAAEAAAAEgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA/AkQABEAAADjABAAIAAAABwAAAAFAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlyYW5nZSBlbmQgaW5kZXggIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIAAA8AoQABAAAAAACxAAIgAAAHNsaWNlIGluZGV4IHN0YXJ0cyBhdCAgYnV0IGVuZHMgYXQgADQLEAAWAAAASgsQAA0AAAByYW5nZSBzdGFydCBpbmRleCAAAGgLEAASAAAAAAsQACIAAABhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvAAAAjAsQABkAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAsAsQACAAAADQCxAAEgAAAAAAAD8AAAC/AEGUmMAACwEBAHwJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjkyLjAgKGRlZDVjMDZjZiAyMDI1LTEyLTA4KQZ3YWxydXMGMC4yMy4zDHdhc20tYmluZGdlbhMwLjIuMTAwICgyNDA1ZWMyYjQpAHQPdGFyZ2V0X2ZlYXR1cmVzBysPbXV0YWJsZS1nbG9iYWxzKxNub250cmFwcGluZy1mcHRvaW50KwdzaW1kMTI4KwtidWxrLW1lbW9yeSsIc2lnbi1leHQrD3JlZmVyZW5jZS10eXBlcysKbXVsdGl2YWx1ZQ==")})}q(PA,"VA");function iA(){return hA||(hA=PA().catch(I=>{throw hA=null,I})),hA}q(iA,"tA");function jA(I,A,o,t=5,C=0){C===0&&(C=.3*(.5*(t-1)-1)+.8);let g=Math.floor(t/2),Q=(function(i,h){let D=new Float32Array(i),n=Math.floor(i/2),s=0;for(let e=0;e<i;e++){let y=e-n;D[e]=Math.exp(-y*y/(2*h*h)),s+=D[e]}for(let e=0;e<i;e++)D[e]/=s;return D})(t,C),E=new Uint8ClampedArray(A*o),a=new Uint8ClampedArray(A*o);for(let i=0;i<o;i++){let h=i*A;for(let D=0;D<A;D++){let n=0;for(let s=-g;s<=g;s++)n+=I[h+Math.min(A-1,Math.max(0,D+s))]*Q[g+s];E[h+D]=n}}for(let i=0;i<A;i++)for(let h=0;h<o;h++){let D=0;for(let n=-g;n<=g;n++)D+=E[Math.min(o-1,Math.max(0,h+n))*A+i]*Q[g+n];a[h*A+i]=Math.round(D)}return a}q(jA,"jA");function dA(I,A,o,t,C){let g=new Uint8Array(A*o),Q=[];for(let i=1;i<o-1;i++)for(let h=1;h<A-1;h++){let D=i*A+h,n=I[D];n>=C?(g[D]=2,Q.push({x:h,y:i})):g[D]=n>=t?0:1}for(let i=0;i<A;i++)g[i]=1,g[(o-1)*A+i]=1;for(let i=1;i<o-1;i++)g[i*A]=1,g[i*A+A-1]=1;let E=[-1,0,1,-1,1,-1,0,1],a=[-1,-1,-1,0,0,1,1,1];for(;Q.length>0;){let{x:i,y:h}=Q.pop();for(let D=0;D<8;D++){let n=i+E[D],s=h+a[D],e=s*A+n;g[e]===0&&(g[e]=2,Q.push({x:n,y:s}))}}return g}q(dA,"JA");async function OA(I,A={}){let o=!(!A.debug||A.debug._timingsOnly),t=[],C=performance.now(),g,Q,E;if(A.skipGrayscale)g=A.width,Q=A.height,E=I,o&&(A.debug.grayscale=E);else{g=I.width,Q=I.height;let Y=performance.now();E=(function(f){let{width:x,height:T,data:d}=f,p=new Uint8ClampedArray(x*T);for(let w=0,H=0;w<d.length;w+=4,H++)p[H]=54*d[w]+183*d[w+1]+19*d[w+2]>>8;return p})(I);let l=performance.now();t.push({step:"Grayscale",ms:(l-Y).toFixed(2)}),o&&(A.debug.grayscale=E)}let a=A.lowThreshold!==void 0?A.lowThreshold:null,i=A.highThreshold!==void 0?A.highThreshold:null;if(a===null||i===null){let Y=new Uint32Array(1024),l=0;for(let d=1;d<Q-1;d++)for(let p=1;p<g-1;p++){let w=d*g+p,H=-E[w-g-1]+E[w-g+1]-2*E[w-1]+2*E[w+1]-E[w+g-1]+E[w+g+1],S=-E[w-g-1]-2*E[w-g]-E[w-g+1]+E[w+g-1]+2*E[w+g]+E[w+g+1],U=Math.abs(H)+Math.abs(S);U>=1024&&(U=1023),U>0&&(Y[U]++,l++)}let f=Math.round(.7*l),x=0,T=75;for(let d=1;d<1024;d++)if(x+=Y[d],x>=f){T=d;break}a===null&&(a=Math.max(5,Math.round(.5*T))),i===null&&(i=Math.min(500,Math.round(1.5*T)))}let h=A.kernelSize||5,D=A.sigma||0,n=A.L2gradient!==void 0&&A.L2gradient,s=A.applyDilation===void 0||A.applyDilation,e=A.dilationKernelSize||5,y=A.useWasmHysteresis!==void 0&&A.useWasmHysteresis,N=A.useWasmFullCanny!==void 0&&A.useWasmFullCanny;if(a>=i&&([a,i]=[i,a]),N)try{await iA();let Y=performance.now(),l=new Uint8ClampedArray((function(T,d,p,w,H,S,U,k,J,L){let b=RA(T,Z.__wbindgen_malloc),K=gA,W=Z.canny_edge_detector_full(b,K,d,p,w,H,S,U,k,J,L);var v=yA(W[0],W[1]).slice();return Z.__wbindgen_free(W[0],1*W[1],1),v})(E,g,Q,a,i,h,D,n,s,e)),f=(performance.now()-Y).toFixed(2);t.push({step:"Edge Processing (WASM)",ms:f}),o&&(A.debug.finalEdges=l),A.debug?A.debug.timings=t:A.debug={timings:t};let x=performance.now();return t.unshift({step:"Edge Detection Total",ms:(x-C).toFixed(2)}),l}catch(Y){kA||(kA=!0,Y instanceof Error?Y.message:String(Y))}let B,r,F,R,m,M;B=performance.now();try{await iA(),F=(function(Y,l,f,x,T){let d=RA(Y,Z.__wbindgen_malloc),p=gA,w=Z.blur(d,p,l,f,x,T);var H=yA(w[0],w[1]).slice();return Z.__wbindgen_free(w[0],1*w[1],1),H})(E,g,Q,h,D)}catch{F=jA(E,g,Q,h,D)}r=performance.now(),t.push({step:"Gaussian Blur",ms:(r-B).toFixed(2)}),o&&(A.debug.blurred=F),B=performance.now();{let Y=(function(l,f,x){let T=new Int16Array(f*x),d=new Int16Array(f*x);for(let p=1;p<x-1;p++){let w=p*f,H=(p-1)*f,S=(p+1)*f;for(let U=1;U<f-1;U++){let k=w+U,J=l[H+U-1],L=l[H+U],b=l[H+U+1],K=l[w+U-1],W=l[w+U+1],v=l[S+U-1],j=l[S+U],P=l[S+U+1],_=b-J+2*(W-K)+(P-v),$=v+2*j+P-(J+2*L+b);T[k]=_,d[k]=$}}return{dx:T,dy:d}})(F,g,Q);R=Y.dx,m=Y.dy}r=performance.now(),t.push({step:"Gradients",ms:(r-B).toFixed(2)}),B=performance.now();try{await iA(),M=await XA(R,m,g,Q,n)}catch{M=(function(Y,l,f,x,T){let d=new Float32Array(f*x),p=new Float32Array(f*x);for(let w=0;w<Y.length;w++){let H=Y[w],S=l[w];d[w]=T?Math.sqrt(H*H+S*S):Math.abs(H)+Math.abs(S)}for(let w=1;w<x-1;w++)for(let H=1;H<f-1;H++){let S=w*f+H,U=d[S];if(U===0){p[S]=0;continue}let k=Y[S],J=l[S],L=0,b=0,K=Math.abs(k),W=Math.abs(J);if(W>2.4142*K)L=d[S-f],b=d[S+f];else if(K>2.4142*W)L=d[S-1],b=d[S+1];else{let v=(k^J)<0?-1:1;J>0?(L=d[(w-1)*f+(H-v)],b=d[(w+1)*f+(H+v)]):(L=d[(w+1)*f+(H-v)],b=d[(w-1)*f+(H+v)]),k>0&&J>0||k<0&&J<0?(L=d[(w-1)*f+(H+1)],b=d[(w+1)*f+(H-1)]):(L=d[(w-1)*f+(H-1)],b=d[(w+1)*f+(H+1)])}p[S]=U>=L&&U>=b?U:0}return p})(R,m,g,Q,n)}r=performance.now(),t.push({step:"Non-Max Suppression",ms:(r-B).toFixed(2)}),B=performance.now();let c=n?a*a:a,G=n?i*i:i,u;if(y)try{await iA(),u=ZA(M,g,Q,c,G)}catch{u=dA(M,g,Q,c,G)}else u=dA(M,g,Q,c,G);r=performance.now(),t.push({step:"Hysteresis",ms:(r-B).toFixed(2)}),B=performance.now();let V=new Uint8ClampedArray(g*Q);for(let Y=0;Y<u.length;Y++)V[Y]=u[Y]===2?255:0;r=performance.now(),t.push({step:"Binary Image",ms:(r-B).toFixed(2)}),B=performance.now();let X=V;if(s)try{await iA(),X=(function(Y,l,f,x){let T=RA(Y,Z.__wbindgen_malloc),d=gA,p=Z.dilate(T,d,l,f,x);var w=yA(p[0],p[1]).slice();return Z.__wbindgen_free(p[0],1*p[1],1),w})(V,g,Q,e)}catch{X=(function(Y,l,f,x=5){let T=Math.floor(x/2),d=new Uint8ClampedArray(l*f),p=new Uint8ClampedArray(l*f);for(let w=0;w<f;w++){let H=w*l;for(let S=0;S<l;S++){let U=0;for(let k=-T;k<=T;k++){let J=S+k;if(J>=0&&J<l){let L=Y[H+J];L>U&&(U=L)}}d[H+S]=U}}for(let w=0;w<l;w++)for(let H=0;H<f;H++){let S=0;for(let U=-T;U<=T;U++){let k=H+U;if(k>=0&&k<f){let J=d[k*l+w];J>S&&(S=J)}}p[H*l+w]=S}return p})(V,g,Q,e)}if(r=performance.now(),t.push({step:"Dilation",ms:(r-B).toFixed(2)}),o){A.debug.dx=R,A.debug.dy=m;let Y=new Float32Array(g*Q);for(let l=0;l<R.length;l++){let f=R[l],x=m[l];Y[l]=n?Math.sqrt(f*f+x*x):Math.abs(f)+Math.abs(x)}A.debug.magnitude=Y,A.debug.suppressed=M,A.debug.edgeMap=u,A.debug.cannyEdges=V,A.debug.finalEdges=X}A.debug?A.debug.timings=t:A.debug||(A.debug={timings:t});let O=performance.now();return t.unshift({step:"Edge Detection Total",ms:(O-C).toFixed(2)}),X}q(OA,"OA");function aA(I){return I<=0?0:I>=1?1:I}q(aA,"oA");function nA(I,A){return Math.hypot(I.x-A.x,I.y-A.y)}q(nA,"nA");function MA(I){return[nA(I.topLeft,I.topRight),nA(I.topRight,I.bottomRight),nA(I.bottomRight,I.bottomLeft),nA(I.bottomLeft,I.topLeft)]}q(MA,"GA");function zA(I){let A=(function(t){let C=[t.topLeft,t.topRight,t.bottomRight,t.bottomLeft],g=[];for(let Q=0;Q<C.length;Q++){let E=C[(Q+C.length-1)%C.length],a=C[Q],i=C[(Q+1)%C.length],h=E.x-a.x,D=E.y-a.y,n=i.x-a.x,s=i.y-a.y,e=h*n+D*s,y=Math.max(1e-6,Math.hypot(h,D)*Math.hypot(n,s)),N=Math.max(-1,Math.min(1,e/y));g.push(180*Math.acos(N)/Math.PI)}return g})(I),o=0;for(let t of A)o+=aA(1-Math.abs(t-90)/55);return o/Math.max(1,A.length)}q(zA,"zA");function uA(I,A){let o=Number(A.isValid)-Number(I.isValid);if(o!==0)return o;let t=A.confidence-I.confidence;if(!(Math.abs(t)<.015)&&t!==0)return t;let C=Math.abs((I.approxCount??99)-4)-Math.abs((A.approxCount??99)-4);if(C!==0)return C;let g=(A.rightAngleScore??0)-(I.rightAngleScore??0);if(Math.abs(g)>1e-6)return g;let Q=Math.abs(1-(I.contourFitRatio??1))-Math.abs(1-(A.contourFitRatio??1));return Math.abs(Q)>1e-6?Q:t||A.score-I.score||A.coverageRatio-I.coverageRatio||A.area-I.area}q(uA,"kA");function _A(I,A,o,t,C={}){let g=C.epsilon||.02,Q=LA(I.points,g).length,E=WA(I,{epsilon:g});if(!E)return{contour:I,corners:null,score:0,confidence:0,isValid:!1,area:I.area||0,fillRatio:0,coverageRatio:0,cornersArea:0,approxCount:Q,convex:!1,edgeSupport:0,aspectRatio:1/0,minSide:0,rightAngleScore:0,oppositeSideConsistency:0,contourFitRatio:0,contourFitScore:0};let a=o*t,i=I.area||0,h=I.boundingBox||{minX:0,minY:0,maxX:0,maxY:0},D=i/Math.max(1,(h.maxX-h.minX+1)*(h.maxY-h.minY+1)),n=(function(k){if(!k)return 0;let J=[k.topLeft,k.topRight,k.bottomRight,k.bottomLeft],L=0;for(let b=0;b<J.length;b++){let K=(b+1)%J.length;L+=J[b].x*J[K].y-J[K].x*J[b].y}return Math.abs(L)/2})(E),s=n/Math.max(1,a),e=MA(E),y=Math.min(...e),N=(e[0]+e[2])/2,B=(e[1]+e[3])/2,r=N>B?N/Math.max(1e-6,B):B/Math.max(1e-6,N),F=(function(k){let J=[k.topLeft,k.topRight,k.bottomRight,k.bottomLeft],L=[];for(let K=0;K<J.length;K++){let W=J[K],v=J[(K+1)%J.length],j=J[(K+2)%J.length],P=(v.x-W.x)*(j.y-v.y)-(v.y-W.y)*(j.x-v.x);Math.abs(P)<1e-6||L.push(Math.sign(P))}if(L.length<3)return!1;let b=L[0];return L.every(K=>K===b)})(E),R=(function(k,J,L,b){if(!k?.points||k.points.length===0)return 0;let K=Math.max(1,Math.floor(k.points.length/240)),W=0,v=0;for(let j=0;j<k.points.length;j+=K){let P=k.points[j],_=Math.max(0,Math.min(L-1,0|P.x)),$=Math.max(0,Math.min(b-1,0|P.y));W++;let BA=!1;for(let AA=-1;AA<=1&&!BA;AA++){let IA=$+AA;if(!(IA<0||IA>=b))for(let QA=-1;QA<=1;QA++){let CA=_+QA;if(!(CA<0||CA>=L)&&J[IA*L+CA]>0){BA=!0;break}}}BA&&v++}return W===0?0:v/W})(I,A,o,t),m=zA(E),M=(function(k){let J=MA(k);return(Math.min(J[0],J[2])/Math.max(1e-6,Math.max(J[0],J[2]))+Math.min(J[1],J[3])/Math.max(1e-6,Math.max(J[1],J[3])))/2})(E),c=i/Math.max(1,n),G=aA(1-Math.abs(c-1)/.55),u=Q===4?1:Q===5?.9:Q===6?.7:Q<=8?.5:.28,V=aA(i/Math.max(1,.4*a)),X=aA((D-.08)/.72),O=aA((s-.03)/.82),Y=C.minDocumentSideRatio!==void 0?C.minDocumentSideRatio:.06,l=C.minDocumentCoverageRatio!==void 0?C.minDocumentCoverageRatio:.04,f=C.maxDocumentAspectRatio!==void 0?C.maxDocumentAspectRatio:8,x=C.minDocumentFillRatio!==void 0?C.minDocumentFillRatio:.07,T=C.minContourFitRatio!==void 0?C.minContourFitRatio:.11,d=C.maxContourFitRatio!==void 0?C.maxContourFitRatio:1.2,p=C.minRightAngleScore!==void 0?C.minRightAngleScore:.42,w=C.minOppositeSideConsistency!==void 0?C.minOppositeSideConsistency:.3,H=Math.min(o,t)*Y,S=(function(k,J=6){let L=[k?.topLeft,k?.topRight,k?.bottomRight,k?.bottomLeft];if(L.some(b=>!b||!Number.isFinite(b.x)||!Number.isFinite(b.y)))return!1;for(let b=0;b<L.length;b++)for(let K=b+1;K<L.length;K++)if(nA(L[b],L[K])<J)return!1;return!0})(E)&&F&&y>=H&&s>=l&&r<=f&&D>=x&&c>=T&&c<=d&&m>=p&&M>=w,U=.22*V+.14*X+.15*u+.08*(F?1:0)+.08*R+.13*O+.1*m+.05*M+.05*G;return{contour:I,corners:E,score:U,confidence:S?U:.33*U,isValid:S,area:i,fillRatio:D,coverageRatio:s,cornersArea:n,approxCount:Q,convex:F,edgeSupport:R,aspectRatio:r,minSide:y,rightAngleScore:m,oppositeSideConsistency:M,contourFitRatio:c,contourFitScore:G}}q(_A,"_A");async function $A(I,A,o,t,C={}){let g=C.debug?{}:{_timingsOnly:!0},Q=[];g&&!g._timingsOnly&&(g.preprocessing={scaledDimensions:{width:A,height:o},scaleFactor:t,maxProcessingDimension:C.maxProcessingDimension||800});let E=(function(B={}){let r=B.dilationKernelSize||3,F=B.dilationIterations||1,R=B.applyDilation===void 0||B.applyDilation,m=[{name:"default",lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:r,dilationIterations:F,applyDilation:R}];if(B.enableDetectionCascade===!1)return m;m.push({name:"connect-edges",lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:Math.max(r,5),dilationIterations:Math.max(F,2),applyDilation:!0}),m.push({name:"no-dilation",lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:r,dilationIterations:F,applyDilation:!1}),B.lowThreshold===void 0&&B.highThreshold===void 0&&m.push({name:"fixed-mid-thresholds",lowThreshold:60,highThreshold:180,dilationKernelSize:r,dilationIterations:F,applyDilation:R});let M=[],c=new Set;for(let G of m){let u=[G.lowThreshold,G.highThreshold,G.dilationKernelSize,G.dilationIterations,G.applyDilation].join(":");c.has(u)||(c.add(u),M.push(G))}return M})(C),a=[],i=q(async(B,r)=>{let F=B.name||`pass-${r+1}`,R=r===0?"":` (${F})`,m=C.debug?{}:{_timingsOnly:!0},M=await OA(I,{width:A,height:o,lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:B.dilationKernelSize,dilationIterations:B.dilationIterations,applyDilation:B.applyDilation,debug:m,skipGrayscale:!0,useWasmBlur:!0,useWasmHysteresis:C.useWasmHysteresis,useWasmFullCanny:C.useWasmFullCanny});m.timings&&m.timings.forEach(X=>{X.step!=="Edge Detection Total"&&Q.push({step:`${X.step}${R}`,ms:X.ms})});let c=performance.now(),G=qA(M,{minArea:(C.minArea||1e3)/(t*t),width:A,height:o});Q.push({step:`Find Contours${R}`,ms:(performance.now()-c).toFixed(2)}),c=performance.now();let{best:u,candidates:V}=(function(X,O,Y,l,f={}){let x=f.maxCandidateContours||12,T=X.slice(0,x).map((d,p)=>({rankByArea:p,..._A(d,O,Y,l,f)})).sort(uA);return{best:T[0]||null,candidates:T}})(G,M,A,o,C);return Q.push({step:`Corner Detection${R}`,ms:(performance.now()-c).toFixed(2)}),{name:F,params:{lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:B.dilationKernelSize,dilationIterations:B.dilationIterations,applyDilation:B.applyDilation},contours:G,best:u,candidates:V}},"i"),h=await i(E[0],0);if(a.push(h),(function(B,r={}){if(r.enableDetectionCascade===!1)return!1;if(!B||!B.corners)return!0;let F=r.minCascadeTriggerConfidence!==void 0?r.minCascadeTriggerConfidence:.68;return!B.isValid||B.confidence<F||B.approxCount>5||B.rightAngleScore<.55||B.contourFitRatio<.14})(h.best,C))for(let B=1;B<E.length;B++)a.push(await i(E[B],B));let D=[];for(let B of a)for(let r of B.candidates)D.push({...r,passName:B.name,passParams:B.params});D.sort(uA);let n=D[0]||null,s=D;if(!n||!n.corners)return{success:!1,message:"No document detected",debug:g._timingsOnly?null:g,timings:Q};g&&!g._timingsOnly&&(g.passes=a.map(B=>({name:B.name,params:B.params,contourCount:B.contours.length,bestCandidate:B.best?{score:B.best.score,confidence:B.best.confidence,isValid:B.best.isValid,approxCount:B.best.approxCount,coverageRatio:B.best.coverageRatio,fillRatio:B.best.fillRatio,rightAngleScore:B.best.rightAngleScore,contourFitRatio:B.best.contourFitRatio}:null})),g.candidates=s.map(B=>({passName:B.passName,rankByArea:B.rankByArea,area:B.area,fillRatio:B.fillRatio,coverageRatio:B.coverageRatio,cornersArea:B.cornersArea,approxCount:B.approxCount,convex:B.convex,edgeSupport:B.edgeSupport,aspectRatio:B.aspectRatio,minSide:B.minSide,rightAngleScore:B.rightAngleScore,oppositeSideConsistency:B.oppositeSideConsistency,contourFitRatio:B.contourFitRatio,contourFitScore:B.contourFitScore,score:B.score,confidence:B.confidence,isValid:B.isValid})),g.selectedCandidate=s[0]?{passName:s[0].passName,rankByArea:s[0].rankByArea,area:s[0].area,fillRatio:s[0].fillRatio,coverageRatio:s[0].coverageRatio,approxCount:s[0].approxCount,edgeSupport:s[0].edgeSupport,aspectRatio:s[0].aspectRatio,minSide:s[0].minSide,rightAngleScore:s[0].rightAngleScore,oppositeSideConsistency:s[0].oppositeSideConsistency,contourFitRatio:s[0].contourFitRatio,score:s[0].score,confidence:s[0].confidence,isValid:s[0].isValid}:null);let e=n.corners,y=n.contour,N=e;return t!==1&&(N={topLeft:{x:e.topLeft.x*t,y:e.topLeft.y*t},topRight:{x:e.topRight.x*t,y:e.topRight.y*t},bottomRight:{x:e.bottomRight.x*t,y:e.bottomRight.y*t},bottomLeft:{x:e.bottomLeft.x*t,y:e.bottomLeft.y*t}}),{success:!0,contour:y,corners:N,confidence:n.confidence,debug:g._timingsOnly?null:g,timings:Q}}q($A,"$A");function AI(I,A,o){let{topLeft:t,topRight:C,bottomRight:g,bottomLeft:Q}=o,E=Math.hypot(g.x-Q.x,g.y-Q.y),a=Math.hypot(C.x-t.x,C.y-t.y),i=Math.round(Math.max(E,a)),h=Math.hypot(C.x-g.x,C.y-g.y),D=Math.hypot(t.x-Q.x,t.y-Q.y),n=Math.round(Math.max(h,D));I.canvas.width=i,I.canvas.height=n,(function(s,e,y,N,B){let r=e&&typeof e.width=="number"&&typeof e.height=="number"&&e.data,F=e.width||e.naturalWidth,R=e.height||e.naturalHeight,m=document.createElement("canvas");m.width=F,m.height=R;let M=m.getContext("2d",{willReadFrequently:!0});r?M.putImageData(e,0,0):M.drawImage(e,0,0,F,R);let c=M.getImageData(0,0,F,R).data,G=(function(S){let U=S[0][0],k=S[0][1],J=S[0][2],L=S[1][0],b=S[1][1],K=S[1][2],W=S[2][0],v=S[2][1],j=S[2][2],P=b*j-K*v,_=-(L*j-K*W),$=L*v-b*W,BA=-(k*j-J*v),AA=U*j-J*W,IA=-(U*v-k*W),QA=k*K-J*b,CA=-(U*K-J*L),EA=U*b-k*L,z=U*P+k*_+J*$;if(z===0)throw new Error("Singular matrix");return[[P/z,BA/z,QA/z],[_/z,AA/z,CA/z],[$/z,IA/z,EA/z]]})(y),u=G[0][0],V=G[0][1],X=G[0][2],O=G[1][0],Y=G[1][1],l=G[1][2],f=G[2][0],x=G[2][1],T=G[2][2],d=s.createImageData(N,B),p=d.data,w=F-1,H=R-1;for(let S=0;S<B;S++){let U=V*S+X,k=Y*S+l,J=x*S+T;for(let L=0;L<N;L++){let b=1/(f*L+J),K=(u*L+U)*b,W=(O*L+k)*b,v=K<0?0:K>w?w:K,j=W<0?0:W>H?H:W,P=0|v,_=0|j,$=P<w?P+1:P,BA=_<H?_+1:_,AA=v-P,IA=j-_,QA=1-AA,CA=1-IA,EA=QA*CA,z=AA*CA,DA=QA*IA,rA=AA*IA,cA=_*F+P<<2,wA=_*F+$<<2,lA=BA*F+P<<2,NA=BA*F+$<<2,sA=S*N+L<<2;p[sA]=c[cA]*EA+c[wA]*z+c[lA]*DA+c[NA]*rA+.5|0,p[sA+1]=c[cA+1]*EA+c[wA+1]*z+c[lA+1]*DA+c[NA+1]*rA+.5|0,p[sA+2]=c[cA+2]*EA+c[wA+2]*z+c[lA+2]*DA+c[NA+2]*rA+.5|0,p[sA+3]=255}}s.putImageData(d,0,0)})(I,A,(function(s,e){let y=(function(N,B){let r=N.length,F=N[0].length,R=N.map(c=>c.slice()),m=B.slice();for(let c=0;c<F;c++){let G=c;for(let u=c+1;u<r;u++)Math.abs(R[u][c])>Math.abs(R[G][c])&&(G=u);[R[c],R[G]]=[R[G],R[c]],[m[c],m[G]]=[m[G],m[c]];for(let u=c+1;u<r;u++){let V=R[u][c]/R[c][c];for(let X=c;X<F;X++)R[u][X]-=V*R[c][X];m[u]-=V*m[c]}}let M=new Array(F);for(let c=F-1;c>=0;c--){let G=m[c];for(let u=c+1;u<F;u++)G-=R[c][u]*M[u];M[c]=G/R[c][c]}return M})((function(N){let B=[];for(let r=0;r<4;r++){let[F,R]=N[r];B.push([F,R,1,0,0,0,-F*e[r][0],-R*e[r][0]]),B.push([0,0,0,F,R,1,-F*e[r][1],-R*e[r][1]])}return B})(s),[e[0][0],e[0][1],e[1][0],e[1][1],e[2][0],e[2][1],e[3][0],e[3][1]]);return[[y[0],y[1],y[2]],[y[3],y[4],y[5]],[y[6],y[7],1]]})([[t.x,t.y],[C.x,C.y],[g.x,g.y],[Q.x,Q.y]],[[0,0],[i-1,0],[i-1,n-1],[0,n-1]]),i,n)}q(AI,"AI");async function II(I,A={}){let o=[],t=performance.now(),C=A.mode||"detect",g=A.output||"canvas",Q=A.maxProcessingDimension||800,E,a,i,h;if((A.detector||"classical")==="ml"){a=performance.now();let{detectDocumentMl:n}=await import("./scanic-ml-stub-XPNKT2N3-YSXFN7KY.js");E=await n(I,A.ml||{}),o.push({step:"ML Detection Total",ms:(performance.now()-a).toFixed(2)}),E.timings&&E.timings.forEach(s=>o.push(s))}else{a=performance.now();let{grayscaleData:n,scaleFactor:s,scaledDimensions:e}=await(async function(y,N=800){let B,r,F=y&&typeof y.width=="number"&&typeof y.height=="number"&&y.data;if(F)B=y.width,r=y.height;else{if(!y)throw new Error("No image provided");B=y.width||y.naturalWidth,r=y.height||y.naturalHeight}let R=Math.max(B,r),m,M,c;if(R<=N)m=B,M=r,c=1;else{let l=N/R;m=Math.round(B*l),M=Math.round(r*l),c=1/l}let G=typeof OffscreenCanvas<"u",u=G?new OffscreenCanvas(m,M):document.createElement("canvas");G||(u.width=m,u.height=M);let V=u.getContext("2d",{willReadFrequently:!0});if(V.imageSmoothingEnabled=!0,V.imageSmoothingQuality="medium",F){let l=G?new OffscreenCanvas(B,r):document.createElement("canvas");G||(l.width=B,l.height=r),l.getContext("2d").putImageData(y,0,0),V.drawImage(l,0,0,B,r,0,0,m,M)}else V.drawImage(y,0,0,B,r,0,0,m,M);let X=V.getImageData(0,0,m,M),O=X.data,Y=new Uint8ClampedArray(m*M);for(let l=0,f=0;l<O.length;l+=4,f++){let x=54*O[l]+183*O[l+1]+19*O[l+2]>>8;Y[f]=x,O[l]=O[l+1]=O[l+2]=x}return{grayscaleData:Y,imageData:X,scaleFactor:c,originalDimensions:{width:B,height:r},scaledDimensions:{width:m,height:M}}})(I,Q);o.push({step:"Image Prep + Scale + Gray",ms:(performance.now()-a).toFixed(2)}),E=await $A(n,e.width,e.height,s,A),E.timings&&E.timings.forEach(y=>o.push(y))}if(!E.success){let n=performance.now();return o.unshift({step:"Total",ms:(n-t).toFixed(2)}),{output:null,corners:null,contour:null,confidence:E.confidence||null,score:E.score??null,debug:E.debug,success:!1,message:E.message||"No document detected",timings:o}}C==="detect"?h=null:C==="extract"&&(a=performance.now(),i=document.createElement("canvas"),AI(i.getContext("2d"),I,E.corners),o.push({step:"Perspective Transform",ms:(performance.now()-a).toFixed(2)})),C!=="detect"&&i&&(a=performance.now(),h=g==="canvas"?i:g==="imagedata"?i.getContext("2d").getImageData(0,0,i.width,i.height):g==="dataurl"?i.toDataURL():i,o.push({step:"Output Conversion",ms:(performance.now()-a).toFixed(2)}));let D=performance.now();return o.unshift({step:"Total",ms:(D-t).toFixed(2)}),{output:h,corners:E.corners,contour:E.contour??null,confidence:E.confidence||null,score:E.score??null,debug:E.debug,success:!0,message:"Document detected",timings:o}}q(II,"xA");var QI="1.5.0",gI=.35;async function CI(I){let A=await II(I,{mode:"detect",detector:"classical",maxProcessingDimension:fA});return!A.success||A.corners===null||typeof A.confidence=="number"&&A.confidence<gI?null:A.corners}q(CI,"tI");export{gI as DOC_DETECT_MIN_CONFIDENCE,fA as DOC_DETECT_WIDTH,QI as SCANIC_VERSION,CI as detectQuad};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as Ge}from"./chunk-Z3EEB4CI.js";import{a as Ve}from"./chunk-562ANROG.js";import{a as Ie,b as Oe,c as Ee}from"./chunk-2SENV5CV.js";import"./chunk-OBPBHX2J.js";import{d as Be}from"./chunk-3VYQXVW4.js";import"./chunk-OIJVTJML.js";import{E as Ae,F as Re,G as Pe,I as Ue,K as pe,L as me,a as ct,b as dt,c as O,o as He,q as De,v as Y,w as ue,y as he}from"./chunk-UYAVCSQ4.js";import{a as h}from"./chunk-RK4HVNRS.js";import{a as c,c as _e}from"./chunk-4FHWXBOB.js";var i=_e(ct(),1),e=_e(dt(),1);var ut={image:'<path d="M2 12C2 7.29 2 4.93 3.46 3.46C4.93 2 7.29 2 12 2C16.71 2 19.07 2 20.54 3.46C22 4.93 22 7.29 22 12C22 16.71 22 19.07 20.54 20.54C19.07 22 16.71 22 12 22C7.29 22 4.93 22 3.46 20.54C2 19.07 2 16.71 2 12Z" stroke="currentColor"/><path d="M14 8A2 2 0 1 0 18 8A2 2 0 1 0 14 8Z" stroke="currentColor"/><path d="M2 12.5L3.75 10.97C4.66 10.17 6.04 10.22 6.89 11.07L11.18 15.36C11.87 16.05 12.95 16.14 13.75 15.58L14.04 15.37C15.19 14.57 16.74 14.66 17.78 15.6L21 18.5" stroke="currentColor" stroke-linecap="round"/>',flashlight:'<path d="M9 11.66V19C9 19.93 9 20.4 9.15 20.77C9.36 21.26 9.74 21.64 10.23 21.85C10.6 22 11.07 22 12 22C12.93 22 13.4 22 13.77 21.85C14.26 21.64 14.64 21.26 14.85 20.77C15 20.4 15 19.93 15 19V11.66C15 10.84 15 10.43 15.15 10.06C15.3 9.7 15.59 9.41 16.17 8.83L16.17 8.83L19.41 5.59C19.7 5.3 19.85 5.15 19.92 4.97C20 4.78 20 4.58 20 4.17V4C20 3.06 20 2.59 19.71 2.29C19.41 2 18.94 2 18 2H6C5.06 2 4.59 2 4.29 2.29C4 2.59 4 3.06 4 4V4.17C4 4.58 4 4.78 4.08 4.97C4.15 5.15 4.3 5.3 4.59 5.59L7.83 8.83C8.41 9.41 8.7 9.7 8.85 10.06C9 10.43 9 10.84 9 11.66Z" stroke="currentColor" stroke-linecap="round"/><path d="M15 10H9" stroke="currentColor" stroke-linecap="round"/><path d="M12 13V15" stroke="currentColor" stroke-linecap="round"/><path d="M4.5 5H19.5" stroke="currentColor" stroke-linecap="round"/>'},ht={"dcv3.mrz.searching":"ضع صفحة جواز السفر كاملة داخل الإطار","dcv3.mrz.showMrzSide":"اعرض الوجه الذي يحتوي على سطرين أو ثلاثة أسطر من الحروف","dcv3.mrz.reading":"جارٍ قراءة الوثيقة… ثبّتها","dcv3.mrz.moveCloser":"اقترب حتى تملأ أسطر الحروف الإطار","dcv3.mrz.turnSideways":"أدر هاتفك أفقيًا لقراءة أسطر الحروف","dcv3.mrz.glare":"أمِل الوثيقة لإزالة الانعكاس","dcv3.mrz.holdStill":"لا تتحرك","dcv3.mrz.valid":"تمت قراءة الوثيقة. جارٍ التقاط الصورة","dcv3.mrz.looksLikePassport":"يبدو أن هذا جواز سفر","dcv3.mrz.looksLikeCard":"يبدو أن هذه بطاقة تعريف أو بطاقة إقامة"},ee={"dcv3.mrz.searching":"Fit the whole passport page in the frame","dcv3.mrz.showMrzSide":"Show the side with the two or three lines of characters","dcv3.mrz.reading":"Reading the document… hold it steady","dcv3.mrz.moveCloser":"Move closer so the lines of characters fill the frame","dcv3.mrz.turnSideways":"Turn your phone sideways to read the lines of characters","dcv3.mrz.glare":"Tilt the document to remove the reflection","dcv3.mrz.holdStill":"Hold still","dcv3.mrz.valid":"Document read. Taking the photo","dcv3.mrz.looksLikePassport":"This looks like a passport","dcv3.mrz.looksLikeCard":"This looks like an identity card or residence permit"},pt={"dcv3.mrz.searching":"Cadrez toute la page du passeport","dcv3.mrz.showMrzSide":"Montrez la face avec les deux ou trois lignes de caractères","dcv3.mrz.reading":"Lecture du document… tenez-le immobile","dcv3.mrz.moveCloser":"Rapprochez-vous pour que les lignes de caractères remplissent le cadre","dcv3.mrz.turnSideways":"Tournez votre téléphone à l’horizontale pour lire les lignes de caractères","dcv3.mrz.glare":"Inclinez le document pour supprimer le reflet","dcv3.mrz.holdStill":"Ne bougez plus","dcv3.mrz.valid":"Document lu. Prise de la photo","dcv3.mrz.looksLikePassport":"Ceci ressemble à un passeport","dcv3.mrz.looksLikeCard":"Ceci ressemble à une carte d’identité ou un titre de séjour"},mt={"doc.uploadInstead":"رفع صورة بدلًا من ذلك","doc.uploadTitle":"ارفع صورة لوثيقتك","doc.uploadHint":"صورة واضحة للوثيقة كاملة، ملتقطة بكاميرا.","doc.uploadUnsupported":"اختر صورة للوثيقة بصيغة JPEG أو PNG أو HEIC.","doc.uploadFailed":"تعذّر إرسال هذه الصورة. أعد المحاولة.","doc.source.title":"كيف تريد إضافة وثيقتك؟","doc.source.description":"التقط صورة بالكاميرا، أو ارفع صورة للوثيقة من هذا الجهاز.","doc.source.camera":"التقاط صورة","doc.source.upload":"رفع صورة"},te={"doc.uploadInstead":"Upload a photo instead","doc.uploadTitle":"Upload a photo of your document","doc.uploadHint":"A clear photo of the whole document, taken with a camera.","doc.uploadUnsupported":"Choose a JPEG, PNG or HEIC photo of the document.","doc.uploadFailed":"We could not send this photo. Try again.","doc.source.title":"How do you want to add your document?","doc.source.description":"Take a photo with the camera, or upload a photo of the document from this device.","doc.source.camera":"Take a photo","doc.source.upload":"Upload a photo"},vt={"doc.uploadInstead":"Téléverser une photo à la place","doc.uploadTitle":"Téléversez une photo de votre document","doc.uploadHint":"Une photo nette du document entier, prise avec un appareil photo.","doc.uploadUnsupported":"Choisissez une photo JPEG, PNG ou HEIC du document.","doc.uploadFailed":"Nous n'avons pas pu envoyer cette photo. Réessayez.","doc.source.title":"Comment voulez-vous ajouter votre document ?","doc.source.description":"Prenez une photo avec la caméra, ou importez une photo du document depuis cet appareil.","doc.source.camera":"Prendre une photo","doc.source.upload":"Importer une photo"},ft={"native.doc.introTitle":"سنلتقط صورة لوثيقتك","native.doc.introLead":"ستُفتح كاميرا هاتفك، وتُلتقط الصورة تلقائيًا بمجرد أن تكون الوثيقة داخل الإطار.","native.doc.tip.flat":"ضع الوثيقة مسطحة على سطح داكن.","native.doc.tip.glare":"تجنّب انعكاسات المصابيح أو الشمس.","native.doc.tip.frame":"أبقِ الوثيقة كاملة داخل الإطار.","native.doc.openCamera":"افتح الكاميرا","native.doc.changeDocument":"تغيير الوثيقة","native.scan.closer":"اقترب قليلًا","native.scan.farther":"ابتعد قليلًا","native.scan.glare":"أمِل البطاقة قليلًا","native.scan.dark":"الإضاءة ضعيفة. شغّل المصباح.","native.scan.blurry":"الصورة غير واضحة. ثبّت الهاتف.","native.scan.holdStill":"لا تتحرك","native.scan.reading":"جارٍ التحقق من وثيقتك…","native.scan.putDown":"يمكنك وضع وثيقتك جانبًا.","native.scan.retry":"لنحاول مرة أخرى"},ae={"native.doc.introTitle":"Photograph your document","native.doc.introLead":"Your phone's camera will open. The photo is taken by itself as soon as the document is well framed.","native.doc.tip.flat":"Lay the document flat on a dark surface.","native.doc.tip.glare":"Avoid glare from lamps or sunlight.","native.doc.tip.frame":"Keep the whole document in the frame.","native.doc.openCamera":"Open the camera","native.doc.changeDocument":"Change document","native.scan.closer":"Move a little closer","native.scan.farther":"Move back a little","native.scan.glare":"Tilt the card a little","native.scan.dark":"Too dark. Turn on the light.","native.scan.blurry":"Blurry image. Hold the phone still.","native.scan.holdStill":"Hold still","native.scan.reading":"Checking your document…","native.scan.putDown":"You can put your document down.","native.scan.retry":"Let's try that again"},kt={"native.doc.introTitle":"Photographiez votre pièce","native.doc.introLead":"La caméra de votre téléphone va s'ouvrir. La photo est prise automatiquement dès que la pièce est bien cadrée.","native.doc.tip.flat":"Posez la pièce à plat, sur une surface sombre.","native.doc.tip.glare":"Évitez les reflets de lampe ou de soleil.","native.doc.tip.frame":"Gardez toute la pièce dans le cadre.","native.doc.openCamera":"Ouvrir la caméra","native.doc.changeDocument":"Changer de document","native.scan.closer":"Approchez un peu","native.scan.farther":"Reculez un peu","native.scan.glare":"Inclinez un peu la carte","native.scan.dark":"Trop sombre. Allumez la lampe.","native.scan.blurry":"Image floue. Tenez le téléphone immobile.","native.scan.holdStill":"Ne bougez plus","native.scan.reading":"Vérification de votre document…","native.scan.putDown":"Vous pouvez poser votre pièce.","native.scan.retry":"Réessayons"},gt=["locking","capturing"],W,Ye=(W=class{constructor(){this.shown={hint:null,locking:!1,card:null,manualShutter:!1},this.candidate=null,this.candidateSince=0,this.hintShownAt=0,this.lockLostAt=null,this.detectedSince=null,this.lostSince=null,this.shutterSince=null}present(t,n){return this.presentHint(t,n),this.presentLock(t,n),this.presentCard(t,n),this.shutterSince=t.manualShutter?this.shutterSince??n:null,this.shown={...this.shown,manualShutter:this.shutterSince!==null&&n-this.shutterSince>=1e3},this.shown}presentHint(t,n){let o=t.phase==="framing"&&!(t.hint==="blurry"&&t.card===null)?t.hint:null;if(t.phase!=="framing"){this.shown={...this.shown,hint:null},this.candidate=null;return}if(o!==this.candidate&&(this.candidate=o,this.candidateSince=n),o===this.shown.hint)return;let r=n-this.candidateSince>=(o===null?0:350),f=this.shown.hint===null||n-this.hintShownAt>=1200;r&&f&&(this.shown={...this.shown,hint:o},this.hintShownAt=n)}presentLock(t,n){if(gt.includes(t.phase)){this.shown={...this.shown,locking:!0},this.lockLostAt=null;return}if(this.shown.locking){if(t.phase!=="framing"){this.shown={...this.shown,locking:!1},this.lockLostAt=null;return}this.lockLostAt??(this.lockLostAt=n),n-this.lockLostAt>=300&&(this.shown={...this.shown,locking:!1},this.lockLostAt=null)}}presentCard(t,n){let o=t.card;if(o===null||t.phase!=="framing"){if(t.phase!=="framing"){this.shown={...this.shown,card:null},this.detectedSince=null,this.lostSince=null;return}this.detectedSince=null,this.lostSince??(this.lostSince=n),n-this.lostSince>=300&&(this.shown={...this.shown,card:null});return}if(this.lostSince=null,this.detectedSince??(this.detectedSince=n),n-this.detectedSince<250)return;let r=this.shown.card;if(r===null){this.shown={...this.shown,card:{...o}};return}let f=.35;this.shown={...this.shown,card:{fill:r.fill+(o.fill-r.fill)*f,offsetX:r.offsetX+(o.offsetX-r.offsetX)*f,offsetY:r.offsetY+(o.offsetY-r.offsetY)*f}}}},c(W,"fe"),W);h(Ye,"ScanPresenter");var yt=Ye,wt={en:ae,fr:kt,ar:ft,es:ae,pt:ae,de:ae},Ct=450,fe=h(a=>t=>Ve(a.strings[t]??wt[a.locale][t]??""),"useScanCopy");function j({name:a}){return(0,e.jsx)("svg",{className:"sekyro-glyph",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",focusable:"false",dangerouslySetInnerHTML:{__html:ut[a]}})}c(j,"ae");h(j,"ScanGlyph");var zt={en:ee,fr:pt,ar:ht,es:ee,pt:ee,de:ee},bt={en:te,fr:vt,ar:mt,es:te,pt:te,de:te},St="image/jpeg,image/png,image/heic,image/heif";function E(a){let t=a.strings,n=h(o=>t[o]??bt[a.locale][o],"text");return{t:h(o=>n(o)??"","t")}}c(E,"F");h(E,"uploadCopy");function We(a,t){return a===null||a.state==="fallback"||a.state==="mismatch"?null:a.state==="searching"?t?"dcv3.mrz.searching":"dcv3.mrz.showMrzSide":a.state==="valid"?"dcv3.mrz.valid":a.coach!==void 0?`dcv3.mrz.${a.coach}`:"dcv3.mrz.reading"}c(We,"vt");h(We,"mrzInstruction");function ne(a){return a.reason==="unreadable"?"doc.reason_unreadable":a.reason==="tester_document_mismatch"?"reasons.tester_document_mismatch":a.reason!==void 0&&a.reason!=="side_missing"?De(a.reason):null}c(ne,"ve");h(ne,"reasonOf");var Nt=new Set(["document_type_not_accepted","tester_document_mismatch"]);function xt({step:a,i18n:t,liveMrz:n,ageLead:o,...r}){let[f,g]=(0,i.useState)(!1),y=(0,i.useRef)(-1),[v,k]=(0,i.useState)("idle"),w=(0,i.useRef)(null),x=typeof a.uploadDocument=="function",z=x?a.photo?.source??"camera":"camera",M=x&&z!=="camera"&&a.photo?.uploadOffered===!0,[C,V]=(0,i.useState)(null),_=z==="upload"?"upload":z==="choice"?C??a.photo?.pick??"source":"camera",H=v==="sending"?void 0:()=>w.current?.click(),m=h(async D=>{let q=D.currentTarget.files?.[0];if(D.currentTarget.value="",q!==void 0){g(!1),k("sending");try{await a.uploadDocument(q),k("idle")}catch(F){k(F instanceof TypeError&&F.message==="unsupported_file"?"unsupported":"failed")}}},"onFile"),Q=M?(0,e.jsx)("input",{ref:w,type:"file",accept:St,hidden:!0,"data-testid":"sekyro-doc-upload","aria-label":E(t).t("doc.uploadTitle"),onChange:c(D=>{m(D)},"onChange")}):null,b=E(t),X=a.photo?.cameraOnPhone===!0;return _==="camera"&&X?(0,e.jsx)(Be,{i18n:t,lead:t.t("handoff.lead.document"),refresh:a.refresh,actions:(0,e.jsx)(O,{kind:"ghost",full:!0,onClick:c(()=>V("upload"),"onClick"),children:b.t("doc.source.upload")})}):_==="source"?(0,e.jsx)(Ge,{testId:"sekyro-doc-source",title:b.t("doc.source.title"),lead:b.t("doc.source.description"),cameraLabel:X?t.t("capture.source.phone"):b.t("doc.source.camera"),onPhone:X,uploadLabel:b.t("doc.source.upload"),notice:(0,e.jsx)(oe,{step:a,i18n:t}),onCamera:c(()=>V("camera"),"onCamera"),onUpload:c(()=>V("upload"),"onUpload")}):_==="upload"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(je,{step:a,i18n:t,ageLead:o===!0,upload:v,offered:M,onPick:c(()=>w.current?.click(),"onPick"),...z==="choice"?{onCamera:h(()=>V("camera"),"onCamera")}:{},...r}),Q]}):(0,e.jsxs)(e.Fragment,{children:[f?(0,e.jsx)(Qe,{step:a,i18n:t,attempts:y,...n!==void 0?{liveMrz:n}:{},...M&&H!==void 0?{onUpload:H}:{},onClose:c(()=>g(!1),"onClose")}):(0,e.jsx)(Fe,{step:a,i18n:t,ageLead:o===!0,onOpen:c(()=>g(!0),"onOpen"),upload:v,...M&&H!==void 0?{onUpload:H}:{},...r}),Q]})}c(xt,"ln");h(xt,"DocumentCaptureView");function ke({passport:a}){let t=Math.round(228/(a?1.42:1.586));return(0,e.jsxs)("svg",{className:"sekyro-mark sekyro-mark--card",viewBox:`-12 -12 252 ${t+24}`,"aria-hidden":"true",focusable:"false",children:[(0,e.jsx)("defs",{children:(0,e.jsx)("clipPath",{id:"sekyro-card-clip",children:(0,e.jsx)("rect",{width:228,height:t,rx:"12.5"})})}),(0,e.jsx)("rect",{className:"sekyro-mark__card",width:228,height:t,rx:"12.5"}),(0,e.jsx)("rect",{className:"sekyro-mark__photo",x:"17",y:"17",width:"55",height:t*.52,rx:"6"}),[0,1,2].map(n=>(0,e.jsx)("rect",{className:"sekyro-mark__text",x:"88",y:23+n*t*.12,width:100-n*20,height:"6",rx:"3"},n)),[0,1].map(n=>(0,e.jsx)("rect",{className:"sekyro-mark__text",x:"17",y:t*.74+n*9,width:194,height:"4",rx:"2"},n)),(0,e.jsx)("g",{clipPath:"url(#sekyro-card-clip)",children:(0,e.jsx)("g",{className:"sekyro-mark__read",style:{"--sekyro-read-w":"228px"},children:(0,e.jsx)("rect",{x:"-1",width:"2",height:t,className:"sekyro-mark__beam"})})}),(0,e.jsx)("path",{className:"sekyro-mark__brackets",d:Xe(-10,-10,248,t+20,16,30)})]})}c(ke,"qe");h(ke,"ScanMark");function Xe(a,t,n,o,r,f){let g=Math.min(r,f*.6);return[[a,t,1,1],[a+n,t,-1,1],[a,t+o,1,-1],[a+n,t+o,-1,-1]].map(([y,v,k,w])=>`M${y} ${v+w*f}V${v+w*g}Q${y} ${v} ${y+k*g} ${v}H${y+k*f}`).join("")}c(Xe,"kt");h(Xe,"brackets");function Fe({step:a,i18n:t,ageLead:n,onOpen:o,onChangeCountry:r,onChangeDocument:f,upload:g,onUpload:y}){let v=fe(t),k=E(t),w=a.documentType==="passport",x=ne(a),z=g==="sending",M=(0,i.useContext)(Re)?.busy===!0;return(0,e.jsxs)("section",{className:"sekyro-step","data-testid":"sekyro-document",children:[(0,e.jsx)(ke,{passport:w}),(0,e.jsx)(ue,{title:v("native.doc.introTitle"),lead:n?t.t("doc.ageStepUp"):v("native.doc.introLead")}),(0,e.jsx)(oe,{step:a,i18n:t}),a.reason!==void 0&&Nt.has(a.reason)?null:(0,e.jsxs)("ul",{className:"sekyro-tiprows",children:[(0,e.jsxs)("li",{children:[(0,e.jsx)(Y,{name:w?"passport":"card"}),v("native.doc.tip.flat")]}),(0,e.jsxs)("li",{children:[(0,e.jsx)(Y,{name:"light"}),v("native.doc.tip.glare")]}),(0,e.jsxs)("li",{children:[(0,e.jsx)(j,{name:"image"}),v("native.doc.tip.frame")]})]}),(0,e.jsx)(ge,{i18n:t,...f!==void 0?{onChangeDocument:f}:{},...r!==void 0?{onChangeCountry:r}:{}}),(0,e.jsx)(ye,{i18n:t,upload:g}),z?(0,e.jsx)("p",{className:"sekyro-text-muted",role:"status",children:t.t("doc.uploading")}):y!==void 0?(0,e.jsx)("p",{className:"sekyro-text-muted",children:k.t("doc.uploadHint")}):null,(0,e.jsxs)(he,{children:[(0,e.jsxs)(O,{full:!0,onClick:o,disabled:z||M,children:[(0,e.jsx)(Y,{name:"camera"}),v("native.doc.openCamera")]}),y!==void 0?(0,e.jsxs)(O,{full:!0,kind:"ghost",onClick:y,children:[(0,e.jsx)(j,{name:"image"}),k.t("doc.uploadInstead")]}):null]})]})}c(Fe,"bt");h(Fe,"DocumentIntro");function oe({step:a,i18n:t}){let n=ne(a);return n===null?null:(0,e.jsxs)(pe,{tone:"warning",children:[(0,e.jsx)("span",{children:t.t(n)}),(0,e.jsx)("span",{children:me(t,a.attemptsRemaining,a.attemptsExhausted)})]})}c(oe,"ye");h(oe,"ReasonNotice");function ge({i18n:a,onChangeCountry:t,onChangeDocument:n}){let o=fe(a);return n===void 0&&t===void 0?null:(0,e.jsxs)("div",{className:"sekyro-links",children:[n!==void 0?(0,e.jsx)("button",{type:"button",className:"sekyro-link",onClick:n,children:o("native.doc.changeDocument")}):null,t!==void 0?(0,e.jsx)("button",{type:"button",className:"sekyro-link",onClick:t,children:a.t("native.doc.changeCountry")}):null]})}c(ge,"Je");h(ge,"ChangeLinks");function ye({i18n:a,upload:t}){return t!=="unsupported"&&t!=="failed"?null:(0,e.jsx)(pe,{tone:"warning",children:(0,e.jsx)("span",{children:E(a).t(t==="unsupported"?"doc.uploadUnsupported":"doc.uploadFailed")})})}c(ye,"et");h(ye,"UploadNotice");function je({step:a,i18n:t,ageLead:n,upload:o,offered:r,onPick:f,onCamera:g,onChangeCountry:y,onChangeDocument:v}){let k=E(t),w=o==="sending";return(0,e.jsxs)("section",{className:"sekyro-step","data-testid":"sekyro-doc-upload-screen",children:[(0,e.jsx)(ke,{passport:a.documentType==="passport"}),(0,e.jsx)(ue,{title:k.t("doc.uploadTitle"),lead:n?t.t("doc.ageStepUp"):k.t("doc.uploadHint")}),n?(0,e.jsx)("p",{className:"sekyro-text-muted",children:k.t("doc.uploadHint")}):null,(0,e.jsx)(oe,{step:a,i18n:t}),(0,e.jsx)(ge,{i18n:t,...v!==void 0?{onChangeDocument:v}:{},...y!==void 0?{onChangeCountry:y}:{}}),(0,e.jsx)(ye,{i18n:t,upload:o}),w?(0,e.jsx)("p",{className:"sekyro-text-muted",role:"status",children:t.t("doc.uploading")}):null,(0,e.jsxs)(he,{children:[(0,e.jsxs)(O,{full:!0,onClick:f,disabled:w||!r||a.attemptsExhausted,children:[(0,e.jsx)(j,{name:"image"}),k.t("doc.source.upload")]}),g!==void 0?(0,e.jsxs)(O,{full:!0,kind:"ghost",onClick:g,disabled:w,children:[(0,e.jsx)(Y,{name:"camera"}),k.t("doc.source.camera")]}):null]})]})}c(je,"wt");h(je,"DocumentUploadScreen");function ve(a,t,n){let o=a*.88,r=o/n;return{x:(a-o)/2,y:t*.42-r/2,w:o,h:r}}c(ve,"Qe");h(ve,"guideRect");var $t={too_far:"native.scan.closer",too_close:"native.scan.farther",focus_far:"native.scan.farther",glare:"native.scan.glare",too_bright:"native.scan.glare",too_dark:"native.scan.dark",blurry:"native.scan.blurry"},Lt=h(()=>typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0,"reduceMotion");function Qe({step:a,i18n:t,liveMrz:n,onClose:o,attempts:r,onUpload:f}){let g=fe(t),y=(0,i.useContext)(Ie),v=(0,i.useRef)(y);v.current=y;let k=(0,i.useRef)(null),w=(0,i.useRef)(null),x=(0,i.useRef)(null),[z,M]=(0,i.useState)("idle"),[C,V]=(0,i.useState)(null),[_,H]=(0,i.useState)(null),[m,Q]=(0,i.useState)({w:0,h:0}),[b,X]=(0,i.useState)({hint:null,locking:!1,card:null,manualShutter:!1}),[D,q]=(0,i.useState)({}),[F,Ke]=(0,i.useState)(null),[we,et]=(0,i.useState)(null),[Ce,ze]=(0,i.useState)(0),[be,Se]=(0,i.useState)(null),[Z,Ne]=(0,i.useState)(null),A=a.documentType==="passport",J=A?1.42:1.586;Ae(!0),(0,i.useLayoutEffect)(()=>{let s=k.current;if(s===null)return;let u=h(()=>Q({w:s.clientWidth,h:s.clientHeight}),"measure");if(u(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(u);return d.observe(s),()=>d.disconnect()},[]);let l=ve(m.w,m.h,J);(0,i.useEffect)(()=>{m.w===0||m.h===0||x.current?.setGuide?.({viewAspect:m.w/m.h,rect:{x:l.x/m.w,y:l.y/m.h,width:l.w/m.w,height:l.h/m.h}})},[m.w,m.h,l.x,l.y,l.w,l.h]),(0,i.useEffect)(()=>{let s=w.current;if(s===null)return;let u=a.capture({video:s,...n!==void 0?{liveMrz:n}:{}});x.current=u;let d=k.current;if(d!==null&&d.clientWidth>0&&d.clientHeight>0){let p=ve(d.clientWidth,d.clientHeight,J);u.setGuide?.({viewAspect:d.clientWidth/d.clientHeight,rect:{x:p.x/d.clientWidth,y:p.y/d.clientHeight,width:p.w/d.clientWidth,height:p.h/d.clientHeight}})}let T=new yt,N={scan:null,feedback:null,gate:null},P=h(p=>{N={...N,...p};let L=N.gate?.guide,st={phase:N.scan?.phase??"framing",hint:N.feedback?.reticle==="coaching"?N.feedback.key:null,card:L?.detected?{fill:L.fill,offsetX:L.offsetX,offsetY:L.offsetY}:null,manualShutter:N.scan?.manualShutter??!1},U=T.present(st,performance.now());X(I=>I.hint===U.hint&&I.locking===U.locking&&I.manualShutter===U.manualShutter&&I.card?.fill===U.card?.fill&&I.card?.offsetX===U.card?.offsetX&&I.card?.offsetY===U.card?.offsetY?I:U)},"present"),it=[u.on("state",M),u.on("feedback",p=>P({feedback:p})),u.on("gate",p=>P({gate:p})),u.on("scan",p=>{V(p),P({scan:p})}),u.on("captured",p=>{q(L=>({...L,[qe(p.side,A,L)]:p.previewDataUrl})),Ke(p.previewDataUrl),et(Je(s))}),u.on("error",p=>{H(p);let L=v.current;L!==null&&Ee(L,Oe("document",p,Math.max(0,r.current)))}),u.on("mrz",p=>{p.state==="mismatch"?Ne(p.format??null):Se(p)})];return r.current+=1,u.start().catch(()=>{}),()=>{for(let p of it)p();u.destroy(),x.current=null}},[a.issuer,a.documentType]);let $=C?.phase??"framing",R=$==="reading"||$==="result",re=$==="flipCue"||$==="reaskRecto",B=b.locking,xe=C?.captured.length??0;(0,i.useEffect)(()=>{B&&ze(s=>s+1)},[B]),(0,i.useEffect)(()=>{xe>0&&ze(s=>s+1)},[xe]);let tt=C?.expected??null;(0,i.useEffect)(()=>{Se(null)},[tt]),(0,i.useEffect)(()=>{if(Z===null)return;let s=setTimeout(()=>Ne(null),2e3);return()=>clearTimeout(s)},[Z]);let $e=re||R?null:We(be,A),le=Z!==null?Z==="TD3"?"dcv3.mrz.looksLikePassport":"dcv3.mrz.looksLikeCard":$e,at=le===null?null:t.strings[le]??zt[t.locale][le],ie=ne(a),Le=b.hint===null?null:$t[b.hint]??`dcv2.${b.hint}`,nt=Le??($==="flipCue"?C?.notice==="same_face"?"doc.sameFace":"doc.flip":$==="reaskRecto"?"doc.reaskRecto":R?"native.scan.reading":$==="locking"||$==="capturing"||B?"native.scan.holdStill":C?.notice==="reread"?ie??"doc.reread":C?.notice==="technical"?"native.scan.retry":C?.notice==="blurry"?"native.scan.blurry":ie??(A?"doc.showPage":"doc.showSide")),se=at??g(nt),G=b.card,S=l;if(!B&&G!==null&&G.fill>=.45&&G.fill<=1.25&&!Lt()){let s=l.w*G.fill,u=s/J,d=l.x+l.w/2+l.w*Math.max(-.25,Math.min(.25,G.offsetX)),T=l.y+l.h/2+l.h*Math.max(-.25,Math.min(.25,G.offsetY));S={x:d-s/2,y:T-u/2,w:s,h:u}}let K=l.w*.045,ce=28,Me=Math.min(K,ce*.6),ot=[[S.x,S.y,1,1],[S.x+S.w,S.y,-1,1],[S.x,S.y+S.h,1,-1],[S.x+S.w,S.y+S.h,-1,-1]],rt=B?"is-locked":b.hint!==null?"is-coaching":"",lt=A?[{side:"single",label:"doc.progressPage"}]:[{side:"recto",label:"doc.progressFront"},{side:"verso",label:"doc.progressBack"}],Te=l.y+l.h+48,de={insetInlineStart:l.x,insetBlockStart:l.y,inlineSize:l.w,blockSize:l.h,borderRadius:K};return(0,e.jsx)("section",{className:"sekyro-lm","aria-label":se,"data-testid":"sekyro-document",children:(0,e.jsxs)("div",{ref:k,className:`sekyro-lm-stage${R?" is-reading":""}${re?" is-flip":""}`,style:{"--sekyro-guide-w":`${l.w}px`},children:[(0,e.jsx)("video",{ref:w,className:"sekyro-lm-video",playsInline:!0,muted:!0,autoPlay:!0,"aria-hidden":"true",onPointerUp:c(s=>{let u=s.currentTarget,d=u.getBoundingClientRect(),T=Math.max(d.width/(u.videoWidth||1),d.height/(u.videoHeight||1)),N=u.videoWidth*T,P=u.videoHeight*T;N>0&&P>0&&x.current?.focusAt((s.clientX-d.left+(N-d.width)/2)/N,(s.clientY-d.top+(P-d.height)/2)/P)},"onPointerUp")}),m.w>0?(0,e.jsxs)(e.Fragment,{children:[R&&we!==null?(0,e.jsx)("img",{className:"sekyro-lm-scene",src:we,alt:""}):null,R&&F!==null?(0,e.jsx)("img",{className:"sekyro-lm-frozen",src:F,alt:"",style:de}):null,(0,e.jsxs)("svg",{className:"sekyro-lm-overlay",viewBox:`0 0 ${m.w} ${m.h}`,"aria-hidden":"true",focusable:"false",children:[(0,e.jsxs)("defs",{children:[(0,e.jsxs)("linearGradient",{id:"sekyro-lm-top",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,e.jsx)("stop",{offset:"0",className:"sekyro-lm-ink",stopOpacity:"0.85"}),(0,e.jsx)("stop",{offset:"1",className:"sekyro-lm-ink",stopOpacity:"0"})]}),(0,e.jsxs)("linearGradient",{id:"sekyro-lm-bottom",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,e.jsx)("stop",{offset:"0",className:"sekyro-lm-ink",stopOpacity:"0"}),(0,e.jsx)("stop",{offset:"1",className:"sekyro-lm-ink",stopOpacity:"0.9"})]})]}),(0,e.jsx)("path",{className:"sekyro-lm-scrim",fillRule:"evenodd",d:`M0 0H${m.w}V${m.h}H0Z${Ze(l,K)}`}),(0,e.jsx)("rect",{width:m.w,height:Math.max(0,l.y),fill:"url(#sekyro-lm-top)"}),(0,e.jsx)("rect",{y:l.y+l.h,width:m.w,height:Math.max(0,m.h-l.y-l.h),fill:"url(#sekyro-lm-bottom)"}),(0,e.jsx)("g",{className:`sekyro-lm-brackets ${rt}`,children:ot.map(([s,u,d,T],N)=>(0,e.jsx)("path",{style:{transform:`translate(${s}px, ${u}px) scale(${d}, ${T})`},d:`M0 ${ce}V${Me}Q0 0 ${Me} 0H${ce}`},N))}),B?(0,e.jsx)("rect",{className:"sekyro-lm-trace",x:l.x,y:l.y,width:l.w,height:l.h,rx:K,pathLength:"1",style:{animationDuration:`${Ct}ms`}}):null]}),(0,e.jsx)("div",{className:"sekyro-lm-slot",style:de,"aria-hidden":"true",children:R?(0,e.jsx)("span",{className:"sekyro-lm-read is-repeating"}):Ce>0?(0,e.jsx)("span",{className:"sekyro-lm-read"},Ce):null})]}):null,$e!==null?(0,e.jsx)("div",{className:"sekyro-lm-slot",style:de,"aria-hidden":"true",children:(0,e.jsx)("span",{"data-testid":"sekyro-mrz-strip",className:`sekyro-lm-mrz${A?" is-page":""}${be?.state==="valid"?" is-valid":""}`})}):null,(0,e.jsxs)("div",{className:"sekyro-lm-instruction",style:{insetBlockStart:l.y-64},children:[(0,e.jsx)("div",{role:"status","aria-live":"polite",children:(0,e.jsx)(Ue,{swapKey:se,className:"sekyro-lm-line",children:se})}),ie!==null&&$==="framing"&&Le===null?(0,e.jsx)("p",{className:"sekyro-lm-attempts",children:me(t,a.attemptsRemaining,a.attemptsExhausted)}):null]}),R?(0,e.jsxs)("p",{className:"sekyro-lm-under sekyro-lm-note",style:{insetBlockStart:Te-12},children:[(0,e.jsx)("span",{className:"sekyro-lm-spinner","aria-hidden":"true"}),g("native.scan.putDown")]}):re?(0,e.jsx)("div",{className:`sekyro-lm-under sekyro-lm-flip${$==="reaskRecto"?" is-toFront":""}`,style:{insetBlockStart:Te-20},"data-testid":"sekyro-flip-cue","aria-hidden":"true",children:(0,e.jsxs)("span",{className:"sekyro-lm-flip-card",style:{aspectRatio:String(J)},children:[(0,e.jsx)("span",{className:"sekyro-lm-flip-front"}),(0,e.jsx)("span",{className:"sekyro-lm-flip-back"})]})}):null,(0,e.jsxs)("div",{className:"sekyro-lm-controls",children:[(0,e.jsxs)("div",{className:"sekyro-lm-bar",children:[(0,e.jsx)("button",{type:"button",className:"sekyro-glass","aria-label":t.t("native.close"),onClick:o,children:(0,e.jsx)(Y,{name:"close"})}),C?.torchAvailable?(0,e.jsx)("button",{type:"button",className:`sekyro-glass${C.torch?" is-on":""}`,"aria-label":t.t("doc.torchOn"),"aria-pressed":C.torch,onClick:c(()=>x.current?.setTorch(!C.torch),"onClick"),children:(0,e.jsx)(j,{name:"flashlight"})}):null]}),_!==null?(0,e.jsxs)("div",{className:"sekyro-lm-error",role:"alert",children:[(0,e.jsx)("p",{children:t.t("doc.cameraBlocked")}),(0,e.jsx)("p",{children:t.t(_.kind==="permission"?"doc.cameraBlockedHint":He(_.kind))}),(0,e.jsx)(O,{onClick:c(()=>{H(null),r.current+=1,x.current?.retry()},"onClick"),children:t.t("doc.retryCamera")})]}):null,b.manualShutter?(0,e.jsx)("button",{type:"button",className:"sekyro-shutter","aria-label":t.t("doc.shutter"),onClick:c(()=>x.current?.shutter(),"onClick")}):null,(0,e.jsx)("ol",{className:"sekyro-lm-tray",children:lt.map(({side:s,label:u})=>{let d=C?.captured.includes(s)??!1;return(0,e.jsxs)("li",{className:d?"is-done":void 0,"aria-current":!d&&(A||C?.expected===s)?"step":void 0,children:[d?(0,e.jsxs)("span",{className:"sekyro-lm-thumb",children:[D[s]!==void 0?(0,e.jsx)("img",{src:D[s],alt:""}):null,(0,e.jsx)("svg",{className:"sekyro-lm-check",viewBox:"0 0 18 18","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M5 9.2l2.6 2.6L13 6.4"})})]}):null,g(u)]},s)})}),f!==void 0?(0,e.jsx)("button",{type:"button",className:"sekyro-lm-upload",onClick:f,children:E(t).t("doc.uploadInstead")}):null,z==="uploading"||z==="checking"?null:(0,e.jsx)(Pe,{onStop:o})]}),z==="uploading"||z==="checking"?(0,e.jsx)("span",{className:"sekyro-visually-hidden",role:"status",children:z==="uploading"?t.t("doc.uploading"):g("native.scan.reading")}):null]})})}c(Qe,"Nt");h(Qe,"LumiereScan");function qe(a,t,n){return t?"single":a==="recto"||a==="verso"?a:n.recto===void 0?"recto":"verso"}c(qe,"Lt");h(qe,"slotOf");function Ze({x:a,y:t,w:n,h:o},r){return`M${a+r} ${t}H${a+n-r}Q${a+n} ${t} ${a+n} ${t+r}V${t+o-r}Q${a+n} ${t+o} ${a+n-r} ${t+o}H${a+r}Q${a} ${t+o} ${a} ${t+o-r}V${t+r}Q${a} ${t} ${a+r} ${t}Z`}c(Ze,"zt");h(Ze,"roundedRect");function Je(a){let t=Math.round(a.videoWidth/4),n=Math.round(a.videoHeight/4);if(t===0||n===0||typeof document>"u")return null;try{let o=document.createElement("canvas");o.width=t,o.height=n;let r=o.getContext("2d");return r===null?null:(r.drawImage(a,0,0,t,n),o.toDataURL("image/jpeg",.7))}catch{return null}}c(Je,"xt");h(Je,"sceneSnapshot");export{xt as DocumentCaptureView,Ct as LOCK_TRACE_MS,St as UPLOAD_ACCEPT,ve as guideRect,We as mrzInstruction,qe as slotOf};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as O,b as v,c as W}from"./chunk-JOZCJGRV.js";import{a as q,b as J,c as K}from"./chunk-IFGPCCJH.js";import{a as z}from"./chunk-6MEPT5ZS.js";import{a as w}from"./chunk-562ANROG.js";import{c as T,d as A}from"./chunk-YEPHU5PX.js";import"./chunk-OBPBHX2J.js";import{H as j,K as E,a as oe,b as ce,c as N,t as U,y as R}from"./chunk-UYAVCSQ4.js";import"./chunk-3KIFGAEK.js";import"./chunk-HODE7UDG.js";import"./chunk-TCW6XNLI.js";import"./chunk-UZWMCNZI.js";import{a as o}from"./chunk-RK4HVNRS.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import{a as u,c as P}from"./chunk-4FHWXBOB.js";var a=P(oe(),1),i=P(ce(),1);var Q={en:v,fr:W,ar:O,es:v,pt:v,de:v},C=6,pe=new Set(["eid_identifier_invalid","eid_code_invalid","eid_locked","eid_not_enrolled"]),X=o((e,d)=>{if(e===void 0)return 0;let h=Date.parse(e)-d;return Number.isFinite(h)?Math.max(0,Math.ceil(h/1e3)):0},"secondsUntil"),me=o(e=>`${Math.floor(e/60)}:${String(e%60).padStart(2,"0")}`,"mmss");function ue({step:e,i18n:d,className:h,onError:Y}){let I=d.strings,r=o((n,t)=>w(I[n]??Q[d.locale][n]??"",t),"t"),B=o((n,t)=>{let le=new Intl.PluralRules(d.locale).select(t),L=`${n}.${le}`,te=I[L]??Q[d.locale][L]??r(`${n}.other`);return w(te,{count:new Intl.NumberFormat(d.locale).format(t)})},"plural"),y=o(n=>e.providerName?r(`eid.${n}`,{provider:e.providerName}):r(`eid.${n}Generic`),"named"),[S,Z]=(0,a.useState)(""),[f,_]=(0,a.useState)(""),[c,D]=(0,a.useState)(!1),[b,p]=(0,a.useState)(null),s=e.phase==="code",F=K(s),l=(0,a.useId)(),ee=U(),[ie,ne]=q(e.reason==="eid_code_invalid",e.codeAttemptsRemaining??0,()=>_("")),m=o(async n=>{D(!0),p(null);try{await n()}catch(t){p(z(t,d.strings)),Y?.(t)}finally{D(!1)}},"run"),M=(0,a.useRef)(!1);(0,a.useEffect)(()=>{!e.identifierBound||s||e.reason!==void 0||M.current||(M.current=!0,m(()=>e.start()))},[e.identifierBound,s,e.reason]),(0,a.useEffect)(()=>{(e.reason==="eid_code_invalid"||e.codeExpiresAt!==void 0)&&_("")},[e.reason,e.codeExpiresAt,e.codeAttemptsRemaining]);let H=(0,a.useRef)(s);(0,a.useEffect)(()=>{s&&!H.current&&document.getElementById(`${l}-code`)?.focus(),H.current=s},[s,l]);let k=e.reason==="eid_locked",V=X(e.codeExpiresAt,F),x=s&&e.codeExpiresAt!==void 0&&V===0,$=X(e.resendAvailableAt,F),G=e.resendsRemaining===0||e.reason==="eid_resend_limit",re=o(n=>{if(n.preventDefault(),s){f.length===C&&!k&&m(()=>e.verify(f));return}if(e.identifierBound){m(()=>e.start());return}let t=A(S);if(e.country==="MR"){if(!/^\d{10}$/.test(t))return p("population.invalid");if(!T(t))return p("population.reason_nni_invalid")}m(()=>e.start(t))},"onSubmit"),g=e.reason?.startsWith("eid_")?e.reason:void 0,ae=(0,i.jsxs)(i.Fragment,{children:[g!==void 0?(0,i.jsxs)(E,{tone:pe.has(g)?"danger":"warning",children:[(0,i.jsx)("span",{children:r(`reasons.${g}`)}),g==="eid_code_invalid"&&e.codeAttemptsRemaining!==void 0?(0,i.jsx)("span",{children:B("eid.codeAttemptsRemaining",e.codeAttemptsRemaining)}):null,e.canUseCamera?(0,i.jsx)(N,{kind:"secondary",disabled:c,onClick:u(()=>{m(()=>e.useCamera())},"onClick"),children:r("eid.useCamera")}):null]}):null,b!==null?(0,i.jsx)(E,{tone:"danger",children:(0,i.jsx)("span",{children:d.t(b)})}):null]}),[de,se]=s?[y("codeTitle"),y("codeHelp")]:[y("identifierTitle"),y(e.identifierBound?"boundDescription":"identifierDescription")];return(0,i.jsxs)("form",{className:`sekyro-step sekyro-otp${h?` ${h}`:""}`,"aria-labelledby":l,onSubmit:re,noValidate:!0,"data-testid":"sekyro-eid",children:[(0,i.jsxs)("div",{className:"sekyro-heading",children:[(0,i.jsx)("h2",{id:l,ref:ee,tabIndex:-1,className:"sekyro-text-body",children:de}),(0,i.jsx)("p",{className:"sekyro-text-muted",children:s&&e.context.simulation!==void 0?(0,i.jsx)(j,{template:d.t("sandbox.otpHint"),code:e.context.simulation.otpCode}):se}),e.afterPass==="continue"?(0,i.jsx)("p",{className:"sekyro-text-muted","data-testid":"sekyro-eid-continue",children:e.providerName?r("eid.continueHint",{provider:e.providerName}):r("eid.continueHintGeneric")}):null]}),ae,s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sekyro-field",children:[(0,i.jsx)("label",{className:"sekyro-label",htmlFor:`${l}-code`,children:r("eid.codeLabel")}),k?(0,i.jsx)("input",{id:`${l}-code`,className:"sekyro-input sekyro-input--number",dir:"ltr",value:f,disabled:!0,readOnly:!0}):(0,i.jsx)(J,{id:`${l}-code`,value:f,length:C,invalid:ie,onChange:u(n=>{p(null),n!==""&&ne(),_(n)},"onChange")}),e.codeExpiresAt!==void 0?(0,i.jsx)("span",{className:`sekyro-help sekyro-otp-expiry${x?" is-danger":""}`,children:x?r("eid.expired"):r("eid.expiresIn",{time:me(V)})}):null]}),(0,i.jsx)("span",{className:"sekyro-visually-hidden",role:"status","aria-live":"polite",children:x?r("eid.expired"):""}),(0,i.jsxs)(R,{children:[(0,i.jsx)(N,{type:"submit",full:!0,disabled:c||f.length!==C||k,"aria-busy":c||void 0,children:r("eid.verify")}),(0,i.jsx)("div",{className:"sekyro-resend-row",children:G?(0,i.jsx)("p",{className:"sekyro-resend is-waiting",children:r("eid.noResendsLeft")}):(0,i.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:c||$>0||k,onClick:u(()=>{m(()=>e.resend())},"onClick"),children:$>0?r("eid.resendIn",{seconds:$}):r("eid.resend")})}),!G&&e.resendsRemaining!==void 0?(0,i.jsx)("p",{className:"sekyro-help sekyro-center",children:B("eid.resendsRemaining",e.resendsRemaining)}):null]})]}):(0,i.jsxs)(i.Fragment,{children:[e.identifierBound?null:(0,i.jsxs)("div",{className:"sekyro-field",children:[(0,i.jsx)("label",{className:"sekyro-label",htmlFor:`${l}-nni`,children:d.t("population.label")}),(0,i.jsx)("input",{id:`${l}-nni`,className:"sekyro-input sekyro-input--number",dir:"ltr",inputMode:"numeric",autoComplete:"off",placeholder:d.t("population.placeholder"),value:S,"aria-describedby":`${l}-nni-help`,"aria-invalid":b==="population.invalid"||b==="population.reason_nni_invalid"||void 0,onChange:u(n=>{p(null),Z(A(n.target.value).replace(/\D/g,"").slice(0,10))},"onChange")}),(0,i.jsx)("span",{id:`${l}-nni-help`,className:"sekyro-help",children:d.t("population.helper")})]}),(0,i.jsx)(R,{children:(0,i.jsx)(N,{type:"submit",full:!0,disabled:c,"aria-busy":c||void 0,children:r("eid.start")})})]})]})}u(ue,"Ae");o(ue,"EidView");export{ue as EidView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as J,b as K,c as Q}from"./chunk-IFGPCCJH.js";import{a as B}from"./chunk-6MEPT5ZS.js";import{a as G}from"./chunk-562ANROG.js";import"./chunk-YEPHU5PX.js";import"./chunk-OBPBHX2J.js";import{A as j,H as U,K as f,L as Y,a as me,b as pe,c as N,w as F,y as E}from"./chunk-UYAVCSQ4.js";import{x as P}from"./chunk-3KIFGAEK.js";import"./chunk-HODE7UDG.js";import"./chunk-TCW6XNLI.js";import"./chunk-UZWMCNZI.js";import{a as n}from"./chunk-RK4HVNRS.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import{a as p,c as q}from"./chunk-4FHWXBOB.js";var t=q(me(),1),e=q(pe(),1);var ce={"emailOtp.reason_otp_daily_cap_reached":"لا يمكننا إرسال رمز إلى بريدك الإلكتروني اليوم. اختر طريقة أخرى للتحقق إن كانت متاحة، أو حاول مرة أخرى لاحقًا.","emailOtp.sendTitle":"تحقّق من بريدك الإلكتروني","emailOtp.sendDescription":"سنرسل إليك عبر البريد الإلكتروني رمزًا يُستخدم مرة واحدة لتأكيد أن هذا العنوان يخصّك","emailOtp.prefilledNotice":"سنرسل رمز تحقّق إلى بريدك الإلكتروني المسجّل.","emailOtp.emailLabel":"البريد الإلكتروني","emailOtp.emailHelper":"سنرسل رمزًا يُستخدم مرة واحدة إلى هذا العنوان","emailOtp.emailPlaceholder":"عنوان بريدك الإلكتروني","emailOtp.emailInvalid":"أدخل عنوان بريد إلكتروني صالحًا","emailOtp.send":"أرسل لي رمزًا عبر البريد الإلكتروني","emailOtp.verifyTitle":"أدخل الرمز","emailOtp.verifyDescription":"أدخل الرمز المكوّن من 6 أرقام الذي أرسلناه إلى بريدك الإلكتروني لإتمام التحقّق من عنوانك","emailOtp.sentTo":"أرسلنا رمزًا مكوّنًا من 6 أرقام إلى {email}","emailOtp.codeLabel":"رمز التحقّق","emailOtp.codeHelper":"أدخل الرمز المكوّن من 6 أرقام الوارد في الرسالة","emailOtp.verify":"تحقّق من الرمز","emailOtp.resend":"إعادة إرسال الرمز","emailOtp.resendIn":"إعادة إرسال الرمز خلال {seconds} ثانية","emailOtp.expiresIn":"ينتهي الرمز خلال {time}","emailOtp.expired":"انتهت صلاحية الرمز. أعد إرسال رمز جديد","emailOtp.reason_otp_mismatch":"الرمز غير صحيح. تحقّق منه وأعد إدخاله","emailOtp.reason_otp_expired":"انتهت صلاحية الرمز. أعد إرسال رمز جديد للمتابعة","emailOtp.reason_otp_send_failed":"تعذّر إرسال الرسالة. أعد المحاولة بعد قليل","emailOtp.reason_otp_rate_limited":"طلبت رموزًا كثيرة. انتظر قليلًا ثم أعد المحاولة","emailOtp.reason_email_invalid":"لا يمكننا الإرسال إلى هذا العنوان. تحقّق منه أو أدخل عنوانًا آخر","emailOtp.reason_email_disposable":"استخدم بريدًا إلكترونيًا دائمًا، وليس عنوانًا مؤقتًا","emailOtp.changeEmail":"تغيير البريد الإلكتروني","emailOtp.backToCode":"العودة إلى الرمز","emailOtp.reason_otp_resend_limit":"لا يمكنك طلب رموز أخرى. أدخل آخر رمز وصلك"},b={"emailOtp.reason_otp_daily_cap_reached":"We can't email you a code today. Choose another way to verify if one is offered, or try again later.","emailOtp.sendTitle":"Verify your email address","emailOtp.sendDescription":"We'll email you a one-time code to confirm this address is yours","emailOtp.prefilledNotice":"We'll send a verification code to your registered email address.","emailOtp.emailLabel":"Email address","emailOtp.emailHelper":"We'll send a one-time code to this address","emailOtp.emailPlaceholder":"Your email address","emailOtp.emailInvalid":"Enter a valid email address","emailOtp.send":"Email me a code","emailOtp.verifyTitle":"Enter the code","emailOtp.verifyDescription":"Type the 6-digit code we emailed you to finish verifying your address","emailOtp.sentTo":"We sent a 6-digit code to {email}","emailOtp.codeLabel":"Verification code","emailOtp.codeHelper":"Enter the 6-digit code from the email","emailOtp.verify":"Verify code","emailOtp.resend":"Resend code","emailOtp.resendIn":"Resend code in {seconds}s","emailOtp.expiresIn":"Code expires in {time}","emailOtp.expired":"That code has expired. Resend a new one","emailOtp.reason_otp_mismatch":"That code was incorrect. Check it and enter it again","emailOtp.reason_otp_expired":"That code has expired. Resend a new code to continue","emailOtp.reason_otp_send_failed":"We couldn't send the email. Try again in a moment","emailOtp.reason_otp_rate_limited":"Too many codes requested. Wait a moment, then try again","emailOtp.reason_email_invalid":"We can't send to this address. Check it or enter another one","emailOtp.reason_email_disposable":"Use a permanent email address, not a temporary one","emailOtp.changeEmail":"Change email","emailOtp.backToCode":"Back to code","emailOtp.reason_otp_resend_limit":"You can't get more codes. Enter the last code you received"},ue={"emailOtp.reason_otp_daily_cap_reached":"Nous ne pouvons pas vous envoyer de code par e-mail aujourd'hui. Choisissez une autre méthode si elle est proposée, ou réessayez plus tard.","emailOtp.sendTitle":"Vérifiez votre e-mail","emailOtp.sendDescription":"Nous vous enverrons par e-mail un code à usage unique pour confirmer que cette adresse vous appartient","emailOtp.prefilledNotice":"Nous enverrons un code de vérification à votre adresse e-mail enregistrée.","emailOtp.emailLabel":"Adresse e-mail","emailOtp.emailHelper":"Nous enverrons un code à usage unique à cette adresse","emailOtp.emailPlaceholder":"Votre adresse e-mail","emailOtp.emailInvalid":"Saisissez une adresse e-mail valide","emailOtp.send":"M'envoyer un code par e-mail","emailOtp.verifyTitle":"Saisissez le code","emailOtp.verifyDescription":"Saisissez le code à 6 chiffres que nous vous avons envoyé par e-mail pour finaliser la vérification de votre adresse","emailOtp.sentTo":"Nous avons envoyé un code à 6 chiffres à {email}","emailOtp.codeLabel":"Code de vérification","emailOtp.codeHelper":"Saisissez le code à 6 chiffres reçu par e-mail","emailOtp.verify":"Vérifier le code","emailOtp.resend":"Renvoyer le code","emailOtp.resendIn":"Renvoyer le code dans {seconds} s","emailOtp.expiresIn":"Le code expire dans {time}","emailOtp.expired":"Ce code a expiré. Renvoyez-en un nouveau","emailOtp.reason_otp_mismatch":"Ce code est incorrect. Vérifiez-le et saisissez-le à nouveau","emailOtp.reason_otp_expired":"Ce code a expiré. Renvoyez un nouveau code pour continuer","emailOtp.reason_otp_send_failed":"Nous n'avons pas pu envoyer l'e-mail. Réessayez dans un instant","emailOtp.reason_otp_rate_limited":"Trop de codes demandés. Patientez un instant, puis réessayez","emailOtp.reason_email_invalid":"Nous ne pouvons pas envoyer à cette adresse. Vérifiez-la ou saisissez-en une autre","emailOtp.reason_email_disposable":"Utilisez une adresse e-mail permanente, pas une adresse temporaire","emailOtp.changeEmail":"Changer d'adresse e-mail","emailOtp.backToCode":"Retour au code","emailOtp.reason_otp_resend_limit":"Vous ne pouvez plus demander de code. Saisissez le dernier code reçu"},Oe={en:b,fr:ue,ar:ce,es:b,pt:b,de:b},X=n((a,o,O)=>{if(a===void 0)return 0;let h=Date.parse(a)-o;return Number.isFinite(h)?Math.min(O,Math.max(0,Math.ceil(h/1e3))):0},"secondsUntil"),he=600,ye=60,ve=n(a=>`${Math.floor(a/60)}:${String(a%60).padStart(2,"0")}`,"mmss"),Z=new Set(["otp_expired","otp_send_failed","otp_rate_limited","otp_resend_limit","email_invalid","email_disposable","otp_daily_cap_reached"]);function _e({step:a,i18n:o,className:O,defaultEmail:h="",onError:ee}){let i=n((l,s)=>G(o.strings[l]??Oe[o.locale][l],s),"t"),[C,ae]=(0,t.useState)(h),[y,T]=(0,t.useState)(""),[r,z]=(0,t.useState)(!1),[I,w]=(0,t.useState)(null),[k,c]=(0,t.useState)(!1),[R,ie]=(0,t.useState)(null),u=(0,t.useRef)(null),v=a.phase==="verify",m=v&&!k,V=Q(v),d=(0,t.useId)(),[le,te]=J(a.reason==="otp_mismatch",a.attemptsRemaining,()=>T("")),$=v?a.codeExpiresAt??"sent":null;(0,t.useEffect)(()=>{$!==null&&(c(!1),u.current!==null&&!Z.has(a.reason??"")&&ie(u.current),u.current=null)},[$]);let S=n(async l=>{z(!0),w(null);try{await l()}catch(s){w(s instanceof P&&s.field==="email"?i("emailOtp.emailInvalid"):o.t(B(s,o.strings))),ee?.(s)}finally{z(!1)}},"run"),D=n(l=>{let s=a.needsEmail?l?R:C.trim():null;u.current=s,S(async()=>{try{await a.send(s!==null?{email:s}:{})}catch(de){throw u.current=null,de}})},"send"),L=n(l=>{S(()=>a.verify(l))},"submitCode"),se=n(l=>{l.preventDefault(),m?L(y):D(!1)},"onSubmit"),g=X(a.codeExpiresAt,V,he),x=X(a.resendAvailableAt,V,ye),_=m&&a.codeExpiresAt!==void 0&&g===0,A=a.needsEmail&&!a.attemptsExhausted,H=v&&(a.codeExpiresAt===void 0||g>0),W=m&&A?()=>c(!0):k&&H?()=>c(!1):null;j(W===null?null:r?()=>{}:W);let[re,ne]=i("emailOtp.sentTo").split("{email}"),M=a.context.simulation?.otpCode,oe=a.reason==="otp_mismatch"?(0,e.jsxs)(f,{tone:"danger",children:[(0,e.jsx)("span",{children:i("emailOtp.reason_otp_mismatch")}),(0,e.jsx)("span",{children:Y(o,a.attemptsRemaining,a.attemptsExhausted)})]}):a.reason!==void 0&&Z.has(a.reason)?(0,e.jsx)(f,{tone:"warning",children:(0,e.jsx)("span",{children:i(`emailOtp.reason_${a.reason}`)})}):null;return(0,e.jsxs)("form",{className:`sekyro-step sekyro-otp${O?` ${O}`:""}`,"aria-labelledby":d,onSubmit:se,noValidate:!0,children:[(0,e.jsx)(F,{id:d,title:i(m?"emailOtp.verifyTitle":"emailOtp.sendTitle"),lead:m&&M!==void 0?(0,e.jsx)(U,{template:o.t("sandbox.otpHint"),code:M}):m?(0,e.jsxs)(e.Fragment,{children:[re,(0,e.jsx)("bdi",{dir:"ltr",className:"sekyro-mono",children:R??a.sentToMasked}),ne]}):i("emailOtp.sendDescription")}),oe,I!==null?(0,e.jsx)(f,{tone:"danger",children:(0,e.jsx)("span",{children:I})}):null,m?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"sekyro-field",children:[(0,e.jsx)("label",{className:"sekyro-label",htmlFor:`${d}-code`,children:i("emailOtp.codeLabel")}),(0,e.jsx)(K,{id:`${d}-code`,value:y,invalid:le,onChange:p(l=>{l!==""&&te(),T(l),l.length===6&&y.length!==6&&!r&&!a.attemptsExhausted&&L(l)},"onChange")}),(0,e.jsx)("span",{className:`sekyro-help sekyro-otp-expiry${_?" is-danger":""}`,"aria-hidden":!_||void 0,children:_?i("emailOtp.expired"):i("emailOtp.expiresIn",{time:ve(g)})})]}),(0,e.jsx)("span",{className:"sekyro-visually-hidden",role:"status","aria-live":"polite",children:_?i("emailOtp.expired"):""}),(0,e.jsxs)(E,{children:[(0,e.jsx)(N,{type:"submit",full:!0,disabled:r||y.length!==6,"aria-busy":r||void 0,children:i("emailOtp.verify")}),(0,e.jsxs)("div",{className:"sekyro-resend-row",children:[(0,e.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:r||x>0,onClick:p(()=>D(!0),"onClick"),children:x>0?i("emailOtp.resendIn",{seconds:x}):i("emailOtp.resend")}),A?(0,e.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:r,onClick:p(()=>c(!0),"onClick"),"data-testid":"sekyro-otp-change",children:i("emailOtp.changeEmail")}):null]})]})]}):(0,e.jsxs)(e.Fragment,{children:[a.needsEmail?(0,e.jsxs)("div",{className:"sekyro-field",children:[(0,e.jsx)("label",{className:"sekyro-label",htmlFor:`${d}-email`,children:i("emailOtp.emailLabel")}),(0,e.jsx)("input",{id:`${d}-email`,className:"sekyro-input",type:"email",dir:"ltr",inputMode:"email",autoComplete:"email",autoCapitalize:"none",spellCheck:!1,placeholder:i("emailOtp.emailPlaceholder"),value:C,"aria-describedby":`${d}-email-help`,onChange:p(l=>ae(l.target.value),"onChange")}),(0,e.jsx)("span",{id:`${d}-email-help`,className:"sekyro-help",children:i("emailOtp.emailHelper")})]}):(0,e.jsx)("p",{className:"sekyro-text-muted",children:i("emailOtp.prefilledNotice")}),(0,e.jsxs)(E,{children:[(0,e.jsx)(N,{type:"submit",full:!0,disabled:r,"aria-busy":r||void 0,children:i("emailOtp.send")}),k&&H?(0,e.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:r,onClick:p(()=>c(!1),"onClick"),"data-testid":"sekyro-otp-back-to-code",children:i("emailOtp.backToCode")}):null]})]})]})}p(_e,"Ae");n(_e,"EmailOtpView");export{_e as EmailOtpView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as re,b as M,c as te}from"./chunk-JOZCJGRV.js";import{a as $,e as Q,f as X,g as F,h as N,i as J,j as ee,l as ae}from"./chunk-7XAIG23G.js";import"./chunk-6MEPT5ZS.js";import{a as V}from"./chunk-562ANROG.js";import"./chunk-2ZVKLBJD.js";import"./chunk-YEPHU5PX.js";import"./chunk-2SENV5CV.js";import"./chunk-OBPBHX2J.js";import{a as P}from"./chunk-OIJVTJML.js";import{K as _,a as we,b as xe,c as x,t as R,v as D,y as O}from"./chunk-UYAVCSQ4.js";import{a as K}from"./chunk-3KIFGAEK.js";import"./chunk-HODE7UDG.js";import"./chunk-TCW6XNLI.js";import"./chunk-UZWMCNZI.js";import{a as m}from"./chunk-RK4HVNRS.js";import{c as S}from"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import{a as f,c as Z}from"./chunk-4FHWXBOB.js";var k=Z(we(),1),c=Z(xe(),1);var Ee={"consent.human.terms.intro":"تؤكد Sekyro AI أن شخصًا حقيقيًا يُجري هذه الخطوة، نيابةً عن الجهة التي طلبتها.","consent.human.terms.data":"تلتقط Sekyro AI تسجيلًا قصيرًا لوجهك.","consent.human.terms.processing":"يُفحص هذا التسجيل للتأكد من أنك شخص حقيقي وحاضر، وقد يُقارَن بالوجوه التي سبق التحقق منها لدى هذه الجهة.","consent.human.terms.sharing":"تُبلَّغ الجهة التي طلبت هذا التحقق بنتيجته.","consent.human.terms.retention":"تُخزَّن بياناتك مشفّرة ولا يُحتفظ بها إلا للمدة التي يقتضيها القانون وإعدادات الجهة. لممارسة حقوقك المتعلقة بحماية البيانات، تواصل مع الجهة التي طلبت هذا التحقق.","capture.noCamera.title":"تتطلب هذه الخطوة كاميرا","capture.noCamera.body":"اسمح بالوصول إلى الكاميرا وحاول مرة أخرى، أو تابع على هاتف مزوّد بكاميرا.","capture.noCamera.continue":"المتابعة بدون كاميرا","capture.noCamera.deniedTitle":"اسمح بالوصول إلى الكاميرا","capture.noCamera.deniedBody":"حظر متصفحك الوصول إلى الكاميرا في هذه الصفحة. اسمح به من إعدادات الموقع ثم أعد المحاولة.","choice.title":"كيف تريد المتابعة؟","choice.description":"اختر خيارًا واحدًا.","choice.switch":"استخدم خيارًا آخر","contact.title":"كيف تريد استلام الرمز؟","contact.description":"اختر خيارًا واحدًا.","contact.phone":"عبر الهاتف (واتساب أو رسالة نصية)","contact.email":"عبر البريد الإلكتروني","contact.switch":"استخدم خيارًا آخر","summary.title":"تحقق من بياناتك","summary.description":"تأكد من أن هذه بياناتك قبل الصورة الحية.","summary.fullName":"الاسم الكامل","summary.birthDate":"تاريخ الميلاد","summary.nationality":"الجنسية","summary.documentType":"الوثيقة","summary.documentNumber":"رقم الوثيقة","summary.nni":"الرقم الوطني للتعريف الموريتاني (NNI)","summary.id_number":"رقم الهوية","summary.expiryDate":"تاريخ الانتهاء","summary.portraitAlt":"الصورة المسجلة","summary.source.registry":"من سجل الحالة المدنية","summary.source.document":"مقروءة من وثيقتك","summary.source.chip":"مقروءة من شريحة وثيقتك","summary.name":"الاسم","summary.birthYear":"سنة الميلاد","summary.confirm":"تأكيد ومتابعة","summary.retakeDocument":"مسح وثيقتي مرة أخرى","summary.retakeNationalNumber":"إدخال رقمي مرة أخرى","summary.noRetake":"لم يعد بإمكانك إعادة المحاولة. تواصل مع {org} إذا كانت هذه البيانات غير صحيحة","capture.tipsIcao.title":"لصورة الهوية:","capture.tipsIcao.glasses":"انزع نظارتك","capture.tipsIcao.headwear":"انزع القبعة. يُقبل غطاء الرأس الديني إذا كان الوجه ظاهرًا بالكامل","capture.tipsIcao.expression":"حافظ على تعبير محايد وفمك مغلق","capture.tipsIcao.faceCamera":"انظر مباشرة إلى الكاميرا وعيناك مفتوحتان","capture.tipsIcao.background":"قف أمام خلفية سادة فاتحة اللون","capture.tipsIcao.lighting":"استخدم إضاءة متساوية على وجهك: دون ظلال","capture.tipsIcao.hair":"أبعد شعرك عن وجهك وعينيك","capture.tipsIcao.summary":"قف أمام جدار سادة فاتح اللون مع إضاءة متساوية على وجهك. انزع نظارتك وأي قبعة. أبعد شعرك عن وجهك، وانظر مباشرة إلى الكاميرا وعيناك مفتوحتان، وحافظ على تعبير محايد وفمك مغلق، وابقَ ثابتًا.","portrait.retakeOnly":"نجح التحقق الحي. الصورة فقط تحتاج إلى محاولة أخرى","portrait.keepCamera":"ابقَ أمام الكاميرا","handoff.description":"امسح الرمز بهاتفك للمتابعة","handoff.qrAlt":"رمز QR يفتح عملية التحقق هذه على هاتفك","handoff.copyLink":"نسخ الرابط","handoff.copyFailed":"تعذّر نسخ الرابط. انسخ عنوان هذه الصفحة من متصفحك بدلًا من ذلك","handoff.waiting":"ستنتقل هذه الصفحة تلقائيًا بعد أن تُكمل الخطوة على هاتفك","inApp.title":"افتح الصفحة في متصفحك","inApp.description":"لا تعمل الكاميرا جيدًا داخل هذا التطبيق. افتح الرابط في Chrome أو Safari للمتابعة.","inApp.copyLink":"نسخ الرابط","inApp.copied":"تم نسخ الرابط. الصقه في متصفحك","inApp.copyFailed":"تعذّر نسخ الرابط. انسخ عنوان هذه الصفحة بدلًا من ذلك","inApp.continueAnyway":"المتابعة هنا على أي حال","inApp.openBrowser":"افتح في المتصفح"},T={"consent.human.terms.intro":"Sekyro AI confirms that a real person is completing this step, on behalf of the organization that asked for it.","consent.human.terms.data":"Sekyro AI collects a short capture of your face.","consent.human.terms.processing":"The capture is checked to confirm that you are a real person who is present. It may be compared with faces already verified for this organization.","consent.human.terms.sharing":"The organization that requested this verification learns its outcome.","consent.human.terms.retention":"Your data is stored encrypted and kept only as long as the law and the organization's settings require. To exercise your data-protection rights, contact the organization that requested this verification.","capture.noCamera.title":"This step needs a camera","capture.noCamera.body":"Allow camera access and try again, or continue on a phone with a camera.","capture.noCamera.continue":"Continue without a camera","capture.noCamera.deniedTitle":"Allow camera access","capture.noCamera.deniedBody":"Your browser blocked the camera for this page. Allow it in the site settings, then try again.","choice.title":"Choose how to continue","choice.description":"Choose one option.","choice.switch":"Use another option","contact.title":"Where to send your code","contact.description":"Choose one option.","contact.phone":"By phone (WhatsApp or SMS)","contact.email":"By email","contact.switch":"Use another option","summary.title":"Check your details","summary.description":"Make sure this is you before the live photo.","summary.fullName":"Full name","summary.birthDate":"Date of birth","summary.nationality":"Nationality","summary.documentType":"Document","summary.documentNumber":"Document number","summary.nni":"Mauritanian national ID number (NNI)","summary.id_number":"ID number","summary.expiryDate":"Expiry date","summary.portraitAlt":"Photo on record","summary.source.registry":"From the civil registry","summary.source.document":"Read from your document","summary.source.chip":"Read from your document's chip","summary.name":"Name","summary.birthYear":"Year of birth","summary.confirm":"Confirm and continue","summary.retakeDocument":"Scan my document again","summary.retakeNationalNumber":"Enter my number again","summary.noRetake":"You can't try again. Contact {org} if these details are wrong","capture.tipsIcao.title":"For your ID photo:","capture.tipsIcao.glasses":"Remove your glasses","capture.tipsIcao.headwear":"Remove hats and caps. A religious head covering is fine if your whole face shows","capture.tipsIcao.expression":"Keep a neutral expression with your mouth closed","capture.tipsIcao.faceCamera":"Look straight at the camera with your eyes open","capture.tipsIcao.background":"Stand in front of a plain, light background","capture.tipsIcao.lighting":"Use even light on your face: no shadows","capture.tipsIcao.hair":"Keep your hair away from your face and eyes","capture.tipsIcao.summary":"Stand in front of a plain, light wall with even light on your face. Remove your glasses and any hat. Keep your hair off your face, look straight at the camera with your eyes open, keep a neutral expression with your mouth closed, and hold still.","portrait.retakeOnly":"Your live check passed. Only the photo needs another try","portrait.keepCamera":"Stay in front of the camera","handoff.description":"Scan with your phone to continue","handoff.qrAlt":"QR code that opens this verification on your phone","handoff.copyLink":"Copy link","handoff.copyFailed":"We couldn't copy the link. Copy this page's address from your browser instead","handoff.waiting":"This page moves on by itself once you finish on your phone","inApp.title":"Open in your browser","inApp.description":"The camera doesn't work well inside this app. Open the link in Chrome or Safari to continue.","inApp.copyLink":"Copy link","inApp.copied":"Link copied. Paste it in your browser","inApp.copyFailed":"We couldn't copy the link. Copy this page's address instead","inApp.continueAnyway":"Continue here anyway","inApp.openBrowser":"Open in browser"},Ie={"consent.human.terms.intro":"Sekyro AI confirme qu'une personne réelle effectue cette étape, pour le compte de l'organisme qui l'a demandée.","consent.human.terms.data":"Sekyro AI recueille une courte capture de votre visage.","consent.human.terms.processing":"La capture est analysée pour confirmer que vous êtes une personne réelle et présente. Elle peut être comparée aux visages déjà vérifiés pour cet organisme.","consent.human.terms.sharing":"L'organisme qui a demandé cette vérification est informé de son résultat.","consent.human.terms.retention":"Vos données sont stockées chiffrées et conservées uniquement pendant la durée exigée par la loi et les paramètres de l'organisme. Pour exercer vos droits en matière de protection des données, contactez l'organisme qui a demandé cette vérification.","capture.noCamera.title":"Une caméra est nécessaire","capture.noCamera.body":"Autorisez l'accès à la caméra et réessayez, ou continuez sur un téléphone équipé d'une caméra.","capture.noCamera.continue":"Continuer sans caméra","capture.noCamera.deniedTitle":"Autorisez la caméra","capture.noCamera.deniedBody":"Votre navigateur a bloqué la caméra pour cette page. Autorisez-la dans les paramètres du site, puis réessayez.","choice.title":"Comment continuer ?","choice.description":"Choisissez une option.","choice.switch":"Utiliser une autre option","contact.title":"Où envoyer votre code ?","contact.description":"Choisissez une option.","contact.phone":"Par téléphone (WhatsApp ou SMS)","contact.email":"Par e-mail","contact.switch":"Utiliser une autre option","summary.title":"Vérifiez vos informations","summary.description":"Assurez-vous qu'il s'agit bien de vous avant la photo en direct.","summary.fullName":"Nom complet","summary.birthDate":"Date de naissance","summary.nationality":"Nationalité","summary.documentType":"Document","summary.documentNumber":"Numéro du document","summary.nni":"Numéro national d'identification mauritanien (NNI)","summary.id_number":"Numéro d'identité","summary.expiryDate":"Date d'expiration","summary.portraitAlt":"Photo enregistrée","summary.source.registry":"Issu de l'état civil","summary.source.document":"Lu sur votre document","summary.source.chip":"Lu sur la puce de votre document","summary.name":"Nom","summary.birthYear":"Année de naissance","summary.confirm":"Confirmer et continuer","summary.retakeDocument":"Scanner à nouveau mon document","summary.retakeNationalNumber":"Saisir à nouveau mon numéro","summary.noRetake":"Vous ne pouvez plus réessayer. Contactez {org} si ces informations sont incorrectes","capture.tipsIcao.title":"Pour votre photo d'identité :","capture.tipsIcao.glasses":"Retirez vos lunettes","capture.tipsIcao.headwear":"Retirez chapeau et casquette. Un couvre-chef religieux est accepté si tout le visage est visible","capture.tipsIcao.expression":"Gardez une expression neutre, la bouche fermée","capture.tipsIcao.faceCamera":"Regardez la caméra bien en face, les yeux ouverts","capture.tipsIcao.background":"Placez-vous devant un fond uni et clair","capture.tipsIcao.lighting":"Éclairez votre visage de façon uniforme : sans ombres","capture.tipsIcao.hair":"Dégagez vos cheveux du visage et des yeux","capture.tipsIcao.summary":"Placez-vous devant un mur uni et clair, le visage éclairé de façon uniforme. Retirez vos lunettes et tout chapeau. Dégagez vos cheveux du visage, regardez la caméra bien en face, les yeux ouverts, gardez une expression neutre, la bouche fermée, et ne bougez plus.","portrait.retakeOnly":"Votre vérification en direct est validée. Seule la photo est à refaire","portrait.keepCamera":"Restez face à la caméra","handoff.description":"Scannez avec votre téléphone pour continuer","handoff.qrAlt":"Code QR qui ouvre cette vérification sur votre téléphone","handoff.copyLink":"Copier le lien","handoff.copyFailed":"Nous n'avons pas pu copier le lien. Copiez plutôt l'adresse de cette page depuis votre navigateur","handoff.waiting":"Cette page avancera d’elle-même une fois l’étape terminée sur votre téléphone","inApp.title":"Ouvrez dans le navigateur","inApp.description":"La caméra fonctionne mal dans cette application. Ouvrez le lien dans Chrome ou Safari pour continuer.","inApp.copyLink":"Copier le lien","inApp.copied":"Lien copié. Collez-le dans votre navigateur","inApp.copyFailed":"Impossible de copier le lien. Copiez plutôt l'adresse de cette page","inApp.continueAnyway":"Continuer ici quand même","inApp.openBrowser":"Ouvrir dans le navigateur"},ne={M:{perBlock:[10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26],blocks:[1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16],formatBits:0},H:{perBlock:[17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28],blocks:[1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25],formatBits:2}},oe=20;function ie(e){let a=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;a-=(25*t-10)*t-55,e>=7&&(a-=36)}return a}f(ie,"he");m(ie,"rawDataModules");function U(e,a){let{perBlock:t,blocks:r}=ne[a],o=t[e-1],n=r[e-1],l=Math.floor(ie(e)/8),s=n-l%n,i=Math.floor(l/n)-o;return[o,s===n?[[n,i]]:[[s,i],[n-s,i+1]]]}f(U,"oe");m(U,"blockLayout");var H=m((e,a)=>U(e,a)[1].reduce((t,[r,o])=>t+r*o,0),"dataCapacity");function L(e,a){let t=0;for(let r=7;r>=0;r-=1)t=t<<1^(t>>>7)*285,t^=(a>>>r&1)*e;return t&255}f(L,"B");m(L,"gfMul");function se(e){let a=new Array(e).fill(0);a[e-1]=1;let t=1;for(let r=0;r<e;r+=1){for(let o=0;o<e;o+=1)a[o]=L(a[o],t),o+1<e&&(a[o]=a[o]^a[o+1]);t=L(t,2)}return a}f(se,"be");m(se,"rsDivisor");function ce(e,a){let t=a.map(()=>0);for(let r of e){let o=r^t.shift();t.push(0),a.forEach((n,l)=>{t[l]=t[l]^L(n,o)})}return t}f(ce,"ge");m(ce,"rsRemainder");function le(e,a,t){let r=[],o=m((u,d)=>{for(let v=d-1;v>=0;v-=1)r.push(u>>>v&1)},"put");o(4,4),o(e.length,a<10?8:16);for(let u of e)o(u,8);let n=H(a,t)*8;o(0,Math.min(4,n-r.length)),o(0,(8-r.length%8)%8);let l=[];for(let u=0;u<r.length;u+=8)l.push(r.slice(u,u+8).reduce((d,v)=>d<<1|v,0));for(let u=236;l.length<H(a,t);u^=253)l.push(u);let[s,i]=U(a,t),h=se(s),p=[],y=0;for(let[u,d]of i)for(let v=0;v<u;v+=1){let C=l.slice(y,y+d);y+=d,p.push({data:C,ec:ce(C,h)})}let g=[],A=Math.max(...p.map(u=>u.data.length));for(let u=0;u<A;u+=1)for(let d of p)u<d.data.length&&g.push(d.data[u]);for(let u=0;u<s;u+=1)for(let d of p)g.push(d.ec[u]);return g}f(le,"ke");m(le,"codewords");function q(e){if(e===1)return[];let a=Math.floor(e/7)+2,t=Math.ceil((e*4+4)/(a*2-2))*2,r=[6];for(let o=e*4+10;r.length<a;o-=t)r.splice(1,0,o);return r}f(q,"re");m(q,"alignmentPositions");var _e=[(e,a)=>(e+a)%2===0,e=>e%2===0,(e,a)=>a%3===0,(e,a)=>(e+a)%3===0,(e,a)=>(Math.floor(e/2)+Math.floor(a/3))%2===0,(e,a)=>e*a%2+e*a%3===0,(e,a)=>(e*a%2+e*a%3)%2===0,(e,a)=>((e+a)%2+e*a%3)%2===0],I,ue=(I=class{constructor(a){this.size=a,this.dark=new Array(a*a).fill(!1),this.fixed=new Array(a*a).fill(!1)}set(a,t,r){this.dark[a*this.size+t]=r,this.fixed[a*this.size+t]=!0}get(a,t){return this.dark[a*this.size+t]===!0}},f(I,"U"),I);m(ue,"Grid");var Ne=ue;function de(e,a){let t=e.size;for(let n=0;n<t;n+=1)e.set(6,n,n%2===0),e.set(n,6,n%2===0);for(let[n,l]of[[3,3],[3,t-4],[t-4,3]])for(let s=-4;s<=4;s+=1)for(let i=-4;i<=4;i+=1){let h=n+s,p=l+i;if(h<0||h>=t||p<0||p>=t)continue;let y=Math.max(Math.abs(s),Math.abs(i));e.set(h,p,y!==2&&y!==4)}let r=q(a),o=r.length-1;if(r.forEach((n,l)=>r.forEach((s,i)=>{if(!(l===0&&i===0||l===0&&i===o||l===o&&i===0))for(let h=-2;h<=2;h+=1)for(let p=-2;p<=2;p+=1)e.set(n+h,s+p,Math.max(Math.abs(h),Math.abs(p))!==1)})),B(e,0),a>=7){let n=a;for(let s=0;s<12;s+=1)n=n<<1^(n>>>11)*7973;let l=a<<12|n;for(let s=0;s<18;s+=1){let i=(l>>>s&1)===1,h=t-11+s%3,p=Math.floor(s/3);e.set(h,p,i),e.set(p,h,i)}}}f(de,"ve");m(de,"drawFunctionPatterns");function B(e,a,t=0){let r=e.size,o=t<<3|a,n=o;for(let i=0;i<10;i+=1)n=n<<1^(n>>>9)*1335;let l=(o<<10|n)^21522,s=m(i=>(l>>>i&1)===1,"bit");for(let i=0;i<=5;i+=1)e.set(i,8,s(i));e.set(7,8,s(6)),e.set(8,8,s(7)),e.set(8,7,s(8));for(let i=9;i<15;i+=1)e.set(8,14-i,s(i));for(let i=0;i<8;i+=1)e.set(8,r-1-i,s(i));for(let i=8;i<15;i+=1)e.set(r-15+i,8,s(i));e.set(r-8,8,!0)}f(B,"ae");m(B,"drawFormat");function me(e,a){let t=e.size,r=0;for(let o=t-1;o>=1;o-=2){o===6&&(o=5);for(let n=0;n<t;n+=1)for(let l=0;l<2;l+=1){let s=o-l,i=(o+1&2)===0?t-1-n:n;e.fixed[i*t+s]!==!0&&(r<a.length*8&&(e.dark[i*t+s]=(a[r>>>3]>>>7-(r&7)&1)===1),r+=1)}}}f(me,"Se");m(me,"placeData");function pe(e,a){let t=_e[a];for(let r=0;r<e.size;r+=1)for(let o=0;o<e.size;o+=1)e.fixed[r*e.size+o]!==!0&&t(r,o)&&(e.dark[r*e.size+o]=!e.dark[r*e.size+o])}f(pe,"Ce");m(pe,"applyMask");function he(e){let a=e.size,t=0,r=m(n=>{let l=1;for(let s=1;s<=a;s+=1)s<a&&n(s)===n(s-1)?l+=1:(l>=5&&(t+=3+(l-5)),l=1);for(let s=0;s+10<a;s+=1){let i=[!0,!1,!0,!0,!0,!1,!0];if(!(i.every((y,g)=>n(s+g)===y)||i.every((y,g)=>n(s+4+g)===y)))continue;let h=[0,1,2,3].every(y=>!n(s+y))&&i.every((y,g)=>n(s+4+g)===y),p=i.every((y,g)=>n(s+g)===y)&&[7,8,9,10].every(y=>!n(s+y));h&&(t+=40),p&&(t+=40)}},"line");for(let n=0;n<a;n+=1)r(l=>e.get(n,l));for(let n=0;n<a;n+=1)r(l=>e.get(l,n));for(let n=0;n+1<a;n+=1)for(let l=0;l+1<a;l+=1){let s=e.get(n,l);s===e.get(n,l+1)&&s===e.get(n+1,l)&&s===e.get(n+1,l+1)&&(t+=3)}let o=e.dark.filter(Boolean).length;return t+=Math.floor(Math.abs(o*20-a*a*10)/(a*a))*10,t}f(he,"Ae");m(he,"penalty");function fe(e,a={}){let t=a.ecl??"M",r=new TextEncoder().encode(e),o=1;for(;o<=oe&&!(4+(o<10?8:16)+r.length*8<=H(o,t)*8);o+=1);if(o>oe)throw new RangeError("text too long for a QR code");let n=le(r,o,t),l=m(h=>{let p=new Ne(o*4+17);return de(p,o),me(p,n),pe(p,h),B(p,h,ne[t].formatBits),p},"build"),s=null;if(a.mask!==void 0)s=l(a.mask);else{let h=Number.POSITIVE_INFINITY;for(let p=0;p<8;p+=1){let y=l(p),g=he(y);g<h&&(h=g,s=y)}}let i=s;return{size:i.size,get:m((h,p)=>i.get(h,p),"get")}}f(fe,"ie");m(fe,"encodeQr");var Me={viewBox:"0 0 100 100",d:"M22.37,0H77.63A22.37,22.37 0 0 1 100,22.37V77.63A22.37,22.37 0 0 1 77.63,100H22.37A22.37,22.37 0 0 1 0,77.63V22.37A22.37,22.37 0 0 1 22.37,0ZM48.067,21H38.308A17.308,17.308 0 0 0 21,38.308V42.543A19.886,19.886 0 0 0 40.886,62.429H60.219V57.641A4.419,4.419 0 0 0 55.8,53.222H43.463A11.416,11.416 0 0 1 32.048,41.806V38.308A8.102,8.102 0 0 1 40.149,30.206H43.648A4.419,4.419 0 0 0 48.067,25.787ZM38.676,79H59.114A19.886,19.886 0 0 0 79,59.114V57.457A19.886,19.886 0 0 0 59.114,37.571H38.676V42.359A4.419,4.419 0 0 0 43.095,46.778H56.537A11.416,11.416 0 0 1 67.952,58.194V58.378A11.416,11.416 0 0 1 56.537,69.794H43.095A4.419,4.419 0 0 0 38.676,74.213ZM51.933,21H79V37.571H69.794V30.206H51.933ZM21,71.543A7.457,7.457 0 1 0 35.914,71.543A7.457,7.457 0 1 0 21,71.543Z"},z=.42,ze=.2,b=m(e=>{let a=Math.round(e*1e3)/1e3;return String(a===0?0:a)},"num");function E(e,a,t,r){let o=`A${b(r)} ${b(r)} 0 0 1 `;return`M${b(e+r)} ${b(a)}H${b(e+t-r)}${o}${b(e+t)} ${b(a+r)}V${b(a+t-r)}${o}${b(e+t-r)} ${b(a+t)}H${b(e+r)}${o}${b(e)} ${b(a+t-r)}V${b(a+r)}${o}${b(e+r)} ${b(a)}Z`}f(E,"x");m(E,"roundedSquare");function ye(e){let a=(e-17)/4,t=q(a),r=t.length-1,o=[];return t.forEach((n,l)=>t.forEach((s,i)=>{l===0&&i===0||l===0&&i===r||l===r&&i===0||o.push([n,s])})),o}f(ye,"Ie");m(ye,"alignmentCentres");function ge(e,{quiet:a=4,logo:t=!1}={}){let r=e.size,o=m((u,d)=>u<7&&d<7||u<7&&d>=r-7||u>=r-7&&d<7,"isFinder"),n=Math.floor(r*ze),l=t?n%2===0?n-1:n:0,s=(r-l)/2,i=m((u,d)=>l>0&&u>=s&&u<s+l&&d>=s&&d<s+l,"inZone"),h=ye(r).filter(([u,d])=>!i(u,d)),p=m((u,d)=>h.some(([v,C])=>Math.abs(u-v)<=2&&Math.abs(d-C)<=2),"isAlign"),y=`a${b(z)} ${b(z)} 0 1 0 `,g="";for(let u=0;u<r;u+=1)for(let d=0;d<r;d+=1)!e.get(u,d)||o(u,d)||p(u,d)||i(u,d)||(g+=`M${b(d+a+.5-z)} ${b(u+a+.5)}${y}${b(2*z)} 0${y}${b(-2*z)} 0Z`);let A="";for(let[u,d]of[[0,0],[0,r-7],[r-7,0]]){let v=d+a,C=u+a;A+=E(v,C,7,1.6)+E(v+1,C+1,5,.6)+E(v+2,C+2,3,.6)}for(let[u,d]of h){let v=d-2+a,C=u-2+a;A+=E(v,C,5,1.2)+E(v+1,C+1,3,.5)+E(v+2,C+2,1,.5)}return{size:r+a*2,dots:g,finders:A,logo:l>0?{x:s+a+.5,y:s+a+.5,size:l-1}:null}}f(ge,"ce");m(ge,"styledQr");function ve(e){let a=Math.round(e.size/100*1e5)/1e5;return`translate(${b(e.x)} ${b(e.y)}) scale(${a})`}f(ve,"ue");m(ve,"qrLogoTransform");var Se={en:T,fr:Ie,ar:Ee,es:T,pt:T,de:T},ke={en:M,fr:te,ar:re,es:M,pt:M,de:M};function w(e){let a=e.strings;return(t,r)=>V(a[t]??Se[e.locale][t]??"",r)}f(w,"S");m(w,"flowT");function Y(e,a){let t=w(a);return e.flatMap(r=>{let o=r.service==="phone_otp"?t("contact.phone"):r.service==="email_otp"?t("contact.email"):F(r,a),n=X[r.service];return o===null?[]:[{id:r.id,label:o,...n!==void 0?{glyph:(0,c.jsx)(D,{name:n})}:{}}]})}f(Y,"de");m(Y,"labelled");function W({step:e,i18n:a,onError:t}){let r=w(a),{busy:o,error:n,run:l}=N(a,t),s=e.kind==="contact_choice";return(0,c.jsx)($,{title:r(s?"contact.title":"choice.title"),description:r(s?"contact.description":"choice.description"),options:Y(e.choice.options,a),busy:o,error:n,focus:!0,testId:s?"sekyro-contact-choice":"sekyro-choice",onChoose:f(i=>l(()=>e.choose(i)),"onChoose")})}f(W,"pe");m(W,"PlanChoiceView");var da=W,ma=W;function Re({step:e,i18n:a,onError:t,onOpen:r}){let o=w(a),{busy:n,error:l,run:s}=N(a,t),i=e,h=e.context.switchable,p=h===void 0?[]:h.options.filter(v=>v.id!==h.current),y=i.kind==="registry"&&(i.reason==="nni_not_found"||i.reason==="registry_record_not_found")&&i.canUseDocument||i.kind==="eid"&&i.reason?.startsWith("eid_")&&i.canUseCamera,g=p.length===1?p[0]:void 0,A=g!==void 0&&(g.service==="phone_otp"||g.service==="email_otp"),u=A&&i.canSwitch&&i.switchTo!==void 0?()=>i.switchTo.call(e):i.chooseOption===void 0||g===void 0?void 0:()=>i.chooseOption.call(e,g.id);if(p.length===0||y||g!==void 0&&(u===void 0||d()===null)||g===void 0&&i.chooseOption===void 0)return null;function d(){return g===void 0?o("choice.switch"):g.service==="phone_otp"||g.service==="email_otp"?o("contact.switch"):i.kind==="registry"&&g.service==="document"?a.t("population.useDocument"):i.kind==="eid"?a.strings["eid.useCamera"]??ke[a.locale]["eid.useCamera"]:F(g,a)}return f(d,"l"),m(d,"labelOf"),(0,c.jsxs)("div",{className:"sekyro-stack sekyro-stack--1",children:[l!==null?(0,c.jsx)(_,{tone:"danger",children:(0,c.jsx)("span",{children:l})}):null,(0,c.jsx)(x,{kind:"secondary",disabled:n,"aria-busy":n||void 0,onClick:f(()=>u===void 0?r():s(u),"onClick"),"data-testid":A?"sekyro-contact-switch":"sekyro-lane-switch",children:d()})]})}f(Re,"dt");m(Re,"LaneSwitch");function Te({step:e,i18n:a,onError:t,onClose:r}){let o=w(a),{busy:n,error:l,run:s}=N(a,t),i=e.context.switchable,h=e.chooseOption;return i===void 0||h===void 0?null:(0,c.jsx)($,{title:o("choice.title"),description:o("choice.description"),options:Y(i.options,a),...i.current!==null?{marked:i.current}:{},busy:n,error:l,focus:!0,testId:"sekyro-lane-choice",onChoose:f(p=>p===i.current?r():s(()=>h.call(e,p)),"onChoose")})}f(Te,"pt");m(Te,"LaneChoiceView");var Le=[["fullName","summary.fullName",!1],["birthDate","summary.birthDate",!0],["birthYear","summary.birthYear",!0],["nationality","summary.nationality",!0],["documentType","summary.documentType",!1],["documentNumberMasked","summary.documentNumber",!0],["idNumberMasked","summary.id_number",!0],["expiryDate","summary.expiryDate",!0]];function be(e){let[a,t]=(0,k.useState)(null);return(0,k.useEffect)(()=>{if(!e.portraitAvailable)return;let r=!0,o=null;return e.portrait().then(n=>{!r||n===null||!n.type.startsWith("image/")||typeof URL.createObjectURL!="function"||(o=URL.createObjectURL(n),t(o))}),()=>{r=!1,o!==null&&URL.revokeObjectURL(o)}},[e.portraitAvailable]),a}f(be,"Fe");m(be,"usePortraitUrl");var De=m(e=>/^\d{4}-\d{2}-\d{2}$/.test(e),"isoDate");function Ce(e,a){try{return new Intl.DateTimeFormat(a==="ar"?"ar-u-nu-latn":a,{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}).format(new Date(`${e}T00:00:00Z`))}catch{return e}}f(Ce,"Le");m(Ce,"formatDate");function Oe({step:e,i18n:a,onError:t}){let r=w(a),o=(0,k.useId)(),n=R(),l=be(e),{busy:s,error:i,run:h}=N(a,t),p=e.context.orgName,y=["registry","document","chip"].find(u=>u===e.source),g=e.summaryKind==="partial",A=m(u=>a.strings[`doc.type.${u}`]??u,"documentLabel");return(0,c.jsxs)("section",{className:"sekyro-step","aria-labelledby":o,"data-testid":"sekyro-identity-summary",children:[(0,c.jsxs)("div",{className:"sekyro-heading",children:[(0,c.jsx)("h2",{id:o,ref:n,tabIndex:-1,className:"sekyro-text-body",children:r("summary.title")}),(0,c.jsx)("p",{className:"sekyro-text-muted",children:r("summary.description")})]}),y!==void 0?(0,c.jsx)("p",{className:"sekyro-summary__source",children:r(`summary.source.${y}`)}):null,(0,c.jsxs)("div",{className:"sekyro-summary",children:[l!==null?(0,c.jsx)("img",{className:"sekyro-summary__portrait",src:l,alt:r("summary.portraitAlt")}):null,(0,c.jsx)("dl",{className:"sekyro-summary__list",children:Le.map(([u,d,v])=>{let C=u==="idNumberMasked"?e.idNumberMasked??e.nniMasked:e[u];return C===void 0?null:(0,c.jsxs)("div",{className:"sekyro-summary__row",children:[(0,c.jsx)("dt",{className:"sekyro-text-muted",children:r(u==="fullName"&&g?"summary.name":d)}),(0,c.jsx)("dd",{children:De(C)?Ce(C,a.locale):v?(0,c.jsx)("bdi",{dir:"ltr",children:C}):u==="documentType"?A(C):C})]},u)})})]}),i!==null?(0,c.jsx)(_,{tone:"danger",children:(0,c.jsx)("span",{children:i})}):null,e.retakeAvailable?null:(0,c.jsx)("p",{className:"sekyro-text-muted",children:r("summary.noRetake",{org:p})}),(0,c.jsxs)(O,{children:[(0,c.jsx)(x,{full:!0,disabled:s,"aria-busy":s||void 0,onClick:f(()=>h(()=>e.confirm()),"onClick"),children:r("summary.confirm")}),e.retakeAvailable?(0,c.jsx)(x,{kind:"secondary",full:!0,disabled:s,onClick:f(()=>h(()=>e.retake()),"onClick"),children:r(e.retakeTarget==="national_number"?"summary.retakeNationalNumber":"summary.retakeDocument")}):null]})]})}f(Oe,"ft");m(Oe,"IdentitySummaryView");var Pe=["glasses","headwear","expression","faceCamera","background","lighting","hair"];function $e({step:e,i18n:a,livenessProps:t,sekyroIntro:r}){let o=w(a),[n,l]=(0,k.useState)(null);(0,k.useEffect)(()=>e.onLivePhoto(d=>{let v=d.update?.coach;l(d.holding||v===void 0?null:a.t(`portrait.coach.${v}`))}),[e,a]);let s=e.instructions==="icao",i=(0,k.useMemo)(()=>J(e),[e]),h=e.icao?.profile==="selfie",p=(0,k.useMemo)(()=>s?Pe.filter(d=>!h||d!=="background").map(d=>({id:d,text:o(`capture.tipsIcao.${d}`)})):void 0,[s,h,a]),y=(0,k.useMemo)(()=>s&&!h?{...t.strings,"capture.tips.title":o("capture.tipsIcao.title")}:t.strings,[s,h,t.strings,a]),g=h?void 0:o("capture.tipsIcao.title"),A=(0,k.useMemo)(()=>r===!0&&p!==void 0?{...t.slots,intro:m((d,v)=>(0,c.jsx)(ee,{start:d,context:v,tips:p,...g!==void 0?{tipsTitle:g}:{},...i!==void 0?{retry:i}:{}}),"intro")}:t.slots,[r,p,g,i,t.slots,a]),u=h?`${(p??[]).map(d=>d.text).join(". ")}.`:o("capture.tipsIcao.summary");return(0,c.jsx)(Q,{...t,...A!==void 0?{slots:A}:{},...y!==void 0?{strings:y}:{},...p!==void 0?{tips:p,tipsSummary:u}:{},coach:n})}f($e,"yt");m($e,"LivePhotoLiveness");function Ve({i18n:e}){let a=w(e);return(0,c.jsxs)(_,{tone:"info",children:[(0,c.jsx)("strong",{children:a("portrait.retakeOnly")}),(0,c.jsx)("span",{children:a("portrait.keepCamera")})]})}f(Ve,"ht");m(Ve,"PortraitRetakeNotice");function Fe({i18n:e,provider:a}){let t=e.strings,r=m(o=>t[o]??ke[e.locale][o]??"","pick");return(0,c.jsx)("p",{className:"sekyro-text-muted","data-testid":"sekyro-eid-continue",children:a?V(r("eid.continueHint"),{provider:a}):r("eid.continueHintGeneric")})}f(Fe,"bt");m(Fe,"EidContinueHint");async function Ae(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}f(Ae,"Pe");m(Ae,"copy");function G({url:e,i18n:a,label:t,primary:r}){let o=w(a),[n,l]=(0,k.useState)("idle"),s=t.startsWith("inApp.")?"inApp":"handoff";return(0,c.jsxs)("div",{className:"sekyro-stack sekyro-stack--1",children:[(0,c.jsx)(x,{kind:r?"primary":"secondary",full:!0,onClick:f(()=>{Ae(e).then(i=>l(i?"copied":"failed"))},"onClick"),children:o(t)}),(0,c.jsx)("p",{role:"status","aria-live":"polite",className:"sekyro-text-muted",children:n==="idle"?"":o(`${s}.${n==="copied"?"copied":"copyFailed"}`)})]})}f(G,"fe");m(G,"CopyLink");function j({url:e,i18n:a,refresh:t,footer:r,lead:o}){let n=w(a),l=(0,k.useId)(),s=(0,k.useMemo)(()=>{try{return ge(fe(e,{ecl:"H"}),{logo:!0})}catch{return null}},[e]),i=(0,k.useRef)(t);i.current=t;let h=R();return(0,k.useEffect)(()=>{let p=setInterval(()=>{(typeof document>"u"||document.visibilityState!=="hidden")&&i.current?.().catch(()=>{})},5e3);return()=>clearInterval(p)},[]),(0,c.jsxs)("section",{className:"sekyro-step sekyro-handoff","aria-labelledby":l,"data-testid":"sekyro-handoff",children:[(0,c.jsxs)("div",{className:"sekyro-heading",children:[(0,c.jsx)("h2",{id:l,ref:h,tabIndex:-1,className:"sekyro-text-body",children:a.t("handoff.title")}),o!==void 0?(0,c.jsx)("p",{children:o}):null,(0,c.jsx)("p",{className:"sekyro-text-muted",children:n("handoff.description")})]}),s!==null?(0,c.jsxs)("svg",{className:"sekyro-qr",viewBox:`0 0 ${s.size} ${s.size}`,role:"img","aria-label":n("handoff.qrAlt"),children:[(0,c.jsx)("rect",{width:s.size,height:s.size,className:"sekyro-qr__bg"}),(0,c.jsx)("path",{d:s.dots,className:"sekyro-qr__fg"}),(0,c.jsx)("path",{d:s.finders,className:"sekyro-qr__fg",fillRule:"evenodd"}),s.logo!==null?(0,c.jsx)("path",{d:Me.d,className:"sekyro-qr__fg",fillRule:"evenodd",transform:ve(s.logo),"data-qr-mark":""}):null]}):null,(0,c.jsxs)("p",{className:"sekyro-handoff__waiting",role:"status",children:[(0,c.jsx)("span",{className:"sekyro-handoff__pulse","aria-hidden":"true"}),n("handoff.waiting")]}),(0,c.jsxs)(O,{children:[(0,c.jsx)(G,{url:e,i18n:a,label:"handoff.copyLink"}),r??null]})]})}f(j,"ye");m(j,"HandoffView");var He=["intro","data","processing","sharing","retention"];function Ue({i18n:e}){let a=w(e);return(0,c.jsx)(c.Fragment,{children:He.map(t=>(0,c.jsx)("p",{children:a(`consent.human.terms.${t}`)},t))})}f(Ue,"gt");m(Ue,"HumanConsentTerms");function qe({url:e,i18n:a}){return(0,k.useMemo)(()=>!S(),[])?(0,c.jsx)(j,{url:e,i18n:a}):null}f(qe,"kt");m(qe,"DesktopHandoffView");function Be({i18n:e,cause:a,onRetry:t,onContinue:r,handoffUrl:o}){let n=w(e),l=(0,k.useId)(),s=R(),[i,h]=(0,k.useState)("idle"),p=(0,k.useMemo)(()=>o!==void 0&&!S(),[o]),y=a==="denied",g=m(()=>{r!==void 0&&(h("busy"),r(a).then(()=>h("idle"),d=>h(d instanceof K&&d.code==="check_out_of_order"?"idle":"failed")))},"end"),A=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(x,{full:!0,kind:y||r===void 0?"primary":"secondary",onClick:t,children:e.t("common.retry")}),r!==void 0?(0,c.jsx)(x,{full:!0,kind:y?"secondary":"primary",disabled:i==="busy","aria-busy":i==="busy"||void 0,onClick:g,children:n("capture.noCamera.continue")}):null]}),u=i==="failed"?(0,c.jsx)(_,{tone:"danger",children:(0,c.jsx)("span",{children:e.t("errors.network_error")})}):null;return p&&o!==void 0?(0,c.jsxs)("section",{className:"sekyro-stack sekyro-stack--4","aria-labelledby":l,"data-testid":"sekyro-no-camera","data-cause":a,children:[(0,c.jsx)(j,{url:o,i18n:e}),(0,c.jsx)("h2",{id:l,ref:s,tabIndex:-1,className:"sekyro-text-body",children:n(y?"capture.noCamera.deniedTitle":"capture.noCamera.title")}),(0,c.jsx)("p",{className:"sekyro-text-muted",children:n(y?"capture.noCamera.deniedBody":"capture.noCamera.body")}),u,(0,c.jsx)("div",{className:"sekyro-stack sekyro-stack--3",children:A})]}):(0,c.jsxs)(P,{tone:y?"warning":"neutral",icon:"camera",titleId:l,title:n(y?"capture.noCamera.deniedTitle":"capture.noCamera.title"),testId:"sekyro-no-camera",actions:A,children:[(0,c.jsx)("p",{children:n(y?"capture.noCamera.deniedBody":"capture.noCamera.body")}),u]})}f(Be,"wt");m(Be,"NoCameraView");function Ye({url:e,i18n:a,onContinue:t}){let r=w(a),o=(0,k.useId)(),n=(0,k.useMemo)(()=>ae(e),[e]);return(0,c.jsx)(P,{tone:"brand",icon:"external",titleId:o,title:r("inApp.title"),testId:"sekyro-in-app",actions:(0,c.jsxs)(c.Fragment,{children:[n!==null?(0,c.jsxs)("a",{className:"sekyro-btn sekyro-btn--primary sekyro-btn--full",href:n,"data-testid":"sekyro-open-browser",children:[(0,c.jsx)(D,{name:"external"}),r("inApp.openBrowser")]}):null,(0,c.jsx)(G,{url:e,i18n:a,label:"inApp.copyLink",primary:n===null}),(0,c.jsx)(x,{kind:"ghost",full:!0,onClick:t,children:r("inApp.continueAnyway")})]}),children:(0,c.jsx)("p",{children:r("inApp.description")})})}f(Ye,"vt");m(Ye,"InAppBrowserPrompt");export{da as ContactChoiceView,qe as DesktopHandoffView,Fe as EidContinueHint,ma as GenericChoiceView,j as HandoffView,Ue as HumanConsentTerms,Oe as IdentitySummaryView,Ye as InAppBrowserPrompt,Te as LaneChoiceView,Re as LaneSwitch,$e as LivePhotoLiveness,Be as NoCameraView,Ve as PortraitRetakeNotice};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as a,e,f as s,g as r,h as c,i as o}from"./chunk-HDJ6JFXX.js";import"./chunk-4FHWXBOB.js";export{a as ICAO_GATE_CRITERIA,o as createIcaoGate,s as eyeOpenness,e as judgeIcao,r as percentile,c as scoreFrame};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as o,b as r}from"./chunk-T4M2J44L.js";import"./chunk-ET7NCKUV.js";import"./chunk-4FHWXBOB.js";export{o as ICAO_FALLBACK,r as resolveIcaoTuning};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as f}from"./chunk-4FHWXBOB.js";var D=4,k=600,C=.5,F=30,A={frontal:.1,eyes:.1,score:.05},N=f(t=>t<0?0:t>1?1:t,"_");function P(t){let l=t.eyes;if(l===void 0)return{frontal:1,yaw:null,roll:null};let r=l.right.x-l.left.x,a=l.right.y-l.left.y,e=r*r+a*a;if(e===0)return{frontal:1,yaw:null,roll:null};let s=Math.abs(Math.atan2(a,Math.abs(r))*180/Math.PI),u=N(1-s/30),n=null,o=t.nose;if(o!==void 0){let y=(l.left.x+l.right.x)/2,c=(l.left.y+l.right.y)/2;n=Math.abs(((o.x-y)*r+(o.y-c)*a)/e),u*=N(1-n/.5)}return{frontal:u,yaw:n,roll:s}}f(P,"w");function S(t,l){return t===null?{face:!1,frontal:0,yaw:null,roll:null,eyes:null,score:0,sharpness:l}:{face:!0,...P(t),eyes:null,score:t.score,sharpness:l}}f(S,"F");function T(t){let l=t.map((e,s)=>s),r=f((e,s)=>{let u=Number.NEGATIVE_INFINITY;for(let n of l)u=Math.max(u,e(t[n]));l=l.filter(n=>e(t[n])>=u-s)},"a");r(e=>e.frontal,A.frontal),r(e=>e.eyes??1,A.eyes),r(e=>e.score,A.score);let a=-1;for(let e of l)(a===-1||t[e].sharpness>t[a].sharpness)&&(a=e);return a}f(T,"v");var h=f(t=>Number.isFinite(t)?Math.round(t*1e3)/1e3:0,"i"),K=99,W=999999;function b(t){return{face:t.face,frontal:h(t.frontal),...t.yaw!==null?{yaw:Math.min(h(t.yaw),K)}:{},...t.roll!==null?{roll:h(t.roll)}:{},...t.eyes!==null?{eyes:h(t.eyes)}:{},score:h(t.score),sharpness:Math.min(h(t.sharpness),W)}}f(b,"T");var L=g;async function g(t,l){let{options:r}=t,a=r.video,e=r.now??(()=>performance.now()),s=r.captureKeyframe??(i=>t.defaultKeyframe(i)),u=600/3,n=[],o=[],y=0;for(let i=0;i<4;i+=1){if(l!==t.attempt)return null;let p=t.detector,E=Promise.resolve(null),m,d=0;try{if(p!==null){let R=t.profiler?.profile.inputWidth??160,x=r.makeSnapshot?.(a,R)??t.defaultSnapshot(a,R);m=s(a).then(w=>(d=e(),w));let I=e();E=p.detect(x,a.videoWidth,a.videoHeight).then(w=>(y+=e()-I,w),()=>null)}else m=s(a).then(R=>(d=e(),R));let[M,v]=await Promise.all([m,E]);n.push(M),o.push(S(v,M.sharpness))}catch{m?.catch(()=>{})}let O=d>0?Math.max(0,e()-d):0;i<3&&await new Promise(M=>setTimeout(M,Math.max(0,u-O)))}if(l!==t.attempt)return null;let c=T(o);if(c===-1)return null;let _=0;o.forEach((i,p)=>{i.sharpness>o[_].sharpness&&(_=p)});try{r.telemetry?.({type:"keyframe",tier:t.detector?.tier??null,chosen:c,sharpest:_,detectMs:Math.round(y),candidates:o.map(b)})}catch{}return n[c]??null}f(g,"I");export{D as RANK_CANDIDATES,A as RANK_TOLERANCE,k as RANK_WINDOW_MS,F as ROLL_ZERO_DEG,W as SHARPNESS_REPORT_MAX,K as YAW_REPORT_MAX,C as YAW_ZERO_IOD,g as collectRankedKeyframes,L as default,S as featuresOf,P as frontalOf,T as rankKeyframes};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b as e,c as r,d as s}from"./chunk-FAIDO3QL.js";import"./chunk-4FHWXBOB.js";export{a as LANDMARKER_INIT_TIMEOUT_MS,e as LANDMARKER_MODEL,s as createFaceLandmarker,r as facesOf};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b as r}from"./chunk-7HJH5Q4M.js";import"./chunk-4FHWXBOB.js";export{a as MRZ_BAND_DEFAULTS,r as detectMrzBand};
|