@tsocial/tvweb-sdk.platform 5.38.1 → 5.38.3

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.
Files changed (40) hide show
  1. package/build/esm/{chunk-9dfcc42f.js → chunk-01c3fea1.js} +1 -1
  2. package/build/esm/chunk-2da8af58.js +1 -0
  3. package/build/esm/{chunk-530590d7.js → chunk-3a5e2fb7.js} +32 -32
  4. package/build/esm/chunk-443bbdef.js +1 -0
  5. package/build/esm/chunk-4c589d01.js +1 -0
  6. package/build/esm/{chunk-dc7036ac.js → chunk-6000df97.js} +1 -1
  7. package/build/esm/chunk-62203103.js +1 -0
  8. package/build/esm/chunk-6c419352.js +1 -0
  9. package/build/esm/{chunk-ca868cf7.js → chunk-7b148a15.js} +5 -5
  10. package/build/esm/{chunk-e8ed1b74.js → chunk-7fd5f30f.js} +2 -2
  11. package/build/esm/chunk-83b4e661.js +256 -0
  12. package/build/esm/{chunk-d01fee9b.js → chunk-85c7fccc.js} +1 -1
  13. package/build/esm/chunk-973e0c2c.js +1195 -0
  14. package/build/esm/{chunk-af89e5b6.js → chunk-9a57dffd.js} +1 -1
  15. package/build/esm/{chunk-9778c61e.js → chunk-cb78319b.js} +2 -2
  16. package/build/esm/chunk-df1a18df.js +1 -0
  17. package/build/esm/chunk-e6f33641.js +1 -0
  18. package/build/esm/chunk-ea488e70.js +1 -0
  19. package/build/esm/chunk-ec455fe3.js +3 -0
  20. package/build/esm/chunk-fc1ca1ea.js +1 -0
  21. package/build/esm/tvweb-sdk.platform.esm.min.js +1 -1
  22. package/build/tvweb-sdk.platform.cjs.min.js +651 -695
  23. package/build/tvweb-sdk.platform.standalone.js +5990 -7685
  24. package/build/tvweb-sdk.platform.standalone.min.js +651 -695
  25. package/build/types/index.d.ts +1 -9
  26. package/package.json +5 -5
  27. package/build/esm/chunk-00ef2df8.js +0 -1
  28. package/build/esm/chunk-0da61929.js +0 -1
  29. package/build/esm/chunk-14e1b552.js +0 -1
  30. package/build/esm/chunk-19191a88.js +0 -1
  31. package/build/esm/chunk-3a50b76b.js +0 -1
  32. package/build/esm/chunk-460be0ec.js +0 -1
  33. package/build/esm/chunk-64ec8617.js +0 -1
  34. package/build/esm/chunk-661f2995.js +0 -1
  35. package/build/esm/chunk-8d117718.js +0 -1
  36. package/build/esm/chunk-d315aa24.js +0 -1195
  37. package/build/esm/chunk-d70fed0c.js +0 -256
  38. package/build/esm/chunk-db6c3ef2.js +0 -3
  39. package/build/esm/chunk-ebbd1c81.js +0 -45
  40. package/build/esm/chunk-f7c561aa.js +0 -1
@@ -1,256 +0,0 @@
1
- import{aM as e,z as i,aN as r,aO as t,aP as s,m as o,b as n,r as a,K as l,P as d,D as c,s as g,Y as h,j as f,i as u,y as p,B as m,k as w,aQ as k}from"./chunk-d315aa24.js";var b=Object.freeze({__proto__:null,blink:e,flipY:i,slide:r,spin:t,splash:s});let R=({curStep:e,faceDirection:i})=>{let r=n(e,"stepTimeConstraints.delayTime");return!!r&&(null===e.firstFrameSpottedAt?(e.name===i&&(e.firstFrameSpottedAt=new Date().getTime()),!0):!!(new Date().getTime()-e.firstFrameSpottedAt<r)||!1)},S=(e,i)=>({radius:e.radius??o("Selfie.progressCircle.radius")({theme:i}),strokeWidth:e.strokeWidth??o("Selfie.progressCircle.strokeWidth")({theme:i}),progress:e.progress??o("Selfie.progressCircle.progress")({theme:i}),showErrorRing:e.showErrorRing??o("Selfie.progressCircle.showErrorRing")({theme:i}),activeColor:e.activeColor??o("Selfie.progressCircle.activeColor")({theme:i}),innerPadding:e.innerPadding??o("Selfie.progressCircle.innerPadding")({theme:i}),outsideRingColor:e.outsideRingColor??o("Selfie.progressCircle.outsideRingColor")({theme:i}),outsideRingOpacity:e.outsideRingOpacity??o("Selfie.progressCircle.outsideRingOpacity")({theme:i}),insideRingColor:e.insideRingColor??o("Selfie.progressCircle.insideRingColor")({theme:i}),insideRingWidth:e.insideRingWidth??o("Selfie.progressCircle.insideRingWidth")({theme:i}),insideRingStrokeDash:e.insideRingStrokeDash??o("Selfie.progressCircle.insideRingStrokeDash")({theme:i}),errorRingWidth:e.errorRingWidth??o("Selfie.progressCircle.errorRingWidth")({theme:i}),errorRingColor:e.errorRingColor??o("Selfie.progressCircle.errorRingColor")({theme:i}),dashedRingColor:e.dashedRingColor??o("Selfie.progressCircle.dashedRingColor")({theme:i}),dashedRingOpacity:e.dashedRingOpacity??o("Selfie.progressCircle.dashedRingOpacity")({theme:i}),dashedRingWidth:e.dashedRingWidth??o("Selfie.progressCircle.dashedRingWidth")({theme:i}),dashedRingLineThick:e.dashedRingLineThick??o("Selfie.progressCircle.dashedRingLineThick")({theme:i}),dashedRingLineSpacing:e.dashedRingLineSpacing??o("Selfie.progressCircle.dashedRingLineSpacing")({theme:i}),dashedInsideRingColor:e.dashedInsideRingColor??o("Selfie.progressCircle.dashedInsideRingColor")({theme:i}),dashedInsideRingWidth:e.dashedInsideRingWidth??o("Selfie.progressCircle.dashedInsideRingWidth")({theme:i}),showOutsideRing:e.showOutsideRing??o("Selfie.progressCircle.showOutsideRing")({theme:i}),showInsideRing:e.showInsideRing??o("Selfie.progressCircle.showInsideRing")({theme:i}),showDashedRing:e.showDashedRing??o("Selfie.progressCircle.showDashedRing")({theme:i})}),_=(e,i)=>({radius:e.radius??o("Selfie.progressCircleV2.radius")({theme:i}),strokeWidth:e.strokeWidth??o("Selfie.progressCircleV2.strokeWidth")({theme:i}),progress:e.progress??o("Selfie.progressCircleV2.progress")({theme:i}),activeColor:e.activeColor??o("Selfie.progressCircleV2.activeColor")({theme:i}),neutralColor:e.neutralColor??o("Selfie.progressCircleV2.neutralColor")({theme:i}),errorColor:e.errorColor??o("Selfie.progressCircleV2.errorColor")({theme:i}),tickWidth:e.tickWidth??o("Selfie.progressCircleV2.tickWidth")({theme:i}),numberOfTicks:e.numberOfTicks??o("Selfie.progressCircleV2.numberOfTicks")({theme:i})}),y=({incomingFrame:e,currentBestFrame:i})=>e?.isEyeClosed&&!i?.isEyeClosed?i:!e?.isEyeClosed&&i?.isEyeClosed?e:e?.blurScore>i?.blurScore?e:i;function C(e){return new Promise(i=>{let r=new Image;r.onload=i,r.onerror=i,r.src=e})}let x=[],v=()=>{x=[]},$=(e,i,r,t)=>{t&&v(),x.push({id:null});let s=x.length-1;if(e&&e.key){let t=new Blob([JSON.stringify(i)]);r.uploadFile({file:t,metadata:JSON.stringify({type:"selfie"}),label:"video"},{"X-TV-Key":e.key}).then(e=>{e&&e.data&&e.data.file_id?x[s].id=e.data.file_id:x[s].id=-1})}else{let e=new Blob([JSON.stringify(i)]);r.uploadFile({file:e,metadata:JSON.stringify({type:"selfie"}),label:"video"}).then(e=>{e&&e.data&&e.data.file_id?x[s].id=e.data.file_id:x[s].id=-1})}},W=()=>new Promise(e=>{let i=setInterval(()=>{x.every(e=>e.id)&&(e(),clearInterval(i))},200)}),j=e=>e.enable?x.some(e=>-1===e.id)?null:x:[],I=[],O=null,D=!1,A=()=>I,T=()=>{D=!0,I=[];try{O instanceof MediaStream&&(O.getTracks().forEach(e=>e.stop()),O=null)}catch(e){}};async function E({outputImagesSize:e,videoEl:i,resultAnalyzeVideoAndWindowSizes:r}){let t;T();let s=document.createElement("canvas");s.width=e,s.height=e;let o=s.getContext("2d");try{let n={mimeType:"video/webm"};try{let e=(O=i?.captureStream()?.clone()).getVideoTracks()[0];await e.applyConstraints({width:{min:360,ideal:400},height:{min:360,ideal:400}})}catch(e){}MediaRecorder.isTypeSupported("video/mp4")&&(D=!1,!function e(i,r,t,s){if(!i||!s)return;let{cropX:o,cropY:n,cropWidth:a,cropHeight:l}=s;i.drawImage(r,o,n,a,l,0,0,t,t),D||requestAnimationFrame(()=>e(i,r,t,s))}(o,i,e,r),O=s.captureStream(25),n={mimeType:"video/mp4",videoBitsPerSecond:25e5}),t=new MediaRecorder(O,n);let a=async()=>{await new Promise((e,i)=>{t.ondataavailable=r=>(function(e,i,r){if(e.data.size>0){let r=new Blob([e.data],{type:"video/mp4"});I.push(r),i()}else console.error("No video have recored!"),r()})(r,e,i),"inactive"!==t.state&&t.stop()})};t.stopVideoRecording=a,t.discardRecording=()=>{"inactive"!==t.state&&t.stop()}}catch(e){}return{mediaRecorder:t}}let P={data:{settings:{sdk_settings:{passive_liveness_settings:{auto_capture:{enable:!0,show_capture_button:!0,show_countdown:!0,wait_for_best_image_time_ms_web:3e3},manual_capture:{show_countdown:!0,wait_for_best_image_time_ms_web:3e3},blur_check:{enable:!0,web_blurry_threshold:.4},close_eye_detector:{enable:!0,web_threshold:.342,web_timeout:5,force_check:!1},web_is_required_frontal_face:!0},active_liveness_settings:{reset_flow_on_orientation_change:!0,wait_before_start_flow_ms:2e3,face_tracking_setting:{enable:!1,web_terminate_threshold:.0030152991993743408,web_warning_threshold:.0017317430600108828,limit_for:"all_flow",max_warning_time:5},flow_interval_time_ms:3e3,take_one_picture_time_ms:3e3,limit_time_liveness_check:{enable:!1,limit_time_second:45,remain_time_show:10,format:"s",max_retry_count:0,non_stoppable:!1},terminate_if_no_face:{enable:!1,max_invalid_frame:5,max_time_ms:1e3},close_eye_detector:{enable:!0,web_threshold:.342,web_timeout:5,force_check:!1},exif_data_settings:{enable:!0},record_video:{enable:!1},save_encoded_frames:{enable:!1,enable_logging:!1,frames_batch_len:0,frames_interval_ms:180,quality_android:90,quality_ios:80},auto_gen_frame_ids:{enable:!1,max_items:50}}}}}},V=30,L=e=>{let{shouldStart:i,totalTime:r,totalDelayBetweenReset:t,interruptible:s=!0,onReset:o,onTick:n,onTimesUp:d}=e,c=a.useRef(new l({totalTime:r,totalDelayBetweenReset:t,interruptible:s}));return a.useEffect(()=>c.current.on("tick",({remainTime:e})=>{n({remainTime:e})}),[n]),a.useEffect(()=>c.current.on("delaystart",()=>{d()}),[d]),a.useEffect(()=>c.current.on("reset",({attemptCount:e,fromBackground:i})=>{o({attemptCount:e,fromBackground:i})}),[o]),a.useEffect(()=>i?c.current.start():()=>{},[i]),{stopTimer:a.useCallback(()=>{c.current.stop()},[])}},{ErrorDuration:z}=g;function M({children:e,errorMsg:i,className:r}){return h.isValidElement(e)?i?f.jsx("div",{className:r,children:h.cloneElement(e,{errorMsg:i})}):null:i?f.jsx("div",{className:r,children:i}):null}function B({children:e,className:i,error:r}){let t=a.useRef(0),s=a.useRef(""),o=c(),n=a.useRef(z.SHORT),{code:l,duration:d=z.SHORT}=r||{},g=o(l);return Date.now()-t.current>=n.current?(t.current=Date.now(),n.current=d,s.current=g,M({children:e,errorMsg:g,className:i})):M({children:e,errorMsg:s.current,className:i})}B.propTypes={children:d.node,className:d.string},B.defaultProps={className:""};let N=u.g`
2
- transition: stroke-dashoffset 0.4s;
3
- transform: rotate(-90deg);
4
- transform-origin: 50% 50%;
5
- `,F=u.circle`
6
- transition: stroke-dashoffset 0.4s, stroke 0.4s;
7
- transform: rotate(-90deg);
8
- transform-origin: 50% 50%;
9
- fill: none;
10
- `,H=u.circle`
11
- transition: stroke-dashoffset 0.4s;
12
- transform: rotate(-90deg);
13
- transform-origin: 50% 50%;
14
- `;function K({className:e,style:i,radius:r,strokeWidth:t,progress:s,showErrorRing:o,activeColor:n,innerPadding:a,outsideRingColor:l,outsideRingOpacity:d,insideRingColor:c,insideRingWidth:g,insideRingStrokeDash:h,errorRingWidth:u,errorRingColor:p,dashedRingColor:m,dashedRingOpacity:w,dashedRingWidth:k,dashedRingLineThick:b,dashedRingLineSpacing:R,dashedInsideRingColor:S,dashedInsideRingWidth:_,showOutsideRing:y,showInsideRing:C,showDashedRing:x}){let v=2*r,$=2*r,W=r-2*t,j=2*Math.PI*W,I=W-k/2-t/2-a,O=2*Math.PI*I,D=I-_/2-k/2,A=2*Math.PI*D,T=D-g/2-_/2,E=D-u/2-_/2;return f.jsxs("svg",{className:e,style:i,width:v,height:$,viewBox:`0 0 ${v} ${$}`,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[y?f.jsxs(f.Fragment,{children:[f.jsx("circle",{"data-testid":"outsideRing",opacity:d,cx:r,cy:r,r:W,stroke:l}),f.jsx(H,{"data-testid":"outsideAnimateRing",cx:r,cy:r,r:W,stroke:n,strokeWidth:t,strokeLinecap:"round",strokeDasharray:`${j} ${j}`,style:{strokeDashoffset:j-s/100*j}})]}):null,x?f.jsxs(f.Fragment,{children:[f.jsx("circle",{"data-testid":"dashedRing",opacity:w,cx:r,cy:r,r:I,stroke:m,strokeWidth:k,strokeDasharray:`${b} ${R}`}),f.jsx("mask",{id:"mask0","mask-type":"alpha",maskUnits:"userSpaceOnUse",children:f.jsx("circle",{cx:r,cy:r,r:I,stroke:n,strokeWidth:k,strokeDasharray:`${b} ${R}`})}),f.jsx("g",{mask:"url(#mask0)",children:f.jsx(H,{"data-testid":"dashedAnimateRing",cx:r,cy:r,r:I,stroke:n,strokeWidth:k,strokeDasharray:`${O} ${O}`,style:{strokeDashoffset:O-s/100*O}})}),f.jsx("circle",{"data-testid":"dashedInsideRing",opacity:w,cx:r,cy:r,r:D,stroke:S,strokeWidth:_}),f.jsx(H,{"data-testid":"dashedInsideAnimateRing",cx:r,cy:r,r:D,stroke:n,strokeWidth:_,strokeLinecap:"round",strokeDasharray:`${A} ${A}`,style:{strokeDashoffset:A-s/100*A}})]}):null,C?f.jsx("circle",{"data-testid":"insideRing",strokeDasharray:h,cx:r,cy:r,r:T,stroke:c,strokeWidth:g}):null,o?f.jsx("circle",{"data-testid":"errorRing",strokeDasharray:h,cx:r,cy:r,r:E,stroke:p,strokeWidth:u}):null]})}K.propTypes={className:d.string,style:d.shape({}),radius:d.number,strokeWidth:d.number,progress:d.number,showErrorRing:d.bool,activeColor:d.string,innerPadding:d.number,outsideRingColor:d.string,outsideRingOpacity:d.number,insideRingColor:d.string,insideRingWidth:d.number,insideRingStrokeDash:d.string,errorRingColor:d.string,errorRingWidth:d.number,dashedRingColor:d.string,dashedRingOpacity:d.number,dashedRingWidth:d.number,dashedRingLineThick:d.number,dashedRingLineSpacing:d.number,dashedInsideRingColor:d.string,dashedInsideRingWidth:d.number,showOutsideRing:d.bool,showDashedRing:d.bool,showInsideRing:d.bool},K.defaultProps={className:"",style:null,radius:160,strokeWidth:3,progress:0,showErrorRing:!1,activeColor:"#0092ff",innerPadding:5,outsideRingColor:"#f2f6f9",outsideRingOpacity:.1,insideRingColor:"#f2f6f9",insideRingWidth:3,insideRingStrokeDash:"0",errorRingColor:"#df0000",errorRingWidth:3,dashedRingColor:"#ffffff",dashedRingOpacity:.3,dashedRingWidth:10,dashedRingLineThick:1,dashedRingLineSpacing:6,dashedInsideRingColor:"#ffffff",dashedInsideRingWidth:0,showOutsideRing:!0,showDashedRing:!0,showInsideRing:!0};let{blink:U,slide:q,spin:J}=b,Y=p`
15
- z-index: ${m+20};
16
- color: #ffffff;
17
- `,Z=u.div`
18
- ${Y}
19
- `,G=p`
20
- ${Y}
21
- ${({top:e})=>e&&p`
22
- top: ${e}px;
23
- `}
24
- ${({bottom:e})=>e&&p`
25
- bottom: ${e}px;
26
- `}
27
- ${({centerY:e})=>e&&p`
28
- top: 50%;
29
- transform: translateY(-50%);
30
- `}
31
- font-size: ${o("Selfie.error.fontSize")};
32
- font-weight: ${o("Selfie.error.fontWeight")};
33
- background: ${o("Selfie.error.backgroundColor")};
34
- color: ${o("Selfie.error.color")};
35
- padding: ${o("Selfie.error.padding")};
36
- border-radius: ${o("Selfie.error.borderRadius")};
37
- position: absolute;
38
- white-space: pre-wrap;
39
- text-align: center;
40
- max-width: 80%;
41
- `;u(B)`
42
- ${G}
43
- `;let Q=u.div`
44
- ${G}
45
- `,X=u.div`
46
- z-index: ${m+20};
47
- display: flex;
48
- align-items: center;
49
- position: absolute;
50
- left: 50%;
51
- transform: translate(-50%, 0);
52
- ${({top:e})=>e&&p`
53
- top: ${e}px;
54
- `}
55
- `,ee=u(Z)`
56
- font-size: ${o("Selfie.countdown.fontSize")};
57
- font-weight: ${o("Selfie.countdown.fontWeight")};
58
- background: ${o("Selfie.countdown.backgroundColor")};
59
- color: ${o("Selfie.countdown.color")};
60
- padding: ${o("Selfie.countdown.padding")};
61
- border-radius: ${o("Selfie.countdown.borderRadius")};
62
- white-space: nowrap;
63
- `,ei=u(ee)`
64
- position: absolute;
65
- left: 50%;
66
- transform: translate(-50%, 0);
67
- ${({top:e})=>e&&p`
68
- top: ${e}px;
69
- `}
70
- `,er=u(Z)`
71
- position: absolute;
72
- ${({top:e})=>e&&p`
73
- top: ${e}px;
74
- `}
75
- ${({bottom:e})=>e&&p`
76
- bottom: ${e}px;
77
- `}
78
- color: ${o("Selfie.Active.instruction.color")};
79
- font-size: ${o("Selfie.Active.instruction.fontSize")};
80
- font-weight: ${o("Selfie.Active.instruction.fontWeight")};
81
- text-shadow: ${o("Selfie.Active.instruction.textShadow")};
82
- background-color: ${o("Selfie.Active.instruction.backgroundColor")};
83
- border: ${o("Selfie.Active.instruction.border")};
84
- border-radius: ${o("Selfie.Active.instruction.borderRadius")};
85
- `,et=u.div`
86
- height: ${()=>w.isMobile?"50px":"70px"};
87
- position: absolute;
88
- ${({top:e})=>e&&p`
89
- top: ${e}px;
90
- `}
91
- ${({bottom:e})=>e&&p`
92
- bottom: ${e}px;
93
- `}
94
- width: 100%;
95
- display: flex;
96
- justify-content: center;
97
- align-items: center;
98
- z-index: ${m+20};
99
- `,es=u.div`
100
- width: ${o("Selfie.Active.imageHolder.width")};
101
- height: ${o("Selfie.Active.imageHolder.height")};
102
- border-radius: ${o("Selfie.Active.imageHolder.borderRadius")};
103
- font-size: ${o("Selfie.Active.imageHolder.fontSize")};
104
- color: ${o("Selfie.Active.imageHolder.color")};
105
- font-weight: ${o("Selfie.Active.imageHolder.fontWeight")};
106
-
107
- ${({theme:e})=>"v2"===n(e,"themeVersion")?"border: unset;":`border: ${o("Selfie.Active.imageHolder.border")({theme:e})};`}
108
-
109
- display: flex;
110
- justify-content: center;
111
- align-items: center;
112
-
113
- & + & {
114
- margin-left: 10px;
115
- }
116
-
117
- ${e=>e.active?p`
118
- img:not(.image_preview) {
119
- border: ${o("Selfie.Active.imageHolder.activeStepBorder")};
120
- border-radius: ${o("Selfie.Active.imageHolder.activeStepBorderRadius")};
121
- }
122
- `:p`
123
- opacity: 0.3;
124
- `}
125
-
126
- img {
127
- width: 100%;
128
- margin: 0;
129
- border-radius: ${o("Selfie.Active.imageHolder.borderRadius")};
130
- }
131
- img.image_preview {
132
- border: ${o("Selfie.Active.imageHolder.border")};
133
- }
134
- `,eo=u.div`
135
- color: #ffffff;
136
- height: 70px;
137
- position: absolute;
138
- bottom: 0;
139
- width: 100%;
140
- display: flex;
141
- justify-content: center;
142
- align-items: center;
143
- z-index: ${m+20};
144
- `,en=u.div`
145
- ${({disabled:e})=>e?p`
146
- pointer-events: none;
147
- `:p`
148
- cursor: pointer;
149
- `}
150
- text-align: center;
151
-
152
- img {
153
- width: ${o("Selfie.captureIcon.width")};
154
- }
155
- `,ea=u.div`
156
- position: absolute;
157
- width: 100%;
158
- top: 0;
159
- bottom: 0;
160
- display: flex;
161
- justify-content: center;
162
- align-items: center;
163
- color: #ffffff;
164
- font-size: 140px;
165
- opacity: 0.6;
166
- `,el=u.div`
167
- position: absolute;
168
- width: 100%;
169
- top: 0;
170
- bottom: 0;
171
- display: flex;
172
- flex-direction: column;
173
- justify-content: center;
174
- align-items: center;
175
- ${q.default};
176
- ${U.default};
177
- `,ed=u(K)`
178
- position: absolute;
179
- top: 0;
180
- left: 0;
181
- width: 100%;
182
- height: 100%;
183
- `,ec=u(({className:e="",radius:i=80,neutralColor:r="#CBD5E1",activeColor:t="#0276F1",errorColor:s="#E84848",strokeWidth:o=2,tickWidth:n=15,numberOfTicks:a=200,progress:l=0,showErrorRing:d=!1})=>{let c=2*i,g=i-5,h=2*Math.PI*g,u=Array.from({length:a}).map((e,r)=>{let t=360*r/a+3;return f.jsx("use",{href:"#tick",transform:`rotate(${t} ${i} ${i})`},r)}),p=i-V,m=2*Math.PI*p;return f.jsxs("svg",{height:c,width:c,viewBox:`0 0 ${c} ${c}`,className:e,xmlns:"http://www.w3.org/2000/svg",children:[d?f.jsx("circle",{cx:i,cy:i,r:i-V,stroke:s,strokeWidth:o,fill:"none"}):f.jsxs(f.Fragment,{children:[f.jsx("circle",{cx:i,cy:i,r:p,stroke:r,strokeWidth:o,fill:"none"}),f.jsx(F,{cx:i,cy:i,r:p,stroke:t,strokeWidth:o,strokeLinecap:"round",strokeDasharray:`${m} ${m}`,style:{strokeDashoffset:m-l/100*m}})]}),f.jsx("defs",{children:f.jsx("line",{id:"tick",x1:i,y1:"0",x2:i,y2:n,stroke:r,strokeWidth:o,strokeLinecap:"round"})}),f.jsx("g",{id:"border-segments",children:u}),f.jsx("mask",{id:"tickMask",maskUnits:"userSpaceOnUse",children:f.jsx("g",{id:"tick-mask-segments",children:u})}),f.jsx("g",{mask:"url(#tickMask)",children:f.jsx(N,{strokeDasharray:`${h} ${h}`,style:{strokeDashoffset:h-l/100*h},children:f.jsx("circle",{cx:i,cy:i,r:g,stroke:t,strokeWidth:20,fill:"none"})})})]})})`
184
- position: absolute;
185
- top: 0;
186
- left: 0;
187
- width: 100%;
188
- height: 100%;
189
- `,eg=u(function({className:e=""}){return f.jsx("svg",{className:e,width:"320",height:"320",viewBox:"0 0 320 320",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M320 0H0V320H320V0ZM160 296C235.111 296 296 235.111 296 160C296 84.8893 235.111 24 160 24C84.8893 24 24 84.8893 24 160C24 235.111 84.8893 296 160 296Z",fill:"currentColor"})})})`
190
- width: 100%;
191
- height: 100%;
192
- vertical-align: middle;
193
- margin: 0;
194
- color: ${o("Selfie.backgroundColor")};
195
- `,eh=u(function({className:e="",radius:i=160,backgroundColor:r="#fff",padding:t=0}){let s=2*i;return f.jsxs("svg",{className:e,width:s,height:s,viewBox:`0 0 ${s} ${s}`,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsxs("mask",{id:"CIRCLE_MASK",children:[f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white",mask:"url(#CIRCLE_MASK)"}),f.jsx("circle",{cx:i,cy:i,r:i-t,fill:"black"})]}),f.jsx("circle",{cx:i,cy:i,r:i,fill:"none"}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:r,mask:"url(#CIRCLE_MASK)"})]})})`
196
- width: 100%;
197
- height: 100%;
198
- vertical-align: middle;
199
- margin: 0;
200
- color: ${o("Selfie.backgroundColor")};
201
- `,ef=u.div`
202
- position: absolute;
203
- z-index: -1;
204
- background: rgba(223, 0, 0, 0.2);
205
- border-radius: 50%;
206
- width: 86%;
207
- height: 86%;
208
- top: 7%;
209
- left: 7%;
210
- `,eu=k`
211
- from {
212
- opacity: 1;
213
- }
214
-
215
- to {
216
- opacity: 0;
217
- }
218
- `,ep=u.div`
219
- position: absolute;
220
- width: 100%;
221
- top: 0;
222
- bottom: 0;
223
- z-index: -1;
224
- background: rgba(255, 255, 255, 0.3);
225
- animation: ${eu} 1s infinite;
226
- border-radius: 50%;
227
- `,em=u.div`
228
- top: 0;
229
- left: 0;
230
- right: 0;
231
- bottom: 0;
232
- position: absolute;
233
- margin: auto;
234
- width: ${o("Selfie.loadingIcon.width")};
235
- height: ${o("Selfie.loadingIcon.height")};
236
-
237
- img {
238
- width: 100%;
239
- }
240
-
241
- z-index: ${m+20};
242
- ${J.default}
243
- `,ew=u.div`
244
- text-align: center;
245
- color: ${o("Selfie.title.color")};
246
- font-size: ${o("Selfie.title.fontSize")};
247
- font-weight: ${o("Selfie.title.fontWeight")};
248
- background-color: ${o("Selfie.title.backgroundColor")};
249
- position: absolute;
250
- top: ${e=>e.y};
251
- z-index: ${m+10};
252
- display: flex;
253
- align-items: center;
254
- justify-content: center;
255
- width: 100%;
256
- `;export{V as A,eo as B,ea as C,ef as E,er as F,el as I,em as L,ed as O,Q as S,ew as T,eg as a,ei as b,en as c,_ as d,eh as e,ec as f,S as g,ep as h,et as i,es as j,X as k,ee as l,j as m,P as n,$ as o,C as p,A as q,T as r,v as s,R as t,L as u,E as v,W as w,y as x};
@@ -1,3 +0,0 @@
1
- import{i as i,P as e,s as t,A as c,U as o,m as r,b as n,j as a}from"./chunk-d315aa24.js";let s=i.img`
2
- width: ${({width:i})=>i};
3
- `;function l({type:i}){let e=c(),l=o(`Selfie.Active.directionIcon.${i}`,`${i}_arrow.gif`),F=o(`Selfie.Active.directionIcon.${t.FaceDirection.FRONTAL}`,"frontal_arrow.svg"),d=r(`Selfie.Active.directionIcon.${i}Width`)({theme:e}),f=n(e,`Selfie.Active.directionIcon.${i}`);return null===f?a.jsx(a.Fragment,{}):i===t.FaceDirection.FRONTAL&&F?a.jsx(s,{src:F,width:d,alt:""}):f&&null!==f?a.jsx(s,{src:n(e,`Selfie.Active.directionIcon.${i}`),width:d,alt:""}):a.jsx(s,{src:l,alt:"",width:d})}l.propTypes={type:e.oneOf([t.FaceDirection.LEFT,t.FaceDirection.RIGHT,t.FaceDirection.UP,t.FaceDirection.FRONTAL])},l.defaultProps={type:t.FaceDirection.LEFT};export{l as D};
@@ -1,45 +0,0 @@
1
- import{P as e,c as a,r as t,j as r,o as s,e as n,b as i,h as c,s as l,i as d}from"./chunk-d315aa24.js";import{P as o,O as u}from"./chunk-ca868cf7.js";import{u as f,a as p,S as m,R as g,U as y}from"./chunk-530590d7.js";import{d as _,m as C}from"./chunk-0da61929.js";import{L as h}from"./chunk-f7c561aa.js";import{t as R}from"./chunk-661f2995.js";let v=e=>{let{clientSettings:i,onError:c,onStepDone:l,logCredentials:d,uiOnlyComponent:o,detectIdCard:u,outputEncryptionSettings:g,steps:y,customTheme:C}=e,{settings:h}=f({clientSettings:i}),{themeVersion:R}=a.useSDKSettings(),v=t.useCallback(async e=>await l({...e,restartSession:I?.handleRestartSession}),[l,I?.handleRestartSession]),I=p({settings:h,onError:c,detectIdCard:u,outputEncryptionSettings:g,steps:y,onStepDone:v});return r.jsx(s,{theme:{...C,themeVersion:R,defaultThemes:_},children:r.jsx(n.SDKTrackingProvider,{value:{tracking:{...d}},children:r.jsx(o,{...e,onStepDone:v,settings:h,scannerTypeCons:m,...I})})})};v.propTypes={clientSettings:e.shape({}),onError:e.func,onStepDone:e.func,logCredentials:e.shape({}),readIDCardUIOnlyComponent:e.func,uiOnlyComponent:e.func,steps:e.arrayOf(e.shape({})),detectIdCard:e.func,outputEncryptionSettings:e.shape({}),customTheme:e.shape({})},v.defaultProps={clientSettings:void 0,onError:()=>{},onStepDone:()=>{},logCredentials:{enable:!0},readIDCardUIOnlyComponent:g,uiOnlyComponent:y,steps:void 0,detectIdCard:void 0,outputEncryptionSettings:null,customTheme:{}};let I={id_card_sanity:3,portrait_sanity:3,face_liveness_with_card_tampering_ocr:3,compare_faces:3},F={card_sanity:!0,card_tampering:!0,card_ocr:!0,face_sanity:!0,face_liveness:!0,compare_faces:!0,search_face:!0,index_face:!0},T="ID_CARD",A="FACE_LIVENESS",k="IDLE",S={},b={REACH_RETRY_LIMIT:{en:"You have reached the retry limit. Please try again later.",vi:"Bạn đ\xe3 vượt qu\xe1 số lần thử. Vui l\xf2ng thử lại sau."},FAIL_STEP:{en:"Please try again at step: <%= step %>.",vi:"Vui l\xf2ng thử lại ở bước: <%= step %>."},FAIL_FRONT_CARD_SANITY:{en:"The front side of your ID card failed sanity check.",vi:"H\xecnh ảnh Mặt trước của GTTT kh\xf4ng đạt chất lượng y\xeau cầu."},FAIL_FRONT_CARD_TAMPERING:{en:"The front side of your ID card failed tampering check.",vi:"H\xecnh ảnh Mặt trước của GTTT kh\xf4ng hợp lệ."},FAIL_FRONT_CARD_OCR:{en:"Cannot read information on the front side of your ID card.",vi:"Kh\xf4ng đọc được th\xf4ng tin từ h\xecnh ảnh Mặt trước của GTTT."},FAIL_BACK_CARD_SANITY:{en:"The back side of your ID card failed sanity check.",vi:"H\xecnh ảnh Mặt sau của GTTT kh\xf4ng đạt chất lượng y\xeau cầu."},FAIL_BACK_CARD_TAMPERING:{en:"The back side of your ID card failed tampering check.",vi:"H\xecnh ảnh Mặt sau của GTTT kh\xf4ng hợp lệ."},FAIL_BACK_CARD_OCR:{en:"Cannot read information on the back side of your ID card.",vi:"Kh\xf4ng đọc được th\xf4ng tin từ h\xecnh ảnh Mặt sau của GTTT."},FAIL_FACE_SANITY:{en:"Selfie step failed sanity check.",vi:"H\xecnh ảnh khu\xf4n mặt kh\xf4ng đạt chất lượng y\xeau cầu."},FAIL_FACE_LIVENESS:{en:"Selfie step failed liveness check.",vi:"H\xecnh ảnh khu\xf4n mặt kh\xf4ng hợp lệ."},FAIL_COMPARE_FACE:{en:"Failed compare faces between ID photo and selfie.",vi:"H\xecnh ảnh khu\xf4n mặt tr\xean GTTT kh\xf4ng giống h\xecnh chụp ch\xe2n dung"},RETRY_BUTTON:{en:"Retry",vi:"Thử lại"},STOP_BUTTON:{en:"Stop",vi:"Dừng"},FRONT_CARD:{en:"Front Card",vi:"Mặt trước"},BACK_CARD:{en:"Back Card",vi:"Mặt sau"},ID_CARD:{en:"ID Card",vi:"Thẻ ID"},FACE_LIVENESS:{en:"Face Liveness",vi:"Nhận diện khu\xf4n mặt"}};function L(e){var a;if("object"!=typeof(a=e)||"function"!=typeof a.then)return"pending";let t={};return Promise.race([e,t]).then(e=>e===t?"pending":"fulfilled",()=>"rejected")}let w=(e,a)=>{if(!i(a,"face_liveness"))return!1;let t=i(e,"verifyFaceLivenessResult.is_live",!1),r=i(e,"verifyFaceLivenessResult.status","");return!t||"success"!==r},E=(e,a)=>{if(!i(a,"card_sanity"))return!1;let t=i(e,"apiResult.sanityResult.status",""),r=i(e,"apiResult.sanityResult.card_sanity.verdict","");return"success"!==t||"good"!==r},D=e=>!!i(e,"errors")||"success"!==i(e,"data.status","")||"good"!==i(e,"data.card_tampering.verdict",""),O=e=>!!i(e,"errors")||"success"!==i(e,"data.status",""),N=e=>{let a=i(e,"compare_faces",[]);return a[0]?.result!=="matched"||1!==a.filter(e=>e?.result==="matched").length||e.errors},P=async(e,a,t)=>{if(i(a,"card_tampering")){let a=i(e.current,"frontCard.apiResult.detectIDTamperingBackground");if("fulfilled"===await L(a)){let{result:a,message:t}=await i(e.current,"frontCard.apiResult.detectIDTamperingBackground"),r=D(a),s={frontCard:{apiResult:{tamperingInfo:{...a?.data,message:r?i(t,"error"):i(t,"success")}}}};if(C(e.current,s),r)return!0}if(t){let a=i(e.current,"backCard.apiResult.detectIDTamperingBackground");if("fulfilled"===await L(a)){let{result:a,message:t}=await i(e.current,"backCard.apiResult.detectIDTamperingBackground"),r=D(a),s={backCard:{apiResult:{tamperingInfo:{...a?.data,message:r?i(t,"error"):i(t,"success")}}}};if(C(e.current,s),r)return!0}}}if(i(a,"card_ocr")){let a=i(e.current,"frontCard.apiResult.readIDCardBackground");if("fulfilled"===await L(a)){let{result:a,message:t}=await i(e.current,"frontCard.apiResult.readIDCardBackground"),r=O(a),s={frontCard:{apiResult:{cardInfo:{...a?.data,message:r?i(t,"error"):i(t,"success")}}}};if(C(e.current,s),r)return!0}if(t){let a=i(e.current,"backCard.apiResult.readIDCardBackground");if("fulfilled"===await L(a)){let{result:a,message:t}=await i(e.current,"backCard.apiResult.readIDCardBackground"),r=O(a),s={backCard:{apiResult:{cardInfo:{...a?.data,message:r?i(t,"error"):i(t,"success")}}}};if(C(e.current,s),r)return!0}}}return!1},x=async(e,a,t)=>{let r=!1;if(i(a,"card_tampering")){let{result:a,message:s}=await i(e.current,"frontCard.apiResult.detectIDTamperingBackground"),n=D(a);r=r||n;let c={frontCard:{apiResult:{tamperingInfo:{...a?.data,message:n?i(s,"error"):i(s,"success")}}}};if(C(e.current,c),t){let{result:a}=await i(e.current,"backCard.apiResult.detectIDTamperingBackground"),t=D(a);r=r||t;let n={backCard:{apiResult:{tamperingInfo:{...a?.data,message:t?i(s,"error"):i(s,"success")}}}};C(e.current,n)}}if(i(a,"card_ocr")){let{result:a,message:s}=await i(e.current,"frontCard.apiResult.readIDCardBackground"),n=O(a);r=r||n;let c={frontCard:{apiResult:{cardInfo:{...a?.data,message:n?i(s,"error"):i(s,"success")}}}};if(C(e.current,c),t){let{result:a}=await i(e.current,"backCard.apiResult.readIDCardBackground"),t=O(a);r=r||t;let n={backCard:{apiResult:{cardInfo:{...a?.data,message:t?i(s,"error"):i(s,"success")}}}};C(e.current,n)}}return r},j=(e,a)=>{for(let t in e)a.includes(t)?delete e[t]:"object"==typeof e[t]&&j(e[t],a);return e},B=e=>j(e.current,["message","step","restartSession","detectIDTamperingBackground","readIDCardBackground"]),K=(e,a,t)=>{let r=[];if(i(e,"frontCard.apiResult.sanityResult")&&"good"!==i(e,"frontCard.apiResult.sanityResult.card_sanity.verdict","")){let a=i(e,"frontCard.apiResult.sanityResult.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_FRONT_CARD_SANITY[t])}if(i(e,"frontCard.apiResult.tamperingInfo")&&"good"!==i(e,"frontCard.apiResult.tamperingInfo.card_tampering.verdict","")){let a=i(e,"frontCard.apiResult.tamperingInfo.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_FRONT_CARD_TAMPERING[t])}if(i(e,"frontCard.apiResult.cardInfo")&&"success"!==i(e,"frontCard.apiResult.cardInfo.status","")){let a=i(e,"frontCard.apiResult.cardInfo.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_FRONT_CARD_OCR[t])}if(i(e,"backCard.apiResult.sanityResult")&&"good"!==i(e,"backCard.apiResult.sanityResult.card_sanity.verdict","")){let a=i(e,"backCard.apiResult.sanityResult.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_BACK_CARD_SANITY[t])}if(i(e,"backCard.apiResult.tamperingInfo")&&"good"!==i(e,"backCard.apiResult.tamperingInfo.card_tampering.verdict","")){let a=i(e,"backCard.apiResult.tamperingInfo.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_BACK_CARD_TAMPERING[t])}if(i(e,"backCard.apiResult.cardInfo")&&"success"!==i(e,"backCard.apiResult.cardInfo.status","")){let a=i(e,"backCard.apiResult.cardInfo.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_BACK_CARD_OCR[t])}if(i(e,"faceLiveness.verifyFacePortraitResult")&&"good"!==i(e,"faceLiveness.verifyFacePortraitResult.portrait_sanity.verdict","")){let a=i(e,"faceLiveness.verifyFacePortraitResult.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_FACE_SANITY[t])}if(i(e,"faceLiveness.verifyFaceLivenessResult")&&!i(e,"faceLiveness.verifyFaceLivenessResult.is_live",!1)){let a=i(e,"faceLiveness.verifyFaceLivenessResult.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_FACE_LIVENESS[t])}if(i(e,"compareFaces",null)&&N(i(e,"compareFaces"))){let a=i(e,"compareFaces.message",null);a?.[t]?r.push(a[t]):r.push(b.FAIL_COMPARE_FACE[t])}return{retryAt:a,results:r}},M=e=>{let a=i(e,"frontCard.apiResult.cardInfo.card_information",[]).find(e=>"id"===e.field);return i(a,"value","")},{Errors:Y,IDCardSide:G,FaceDirection:U,Mode:V}=l,q=[],H=()=>{q=[]},J=()=>new Promise(e=>{let a=setInterval(()=>{q.every(e=>e.id)&&(e(),clearInterval(a))},200)});async function W({hasBackCardStep:e,stepResult:a,frontCardId:t,qrImageId:r,sdkAdapter:s,onError:n,refEkycResult:l,handleFailCardTamperingOCRBackground:d,services:o}){let u,f,p,m;if(!(s instanceof c))return a;let{cardSide:g,cardType:y,recordedVideos:_,qrScannedResult:C,image:h}=a;if(g===G.BACK&&!t)return n(Y.missing_front_id_card),!1;let{uploadImage:R,uploadFiles:v,requestVerifyIDCard:I,detectIDTampering:F,readIDCard:T}=s,A=[R({file:h?.blob,label:`id_card.${y}.${g}`})];C&&C.image&&C.result&&A.push(R({file:C?.image?.blob,label:"qr_code",rawString:C?.result}));let[k,S]=await Promise.all(A);if(k.errors)return n({...Y.upload_error,details:k.reason}),!1;let b=k?.data?.image_id,L=S?.data?.image_data||r;g===G.FRONT?u=b:(u=t,f=b);let w={qrImageId:L,frontCardId:u,backCardId:f};if(i(o,"card_sanity")){let{result:e,message:t}=await I({card_type:y,image1:{id:g===G.FRONT?u:f}});if("good"!==i(e,"data.card_sanity.verdict","")||e.errors)return{...a,apiResult:{...w,sanityResult:{...e?.data,message:i(t,"error")}}};w.sanityResult={...e?.data,message:i(t,"success")}}if(g===G.BACK&&"function"==typeof d&&await P(l,o,e))return d(),{...a,apiResult:w};if(i(o,"card_tampering")){let e={card_type:y,image:{id:u},...g===G.FRONT?{image2:void 0,level:"1"}:{image2:{id:f},level:"concurrent"}};if(L&&(e.qr1_images=[{id:L}]),_&&Array.isArray(_)&&_.length>0){let a=_.filter(e=>null!==e.id),t=_.filter(e=>null===e.id&&e.frames.length>0),r=await Promise.all(t.map(e=>v({frames:e.frames})));e.videos=[...a.map(e=>({id:e.id})),...r.map(e=>({id:e.data.file_id}))]}p=F(e)}if(i(o,"card_ocr")){let e={card_type:y,image1:g===G.FRONT?{id:u}:{id:f}};L&&(e.qr1_images={id:L}),m=T(e)}return{...a,apiResult:{...w,detectIDTamperingBackground:p,readIDCardBackground:m}}}async function z({stepResult:e,sdkAdapter:a,services:t}){let{uploadImage:r,uploadFiles:s,verifyFaceLiveness:n,requestVerifyPortrait:c}=a,l=i(e,"frontalFaces",[]).map(e=>r({file:e,label:"portrait",metadata:JSON.stringify({gesture:U.FRONTAL},{"Content-Type":"multipart/form-data"})})),d=i(e,"steps",[]).map(e=>r({file:e?.image?.blob,label:"portrait",metadata:JSON.stringify({gesture:e?.name})},{"Content-Type":"multipart/form-data"})),o=await Promise.all([...l,...d]),u=o.slice(0,l.length),f=o.slice(-d.length);await J();let{video:p}=e;p&&await s({file:p,label:"video"},{"Content-Type":"multipart/form-data"});let m={...e,frontalFaces:u.map((a,t)=>({id:a?.data?.image_id,blob:e?.frontalFaces?.[t]})),steps:f.map((a,t)=>({image:{id:a?.data?.image_id,blob:e?.steps?.[t]?.image?.blob},name:e?.steps?.[t]?.name})),capturedFrames:e?.capturedFrames};if(i(t,"face_sanity")){let{result:e,message:a}=await c({image:{id:u?.[u.length-1]?.data?.image_id}});if("good"!==i(e,"data.portrait_sanity.verdict","")||i(e,"errors"))return{...m,verifyFacePortraitResult:{...i(e,"data",i(e,"error",{})),message:i(a,"error")}};m.verifyFacePortraitResult={...e?.data,message:i(a,"success")}}if(i(t,"face_liveness")){let{result:a,message:t}=await n({images:u.map(e=>({id:e?.data?.image_id})),gesture_images:f.map((a,t)=>({gesture:e?.steps?.[t]?.name,images:[{id:a?.data?.image_id}]})),videos:q}),r=i(a,"data.is_live");m.verifyFaceLivenessResult={...i(a,"data",i(a,"error",{})),message:r?i(t,"success"):i(t,"error")}}return m}async function $({stepResult:e,sdkAdapter:a,services:t}){let{uploadImage:r,uploadFiles:s,verifyFaceLiveness:n,requestVerifyPortrait:c}=a,l=i(e,"frontalFaces",[]).map(e=>r({file:e,label:"portrait",metadata:JSON.stringify({gesture:U.FRONTAL},{"Content-Type":"multipart/form-data"})})),d=await Promise.all(l);await J();let{video:o}=e;o&&Array.isArray(o)&&o.length>0&&await s({file:o[0],label:"video"},{"Content-Type":"multipart/form-data"});let u={...e,images:d.map((a,t)=>({id:a?.data?.image_id,blob:e?.frontalFaces?.[t]})),frontalFaces:d.map((a,t)=>({id:a?.data?.image_id,blob:e?.frontalFaces?.[t]})),capturedFrames:e?.capturedFrames};if(i(t,"face_sanity")){let{result:e,message:a}=await c({image:{id:d?.[d.length-1]?.data?.image_id}});if("good"!==i(e,"data.portrait_sanity.verdict","")||i(e,"errors"))return{...u,verifyFacePortraitResult:{...i(e,"data",i(e,"error",{})),message:i(a,"error")}};u.verifyFacePortraitResult={...e?.data,message:i(a,"success")}}if(i(t,"face_liveness")){let{result:e,message:a}=await n({images:d.map(e=>({id:e?.data?.image_id})),videos:q}),t=i(e,"data.is_live");u.verifyFaceLivenessResult={...i(e,"data",i(e,"error",{})),message:t?i(a,"success"):i(a,"error")}}return u}async function Q({stepResult:e,sdkAdapter:a,services:t}){let{uploadImage:r,uploadFiles:s,verifyFaceLiveness:n,requestVerifyPortrait:c}=a,l=i(e,"frontalFaces",[]).map(e=>r({file:e,label:"portrait",metadata:JSON.stringify({gesture:U.FRONTAL},{"Content-Type":"multipart/form-data"})})),d=await Promise.all(l);await J();let{video:o}=e;o&&Array.isArray(o)&&o.length>0&&await s({file:o[0],label:"video"},{"Content-Type":"multipart/form-data"});let u={...e,frontalFaces:d.map((a,t)=>({id:a?.data?.image_id,blob:e?.frontalFaces?.[t]})),capturedFrames:e?.capturedFrames};if(i(t,"face_sanity")){let{result:e,message:a}=await c({image:{id:d?.[d.length-1]?.data?.image_id}});if("good"!==i(e,"data.portrait_sanity.verdict","")||i(e,"errors"))return{...u,verifyFacePortraitResult:{...i(e,"data",i(e,"error",{})),message:i(a,"error")}};u.verifyFacePortraitResult={...e?.data,message:i(a,"success")}}if(i(t,"face_liveness")){let{result:e,message:a}=await n({images:d.map(e=>({id:e?.data?.image_id})),videos:q}),t=i(e,"data.is_live");u.verifyFaceLivenessResult={...i(e,"data",i(e,"error",{})),message:t?i(a,"success"):i(a,"error")}}return u}async function X({mode:e,stepResult:a,sdkAdapter:t,services:r}){return e===V.ACTIVE?z({stepResult:a,sdkAdapter:t,services:r}):e===V.PASSIVE?$({stepResult:a,sdkAdapter:t,services:r}):e.includes("flash")?Q({stepResult:a,sdkAdapter:t,services:r}):void 0}async function Z(e){let{livenessMode:a,sdkAdapter:t,onError:r,services:s,hasBackCardStep:n,hasIDFlow:l,...d}=e;if(!(t instanceof c))return d;let{compareFaces:o,searchFaces:u,indexFaces:f}=t,p=i(e,"frontCard.apiResult.frontCardId",null),m=null,g=i(e,"faceLiveness.frontalFaces",[]);m=g[g.length-1]?.id;let y=p&&m,_={...d};if(i(s,"compare_faces")&&l&&y){let{result:e,message:a}=await o({image1:{id:p},image2:{id:m}});if(N(i(e,"data")))return{..._,step:T,compareFaces:{...i(e,"data",i(e,"error",{})),message:i(a,"error")}};_={..._,compareFaces:{...e?.data,message:i(a,"success")}}}if(i(s,"search_face")){let{result:e,message:a}=await u({image:{id:m}}),t=i(e,"data.faces",null);if(Array.isArray(t)&&t.length)return{..._,searchFaces:{...i(e,"data",i(e,"error",{})),message:i(a,"error")}};_={..._,searchFaces:{...e?.data,message:i(a,"success")}}}if(i(s,"index_face")){let a=M(e),{result:t}=await f({image:{id:m,...a?{metadata:JSON.stringify({id:M(e)})}:{}}});_={..._,indexFaces:t?.data}}return _}let ee=d.div`
2
- display: flex;
3
- justify-content: space-between;
4
- align-items: center;
5
- flex-direction: column;
6
- padding: 10px;
7
- `,ea=d.button`
8
- margin-top: 20px;
9
- width: 100%;
10
- max-width: 160px;
11
- height: 50px;
12
- background-color: #0276f1;
13
- border: 0;
14
- outline: none;
15
- border-radius: 0.25rem;
16
- color: #fff;
17
- font-weight: 400;
18
- cursor: pointer;
19
- font-size: 1rem;
20
- `,et=d.div`
21
- margin: 20px 0;
22
- width: 100%;
23
- display: flex;
24
- justify-content: space-evenly;
25
- gap: 10px;
26
- `,er=({onRetry:e,onStop:t,children:s})=>{let{lang:n}=a.useSDKSettings();return r.jsxs(ee,{children:[s,r.jsxs(et,{children:[r.jsx(ea,{onClick:t,children:b.STOP_BUTTON[n]}),r.jsx(ea,{onClick:e,children:b.RETRY_BUTTON[n]})]})]})};er.propTypes={children:e.node,onRetry:e.func,onStop:e.func},er.defaultProps={children:null,onRetry:()=>{},onStop:()=>{}};let es=d.div`
27
- display: flex;
28
- justify-content: space-between;
29
- align-items: center;
30
- flex-direction: column;
31
- padding: 10px;
32
- `,en=d.button`
33
- margin-top: 20px;
34
- width: 100%;
35
- max-width: 160px;
36
- height: 50px;
37
- background-color: #0276f1;
38
- border: 0;
39
- outline: none;
40
- border-radius: 0.25rem;
41
- color: #fff;
42
- font-weight: 400;
43
- cursor: pointer;
44
- font-size: 1rem;
45
- `,ei=({onStop:e,children:t})=>{let{lang:s}=a.useSDKSettings();return r.jsxs(es,{children:[t,r.jsx(en,{onClick:e,children:b.STOP_BUTTON[s]})]})};ei.propTypes={children:e.node,onStop:e.func},ei.defaultProps={children:null,onStop:()=>{}};let ec="FAIL_CARD_SANITY",el="FAIL_FACE_SANITY",ed="FAIL_LIVENESS_TAMPERING_OCR_RETRY_ID",eo="FAIL_LIVENESS_TAMPERING_OCR_RETRY_FACE",eu="FAIL_COMPARE_FACES",ef="RESET_ACTIONS",ep="SET_STEP",em={currentStep:null,readIdCardKey:0,faceLivenessKey:0,cardSanityRetries:-1,compareFacesRetries:-1,portraitSanityRetries:-1,faceLivenessCardTamperingOCRRetries:-1};function eg(e,a){switch(a.type){case ec:return{...e,cardSanityRetries:e.cardSanityRetries+1};case el:return{...e,portraitSanityRetries:e.portraitSanityRetries+1,faceLivenessKey:e.faceLivenessKey+1};case ed:return{...e,readIdCardKey:e.readIdCardKey+1,faceLivenessCardTamperingOCRRetries:e.faceLivenessCardTamperingOCRRetries+1,currentStep:T};case eo:return{...e,faceLivenessKey:e.faceLivenessKey+1,faceLivenessCardTamperingOCRRetries:e.faceLivenessCardTamperingOCRRetries+1,currentStep:A};case eu:return{...e,compareFacesRetries:e.compareFacesRetries+1,readIdCardKey:e.readIdCardKey+1,faceLivenessKey:e.faceLivenessKey+1,currentStep:T};case ep:return{...e,currentStep:a.payload};case ef:return em;default:return e}}let{IDCardSide:ey,Errors:e_}=l,eC={padding:50,paddingBottom:20},eh=({content:e,lang:a,isStopPopup:t=!1})=>{var s,n;let i;return r.jsxs(r.Fragment,{children:[r.jsx("div",{style:eC,children:e.results.map((e,a)=>r.jsx("div",{children:e},a))}),t?null:r.jsx("div",{style:{padding:50,paddingBottom:0,color:"red"},children:(s=a,i=Array.isArray(n=e.retryAt)?n.map(e=>b[e][s]).join(", "):b[n][s],R(b.FAIL_STEP[s])({step:i}))})]})};function eR(e){let{lang:s}=a.useSDKSettings(),{onDoneEkyc:n,readIDCardProps:c,livenessDetectionProps:d,onError:u,onClose:f,sdkAdapter:p,flow:m,customTheme:g}=e,{clientSettings:y}=p,[_,R]=t.useState(!1),[b,L]=t.useState(!1),[D,O]=t.useState({}),[N,j]=t.useState(!1),[M,Y]=t.useReducer(eg,em),{currentStep:G,readIdCardKey:U,faceLivenessKey:V,cardSanityRetries:J,compareFacesRetries:z,portraitSanityRetries:$,faceLivenessCardTamperingOCRRetries:Q}=M,ee=t.useRef(S),ea=t.useRef(),et=t.useRef(),es=t.useRef(),en=t.useRef(""),ef=t.useRef(""),{cardSanityMaxRetries:eC,portraitSanityMaxRetries:eR,faceLivenessCardTamperingOCRMaxRetries:ev,compareFacesMaxRetries:eI,services:eF}=t.useMemo(()=>(e=>{let a=i(e,"data.settings.sdk_settings.sdk_adapter.services",null),t=i(e,"data.settings.sdk_settings.sdk_adapter.retries",null),r=C({},F,a),{id_card_sanity:s,portrait_sanity:n,face_liveness_with_card_tampering_ocr:c,compare_faces:l}=C({},I,t);return{cardSanityMaxRetries:s,portraitSanityMaxRetries:n,faceLivenessCardTamperingOCRMaxRetries:c,compareFacesMaxRetries:l,services:r}})(D),[D]),eT=t.useMemo(()=>{let e;return(m===l.EkycFlow.FULL_FLOW||m===l.EkycFlow.ID_CARD)&&(i(e=eF,"card_sanity",!1)||i(e,"card_tampering",!1)||i(e,"card_ocr",!1))},[m,eF]),eA=t.useMemo(()=>{let e;return(m===l.EkycFlow.FULL_FLOW||m===l.EkycFlow.FACE)&&(i(e=eF,"face_sanity",!1)||i(e,"face_liveness",!1)||i(e,"compare_faces",!1)||i(e,"search_face",!1)||i(e,"index_face",!1))},[m,eF]),ek=i(D,"data.card_types[0].has_back_side",!0),eS=2===i(c,"steps",[]).length||ek;t.useEffect(()=>{(async function e(){O(await y())})()},[y]),t.useEffect(()=>{eT?Y({type:ep,payload:T}):Y({type:ep,payload:A})},[eT]),t.useEffect(()=>()=>{Y({type:"RESET_ACTIONS"}),R(!1),L(!1),ee.current=S,ea.current=null,et.current=null},[]);let eb=t.useCallback(()=>{J+1>=eC?L(!0):(et.current=K(ee.current,T,s),ea.current=()=>{Y({type:ec}),j(!1),"function"==typeof es.current&&es.current()},R(!0))},[eC,J,s]),eL=t.useCallback(()=>{Q+1>=ev?L(!0):(et.current=K(ee.current,T,s),ea.current=()=>{Y({type:ed}),j(!1)},R(!0))},[ev,Q,s]),ew=t.useCallback(()=>{$+1>=eR?L(!0):(et.current=K(ee.current,A,s),ea.current=()=>{Y({type:el}),j(!1)},R(!0))},[eR,$,s]),eE=t.useCallback((e,a)=>{Q+1>=ev?L(!0):(et.current=K(ee.current,e,s),e===T?ea.current=()=>{Y({type:ed}),a||(ee.current=S)}:ea.current=()=>{Y({type:eo})},R(!0))},[ev,Q,s]),eD=t.useCallback(()=>{z+1>=eI?L(!0):(et.current=K(ee.current,[T,A],s),ea.current=()=>{Y({type:eu}),ee.current=S,j(!1)},R(!0))},[eI,z,s]),eO=t.useCallback(async e=>{if(eT&&await x(ee,eF,eS))return T;return!!e&&A},[eT,eF,eS]),eN=t.useCallback(async()=>{try{let e=await Z({...ee.current,livenessMode:d.mode,sdkAdapter:p,onError:u,services:eF,hasBackCardStep:eS,hasIDFlow:eT});if(e)if(ee.current={...ee.current,...e},i(e,"step",null))eD();else{let e=B(ee);n(e);return}}catch(e){u({...e_.api_call_error,details:e})}},[eS,d.mode,p,u,eF,eD,n,eT]),eP=t.useCallback(async({stepResult:e})=>{if(i(e,"cardSide")===ey.FRONT){let a=await W({stepResult:e,frontCardId:en.current,qrImageId:ef.current,onError:u,sdkAdapter:p,services:eF});if(!a)return void j(!1);en.current=a.apiResult.frontCardId,ef.current=a.apiResult.qrImageId;if(ee.current={...ee.current,frontCard:a},E(a,eF))return eb(),{retryAt:ey.FRONT};if(!eS)if(eA)Y({type:ep,payload:A});else{if(await x(ee,eF,eS))return void eL();n(B(ee))}}else if(i(e,"cardSide")===ey.BACK)if(await P(ee,eF,eS))eL();else{let a=await W({hasBackCardStep:eS,stepResult:e,frontCardId:en.current,qrImageId:ef.current,sdkAdapter:p,onError:u,refEkycResult:ee,services:eF,handleFailCardTamperingOCRBackground:eL});if(ee.current={...ee.current,backCard:a},E(a,eF))return eb(),{retryAt:ey.BACK};if(eA)Y({type:ep,payload:A});else{if(await x(ee,eF,eS))return void eL();n(B(ee))}}},[eb,eL,eS,eA,n,u,p,eF]),ex=t.useCallback(async({stepResult:e})=>{if(eT&&await x(ee,eF,eS)){eL(),j(!1);return}let a=await X({mode:i(d,"mode",l.Mode.ACTIVE),stepResult:e,sdkAdapter:p,services:eF});if(ee.current={...ee.current,faceLiveness:a},((e,a)=>{if(!i(a,"face_sanity"))return!1;let t=i(e,"verifyFacePortraitResult.status",""),r=i(e,"verifyFacePortraitResult.portrait_sanity.verdict","");return"success"!==t||"good"!==r})(a,eF))ew();else{let e=await eO(w(a,eF));e?eE(e,!w(a)):await eN()}},[eN,eL,ew,eE,eO,eS,eT,d,p,eF]),ej=t.useCallback(async e=>{let a;return"function"==typeof i(e,"restartSession")&&(es.current=e.restartSession),j(!0),G===T?a=await eP({stepResult:e}):G===A&&(a=await ex({stepResult:e})),j(!1),a},[G,eP,ex]),eB=t.useCallback(()=>{R(!1),ea.current()},[]),eK=t.useCallback(()=>{R(!1),L(!1),n(B(ee)),Y({type:ep,payload:k})},[n]);return r.jsxs(r.Fragment,{children:[G===T?t.createElement(v,{...e,...c,onStepDone:ej,onError:u,onClose:f,clientSettings:D,key:U,customTheme:g}):null,G===A?t.createElement(h,{...e,...d,onFramesCaptured:e=>((e,a)=>{let{uploadFiles:t}=a;t({frames:e,metadata:JSON.stringify({type:"selfie"})},{"Content-Type":"application/json"}).then(e=>{e&&e.data&&e.data.file_id?q.push({id:e.data.file_id}):q.push({id:-1})})})(e,p),onReset:H,onLivenessDetectionDone:ej,onError:u,onClose:f,clientSettings:D,key:V,isLoading:N,customTheme:g}):null,r.jsxs(o,{open:_||b,children:[_&&r.jsx(er,{onRetry:eB,onStop:eK,children:r.jsx(eh,{content:et.current,lang:s})}),b&&r.jsx(ei,{onStop:eK,children:r.jsx(eh,{content:et.current,lang:s,isStopPopup:!0})})]})]})}function ev(e){let{logCredentials:a,ekycFlowComponent:t}=e;return r.jsx(u,{children:r.jsx(n.SDKTrackingProvider,{value:{tracking:{...a}},children:r.jsx(t,{...e})})})}eR.propTypes={sdkAdapter:e.shape({}),onDoneEkyc:e.func,onError:e.func,onClose:e.func,readIDCardProps:e.shape({}),livenessDetectionProps:e.shape({}),flow:e.oneOf([l.EkycFlow.FULL_FLOW,l.EkycFlow.ID_CARD,l.EkycFlow.FACE]),customTheme:e.shape({})},eR.defaultProps={sdkAdapter:null,onDoneEkyc:()=>{},onError:()=>{},onClose:()=>{},readIDCardProps:{},livenessDetectionProps:{},flow:l.EkycFlow.FULL_FLOW,customTheme:{}},ev.propTypes={logCredentials:e.shape({}),clientSettings:e.shape({}),ekycFlowComponent:e.func},ev.defaultProps={logCredentials:void 0,clientSettings:void 0,ekycFlowComponent:eR};export{ev as default};
@@ -1 +0,0 @@
1
- let e;import{d as t,r as s,j as n,a as i,aa as l,c as r,a9 as a,ab as o,o as c,u as u,g as g,p as d,s as S,e as h,Y as v}from"./chunk-d315aa24.js";import{e as f,d as j,c as p,D as b,S as x}from"./chunk-0da61929.js";let k=s.createContext({}),y={},C=({children:e,enableGetClientSettings:i,clientSettings:l,apiCredentials:r,flowId:a})=>{let{apiClient:o}=t.useApiClient({apiCredentials:r}),[c,u]=s.useState({}),[g,d]=s.useState(!1);s.useEffect(()=>{i?async function e(){try{if(!o||"function"!=typeof o.clientSettings)return;let e=await o.clientSettings({flow_id:a});u(e)}catch(e){console.error(e)}finally{d(!0)}}():d(!0)},[i,o,a]);let S=y;return(l&&Object.keys(l).length>0?S=l:i&&(S=c),g)?n.jsx(k.Provider,{value:S,children:e}):null},m=()=>s.useContext(k),_=({children:e,onError:t})=>{let s=m();return n.jsx(i.LicenseProvider,{clientSettings:s,onError:t,children:e})},E=({children:e,onError:t,type:s})=>{let i=m();return n.jsx(l.Provider,{clientSettings:i,type:s,onError:t,children:e})},D={},P=({children:e,customTexts:t=D})=>{let s=m(),{lang:i,uiSettings:l}=r.useSDKSettings(),c=a({customTexts:t,clientSettings:s,lang:i,uiSettings:l});return n.jsx(o.SDKLocaleProvider,{value:c,children:e})},L={},B=({children:e,customTheme:t=L})=>{let s=m(),{uiSettings:i,themeVersion:l}=r.useSDKSettings(),a=f({customTheme:t,clientSettings:s,themeVersion:l,uiSettings:i,defaultThemes:j});return n.jsx(c,{theme:a,children:e})},z=v.lazy(()=>import("./chunk-dc7036ac.js")),w=v.lazy(()=>import("./chunk-00ef2df8.js")),A=v.lazy(()=>import("./chunk-9dfcc42f.js")),K=v.lazy(()=>import("./chunk-8d117718.js")),I=v.lazy(()=>import("./chunk-9778c61e.js")),V=v.lazy(()=>import("./chunk-460be0ec.js"));var T=(e=e=>{var t,i,l;let a,{logCredentials:o={enable:!1},livenessComponent:c,customTheme:v={},customTexts:f,...j}=e,{mode:k,flowId:y,onError:C,onClose:D,debug:L,onLivenessDetectionDone:T}=j,W=m(),{billingSettings:M,enableBilling:O,themeVersion:G}=r.useSDKSettings(),F=u.getWebSetting(W,"data.settings.sdk_settings.billing_settings.billing_config"),{submitBilling:U}=g({enable:O,onError:C,billingSettings:M??{json:F??{}},billingUrl:u.getWebSetting(W,"data.settings.sdk_settings.billing_settings.url")}),Y=d.buildBillingInput(e),$=p(),q="face_authen"===$?S.BillingService.faceAuth:S.BillingService.selfie,H=s.useCallback(async(...e)=>{if("face_authen"===$)return void await T(...e);try{if(!await U({service:q,input:Y,output:{...d.buildBillingOutput(e?.[0]||{}),sdkStatus:S.BillingStatus.success}}))return}catch(e){console.error(e)}await T(...e)},[Y,q,$,T,U]),J=s.useCallback(e=>{S.ErrorsWithoutBilling.includes(e.code)?C(e):(U({service:q,input:Y,output:{error:e,sdkStatus:S.BillingStatus.fail}}),C&&C(e))},[U,q,Y,C]),N=s.useCallback(()=>{U({service:q,input:Y,output:{sdkStatus:S.BillingStatus.cancel}}),D&&D()},[U,q,Y,D]),Q=(t=k,i=c,l=G,a=K,t===S.Mode.ACTIVE&&(a=i?.ActiveLiveness??("v1"===l?I:K)),t===S.Mode.PASSIVE_V2&&(a=i?.PassiveLivenessV2??A),t===S.Mode.PASSIVE&&(a=i?.PassiveLiveness??("v1"===l?V:w)),"string"==typeof t&&t.startsWith("flash")&&(a=i?.FlashLiveness??z),a);return n.jsx(b,{debug:L,children:n.jsx(x,{onDone:T,onError:J,onClose:N,children:n.jsx(P,{customTexts:f,children:n.jsx(E,{onError:J,type:"face_authen"===y?"face_auth":"liveness",children:n.jsx(_,{onError:C,children:n.jsx(B,{customTheme:v,children:n.jsx(h.SDKTrackingProvider,{value:{tracking:{...o}},children:n.jsx(s.Suspense,{fallback:null,children:n.jsx(Q,{...j,onLivenessDetectionDone:H})})})})})})})})})},function(t){let{apiCheck:s,apiCredentials:i,serviceSettings:l,flowId:r,clientSettings:a}=t,o=s&&(l?.enableGetClientSettings??!0);return n.jsx(C,{enableGetClientSettings:o,clientSettings:a,apiCredentials:i,flowId:r,children:n.jsx(e,{...t})})}),W=Object.freeze({__proto__:null,default:T});export{C as C,T as L,P as S,W as i,m as u};