idmission-web-sdk 2.1.24 → 2.1.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.
@@ -27,6 +27,8 @@ export type IdCaptureState = {
27
27
  documentTooClose: boolean;
28
28
  flipRequired: boolean;
29
29
  backDetectedFirst: boolean;
30
+ allowOverrideFlipRequirement: boolean;
31
+ overrideFlipRequirement: boolean;
30
32
  idCardFrontDetectionScore: number;
31
33
  idCardFrontDetectionThresholdMet: boolean;
32
34
  idCardBackDetectionScore: number;
@@ -115,6 +117,10 @@ export type IdCaptureAction = {
115
117
  };
116
118
  } | {
117
119
  type: 'flipRequestCompleted';
120
+ } | {
121
+ type: 'allowOverrideFlipRequirement';
122
+ } | {
123
+ type: 'overrideFlipRequirement';
118
124
  } | {
119
125
  type: 'resetWizard';
120
126
  } | {
@@ -123,7 +129,8 @@ export type IdCaptureAction = {
123
129
  export type IdCaptureDispatch = Dispatch<IdCaptureAction>;
124
130
  export declare const IdCaptureStateContext: React.Context<IdCaptureState>;
125
131
  export declare const IdCaptureDispatchContext: React.Context<IdCaptureDispatch>;
126
- export declare const IdCaptureStateProvider: ({ children, }: {
132
+ export declare const IdCaptureStateProvider: ({ children, flipRequiredTimeout, }: {
127
133
  children: ReactNode;
134
+ flipRequiredTimeout?: number;
128
135
  }) => React.JSX.Element;
129
136
  export declare const useIdCaptureState: () => [IdCaptureState, IdCaptureDispatch];
@@ -234,7 +234,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
234
234
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
235
235
  };
236
236
 
237
- var webSdkVersion = '2.1.24';
237
+ var webSdkVersion = '2.1.26';
238
238
 
239
239
  function getPlatform() {
240
240
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -6140,6 +6140,8 @@ var initialState$4 = {
6140
6140
  documentTooClose: false,
6141
6141
  flipRequired: false,
6142
6142
  backDetectedFirst: false,
6143
+ allowOverrideFlipRequirement: false,
6144
+ overrideFlipRequirement: false,
6143
6145
  idCardFrontDetectionScore: 0,
6144
6146
  idCardFrontDetectionThresholdMet: false,
6145
6147
  idCardBackDetectionScore: 0,
@@ -6258,7 +6260,7 @@ var _reducer = function reducer(state, action) {
6258
6260
  goodFramesThreshold = Math.ceil(3 * frameCaptureRate);
6259
6261
  }
6260
6262
  }
6261
- var flipRequired = !state.allowIdCardBackToFrontCapture && state.requestedDocumentType === 'idCardBack' && detectedDocumentType === 'idCardFront';
6263
+ var flipRequired = !state.overrideFlipRequirement && !state.allowIdCardBackToFrontCapture && state.requestedDocumentType === 'idCardBack' && detectedDocumentType === 'idCardFront';
6262
6264
  var backDetectedFirst = state.allowIdCardBackToFrontCapture ? 'idCardBack' in state.capturedDocuments && detectedDocumentType === 'idCardBack' : state.requestedDocumentType.includes('idCardFront') && detectedDocumentType === 'idCardBack';
6263
6265
  var isGoodFrame = detectionThresholdMet && documentInBounds && !documentTooClose && !flipRequired && !backDetectedFirst && focusThresholdMet;
6264
6266
  var goodFramesCount = state.goodFramesCount;
@@ -6339,6 +6341,8 @@ var _reducer = function reducer(state, action) {
6339
6341
  var newState_1 = _assign(_assign({}, state), {
6340
6342
  capturing: false,
6341
6343
  captureFailed: false,
6344
+ allowOverrideFlipRequirement: false,
6345
+ overrideFlipRequirement: false,
6342
6346
  goodFramesCount: 0,
6343
6347
  capturedDocuments: _assign(_assign({}, state.capturedDocuments), (_a = {}, _a[action.payload.documentType] = action.payload, _a))
6344
6348
  });
@@ -6402,7 +6406,18 @@ var _reducer = function reducer(state, action) {
6402
6406
  }
6403
6407
  case 'flipRequestCompleted':
6404
6408
  return _assign(_assign({}, state), {
6405
- captureState: 'capturing'
6409
+ captureState: 'capturing',
6410
+ allowOverrideFlipRequirement: false,
6411
+ overrideFlipRequirement: false
6412
+ });
6413
+ case 'allowOverrideFlipRequirement':
6414
+ return _assign(_assign({}, state), {
6415
+ allowOverrideFlipRequirement: true
6416
+ });
6417
+ case 'overrideFlipRequirement':
6418
+ return _assign(_assign({}, state), {
6419
+ allowOverrideFlipRequirement: false,
6420
+ overrideFlipRequirement: true
6406
6421
  });
6407
6422
  case 'resetWizard':
6408
6423
  return _assign(_assign({}, initialState$4), {
@@ -6414,10 +6429,12 @@ var _reducer = function reducer(state, action) {
6414
6429
  }
6415
6430
  };
6416
6431
  var IdCaptureStateProvider = function IdCaptureStateProvider(_a) {
6417
- var children = _a.children;
6418
- var _b = React.useReducer(_reducer, initialState$4),
6419
- state = _b[0],
6420
- dispatch = _b[1];
6432
+ var children = _a.children,
6433
+ _b = _a.flipRequiredTimeout,
6434
+ flipRequiredTimeout = _b === void 0 ? 10000 : _b;
6435
+ var _c = React.useReducer(_reducer, initialState$4),
6436
+ state = _c[0],
6437
+ dispatch = _c[1];
6421
6438
  var onResize = useDebounce.useDebouncedCallback(function () {
6422
6439
  dispatch({
6423
6440
  type: 'redrawRequested'
@@ -6430,6 +6447,26 @@ var IdCaptureStateProvider = function IdCaptureStateProvider(_a) {
6430
6447
  window.removeEventListener('resize', onResize);
6431
6448
  };
6432
6449
  }, [onResize]);
6450
+ var setRequiredDocumentType = React.useContext(IdCaptureModelsContext).setRequiredDocumentType;
6451
+ React.useEffect(function () {
6452
+ if (state.allowOverrideFlipRequirement) return;
6453
+ if (state.flipRequired || state.backDetectedFirst) {
6454
+ var t_1 = setTimeout(function () {
6455
+ dispatch({
6456
+ type: 'allowOverrideFlipRequirement'
6457
+ });
6458
+ }, flipRequiredTimeout);
6459
+ return function () {
6460
+ clearTimeout(t_1);
6461
+ };
6462
+ }
6463
+ return function () {};
6464
+ }, [flipRequiredTimeout, state.allowOverrideFlipRequirement, state.backDetectedFirst, state.flipRequired]);
6465
+ React.useEffect(function () {
6466
+ if (state.overrideFlipRequirement) {
6467
+ setRequiredDocumentType('none');
6468
+ }
6469
+ }, [state.overrideFlipRequirement, setRequiredDocumentType]);
6433
6470
  return /*#__PURE__*/React__namespace.default.createElement(IdCaptureStateContext.Provider, {
6434
6471
  value: state
6435
6472
  }, /*#__PURE__*/React__namespace.default.createElement(IdCaptureDispatchContext.Provider, {
@@ -6982,7 +7019,41 @@ var IdCapture = function IdCapture(_a) {
6982
7019
  }, /*#__PURE__*/React__namespace.default.createElement(GuidanceMessage, {
6983
7020
  "$variant": satisfied ? 'positive' : 'default',
6984
7021
  className: classNames.guidanceMessage
6985
- }, guidanceMessage))), debugMode && ( /*#__PURE__*/React__namespace.default.createElement(DebugBoundingBoxOverlay, {
7022
+ }, guidanceMessage), state.allowOverrideFlipRequirement && ( /*#__PURE__*/React__namespace.default.createElement("div", {
7023
+ style: {
7024
+ position: 'fixed',
7025
+ left: 0,
7026
+ bottom: 0,
7027
+ width: '100dvw',
7028
+ background: '#eed202',
7029
+ display: 'flex',
7030
+ zIndex: 100001
7031
+ }
7032
+ }, /*#__PURE__*/React__namespace.default.createElement("div", {
7033
+ style: {
7034
+ display: 'flex',
7035
+ flexDirection: 'row',
7036
+ padding: '16px 24px',
7037
+ margin: 'auto 0',
7038
+ width: '100%'
7039
+ }
7040
+ }, /*#__PURE__*/React__namespace.default.createElement("span", {
7041
+ style: {
7042
+ display: 'block',
7043
+ margin: 'auto 12px auto 0'
7044
+ }
7045
+ }, "It appears that you are attempting to capture the wrong side of your ID card, but perhaps we are wrong about that. Would you like to proceed with capture anyway?"), /*#__PURE__*/React__namespace.default.createElement(LoaderButton, {
7046
+ variant: "positive",
7047
+ style: {
7048
+ marginLeft: 'auto',
7049
+ whiteSpace: 'nowrap'
7050
+ },
7051
+ onClick: function onClick() {
7052
+ return dispatch({
7053
+ type: 'overrideFlipRequirement'
7054
+ });
7055
+ }
7056
+ }, "Capture Anyway")))))), debugMode && ( /*#__PURE__*/React__namespace.default.createElement(DebugBoundingBoxOverlay, {
6986
7057
  "$flipX": !((_j = cameraRef.current) === null || _j === void 0 ? void 0 : _j.isRearFacing),
6987
7058
  scaling: debugScalingDetails
6988
7059
  }, state.detectedObjects.map(function (obj, i) {