idmission-web-sdk 0.0.42 → 0.0.44

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.
@@ -1,6 +1,7 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { LangOption } from '../../lib/locales';
3
3
  import { SubmissionEnvironment, SubmissionRequest, SubmissionResponse } from '../../contexts/SubmissionContext';
4
+ import { SignatureKYCColors, SignatureKYCVerbiage } from '../signature_kyc/SignatureKYCWizard';
4
5
  export type SignatureKYCProps = {
5
6
  lang?: LangOption;
6
7
  submissionToken: string;
@@ -8,8 +9,10 @@ export type SignatureKYCProps = {
8
9
  submissionUrl?: string;
9
10
  onBeforeSubmit?: (request: SubmissionRequest) => Promise<SubmissionRequest>;
10
11
  onComplete?: (submissionResponse: SubmissionResponse) => void;
12
+ colors?: SignatureKYCColors;
13
+ verbiage?: SignatureKYCVerbiage;
11
14
  geolocationEnabled?: boolean;
12
15
  geolocationRequired?: boolean;
13
16
  debugMode?: boolean;
14
17
  };
15
- export declare const SignatureKYC: ({ submissionToken, submissionEnvironment, submissionUrl, onBeforeSubmit, onComplete, geolocationEnabled, geolocationRequired, debugMode, }: SignatureKYCProps) => ReactElement;
18
+ export declare const SignatureKYC: ({ submissionToken, submissionEnvironment, submissionUrl, onBeforeSubmit, onComplete, colors, verbiage, geolocationEnabled, geolocationRequired, debugMode, }: SignatureKYCProps) => ReactElement;
@@ -1,11 +1,19 @@
1
1
  import React from 'react';
2
2
  import { SignatureData } from './data';
3
3
  import { SignatureCaptureVerbiage } from './SignatureCapture';
4
+ export type VideoSignatureCaptureColors = {
5
+ guidanceMessageBackgroundColor?: string;
6
+ guidanceMessageTextColor?: string;
7
+ };
8
+ export type VideoSignatureCaptureVerbiage = SignatureCaptureVerbiage & {
9
+ guidanceMessageText?: string;
10
+ };
4
11
  export type VideoSignatureCaptureProps = {
5
12
  onComplete?: (signatureData: SignatureData, imageData: string, videoData: Blob) => void;
6
13
  onFaceNotDetected?: () => void;
7
14
  onExit?: () => void;
8
- verbiage?: SignatureCaptureVerbiage;
15
+ colors?: VideoSignatureCaptureColors;
16
+ verbiage?: VideoSignatureCaptureVerbiage;
9
17
  debugMode?: boolean;
10
18
  };
11
- export declare const VideoSignatureCapture: ({ onComplete, onFaceNotDetected, onExit, verbiage, debugMode, }: VideoSignatureCaptureProps) => React.ReactElement;
19
+ export declare const VideoSignatureCapture: ({ onComplete, onFaceNotDetected, onExit, colors, verbiage, debugMode, }: VideoSignatureCaptureProps) => React.ReactElement;
@@ -1,7 +1,24 @@
1
1
  import { ReactElement } from 'react';
2
+ import { VideoSignatureCaptureColors, VideoSignatureCaptureVerbiage } from '../signature_capture/VideoSignatureCapture';
3
+ import { FaceLivenessColors, FaceLivenessVerbiage } from '../face_liveness/FaceLivenessWizard';
4
+ export type SignatureKYCColors = {
5
+ faceLiveness?: FaceLivenessColors;
6
+ videoSignatureCapture?: VideoSignatureCaptureColors;
7
+ };
8
+ export type SignatureKYCVerbiage = {
9
+ faceLiveness?: FaceLivenessVerbiage;
10
+ videoSignatureCapture?: VideoSignatureCaptureVerbiage;
11
+ success?: {
12
+ headingText?: string;
13
+ retryBtnText?: string;
14
+ doneBtnText?: string;
15
+ };
16
+ };
2
17
  export type SignatureKYCWizardProps = {
3
18
  onComplete?: () => void;
4
19
  onRetryClicked?: () => void;
20
+ colors?: SignatureKYCColors;
21
+ verbiage?: SignatureKYCVerbiage;
5
22
  debugMode?: boolean;
6
23
  };
7
- export declare const SignatureKYCWizard: ({ onComplete, onRetryClicked, debugMode, }: SignatureKYCWizardProps) => ReactElement;
24
+ export declare const SignatureKYCWizard: ({ onComplete, onRetryClicked, colors, verbiage, debugMode, }: SignatureKYCWizardProps) => ReactElement;
@@ -20,6 +20,8 @@ type Resolution = {
20
20
  ratio: string;
21
21
  };
22
22
  export declare const quickScan: Resolution[];
23
+ export type FacingMode = 'user' | 'environment' | 'left' | 'right';
24
+ export declare function listAvailableCameras(facingMode?: FacingMode): Promise<MediaDeviceInfo[]>;
23
25
  declare function releaseCameraAccess(): void;
24
26
  export declare const useHighestResCaptureDevice: ({ preferFrontFacingCamera, preferContinuityCamera, requestMicrophoneAccess, }?: {
25
27
  preferFrontFacingCamera: boolean;
@@ -0,0 +1,9 @@
1
+ export type Platform = {
2
+ name: string;
3
+ version: string;
4
+ os: {
5
+ family: string;
6
+ version: string;
7
+ };
8
+ };
9
+ export declare function getPlatform(): Platform | undefined;
@@ -299,6 +299,10 @@ var GeolocationAccessDeniedOverlay = function GeolocationAccessDeniedOverlay(_a)
299
299
  }, t('Retry'))))));
300
300
  };
301
301
 
302
+ function getPlatform() {
303
+ return window.platform;
304
+ }
305
+
302
306
  var SubmissionProvider = function SubmissionProvider(_a) {
303
307
  var action = _a.action,
304
308
  children = _a.children,
@@ -505,7 +509,7 @@ var SubmissionProvider = function SubmissionProvider(_a) {
505
509
  sdkVersion: 'WebSDK_9.5.13.2.0',
506
510
  Resolution: "".concat(window.innerWidth, " x ").concat(window.innerHeight)
507
511
  };
508
- platform = window.platform;
512
+ platform = getPlatform();
509
513
  if (platform) {
510
514
  metadata.os = platform.os.family;
511
515
  metadata.osVersion = platform.os.version;
@@ -10738,21 +10742,30 @@ function smallerSideIos() {
10738
10742
  return window.screen.width < window.screen.height ? window.screen.width : window.screen.height;
10739
10743
  }
10740
10744
 
10741
- function listAvailableCameras() {
10745
+ function listAvailableCameras(facingMode) {
10742
10746
  return tslib.__awaiter(this, void 0, void 0, function () {
10743
10747
  var cameraEnumerationStream, videoDevices;
10744
10748
  return tslib.__generator(this, function (_a) {
10745
10749
  switch (_a.label) {
10746
10750
  case 0:
10747
- console.log('enumerating cameras...');
10751
+ _a.trys.push([0, 2,, 3]);
10748
10752
  return [4, navigator.mediaDevices.getUserMedia({
10749
- video: true,
10753
+ video: {
10754
+ facingMode: {
10755
+ exact: facingMode
10756
+ }
10757
+ },
10750
10758
  audio: false
10751
10759
  })];
10752
10760
  case 1:
10753
10761
  cameraEnumerationStream = _a.sent();
10754
- return [4, navigator.mediaDevices.enumerateDevices()];
10762
+ return [3, 3];
10755
10763
  case 2:
10764
+ _a.sent();
10765
+ return [2, []];
10766
+ case 3:
10767
+ return [4, navigator.mediaDevices.enumerateDevices()];
10768
+ case 4:
10756
10769
  videoDevices = _a.sent().filter(function (_a) {
10757
10770
  var kind = _a.kind;
10758
10771
  return kind === 'videoinput';
@@ -10767,6 +10780,22 @@ function listAvailableCameras() {
10767
10780
  });
10768
10781
  });
10769
10782
  }
10783
+ var frontLabels = ['front', 'avant', 'anteriore', 'cameraaanvoorzijde', 'kamerapåframsidan', 'forsidekamera', 'kamerapåforsiden', 'aparatprzedni', 'etukamera', 'kameradepan', 'ÖnKamera', 'cameramặttrước', 'camerăfață', 'prednákamera', 'prednjakamera', 'előlapikamera', 'přednífotoaparát', 'μπροστινήκάμερα', 'переднякамера', 'передняякамера', 'преднакамера', 'алдыңғыкамера', 'מצלמה קדמית', 'الكاميرا الأمامية', 'फ़्रंटकैमरा', '前置相机', '前置鏡頭', '前面カメラ', '전면카메라', 'กล้องด้านหน้า'].map(function (s) {
10784
+ return s.toLocaleLowerCase().split(' ').join('');
10785
+ });
10786
+ var rearLabels = ['back', 'rear', 'posterior', 'trasera', 'traseira', 'arrière', 'rückkamera', 'fotocamera(posteriore)', 'cameraaanachterzijde', 'kamerapåbaksidan', 'kamerapåbaksiden', 'bagsidekamera', 'aparattylny', 'takakamera', 'arkakamera', 'kamerabelakang', 'cameramặtsau', 'camerăspate', 'stražnjakamera', 'zadnákamera', 'hátoldalikamera', 'zadnífotoaparát', 'πίσωκάμερα', 'заднякамера', 'Задняякамера', 'заднакамера', 'артқыкамера', 'מצלמה אחורית', 'الكاميرا الخلفية', 'बैककैमरा', '后置相机', '後置鏡頭', '背面カメラ', '후면카메라', 'กล้องด้านหลัง'].map(function (s) {
10787
+ return s.toLocaleLowerCase().split(' ').join('');
10788
+ });
10789
+ var backUltraWideLabels = ['backultrawidecamera', 'ultraampliaposterior', 'ultra-angulartraseira', 'ultragrandeangulartraseira', 'ultragrandangle', 'ultragranangular', 'ultra-weitwinkelkamera', 'ultra-grandangolo', 'ultrabredecameraaanachterzijde', 'ultravidvinkelkamerapåbaksidan', 'ultravidvinkelkameraetpåbagsiden', 'ultravidvinkelkamerabak', 'ultragenişkameraarkayüzü', 'ultralaajakulmainentakakamera', 'tylnyaparatultraszerokokątny', 'cameracựcrộngmặtsau', 'camerăcuobiectivultra‑superangularspate', 'ultraszéleslátószögűkamera', 'kameraultralebarbelakang', 'stražnjaultraširokakamera', 'zadníultraširokoúhlýfotoaparát', 'ultraširokouhlá', 'πίσωυπερευρείακάμερα', 'заднянадширококутнакамера', 'Задняясверхширокоугольнаякамера', 'Задна свръх широкоъгълна камера', 'артқыультракеңбұрыштыкамера', 'מצלמה אולטרה רחבה אחורית', 'كاميرا خلفية عريضة جدًا', 'बैकअल्ट्रावाइडकैमरा', '后置超广角相机', '後置超廣角鏡頭相機', '背面超広角カメラ', '후면울트라와이드카메라', 'กล้องด้านหลังอัลตร้าไวด์'].map(function (s) {
10790
+ return s.toLocaleLowerCase().split(' ').join('');
10791
+ });
10792
+ var labelMatches = function labelMatches(labelOrDevice, labelSetOrLabel) {
10793
+ var label = labelOrDevice instanceof MediaDeviceInfo ? getDeviceLabel(labelOrDevice) : labelOrDevice;
10794
+ var labelSet = typeof labelSetOrLabel === 'string' ? [labelSetOrLabel] : labelSetOrLabel;
10795
+ return labelSet.some(function (l) {
10796
+ return label.includes(l);
10797
+ });
10798
+ };
10770
10799
  var getDeviceLabel = function getDeviceLabel(deviceInfo) {
10771
10800
  return deviceInfo.label.toLocaleLowerCase().split(' ').join('');
10772
10801
  };
@@ -10778,7 +10807,7 @@ function obtainCameraAccess(stream, deviceLabel, video) {
10778
10807
  width = _a.width,
10779
10808
  height = _a.height;
10780
10809
  var label = deviceLabel.toLocaleLowerCase().split(' ').join('');
10781
- var isRearFacing = label.includes('back') || label.includes('iphonecamera');
10810
+ var isRearFacing = labelMatches(label, tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], rearLabels, true), backUltraWideLabels, true), ['iphone'], false));
10782
10811
  var release = function release() {
10783
10812
  stream.getTracks().forEach(function (track) {
10784
10813
  track.enabled = false;
@@ -10856,9 +10885,10 @@ var useHighestResCaptureDevice = function useHighestResCaptureDevice(_a) {
10856
10885
  if (cameraAccessDenied) return;
10857
10886
  listAvailableCameras().then(function (availableCameras) {
10858
10887
  var selectedCamera;
10859
- if (!iphoneContinuityCameraDenied) {
10888
+ var platform = getPlatform();
10889
+ if (!iphoneContinuityCameraDenied && (!platform || platform.os.family === 'OS X')) {
10860
10890
  var iphoneContinuityCamera = availableCameras.find(function (deviceInfo) {
10861
- return getDeviceLabel(deviceInfo).includes('iphonecamera');
10891
+ return labelMatches(deviceInfo, 'iphone');
10862
10892
  });
10863
10893
  setIphoneContinuityCameraAvailable(!!iphoneContinuityCamera);
10864
10894
  if (iphoneContinuityCamera && iphoneContinuityCameraAllowed) {
@@ -10867,21 +10897,24 @@ var useHighestResCaptureDevice = function useHighestResCaptureDevice(_a) {
10867
10897
  }
10868
10898
  if (preferFrontFacingCamera) {
10869
10899
  selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
10870
- return getDeviceLabel(deviceInfo).includes('front');
10900
+ return labelMatches(deviceInfo, frontLabels);
10871
10901
  }));
10872
10902
  }
10873
10903
  if (wideAngleIsBetter()) {
10874
10904
  selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
10875
- return getDeviceLabel(deviceInfo).includes('backultrawidecamera');
10905
+ return labelMatches(deviceInfo, backUltraWideLabels);
10876
10906
  }));
10877
10907
  } else {
10878
10908
  selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
10879
- return getDeviceLabel(deviceInfo).includes('back') && !getDeviceLabel(deviceInfo).includes('backultrawidecamera');
10909
+ return labelMatches(deviceInfo, rearLabels) && !labelMatches(deviceInfo, backUltraWideLabels);
10880
10910
  }));
10881
10911
  }
10882
10912
  selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
10883
- return getDeviceLabel(deviceInfo).includes('back');
10913
+ return labelMatches(deviceInfo, rearLabels);
10884
10914
  }));
10915
+ if (!preferFrontFacingCamera && (platform === null || platform === void 0 ? void 0 : platform.os.family) === 'iOS' && availableCameras.length > 0) {
10916
+ selectedCamera || (selectedCamera = availableCameras[1]);
10917
+ }
10885
10918
  selectedCamera || (selectedCamera = availableCameras[0]);
10886
10919
  setVideoDevice(selectedCamera);
10887
10920
  })["catch"](function (e) {
@@ -10902,7 +10935,7 @@ var useHighestResCaptureDevice = function useHighestResCaptureDevice(_a) {
10902
10935
  if (!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia)) return cleanup;
10903
10936
  (function () {
10904
10937
  return tslib.__awaiter(void 0, void 0, void 0, function () {
10905
- var stream, e_1;
10938
+ var stream, e_2;
10906
10939
  return tslib.__generator(this, function (_a) {
10907
10940
  switch (_a.label) {
10908
10941
  case 0:
@@ -10926,8 +10959,8 @@ var useHighestResCaptureDevice = function useHighestResCaptureDevice(_a) {
10926
10959
  stream = _a.sent();
10927
10960
  return [3, 4];
10928
10961
  case 3:
10929
- e_1 = _a.sent();
10930
- if (e_1.name === 'NotAllowedError') {
10962
+ e_2 = _a.sent();
10963
+ if (e_2.name === 'NotAllowedError') {
10931
10964
  if (iphoneContinuityCameraAllowed) {
10932
10965
  setIphoneContinuityCameraAvailable(false);
10933
10966
  setIphoneContinuityCameraDenied(true);
@@ -11430,39 +11463,44 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
11430
11463
  var onComplete = _a.onComplete,
11431
11464
  onFaceNotDetected = _a.onFaceNotDetected,
11432
11465
  onExit = _a.onExit,
11433
- _d = _a.verbiage,
11434
- verbiage = _d === void 0 ? {} : _d,
11435
- _e = _a.debugMode,
11436
- debugMode = _e === void 0 ? false : _e;
11466
+ _d = _a.colors,
11467
+ colors = _d === void 0 ? {} : _d,
11468
+ _e = _a.verbiage,
11469
+ verbiage = _e === void 0 ? {} : _e,
11470
+ _f = _a.debugMode,
11471
+ debugMode = _f === void 0 ? false : _f;
11437
11472
  var t = reactI18next.useTranslation().t;
11438
- var _f = React.useContext(CameraStateContext),
11439
- cameraRef = _f.cameraRef,
11440
- videoRef = _f.videoRef;
11441
- var _g = useResizeObserver__default['default'](),
11442
- ref = _g.ref,
11443
- width = _g.width,
11444
- height = _g.height;
11473
+ var _g = React.useContext(CameraStateContext),
11474
+ cameraRef = _g.cameraRef,
11475
+ videoRef = _g.videoRef;
11476
+ var _h = useResizeObserver__default['default'](),
11477
+ ref = _h.ref,
11478
+ width = _h.width,
11479
+ height = _h.height;
11445
11480
  var signaturePad = React.useRef(null);
11446
11481
  var signatureRecorder = React.useRef(null);
11447
11482
  var recordedChunks = React.useRef([]);
11448
- var _h = React.useState(null),
11449
- signatureVideoUrl = _h[0],
11450
- setSignatureVideoUrl = _h[1];
11483
+ var _j = React.useState(null),
11484
+ signatureVideoUrl = _j[0],
11485
+ setSignatureVideoUrl = _j[1];
11451
11486
  var onPredictionMade = React.useContext(HighPerformanceSelfieGuidanceModelsContext).onPredictionMade;
11452
- var _j = useVideoRecorder(cameraRef.current),
11453
- isRecording = _j.isRecording,
11454
- startRecording = _j.startRecording,
11455
- stopRecording = _j.stopRecording,
11456
- videoUrl = _j.videoUrl;
11457
- var _k = React.useState(null),
11458
- signatureData = _k[0],
11459
- setSignatureData = _k[1];
11487
+ var _k = useVideoRecorder(cameraRef.current),
11488
+ isRecording = _k.isRecording,
11489
+ startRecording = _k.startRecording,
11490
+ stopRecording = _k.stopRecording,
11491
+ videoUrl = _k.videoUrl;
11460
11492
  var _l = React.useState(null),
11461
- signatureDataUrl = _l[0],
11462
- setSignatureDataUrl = _l[1];
11493
+ signatureData = _l[0],
11494
+ setSignatureData = _l[1];
11463
11495
  var _m = React.useState(null),
11464
- signatureVideoData = _m[0],
11465
- setSignatureVideoData = _m[1];
11496
+ signatureDataUrl = _m[0],
11497
+ setSignatureDataUrl = _m[1];
11498
+ var _o = React.useState(null),
11499
+ signatureVideoData = _o[0],
11500
+ setSignatureVideoData = _o[1];
11501
+ colors.guidanceMessageBackgroundColor || (colors.guidanceMessageBackgroundColor = '#ccc');
11502
+ colors.guidanceMessageTextColor || (colors.guidanceMessageTextColor = 'black');
11503
+ verbiage.guidanceMessageText || (verbiage.guidanceMessageText = t('Please sign the box below'));
11466
11504
  verbiage.acceptBtnText || (verbiage.acceptBtnText = t('Accept'));
11467
11505
  verbiage.clearBtnText || (verbiage.clearBtnText = t('Clear'));
11468
11506
  var outputCanvas = React.useRef(null);
@@ -11534,9 +11572,9 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
11534
11572
  cancelAnimationFrame(animationFrame.current);
11535
11573
  };
11536
11574
  }, [cameraRef, isRecording, onFaceNotDetected, videoRef]);
11537
- var _o = React.useState(0),
11538
- numFramesWithoutFaces = _o[0],
11539
- setNumFramesWithoutFaces = _o[1];
11575
+ var _p = React.useState(0),
11576
+ numFramesWithoutFaces = _p[0],
11577
+ setNumFramesWithoutFaces = _p[1];
11540
11578
  React.useEffect(function () {
11541
11579
  onPredictionMade(function (faces) {
11542
11580
  setNumFramesWithoutFaces(function (n) {
@@ -11566,12 +11604,14 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
11566
11604
  value: JSON.stringify(signatureData, null, 2)
11567
11605
  }));
11568
11606
  }
11569
- var guidanceMessage = t('Please sign the box below');
11570
11607
  return /*#__PURE__*/React__default['default'].createElement(PageContainer, {
11571
11608
  className: "flex"
11572
- }, /*#__PURE__*/React__default['default'].createElement(CameraVideoTag, null), guidanceMessage !== '' && /*#__PURE__*/React__default['default'].createElement(GuidanceMessageContainer, {
11609
+ }, /*#__PURE__*/React__default['default'].createElement(CameraVideoTag, null), verbiage.guidanceMessageText && /*#__PURE__*/React__default['default'].createElement(GuidanceMessageContainer, {
11573
11610
  "$top": "5vh"
11574
- }, /*#__PURE__*/React__default['default'].createElement(GuidanceMessage, null, guidanceMessage)), /*#__PURE__*/React__default['default'].createElement(SignatureCanvasContainer, null, /*#__PURE__*/React__default['default'].createElement(SignaturePad, {
11611
+ }, /*#__PURE__*/React__default['default'].createElement(GuidanceMessage, {
11612
+ "$background": colors.guidanceMessageBackgroundColor,
11613
+ "$textColor": colors.guidanceMessageTextColor
11614
+ }, verbiage.guidanceMessageText)), /*#__PURE__*/React__default['default'].createElement(SignatureCanvasContainer, null, /*#__PURE__*/React__default['default'].createElement(SignaturePad, {
11575
11615
  ref: ref
11576
11616
  }, /*#__PURE__*/React__default['default'].createElement(SignatureCanvas__default['default'], {
11577
11617
  ref: signaturePad,
@@ -11673,19 +11713,23 @@ var templateObject_1;
11673
11713
  var SignatureKYCWizard = function SignatureKYCWizard(_a) {
11674
11714
  var onComplete = _a.onComplete,
11675
11715
  onRetryClicked = _a.onRetryClicked,
11676
- _b = _a.debugMode,
11677
- debugMode = _b === void 0 ? false : _b;
11678
- var _c = React.useContext(SubmissionContext),
11679
- submit = _c.submit,
11680
- selfieImage = _c.selfieImage,
11681
- signatureVideo = _c.signatureVideo,
11682
- setSelfieImage = _c.setSelfieImage,
11683
- setSignatureData = _c.setSignatureData,
11684
- setSignatureVideo = _c.setSignatureVideo,
11685
- logSelfieCaptureAttempt = _c.logSelfieCaptureAttempt;
11686
- var _d = React.useState('LOADING'),
11687
- captureState = _d[0],
11688
- setCaptureState = _d[1];
11716
+ _b = _a.colors,
11717
+ colors = _b === void 0 ? {} : _b,
11718
+ _c = _a.verbiage,
11719
+ verbiage = _c === void 0 ? {} : _c,
11720
+ _d = _a.debugMode,
11721
+ debugMode = _d === void 0 ? false : _d;
11722
+ var _e = React.useContext(SubmissionContext),
11723
+ submit = _e.submit,
11724
+ selfieImage = _e.selfieImage,
11725
+ signatureVideo = _e.signatureVideo,
11726
+ setSelfieImage = _e.setSelfieImage,
11727
+ setSignatureData = _e.setSignatureData,
11728
+ setSignatureVideo = _e.setSignatureVideo,
11729
+ logSelfieCaptureAttempt = _e.logSelfieCaptureAttempt;
11730
+ var _f = React.useState('LOADING'),
11731
+ captureState = _f[0],
11732
+ setCaptureState = _f[1];
11689
11733
  var operationStartedAt = React.useRef();
11690
11734
  var captureStartedAt = React.useRef();
11691
11735
  var captureEndedAt = React.useRef();
@@ -11734,13 +11778,13 @@ var SignatureKYCWizard = function SignatureKYCWizard(_a) {
11734
11778
  setSignatureVideo(URL.createObjectURL(videoData));
11735
11779
  setCaptureState('SUCCESS');
11736
11780
  onComplete === null || onComplete === void 0 ? void 0 : onComplete();
11737
- }, [onComplete, setSignatureData]);
11781
+ }, [onComplete, setSignatureData, setSignatureVideo]);
11738
11782
  var onSignatureCaptureFacesNotDetected = React.useCallback(function () {
11739
11783
  setCaptureState('CHECKING_LIVENESS');
11740
11784
  }, []);
11741
- var _e = React.useState(0),
11742
- attempt = _e[0],
11743
- setAttempt = _e[1];
11785
+ var _g = React.useState(0),
11786
+ attempt = _g[0],
11787
+ setAttempt = _g[1];
11744
11788
  var onExit = React.useCallback(function () {
11745
11789
  setAttempt(function (n) {
11746
11790
  return n + 1;
@@ -11750,11 +11794,14 @@ var SignatureKYCWizard = function SignatureKYCWizard(_a) {
11750
11794
  return /*#__PURE__*/React__default['default'].createElement(HighPerformanceSelfieGuidanceModelsProvider, {
11751
11795
  throttleMs: captureState === 'CAPTURING_SIGNATURE' ? 250 : 0
11752
11796
  }, captureState !== 'LOADING' && function () {
11797
+ var _a, _b, _c;
11753
11798
  switch (captureState) {
11754
11799
  case 'CHECKING_LIVENESS':
11755
11800
  return /*#__PURE__*/React__default['default'].createElement(FaceLivenessCapture, {
11756
11801
  onSuccess: onFaceCaptureSuccess,
11757
11802
  onExit: onExit,
11803
+ colors: colors.faceLiveness,
11804
+ verbiage: verbiage.faceLiveness,
11758
11805
  debugMode: debugMode
11759
11806
  });
11760
11807
  case 'CAPTURING_SIGNATURE':
@@ -11762,13 +11809,18 @@ var SignatureKYCWizard = function SignatureKYCWizard(_a) {
11762
11809
  onComplete: onSignatureCaptureCompleted,
11763
11810
  onFaceNotDetected: onSignatureCaptureFacesNotDetected,
11764
11811
  onExit: onExit,
11812
+ colors: colors.videoSignatureCapture,
11813
+ verbiage: verbiage.videoSignatureCapture,
11765
11814
  debugMode: debugMode
11766
11815
  });
11767
11816
  case 'SUCCESS':
11768
11817
  return /*#__PURE__*/React__default['default'].createElement(SignatureKYCSuccess, {
11769
11818
  videoUrl: signatureVideo !== null && signatureVideo !== void 0 ? signatureVideo : '',
11770
11819
  onDoneClick: submit,
11771
- onRetryClick: onRetryClicked
11820
+ onRetryClick: onRetryClicked,
11821
+ headingText: (_a = verbiage.success) === null || _a === void 0 ? void 0 : _a.headingText,
11822
+ retryBtnText: (_b = verbiage.success) === null || _b === void 0 ? void 0 : _b.retryBtnText,
11823
+ doneBtnText: (_c = verbiage.success) === null || _c === void 0 ? void 0 : _c.doneBtnText
11772
11824
  });
11773
11825
  default:
11774
11826
  return null;
@@ -13477,6 +13529,8 @@ var SignatureKYC = function SignatureKYC(_a) {
13477
13529
  submissionUrl = _a.submissionUrl,
13478
13530
  onBeforeSubmit = _a.onBeforeSubmit,
13479
13531
  onComplete = _a.onComplete,
13532
+ colors = _a.colors,
13533
+ verbiage = _a.verbiage,
13480
13534
  geolocationEnabled = _a.geolocationEnabled,
13481
13535
  geolocationRequired = _a.geolocationRequired,
13482
13536
  debugMode = _a.debugMode;
@@ -13498,7 +13552,9 @@ var SignatureKYC = function SignatureKYC(_a) {
13498
13552
  preferFrontFacingCamera: true,
13499
13553
  requestMicrophoneAccess: true
13500
13554
  }, /*#__PURE__*/React__default['default'].createElement(SignatureKYCWizard, {
13555
+ colors: colors,
13501
13556
  debugMode: debugMode,
13557
+ verbiage: verbiage,
13502
13558
  onRetryClicked: function onRetryClicked() {
13503
13559
  setAttempt(function (n) {
13504
13560
  return n + 1;