idmission-web-sdk 2.3.36 → 2.3.38

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/sdk2.esm.js CHANGED
@@ -204,7 +204,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
204
204
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
205
205
  };
206
206
 
207
- var webSdkVersion = '2.3.36';
207
+ var webSdkVersion = '2.3.38';
208
208
 
209
209
  function getPlatform() {
210
210
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -258,6 +258,25 @@ function contentDispositionFromDataUrl(url) {
258
258
  var _a, _b;
259
259
  return (_b = (_a = url.match(/^(data:.*;base64),/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';
260
260
  }
261
+ function b64toBlob(b64Data, contentType, sliceSize) {
262
+ if (sliceSize === void 0) {
263
+ sliceSize = 512;
264
+ }
265
+ var byteCharacters = atob(b64Data);
266
+ var byteArrays = [];
267
+ for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
268
+ var slice = byteCharacters.slice(offset, offset + sliceSize);
269
+ var byteNumbers = new Array(slice.length);
270
+ for (var i = 0; i < slice.length; i++) {
271
+ byteNumbers[i] = slice.charCodeAt(i);
272
+ }
273
+ var byteArray = new Uint8Array(byteNumbers);
274
+ byteArrays.push(byteArray);
275
+ }
276
+ return new Blob(byteArrays, {
277
+ type: contentType
278
+ });
279
+ }
261
280
  function blobToB64(blob) {
262
281
  return new Promise(function (resolve) {
263
282
  var reader = new FileReader();
@@ -2086,6 +2105,13 @@ function performUpload(_a) {
2086
2105
  });
2087
2106
  });
2088
2107
  }
2108
+ function useSubmissionContext() {
2109
+ var context = useContext(SubmissionContext);
2110
+ if (!context) {
2111
+ throw new Error('useSubmissionContext must be used within a SubmissionProvider');
2112
+ }
2113
+ return context;
2114
+ }
2089
2115
 
2090
2116
  var visionTasksBasePath = "https://websdk-cdn-dev.idmission.com/assets/vision_wasm_internal_0.10.7";
2091
2117
  var visionRuntimePreloading = false;
@@ -11481,7 +11507,7 @@ function SelfieGuidanceModelsProvider(_a) {
11481
11507
  }), children);
11482
11508
  }
11483
11509
  function useSelfieGuidanceModelsContext() {
11484
- var context = React.useContext(SelfieGuidanceModelsContext);
11510
+ var context = useContext(SelfieGuidanceModelsContext);
11485
11511
  if (!context) {
11486
11512
  throw new Error('useSelfieGuidanceModelsContext must be used within a SelfieGuidanceModelsProvider');
11487
11513
  }
@@ -12699,7 +12725,7 @@ var FaceLivenessWizard = function FaceLivenessWizard(_a) {
12699
12725
  debugMode = _s === void 0 ? false : _s,
12700
12726
  _t = _a.showLoadingOverlay,
12701
12727
  showLoadingOverlay = _t === void 0 ? true : _t;
12702
- var _u = useContext(SubmissionContext),
12728
+ var _u = useSubmissionContext(),
12703
12729
  submissionResponse = _u.submissionResponse,
12704
12730
  livenessCheckRequest = _u.livenessCheckRequest,
12705
12731
  setSelfieImage = _u.setSelfieImage,
@@ -12726,9 +12752,10 @@ var FaceLivenessWizard = function FaceLivenessWizard(_a) {
12726
12752
  var captureStartedAt = useRef();
12727
12753
  var operationStartedAt = useRef();
12728
12754
  var livenessScore = useRef();
12729
- var _z = useContext(SelfieGuidanceModelsContext),
12755
+ var _z = useSelfieGuidanceModelsContext(),
12730
12756
  start = _z.start,
12731
- stop = _z.stop;
12757
+ stop = _z.stop,
12758
+ selfieGuidanceCanvasRef = _z.canvasRef;
12732
12759
  useEffect(function () {
12733
12760
  if (precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie) {
12734
12761
  setSelfieImage(precapturedDocuments.selfie.imageData);
@@ -12754,7 +12781,7 @@ var FaceLivenessWizard = function FaceLivenessWizard(_a) {
12754
12781
  });
12755
12782
  }, [logSelfieCaptureAttempt]);
12756
12783
  var onFaceDetected = useCallback(function (prediction) {
12757
- if (prediction.face && !prediction.faceNotCentered && !prediction.faceLookingAway) {
12784
+ if (prediction.face && prediction.faceReady) {
12758
12785
  captureStartedAt.current || (captureStartedAt.current = new Date());
12759
12786
  }
12760
12787
  }, []);
@@ -12786,7 +12813,6 @@ var FaceLivenessWizard = function FaceLivenessWizard(_a) {
12786
12813
  });
12787
12814
  });
12788
12815
  }, [allowLivenessFailure, livenessCheckRequest, onFailure, onSuccess, submissionResponse]);
12789
- var selfieGuidanceCanvasRef = useContext(SelfieGuidanceModelsContext).canvasRef;
12790
12816
  var resizeCanvas = useRef(null);
12791
12817
  var onTimeoutCallback = useCallback(function () {
12792
12818
  if (allowLivenessFailure) {
@@ -13972,10 +13998,186 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
13972
13998
  var StyledVideo$1 = styled.video(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"], ["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"])));
13973
13999
  var templateObject_1$9;
13974
14000
 
14001
+ function SelfieCaptureWizard(_a) {
14002
+ var _b;
14003
+ var onLoadingStarted = _a.onLoadingStarted,
14004
+ onLoadingProgress = _a.onLoadingProgress,
14005
+ onLoadingCompleted = _a.onLoadingCompleted,
14006
+ onLoadingOverlayDismissed = _a.onLoadingOverlayDismissed,
14007
+ onCapture = _a.onCapture,
14008
+ onUserCancel = _a.onUserCancel,
14009
+ onExitCapture = _a.onExitCapture,
14010
+ precapturedDocuments = _a.precapturedDocuments,
14011
+ _c = _a.renderCameraFeed,
14012
+ renderCameraFeed = _c === void 0 ? true : _c,
14013
+ _d = _a.showLoadingOverlay,
14014
+ showLoadingOverlay = _d === void 0 ? true : _d,
14015
+ _e = _a.loadingOverlayMode,
14016
+ loadingOverlayMode = _e === void 0 ? 'default' : _e,
14017
+ customOverlayContent = _a.customOverlayContent,
14018
+ _f = _a.waitForIdCaptureModels,
14019
+ waitForIdCaptureModels = _f === void 0 ? false : _f,
14020
+ _g = _a.initialCaptureDelayMs,
14021
+ initialCaptureDelayMs = _g === void 0 ? 1000 : _g,
14022
+ _h = _a.silentFallback,
14023
+ silentFallback = _h === void 0 ? false : _h,
14024
+ guidanceMessage = _a.guidanceMessage,
14025
+ guidesComponent = _a.guidesComponent,
14026
+ _j = _a.assets,
14027
+ assets = _j === void 0 ? {} : _j,
14028
+ _k = _a.classNames,
14029
+ classNames = _k === void 0 ? {} : _k,
14030
+ _l = _a.colors,
14031
+ colors = _l === void 0 ? {} : _l,
14032
+ _m = _a.verbiage,
14033
+ verbiage = _m === void 0 ? {} : _m,
14034
+ _o = _a.debugMode,
14035
+ debugMode = _o === void 0 ? false : _o;
14036
+ var _p = useSubmissionContext(),
14037
+ setSelfieImage = _p.setSelfieImage,
14038
+ logSelfieCaptureAttempt = _p.logSelfieCaptureAttempt;
14039
+ var _q = useCameraStore(useShallow(function (state) {
14040
+ return {
14041
+ cameraAccessDenied: state.cameraAccessDenied,
14042
+ requestCameraAccess: state.requestCameraAccess,
14043
+ releaseCameraAccess: state.releaseCameraAccess
14044
+ };
14045
+ })),
14046
+ cameraAccessDenied = _q.cameraAccessDenied,
14047
+ requestCameraAccess = _q.requestCameraAccess,
14048
+ releaseCameraAccess = _q.releaseCameraAccess;
14049
+ var _r = useState(showLoadingOverlay ? 'LOADING' : 'CAPTURING'),
14050
+ captureState = _r[0],
14051
+ setCaptureState = _r[1];
14052
+ var rawCanvas = useRef(null);
14053
+ var cropCanvas = useRef(null);
14054
+ var resizeCanvas = useRef(null);
14055
+ var captureStartedAt = useRef();
14056
+ var operationStartedAt = useRef();
14057
+ var _s = useSelfieGuidanceModelsContext(),
14058
+ start = _s.start,
14059
+ stop = _s.stop,
14060
+ modelError = _s.error;
14061
+ useEffect(function () {
14062
+ if (precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie) {
14063
+ setSelfieImage(precapturedDocuments.selfie.imageData);
14064
+ setCaptureState('SUCCESS');
14065
+ return;
14066
+ }
14067
+ if (captureState !== 'CAPTURING') return;
14068
+ operationStartedAt.current = new Date();
14069
+ captureStartedAt.current = undefined;
14070
+ setTimeout(start, 1);
14071
+ return stop;
14072
+ }, [captureState, precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie, setSelfieImage, start, stop]);
14073
+ var onLoadingOverlayDismissedCallback = useCallback(function () {
14074
+ setCaptureState('CAPTURING');
14075
+ onLoadingOverlayDismissed === null || onLoadingOverlayDismissed === void 0 ? void 0 : onLoadingOverlayDismissed();
14076
+ }, [onLoadingOverlayDismissed]);
14077
+ var logCaptureMetadata = useCallback(function () {
14078
+ var _a, _b;
14079
+ logSelfieCaptureAttempt({
14080
+ autoCapture: 'Y',
14081
+ captureTime: new Date().getTime() - ((_a = captureStartedAt.current) !== null && _a !== void 0 ? _a : new Date()).getTime(),
14082
+ operationTime: new Date().getTime() - ((_b = operationStartedAt.current) !== null && _b !== void 0 ? _b : new Date()).getTime()
14083
+ });
14084
+ }, [logSelfieCaptureAttempt]);
14085
+ var onFaceDetected = useCallback(function (prediction) {
14086
+ if (prediction.face && prediction.faceReady) {
14087
+ captureStartedAt.current || (captureStartedAt.current = new Date());
14088
+ }
14089
+ }, []);
14090
+ var onSelfieCaptured = useCallback(function (frame, face) {
14091
+ logCaptureMetadata();
14092
+ var imageUrl = cropToShoulders(rawCanvas.current, cropCanvas.current, resizeCanvas.current, frame, face, 0.92, 600);
14093
+ setCaptureState('SUCCESS');
14094
+ onCapture === null || onCapture === void 0 ? void 0 : onCapture(imageUrl);
14095
+ }, [logCaptureMetadata, onCapture]);
14096
+ var onFallbackImageCaptured = useCallback(function (imageUrl) {
14097
+ setSelfieImage(imageUrl);
14098
+ setCaptureState('SUCCESS');
14099
+ onCapture === null || onCapture === void 0 ? void 0 : onCapture(imageUrl);
14100
+ }, [onCapture, setSelfieImage]);
14101
+ var guidesByRequestState = useCallback(function (props) {
14102
+ var GuidesComponent = guidesComponent !== null && guidesComponent !== void 0 ? guidesComponent : FaceCaptureGuideOverlay;
14103
+ var status = ['IN_PROGRESS', 'CAPTURE_STARTED', 'GUIDANCE_SATISFIED', 'CAPTURED'].includes(captureState) ? 'processing' : ['FAILED', 'ERROR'].includes(captureState) ? 'failure' : 'ready';
14104
+ return /*#__PURE__*/React__default.createElement(GuidesComponent, _assign({}, props, {
14105
+ status: status
14106
+ }));
14107
+ }, [captureState, guidesComponent]);
14108
+ var _t = useState(0),
14109
+ attempt = _t[0],
14110
+ setAttempt = _t[1];
14111
+ var onExitCallback = useCallback(function () {
14112
+ setAttempt(function (n) {
14113
+ return n + 1;
14114
+ });
14115
+ setCaptureState('LOADING');
14116
+ releaseCameraAccess();
14117
+ onExitCapture === null || onExitCapture === void 0 ? void 0 : onExitCapture();
14118
+ void requestCameraAccess();
14119
+ }, [onExitCapture, releaseCameraAccess, requestCameraAccess]);
14120
+ useEffect(function () {
14121
+ if (cameraAccessDenied) {
14122
+ setAttempt(function (n) {
14123
+ return n + 1;
14124
+ });
14125
+ setCaptureState('LOADING');
14126
+ }
14127
+ }, [cameraAccessDenied]);
14128
+ var initialDelayOver = useTimeout(initialCaptureDelayMs).timedOut;
14129
+ if (modelError) {
14130
+ return /*#__PURE__*/React__default.createElement(SelfieCaptureFallback, {
14131
+ onFinished: onFallbackImageCaptured,
14132
+ silentFallback: silentFallback,
14133
+ invalidSelfie: false,
14134
+ guidanceMessage: guidanceMessage
14135
+ });
14136
+ }
14137
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(InvisibleCanvas, {
14138
+ ref: rawCanvas
14139
+ }), /*#__PURE__*/React__default.createElement(InvisibleCanvas, {
14140
+ ref: cropCanvas
14141
+ }), /*#__PURE__*/React__default.createElement(InvisibleCanvas, {
14142
+ ref: resizeCanvas
14143
+ }), renderCameraFeed && ( /*#__PURE__*/React__default.createElement(CameraVideoTag, {
14144
+ className: (_b = classNames.capture) === null || _b === void 0 ? void 0 : _b.cameraFeed
14145
+ })), captureState === 'CAPTURING' && ( /*#__PURE__*/React__default.createElement(SelfieCapture, {
14146
+ onFaceDetected: onFaceDetected,
14147
+ onSelfieCaptured: onSelfieCaptured,
14148
+ onExit: onExitCallback,
14149
+ shouldCapture: initialDelayOver,
14150
+ guidanceMessage: guidanceMessage,
14151
+ guidanceSatisfied: guidanceMessage ? false : undefined,
14152
+ guidesComponent: guidesByRequestState,
14153
+ classNames: classNames.capture,
14154
+ colors: colors.capture,
14155
+ verbiage: verbiage.capture,
14156
+ debugMode: debugMode
14157
+ })), showLoadingOverlay && ( /*#__PURE__*/React__default.createElement(SelfieCaptureLoadingOverlay, {
14158
+ key: attempt,
14159
+ mode: loadingOverlayMode,
14160
+ customOverlayContent: customOverlayContent,
14161
+ assets: assets.loadingOverlay,
14162
+ classNames: classNames.loadingOverlay,
14163
+ colors: colors.loadingOverlay,
14164
+ verbiage: verbiage.loadingOverlay,
14165
+ onLoadingStarted: onLoadingStarted,
14166
+ onLoadingProgress: onLoadingProgress,
14167
+ onLoadingCompleted: onLoadingCompleted,
14168
+ onUserCancel: onUserCancel,
14169
+ onDismissed: onLoadingOverlayDismissedCallback,
14170
+ waitForIdCaptureModels: waitForIdCaptureModels
14171
+ })));
14172
+ }
14173
+
14174
+ var selfieCaptureStates = ['CAPTURING_SELFIE', 'CHECKING_LIVENESS'];
14175
+ var activeCaptureStates = __spreadArray(__spreadArray([], selfieCaptureStates, true), ['CAPTURING_SIGNATURE'], false);
13975
14176
  var VideoSignatureWizard = function VideoSignatureWizard(_a) {
13976
14177
  var onLoadingStarted = _a.onLoadingStarted,
13977
14178
  onLoadingProgress = _a.onLoadingProgress,
13978
14179
  onLoadingCompleted = _a.onLoadingCompleted,
14180
+ onSelfieCaptured = _a.onSelfieCaptured,
13979
14181
  onComplete = _a.onComplete,
13980
14182
  onVideoCaptured = _a.onVideoCaptured,
13981
14183
  onRetryClicked = _a.onRetryClicked,
@@ -13997,52 +14199,54 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
13997
14199
  allowSignatureAfterLivenessCheckFailure = _g === void 0 ? false : _g,
13998
14200
  _h = _a.restartVideoOnSignaturePadCleared,
13999
14201
  restartVideoOnSignaturePadCleared = _h === void 0 ? true : _h,
14202
+ _j = _a.skipLivenessValidation,
14203
+ skipLivenessValidation = _j === void 0 ? false : _j,
14000
14204
  faceLivenessProps = _a.faceLivenessProps,
14001
- _j = _a.assets,
14002
- assets = _j === void 0 ? {} : _j,
14003
- _k = _a.classNames,
14004
- classNames = _k === void 0 ? {} : _k,
14005
- _l = _a.colors,
14006
- colors = _l === void 0 ? {} : _l,
14007
- _m = _a.verbiage,
14008
- verbiage = _m === void 0 ? {} : _m,
14009
- _o = _a.debugMode,
14010
- debugMode = _o === void 0 ? false : _o;
14011
- var _p = useContext(SubmissionContext),
14012
- selfieImage = _p.selfieImage,
14013
- setSelfieImage = _p.setSelfieImage,
14014
- setSignatureData = _p.setSignatureData,
14015
- setSignatureVideoUrl = _p.setSignatureVideoUrl,
14016
- logSelfieCaptureAttempt = _p.logSelfieCaptureAttempt;
14205
+ _k = _a.assets,
14206
+ assets = _k === void 0 ? {} : _k,
14207
+ _l = _a.classNames,
14208
+ classNames = _l === void 0 ? {} : _l,
14209
+ _m = _a.colors,
14210
+ colors = _m === void 0 ? {} : _m,
14211
+ _o = _a.verbiage,
14212
+ verbiage = _o === void 0 ? {} : _o,
14213
+ _p = _a.debugMode,
14214
+ debugMode = _p === void 0 ? false : _p;
14215
+ var _q = useSubmissionContext(),
14216
+ selfieImage = _q.selfieImage,
14217
+ setSelfieImage = _q.setSelfieImage,
14218
+ setSignatureData = _q.setSignatureData,
14219
+ setSignatureVideoUrl = _q.setSignatureVideoUrl,
14220
+ logSelfieCaptureAttempt = _q.logSelfieCaptureAttempt,
14221
+ uploadDocument = _q.uploadDocument;
14017
14222
  var cameraAccessDenied = useCameraStore(useShallow(function (state) {
14018
14223
  return {
14019
14224
  cameraAccessDenied: state.cameraAccessDenied
14020
14225
  };
14021
14226
  })).cameraAccessDenied;
14022
- var _q = useState('CHECKING_LIVENESS'),
14023
- captureState = _q[0],
14024
- setCaptureState = _q[1];
14227
+ var _r = useState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS'),
14228
+ captureState = _r[0],
14229
+ setCaptureState = _r[1];
14025
14230
  var operationStartedAt = useRef();
14026
14231
  var captureStartedAt = useRef();
14027
14232
  var captureEndedAt = useRef();
14028
- var _r = useSelfieGuidanceModelsContext(),
14029
- start = _r.start,
14030
- stop = _r.stop;
14233
+ var _s = useSelfieGuidanceModelsContext(),
14234
+ start = _s.start,
14235
+ stop = _s.stop;
14031
14236
  useEffect(function () {
14032
14237
  operationStartedAt.current = new Date();
14033
14238
  }, []);
14239
+ var isSelfieCaptureState = selfieCaptureStates.includes(captureState);
14240
+ var isActiveCaptureState = activeCaptureStates.includes(captureState);
14034
14241
  useEffect(function () {
14035
- if (captureState !== 'CHECKING_LIVENESS') return;
14242
+ if (!isSelfieCaptureState) return;
14036
14243
  captureStartedAt.current = new Date();
14037
- }, [captureState]);
14038
- var shouldRun = ['CHECKING_LIVENESS', 'CAPTURING_SIGNATURE'].includes(captureState);
14244
+ }, [isSelfieCaptureState]);
14039
14245
  useEffect(function () {
14040
- if (!shouldRun) return;
14246
+ if (!isActiveCaptureState) return;
14041
14247
  start();
14042
- return function () {
14043
- return stop();
14044
- };
14045
- }, [start, stop, shouldRun]);
14248
+ return stop;
14249
+ }, [start, stop, isActiveCaptureState]);
14046
14250
  var logCaptureMetadata = useCallback(function () {
14047
14251
  var _a, _b, _c;
14048
14252
  logSelfieCaptureAttempt({
@@ -14063,9 +14267,17 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
14063
14267
  setSelfieImage(selfieFromRequest);
14064
14268
  }
14065
14269
  }, [logCaptureMetadata, onFaceLivenessSuccessProp, selfieImage, setSelfieImage]);
14066
- var _s = useState(null),
14067
- signatureImageUrl = _s[0],
14068
- setSignatureImageUrl = _s[1];
14270
+ var onSelfieCapture = useCallback(function (imageUrl) {
14271
+ setSelfieImage(imageUrl);
14272
+ setCaptureState('CAPTURING_SIGNATURE');
14273
+ logCaptureMetadata();
14274
+ uploadDocument(b64toBlob(dataUrlToBase64Sync(imageUrl), 'image/jpeg')).then(function (documentId) {
14275
+ onSelfieCaptured === null || onSelfieCaptured === void 0 ? void 0 : onSelfieCaptured(documentId);
14276
+ });
14277
+ }, [logCaptureMetadata, onSelfieCaptured, setSelfieImage, uploadDocument]);
14278
+ var _t = useState(null),
14279
+ signatureImageUrl = _t[0],
14280
+ setSignatureImageUrl = _t[1];
14069
14281
  var onSignatureCaptureCompleted = useCallback(function (videoData, signatureData, signatureImageData) {
14070
14282
  setSignatureData(signatureData);
14071
14283
  setSignatureVideoUrl(URL.createObjectURL(videoData));
@@ -14073,41 +14285,41 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
14073
14285
  setCaptureState('SUCCESS');
14074
14286
  onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(videoData, signatureData, signatureImageData);
14075
14287
  }, [onVideoCaptured, setSignatureData, setSignatureVideoUrl]);
14076
- var _t = useState(true),
14077
- showLoadingOverlay = _t[0],
14078
- setShowLoadingOverlay = _t[1];
14288
+ var _u = useState(true),
14289
+ showLoadingOverlay = _u[0],
14290
+ setShowLoadingOverlay = _u[1];
14079
14291
  var onSignatureCaptureFacesNotDetected = useCallback(function () {
14080
14292
  setShowLoadingOverlay(false);
14081
- setCaptureState('CHECKING_LIVENESS');
14293
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
14082
14294
  useVideoSignatureStore.getState().clearRecordedData();
14083
- }, []);
14084
- var _u = useState(0),
14085
- attempt = _u[0],
14086
- setAttempt = _u[1];
14295
+ }, [skipLivenessValidation]);
14296
+ var _v = useState(0),
14297
+ attempt = _v[0],
14298
+ setAttempt = _v[1];
14087
14299
  var onRetry = useCallback(function () {
14088
14300
  onRetryClicked === null || onRetryClicked === void 0 ? void 0 : onRetryClicked();
14089
14301
  setAttempt(function (n) {
14090
14302
  return n + 1;
14091
14303
  });
14092
- setCaptureState('CHECKING_LIVENESS');
14093
- }, [onRetryClicked]);
14304
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
14305
+ }, [onRetryClicked, skipLivenessValidation]);
14094
14306
  var onExitSignatureCapture = useCallback(function () {
14095
14307
  setAttempt(function (n) {
14096
14308
  return n + 1;
14097
14309
  });
14098
- setCaptureState('CHECKING_LIVENESS');
14310
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
14099
14311
  onExitCapture === null || onExitCapture === void 0 ? void 0 : onExitCapture();
14100
14312
  useVideoSignatureStore.getState().clearRecordedData();
14101
- }, [onExitCapture]);
14313
+ }, [onExitCapture, skipLivenessValidation]);
14102
14314
  var showSuccessScreen = useShowSuccessScreen(skipSuccessScreen, captureState === 'SUCCESS', onComplete);
14103
14315
  useEffect(function () {
14104
14316
  if (cameraAccessDenied) {
14105
14317
  setAttempt(function (n) {
14106
14318
  return n + 1;
14107
14319
  });
14108
- setCaptureState('CHECKING_LIVENESS');
14320
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
14109
14321
  }
14110
- }, [cameraAccessDenied]);
14322
+ }, [cameraAccessDenied, skipLivenessValidation]);
14111
14323
  var guidesComponent = useCallback(function (props) {
14112
14324
  return /*#__PURE__*/React__default.createElement(VideoSignatureWizardGuides, _assign({}, props, {
14113
14325
  classNames: classNames === null || classNames === void 0 ? void 0 : classNames.guides,
@@ -14147,6 +14359,7 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
14147
14359
  onUserCancel: onUserCancel,
14148
14360
  onExitAfterFailure: onExitAfterFailure,
14149
14361
  onLoadingOverlayDismissed: onLoadingOverlayDismissedCallback,
14362
+ showLoadingOverlay: showLoadingOverlay,
14150
14363
  customOverlayContent: customOverlayContent,
14151
14364
  loadingOverlayMode: loadingOverlayMode,
14152
14365
  guidesComponent: guidesComponent,
@@ -14155,8 +14368,29 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
14155
14368
  colors: colors.faceLiveness,
14156
14369
  verbiage: verbiage.faceLiveness,
14157
14370
  debugMode: debugMode,
14158
- renderCameraFeed: false,
14159
- showLoadingOverlay: showLoadingOverlay
14371
+ renderCameraFeed: false
14372
+ }));
14373
+ case 'CAPTURING_SELFIE':
14374
+ return /*#__PURE__*/React__default.createElement(SelfieCaptureWizard, _assign({
14375
+ key: "selfie-capture-".concat(attempt)
14376
+ }, faceLivenessProps, {
14377
+ onLoadingStarted: onLoadingStarted,
14378
+ onLoadingProgress: onLoadingProgress,
14379
+ onLoadingCompleted: onLoadingCompleted,
14380
+ onLoadingOverlayDismissed: onLoadingOverlayDismissedCallback,
14381
+ onCapture: onSelfieCapture,
14382
+ onUserCancel: onUserCancel,
14383
+ onExitCapture: onExitCapture,
14384
+ showLoadingOverlay: showLoadingOverlay,
14385
+ customOverlayContent: customOverlayContent,
14386
+ loadingOverlayMode: loadingOverlayMode,
14387
+ guidesComponent: guidesComponent,
14388
+ assets: assets.faceLiveness,
14389
+ classNames: classNames.faceLiveness,
14390
+ colors: colors.faceLiveness,
14391
+ verbiage: verbiage.faceLiveness,
14392
+ debugMode: debugMode,
14393
+ renderCameraFeed: false
14160
14394
  }));
14161
14395
  case 'CAPTURING_SIGNATURE':
14162
14396
  return /*#__PURE__*/React__default.createElement(VideoSignatureCapture, {
@@ -17947,6 +18181,7 @@ var SignatureKYC = function SignatureKYC(_a) {
17947
18181
  onDocumentUploadProgress = _a.onDocumentUploadProgress,
17948
18182
  onDocumentUploaded = _a.onDocumentUploaded,
17949
18183
  onDocumentUploadFailed = _a.onDocumentUploadFailed,
18184
+ onSelfieCaptured = _a.onSelfieCaptured,
17950
18185
  onBeforeSubmit = _a.onBeforeSubmit,
17951
18186
  onSubmit = _a.onSubmit,
17952
18187
  onComplete = _a.onComplete,
@@ -17975,15 +18210,17 @@ var SignatureKYC = function SignatureKYC(_a) {
17975
18210
  _k = _a.restartVideoOnSignaturePadCleared,
17976
18211
  restartVideoOnSignaturePadCleared = _k === void 0 ? true : _k,
17977
18212
  faceLivenessProps = _a.faceLivenessProps,
17978
- _l = _a.theme,
17979
- theme = _l === void 0 ? 'default' : _l,
18213
+ _l = _a.skipLivenessValidation,
18214
+ skipLivenessValidation = _l === void 0 ? false : _l,
18215
+ _m = _a.theme,
18216
+ theme = _m === void 0 ? 'default' : _m,
17980
18217
  classNames = _a.classNames,
17981
18218
  colors = _a.colors,
17982
18219
  verbiage = _a.verbiage,
17983
18220
  geolocationEnabled = _a.geolocationEnabled,
17984
18221
  geolocationRequired = _a.geolocationRequired,
17985
- _m = _a.debugMode,
17986
- debugMode = _m === void 0 ? false : _m;
18222
+ _o = _a.debugMode,
18223
+ debugMode = _o === void 0 ? false : _o;
17987
18224
  useLanguage(lang);
17988
18225
  useDebugLogging(debugMode);
17989
18226
  return /*#__PURE__*/React__default.createElement(AuthProvider, {
@@ -18025,6 +18262,7 @@ var SignatureKYC = function SignatureKYC(_a) {
18025
18262
  onLoadingStarted: onLoadingStarted,
18026
18263
  onLoadingProgress: onLoadingProgress,
18027
18264
  onLoadingCompleted: onLoadingCompleted,
18265
+ onSelfieCaptured: onSelfieCaptured,
18028
18266
  customOverlayContent: customOverlayContent,
18029
18267
  onLoadingOverlayDismissed: onLoadingOverlayDismissed,
18030
18268
  loadingOverlayMode: loadingOverlayMode,
@@ -18036,6 +18274,7 @@ var SignatureKYC = function SignatureKYC(_a) {
18036
18274
  faceLivenessProps: faceLivenessProps,
18037
18275
  allowSignatureAfterLivenessCheckFailure: allowSignatureAfterLivenessCheckFailure,
18038
18276
  restartVideoOnSignaturePadCleared: restartVideoOnSignaturePadCleared,
18277
+ skipLivenessValidation: skipLivenessValidation,
18039
18278
  classNames: classNames,
18040
18279
  colors: colors,
18041
18280
  debugMode: debugMode,
@@ -18043,7 +18282,7 @@ var SignatureKYC = function SignatureKYC(_a) {
18043
18282
  onModelError: onModelError,
18044
18283
  onUserCancel: onUserCancel
18045
18284
  };
18046
- }, [onLoadingStarted, onLoadingProgress, onLoadingCompleted, customOverlayContent, onLoadingOverlayDismissed, loadingOverlayMode, skipSuccessScreen, captureAudio, minSignaturePadPoints, headTrackingBoundaryPercentage, modelLoadTimeoutMs, faceLivenessProps, allowSignatureAfterLivenessCheckFailure, restartVideoOnSignaturePadCleared, classNames, colors, debugMode, verbiage, onModelError, onUserCancel])
18285
+ }, [onLoadingStarted, onLoadingProgress, onLoadingCompleted, onSelfieCaptured, customOverlayContent, onLoadingOverlayDismissed, loadingOverlayMode, skipSuccessScreen, captureAudio, minSignaturePadPoints, headTrackingBoundaryPercentage, modelLoadTimeoutMs, faceLivenessProps, allowSignatureAfterLivenessCheckFailure, restartVideoOnSignaturePadCleared, skipLivenessValidation, classNames, colors, debugMode, verbiage, onModelError, onUserCancel])
18047
18286
  })))));
18048
18287
  };
18049
18288