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.
@@ -211,7 +211,7 @@
211
211
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
212
212
  };
213
213
 
214
- var webSdkVersion = '2.3.36';
214
+ var webSdkVersion = '2.3.38';
215
215
 
216
216
  function getPlatform() {
217
217
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -265,6 +265,25 @@
265
265
  var _a, _b;
266
266
  return (_b = (_a = url.match(/^(data:.*;base64),/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';
267
267
  }
268
+ function b64toBlob(b64Data, contentType, sliceSize) {
269
+ if (sliceSize === void 0) {
270
+ sliceSize = 512;
271
+ }
272
+ var byteCharacters = atob(b64Data);
273
+ var byteArrays = [];
274
+ for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
275
+ var slice = byteCharacters.slice(offset, offset + sliceSize);
276
+ var byteNumbers = new Array(slice.length);
277
+ for (var i = 0; i < slice.length; i++) {
278
+ byteNumbers[i] = slice.charCodeAt(i);
279
+ }
280
+ var byteArray = new Uint8Array(byteNumbers);
281
+ byteArrays.push(byteArray);
282
+ }
283
+ return new Blob(byteArrays, {
284
+ type: contentType
285
+ });
286
+ }
268
287
  function blobToB64(blob) {
269
288
  return new Promise(function (resolve) {
270
289
  var reader = new FileReader();
@@ -3067,6 +3086,13 @@
3067
3086
  });
3068
3087
  });
3069
3088
  }
3089
+ function useSubmissionContext() {
3090
+ var context = React.useContext(SubmissionContext);
3091
+ if (!context) {
3092
+ throw new Error('useSubmissionContext must be used within a SubmissionProvider');
3093
+ }
3094
+ return context;
3095
+ }
3070
3096
 
3071
3097
  function _typeof$1(o) {
3072
3098
  "@babel/helpers - typeof";
@@ -20619,7 +20645,7 @@
20619
20645
  }), children);
20620
20646
  }
20621
20647
  function useSelfieGuidanceModelsContext() {
20622
- var context = React__namespace.useContext(SelfieGuidanceModelsContext);
20648
+ var context = React.useContext(SelfieGuidanceModelsContext);
20623
20649
  if (!context) {
20624
20650
  throw new Error('useSelfieGuidanceModelsContext must be used within a SelfieGuidanceModelsProvider');
20625
20651
  }
@@ -21837,7 +21863,7 @@
21837
21863
  debugMode = _s === void 0 ? false : _s,
21838
21864
  _t = _a.showLoadingOverlay,
21839
21865
  showLoadingOverlay = _t === void 0 ? true : _t;
21840
- var _u = React.useContext(SubmissionContext),
21866
+ var _u = useSubmissionContext(),
21841
21867
  submissionResponse = _u.submissionResponse,
21842
21868
  livenessCheckRequest = _u.livenessCheckRequest,
21843
21869
  setSelfieImage = _u.setSelfieImage,
@@ -21864,9 +21890,10 @@
21864
21890
  var captureStartedAt = React.useRef();
21865
21891
  var operationStartedAt = React.useRef();
21866
21892
  var livenessScore = React.useRef();
21867
- var _z = React.useContext(SelfieGuidanceModelsContext),
21893
+ var _z = useSelfieGuidanceModelsContext(),
21868
21894
  start = _z.start,
21869
- stop = _z.stop;
21895
+ stop = _z.stop,
21896
+ selfieGuidanceCanvasRef = _z.canvasRef;
21870
21897
  React.useEffect(function () {
21871
21898
  if (precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie) {
21872
21899
  setSelfieImage(precapturedDocuments.selfie.imageData);
@@ -21892,7 +21919,7 @@
21892
21919
  });
21893
21920
  }, [logSelfieCaptureAttempt]);
21894
21921
  var onFaceDetected = React.useCallback(function (prediction) {
21895
- if (prediction.face && !prediction.faceNotCentered && !prediction.faceLookingAway) {
21922
+ if (prediction.face && prediction.faceReady) {
21896
21923
  captureStartedAt.current || (captureStartedAt.current = new Date());
21897
21924
  }
21898
21925
  }, []);
@@ -21924,7 +21951,6 @@
21924
21951
  });
21925
21952
  });
21926
21953
  }, [allowLivenessFailure, livenessCheckRequest, onFailure, onSuccess, submissionResponse]);
21927
- var selfieGuidanceCanvasRef = React.useContext(SelfieGuidanceModelsContext).canvasRef;
21928
21954
  var resizeCanvas = React.useRef(null);
21929
21955
  var onTimeoutCallback = React.useCallback(function () {
21930
21956
  if (allowLivenessFailure) {
@@ -23878,10 +23904,186 @@
23878
23904
  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"])));
23879
23905
  var templateObject_1$9;
23880
23906
 
23907
+ function SelfieCaptureWizard(_a) {
23908
+ var _b;
23909
+ var onLoadingStarted = _a.onLoadingStarted,
23910
+ onLoadingProgress = _a.onLoadingProgress,
23911
+ onLoadingCompleted = _a.onLoadingCompleted,
23912
+ onLoadingOverlayDismissed = _a.onLoadingOverlayDismissed,
23913
+ onCapture = _a.onCapture,
23914
+ onUserCancel = _a.onUserCancel,
23915
+ onExitCapture = _a.onExitCapture,
23916
+ precapturedDocuments = _a.precapturedDocuments,
23917
+ _c = _a.renderCameraFeed,
23918
+ renderCameraFeed = _c === void 0 ? true : _c,
23919
+ _d = _a.showLoadingOverlay,
23920
+ showLoadingOverlay = _d === void 0 ? true : _d,
23921
+ _e = _a.loadingOverlayMode,
23922
+ loadingOverlayMode = _e === void 0 ? 'default' : _e,
23923
+ customOverlayContent = _a.customOverlayContent,
23924
+ _f = _a.waitForIdCaptureModels,
23925
+ waitForIdCaptureModels = _f === void 0 ? false : _f,
23926
+ _g = _a.initialCaptureDelayMs,
23927
+ initialCaptureDelayMs = _g === void 0 ? 1000 : _g,
23928
+ _h = _a.silentFallback,
23929
+ silentFallback = _h === void 0 ? false : _h,
23930
+ guidanceMessage = _a.guidanceMessage,
23931
+ guidesComponent = _a.guidesComponent,
23932
+ _j = _a.assets,
23933
+ assets = _j === void 0 ? {} : _j,
23934
+ _k = _a.classNames,
23935
+ classNames = _k === void 0 ? {} : _k,
23936
+ _l = _a.colors,
23937
+ colors = _l === void 0 ? {} : _l,
23938
+ _m = _a.verbiage,
23939
+ verbiage = _m === void 0 ? {} : _m,
23940
+ _o = _a.debugMode,
23941
+ debugMode = _o === void 0 ? false : _o;
23942
+ var _p = useSubmissionContext(),
23943
+ setSelfieImage = _p.setSelfieImage,
23944
+ logSelfieCaptureAttempt = _p.logSelfieCaptureAttempt;
23945
+ var _q = useCameraStore(useShallow(function (state) {
23946
+ return {
23947
+ cameraAccessDenied: state.cameraAccessDenied,
23948
+ requestCameraAccess: state.requestCameraAccess,
23949
+ releaseCameraAccess: state.releaseCameraAccess
23950
+ };
23951
+ })),
23952
+ cameraAccessDenied = _q.cameraAccessDenied,
23953
+ requestCameraAccess = _q.requestCameraAccess,
23954
+ releaseCameraAccess = _q.releaseCameraAccess;
23955
+ var _r = React.useState(showLoadingOverlay ? 'LOADING' : 'CAPTURING'),
23956
+ captureState = _r[0],
23957
+ setCaptureState = _r[1];
23958
+ var rawCanvas = React.useRef(null);
23959
+ var cropCanvas = React.useRef(null);
23960
+ var resizeCanvas = React.useRef(null);
23961
+ var captureStartedAt = React.useRef();
23962
+ var operationStartedAt = React.useRef();
23963
+ var _s = useSelfieGuidanceModelsContext(),
23964
+ start = _s.start,
23965
+ stop = _s.stop,
23966
+ modelError = _s.error;
23967
+ React.useEffect(function () {
23968
+ if (precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie) {
23969
+ setSelfieImage(precapturedDocuments.selfie.imageData);
23970
+ setCaptureState('SUCCESS');
23971
+ return;
23972
+ }
23973
+ if (captureState !== 'CAPTURING') return;
23974
+ operationStartedAt.current = new Date();
23975
+ captureStartedAt.current = undefined;
23976
+ setTimeout(start, 1);
23977
+ return stop;
23978
+ }, [captureState, precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie, setSelfieImage, start, stop]);
23979
+ var onLoadingOverlayDismissedCallback = React.useCallback(function () {
23980
+ setCaptureState('CAPTURING');
23981
+ onLoadingOverlayDismissed === null || onLoadingOverlayDismissed === void 0 ? void 0 : onLoadingOverlayDismissed();
23982
+ }, [onLoadingOverlayDismissed]);
23983
+ var logCaptureMetadata = React.useCallback(function () {
23984
+ var _a, _b;
23985
+ logSelfieCaptureAttempt({
23986
+ autoCapture: 'Y',
23987
+ captureTime: new Date().getTime() - ((_a = captureStartedAt.current) !== null && _a !== void 0 ? _a : new Date()).getTime(),
23988
+ operationTime: new Date().getTime() - ((_b = operationStartedAt.current) !== null && _b !== void 0 ? _b : new Date()).getTime()
23989
+ });
23990
+ }, [logSelfieCaptureAttempt]);
23991
+ var onFaceDetected = React.useCallback(function (prediction) {
23992
+ if (prediction.face && prediction.faceReady) {
23993
+ captureStartedAt.current || (captureStartedAt.current = new Date());
23994
+ }
23995
+ }, []);
23996
+ var onSelfieCaptured = React.useCallback(function (frame, face) {
23997
+ logCaptureMetadata();
23998
+ var imageUrl = cropToShoulders(rawCanvas.current, cropCanvas.current, resizeCanvas.current, frame, face, 0.92, 600);
23999
+ setCaptureState('SUCCESS');
24000
+ onCapture === null || onCapture === void 0 ? void 0 : onCapture(imageUrl);
24001
+ }, [logCaptureMetadata, onCapture]);
24002
+ var onFallbackImageCaptured = React.useCallback(function (imageUrl) {
24003
+ setSelfieImage(imageUrl);
24004
+ setCaptureState('SUCCESS');
24005
+ onCapture === null || onCapture === void 0 ? void 0 : onCapture(imageUrl);
24006
+ }, [onCapture, setSelfieImage]);
24007
+ var guidesByRequestState = React.useCallback(function (props) {
24008
+ var GuidesComponent = guidesComponent !== null && guidesComponent !== void 0 ? guidesComponent : FaceCaptureGuideOverlay;
24009
+ var status = ['IN_PROGRESS', 'CAPTURE_STARTED', 'GUIDANCE_SATISFIED', 'CAPTURED'].includes(captureState) ? 'processing' : ['FAILED', 'ERROR'].includes(captureState) ? 'failure' : 'ready';
24010
+ return /*#__PURE__*/React.createElement(GuidesComponent, _assign({}, props, {
24011
+ status: status
24012
+ }));
24013
+ }, [captureState, guidesComponent]);
24014
+ var _t = React.useState(0),
24015
+ attempt = _t[0],
24016
+ setAttempt = _t[1];
24017
+ var onExitCallback = React.useCallback(function () {
24018
+ setAttempt(function (n) {
24019
+ return n + 1;
24020
+ });
24021
+ setCaptureState('LOADING');
24022
+ releaseCameraAccess();
24023
+ onExitCapture === null || onExitCapture === void 0 ? void 0 : onExitCapture();
24024
+ void requestCameraAccess();
24025
+ }, [onExitCapture, releaseCameraAccess, requestCameraAccess]);
24026
+ React.useEffect(function () {
24027
+ if (cameraAccessDenied) {
24028
+ setAttempt(function (n) {
24029
+ return n + 1;
24030
+ });
24031
+ setCaptureState('LOADING');
24032
+ }
24033
+ }, [cameraAccessDenied]);
24034
+ var initialDelayOver = useTimeout(initialCaptureDelayMs).timedOut;
24035
+ if (modelError) {
24036
+ return /*#__PURE__*/React.createElement(SelfieCaptureFallback, {
24037
+ onFinished: onFallbackImageCaptured,
24038
+ silentFallback: silentFallback,
24039
+ invalidSelfie: false,
24040
+ guidanceMessage: guidanceMessage
24041
+ });
24042
+ }
24043
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(InvisibleCanvas, {
24044
+ ref: rawCanvas
24045
+ }), /*#__PURE__*/React.createElement(InvisibleCanvas, {
24046
+ ref: cropCanvas
24047
+ }), /*#__PURE__*/React.createElement(InvisibleCanvas, {
24048
+ ref: resizeCanvas
24049
+ }), renderCameraFeed && ( /*#__PURE__*/React.createElement(CameraVideoTag, {
24050
+ className: (_b = classNames.capture) === null || _b === void 0 ? void 0 : _b.cameraFeed
24051
+ })), captureState === 'CAPTURING' && ( /*#__PURE__*/React.createElement(SelfieCapture, {
24052
+ onFaceDetected: onFaceDetected,
24053
+ onSelfieCaptured: onSelfieCaptured,
24054
+ onExit: onExitCallback,
24055
+ shouldCapture: initialDelayOver,
24056
+ guidanceMessage: guidanceMessage,
24057
+ guidanceSatisfied: guidanceMessage ? false : undefined,
24058
+ guidesComponent: guidesByRequestState,
24059
+ classNames: classNames.capture,
24060
+ colors: colors.capture,
24061
+ verbiage: verbiage.capture,
24062
+ debugMode: debugMode
24063
+ })), showLoadingOverlay && ( /*#__PURE__*/React.createElement(SelfieCaptureLoadingOverlay, {
24064
+ key: attempt,
24065
+ mode: loadingOverlayMode,
24066
+ customOverlayContent: customOverlayContent,
24067
+ assets: assets.loadingOverlay,
24068
+ classNames: classNames.loadingOverlay,
24069
+ colors: colors.loadingOverlay,
24070
+ verbiage: verbiage.loadingOverlay,
24071
+ onLoadingStarted: onLoadingStarted,
24072
+ onLoadingProgress: onLoadingProgress,
24073
+ onLoadingCompleted: onLoadingCompleted,
24074
+ onUserCancel: onUserCancel,
24075
+ onDismissed: onLoadingOverlayDismissedCallback,
24076
+ waitForIdCaptureModels: waitForIdCaptureModels
24077
+ })));
24078
+ }
24079
+
24080
+ var selfieCaptureStates = ['CAPTURING_SELFIE', 'CHECKING_LIVENESS'];
24081
+ var activeCaptureStates = __spreadArray(__spreadArray([], selfieCaptureStates, true), ['CAPTURING_SIGNATURE'], false);
23881
24082
  var VideoSignatureWizard = function VideoSignatureWizard(_a) {
23882
24083
  var onLoadingStarted = _a.onLoadingStarted,
23883
24084
  onLoadingProgress = _a.onLoadingProgress,
23884
24085
  onLoadingCompleted = _a.onLoadingCompleted,
24086
+ onSelfieCaptured = _a.onSelfieCaptured,
23885
24087
  onComplete = _a.onComplete,
23886
24088
  onVideoCaptured = _a.onVideoCaptured,
23887
24089
  onRetryClicked = _a.onRetryClicked,
@@ -23903,52 +24105,54 @@
23903
24105
  allowSignatureAfterLivenessCheckFailure = _g === void 0 ? false : _g,
23904
24106
  _h = _a.restartVideoOnSignaturePadCleared,
23905
24107
  restartVideoOnSignaturePadCleared = _h === void 0 ? true : _h,
24108
+ _j = _a.skipLivenessValidation,
24109
+ skipLivenessValidation = _j === void 0 ? false : _j,
23906
24110
  faceLivenessProps = _a.faceLivenessProps,
23907
- _j = _a.assets,
23908
- assets = _j === void 0 ? {} : _j,
23909
- _k = _a.classNames,
23910
- classNames = _k === void 0 ? {} : _k,
23911
- _l = _a.colors,
23912
- colors = _l === void 0 ? {} : _l,
23913
- _m = _a.verbiage,
23914
- verbiage = _m === void 0 ? {} : _m,
23915
- _o = _a.debugMode,
23916
- debugMode = _o === void 0 ? false : _o;
23917
- var _p = React.useContext(SubmissionContext),
23918
- selfieImage = _p.selfieImage,
23919
- setSelfieImage = _p.setSelfieImage,
23920
- setSignatureData = _p.setSignatureData,
23921
- setSignatureVideoUrl = _p.setSignatureVideoUrl,
23922
- logSelfieCaptureAttempt = _p.logSelfieCaptureAttempt;
24111
+ _k = _a.assets,
24112
+ assets = _k === void 0 ? {} : _k,
24113
+ _l = _a.classNames,
24114
+ classNames = _l === void 0 ? {} : _l,
24115
+ _m = _a.colors,
24116
+ colors = _m === void 0 ? {} : _m,
24117
+ _o = _a.verbiage,
24118
+ verbiage = _o === void 0 ? {} : _o,
24119
+ _p = _a.debugMode,
24120
+ debugMode = _p === void 0 ? false : _p;
24121
+ var _q = useSubmissionContext(),
24122
+ selfieImage = _q.selfieImage,
24123
+ setSelfieImage = _q.setSelfieImage,
24124
+ setSignatureData = _q.setSignatureData,
24125
+ setSignatureVideoUrl = _q.setSignatureVideoUrl,
24126
+ logSelfieCaptureAttempt = _q.logSelfieCaptureAttempt,
24127
+ uploadDocument = _q.uploadDocument;
23923
24128
  var cameraAccessDenied = useCameraStore(useShallow(function (state) {
23924
24129
  return {
23925
24130
  cameraAccessDenied: state.cameraAccessDenied
23926
24131
  };
23927
24132
  })).cameraAccessDenied;
23928
- var _q = React.useState('CHECKING_LIVENESS'),
23929
- captureState = _q[0],
23930
- setCaptureState = _q[1];
24133
+ var _r = React.useState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS'),
24134
+ captureState = _r[0],
24135
+ setCaptureState = _r[1];
23931
24136
  var operationStartedAt = React.useRef();
23932
24137
  var captureStartedAt = React.useRef();
23933
24138
  var captureEndedAt = React.useRef();
23934
- var _r = useSelfieGuidanceModelsContext(),
23935
- start = _r.start,
23936
- stop = _r.stop;
24139
+ var _s = useSelfieGuidanceModelsContext(),
24140
+ start = _s.start,
24141
+ stop = _s.stop;
23937
24142
  React.useEffect(function () {
23938
24143
  operationStartedAt.current = new Date();
23939
24144
  }, []);
24145
+ var isSelfieCaptureState = selfieCaptureStates.includes(captureState);
24146
+ var isActiveCaptureState = activeCaptureStates.includes(captureState);
23940
24147
  React.useEffect(function () {
23941
- if (captureState !== 'CHECKING_LIVENESS') return;
24148
+ if (!isSelfieCaptureState) return;
23942
24149
  captureStartedAt.current = new Date();
23943
- }, [captureState]);
23944
- var shouldRun = ['CHECKING_LIVENESS', 'CAPTURING_SIGNATURE'].includes(captureState);
24150
+ }, [isSelfieCaptureState]);
23945
24151
  React.useEffect(function () {
23946
- if (!shouldRun) return;
24152
+ if (!isActiveCaptureState) return;
23947
24153
  start();
23948
- return function () {
23949
- return stop();
23950
- };
23951
- }, [start, stop, shouldRun]);
24154
+ return stop;
24155
+ }, [start, stop, isActiveCaptureState]);
23952
24156
  var logCaptureMetadata = React.useCallback(function () {
23953
24157
  var _a, _b, _c;
23954
24158
  logSelfieCaptureAttempt({
@@ -23969,9 +24173,17 @@
23969
24173
  setSelfieImage(selfieFromRequest);
23970
24174
  }
23971
24175
  }, [logCaptureMetadata, onFaceLivenessSuccessProp, selfieImage, setSelfieImage]);
23972
- var _s = React.useState(null),
23973
- signatureImageUrl = _s[0],
23974
- setSignatureImageUrl = _s[1];
24176
+ var onSelfieCapture = React.useCallback(function (imageUrl) {
24177
+ setSelfieImage(imageUrl);
24178
+ setCaptureState('CAPTURING_SIGNATURE');
24179
+ logCaptureMetadata();
24180
+ uploadDocument(b64toBlob(dataUrlToBase64Sync(imageUrl), 'image/jpeg')).then(function (documentId) {
24181
+ onSelfieCaptured === null || onSelfieCaptured === void 0 ? void 0 : onSelfieCaptured(documentId);
24182
+ });
24183
+ }, [logCaptureMetadata, onSelfieCaptured, setSelfieImage, uploadDocument]);
24184
+ var _t = React.useState(null),
24185
+ signatureImageUrl = _t[0],
24186
+ setSignatureImageUrl = _t[1];
23975
24187
  var onSignatureCaptureCompleted = React.useCallback(function (videoData, signatureData, signatureImageData) {
23976
24188
  setSignatureData(signatureData);
23977
24189
  setSignatureVideoUrl(URL.createObjectURL(videoData));
@@ -23979,41 +24191,41 @@
23979
24191
  setCaptureState('SUCCESS');
23980
24192
  onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(videoData, signatureData, signatureImageData);
23981
24193
  }, [onVideoCaptured, setSignatureData, setSignatureVideoUrl]);
23982
- var _t = React.useState(true),
23983
- showLoadingOverlay = _t[0],
23984
- setShowLoadingOverlay = _t[1];
24194
+ var _u = React.useState(true),
24195
+ showLoadingOverlay = _u[0],
24196
+ setShowLoadingOverlay = _u[1];
23985
24197
  var onSignatureCaptureFacesNotDetected = React.useCallback(function () {
23986
24198
  setShowLoadingOverlay(false);
23987
- setCaptureState('CHECKING_LIVENESS');
24199
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
23988
24200
  useVideoSignatureStore.getState().clearRecordedData();
23989
- }, []);
23990
- var _u = React.useState(0),
23991
- attempt = _u[0],
23992
- setAttempt = _u[1];
24201
+ }, [skipLivenessValidation]);
24202
+ var _v = React.useState(0),
24203
+ attempt = _v[0],
24204
+ setAttempt = _v[1];
23993
24205
  var onRetry = React.useCallback(function () {
23994
24206
  onRetryClicked === null || onRetryClicked === void 0 ? void 0 : onRetryClicked();
23995
24207
  setAttempt(function (n) {
23996
24208
  return n + 1;
23997
24209
  });
23998
- setCaptureState('CHECKING_LIVENESS');
23999
- }, [onRetryClicked]);
24210
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
24211
+ }, [onRetryClicked, skipLivenessValidation]);
24000
24212
  var onExitSignatureCapture = React.useCallback(function () {
24001
24213
  setAttempt(function (n) {
24002
24214
  return n + 1;
24003
24215
  });
24004
- setCaptureState('CHECKING_LIVENESS');
24216
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
24005
24217
  onExitCapture === null || onExitCapture === void 0 ? void 0 : onExitCapture();
24006
24218
  useVideoSignatureStore.getState().clearRecordedData();
24007
- }, [onExitCapture]);
24219
+ }, [onExitCapture, skipLivenessValidation]);
24008
24220
  var showSuccessScreen = useShowSuccessScreen(skipSuccessScreen, captureState === 'SUCCESS', onComplete);
24009
24221
  React.useEffect(function () {
24010
24222
  if (cameraAccessDenied) {
24011
24223
  setAttempt(function (n) {
24012
24224
  return n + 1;
24013
24225
  });
24014
- setCaptureState('CHECKING_LIVENESS');
24226
+ setCaptureState(skipLivenessValidation ? 'CAPTURING_SELFIE' : 'CHECKING_LIVENESS');
24015
24227
  }
24016
- }, [cameraAccessDenied]);
24228
+ }, [cameraAccessDenied, skipLivenessValidation]);
24017
24229
  var guidesComponent = React.useCallback(function (props) {
24018
24230
  return /*#__PURE__*/React.createElement(VideoSignatureWizardGuides, _assign({}, props, {
24019
24231
  classNames: classNames === null || classNames === void 0 ? void 0 : classNames.guides,
@@ -24053,6 +24265,7 @@
24053
24265
  onUserCancel: onUserCancel,
24054
24266
  onExitAfterFailure: onExitAfterFailure,
24055
24267
  onLoadingOverlayDismissed: onLoadingOverlayDismissedCallback,
24268
+ showLoadingOverlay: showLoadingOverlay,
24056
24269
  customOverlayContent: customOverlayContent,
24057
24270
  loadingOverlayMode: loadingOverlayMode,
24058
24271
  guidesComponent: guidesComponent,
@@ -24061,8 +24274,29 @@
24061
24274
  colors: colors.faceLiveness,
24062
24275
  verbiage: verbiage.faceLiveness,
24063
24276
  debugMode: debugMode,
24064
- renderCameraFeed: false,
24065
- showLoadingOverlay: showLoadingOverlay
24277
+ renderCameraFeed: false
24278
+ }));
24279
+ case 'CAPTURING_SELFIE':
24280
+ return /*#__PURE__*/React.createElement(SelfieCaptureWizard, _assign({
24281
+ key: "selfie-capture-".concat(attempt)
24282
+ }, faceLivenessProps, {
24283
+ onLoadingStarted: onLoadingStarted,
24284
+ onLoadingProgress: onLoadingProgress,
24285
+ onLoadingCompleted: onLoadingCompleted,
24286
+ onLoadingOverlayDismissed: onLoadingOverlayDismissedCallback,
24287
+ onCapture: onSelfieCapture,
24288
+ onUserCancel: onUserCancel,
24289
+ onExitCapture: onExitCapture,
24290
+ showLoadingOverlay: showLoadingOverlay,
24291
+ customOverlayContent: customOverlayContent,
24292
+ loadingOverlayMode: loadingOverlayMode,
24293
+ guidesComponent: guidesComponent,
24294
+ assets: assets.faceLiveness,
24295
+ classNames: classNames.faceLiveness,
24296
+ colors: colors.faceLiveness,
24297
+ verbiage: verbiage.faceLiveness,
24298
+ debugMode: debugMode,
24299
+ renderCameraFeed: false
24066
24300
  }));
24067
24301
  case 'CAPTURING_SIGNATURE':
24068
24302
  return /*#__PURE__*/React.createElement(VideoSignatureCapture, {
@@ -27853,6 +28087,7 @@
27853
28087
  onDocumentUploadProgress = _a.onDocumentUploadProgress,
27854
28088
  onDocumentUploaded = _a.onDocumentUploaded,
27855
28089
  onDocumentUploadFailed = _a.onDocumentUploadFailed,
28090
+ onSelfieCaptured = _a.onSelfieCaptured,
27856
28091
  onBeforeSubmit = _a.onBeforeSubmit,
27857
28092
  onSubmit = _a.onSubmit,
27858
28093
  onComplete = _a.onComplete,
@@ -27881,15 +28116,17 @@
27881
28116
  _k = _a.restartVideoOnSignaturePadCleared,
27882
28117
  restartVideoOnSignaturePadCleared = _k === void 0 ? true : _k,
27883
28118
  faceLivenessProps = _a.faceLivenessProps,
27884
- _l = _a.theme,
27885
- theme = _l === void 0 ? 'default' : _l,
28119
+ _l = _a.skipLivenessValidation,
28120
+ skipLivenessValidation = _l === void 0 ? false : _l,
28121
+ _m = _a.theme,
28122
+ theme = _m === void 0 ? 'default' : _m,
27886
28123
  classNames = _a.classNames,
27887
28124
  colors = _a.colors,
27888
28125
  verbiage = _a.verbiage,
27889
28126
  geolocationEnabled = _a.geolocationEnabled,
27890
28127
  geolocationRequired = _a.geolocationRequired,
27891
- _m = _a.debugMode,
27892
- debugMode = _m === void 0 ? false : _m;
28128
+ _o = _a.debugMode,
28129
+ debugMode = _o === void 0 ? false : _o;
27893
28130
  useLanguage(lang);
27894
28131
  useDebugLogging(debugMode);
27895
28132
  return /*#__PURE__*/React.createElement(AuthProvider, {
@@ -27931,6 +28168,7 @@
27931
28168
  onLoadingStarted: onLoadingStarted,
27932
28169
  onLoadingProgress: onLoadingProgress,
27933
28170
  onLoadingCompleted: onLoadingCompleted,
28171
+ onSelfieCaptured: onSelfieCaptured,
27934
28172
  customOverlayContent: customOverlayContent,
27935
28173
  onLoadingOverlayDismissed: onLoadingOverlayDismissed,
27936
28174
  loadingOverlayMode: loadingOverlayMode,
@@ -27942,6 +28180,7 @@
27942
28180
  faceLivenessProps: faceLivenessProps,
27943
28181
  allowSignatureAfterLivenessCheckFailure: allowSignatureAfterLivenessCheckFailure,
27944
28182
  restartVideoOnSignaturePadCleared: restartVideoOnSignaturePadCleared,
28183
+ skipLivenessValidation: skipLivenessValidation,
27945
28184
  classNames: classNames,
27946
28185
  colors: colors,
27947
28186
  debugMode: debugMode,
@@ -27949,7 +28188,7 @@
27949
28188
  onModelError: onModelError,
27950
28189
  onUserCancel: onUserCancel
27951
28190
  };
27952
- }, [onLoadingStarted, onLoadingProgress, onLoadingCompleted, customOverlayContent, onLoadingOverlayDismissed, loadingOverlayMode, skipSuccessScreen, captureAudio, minSignaturePadPoints, headTrackingBoundaryPercentage, modelLoadTimeoutMs, faceLivenessProps, allowSignatureAfterLivenessCheckFailure, restartVideoOnSignaturePadCleared, classNames, colors, debugMode, verbiage, onModelError, onUserCancel])
28191
+ }, [onLoadingStarted, onLoadingProgress, onLoadingCompleted, onSelfieCaptured, customOverlayContent, onLoadingOverlayDismissed, loadingOverlayMode, skipSuccessScreen, captureAudio, minSignaturePadPoints, headTrackingBoundaryPercentage, modelLoadTimeoutMs, faceLivenessProps, allowSignatureAfterLivenessCheckFailure, restartVideoOnSignaturePadCleared, skipLivenessValidation, classNames, colors, debugMode, verbiage, onModelError, onUserCancel])
27953
28192
  })))));
27954
28193
  };
27955
28194