idmission-web-sdk 2.1.20 → 2.1.21

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.
@@ -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.20';
237
+ var webSdkVersion = '2.1.21';
238
238
 
239
239
  function getPlatform() {
240
240
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -12175,13 +12175,21 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
12175
12175
  }
12176
12176
  }, [numFramesWithoutFaces, onFaceNotDetected]);
12177
12177
  function onAcceptClicked() {
12178
- var _a;
12179
12178
  if (!signaturePad.current) return;
12180
12179
  var signatureData = signatureDataToIdmissionFormat(signaturePad.current);
12181
12180
  setSignatureData(signatureData);
12182
- setSignatureDataUrl(signaturePad.current.toDataURL());
12183
- stopRecordingVideo();
12184
- (_a = signatureRecorder.current) === null || _a === void 0 ? void 0 : _a.stop();
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) {
12188
+ var _a;
12189
+ dataUrl && setSignatureDataUrl(dataUrl);
12190
+ stopRecordingVideo();
12191
+ (_a = signatureRecorder.current) === null || _a === void 0 ? void 0 : _a.stop();
12192
+ });
12185
12193
  }
12186
12194
  return /*#__PURE__*/React__namespace.default.createElement(PageContainer, {
12187
12195
  className: "flex ".concat((_b = classNames.container) !== null && _b !== void 0 ? _b : '')
@@ -12227,6 +12235,50 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
12227
12235
  }));
12228
12236
  };
12229
12237
  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
+ };
12230
12282
  var templateObject_1$a;
12231
12283
 
12232
12284
  var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
@@ -12366,18 +12418,22 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
12366
12418
  });
12367
12419
  });
12368
12420
  }, [logCaptureMetadata, selfieImage, setSelfieImage]);
12421
+ var _p = React.useState(null),
12422
+ signatureDataUrl = _p[0],
12423
+ setSignatureDataUrl = _p[1];
12369
12424
  var onSignatureCaptureCompleted = React.useCallback(function (videoData, signatureData, signatureImageData) {
12370
12425
  setSignatureData(signatureData);
12371
12426
  setSignatureVideoUrl(URL.createObjectURL(videoData));
12372
12427
  setCaptureState('SUCCESS');
12428
+ setSignatureDataUrl(signatureImageData);
12373
12429
  onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(videoData, signatureData, signatureImageData);
12374
12430
  }, [onVideoCaptured, setSignatureData, setSignatureVideoUrl]);
12375
12431
  var onSignatureCaptureFacesNotDetected = React.useCallback(function () {
12376
12432
  setCaptureState('CHECKING_LIVENESS');
12377
12433
  }, []);
12378
- var _p = React.useState(0),
12379
- attempt = _p[0],
12380
- setAttempt = _p[1];
12434
+ var _q = React.useState(0),
12435
+ attempt = _q[0],
12436
+ setAttempt = _q[1];
12381
12437
  var onExit = React.useCallback(function () {
12382
12438
  releaseCameraAccess();
12383
12439
  setAttempt(function (n) {
@@ -12427,14 +12483,17 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
12427
12483
  });
12428
12484
  case 'SUCCESS':
12429
12485
  if (!showSuccessScreen) return;
12430
- return /*#__PURE__*/React__namespace.default.createElement(VideoSignatureSuccess, {
12486
+ return /*#__PURE__*/React__namespace.default.createElement(React__namespace.default.Fragment, null, /*#__PURE__*/React__namespace.default.createElement(VideoSignatureSuccess, {
12431
12487
  videoUrl: signatureVideoUrl !== null && signatureVideoUrl !== void 0 ? signatureVideoUrl : '',
12432
12488
  onDoneClick: onComplete,
12433
12489
  onRetryClick: onRetry,
12434
12490
  classNames: classNames.success,
12435
12491
  colors: colors.success,
12436
12492
  verbiage: verbiage.success
12437
- });
12493
+ }), signatureDataUrl && /*#__PURE__*/React__namespace.default.createElement("img", {
12494
+ src: signatureDataUrl,
12495
+ alt: ""
12496
+ }));
12438
12497
  default:
12439
12498
  return null;
12440
12499
  }