idmission-web-sdk 2.1.23 → 2.1.24
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/signature_capture/data.d.ts +3 -1
- package/dist/components/video_signature_capture/VideoSignatureSuccess.d.ts +2 -1
- package/dist/sdk2.cjs.development.js +110 -73
- 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 +110 -73
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +110 -73
- 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/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import ReactSignatureCanvas from 'react-signature-canvas';
|
|
2
|
+
import SignatureCanvas from 'react-signature-canvas';
|
|
2
3
|
export type SignatureData = {
|
|
3
4
|
clickX_simple: number[][];
|
|
4
5
|
clickY_simple: number[][];
|
|
@@ -6,4 +7,5 @@ export type SignatureData = {
|
|
|
6
7
|
pressure: string;
|
|
7
8
|
fileContent: string;
|
|
8
9
|
};
|
|
9
|
-
export declare function signatureDataToIdmissionFormat(signatureCanvas: ReactSignatureCanvas): SignatureData;
|
|
10
|
+
export declare function signatureDataToIdmissionFormat(signatureCanvas: ReactSignatureCanvas, imageUrl?: string | null): SignatureData;
|
|
11
|
+
export declare function exportSignatureImage(signaturePad: SignatureCanvas, exportWidth?: number): Promise<string | null>;
|
|
@@ -22,10 +22,11 @@ export type VideoSignatureSuccessVerbiage = {
|
|
|
22
22
|
};
|
|
23
23
|
export type VideoSignatureSuccessProps = {
|
|
24
24
|
videoUrl: string;
|
|
25
|
+
imageUrl: string;
|
|
25
26
|
onDoneClick?: () => void;
|
|
26
27
|
onRetryClick?: () => void;
|
|
27
28
|
classNames?: VideoSignatureSuccessClassNames;
|
|
28
29
|
colors?: VideoSignatureSuccessColors;
|
|
29
30
|
verbiage?: VideoSignatureSuccessVerbiage;
|
|
30
31
|
};
|
|
31
|
-
export declare const VideoSignatureSuccess: ({ videoUrl, onDoneClick, onRetryClick, classNames, colors, verbiage: rawVerbiage, }: VideoSignatureSuccessProps) => ReactElement;
|
|
32
|
+
export declare const VideoSignatureSuccess: ({ videoUrl, imageUrl, onDoneClick, onRetryClick, classNames, colors, verbiage: rawVerbiage, }: VideoSignatureSuccessProps) => ReactElement;
|
|
@@ -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.
|
|
237
|
+
var webSdkVersion = '2.1.24';
|
|
238
238
|
|
|
239
239
|
function getPlatform() {
|
|
240
240
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -11772,15 +11772,14 @@ var AdditionalDocumentCaptureWizard = function AdditionalDocumentCaptureWizard(_
|
|
|
11772
11772
|
});
|
|
11773
11773
|
};
|
|
11774
11774
|
|
|
11775
|
-
function signatureDataToIdmissionFormat(signatureCanvas) {
|
|
11776
|
-
|
|
11777
|
-
var dataURL = (_a = signatureCanvas.toDataURL()) !== null && _a !== void 0 ? _a : null;
|
|
11775
|
+
function signatureDataToIdmissionFormat(signatureCanvas, imageUrl) {
|
|
11776
|
+
imageUrl || (imageUrl = signatureCanvas.toDataURL());
|
|
11778
11777
|
var signatureData = {
|
|
11779
11778
|
clickX_simple: [],
|
|
11780
11779
|
clickY_simple: [],
|
|
11781
11780
|
time_simple: [],
|
|
11782
11781
|
pressure: '',
|
|
11783
|
-
fileContent:
|
|
11782
|
+
fileContent: imageUrl ? dataUrlToBase64Sync(imageUrl) : ''
|
|
11784
11783
|
};
|
|
11785
11784
|
signatureCanvas.toData().forEach(function (stroke) {
|
|
11786
11785
|
var xs = [];
|
|
@@ -11797,6 +11796,68 @@ function signatureDataToIdmissionFormat(signatureCanvas) {
|
|
|
11797
11796
|
});
|
|
11798
11797
|
return signatureData;
|
|
11799
11798
|
}
|
|
11799
|
+
function exportSignatureImage(signaturePad_1) {
|
|
11800
|
+
return __awaiter(this, arguments, void 0, function (signaturePad, exportWidth) {
|
|
11801
|
+
var signatureCanvas, scaledHeight, svgB64Url, svgContent, scaledSvgContent, scaledSvgUrl;
|
|
11802
|
+
if (exportWidth === void 0) {
|
|
11803
|
+
exportWidth = 600;
|
|
11804
|
+
}
|
|
11805
|
+
return __generator(this, function (_a) {
|
|
11806
|
+
switch (_a.label) {
|
|
11807
|
+
case 0:
|
|
11808
|
+
signatureCanvas = signaturePad.getCanvas();
|
|
11809
|
+
scaledHeight = signatureCanvas.height * exportWidth / signatureCanvas.width;
|
|
11810
|
+
svgB64Url = signaturePad.getSignaturePad()._toSVG();
|
|
11811
|
+
svgContent = atob(svgB64Url.replace('data:image/svg+xml;base64,', ''));
|
|
11812
|
+
scaledSvgContent = svgContent.replace(/width="[0-9.]+"/, "width=\"".concat(exportWidth, "\"")).replace(/height="[0-9.]+"/, "height=\"".concat(scaledHeight, "\"")).replace(/viewBox="0 0 [0-9.]+ [0-9.]+"/, "viewBox=\"0 0 ".concat(signatureCanvas.width, " ").concat(signatureCanvas.height, "\""));
|
|
11813
|
+
scaledSvgUrl = 'data:image/svg+xml;base64,' + btoa(scaledSvgContent);
|
|
11814
|
+
return [4 /*yield*/, convertSVGtoImg(scaledSvgUrl)];
|
|
11815
|
+
case 1:
|
|
11816
|
+
return [2 /*return*/, _a.sent()];
|
|
11817
|
+
}
|
|
11818
|
+
});
|
|
11819
|
+
});
|
|
11820
|
+
}
|
|
11821
|
+
function loadImage(url) {
|
|
11822
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
11823
|
+
var img;
|
|
11824
|
+
return __generator(this, function (_a) {
|
|
11825
|
+
img = document.createElement('img');
|
|
11826
|
+
img.src = url;
|
|
11827
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
11828
|
+
img.onload = function () {
|
|
11829
|
+
return resolve(img);
|
|
11830
|
+
};
|
|
11831
|
+
img.onerror = reject;
|
|
11832
|
+
})];
|
|
11833
|
+
});
|
|
11834
|
+
});
|
|
11835
|
+
}
|
|
11836
|
+
function convertSVGtoImg(svgData_1) {
|
|
11837
|
+
return __awaiter(this, arguments, void 0, function (svgData, format) {
|
|
11838
|
+
var img, canvas, ctx;
|
|
11839
|
+
if (format === void 0) {
|
|
11840
|
+
format = 'jpeg';
|
|
11841
|
+
}
|
|
11842
|
+
return __generator(this, function (_a) {
|
|
11843
|
+
switch (_a.label) {
|
|
11844
|
+
case 0:
|
|
11845
|
+
return [4 /*yield*/, loadImage(svgData)];
|
|
11846
|
+
case 1:
|
|
11847
|
+
img = _a.sent();
|
|
11848
|
+
canvas = document.createElement('canvas');
|
|
11849
|
+
canvas.width = img.naturalWidth;
|
|
11850
|
+
canvas.height = img.naturalHeight;
|
|
11851
|
+
ctx = canvas.getContext('2d');
|
|
11852
|
+
if (!ctx) return [2 /*return*/, null];
|
|
11853
|
+
ctx.fillStyle = 'white';
|
|
11854
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
11855
|
+
ctx.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight);
|
|
11856
|
+
return [2 /*return*/, canvas.toDataURL("image/".concat(format), 1.0)];
|
|
11857
|
+
}
|
|
11858
|
+
});
|
|
11859
|
+
});
|
|
11860
|
+
}
|
|
11800
11861
|
|
|
11801
11862
|
var SignaturePaperBacking = styled__default.default.div(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n ", "\n ", "\n ", "\n"], ["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n ", "\n ", "\n ", "\n"])), function (props) {
|
|
11802
11863
|
var _a, _b;
|
|
@@ -11840,9 +11901,21 @@ var SignatureCapture = function SignatureCapture(_a) {
|
|
|
11840
11901
|
clearBtnText: 'Clear'
|
|
11841
11902
|
});
|
|
11842
11903
|
function onAcceptClicked() {
|
|
11843
|
-
|
|
11844
|
-
|
|
11845
|
-
|
|
11904
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
11905
|
+
var imageUrl, signatureData;
|
|
11906
|
+
return __generator(this, function (_a) {
|
|
11907
|
+
switch (_a.label) {
|
|
11908
|
+
case 0:
|
|
11909
|
+
if (!signaturePad.current) return [2 /*return*/];
|
|
11910
|
+
return [4 /*yield*/, exportSignatureImage(signaturePad.current)];
|
|
11911
|
+
case 1:
|
|
11912
|
+
imageUrl = _a.sent();
|
|
11913
|
+
signatureData = signatureDataToIdmissionFormat(signaturePad.current, imageUrl);
|
|
11914
|
+
onAccept === null || onAccept === void 0 ? void 0 : onAccept(signatureData, imageUrl !== null && imageUrl !== void 0 ? imageUrl : '');
|
|
11915
|
+
return [2 /*return*/];
|
|
11916
|
+
}
|
|
11917
|
+
});
|
|
11918
|
+
});
|
|
11846
11919
|
}
|
|
11847
11920
|
return /*#__PURE__*/React__namespace.default.createElement(PageContainer, {
|
|
11848
11921
|
className: classNames.container
|
|
@@ -12175,20 +12248,23 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
|
|
|
12175
12248
|
}
|
|
12176
12249
|
}, [numFramesWithoutFaces, onFaceNotDetected]);
|
|
12177
12250
|
function onAcceptClicked() {
|
|
12178
|
-
|
|
12179
|
-
|
|
12180
|
-
setSignatureData(signatureData);
|
|
12181
|
-
var signatureCanvas = signaturePad.current.getCanvas();
|
|
12182
|
-
var scaledHeight = signatureCanvas.height * 600 / signatureCanvas.width;
|
|
12183
|
-
var svgB64Url = signaturePad.current.getSignaturePad()._toSVG();
|
|
12184
|
-
var svgContent = atob(svgB64Url.replace('data:image/svg+xml;base64,', ''));
|
|
12185
|
-
var scaledSvgContent = svgContent.replace(/width="[0-9.]+"/, "width=\"600\"").replace(/height="[0-9.]+"/, "height=\"".concat(scaledHeight, "\"")).replace(/viewBox="0 0 [0-9.]+ [0-9.]+"/, "viewBox=\"0 0 ".concat(signatureCanvas.width, " ").concat(signatureCanvas.height, "\""));
|
|
12186
|
-
var scaledSvgUrl = 'data:image/svg+xml;base64,' + btoa(scaledSvgContent);
|
|
12187
|
-
convertSVGtoImg(scaledSvgUrl).then(function (dataUrl) {
|
|
12251
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
12252
|
+
var imageUrl;
|
|
12188
12253
|
var _a;
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12254
|
+
return __generator(this, function (_b) {
|
|
12255
|
+
switch (_b.label) {
|
|
12256
|
+
case 0:
|
|
12257
|
+
if (!signaturePad.current) return [2 /*return*/];
|
|
12258
|
+
return [4 /*yield*/, exportSignatureImage(signaturePad.current)];
|
|
12259
|
+
case 1:
|
|
12260
|
+
imageUrl = _b.sent();
|
|
12261
|
+
setSignatureDataUrl(imageUrl);
|
|
12262
|
+
setSignatureData(signatureDataToIdmissionFormat(signaturePad.current, imageUrl));
|
|
12263
|
+
stopRecordingVideo();
|
|
12264
|
+
(_a = signatureRecorder.current) === null || _a === void 0 ? void 0 : _a.stop();
|
|
12265
|
+
return [2 /*return*/];
|
|
12266
|
+
}
|
|
12267
|
+
});
|
|
12192
12268
|
});
|
|
12193
12269
|
}
|
|
12194
12270
|
return /*#__PURE__*/React__namespace.default.createElement(PageContainer, {
|
|
@@ -12235,54 +12311,11 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
|
|
|
12235
12311
|
}));
|
|
12236
12312
|
};
|
|
12237
12313
|
var AcceptBtn = styled__default.default(LoaderButton)(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n margin-left: auto;\n"], ["\n margin-left: auto;\n"])));
|
|
12238
|
-
var loadImage = function loadImage(url) {
|
|
12239
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
12240
|
-
var img;
|
|
12241
|
-
return __generator(this, function (_a) {
|
|
12242
|
-
img = document.createElement('img');
|
|
12243
|
-
img.src = url;
|
|
12244
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
12245
|
-
img.onload = function () {
|
|
12246
|
-
return resolve(img);
|
|
12247
|
-
};
|
|
12248
|
-
img.onerror = reject;
|
|
12249
|
-
})];
|
|
12250
|
-
});
|
|
12251
|
-
});
|
|
12252
|
-
};
|
|
12253
|
-
var convertSVGtoImg = function convertSVGtoImg(svgData_1) {
|
|
12254
|
-
var args_1 = [];
|
|
12255
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
12256
|
-
args_1[_i - 1] = arguments[_i];
|
|
12257
|
-
}
|
|
12258
|
-
return __awaiter(void 0, __spreadArray([svgData_1], args_1, true), void 0, function (svgData, format) {
|
|
12259
|
-
var img, canvas, ctx;
|
|
12260
|
-
if (format === void 0) {
|
|
12261
|
-
format = 'jpeg';
|
|
12262
|
-
}
|
|
12263
|
-
return __generator(this, function (_a) {
|
|
12264
|
-
switch (_a.label) {
|
|
12265
|
-
case 0:
|
|
12266
|
-
return [4 /*yield*/, loadImage(svgData)];
|
|
12267
|
-
case 1:
|
|
12268
|
-
img = _a.sent();
|
|
12269
|
-
canvas = document.createElement('canvas');
|
|
12270
|
-
canvas.width = img.naturalWidth;
|
|
12271
|
-
canvas.height = img.naturalHeight;
|
|
12272
|
-
ctx = canvas.getContext('2d');
|
|
12273
|
-
if (!ctx) return [2 /*return*/];
|
|
12274
|
-
ctx.fillStyle = 'white';
|
|
12275
|
-
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
12276
|
-
ctx.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight);
|
|
12277
|
-
return [2 /*return*/, canvas.toDataURL("image/".concat(format), 1.0)];
|
|
12278
|
-
}
|
|
12279
|
-
});
|
|
12280
|
-
});
|
|
12281
|
-
};
|
|
12282
12314
|
var templateObject_1$a;
|
|
12283
12315
|
|
|
12284
12316
|
var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
|
|
12285
12317
|
var videoUrl = _a.videoUrl,
|
|
12318
|
+
imageUrl = _a.imageUrl,
|
|
12286
12319
|
onDoneClick = _a.onDoneClick,
|
|
12287
12320
|
onRetryClick = _a.onRetryClick,
|
|
12288
12321
|
_b = _a.classNames,
|
|
@@ -12311,6 +12344,12 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
|
|
|
12311
12344
|
controls: true,
|
|
12312
12345
|
preload: "metadata",
|
|
12313
12346
|
autoPlay: true
|
|
12347
|
+
}), /*#__PURE__*/React__namespace.default.createElement("img", {
|
|
12348
|
+
src: imageUrl,
|
|
12349
|
+
alt: "",
|
|
12350
|
+
style: {
|
|
12351
|
+
display: 'none'
|
|
12352
|
+
}
|
|
12314
12353
|
})), /*#__PURE__*/React__namespace.default.createElement(ButtonsRow, {
|
|
12315
12354
|
className: classNames.buttonsRow
|
|
12316
12355
|
}, /*#__PURE__*/React__namespace.default.createElement(LoaderButton, {
|
|
@@ -12419,13 +12458,13 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
|
|
|
12419
12458
|
});
|
|
12420
12459
|
}, [logCaptureMetadata, selfieImage, setSelfieImage]);
|
|
12421
12460
|
var _p = React.useState(null),
|
|
12422
|
-
|
|
12423
|
-
|
|
12461
|
+
signatureImageUrl = _p[0],
|
|
12462
|
+
setSignatureImageUrl = _p[1];
|
|
12424
12463
|
var onSignatureCaptureCompleted = React.useCallback(function (videoData, signatureData, signatureImageData) {
|
|
12425
12464
|
setSignatureData(signatureData);
|
|
12426
12465
|
setSignatureVideoUrl(URL.createObjectURL(videoData));
|
|
12466
|
+
setSignatureImageUrl(signatureImageData);
|
|
12427
12467
|
setCaptureState('SUCCESS');
|
|
12428
|
-
setSignatureDataUrl(signatureImageData);
|
|
12429
12468
|
onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(videoData, signatureData, signatureImageData);
|
|
12430
12469
|
}, [onVideoCaptured, setSignatureData, setSignatureVideoUrl]);
|
|
12431
12470
|
var onSignatureCaptureFacesNotDetected = React.useCallback(function () {
|
|
@@ -12483,17 +12522,15 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
|
|
|
12483
12522
|
});
|
|
12484
12523
|
case 'SUCCESS':
|
|
12485
12524
|
if (!showSuccessScreen) return;
|
|
12486
|
-
return /*#__PURE__*/React__namespace.default.createElement(
|
|
12525
|
+
return /*#__PURE__*/React__namespace.default.createElement(VideoSignatureSuccess, {
|
|
12487
12526
|
videoUrl: signatureVideoUrl !== null && signatureVideoUrl !== void 0 ? signatureVideoUrl : '',
|
|
12527
|
+
imageUrl: signatureImageUrl !== null && signatureImageUrl !== void 0 ? signatureImageUrl : '',
|
|
12488
12528
|
onDoneClick: onComplete,
|
|
12489
12529
|
onRetryClick: onRetry,
|
|
12490
12530
|
classNames: classNames.success,
|
|
12491
12531
|
colors: colors.success,
|
|
12492
12532
|
verbiage: verbiage.success
|
|
12493
|
-
})
|
|
12494
|
-
src: signatureDataUrl,
|
|
12495
|
-
alt: ""
|
|
12496
|
-
}));
|
|
12533
|
+
});
|
|
12497
12534
|
default:
|
|
12498
12535
|
return null;
|
|
12499
12536
|
}
|