@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.
- package/dist/cjs/agreement-check_19.cjs.entry.js +23 -62
- package/dist/cjs/random-actions.cjs.entry.js +1 -1
- package/dist/cjs/{store-4bf93725.js → store-f1a0f55c.js} +0 -2
- package/dist/collection/components/flow/user-liveness/user-liveness.js +14 -5
- package/dist/collection/helpers/store.js +0 -1
- package/dist/collection/libs/FaceML5Detector/FaceML5Detector.js +7 -56
- package/dist/esm/agreement-check_19.entry.js +23 -62
- package/dist/esm/random-actions.entry.js +1 -1
- package/dist/esm/{store-b76678da.js → store-fdeed827.js} +1 -2
- package/dist/qbs-ect-cmp/{p-27abb3e6.js → p-0b381be5.js} +1 -1
- package/dist/qbs-ect-cmp/{p-5fa1b4bf.entry.js → p-40480abb.entry.js} +2 -2
- package/dist/qbs-ect-cmp/{p-0a37620f.entry.js → p-6be3b9ca.entry.js} +1 -1
- package/dist/qbs-ect-cmp/qbs-ect-cmp.esm.js +1 -1
- package/dist/types/components/flow/user-liveness/user-liveness.d.ts +1 -0
- package/dist/types/models/IEctStore.d.ts +0 -1
- package/package.json +1 -1
|
@@ -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-
|
|
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 +
|
|
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.
|
|
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 (
|
|
9907
|
-
|
|
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
|
-
|
|
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() {
|
|
@@ -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 (
|
|
103
|
-
|
|
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
|
-
|
|
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() {
|
|
@@ -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 +
|
|
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,
|
|
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 +
|
|
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.
|
|
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 (
|
|
9903
|
-
|
|
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
|
-
|
|
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() {
|
|
@@ -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,
|
|
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
|
|
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}
|