idmission-web-sdk 2.1.28 → 2.1.29

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.28';
237
+ var webSdkVersion = '2.1.29';
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;
@@ -6282,6 +6284,10 @@ var _reducer = function reducer(state, action) {
6282
6284
  requestedDocumentType = 'idCardFront' in state.capturedDocuments ? 'idCardBack' : 'idCardFront';
6283
6285
  }
6284
6286
  }
6287
+ var allowOverrideFlipRequirement = state.allowOverrideFlipRequirement;
6288
+ if (isGoodFrame) {
6289
+ allowOverrideFlipRequirement = false;
6290
+ }
6285
6291
  return _assign(_assign({}, state), {
6286
6292
  videoWidth: frameWidth,
6287
6293
  videoHeight: frameHeight,
@@ -6294,6 +6300,7 @@ var _reducer = function reducer(state, action) {
6294
6300
  documentTooClose: documentTooClose,
6295
6301
  flipRequired: flipRequired,
6296
6302
  backDetectedFirst: backDetectedFirst,
6303
+ allowOverrideFlipRequirement: allowOverrideFlipRequirement,
6297
6304
  idCardFrontDetectionScore: idCardFrontDetectionScore,
6298
6305
  idCardFrontDetectionThresholdMet: idCardFrontDetectionThresholdMet,
6299
6306
  idCardBackDetectionScore: idCardBackDetectionScore,
@@ -6339,6 +6346,8 @@ var _reducer = function reducer(state, action) {
6339
6346
  var newState_1 = _assign(_assign({}, state), {
6340
6347
  capturing: false,
6341
6348
  captureFailed: false,
6349
+ allowOverrideFlipRequirement: false,
6350
+ overrideFlipRequirement: false,
6342
6351
  goodFramesCount: 0,
6343
6352
  capturedDocuments: _assign(_assign({}, state.capturedDocuments), (_a = {}, _a[action.payload.documentType] = action.payload, _a))
6344
6353
  });
@@ -6402,7 +6411,18 @@ var _reducer = function reducer(state, action) {
6402
6411
  }
6403
6412
  case 'flipRequestCompleted':
6404
6413
  return _assign(_assign({}, state), {
6405
- captureState: 'capturing'
6414
+ captureState: 'capturing',
6415
+ allowOverrideFlipRequirement: false,
6416
+ overrideFlipRequirement: false
6417
+ });
6418
+ case 'allowOverrideFlipRequirement':
6419
+ return _assign(_assign({}, state), {
6420
+ allowOverrideFlipRequirement: true
6421
+ });
6422
+ case 'overrideFlipRequirement':
6423
+ return _assign(_assign({}, state), {
6424
+ allowOverrideFlipRequirement: false,
6425
+ overrideFlipRequirement: true
6406
6426
  });
6407
6427
  case 'resetWizard':
6408
6428
  return _assign(_assign({}, initialState$4), {
@@ -6414,10 +6434,12 @@ var _reducer = function reducer(state, action) {
6414
6434
  }
6415
6435
  };
6416
6436
  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];
6437
+ var children = _a.children,
6438
+ _b = _a.flipRequiredTimeout,
6439
+ flipRequiredTimeout = _b === void 0 ? 10000 : _b;
6440
+ var _c = React.useReducer(_reducer, initialState$4),
6441
+ state = _c[0],
6442
+ dispatch = _c[1];
6421
6443
  var onResize = useDebounce.useDebouncedCallback(function () {
6422
6444
  dispatch({
6423
6445
  type: 'redrawRequested'
@@ -6430,6 +6452,24 @@ var IdCaptureStateProvider = function IdCaptureStateProvider(_a) {
6430
6452
  window.removeEventListener('resize', onResize);
6431
6453
  };
6432
6454
  }, [onResize]);
6455
+ var setRequiredDocumentType = React.useContext(IdCaptureModelsContext).setRequiredDocumentType;
6456
+ React.useEffect(function () {
6457
+ if (state.captureState !== 'capturing') return;
6458
+ if (!state.flipRequired || state.allowOverrideFlipRequirement) return;
6459
+ var t = setTimeout(function () {
6460
+ dispatch({
6461
+ type: 'allowOverrideFlipRequirement'
6462
+ });
6463
+ }, flipRequiredTimeout);
6464
+ return function () {
6465
+ clearTimeout(t);
6466
+ };
6467
+ }, [flipRequiredTimeout, state.allowOverrideFlipRequirement, state.captureState, state.flipRequired]);
6468
+ React.useEffect(function () {
6469
+ if (state.overrideFlipRequirement) {
6470
+ setRequiredDocumentType('none');
6471
+ }
6472
+ }, [state.overrideFlipRequirement, setRequiredDocumentType]);
6433
6473
  return /*#__PURE__*/React__namespace.default.createElement(IdCaptureStateContext.Provider, {
6434
6474
  value: state
6435
6475
  }, /*#__PURE__*/React__namespace.default.createElement(IdCaptureDispatchContext.Provider, {
@@ -6982,7 +7022,41 @@ var IdCapture = function IdCapture(_a) {
6982
7022
  }, /*#__PURE__*/React__namespace.default.createElement(GuidanceMessage, {
6983
7023
  "$variant": satisfied ? 'positive' : 'default',
6984
7024
  className: classNames.guidanceMessage
6985
- }, guidanceMessage))), debugMode && ( /*#__PURE__*/React__namespace.default.createElement(DebugBoundingBoxOverlay, {
7025
+ }, guidanceMessage), state.allowOverrideFlipRequirement && ( /*#__PURE__*/React__namespace.default.createElement("div", {
7026
+ style: {
7027
+ position: 'fixed',
7028
+ left: 0,
7029
+ bottom: 0,
7030
+ width: '100dvw',
7031
+ background: '#eed202',
7032
+ display: 'flex',
7033
+ zIndex: 100001
7034
+ }
7035
+ }, /*#__PURE__*/React__namespace.default.createElement("div", {
7036
+ style: {
7037
+ display: 'flex',
7038
+ flexDirection: 'row',
7039
+ padding: '16px 24px',
7040
+ margin: 'auto 0',
7041
+ width: '100%'
7042
+ }
7043
+ }, /*#__PURE__*/React__namespace.default.createElement("span", {
7044
+ style: {
7045
+ display: 'block',
7046
+ margin: 'auto 12px auto 0'
7047
+ }
7048
+ }, "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, {
7049
+ variant: "positive",
7050
+ style: {
7051
+ marginLeft: 'auto',
7052
+ whiteSpace: 'nowrap'
7053
+ },
7054
+ onClick: function onClick() {
7055
+ return dispatch({
7056
+ type: 'overrideFlipRequirement'
7057
+ });
7058
+ }
7059
+ }, "Capture Anyway")))))), debugMode && ( /*#__PURE__*/React__namespace.default.createElement(DebugBoundingBoxOverlay, {
6986
7060
  "$flipX": !((_j = cameraRef.current) === null || _j === void 0 ? void 0 : _j.isRearFacing),
6987
7061
  scaling: debugScalingDetails
6988
7062
  }, state.detectedObjects.map(function (obj, i) {