@ekyc_qoobiss/qbs-ect-cmp 3.6.24 → 3.6.26

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.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-41696e0e.js');
6
- const store = require('./store-4bf93725.js');
6
+ const store = require('./store-f1a0f55c.js');
7
7
 
8
8
  var OrderStatuses;
9
9
  (function (OrderStatuses) {
@@ -2161,19 +2161,19 @@ class FaceML5Detector {
2161
2161
  if (this.validFaceFound || this.validFacePose) {
2162
2162
  if (this.start == null)
2163
2163
  this.start = Date.now();
2164
- if (Date.now() > this.start + 500) {
2164
+ if (Date.now() > this.start + 3000) {
2165
2165
  this.continue = false;
2166
2166
  this.stream.verificationReady();
2167
2167
  }
2168
2168
  }
2169
- if (Date.now() - this.initTime >= this.MAX_DETECTION) {
2170
- this.continue = false;
2171
- this.stream.timeElapsed();
2172
- }
2173
- if (this.presentedFacePose != null && !this.validFacePose) {
2169
+ else if (Date.now() - this.initTime >= this.MAX_DETECTION) {
2174
2170
  this.continue = false;
2175
2171
  this.stream.timeElapsed();
2176
2172
  }
2173
+ // if (this.presentedFacePose != null && !this.validFacePose) {
2174
+ // this.continue = false;
2175
+ // this.stream.timeElapsed();
2176
+ // }
2177
2177
  if (this.continue)
2178
2178
  this.ml5.faceapi.detect(this.videoElement, this.gotResults.bind(this));
2179
2179
  }
@@ -2193,8 +2193,7 @@ class FaceML5Detector {
2193
2193
  this.validFaceFound = true;
2194
2194
  this.stream.autoCapturing();
2195
2195
  // this.frontFace = new FaceLandmarks(results[0], this.width, this.height);
2196
- await this.drawFrame('green');
2197
- await delay(store.GlobalValues.VideoLenght);
2196
+ await this.drawFrame('green', true);
2198
2197
  }
2199
2198
  }
2200
2199
  }
@@ -2278,59 +2277,12 @@ class FaceML5Detector {
2278
2277
  this.presentedFacePose = FacePose.LookLeft;
2279
2278
  if (face.nose.x < ff.nose.x - ff.eyesDistance() * 0.5)
2280
2279
  this.presentedFacePose = FacePose.LookRight;
2281
- /*
2282
- if (
2283
- face.leftEyeNoseDistanceX() < ff.leftEyeNoseDistanceX() * 0.6 &&
2284
- face.rightEyeNoseDistanceX() > ff.rightEyeNoseDistanceX() * 1.2 &&
2285
- face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
2286
- face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
2287
- face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
2288
- face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
2289
- ) {
2290
- this.presentedFacePose = FacePose.LookLeft;
2291
- } else if (
2292
- face.rightEyeNoseDistanceX() < ff.rightEyeNoseDistanceX() * 0.6 &&
2293
- face.leftEyeNoseDistanceX() > ff.leftEyeNoseDistanceX() * 1.2 &&
2294
- face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
2295
- face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
2296
- face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
2297
- face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
2298
- ) {
2299
- this.presentedFacePose = FacePose.LookRight;
2300
- } else if (face.eyesNoseDistance() < ff.eyesNoseDistance() * 0.45) {
2301
- this.presentedFacePose = FacePose.LookUp;
2302
- } else if (face.leftEyeEyeBrowDistance() < ff.leftEyeEyeBrowDistance() * 0.8 && face.rightEyeEyeBrowDistance() < ff.rightEyeEyeBrowDistance() * 0.8) {
2303
- this.presentedFacePose = FacePose.LookDown;
2304
- // } else if (face.eyesLevel() >= this.frontFace.eyesLevel() + this.height * 0.05) {
2305
- // this.presentedFacePose = FacePose.TiltLeft;
2306
- // } else if (face.eyesLevel() <= this.frontFace.eyesLevel() - this.height * 0.05) {
2307
- // this.presentedFacePose = FacePose.TiltRight;
2308
- }
2309
- */
2310
- // if (this.presentedFacePose != null && this.presentedFacePose == this.requestedFacePose) {
2311
- // this.validFacePose = true;
2312
- // await this.drawFrame('green', true);
2313
- // this.validFaceFoundAgain = true;
2314
- // //this.stream.changeFacePose();
2315
- // }
2316
2280
  if (this.stream.facePose !== null) {
2317
2281
  await delay(3000);
2318
2282
  this.validFacePose = true;
2319
2283
  await this.drawFrame('green', true);
2320
2284
  }
2321
2285
  }
2322
- // //check if face is centered again
2323
- // if (this.validFacePose && this.requestedFacePose != null) {
2324
- // if (
2325
- // face.leftEyeNoseDistanceX() < face.rightEyeNoseDistanceX() * 1.2 &&
2326
- // face.leftEyeNoseDistanceX() > face.rightEyeNoseDistanceX() * 0.8 &&
2327
- // Math.abs(face.eyesLevel()) < this.height * 0.1
2328
- // ) {
2329
- // this.validFaceFoundAgain = true;
2330
- // this.stream.stopAnimation();
2331
- // this.drawFrame('green', true);
2332
- // }
2333
- // }
2334
2286
  }
2335
2287
  }
2336
2288
 
@@ -5830,7 +5782,7 @@ function v4(options, buf, offset) {
5830
5782
  }
5831
5783
 
5832
5784
  const name = "@ekyc_qoobiss/qbs-ect-cmp";
5833
- const version$1 = "3.6.24";
5785
+ const version$1 = "3.6.26";
5834
5786
  const description = "Person Identification Component";
5835
5787
  const main = "./dist/index.cjs.js";
5836
5788
  const module$1 = "./dist/index.js";
@@ -9813,6 +9765,7 @@ const UserLiveness = class {
9813
9765
  index.registerInstance(this, hostRef);
9814
9766
  this.apiErrorEvent = index.createEvent(this, "apiError", 7);
9815
9767
  this.recordingResultCount = 0;
9768
+ this.recordingRetryCount = 0;
9816
9769
  this.showError = undefined;
9817
9770
  this.captureStep = undefined;
9818
9771
  this.flow = undefined;
@@ -9885,6 +9838,7 @@ const UserLiveness = class {
9885
9838
  this.recordingResultCount++;
9886
9839
  return;
9887
9840
  }
9841
+ this.recordingResultCount = 0;
9888
9842
  if (selfieRecording.size == 0) {
9889
9843
  await this.baseComponent.apiCall.AddLog({ message: 'Empty recording', blobData: selfieRecording }, getLogMessage());
9890
9844
  this.triggerErrorFlow();
@@ -9896,15 +9850,18 @@ const UserLiveness = class {
9896
9850
  let uploadRec = new File([selfieRecording], this.flow.front.recName + mimeType.extension, { type: mimeType.type });
9897
9851
  this.flow.front.recordingDone = await this.uploadRecording(uploadRec, this.flow.front.recType);
9898
9852
  }
9899
- if (this.captureStep == SelfieFlowStatus.Gesture) {
9853
+ else if (this.captureStep == SelfieFlowStatus.Gesture) {
9900
9854
  let uploadRec = new File([selfieRecording], this.flow.tilt.recName + mimeType.extension, { type: mimeType.type });
9901
9855
  this.flow.tilt.recordingDone = await this.uploadRecording(uploadRec, this.flow.tilt.recType);
9902
9856
  }
9857
+ else {
9858
+ this.triggerErrorFlow();
9859
+ }
9903
9860
  await this.endFlow();
9904
9861
  }
9905
9862
  catch (e) {
9906
- if (store.state.recordingRetryCount < 3) {
9907
- store.state.recordingRetryCount++;
9863
+ if (this.recordingRetryCount < 3) {
9864
+ this.recordingRetryCount++;
9908
9865
  this.triggerErrorFlow();
9909
9866
  }
9910
9867
  else {
@@ -9946,7 +9903,12 @@ const UserLiveness = class {
9946
9903
  async endFlow() {
9947
9904
  if (this.captureStep == SelfieFlowStatus.Selfie) {
9948
9905
  if (this.flow.front.photoDone && this.flow.front.recordingDone) {
9949
- this.captureStep = SelfieFlowStatus.Gesture;
9906
+ if (store.state.hasSelfieGesture) {
9907
+ this.captureStep = SelfieFlowStatus.Gesture;
9908
+ }
9909
+ else {
9910
+ this.captureStep = SelfieFlowStatus.End;
9911
+ }
9950
9912
  }
9951
9913
  else {
9952
9914
  return;
@@ -9963,7 +9925,6 @@ const UserLiveness = class {
9963
9925
  if (this.captureStep != SelfieFlowStatus.End) {
9964
9926
  return;
9965
9927
  }
9966
- store.state.recordingRetryCount = 0;
9967
9928
  store.state.flowStatus = store.FlowStatus.COMPLETE;
9968
9929
  }
9969
9930
  render() {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-41696e0e.js');
6
- const store = require('./store-4bf93725.js');
6
+ const store = require('./store-f1a0f55c.js');
7
7
 
8
8
  const randomActionsCss = "";
9
9
 
@@ -371,7 +371,6 @@ const { state, onChange } = createStore({
371
371
  phoneNumber: '',
372
372
  apiBaseUrl: 'https://apiro.id-kyc.com',
373
373
  device: null,
374
- recordingRetryCount: 0,
375
374
  });
376
375
  onChange('environment', value => {
377
376
  state.debug = value == 'QA';
@@ -404,7 +403,6 @@ exports.ApiUrls = ApiUrls;
404
403
  exports.CameraErrorValues = CameraErrorValues;
405
404
  exports.CodeValidationValues = CodeValidationValues;
406
405
  exports.CompleteValues = CompleteValues;
407
- exports.GlobalValues = GlobalValues;
408
406
  exports.HowToValues = HowToValues;
409
407
  exports.IdCaptureValues = IdCaptureValues;
410
408
  exports.LandingValues = LandingValues;
@@ -9,6 +9,7 @@ import { CaptureUploadTypes, SelfieFlowStatus } from '../../../models/CaptureFlo
9
9
  export class UserLiveness {
10
10
  constructor() {
11
11
  this.recordingResultCount = 0;
12
+ this.recordingRetryCount = 0;
12
13
  this.showError = undefined;
13
14
  this.captureStep = undefined;
14
15
  this.flow = undefined;
@@ -81,6 +82,7 @@ export class UserLiveness {
81
82
  this.recordingResultCount++;
82
83
  return;
83
84
  }
85
+ this.recordingResultCount = 0;
84
86
  if (selfieRecording.size == 0) {
85
87
  await this.baseComponent.apiCall.AddLog({ message: 'Empty recording', blobData: selfieRecording }, getLogMessage());
86
88
  this.triggerErrorFlow();
@@ -92,15 +94,18 @@ export class UserLiveness {
92
94
  let uploadRec = new File([selfieRecording], this.flow.front.recName + mimeType.extension, { type: mimeType.type });
93
95
  this.flow.front.recordingDone = await this.uploadRecording(uploadRec, this.flow.front.recType);
94
96
  }
95
- if (this.captureStep == SelfieFlowStatus.Gesture) {
97
+ else if (this.captureStep == SelfieFlowStatus.Gesture) {
96
98
  let uploadRec = new File([selfieRecording], this.flow.tilt.recName + mimeType.extension, { type: mimeType.type });
97
99
  this.flow.tilt.recordingDone = await this.uploadRecording(uploadRec, this.flow.tilt.recType);
98
100
  }
101
+ else {
102
+ this.triggerErrorFlow();
103
+ }
99
104
  await this.endFlow();
100
105
  }
101
106
  catch (e) {
102
- if (store.recordingRetryCount < 3) {
103
- store.recordingRetryCount++;
107
+ if (this.recordingRetryCount < 3) {
108
+ this.recordingRetryCount++;
104
109
  this.triggerErrorFlow();
105
110
  }
106
111
  else {
@@ -142,7 +147,12 @@ export class UserLiveness {
142
147
  async endFlow() {
143
148
  if (this.captureStep == SelfieFlowStatus.Selfie) {
144
149
  if (this.flow.front.photoDone && this.flow.front.recordingDone) {
145
- this.captureStep = SelfieFlowStatus.Gesture;
150
+ if (store.hasSelfieGesture) {
151
+ this.captureStep = SelfieFlowStatus.Gesture;
152
+ }
153
+ else {
154
+ this.captureStep = SelfieFlowStatus.End;
155
+ }
146
156
  }
147
157
  else {
148
158
  return;
@@ -159,7 +169,6 @@ export class UserLiveness {
159
169
  if (this.captureStep != SelfieFlowStatus.End) {
160
170
  return;
161
171
  }
162
- store.recordingRetryCount = 0;
163
172
  store.flowStatus = FlowStatus.COMPLETE;
164
173
  }
165
174
  render() {
@@ -19,7 +19,6 @@ const { state, onChange } = createStore({
19
19
  phoneNumber: '',
20
20
  apiBaseUrl: 'https://apiro.id-kyc.com',
21
21
  device: null,
22
- recordingRetryCount: 0,
23
22
  });
24
23
  onChange('environment', value => {
25
24
  state.debug = value == 'QA';
@@ -6,7 +6,6 @@ import { FaceLandmarks } from '../FaceML5Detector/FacePose';
6
6
  import face_white_svg from '../../assets/canvas-masks/face_white.svg';
7
7
  // @ts-ignore
8
8
  import face_green_svg from '../../assets/canvas-masks/face_green.svg';
9
- import { GlobalValues } from '../../helpers/textValues';
10
9
  import store from '../../helpers/store';
11
10
  import { delay } from '../../utils/utils';
12
11
  import { VerificationMode } from '../../models/IVerificationMode';
@@ -57,19 +56,19 @@ export class FaceML5Detector {
57
56
  if (this.validFaceFound || this.validFacePose) {
58
57
  if (this.start == null)
59
58
  this.start = Date.now();
60
- if (Date.now() > this.start + 500) {
59
+ if (Date.now() > this.start + 3000) {
61
60
  this.continue = false;
62
61
  this.stream.verificationReady();
63
62
  }
64
63
  }
65
- if (Date.now() - this.initTime >= this.MAX_DETECTION) {
66
- this.continue = false;
67
- this.stream.timeElapsed();
68
- }
69
- if (this.presentedFacePose != null && !this.validFacePose) {
64
+ else if (Date.now() - this.initTime >= this.MAX_DETECTION) {
70
65
  this.continue = false;
71
66
  this.stream.timeElapsed();
72
67
  }
68
+ // if (this.presentedFacePose != null && !this.validFacePose) {
69
+ // this.continue = false;
70
+ // this.stream.timeElapsed();
71
+ // }
73
72
  if (this.continue)
74
73
  this.ml5.faceapi.detect(this.videoElement, this.gotResults.bind(this));
75
74
  }
@@ -89,8 +88,7 @@ export class FaceML5Detector {
89
88
  this.validFaceFound = true;
90
89
  this.stream.autoCapturing();
91
90
  // this.frontFace = new FaceLandmarks(results[0], this.width, this.height);
92
- await this.drawFrame('green');
93
- await delay(GlobalValues.VideoLenght);
91
+ await this.drawFrame('green', true);
94
92
  }
95
93
  }
96
94
  }
@@ -174,58 +172,11 @@ export class FaceML5Detector {
174
172
  this.presentedFacePose = FacePose.LookLeft;
175
173
  if (face.nose.x < ff.nose.x - ff.eyesDistance() * 0.5)
176
174
  this.presentedFacePose = FacePose.LookRight;
177
- /*
178
- if (
179
- face.leftEyeNoseDistanceX() < ff.leftEyeNoseDistanceX() * 0.6 &&
180
- face.rightEyeNoseDistanceX() > ff.rightEyeNoseDistanceX() * 1.2 &&
181
- face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
182
- face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
183
- face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
184
- face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
185
- ) {
186
- this.presentedFacePose = FacePose.LookLeft;
187
- } else if (
188
- face.rightEyeNoseDistanceX() < ff.rightEyeNoseDistanceX() * 0.6 &&
189
- face.leftEyeNoseDistanceX() > ff.leftEyeNoseDistanceX() * 1.2 &&
190
- face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
191
- face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
192
- face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
193
- face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
194
- ) {
195
- this.presentedFacePose = FacePose.LookRight;
196
- } else if (face.eyesNoseDistance() < ff.eyesNoseDistance() * 0.45) {
197
- this.presentedFacePose = FacePose.LookUp;
198
- } else if (face.leftEyeEyeBrowDistance() < ff.leftEyeEyeBrowDistance() * 0.8 && face.rightEyeEyeBrowDistance() < ff.rightEyeEyeBrowDistance() * 0.8) {
199
- this.presentedFacePose = FacePose.LookDown;
200
- // } else if (face.eyesLevel() >= this.frontFace.eyesLevel() + this.height * 0.05) {
201
- // this.presentedFacePose = FacePose.TiltLeft;
202
- // } else if (face.eyesLevel() <= this.frontFace.eyesLevel() - this.height * 0.05) {
203
- // this.presentedFacePose = FacePose.TiltRight;
204
- }
205
- */
206
- // if (this.presentedFacePose != null && this.presentedFacePose == this.requestedFacePose) {
207
- // this.validFacePose = true;
208
- // await this.drawFrame('green', true);
209
- // this.validFaceFoundAgain = true;
210
- // //this.stream.changeFacePose();
211
- // }
212
175
  if (this.stream.facePose !== null) {
213
176
  await delay(3000);
214
177
  this.validFacePose = true;
215
178
  await this.drawFrame('green', true);
216
179
  }
217
180
  }
218
- // //check if face is centered again
219
- // if (this.validFacePose && this.requestedFacePose != null) {
220
- // if (
221
- // face.leftEyeNoseDistanceX() < face.rightEyeNoseDistanceX() * 1.2 &&
222
- // face.leftEyeNoseDistanceX() > face.rightEyeNoseDistanceX() * 0.8 &&
223
- // Math.abs(face.eyesLevel()) < this.height * 0.1
224
- // ) {
225
- // this.validFaceFoundAgain = true;
226
- // this.stream.stopAnimation();
227
- // this.drawFrame('green', true);
228
- // }
229
- // }
230
181
  }
231
182
  }
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-cf54a432.js';
2
- import { A as ApiUrls, s as state, F as FlowStatus, a as AgreementCheckValues, b as AgreementInfoValues, S as SessionKeys, G as GlobalValues, C as CameraErrorValues, I as IdCaptureValues, c as SelfieCaptureValues, d as CompleteValues, H as HowToValues, L as LandingValues, M as MobileRedirectValues, P as PhoneValidationValues, e as CodeValidationValues } from './store-b76678da.js';
2
+ import { A as ApiUrls, s as state, F as FlowStatus, a as AgreementCheckValues, b as AgreementInfoValues, S as SessionKeys, C as CameraErrorValues, I as IdCaptureValues, c as SelfieCaptureValues, d as CompleteValues, H as HowToValues, L as LandingValues, M as MobileRedirectValues, P as PhoneValidationValues, e as CodeValidationValues } from './store-fdeed827.js';
3
3
 
4
4
  var OrderStatuses;
5
5
  (function (OrderStatuses) {
@@ -2157,19 +2157,19 @@ class FaceML5Detector {
2157
2157
  if (this.validFaceFound || this.validFacePose) {
2158
2158
  if (this.start == null)
2159
2159
  this.start = Date.now();
2160
- if (Date.now() > this.start + 500) {
2160
+ if (Date.now() > this.start + 3000) {
2161
2161
  this.continue = false;
2162
2162
  this.stream.verificationReady();
2163
2163
  }
2164
2164
  }
2165
- if (Date.now() - this.initTime >= this.MAX_DETECTION) {
2166
- this.continue = false;
2167
- this.stream.timeElapsed();
2168
- }
2169
- if (this.presentedFacePose != null && !this.validFacePose) {
2165
+ else if (Date.now() - this.initTime >= this.MAX_DETECTION) {
2170
2166
  this.continue = false;
2171
2167
  this.stream.timeElapsed();
2172
2168
  }
2169
+ // if (this.presentedFacePose != null && !this.validFacePose) {
2170
+ // this.continue = false;
2171
+ // this.stream.timeElapsed();
2172
+ // }
2173
2173
  if (this.continue)
2174
2174
  this.ml5.faceapi.detect(this.videoElement, this.gotResults.bind(this));
2175
2175
  }
@@ -2189,8 +2189,7 @@ class FaceML5Detector {
2189
2189
  this.validFaceFound = true;
2190
2190
  this.stream.autoCapturing();
2191
2191
  // this.frontFace = new FaceLandmarks(results[0], this.width, this.height);
2192
- await this.drawFrame('green');
2193
- await delay(GlobalValues.VideoLenght);
2192
+ await this.drawFrame('green', true);
2194
2193
  }
2195
2194
  }
2196
2195
  }
@@ -2274,59 +2273,12 @@ class FaceML5Detector {
2274
2273
  this.presentedFacePose = FacePose.LookLeft;
2275
2274
  if (face.nose.x < ff.nose.x - ff.eyesDistance() * 0.5)
2276
2275
  this.presentedFacePose = FacePose.LookRight;
2277
- /*
2278
- if (
2279
- face.leftEyeNoseDistanceX() < ff.leftEyeNoseDistanceX() * 0.6 &&
2280
- face.rightEyeNoseDistanceX() > ff.rightEyeNoseDistanceX() * 1.2 &&
2281
- face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
2282
- face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
2283
- face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
2284
- face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
2285
- ) {
2286
- this.presentedFacePose = FacePose.LookLeft;
2287
- } else if (
2288
- face.rightEyeNoseDistanceX() < ff.rightEyeNoseDistanceX() * 0.6 &&
2289
- face.leftEyeNoseDistanceX() > ff.leftEyeNoseDistanceX() * 1.2 &&
2290
- face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
2291
- face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
2292
- face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
2293
- face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
2294
- ) {
2295
- this.presentedFacePose = FacePose.LookRight;
2296
- } else if (face.eyesNoseDistance() < ff.eyesNoseDistance() * 0.45) {
2297
- this.presentedFacePose = FacePose.LookUp;
2298
- } else if (face.leftEyeEyeBrowDistance() < ff.leftEyeEyeBrowDistance() * 0.8 && face.rightEyeEyeBrowDistance() < ff.rightEyeEyeBrowDistance() * 0.8) {
2299
- this.presentedFacePose = FacePose.LookDown;
2300
- // } else if (face.eyesLevel() >= this.frontFace.eyesLevel() + this.height * 0.05) {
2301
- // this.presentedFacePose = FacePose.TiltLeft;
2302
- // } else if (face.eyesLevel() <= this.frontFace.eyesLevel() - this.height * 0.05) {
2303
- // this.presentedFacePose = FacePose.TiltRight;
2304
- }
2305
- */
2306
- // if (this.presentedFacePose != null && this.presentedFacePose == this.requestedFacePose) {
2307
- // this.validFacePose = true;
2308
- // await this.drawFrame('green', true);
2309
- // this.validFaceFoundAgain = true;
2310
- // //this.stream.changeFacePose();
2311
- // }
2312
2276
  if (this.stream.facePose !== null) {
2313
2277
  await delay(3000);
2314
2278
  this.validFacePose = true;
2315
2279
  await this.drawFrame('green', true);
2316
2280
  }
2317
2281
  }
2318
- // //check if face is centered again
2319
- // if (this.validFacePose && this.requestedFacePose != null) {
2320
- // if (
2321
- // face.leftEyeNoseDistanceX() < face.rightEyeNoseDistanceX() * 1.2 &&
2322
- // face.leftEyeNoseDistanceX() > face.rightEyeNoseDistanceX() * 0.8 &&
2323
- // Math.abs(face.eyesLevel()) < this.height * 0.1
2324
- // ) {
2325
- // this.validFaceFoundAgain = true;
2326
- // this.stream.stopAnimation();
2327
- // this.drawFrame('green', true);
2328
- // }
2329
- // }
2330
2282
  }
2331
2283
  }
2332
2284
 
@@ -5826,7 +5778,7 @@ function v4(options, buf, offset) {
5826
5778
  }
5827
5779
 
5828
5780
  const name = "@ekyc_qoobiss/qbs-ect-cmp";
5829
- const version$1 = "3.6.24";
5781
+ const version$1 = "3.6.26";
5830
5782
  const description = "Person Identification Component";
5831
5783
  const main = "./dist/index.cjs.js";
5832
5784
  const module = "./dist/index.js";
@@ -9809,6 +9761,7 @@ const UserLiveness = class {
9809
9761
  registerInstance(this, hostRef);
9810
9762
  this.apiErrorEvent = createEvent(this, "apiError", 7);
9811
9763
  this.recordingResultCount = 0;
9764
+ this.recordingRetryCount = 0;
9812
9765
  this.showError = undefined;
9813
9766
  this.captureStep = undefined;
9814
9767
  this.flow = undefined;
@@ -9881,6 +9834,7 @@ const UserLiveness = class {
9881
9834
  this.recordingResultCount++;
9882
9835
  return;
9883
9836
  }
9837
+ this.recordingResultCount = 0;
9884
9838
  if (selfieRecording.size == 0) {
9885
9839
  await this.baseComponent.apiCall.AddLog({ message: 'Empty recording', blobData: selfieRecording }, getLogMessage());
9886
9840
  this.triggerErrorFlow();
@@ -9892,15 +9846,18 @@ const UserLiveness = class {
9892
9846
  let uploadRec = new File([selfieRecording], this.flow.front.recName + mimeType.extension, { type: mimeType.type });
9893
9847
  this.flow.front.recordingDone = await this.uploadRecording(uploadRec, this.flow.front.recType);
9894
9848
  }
9895
- if (this.captureStep == SelfieFlowStatus.Gesture) {
9849
+ else if (this.captureStep == SelfieFlowStatus.Gesture) {
9896
9850
  let uploadRec = new File([selfieRecording], this.flow.tilt.recName + mimeType.extension, { type: mimeType.type });
9897
9851
  this.flow.tilt.recordingDone = await this.uploadRecording(uploadRec, this.flow.tilt.recType);
9898
9852
  }
9853
+ else {
9854
+ this.triggerErrorFlow();
9855
+ }
9899
9856
  await this.endFlow();
9900
9857
  }
9901
9858
  catch (e) {
9902
- if (state.recordingRetryCount < 3) {
9903
- state.recordingRetryCount++;
9859
+ if (this.recordingRetryCount < 3) {
9860
+ this.recordingRetryCount++;
9904
9861
  this.triggerErrorFlow();
9905
9862
  }
9906
9863
  else {
@@ -9942,7 +9899,12 @@ const UserLiveness = class {
9942
9899
  async endFlow() {
9943
9900
  if (this.captureStep == SelfieFlowStatus.Selfie) {
9944
9901
  if (this.flow.front.photoDone && this.flow.front.recordingDone) {
9945
- this.captureStep = SelfieFlowStatus.Gesture;
9902
+ if (state.hasSelfieGesture) {
9903
+ this.captureStep = SelfieFlowStatus.Gesture;
9904
+ }
9905
+ else {
9906
+ this.captureStep = SelfieFlowStatus.End;
9907
+ }
9946
9908
  }
9947
9909
  else {
9948
9910
  return;
@@ -9959,7 +9921,6 @@ const UserLiveness = class {
9959
9921
  if (this.captureStep != SelfieFlowStatus.End) {
9960
9922
  return;
9961
9923
  }
9962
- state.recordingRetryCount = 0;
9963
9924
  state.flowStatus = FlowStatus.COMPLETE;
9964
9925
  }
9965
9926
  render() {
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-cf54a432.js';
2
- import { H as HowToValues } from './store-b76678da.js';
2
+ import { H as HowToValues } from './store-fdeed827.js';
3
3
 
4
4
  const randomActionsCss = "";
5
5
 
@@ -369,7 +369,6 @@ const { state, onChange } = createStore({
369
369
  phoneNumber: '',
370
370
  apiBaseUrl: 'https://apiro.id-kyc.com',
371
371
  device: null,
372
- recordingRetryCount: 0,
373
372
  });
374
373
  onChange('environment', value => {
375
374
  state.debug = value == 'QA';
@@ -396,4 +395,4 @@ onChange('phoneValidation', value => {
396
395
  sessionStorage.setItem(SessionKeys.PhoneValidationKey, String(value));
397
396
  });
398
397
 
399
- export { ApiUrls as A, CameraErrorValues as C, FlowStatus as F, GlobalValues as G, HowToValues as H, IdCaptureValues as I, LandingValues as L, MobileRedirectValues as M, PhoneValidationValues as P, SessionKeys as S, AgreementCheckValues as a, AgreementInfoValues as b, SelfieCaptureValues as c, CompleteValues as d, CodeValidationValues as e, state as s };
398
+ export { ApiUrls as A, CameraErrorValues as C, FlowStatus as F, HowToValues as H, IdCaptureValues as I, LandingValues as L, MobileRedirectValues as M, PhoneValidationValues as P, SessionKeys as S, AgreementCheckValues as a, AgreementInfoValues as b, SelfieCaptureValues as c, CompleteValues as d, CodeValidationValues as e, state as s };
@@ -1 +1 @@
1
- import{a as e,f as t}from"./p-8942656c.js";const a=e=>!("isConnected"in e)||e.isConnected,i=(()=>{let e;return(...t)=>{e&&clearTimeout(e),e=setTimeout((()=>{e=0,(e=>{for(let t of e.keys())e.set(t,e.get(t).filter(a))})(...t)}),2e3)}})(),n=e=>"function"==typeof e?e():e;var s;!function(e){e[e.LANDING=0]="LANDING",e[e.AGREEMENT=1]="AGREEMENT",e[e.PHONE=2]="PHONE",e[e.CODE=3]="CODE",e[e.CODEERROR=4]="CODEERROR",e[e.ID=5]="ID",e[e.LIVENESS=6]="LIVENESS",e[e.COMPLETE=7]="COMPLETE",e[e.ERROREND=8]="ERROREND",e[e.CAMERAERROR=9]="CAMERAERROR",e[e.NONE=10]="NONE"}(s||(s={}));class r{}r.FooterText="Qoobiss eKYC",r.VideoLenght=3100;class c extends r{}c.IdTitile="Prezintă actul tău de identitate",c.IdSubTitileFace="Este necesară captarea actului de identitate. Urmează intrucțiunile ce vor fi afișate pe ecran.",c.IdSubTitileBack="Este necesară captarea pe verso a actului de identitate. Urmează intrucțiunile ce vor fi afișate pe ecran.",c.IdButton="Sunt gata!",c.SelfieTitile="Validare video",c.SelfieSubTitile="Este necesară realizarea unei înregistrări video. Respectă intrucțiunile ce vor fi afișate pe ecran.",c.SelfieButton="Sunt gata!";class o extends r{}o.Title="Validarea identității la distanță este o procedură simplă și rapidă",o.Description="Asigură-te că ai:",o.IdInfo="Actul de identitate, în original",o.DeviceInfo="Un telefon mobil sau un calculator cu camera web",o.SmsInfo="Acces la un telefon mobil ce permite primirea de mesaje SMS",o.Warning="ATENȚIE! În cadrul acestui proces se poate utiliza doar cartea de identitate Românească.",o.WarningMd="ATENȚIE! In cadrul acestui proces se pot utiliza doar buletinele de identitate din Republica Moldova.",o.Terms="Prin continuarea procesului, confirmi că ai citit termenii de utilizare și ești de acord cu aceștia.",o.Button="Am înțeles",o.ButtonLeave="Nu sunt pregătit";class d extends r{}d.Title="Este necesar să validăm numărul tău de telefon",d.Description="Introdu mai jos numarul tau de telefon:",d.Button="Trimite SMS de verificare",d.Label="Numarul tau de telefon";class l extends r{}l.Title="Introdu codul de validare primit prin sms:",l.Description=" ",l.Button="Validează",l.Error="Codul introdus nu este valid. Asigură-te că îl introduci corect";class u extends r{}u.Title="Procesul a fost finalizat.",u.Description="Vei fi redirecționat în câteva momente.",u.Message="Îți mulțumim!";class p{}p.FlowStatusKey="qbs-ect-flowstatus",p.RequestIdKey="qbs-ect-requestid",p.TokenKey="qbs-ect-token",p.InitialisedKey="qbs-ect-initialised",p.HasIdBackKey="qbs-ect-has-id-back",p.AgreementValidationKey="qbs-ect-agreement-validation",p.PhoneValidationKey="qbs-ect-phone-validation",p.RefreshDoneKey="qbs-ect-refresh-done";class m extends r{}m.Button="Încerc din nou",m.Title="Încadrează actul de identitate în chenarul de pe ecran.",m.TitleBack="Încadrează spatele actului de identitate în chenarul de pe ecran.",m.TtileRotate="Întoarce actul de identitate.",m.ErrorTitleR1="Nu am putut colecta informațiile din actul de identitate!",m.ErrorTitleR2="Te rugăm să mai încerci o dată!",m.ErrorR1="Încadrează actul de identitate în așa fel încât chenarul să se potrivească perfect pe colțurile actului de identitate. Trebuie să fie vizibilă întreaga suprafață a actului de identitate. ",m.ErrorR2="Ai grijă să te afli într-o zonă cu suficientă lumină și să nu acoperi părți ale actului de identitate cu degetele. Ai grijă de asemenea să nu se formeze reflexii de lumină pe suprafața acestuia.",m.IDPoseMapping={0:"",1:"Înclină actul de identitate spre spate.",2:"",3:"",4:""},m.IDPoseDemoMapping={0:"https://ekyc.blob.core.windows.net/$web/animations/id/id_front.mp4",1:"https://ekyc.blob.core.windows.net/$web/animations/id/id_front_tilt.mp4",2:"https://ekyc.blob.core.windows.net/$web/animations/id/id_rotate.mp4",3:"https://ekyc.blob.core.windows.net/$web/animations/id/id_back.mp4",4:"https://ekyc.blob.core.windows.net/$web/animations/id/id_back_tilt.mp4"},m.Loading="Transferăm datele. Asteptați...";class f extends r{}f.Title="Încadrează fața în chenarul de pe ecran.",f.FinalTitle="Îndreaptă capul și încadrează fața în chenarul de pe ecran.",f.ErrorTitleR1="Procesul a eșuat!",f.ErrorTitleR2="Te rugăm să mai încerci o dată!",f.ErrorR1="Încadrează fața în așa fel încât chenarul să se suprapună peste linia bărbiei și a frunții, exact așa cum vezi în animația de pe ecran. ",f.ErrorR2="Rămâi cu fața încadrată în chenar și execută gestul solicitat după ce animația cu explicația a dispărut de pe ecran.",f.Loading="Transferăm datele. Asteptați...",f.FacePoseMapping={0:"Întoarce capul spre stânga.",1:"Întoarce capul spre dreapta.",2:"Înclină capul spre spate.",3:"Înclină capul în față.",4:""},f.FacePoseDemoMapping={0:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_rotate_left.mp4",1:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_rotate_right.mp4",2:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_back.mp4",3:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_front.mp4",4:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_main.mp4"};class b extends r{}b.Title="Pentru începerea identificării avem nevoie de acordurile tale:",b.Button="Încep identificarea",b.Terms="Am luat la cunoștință și sunt de acord cu Termenii și condițiile generale de utilizare",b.Agreement="Îmi exprim acordul pentru prelucrarea datelor cu caracter personal";class h extends r{}h.ButtonYes="Sunt de acord",h.ButtonNo="Nu sunt de acord";class g{constructor(){this.uriEnv="/",this.uriEnv="QA"==S.environment?"/dev_":"/",this.OtpSend=this.uriEnv+"validation/otp/send",this.OtpCheck=this.uriEnv+"validation/otp/check",this.IdentityInsert=this.uriEnv+"validation/identity/insert",this.UploadCapture=this.uriEnv+"validation/upload/capture",this.GetAgreement=this.uriEnv+"validation/agreement/content",this.GenerateAgreement=this.uriEnv+"validation/agreement/generate",this.SendLink=this.uriEnv+"validation/otp/sendlink",this.GetStatus=this.uriEnv+"validation/identity/status",this.AddLog=this.uriEnv+"validation/logs/add",this.AddStep=this.uriEnv+"validation/logs/step",this.AbortRequest=this.uriEnv+"validation/identity/abort"}}class w extends r{}w.InfoTop="Pentru a continua scanați codul de mai jos cu un smartphone.",w.InfoBottom="Sau introduceți un număr de telefon pentru a primi link-ul pe smartphone.",w.Validation="Număr de telefon invalid!",w.InfoWaiting="Așteptăm finalizarea procesului pe smartphone.",w.InfoAborted="Procesului de pe smartphone a fost amanat.";class v extends r{}v.Title="Procesul de indetificare nu poate continua.",v.Description="Nu am putut detecta nicio camera. Cel mai probabil nu ai acordat drept de acces acestui site, Te rugam sa dai acces si sa apesi butonul de mai jos dupa aceea.",v.Button="Reincep procesul",v.HowToLink="https://ekyc.blob.core.windows.net/$web/animations/enable_permissions_sm.mp4";const{state:S,onChange:k}=(()=>{const a=((e,t=((e,t)=>e!==t))=>{const a=n(e);let i=new Map(Object.entries(null!=a?a:{}));const s={dispose:[],get:[],set:[],reset:[]},r=()=>{var t;i=new Map(Object.entries(null!==(t=n(e))&&void 0!==t?t:{})),s.reset.forEach((e=>e()))},c=e=>(s.get.forEach((t=>t(e))),i.get(e)),o=(e,a)=>{const n=i.get(e);t(a,n,e)&&(i.set(e,a),s.set.forEach((t=>t(e,a,n))))},d="undefined"==typeof Proxy?{}:new Proxy(a,{get:(e,t)=>c(t),ownKeys:()=>Array.from(i.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(e,t)=>i.has(t),set:(e,t,a)=>(o(t,a),!0)}),l=(e,t)=>(s[e].push(t),()=>{((e,t)=>{const a=e.indexOf(t);a>=0&&(e[a]=e[e.length-1],e.length--)})(s[e],t)});return{state:d,get:c,set:o,on:l,onChange:(t,a)=>{const i=l("set",((e,i)=>{e===t&&a(i)})),s=l("reset",(()=>a(n(e)[t])));return()=>{i(),s()}},use:(...e)=>{const t=e.reduce(((e,t)=>(t.set&&e.push(l("set",t.set)),t.get&&e.push(l("get",t.get)),t.reset&&e.push(l("reset",t.reset)),t.dispose&&e.push(l("dispose",t.dispose)),e)),[]);return()=>t.forEach((e=>e()))},dispose:()=>{s.dispose.forEach((e=>e())),r()},reset:r,forceUpdate:e=>{const t=i.get(e);s.set.forEach((a=>a(e,t,t)))}}})({flowStatus:s.NONE,environment:"PROD",debug:!1,requestId:"",redirectId:"",initialised:!1,token:"",cameraIds:[],cameraId:"",hasIdBack:!1,hasSelfieGesture:!1,hasIdTilt:!1,agreementsValidation:!0,phoneValidation:!0,phoneNumber:"",apiBaseUrl:"https://apiro.id-kyc.com",device:null,recordingRetryCount:0},void 0);return a.use((()=>{if("function"!=typeof e)return{};const a=new Map;return{dispose:()=>a.clear(),get:t=>{const i=e();i&&((e,t,a)=>{const i=e.get(t);i?i.includes(a)||i.push(a):e.set(t,[a])})(a,t,i)},set:e=>{const n=a.get(e);n&&a.set(e,n.filter(t)),i(a)},reset:()=>{a.forEach((e=>e.forEach(t))),i(a)}}})()),a})();k("environment",(e=>{S.debug="QA"==e})),k("flowStatus",(e=>{sessionStorage.setItem(p.FlowStatusKey,s[e])})),k("token",(e=>{sessionStorage.setItem(p.TokenKey,e)})),k("requestId",(e=>{sessionStorage.setItem(p.RequestIdKey,e)})),k("initialised",(e=>{sessionStorage.setItem(p.InitialisedKey,String(e))})),k("hasIdBack",(e=>{sessionStorage.setItem(p.HasIdBackKey,String(e))})),k("agreementsValidation",(e=>{sessionStorage.setItem(p.AgreementValidationKey,String(e))})),k("phoneValidation",(e=>{sessionStorage.setItem(p.PhoneValidationKey,String(e))}));export{g as A,v as C,s as F,r as G,c as H,m as I,o as L,w as M,d as P,p as S,h as a,b,f as c,u as d,l as e,S as s}
1
+ import{a as e,f as t}from"./p-8942656c.js";const a=e=>!("isConnected"in e)||e.isConnected,i=(()=>{let e;return(...t)=>{e&&clearTimeout(e),e=setTimeout((()=>{e=0,(e=>{for(let t of e.keys())e.set(t,e.get(t).filter(a))})(...t)}),2e3)}})(),n=e=>"function"==typeof e?e():e;var s;!function(e){e[e.LANDING=0]="LANDING",e[e.AGREEMENT=1]="AGREEMENT",e[e.PHONE=2]="PHONE",e[e.CODE=3]="CODE",e[e.CODEERROR=4]="CODEERROR",e[e.ID=5]="ID",e[e.LIVENESS=6]="LIVENESS",e[e.COMPLETE=7]="COMPLETE",e[e.ERROREND=8]="ERROREND",e[e.CAMERAERROR=9]="CAMERAERROR",e[e.NONE=10]="NONE"}(s||(s={}));class r{}r.FooterText="Qoobiss eKYC",r.VideoLenght=3100;class c extends r{}c.IdTitile="Prezintă actul tău de identitate",c.IdSubTitileFace="Este necesară captarea actului de identitate. Urmează intrucțiunile ce vor fi afișate pe ecran.",c.IdSubTitileBack="Este necesară captarea pe verso a actului de identitate. Urmează intrucțiunile ce vor fi afișate pe ecran.",c.IdButton="Sunt gata!",c.SelfieTitile="Validare video",c.SelfieSubTitile="Este necesară realizarea unei înregistrări video. Respectă intrucțiunile ce vor fi afișate pe ecran.",c.SelfieButton="Sunt gata!";class o extends r{}o.Title="Validarea identității la distanță este o procedură simplă și rapidă",o.Description="Asigură-te că ai:",o.IdInfo="Actul de identitate, în original",o.DeviceInfo="Un telefon mobil sau un calculator cu camera web",o.SmsInfo="Acces la un telefon mobil ce permite primirea de mesaje SMS",o.Warning="ATENȚIE! În cadrul acestui proces se poate utiliza doar cartea de identitate Românească.",o.WarningMd="ATENȚIE! In cadrul acestui proces se pot utiliza doar buletinele de identitate din Republica Moldova.",o.Terms="Prin continuarea procesului, confirmi că ai citit termenii de utilizare și ești de acord cu aceștia.",o.Button="Am înțeles",o.ButtonLeave="Nu sunt pregătit";class d extends r{}d.Title="Este necesar să validăm numărul tău de telefon",d.Description="Introdu mai jos numarul tau de telefon:",d.Button="Trimite SMS de verificare",d.Label="Numarul tau de telefon";class l extends r{}l.Title="Introdu codul de validare primit prin sms:",l.Description=" ",l.Button="Validează",l.Error="Codul introdus nu este valid. Asigură-te că îl introduci corect";class u extends r{}u.Title="Procesul a fost finalizat.",u.Description="Vei fi redirecționat în câteva momente.",u.Message="Îți mulțumim!";class p{}p.FlowStatusKey="qbs-ect-flowstatus",p.RequestIdKey="qbs-ect-requestid",p.TokenKey="qbs-ect-token",p.InitialisedKey="qbs-ect-initialised",p.HasIdBackKey="qbs-ect-has-id-back",p.AgreementValidationKey="qbs-ect-agreement-validation",p.PhoneValidationKey="qbs-ect-phone-validation",p.RefreshDoneKey="qbs-ect-refresh-done";class m extends r{}m.Button="Încerc din nou",m.Title="Încadrează actul de identitate în chenarul de pe ecran.",m.TitleBack="Încadrează spatele actului de identitate în chenarul de pe ecran.",m.TtileRotate="Întoarce actul de identitate.",m.ErrorTitleR1="Nu am putut colecta informațiile din actul de identitate!",m.ErrorTitleR2="Te rugăm să mai încerci o dată!",m.ErrorR1="Încadrează actul de identitate în așa fel încât chenarul să se potrivească perfect pe colțurile actului de identitate. Trebuie să fie vizibilă întreaga suprafață a actului de identitate. ",m.ErrorR2="Ai grijă să te afli într-o zonă cu suficientă lumină și să nu acoperi părți ale actului de identitate cu degetele. Ai grijă de asemenea să nu se formeze reflexii de lumină pe suprafața acestuia.",m.IDPoseMapping={0:"",1:"Înclină actul de identitate spre spate.",2:"",3:"",4:""},m.IDPoseDemoMapping={0:"https://ekyc.blob.core.windows.net/$web/animations/id/id_front.mp4",1:"https://ekyc.blob.core.windows.net/$web/animations/id/id_front_tilt.mp4",2:"https://ekyc.blob.core.windows.net/$web/animations/id/id_rotate.mp4",3:"https://ekyc.blob.core.windows.net/$web/animations/id/id_back.mp4",4:"https://ekyc.blob.core.windows.net/$web/animations/id/id_back_tilt.mp4"},m.Loading="Transferăm datele. Asteptați...";class f extends r{}f.Title="Încadrează fața în chenarul de pe ecran.",f.FinalTitle="Îndreaptă capul și încadrează fața în chenarul de pe ecran.",f.ErrorTitleR1="Procesul a eșuat!",f.ErrorTitleR2="Te rugăm să mai încerci o dată!",f.ErrorR1="Încadrează fața în așa fel încât chenarul să se suprapună peste linia bărbiei și a frunții, exact așa cum vezi în animația de pe ecran. ",f.ErrorR2="Rămâi cu fața încadrată în chenar și execută gestul solicitat după ce animația cu explicația a dispărut de pe ecran.",f.Loading="Transferăm datele. Asteptați...",f.FacePoseMapping={0:"Întoarce capul spre stânga.",1:"Întoarce capul spre dreapta.",2:"Înclină capul spre spate.",3:"Înclină capul în față.",4:""},f.FacePoseDemoMapping={0:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_rotate_left.mp4",1:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_rotate_right.mp4",2:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_back.mp4",3:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_front.mp4",4:"https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_main.mp4"};class b extends r{}b.Title="Pentru începerea identificării avem nevoie de acordurile tale:",b.Button="Încep identificarea",b.Terms="Am luat la cunoștință și sunt de acord cu Termenii și condițiile generale de utilizare",b.Agreement="Îmi exprim acordul pentru prelucrarea datelor cu caracter personal";class h extends r{}h.ButtonYes="Sunt de acord",h.ButtonNo="Nu sunt de acord";class g{constructor(){this.uriEnv="/",this.uriEnv="QA"==S.environment?"/dev_":"/",this.OtpSend=this.uriEnv+"validation/otp/send",this.OtpCheck=this.uriEnv+"validation/otp/check",this.IdentityInsert=this.uriEnv+"validation/identity/insert",this.UploadCapture=this.uriEnv+"validation/upload/capture",this.GetAgreement=this.uriEnv+"validation/agreement/content",this.GenerateAgreement=this.uriEnv+"validation/agreement/generate",this.SendLink=this.uriEnv+"validation/otp/sendlink",this.GetStatus=this.uriEnv+"validation/identity/status",this.AddLog=this.uriEnv+"validation/logs/add",this.AddStep=this.uriEnv+"validation/logs/step",this.AbortRequest=this.uriEnv+"validation/identity/abort"}}class w extends r{}w.InfoTop="Pentru a continua scanați codul de mai jos cu un smartphone.",w.InfoBottom="Sau introduceți un număr de telefon pentru a primi link-ul pe smartphone.",w.Validation="Număr de telefon invalid!",w.InfoWaiting="Așteptăm finalizarea procesului pe smartphone.",w.InfoAborted="Procesului de pe smartphone a fost amanat.";class v extends r{}v.Title="Procesul de indetificare nu poate continua.",v.Description="Nu am putut detecta nicio camera. Cel mai probabil nu ai acordat drept de acces acestui site, Te rugam sa dai acces si sa apesi butonul de mai jos dupa aceea.",v.Button="Reincep procesul",v.HowToLink="https://ekyc.blob.core.windows.net/$web/animations/enable_permissions_sm.mp4";const{state:S,onChange:k}=(()=>{const a=((e,t=((e,t)=>e!==t))=>{const a=n(e);let i=new Map(Object.entries(null!=a?a:{}));const s={dispose:[],get:[],set:[],reset:[]},r=()=>{var t;i=new Map(Object.entries(null!==(t=n(e))&&void 0!==t?t:{})),s.reset.forEach((e=>e()))},c=e=>(s.get.forEach((t=>t(e))),i.get(e)),o=(e,a)=>{const n=i.get(e);t(a,n,e)&&(i.set(e,a),s.set.forEach((t=>t(e,a,n))))},d="undefined"==typeof Proxy?{}:new Proxy(a,{get:(e,t)=>c(t),ownKeys:()=>Array.from(i.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(e,t)=>i.has(t),set:(e,t,a)=>(o(t,a),!0)}),l=(e,t)=>(s[e].push(t),()=>{((e,t)=>{const a=e.indexOf(t);a>=0&&(e[a]=e[e.length-1],e.length--)})(s[e],t)});return{state:d,get:c,set:o,on:l,onChange:(t,a)=>{const i=l("set",((e,i)=>{e===t&&a(i)})),s=l("reset",(()=>a(n(e)[t])));return()=>{i(),s()}},use:(...e)=>{const t=e.reduce(((e,t)=>(t.set&&e.push(l("set",t.set)),t.get&&e.push(l("get",t.get)),t.reset&&e.push(l("reset",t.reset)),t.dispose&&e.push(l("dispose",t.dispose)),e)),[]);return()=>t.forEach((e=>e()))},dispose:()=>{s.dispose.forEach((e=>e())),r()},reset:r,forceUpdate:e=>{const t=i.get(e);s.set.forEach((a=>a(e,t,t)))}}})({flowStatus:s.NONE,environment:"PROD",debug:!1,requestId:"",redirectId:"",initialised:!1,token:"",cameraIds:[],cameraId:"",hasIdBack:!1,hasSelfieGesture:!1,hasIdTilt:!1,agreementsValidation:!0,phoneValidation:!0,phoneNumber:"",apiBaseUrl:"https://apiro.id-kyc.com",device:null},void 0);return a.use((()=>{if("function"!=typeof e)return{};const a=new Map;return{dispose:()=>a.clear(),get:t=>{const i=e();i&&((e,t,a)=>{const i=e.get(t);i?i.includes(a)||i.push(a):e.set(t,[a])})(a,t,i)},set:e=>{const n=a.get(e);n&&a.set(e,n.filter(t)),i(a)},reset:()=>{a.forEach((e=>e.forEach(t))),i(a)}}})()),a})();k("environment",(e=>{S.debug="QA"==e})),k("flowStatus",(e=>{sessionStorage.setItem(p.FlowStatusKey,s[e])})),k("token",(e=>{sessionStorage.setItem(p.TokenKey,e)})),k("requestId",(e=>{sessionStorage.setItem(p.RequestIdKey,e)})),k("initialised",(e=>{sessionStorage.setItem(p.InitialisedKey,String(e))})),k("hasIdBack",(e=>{sessionStorage.setItem(p.HasIdBackKey,String(e))})),k("agreementsValidation",(e=>{sessionStorage.setItem(p.AgreementValidationKey,String(e))})),k("phoneValidation",(e=>{sessionStorage.setItem(p.PhoneValidationKey,String(e))}));export{g as A,v as C,s as F,c as H,m as I,o as L,w as M,d as P,p as S,h as a,b,f as c,u as d,l as e,S as s}