idmission-web-sdk 1.0.11 → 1.0.13
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/components/fallback_flows/IdCapture.d.ts +24 -0
- package/dist/components/id_capture/IdCaptureModelsProvider.d.ts +2 -0
- package/dist/sdk2.cjs.development.js +194 -84
- package/dist/sdk2.cjs.development.js.map +1 -1
- package/dist/sdk2.cjs.production.js +1 -1
- package/dist/sdk2.cjs.production.js.map +1 -1
- package/dist/sdk2.esm.js +194 -84
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +194 -84
- package/dist/sdk2.umd.development.js.map +1 -1
- package/dist/sdk2.umd.production.js +1 -1
- package/dist/sdk2.umd.production.js.map +1 -1
- package/dist/stories/FallbackFlows/IdCapture.stories.d.ts +8 -0
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { CustomerSuppliedVerbiage } from '../../lib/locales';
|
|
3
|
+
import { LoaderButtonColors } from '../common/LoaderButton';
|
|
4
|
+
export type IdCaptureFallbackColors = {
|
|
5
|
+
captureBtn?: LoaderButtonColors;
|
|
6
|
+
captureMoreBtn?: LoaderButtonColors;
|
|
7
|
+
doneBtn?: LoaderButtonColors;
|
|
8
|
+
};
|
|
9
|
+
export type IdCaptureFallbackVerbiage = {
|
|
10
|
+
headingText?: CustomerSuppliedVerbiage;
|
|
11
|
+
descriptionText?: CustomerSuppliedVerbiage;
|
|
12
|
+
firstInstructionText?: CustomerSuppliedVerbiage;
|
|
13
|
+
secondInstructionText?: CustomerSuppliedVerbiage;
|
|
14
|
+
captureBtnText?: CustomerSuppliedVerbiage;
|
|
15
|
+
captureMoreBtnText?: CustomerSuppliedVerbiage;
|
|
16
|
+
doneBtnText?: CustomerSuppliedVerbiage;
|
|
17
|
+
};
|
|
18
|
+
export type IdCaptureFallbackProps = {
|
|
19
|
+
onCapture?: (imageData: string) => void;
|
|
20
|
+
onFinished?: (images: string[]) => void;
|
|
21
|
+
colors?: IdCaptureFallbackColors;
|
|
22
|
+
verbiage?: IdCaptureFallbackVerbiage;
|
|
23
|
+
};
|
|
24
|
+
export declare const IdCaptureFallback: ({ onCapture, onFinished, colors, verbiage: rawVerbiage, }: IdCaptureFallbackProps) => ReactElement;
|
|
@@ -21,6 +21,7 @@ export type IdCapturePrediction = {
|
|
|
21
21
|
focusPredictionTime: number;
|
|
22
22
|
frameWidth: number;
|
|
23
23
|
frameHeight: number;
|
|
24
|
+
allZero: boolean;
|
|
24
25
|
};
|
|
25
26
|
export type IdCaptureThresholds = {
|
|
26
27
|
document?: number;
|
|
@@ -37,6 +38,7 @@ export declare const PREDICTION_POSITIONS: {
|
|
|
37
38
|
export type IdCaptureModelsState = {
|
|
38
39
|
ready: boolean;
|
|
39
40
|
working: MutableRefObject<boolean>;
|
|
41
|
+
error: Error | null;
|
|
40
42
|
thresholds: IdCaptureThresholds;
|
|
41
43
|
setThresholds: (value: IdCaptureThresholds) => void;
|
|
42
44
|
makePrediction: (frame: Frame) => void;
|
|
@@ -50,7 +50,7 @@ var useResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(useResizeObs
|
|
|
50
50
|
var SignatureCanvas__default = /*#__PURE__*/_interopDefaultLegacy(SignatureCanvas);
|
|
51
51
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
52
52
|
|
|
53
|
-
var webSdkVersion = '1.0.
|
|
53
|
+
var webSdkVersion = '1.0.13';
|
|
54
54
|
|
|
55
55
|
function getPlatform() {
|
|
56
56
|
return window.platform;
|
|
@@ -713,7 +713,7 @@ var SubmissionProvider = function SubmissionProvider(_a) {
|
|
|
713
713
|
e_1 = _c.sent();
|
|
714
714
|
err = e_1;
|
|
715
715
|
setSubmissionStatus(SubmissionStatus.FAILED);
|
|
716
|
-
setSubmissionError(e_1 instanceof SubmissionError || e_1 instanceof NetworkError ? e_1 : new SubmissionError({
|
|
716
|
+
setSubmissionError(e_1 instanceof SubmissionError || e_1 instanceof NetworkError ? e_1 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
|
|
717
717
|
statusCode: '',
|
|
718
718
|
statusMessage: err.message
|
|
719
719
|
}));
|
|
@@ -8369,33 +8369,17 @@ function cropToBoundingBox(frame, bbox) {
|
|
|
8369
8369
|
return canvas;
|
|
8370
8370
|
}
|
|
8371
8371
|
|
|
8372
|
-
var ModelLoadingErrorOverlay = function ModelLoadingErrorOverlay(_a) {
|
|
8373
|
-
var error = _a.error;
|
|
8374
|
-
return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, {
|
|
8375
|
-
style: {
|
|
8376
|
-
justifyContent: 'center'
|
|
8377
|
-
}
|
|
8378
|
-
}, /*#__PURE__*/React__default['default'].createElement("h3", {
|
|
8379
|
-
style: {
|
|
8380
|
-
marginBottom: 8
|
|
8381
|
-
}
|
|
8382
|
-
}, "We're sorry, an unexpected error has occurred."), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
8383
|
-
style: {
|
|
8384
|
-
marginBottom: 0
|
|
8385
|
-
}
|
|
8386
|
-
}, /*#__PURE__*/React__default['default'].createElement("code", null, error.message))));
|
|
8387
|
-
};
|
|
8388
|
-
|
|
8389
8372
|
var PREDICTION_POSITIONS = {
|
|
8390
|
-
boxes:
|
|
8391
|
-
scores:
|
|
8392
|
-
labels:
|
|
8373
|
+
boxes: 0,
|
|
8374
|
+
scores: 7,
|
|
8375
|
+
labels: 4
|
|
8393
8376
|
};
|
|
8394
8377
|
var IdCaptureModelsContext = /*#__PURE__*/React.createContext({
|
|
8395
8378
|
ready: false,
|
|
8396
8379
|
working: {
|
|
8397
8380
|
current: false
|
|
8398
8381
|
},
|
|
8382
|
+
error: null,
|
|
8399
8383
|
thresholds: {},
|
|
8400
8384
|
setThresholds: function setThresholds() {
|
|
8401
8385
|
return null;
|
|
@@ -8415,7 +8399,7 @@ var IdCaptureModelsContext = /*#__PURE__*/React.createContext({
|
|
|
8415
8399
|
return null;
|
|
8416
8400
|
}
|
|
8417
8401
|
});
|
|
8418
|
-
var defaultDocumentDetectionModelUrl = "".concat(DEFAULT_CDN_URL, "/models/
|
|
8402
|
+
var defaultDocumentDetectionModelUrl = "".concat(DEFAULT_CDN_URL, "/models/documentdetection448/model.json");
|
|
8419
8403
|
var defaultFocusModelUrl = "".concat(DEFAULT_CDN_URL, "/models/focus/model.json");
|
|
8420
8404
|
var IdCaptureModelsProvider = function IdCaptureModelsProvider(_a) {
|
|
8421
8405
|
var children = _a.children,
|
|
@@ -8502,13 +8486,11 @@ var IdCaptureModelsProvider = function IdCaptureModelsProvider(_a) {
|
|
|
8502
8486
|
});
|
|
8503
8487
|
});
|
|
8504
8488
|
}
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
});
|
|
8509
|
-
} catch (e) {
|
|
8489
|
+
loadModels().then(function () {
|
|
8490
|
+
setReady(true);
|
|
8491
|
+
})["catch"](function (e) {
|
|
8510
8492
|
setLoadingError(e);
|
|
8511
|
-
}
|
|
8493
|
+
});
|
|
8512
8494
|
var webGLCanvas = getWebGLContext(2).canvas;
|
|
8513
8495
|
webGLCanvas.addEventListener('webglcontextlost', reloadModels);
|
|
8514
8496
|
return function () {
|
|
@@ -8532,6 +8514,9 @@ var IdCaptureModelsProvider = function IdCaptureModelsProvider(_a) {
|
|
|
8532
8514
|
if (thresholds.pdf417) setPdf417DetectionThreshold(thresholds.pdf417);
|
|
8533
8515
|
if (thresholds.focus) setFocusThreshold(thresholds.focus);
|
|
8534
8516
|
}, []);
|
|
8517
|
+
var _m = React.useState(0),
|
|
8518
|
+
timesAllZero = _m[0],
|
|
8519
|
+
setTimesAllZero = _m[1];
|
|
8535
8520
|
var bestPredictionCanvas = React.useRef(null);
|
|
8536
8521
|
var bestFocusScore = React.useRef(0);
|
|
8537
8522
|
var makePrediction = React.useCallback(function (frame) {
|
|
@@ -8553,6 +8538,9 @@ var IdCaptureModelsProvider = function IdCaptureModelsProvider(_a) {
|
|
|
8553
8538
|
bestFocusScore.current = prediction.focusScore;
|
|
8554
8539
|
drawToCanvas(bestPredictionCanvas.current, frame);
|
|
8555
8540
|
}
|
|
8541
|
+
if (prediction.allZero) setTimesAllZero(function (n) {
|
|
8542
|
+
return n + 1;
|
|
8543
|
+
});
|
|
8556
8544
|
(_a = onPredictionHandler.current) === null || _a === void 0 ? void 0 : _a.call(onPredictionHandler, prediction);
|
|
8557
8545
|
working.current = false;
|
|
8558
8546
|
return [2];
|
|
@@ -8561,6 +8549,11 @@ var IdCaptureModelsProvider = function IdCaptureModelsProvider(_a) {
|
|
|
8561
8549
|
});
|
|
8562
8550
|
})();
|
|
8563
8551
|
}, [logPredictions, thresholds]);
|
|
8552
|
+
React.useEffect(function () {
|
|
8553
|
+
if (timesAllZero >= 2) {
|
|
8554
|
+
setLoadingError(new Error('model is returning all zeroes'));
|
|
8555
|
+
}
|
|
8556
|
+
}, [timesAllZero]);
|
|
8564
8557
|
var onPredictionMade = React.useCallback(function (handler) {
|
|
8565
8558
|
onPredictionHandler.current = handler;
|
|
8566
8559
|
}, []);
|
|
@@ -8597,14 +8590,13 @@ var IdCaptureModelsProvider = function IdCaptureModelsProvider(_a) {
|
|
|
8597
8590
|
detectionTime: detectionTime,
|
|
8598
8591
|
focusPredictionTime: focusPredictionTime,
|
|
8599
8592
|
getBestFrame: getBestFrame,
|
|
8600
|
-
resetBestFrame: resetBestFrame
|
|
8593
|
+
resetBestFrame: resetBestFrame,
|
|
8594
|
+
error: loadingError
|
|
8601
8595
|
};
|
|
8602
|
-
}, [detectionTime, focusPredictionTime, getBestFrame, makePrediction, onPredictionMade, ready, resetBestFrame, setThresholds, thresholds]);
|
|
8596
|
+
}, [detectionTime, focusPredictionTime, getBestFrame, loadingError, makePrediction, onPredictionMade, ready, resetBestFrame, setThresholds, thresholds]);
|
|
8603
8597
|
return /*#__PURE__*/React__default['default'].createElement(IdCaptureModelsContext.Provider, {
|
|
8604
8598
|
value: value
|
|
8605
|
-
},
|
|
8606
|
-
error: loadingError
|
|
8607
|
-
}) : children, /*#__PURE__*/React__default['default'].createElement(InvisibleCanvas, {
|
|
8599
|
+
}, children, /*#__PURE__*/React__default['default'].createElement(InvisibleCanvas, {
|
|
8608
8600
|
ref: lastPredictionCanvas
|
|
8609
8601
|
}), /*#__PURE__*/React__default['default'].createElement(InvisibleCanvas, {
|
|
8610
8602
|
ref: bestPredictionCanvas
|
|
@@ -8616,7 +8608,7 @@ function makePredictions(frame, lastPredictionCanvas, thresholds, logPredictions
|
|
|
8616
8608
|
logPredictions = false;
|
|
8617
8609
|
}
|
|
8618
8610
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
8619
|
-
var _l, frameWidth, frameHeight, _o, boxes, scores, labels, time, detectedObjects, bestDocument, bestPassportPage, bestDocumentScore, passportDetectionScore, passportDetectionThresholdMet, bestDocumentOrPassport, detectionScore, detectionThresholdMet, detectedDocumentType, bestMrz, mrzDetectionScore, mrzDetectionThresholdMet, bestPdf417, pdf417DetectionScore, pdf417DetectionThresholdMet, focusPrediction, focusPredictionTime, focusScore, focusThresholdMet;
|
|
8611
|
+
var _l, frameWidth, frameHeight, _o, boxes, scores, labels, time, allZero, detectedObjects, bestDocument, bestPassportPage, bestDocumentScore, passportDetectionScore, passportDetectionThresholdMet, bestDocumentOrPassport, detectionScore, detectionThresholdMet, detectedDocumentType, bestMrz, mrzDetectionScore, mrzDetectionThresholdMet, bestPdf417, pdf417DetectionScore, pdf417DetectionThresholdMet, focusPrediction, focusPredictionTime, focusScore, focusThresholdMet;
|
|
8620
8612
|
var _p;
|
|
8621
8613
|
return tslib.__generator(this, function (_q) {
|
|
8622
8614
|
switch (_q.label) {
|
|
@@ -8626,6 +8618,11 @@ function makePredictions(frame, lastPredictionCanvas, thresholds, logPredictions
|
|
|
8626
8618
|
return [4, makeDocumentDetectionPredictions(frame, logPredictions)];
|
|
8627
8619
|
case 1:
|
|
8628
8620
|
_o = _q.sent(), boxes = _o.boxes, scores = _o.scores, labels = _o.labels, time = _o.time;
|
|
8621
|
+
allZero = boxes.length > 0 && !boxes.some(function (box) {
|
|
8622
|
+
return box.some(function (n) {
|
|
8623
|
+
return n > 0;
|
|
8624
|
+
});
|
|
8625
|
+
});
|
|
8629
8626
|
detectedObjects = applyNonMaxSuppression(boxes.map(function (box, i) {
|
|
8630
8627
|
return bboxToDetectedObjectUnscaled(box, scores[i], labels[i]);
|
|
8631
8628
|
}));
|
|
@@ -8685,7 +8682,8 @@ function makePredictions(frame, lastPredictionCanvas, thresholds, logPredictions
|
|
|
8685
8682
|
focusThresholdMet: focusThresholdMet,
|
|
8686
8683
|
focusPredictionTime: focusPredictionTime,
|
|
8687
8684
|
frameWidth: frameWidth,
|
|
8688
|
-
frameHeight: frameHeight
|
|
8685
|
+
frameHeight: frameHeight,
|
|
8686
|
+
allZero: allZero
|
|
8689
8687
|
}];
|
|
8690
8688
|
}
|
|
8691
8689
|
});
|
|
@@ -8709,7 +8707,7 @@ function makeDocumentDetectionPredictions(image, logPredictions) {
|
|
|
8709
8707
|
_e.trys.push([1, 7,, 8]);
|
|
8710
8708
|
tfImg = tf__namespace.browser.fromPixels(image);
|
|
8711
8709
|
if (logPredictions) console.time('resize');
|
|
8712
|
-
tfResize = tf__namespace.image.resizeBilinear(tfImg, [
|
|
8710
|
+
tfResize = tf__namespace.image.resizeBilinear(tfImg, [448, 448]);
|
|
8713
8711
|
if (logPredictions) console.timeEnd('resize');
|
|
8714
8712
|
tfImg.dispose();
|
|
8715
8713
|
if (logPredictions) console.time('convert to int32');
|
|
@@ -8719,7 +8717,7 @@ function makeDocumentDetectionPredictions(image, logPredictions) {
|
|
|
8719
8717
|
_d = (_c = Array).from;
|
|
8720
8718
|
return [4, tfInt32.data()];
|
|
8721
8719
|
case 2:
|
|
8722
|
-
tf4d_ = _b.apply(_a, [_d.apply(_c, [_e.sent()]), [1,
|
|
8720
|
+
tf4d_ = _b.apply(_a, [_d.apply(_c, [_e.sent()]), [1, 448, 448, 3]]);
|
|
8723
8721
|
tfInt32.dispose();
|
|
8724
8722
|
tf4d = tf__namespace.cast(tf4d_, 'int32');
|
|
8725
8723
|
if (logPredictions) console.timeEnd('convert to int32');
|
|
@@ -10123,6 +10121,101 @@ function useShowSuccessScreen(skipSuccessScreen, successScreenReady, onDoneCallb
|
|
|
10123
10121
|
return !skipSuccessScreen || skipSuccessScreenResolvedFalse;
|
|
10124
10122
|
}
|
|
10125
10123
|
|
|
10124
|
+
var IdCaptureFallback = function IdCaptureFallback(_a) {
|
|
10125
|
+
var onCapture = _a.onCapture,
|
|
10126
|
+
onFinished = _a.onFinished,
|
|
10127
|
+
_b = _a.colors,
|
|
10128
|
+
colors = _b === void 0 ? {} : _b,
|
|
10129
|
+
_c = _a.verbiage,
|
|
10130
|
+
rawVerbiage = _c === void 0 ? {} : _c;
|
|
10131
|
+
var fileInput = React.useRef(null);
|
|
10132
|
+
var _d = React.useState([]),
|
|
10133
|
+
images = _d[0],
|
|
10134
|
+
setImages = _d[1];
|
|
10135
|
+
colors.captureMoreBtn || (colors.captureMoreBtn = {
|
|
10136
|
+
backgroundColor: '#666'
|
|
10137
|
+
});
|
|
10138
|
+
var verbiage = useTranslations(rawVerbiage, {
|
|
10139
|
+
headingText: "We're having some trouble.",
|
|
10140
|
+
descriptionText: 'On-device capture guidance failed, please capture photos of your ID card or passport manually.',
|
|
10141
|
+
firstInstructionText: 'Please capture the front of your ID card, or the ID page of your passport.',
|
|
10142
|
+
secondInstructionText: 'Please capture the back of your ID card, or click Done if submitting a passport.',
|
|
10143
|
+
captureBtnText: 'Capture',
|
|
10144
|
+
captureMoreBtnText: 'Capture back of ID Card',
|
|
10145
|
+
doneBtnText: 'Done'
|
|
10146
|
+
});
|
|
10147
|
+
return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, {
|
|
10148
|
+
style: {
|
|
10149
|
+
justifyContent: 'center'
|
|
10150
|
+
}
|
|
10151
|
+
}, /*#__PURE__*/React__default['default'].createElement("h3", {
|
|
10152
|
+
style: {
|
|
10153
|
+
marginBottom: 8
|
|
10154
|
+
}
|
|
10155
|
+
}, verbiage.headingText), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
10156
|
+
style: {
|
|
10157
|
+
marginBottom: 8
|
|
10158
|
+
}
|
|
10159
|
+
}, verbiage.descriptionText), images.length > 0 && /*#__PURE__*/React__default['default'].createElement(OverlayImageMultiContainer, null, images.map(function (image, i) {
|
|
10160
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
10161
|
+
key: i,
|
|
10162
|
+
style: {
|
|
10163
|
+
display: 'flex',
|
|
10164
|
+
justifyContent: 'center',
|
|
10165
|
+
flexGrow: 1,
|
|
10166
|
+
flexBasis: 0
|
|
10167
|
+
}
|
|
10168
|
+
}, /*#__PURE__*/React__default['default'].createElement("img", {
|
|
10169
|
+
src: image,
|
|
10170
|
+
alt: ""
|
|
10171
|
+
}));
|
|
10172
|
+
})), images.length < 2 && /*#__PURE__*/React__default['default'].createElement("p", {
|
|
10173
|
+
style: {
|
|
10174
|
+
fontWeight: 'bold'
|
|
10175
|
+
}
|
|
10176
|
+
}, images.length === 0 ? verbiage.firstInstructionText : verbiage.secondInstructionText), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
10177
|
+
ref: fileInput,
|
|
10178
|
+
type: "file",
|
|
10179
|
+
accept: "image/*",
|
|
10180
|
+
hidden: true,
|
|
10181
|
+
onChange: function onChange(e) {
|
|
10182
|
+
var _a;
|
|
10183
|
+
var file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
10184
|
+
if (!file) return;
|
|
10185
|
+
var reader = new FileReader();
|
|
10186
|
+
reader.addEventListener('load', function (e) {
|
|
10187
|
+
var _a;
|
|
10188
|
+
var imageData = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;
|
|
10189
|
+
setImages(function (images) {
|
|
10190
|
+
return tslib.__spreadArray(tslib.__spreadArray([], images, true), [imageData], false);
|
|
10191
|
+
});
|
|
10192
|
+
onCapture === null || onCapture === void 0 ? void 0 : onCapture(imageData);
|
|
10193
|
+
});
|
|
10194
|
+
reader.readAsDataURL(file);
|
|
10195
|
+
}
|
|
10196
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
10197
|
+
style: {
|
|
10198
|
+
marginTop: 32
|
|
10199
|
+
}
|
|
10200
|
+
}, images.length < 2 && /*#__PURE__*/React__default['default'].createElement(LoaderButton, {
|
|
10201
|
+
colors: images.length > 0 ? colors.captureMoreBtn : colors.captureBtn,
|
|
10202
|
+
finished: true,
|
|
10203
|
+
onClick: function onClick() {
|
|
10204
|
+
var _a;
|
|
10205
|
+
(_a = fileInput.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
10206
|
+
}
|
|
10207
|
+
}, images.length > 0 ? verbiage.captureMoreBtnText : verbiage.captureBtnText), images.length > 0 && /*#__PURE__*/React__default['default'].createElement(LoaderButton, {
|
|
10208
|
+
colors: colors.doneBtn,
|
|
10209
|
+
finished: true,
|
|
10210
|
+
onClick: function onClick() {
|
|
10211
|
+
onFinished === null || onFinished === void 0 ? void 0 : onFinished(images);
|
|
10212
|
+
},
|
|
10213
|
+
style: {
|
|
10214
|
+
marginLeft: 12
|
|
10215
|
+
}
|
|
10216
|
+
}, verbiage.doneBtnText))));
|
|
10217
|
+
};
|
|
10218
|
+
|
|
10126
10219
|
var CaptureState;
|
|
10127
10220
|
(function (CaptureState) {
|
|
10128
10221
|
CaptureState["CAPTURING"] = "CAPTURING";
|
|
@@ -10174,6 +10267,22 @@ var reducer$4 = function reducer(state, action) {
|
|
|
10174
10267
|
}
|
|
10175
10268
|
return newState;
|
|
10176
10269
|
}
|
|
10270
|
+
case 'imageCapturedManually':
|
|
10271
|
+
{
|
|
10272
|
+
var newState = tslib.__assign({}, state);
|
|
10273
|
+
var capturedDocument = tslib.__assign(tslib.__assign({}, action.payload), {
|
|
10274
|
+
width: 0,
|
|
10275
|
+
height: 0
|
|
10276
|
+
});
|
|
10277
|
+
if (Object.keys(state.capturedDocuments).length === 0) {
|
|
10278
|
+
newState.capturedDocuments[DocumentType.PASSPORT] = capturedDocument;
|
|
10279
|
+
} else {
|
|
10280
|
+
newState.capturedDocuments = {};
|
|
10281
|
+
newState.capturedDocuments[DocumentType.ID_CARD_FRONT] = state.capturedDocuments[DocumentType.PASSPORT];
|
|
10282
|
+
newState.capturedDocuments[DocumentType.ID_CARD_BACK] = capturedDocument;
|
|
10283
|
+
}
|
|
10284
|
+
return newState;
|
|
10285
|
+
}
|
|
10177
10286
|
case 'reset':
|
|
10178
10287
|
return tslib.__assign({}, initialState$4);
|
|
10179
10288
|
}
|
|
@@ -10224,6 +10333,7 @@ var IdCaptureWizard = function IdCaptureWizard(_a) {
|
|
|
10224
10333
|
setPassportImage = _3.setPassportImage,
|
|
10225
10334
|
logIdFrontCaptureAttempt = _3.logIdFrontCaptureAttempt,
|
|
10226
10335
|
logIdBackCaptureAttempt = _3.logIdBackCaptureAttempt;
|
|
10336
|
+
var modelsError = React.useContext(IdCaptureModelsContext).error;
|
|
10227
10337
|
var operationStartedAt = React.useRef();
|
|
10228
10338
|
React.useEffect(function () {
|
|
10229
10339
|
operationStartedAt.current = new Date();
|
|
@@ -10261,53 +10371,23 @@ var IdCaptureWizard = function IdCaptureWizard(_a) {
|
|
|
10261
10371
|
});
|
|
10262
10372
|
}, [logCaptureMetadata]);
|
|
10263
10373
|
var onSubmitClick = React.useCallback(function () {
|
|
10264
|
-
|
|
10265
|
-
|
|
10266
|
-
|
|
10267
|
-
|
|
10268
|
-
|
|
10269
|
-
|
|
10270
|
-
|
|
10271
|
-
|
|
10272
|
-
|
|
10273
|
-
|
|
10274
|
-
|
|
10275
|
-
|
|
10276
|
-
|
|
10277
|
-
|
|
10278
|
-
|
|
10279
|
-
idFrontImage = _a;
|
|
10280
|
-
_b = idBackDocument;
|
|
10281
|
-
if (!_b) return [3, 4];
|
|
10282
|
-
return [4, dataUrlToBase64(idBackDocument.imageData)];
|
|
10283
|
-
case 3:
|
|
10284
|
-
_b = _d.sent();
|
|
10285
|
-
_d.label = 4;
|
|
10286
|
-
case 4:
|
|
10287
|
-
idBackImage = _b;
|
|
10288
|
-
_c = passportDocument;
|
|
10289
|
-
if (!_c) return [3, 6];
|
|
10290
|
-
return [4, dataUrlToBase64(passportDocument.imageData)];
|
|
10291
|
-
case 5:
|
|
10292
|
-
_c = _d.sent();
|
|
10293
|
-
_d.label = 6;
|
|
10294
|
-
case 6:
|
|
10295
|
-
passportImage = _c;
|
|
10296
|
-
setIdFrontImage(idFrontImage);
|
|
10297
|
-
setIdBackImage(idBackImage);
|
|
10298
|
-
setPassportImage(passportImage);
|
|
10299
|
-
releaseCameraAccess();
|
|
10300
|
-
setTimeout(function () {
|
|
10301
|
-
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess({
|
|
10302
|
-
idFrontImage: idFrontImage,
|
|
10303
|
-
idBackImage: idBackImage,
|
|
10304
|
-
passportImage: passportImage
|
|
10305
|
-
});
|
|
10306
|
-
}, 0);
|
|
10307
|
-
return [2];
|
|
10308
|
-
}
|
|
10374
|
+
var idFrontDocument = state.capturedDocuments['ID_CARD_FRONT'];
|
|
10375
|
+
var idBackDocument = state.capturedDocuments['ID_CARD_BACK'];
|
|
10376
|
+
var passportDocument = state.capturedDocuments['PASSPORT'];
|
|
10377
|
+
var idFrontImage = idFrontDocument && dataUrlToBase64Sync(idFrontDocument.imageData);
|
|
10378
|
+
var idBackImage = idBackDocument && dataUrlToBase64Sync(idBackDocument.imageData);
|
|
10379
|
+
var passportImage = passportDocument && dataUrlToBase64Sync(passportDocument.imageData);
|
|
10380
|
+
setIdFrontImage(idFrontImage);
|
|
10381
|
+
setIdBackImage(idBackImage);
|
|
10382
|
+
setPassportImage(passportImage);
|
|
10383
|
+
releaseCameraAccess();
|
|
10384
|
+
setTimeout(function () {
|
|
10385
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess({
|
|
10386
|
+
idFrontImage: idFrontImage,
|
|
10387
|
+
idBackImage: idBackImage,
|
|
10388
|
+
passportImage: passportImage
|
|
10309
10389
|
});
|
|
10310
|
-
});
|
|
10390
|
+
}, 0);
|
|
10311
10391
|
}, [onSuccess, releaseCameraAccess, setIdBackImage, setIdFrontImage, setPassportImage, state.capturedDocuments]);
|
|
10312
10392
|
var showSuccessScreen = useShowSuccessScreen(skipSuccessScreen, state.captureState === CaptureState.COMPLETE, onSubmitClick);
|
|
10313
10393
|
var onRetryClick = React.useCallback(function () {
|
|
@@ -10361,6 +10441,19 @@ var IdCaptureWizard = function IdCaptureWizard(_a) {
|
|
|
10361
10441
|
className: "padded"
|
|
10362
10442
|
}, /*#__PURE__*/React__default['default'].createElement("h1", null, "Submission completed!"), /*#__PURE__*/React__default['default'].createElement("pre", null, JSON.stringify(submissionResponse, null, 2)));
|
|
10363
10443
|
}
|
|
10444
|
+
if (modelsError) {
|
|
10445
|
+
return /*#__PURE__*/React__default['default'].createElement(IdCaptureFallback, {
|
|
10446
|
+
onFinished: onSubmitClick,
|
|
10447
|
+
onCapture: function onCapture(imageData) {
|
|
10448
|
+
dispatch({
|
|
10449
|
+
type: 'imageCapturedManually',
|
|
10450
|
+
payload: {
|
|
10451
|
+
imageData: imageData
|
|
10452
|
+
}
|
|
10453
|
+
});
|
|
10454
|
+
}
|
|
10455
|
+
});
|
|
10456
|
+
}
|
|
10364
10457
|
return /*#__PURE__*/React__default['default'].createElement(PageContainer, {
|
|
10365
10458
|
className: "flex"
|
|
10366
10459
|
}, state.captureState !== CaptureState.COMPLETE && /*#__PURE__*/React__default['default'].createElement(CameraVideoTag, null), overlayDismissed && function () {
|
|
@@ -10477,6 +10570,23 @@ var FaceCaptureGuideOverlay = function FaceCaptureGuideOverlay(_a) {
|
|
|
10477
10570
|
}));
|
|
10478
10571
|
};
|
|
10479
10572
|
|
|
10573
|
+
var ModelLoadingErrorOverlay = function ModelLoadingErrorOverlay(_a) {
|
|
10574
|
+
var error = _a.error;
|
|
10575
|
+
return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, {
|
|
10576
|
+
style: {
|
|
10577
|
+
justifyContent: 'center'
|
|
10578
|
+
}
|
|
10579
|
+
}, /*#__PURE__*/React__default['default'].createElement("h3", {
|
|
10580
|
+
style: {
|
|
10581
|
+
marginBottom: 8
|
|
10582
|
+
}
|
|
10583
|
+
}, "We're sorry, an unexpected error has occurred."), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
10584
|
+
style: {
|
|
10585
|
+
marginBottom: 0
|
|
10586
|
+
}
|
|
10587
|
+
}, /*#__PURE__*/React__default['default'].createElement("code", null, error.message))));
|
|
10588
|
+
};
|
|
10589
|
+
|
|
10480
10590
|
var NUM_KEYPOINTS = 6;
|
|
10481
10591
|
var GREEN = '#32EEDB';
|
|
10482
10592
|
var RED = '#FF2C35';
|