idmission-web-sdk 1.0.19 → 1.0.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.
@@ -50,7 +50,7 @@ var tf__namespace = /*#__PURE__*/_interopNamespace(tf);
50
50
  var useResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(useResizeObserver);
51
51
  var SignatureCanvas__default = /*#__PURE__*/_interopDefaultLegacy(SignatureCanvas);
52
52
 
53
- var webSdkVersion = '1.0.19';
53
+ var webSdkVersion = '1.0.21';
54
54
 
55
55
  function getPlatform() {
56
56
  return window.platform;
@@ -226,7 +226,7 @@ function contentDispositionFromDataUrl(url) {
226
226
  return (_b = (_a = url.match(/^(data:.*;base64),/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';
227
227
  }
228
228
 
229
- var PageContainerDiv = styled__default['default'].div(templateObject_1$b || (templateObject_1$b = tslib.__makeTemplateObject(["\n position: fixed;\n top: 0;\n left: 0;\n width: var(--app-width);\n height: calc(\n var(--app-height) - ", "px\n );\n overflow-x: hidden;\n overflow-y: auto;\n font-family:\n Inter,\n -apple-system,\n BlinkMacSystemFont,\n Segoe UI,\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n Fira Sans,\n Droid Sans,\n Helvetica Neue,\n sans-serif;\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"], ["\n position: fixed;\n top: 0;\n left: 0;\n width: var(--app-width);\n height: calc(\n var(--app-height) - ", "px\n );\n overflow-x: hidden;\n overflow-y: auto;\n font-family:\n Inter,\n -apple-system,\n BlinkMacSystemFont,\n Segoe UI,\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n Fira Sans,\n Droid Sans,\n Helvetica Neue,\n sans-serif;\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"])), function (_a) {
229
+ var PageContainerDiv = styled__default['default'].div(templateObject_1$c || (templateObject_1$c = tslib.__makeTemplateObject(["\n position: fixed;\n top: 0;\n left: 0;\n width: var(--app-width);\n height: calc(\n var(--app-height) - ", "px\n );\n overflow-x: hidden;\n overflow-y: auto;\n font-family:\n Inter,\n -apple-system,\n BlinkMacSystemFont,\n Segoe UI,\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n Fira Sans,\n Droid Sans,\n Helvetica Neue,\n sans-serif;\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"], ["\n position: fixed;\n top: 0;\n left: 0;\n width: var(--app-width);\n height: calc(\n var(--app-height) - ", "px\n );\n overflow-x: hidden;\n overflow-y: auto;\n font-family:\n Inter,\n -apple-system,\n BlinkMacSystemFont,\n Segoe UI,\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n Fira Sans,\n Droid Sans,\n Helvetica Neue,\n sans-serif;\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"])), function (_a) {
230
230
  var $heightOffset = _a.$heightOffset;
231
231
  return $heightOffset !== null && $heightOffset !== void 0 ? $heightOffset : 0;
232
232
  });
@@ -263,13 +263,13 @@ var PageContainer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
263
263
  }, dimensionsCalculated && children);
264
264
  });
265
265
  PageContainer.displayName = 'PageContainer';
266
- var templateObject_1$b;
266
+ var templateObject_1$c;
267
267
 
268
- var OverlayContainer = styled__default['default'](PageContainer)(templateObject_1$a || (templateObject_1$a = tslib.__makeTemplateObject(["\n background: white;\n z-index: 10000;\n"], ["\n background: white;\n z-index: 10000;\n"])));
268
+ var OverlayContainer = styled__default['default'](PageContainer)(templateObject_1$b || (templateObject_1$b = tslib.__makeTemplateObject(["\n background: white;\n z-index: 10000;\n"], ["\n background: white;\n z-index: 10000;\n"])));
269
269
  var OverlayInner = styled__default['default'].div(templateObject_2$4 || (templateObject_2$4 = tslib.__makeTemplateObject(["\n text-align: center;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n padding: 25px;\n max-height: var(--app-height);\n height: 100%;\n box-sizing: border-box;\n"], ["\n text-align: center;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n padding: 25px;\n max-height: var(--app-height);\n height: 100%;\n box-sizing: border-box;\n"])));
270
270
  var OverlayImageWrapper = styled__default['default'].div(templateObject_3$3 || (templateObject_3$3 = tslib.__makeTemplateObject(["\n position: relative;\n display: flex;\n flex-grow: 1;\n padding-bottom: 25px;\n max-width: var(--app-width);\n max-height: var(--app-height);\n overflow: hidden;\n\n & > img {\n margin: 0 auto;\n width: max-content;\n max-width: 100%;\n max-height: 100%;\n aspect-ratio: initial;\n object-fit: contain;\n display: block;\n }\n"], ["\n position: relative;\n display: flex;\n flex-grow: 1;\n padding-bottom: 25px;\n max-width: var(--app-width);\n max-height: var(--app-height);\n overflow: hidden;\n\n & > img {\n margin: 0 auto;\n width: max-content;\n max-width: 100%;\n max-height: 100%;\n aspect-ratio: initial;\n object-fit: contain;\n display: block;\n }\n"])));
271
271
  var OverlayImageMultiContainer = styled__default['default'].div(templateObject_4$2 || (templateObject_4$2 = tslib.__makeTemplateObject(["\n display: flex;\n margin: auto;\n\n & > div {\n max-height: calc(100vh - 320px);\n\n & > img {\n width: 100%;\n max-height: 100%;\n height: auto;\n object-fit: contain;\n }\n }\n"], ["\n display: flex;\n margin: auto;\n\n & > div {\n max-height: calc(100vh - 320px);\n\n & > img {\n width: 100%;\n max-height: 100%;\n height: auto;\n object-fit: contain;\n }\n }\n"])));
272
- var templateObject_1$a, templateObject_2$4, templateObject_3$3, templateObject_4$2;
272
+ var templateObject_1$b, templateObject_2$4, templateObject_3$3, templateObject_4$2;
273
273
 
274
274
  var LoaderButton = function LoaderButton(_a) {
275
275
  var children = _a.children,
@@ -320,7 +320,7 @@ var LoaderButton = function LoaderButton(_a) {
320
320
  className: "ladda-label"
321
321
  }, children));
322
322
  };
323
- var StyledButton = styled__default['default'].button(templateObject_1$9 || (templateObject_1$9 = tslib.__makeTemplateObject(["\n border-radius: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n text-transform: none;\n -webkit-appearance: button;\n\n &:not(:disabled),\n &[type='button']:not(:disabled),\n &[type='reset']:not(:disabled),\n &[type='submit']:not(:disabled) {\n cursor: pointer;\n }\n\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15),\n 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem\n rgba(var(--bs-btn-focus-shadow-rgb), 0.5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition:\n color 0.15s ease-in-out,\n background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:hover {\n filter: brightness(1.15);\n }\n\n &:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n }\n\n --bs-btn-color: ", ";\n --bs-btn-bg: ", ";\n --bs-btn-border-color: ", ";\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: ", ";\n --bs-btn-disabled-bg: ", ";\n --bs-btn-disabled-border-color: ", ";\n\n --bs-btn-padding-y: 14px;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 18px;\n --bs-btn-border-radius: 4px;\n"], ["\n border-radius: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n text-transform: none;\n -webkit-appearance: button;\n\n &:not(:disabled),\n &[type='button']:not(:disabled),\n &[type='reset']:not(:disabled),\n &[type='submit']:not(:disabled) {\n cursor: pointer;\n }\n\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15),\n 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem\n rgba(var(--bs-btn-focus-shadow-rgb), 0.5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition:\n color 0.15s ease-in-out,\n background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:hover {\n filter: brightness(1.15);\n }\n\n &:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n }\n\n --bs-btn-color: ", ";\n --bs-btn-bg: ", ";\n --bs-btn-border-color: ", ";\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: ", ";\n --bs-btn-disabled-bg: ", ";\n --bs-btn-disabled-border-color: ", ";\n\n --bs-btn-padding-y: 14px;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 18px;\n --bs-btn-border-radius: 4px;\n"])), function (_a) {
323
+ var StyledButton = styled__default['default'].button(templateObject_1$a || (templateObject_1$a = tslib.__makeTemplateObject(["\n border-radius: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n text-transform: none;\n -webkit-appearance: button;\n\n &:not(:disabled),\n &[type='button']:not(:disabled),\n &[type='reset']:not(:disabled),\n &[type='submit']:not(:disabled) {\n cursor: pointer;\n }\n\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15),\n 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem\n rgba(var(--bs-btn-focus-shadow-rgb), 0.5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition:\n color 0.15s ease-in-out,\n background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:hover {\n filter: brightness(1.15);\n }\n\n &:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n }\n\n --bs-btn-color: ", ";\n --bs-btn-bg: ", ";\n --bs-btn-border-color: ", ";\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: ", ";\n --bs-btn-disabled-bg: ", ";\n --bs-btn-disabled-border-color: ", ";\n\n --bs-btn-padding-y: 14px;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 18px;\n --bs-btn-border-radius: 4px;\n"], ["\n border-radius: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n text-transform: none;\n -webkit-appearance: button;\n\n &:not(:disabled),\n &[type='button']:not(:disabled),\n &[type='reset']:not(:disabled),\n &[type='submit']:not(:disabled) {\n cursor: pointer;\n }\n\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15),\n 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem\n rgba(var(--bs-btn-focus-shadow-rgb), 0.5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition:\n color 0.15s ease-in-out,\n background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:hover {\n filter: brightness(1.15);\n }\n\n &:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n }\n\n --bs-btn-color: ", ";\n --bs-btn-bg: ", ";\n --bs-btn-border-color: ", ";\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: ", ";\n --bs-btn-disabled-bg: ", ";\n --bs-btn-disabled-border-color: ", ";\n\n --bs-btn-padding-y: 14px;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 18px;\n --bs-btn-border-radius: 4px;\n"])), function (_a) {
324
324
  var $textColor = _a.$textColor;
325
325
  return $textColor !== null && $textColor !== void 0 ? $textColor : '#fff';
326
326
  }, function (_a) {
@@ -339,7 +339,7 @@ var StyledButton = styled__default['default'].button(templateObject_1$9 || (temp
339
339
  var $disabledBackgroundColor = _a.$disabledBackgroundColor;
340
340
  return $disabledBackgroundColor !== null && $disabledBackgroundColor !== void 0 ? $disabledBackgroundColor : '#0d6efd';
341
341
  });
342
- var templateObject_1$9;
342
+ var templateObject_1$a;
343
343
 
344
344
  var GeolocationAccessDeniedOverlay = function GeolocationAccessDeniedOverlay(_a) {
345
345
  var accessBlockedImageUrl = _a.accessBlockedImageUrl;
@@ -8300,7 +8300,7 @@ function getFrameDimensions(frame) {
8300
8300
  return [frameWidth, frameHeight];
8301
8301
  }
8302
8302
 
8303
- var InvisibleCanvas = styled__default['default'].canvas(templateObject_1$8 || (templateObject_1$8 = tslib.__makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
8303
+ var InvisibleCanvas = styled__default['default'].canvas(templateObject_1$9 || (templateObject_1$9 = tslib.__makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
8304
8304
  function drawToCanvas(canvas, frame, width, height) {
8305
8305
  if (!canvas) return;
8306
8306
  var ctx = canvas.getContext('2d');
@@ -8322,7 +8322,7 @@ function clearCanvas(canvas) {
8322
8322
  if (!ctx) return;
8323
8323
  ctx.clearRect(0, 0, canvas.width, canvas.height);
8324
8324
  }
8325
- var templateObject_1$8;
8325
+ var templateObject_1$9;
8326
8326
 
8327
8327
  function cropToShoulders(rawCanvas, cropCanvas, frame, face) {
8328
8328
  if (!rawCanvas || !cropCanvas) return '';
@@ -8846,7 +8846,7 @@ function disposeTfBackend() {
8846
8846
  }
8847
8847
  }
8848
8848
 
8849
- var DebugStatsPane = styled__default['default'].span(templateObject_1$7 || (templateObject_1$7 = tslib.__makeTemplateObject(["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1001;\n"], ["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1001;\n"])));
8849
+ var DebugStatsPane = styled__default['default'].span(templateObject_1$8 || (templateObject_1$8 = tslib.__makeTemplateObject(["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1001;\n"], ["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1001;\n"])));
8850
8850
  var ObjectDetectionDebugOverlay = styled__default['default'].div(templateObject_2$3 || (templateObject_2$3 = tslib.__makeTemplateObject(["\n position: absolute;\n z-index: 1001;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n"], ["\n position: absolute;\n z-index: 1001;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n"])), function (_a) {
8851
8851
  var $flipX = _a.$flipX;
8852
8852
  return $flipX ? 'transform: scaleX(-1);' : '';
@@ -9017,12 +9017,12 @@ function SelfieCaptureFaceKeypoint(_a) {
9017
9017
  }
9018
9018
  });
9019
9019
  }
9020
- var templateObject_1$7, templateObject_2$3, templateObject_3$2, templateObject_4$1;
9020
+ var templateObject_1$8, templateObject_2$3, templateObject_3$2, templateObject_4$1;
9021
9021
 
9022
- var ExitCaptureButton = styled__default['default'].button(templateObject_1$6 || (templateObject_1$6 = tslib.__makeTemplateObject(["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n\n &:hover {\n background: #ddd;\n }\n"], ["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n\n &:hover {\n background: #ddd;\n }\n"])));
9023
- var templateObject_1$6;
9022
+ var ExitCaptureButton = styled__default['default'].button(templateObject_1$7 || (templateObject_1$7 = tslib.__makeTemplateObject(["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n\n &:hover {\n background: #ddd;\n }\n"], ["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n\n &:hover {\n background: #ddd;\n }\n"])));
9023
+ var templateObject_1$7;
9024
9024
 
9025
- var Spinner = styled__default['default'].div(templateObject_1$5 || (templateObject_1$5 = tslib.__makeTemplateObject(["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: lds-dual-ring 1.2s linear infinite;\n box-sizing: content-box;\n }\n\n @keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"], ["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: lds-dual-ring 1.2s linear infinite;\n box-sizing: content-box;\n }\n\n @keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"])), function (_a) {
9025
+ var Spinner = styled__default['default'].div(templateObject_1$6 || (templateObject_1$6 = tslib.__makeTemplateObject(["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: lds-dual-ring 1.2s linear infinite;\n box-sizing: content-box;\n }\n\n @keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"], ["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: lds-dual-ring 1.2s linear infinite;\n box-sizing: content-box;\n }\n\n @keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"])), function (_a) {
9026
9026
  var $size = _a.$size;
9027
9027
  return $size !== null && $size !== void 0 ? $size : 80;
9028
9028
  }, function (_a) {
@@ -9047,7 +9047,7 @@ var Spinner = styled__default['default'].div(templateObject_1$5 || (templateObje
9047
9047
  var $color = _a.$color;
9048
9048
  return $color !== null && $color !== void 0 ? $color : '#888';
9049
9049
  });
9050
- var templateObject_1$5;
9050
+ var templateObject_1$6;
9051
9051
 
9052
9052
  var IdCaptureImagePreview = function IdCaptureImagePreview(_a) {
9053
9053
  var text = _a.text,
@@ -9074,10 +9074,10 @@ var SelfieProgressPreview = function SelfieProgressPreview(_a) {
9074
9074
  alt: ""
9075
9075
  })));
9076
9076
  };
9077
- var ImagePreviewWrapper = styled__default['default'].div(templateObject_1$4 || (templateObject_1$4 = tslib.__makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"], ["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"])));
9077
+ var ImagePreviewWrapper = styled__default['default'].div(templateObject_1$5 || (templateObject_1$5 = tslib.__makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"], ["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"])));
9078
9078
  var ImagePreviewText = styled__default['default'].div(templateObject_2$2 || (templateObject_2$2 = tslib.__makeTemplateObject(["\n display: block;\n position: absolute;\n top: -32px;\n font:\n 14px -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n color: white;\n text-align: center;\n margin: 0 auto;\n width: 100%;\n"], ["\n display: block;\n position: absolute;\n top: -32px;\n font:\n 14px -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n color: white;\n text-align: center;\n margin: 0 auto;\n width: 100%;\n"])));
9079
9079
  var ImagePreviewImageWrapper = styled__default['default'].div(templateObject_3$1 || (templateObject_3$1 = tslib.__makeTemplateObject(["\n position: relative;\n height: calc(100% - 8px);\n padding: 4px;\n border-radius: 4px;\n background: white;\n\n & > img {\n border-radius: 4px;\n width: auto;\n max-height: 100%;\n }\n"], ["\n position: relative;\n height: calc(100% - 8px);\n padding: 4px;\n border-radius: 4px;\n background: white;\n\n & > img {\n border-radius: 4px;\n width: auto;\n max-height: 100%;\n }\n"])));
9080
- var templateObject_1$4, templateObject_2$2, templateObject_3$1;
9080
+ var templateObject_1$5, templateObject_2$2, templateObject_3$1;
9081
9081
 
9082
9082
  var enTranslation = {};
9083
9083
 
@@ -9188,7 +9188,7 @@ function useTranslations(verbiage, fallbacks) {
9188
9188
  }, [fallbacks, i18n.language, t, verbiage]);
9189
9189
  }
9190
9190
 
9191
- var GuidanceMessageContainer = styled__default['default'].div(templateObject_1$3 || (templateObject_1$3 = tslib.__makeTemplateObject(["\n position: absolute;\n top: calc(", ");\n font-weight: bold;\n width: 100%;\n display: flex;\n"], ["\n position: absolute;\n top: calc(", ");\n font-weight: bold;\n width: 100%;\n display: flex;\n"])), function (_a) {
9191
+ var GuidanceMessageContainer = styled__default['default'].div(templateObject_1$4 || (templateObject_1$4 = tslib.__makeTemplateObject(["\n position: absolute;\n top: calc(", ");\n font-weight: bold;\n width: 100%;\n display: flex;\n"], ["\n position: absolute;\n top: calc(", ");\n font-weight: bold;\n width: 100%;\n display: flex;\n"])), function (_a) {
9192
9192
  var $top = _a.$top;
9193
9193
  return $top !== null && $top !== void 0 ? $top : '10vh';
9194
9194
  });
@@ -9199,7 +9199,7 @@ var GuidanceMessage = styled__default['default'].div(templateObject_2$1 || (temp
9199
9199
  var $textColor = _a.$textColor;
9200
9200
  return $textColor !== null && $textColor !== void 0 ? $textColor : 'black';
9201
9201
  });
9202
- var templateObject_1$3, templateObject_2$1;
9202
+ var templateObject_1$4, templateObject_2$1;
9203
9203
 
9204
9204
  var initialState$5 = {
9205
9205
  videoWidth: 0,
@@ -10120,10 +10120,10 @@ var CameraVideoTag = function CameraVideoTag() {
10120
10120
  "$isRearFacing": (_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.isRearFacing
10121
10121
  });
10122
10122
  };
10123
- var FullscreenVideoTag = styled__default['default'].video(templateObject_1$2 || (templateObject_1$2 = tslib.__makeTemplateObject(["\n transform: ", ";\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n object-fit: cover;\n"], ["\n transform: ", ";\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n object-fit: cover;\n"])), function (props) {
10123
+ var FullscreenVideoTag = styled__default['default'].video(templateObject_1$3 || (templateObject_1$3 = tslib.__makeTemplateObject(["\n transform: ", ";\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n object-fit: cover;\n"], ["\n transform: ", ";\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n object-fit: cover;\n"])), function (props) {
10124
10124
  return props.$isRearFacing ? '' : 'scaleX(-1)';
10125
10125
  });
10126
- var templateObject_1$2;
10126
+ var templateObject_1$3;
10127
10127
 
10128
10128
  function useShowSuccessScreen(skipSuccessScreen, successScreenReady, onDoneCallback) {
10129
10129
  var _this = this;
@@ -12011,11 +12011,11 @@ function signatureDataToIdmissionFormat(signatureCanvas) {
12011
12011
  return signatureData;
12012
12012
  }
12013
12013
 
12014
- var SignatureCanvasContainer = styled__default['default'].div(templateObject_1$1 || (templateObject_1$1 = tslib.__makeTemplateObject(["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"], ["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"])));
12014
+ var SignatureCanvasContainer = styled__default['default'].div(templateObject_1$2 || (templateObject_1$2 = tslib.__makeTemplateObject(["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"], ["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"])));
12015
12015
  var SignaturePad = styled__default['default'].div(templateObject_2 || (templateObject_2 = tslib.__makeTemplateObject(["\n position: relative;\n background: rgba(255, 255, 255, 0.5);\n border-radius: 16px;\n flex-grow: 1;\n z-index: 100;\n height: 100%;\n"], ["\n position: relative;\n background: rgba(255, 255, 255, 0.5);\n border-radius: 16px;\n flex-grow: 1;\n z-index: 100;\n height: 100%;\n"])));
12016
12016
  var SignatureButtonsContainer = styled__default['default'].div(templateObject_3 || (templateObject_3 = tslib.__makeTemplateObject(["\n flex-grow: 0;\n padding-top: 12px;\n display: flex;\n z-index: 1000;\n position: relative;\n"], ["\n flex-grow: 0;\n padding-top: 12px;\n display: flex;\n z-index: 1000;\n position: relative;\n"])));
12017
12017
  var SignaturePaperBacking = styled__default['default'].div(templateObject_4 || (templateObject_4 = tslib.__makeTemplateObject(["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background-color: #e5e5f7;\n opacity: 0.8;\n background-image: radial-gradient(#444cf7 0.5px, transparent 0.5px),\n radial-gradient(#444cf7 0.5px, #e5e5f7 0.5px);\n background-size: 20px 20px;\n background-position: 0 0, 10px 10px;\n"], ["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background-color: #e5e5f7;\n opacity: 0.8;\n background-image: radial-gradient(#444cf7 0.5px, transparent 0.5px),\n radial-gradient(#444cf7 0.5px, #e5e5f7 0.5px);\n background-size: 20px 20px;\n background-position: 0 0, 10px 10px;\n"])));
12018
- var templateObject_1$1, templateObject_2, templateObject_3, templateObject_4;
12018
+ var templateObject_1$2, templateObject_2, templateObject_3, templateObject_4;
12019
12019
 
12020
12020
  var SignatureCapture = function SignatureCapture(_a) {
12021
12021
  var onAccept = _a.onAccept,
@@ -12324,7 +12324,7 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
12324
12324
  retryBtnText: 'Retry',
12325
12325
  doneBtnText: 'Done'
12326
12326
  });
12327
- return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, null, /*#__PURE__*/React__default['default'].createElement("h1", null, verbiage.headingText), /*#__PURE__*/React__default['default'].createElement(OverlayImageWrapper, null, /*#__PURE__*/React__default['default'].createElement(StyledVideo, {
12327
+ return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, null, /*#__PURE__*/React__default['default'].createElement("h1", null, verbiage.headingText), /*#__PURE__*/React__default['default'].createElement(OverlayImageWrapper, null, /*#__PURE__*/React__default['default'].createElement(StyledVideo$1, {
12328
12328
  src: videoUrl,
12329
12329
  poster: videoUrl + '#t=0.1',
12330
12330
  controls: true,
@@ -12343,8 +12343,8 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
12343
12343
  finished: true
12344
12344
  }, verbiage.doneBtnText))));
12345
12345
  };
12346
- var StyledVideo = styled__default['default'].video(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"], ["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"])));
12347
- var templateObject_1;
12346
+ var StyledVideo$1 = styled__default['default'].video(templateObject_1$1 || (templateObject_1$1 = tslib.__makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"], ["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"])));
12347
+ var templateObject_1$1;
12348
12348
 
12349
12349
  var VideoSignatureWizard = function VideoSignatureWizard(_a) {
12350
12350
  var onComplete = _a.onComplete,
@@ -14090,13 +14090,179 @@ var SignatureKYC = function SignatureKYC(_a) {
14090
14090
  })));
14091
14091
  };
14092
14092
 
14093
+ var IdVideoCaptureFlipIdPrompt = function IdVideoCaptureFlipIdPrompt(_a) {
14094
+ var _b;
14095
+ var _c = _a.style,
14096
+ style = _c === void 0 ? {} : _c,
14097
+ _d = _a.assets,
14098
+ assets = _d === void 0 ? {} : _d,
14099
+ _e = _a.verbiage,
14100
+ verbiage = _e === void 0 ? {} : _e;
14101
+ var _f = useResizeObserver__default['default'](),
14102
+ ref = _f.ref,
14103
+ _g = _f.width,
14104
+ width = _g === void 0 ? 1 : _g,
14105
+ _h = _f.height,
14106
+ height = _h === void 0 ? 1 : _h;
14107
+ var cameraRef = React.useContext(CameraStateContext).cameraRef;
14108
+ assets.frontImageUrl || (assets.frontImageUrl = "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Front-SVG-Landscape-2.svg"));
14109
+ assets.backImageUrl || (assets.backImageUrl = "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Back-SVG-Landscape-2.svg"));
14110
+ var instructionText = useVerbiage(verbiage.instructionText, 'Please flip your ID card...');
14111
+ var padding = 0;
14112
+ var borderWidth = 4;
14113
+ var borderColor = 'white';
14114
+ var isMirrored = !((_b = cameraRef.current) === null || _b === void 0 ? void 0 : _b.isRearFacing);
14115
+ var imageStyle = {
14116
+ height: height - padding * 2 - borderWidth * 2
14117
+ };
14118
+ imageStyle = {
14119
+ width: width - padding * 2 - borderWidth * 2
14120
+ };
14121
+ var _j = React.useState(1),
14122
+ transitionTime = _j[0],
14123
+ setTransitionTime = _j[1];
14124
+ var _k = React.useState(0),
14125
+ rotationAngle = _k[0],
14126
+ setRotationAngle = _k[1];
14127
+ var frontTransforms = ["rotateY(".concat(rotationAngle, "deg)")];
14128
+ if (isMirrored) frontTransforms.push('scaleX(-1)');
14129
+ var backTransforms = ["rotateY(".concat(180 - rotationAngle, "deg)")];
14130
+ if (isMirrored) backTransforms.push('scaleX(-1)');
14131
+ React.useEffect(function () {
14132
+ var doFlip = function doFlip() {
14133
+ setTransitionTime(1);
14134
+ setRotationAngle(180);
14135
+ setTimeout(function () {
14136
+ setTransitionTime(0);
14137
+ setRotationAngle(0);
14138
+ }, 1500);
14139
+ };
14140
+ setTimeout(doFlip, 250);
14141
+ var interval = setInterval(doFlip, 2500);
14142
+ return function () {
14143
+ clearInterval(interval);
14144
+ };
14145
+ }, []);
14146
+ return /*#__PURE__*/React__default['default'].createElement("div", {
14147
+ ref: ref,
14148
+ style: tslib.__assign(tslib.__assign({}, style), {
14149
+ position: 'relative'
14150
+ })
14151
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
14152
+ style: {
14153
+ display: 'flex',
14154
+ flexFlow: 'column nowrap',
14155
+ height: '100%'
14156
+ }
14157
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
14158
+ style: {
14159
+ width: '100%',
14160
+ height: '100%',
14161
+ flexGrow: 1,
14162
+ textAlign: 'center',
14163
+ color: 'white',
14164
+ display: 'flex',
14165
+ flexDirection: 'column',
14166
+ justifyContent: 'end'
14167
+ }
14168
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
14169
+ style: {
14170
+ alignContent: 'center',
14171
+ marginTop: 12,
14172
+ marginBottom: 12
14173
+ }
14174
+ }, instructionText)), /*#__PURE__*/React__default['default'].createElement("div", {
14175
+ style: {
14176
+ position: 'relative',
14177
+ display: 'flex',
14178
+ flexFlow: 'row nowrap',
14179
+ alignItems: 'center',
14180
+ justifyItems: 'center',
14181
+ maxWidth: "calc(100%)",
14182
+ maxHeight: "calc(100% - ".concat(padding * 2, "px - ").concat(borderWidth * 2, "px)")
14183
+ }
14184
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
14185
+ style: {
14186
+ width: '100%',
14187
+ height: '100%',
14188
+ minWidth: padding,
14189
+ flexGrow: 1
14190
+ }
14191
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
14192
+ style: {
14193
+ maxWidth: "calc(100% - ".concat(padding * 2, "px - ").concat(borderWidth * 2, "px)"),
14194
+ maxHeight: height - padding * 2 - borderWidth * 2
14195
+ }
14196
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
14197
+ style: {
14198
+ position: 'relative',
14199
+ border: "".concat(borderWidth, "px solid ").concat(borderColor)
14200
+ }
14201
+ }, /*#__PURE__*/React__default['default'].createElement("img", {
14202
+ src: assets.frontImageUrl,
14203
+ alt: "",
14204
+ style: tslib.__assign({
14205
+ backfaceVisibility: 'hidden',
14206
+ transition: "transform ".concat(transitionTime, "s"),
14207
+ transform: frontTransforms.join(' '),
14208
+ transformStyle: 'preserve-3d',
14209
+ position: 'relative',
14210
+ top: 0,
14211
+ left: 0,
14212
+ display: 'block'
14213
+ }, imageStyle)
14214
+ }), /*#__PURE__*/React__default['default'].createElement("img", {
14215
+ src: assets.backImageUrl,
14216
+ alt: "",
14217
+ style: tslib.__assign({
14218
+ backfaceVisibility: 'hidden',
14219
+ transition: "transform ".concat(transitionTime, "s"),
14220
+ transform: backTransforms.join(' '),
14221
+ transformStyle: 'preserve-3d',
14222
+ position: 'absolute',
14223
+ top: 0,
14224
+ left: 0,
14225
+ display: 'block'
14226
+ }, imageStyle)
14227
+ }))), /*#__PURE__*/React__default['default'].createElement("div", {
14228
+ style: {
14229
+ width: '100%',
14230
+ height: '100%',
14231
+ minWidth: padding,
14232
+ flexGrow: 1
14233
+ }
14234
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
14235
+ style: {
14236
+ width: '100%',
14237
+ height: '100%',
14238
+ flexGrow: 1,
14239
+ textAlign: 'center',
14240
+ color: 'white',
14241
+ display: 'flex',
14242
+ flexDirection: 'column',
14243
+ justifyContent: 'end'
14244
+ }
14245
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
14246
+ style: {
14247
+ alignContent: 'center',
14248
+ marginTop: 12,
14249
+ marginBottom: 12,
14250
+ opacity: 0
14251
+ }
14252
+ }, instructionText))));
14253
+ };
14254
+
14093
14255
  var IdVideoCaptureGuides = function IdVideoCaptureGuides(_a) {
14094
- var _b = _a.borderWidth,
14256
+ var instructionText = _a.instructionText,
14257
+ _b = _a.borderWidth,
14095
14258
  borderWidth = _b === void 0 ? 3 : _b,
14096
14259
  _c = _a.borderColor,
14097
14260
  borderColor = _c === void 0 ? 'white' : _c,
14098
14261
  _d = _a.guideImageUrl,
14099
- guideImageUrl = _d === void 0 ? "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Front-SVG-Landscape-2.svg") : _d;
14262
+ guideImageUrl = _d === void 0 ? "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Front-SVG-Landscape-2.svg") : _d,
14263
+ _e = _a.flipping,
14264
+ flipping = _e === void 0 ? false : _e;
14265
+ var idGuideWidth = window.innerWidth > window.innerHeight ? '30%' : '75%';
14100
14266
  return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
14101
14267
  style: {
14102
14268
  position: 'absolute',
@@ -14116,43 +14282,113 @@ var IdVideoCaptureGuides = function IdVideoCaptureGuides(_a) {
14116
14282
  height: '100%',
14117
14283
  margin: '4% auto auto'
14118
14284
  }
14119
- }), /*#__PURE__*/React__default['default'].createElement("img", {
14120
- src: guideImageUrl,
14285
+ }), flipping ? /*#__PURE__*/React__default['default'].createElement(IdVideoCaptureFlipIdPrompt, {
14121
14286
  style: {
14122
- width: '30%',
14287
+ width: idGuideWidth,
14123
14288
  margin: '2% auto 2%'
14124
14289
  }
14125
- })));
14290
+ }) : /*#__PURE__*/React__default['default'].createElement("div", {
14291
+ style: {
14292
+ width: idGuideWidth,
14293
+ margin: '2% auto 2%',
14294
+ display: 'flex',
14295
+ flexFlow: 'column nowrap'
14296
+ }
14297
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
14298
+ style: {
14299
+ width: '100%',
14300
+ height: '100%',
14301
+ flexGrow: 1,
14302
+ textAlign: 'center',
14303
+ color: 'white',
14304
+ display: 'flex',
14305
+ flexDirection: 'column',
14306
+ justifyContent: 'end'
14307
+ }
14308
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
14309
+ style: {
14310
+ alignContent: 'center',
14311
+ marginTop: 12,
14312
+ marginBottom: 12
14313
+ }
14314
+ }, instructionText)), /*#__PURE__*/React__default['default'].createElement("div", {
14315
+ style: {
14316
+ border: "4px solid ".concat(borderColor)
14317
+ }
14318
+ }, /*#__PURE__*/React__default['default'].createElement("img", {
14319
+ src: guideImageUrl,
14320
+ alt: "",
14321
+ style: {
14322
+ width: '100%'
14323
+ }
14324
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
14325
+ style: {
14326
+ width: '100%',
14327
+ height: '100%',
14328
+ flexGrow: 1,
14329
+ textAlign: 'center',
14330
+ color: 'white',
14331
+ display: 'flex',
14332
+ flexDirection: 'column',
14333
+ justifyContent: 'end'
14334
+ }
14335
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
14336
+ style: {
14337
+ alignContent: 'center',
14338
+ marginTop: 12,
14339
+ marginBottom: 12,
14340
+ opacity: 0
14341
+ }
14342
+ }, instructionText)))));
14126
14343
  };
14127
14344
 
14128
14345
  var IdVideoCapture = function IdVideoCapture(_a) {
14129
14346
  var _b, _c, _d, _e, _f, _g;
14130
- var onFaceNotDetected = _a.onFaceNotDetected,
14131
- _h = _a.debugMode,
14132
- debugMode = _h === void 0 ? false : _h;
14133
- var _j = useResizeObserver__default['default'](),
14134
- ref = _j.ref,
14135
- _k = _j.width,
14136
- width = _k === void 0 ? 1 : _k,
14137
- _l = _j.height,
14138
- height = _l === void 0 ? 1 : _l;
14139
- var _m = React.useContext(CameraStateContext),
14140
- cameraRef = _m.cameraRef,
14141
- videoRef = _m.videoRef,
14142
- videoLoaded = _m.videoLoaded,
14143
- cameraReady = _m.cameraReady;
14144
- var _o = React.useState([]),
14145
- detectedObjects = _o[0],
14146
- setDetectedObjects = _o[1];
14147
- var _p = React.useState([]),
14148
- faces = _p[0],
14149
- setFaces = _p[1];
14150
- var _q = React.useContext(IdCaptureModelsContext),
14151
- idModelsReady = _q.ready,
14152
- idModelsWorking = _q.working,
14153
- makeIdPrediction = _q.makePrediction,
14154
- onIdPredictionMade = _q.onPredictionMade;
14347
+ var onComplete = _a.onComplete,
14348
+ onFaceNotDetected = _a.onFaceNotDetected,
14349
+ _h = _a.idDetectionThreshold,
14350
+ idDetectionThreshold = _h === void 0 ? 0.6 : _h,
14351
+ _j = _a.idFocusThreshold,
14352
+ idFocusThreshold = _j === void 0 ? 0.25 : _j,
14353
+ _k = _a.goodFramesThreshold,
14354
+ goodFramesThreshold = _k === void 0 ? 3 : _k,
14355
+ _l = _a.verbiage,
14356
+ rawVerbiage = _l === void 0 ? {} : _l,
14357
+ _m = _a.debugMode,
14358
+ debugMode = _m === void 0 ? false : _m;
14359
+ var _o = useResizeObserver__default['default'](),
14360
+ ref = _o.ref,
14361
+ _p = _o.width,
14362
+ width = _p === void 0 ? 1 : _p,
14363
+ _q = _o.height,
14364
+ height = _q === void 0 ? 1 : _q;
14365
+ var _r = React.useContext(CameraStateContext),
14366
+ cameraRef = _r.cameraRef,
14367
+ videoRef = _r.videoRef,
14368
+ videoLoaded = _r.videoLoaded,
14369
+ cameraReady = _r.cameraReady;
14370
+ var _s = React.useState([]),
14371
+ detectedObjects = _s[0],
14372
+ setDetectedObjects = _s[1];
14373
+ var _t = React.useState([]),
14374
+ faces = _t[0],
14375
+ setFaces = _t[1];
14376
+ var _u = React.useContext(IdCaptureModelsContext),
14377
+ idModelsReady = _u.ready,
14378
+ idModelsWorking = _u.working,
14379
+ makeIdPrediction = _u.makePrediction,
14380
+ onIdPredictionMade = _u.onPredictionMade,
14381
+ setThresholds = _u.setThresholds;
14155
14382
  var onSelfiePredictionMade = React.useContext(HighPerformanceSelfieGuidanceModelsContext).onPredictionMade;
14383
+ var _v = useVideoRecorder(cameraRef.current),
14384
+ isRecording = _v.isRecording,
14385
+ startRecording = _v.startRecording,
14386
+ stopRecording = _v.stopRecording,
14387
+ videoUrl = _v.videoUrl;
14388
+ React.useEffect(function () {
14389
+ if (!isRecording && !videoUrl) startRecording();
14390
+ if (videoUrl) onComplete === null || onComplete === void 0 ? void 0 : onComplete(videoUrl);
14391
+ }, [isRecording, onComplete, startRecording, videoUrl]);
14156
14392
  var animationFrame = React.useRef(0);
14157
14393
  var shouldCaptureFrames = React.useRef(false);
14158
14394
  React.useEffect(function () {
@@ -14175,14 +14411,51 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14175
14411
  cancelAnimationFrame(animationFrame.current);
14176
14412
  };
14177
14413
  }, [cameraReady, idModelsReady, idModelsWorking, makeIdPrediction, videoLoaded, videoRef]);
14414
+ React.useEffect(function () {
14415
+ setThresholds({
14416
+ document: idDetectionThreshold,
14417
+ passport: 1,
14418
+ focus: idFocusThreshold
14419
+ });
14420
+ }, [idDetectionThreshold, idFocusThreshold, setThresholds]);
14421
+ var _w = React.useState(DocumentType.ID_CARD_FRONT),
14422
+ requestedDocumentType = _w[0],
14423
+ setRequestedDocumentType = _w[1];
14424
+ var _x = React.useState(false),
14425
+ flippingIdCard = _x[0],
14426
+ setFlippingIdCard = _x[1];
14427
+ var _y = React.useState(0),
14428
+ goodFramesCount = _y[0],
14429
+ setGoodFramesCount = _y[1];
14430
+ var goodFramesThresholdMet = goodFramesCount >= goodFramesThreshold;
14178
14431
  React.useEffect(function () {
14179
14432
  onIdPredictionMade(function (prediction) {
14180
14433
  setDetectedObjects(prediction.detectedObjects);
14434
+ if (prediction.detectionThresholdMet && prediction.focusThresholdMet) {
14435
+ setGoodFramesCount(function (n) {
14436
+ return n + 1;
14437
+ });
14438
+ } else {
14439
+ setGoodFramesCount(0);
14440
+ }
14181
14441
  });
14182
- }, [onIdPredictionMade]);
14183
- var _r = React.useState(0),
14184
- numFramesWithoutFaces = _r[0],
14185
- setNumFramesWithoutFaces = _r[1];
14442
+ }, [idDetectionThreshold, onIdPredictionMade]);
14443
+ React.useEffect(function () {
14444
+ if (goodFramesThresholdMet) {
14445
+ if (requestedDocumentType == DocumentType.ID_CARD_FRONT) {
14446
+ setFlippingIdCard(true);
14447
+ setTimeout(function () {
14448
+ setFlippingIdCard(false);
14449
+ setRequestedDocumentType(DocumentType.ID_CARD_BACK);
14450
+ }, 3500);
14451
+ } else {
14452
+ stopRecording();
14453
+ }
14454
+ }
14455
+ }, [goodFramesThresholdMet, onComplete, requestedDocumentType, stopRecording]);
14456
+ var _z = React.useState(0),
14457
+ numFramesWithoutFaces = _z[0],
14458
+ setNumFramesWithoutFaces = _z[1];
14186
14459
  React.useEffect(function () {
14187
14460
  onSelfiePredictionMade(function (faces) {
14188
14461
  setFaces(faces);
@@ -14196,6 +14469,10 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14196
14469
  onFaceNotDetected === null || onFaceNotDetected === void 0 ? void 0 : onFaceNotDetected();
14197
14470
  }
14198
14471
  }, [numFramesWithoutFaces, onFaceNotDetected]);
14472
+ var verbiage = useTranslations(rawVerbiage, {
14473
+ idFrontInstructionText: 'Display the front of your ID card...',
14474
+ idBackInstructionText: 'Display the back of your ID card...'
14475
+ });
14199
14476
  var debugScalingDetails = useDebugScalingDetails({
14200
14477
  enabled: debugMode,
14201
14478
  pageWidth: width,
@@ -14206,7 +14483,12 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14206
14483
  return /*#__PURE__*/React__default['default'].createElement(PageContainer, {
14207
14484
  ref: ref,
14208
14485
  className: "flex"
14209
- }, /*#__PURE__*/React__default['default'].createElement(CameraVideoTag, null), /*#__PURE__*/React__default['default'].createElement(IdVideoCaptureGuides, null), debugMode && detectedObjects.length > 0 && /*#__PURE__*/React__default['default'].createElement(ObjectDetectionDebugOverlay, {
14486
+ }, /*#__PURE__*/React__default['default'].createElement(CameraVideoTag, null), /*#__PURE__*/React__default['default'].createElement(IdVideoCaptureGuides, {
14487
+ instructionText: requestedDocumentType === DocumentType.ID_CARD_FRONT ? verbiage.idFrontInstructionText : verbiage.idBackInstructionText,
14488
+ guideImageUrl: "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-").concat(requestedDocumentType === DocumentType.ID_CARD_FRONT ? 'Front' : 'Back', "-SVG-Landscape-2.svg"),
14489
+ borderColor: goodFramesCount > 0 ? 'green' : 'white',
14490
+ flipping: flippingIdCard
14491
+ }), debugMode && detectedObjects.length > 0 && /*#__PURE__*/React__default['default'].createElement(ObjectDetectionDebugOverlay, {
14210
14492
  "$flipX": !((_f = cameraRef.current) === null || _f === void 0 ? void 0 : _f.isRearFacing)
14211
14493
  }, detectedObjects.map(function (obj, i) {
14212
14494
  var _a;
@@ -14227,9 +14509,48 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14227
14509
  scaling: debugScalingDetails,
14228
14510
  flipX: !((_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.isRearFacing)
14229
14511
  });
14230
- })));
14512
+ })), debugMode && /*#__PURE__*/React__default['default'].createElement(DebugStatsPane, null, cameraRef.current ? /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, "\u2705 Camera: ", cameraRef.current.label, " (", cameraRef.current.width, "x", cameraRef.current.height, ")") : '❌ Camera not ready', /*#__PURE__*/React__default['default'].createElement("br", null), goodFramesThresholdMet ? '✅' : '❌', " Good Frame Count:", ' ', goodFramesCount, "/", goodFramesThreshold));
14231
14513
  };
14232
14514
 
14515
+ var IdVideoCaptureSuccess = function IdVideoCaptureSuccess(_a) {
14516
+ var _b, _c;
14517
+ var videoUrl = _a.videoUrl,
14518
+ onDoneClick = _a.onDoneClick,
14519
+ onRetryClick = _a.onRetryClick,
14520
+ _d = _a.colors,
14521
+ colors = _d === void 0 ? {} : _d,
14522
+ _e = _a.verbiage,
14523
+ rawVerbiage = _e === void 0 ? {} : _e;
14524
+ colors.retryBtn || (colors.retryBtn = {});
14525
+ (_b = colors.retryBtn).backgroundColor || (_b.backgroundColor = '#ea8557');
14526
+ (_c = colors.retryBtn).textColor || (_c.textColor = 'white');
14527
+ var verbiage = useTranslations(rawVerbiage, {
14528
+ headingText: 'Video ID has been successfully captured!',
14529
+ retryBtnText: 'Retry',
14530
+ doneBtnText: 'Done'
14531
+ });
14532
+ return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, null, /*#__PURE__*/React__default['default'].createElement("h1", null, verbiage.headingText), /*#__PURE__*/React__default['default'].createElement(OverlayImageWrapper, null, /*#__PURE__*/React__default['default'].createElement(StyledVideo, {
14533
+ src: videoUrl,
14534
+ poster: videoUrl + '#t=0.1',
14535
+ controls: true,
14536
+ preload: "metadata",
14537
+ autoPlay: true
14538
+ })), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(LoaderButton, {
14539
+ onClick: onRetryClick,
14540
+ colors: colors.retryBtn,
14541
+ finished: true
14542
+ }, verbiage.retryBtnText), /*#__PURE__*/React__default['default'].createElement(LoaderButton, {
14543
+ onClick: onDoneClick,
14544
+ colors: colors.doneBtn,
14545
+ style: {
14546
+ marginLeft: 15
14547
+ },
14548
+ finished: true
14549
+ }, verbiage.doneBtnText))));
14550
+ };
14551
+ var StyledVideo = styled__default['default'].video(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"], ["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"])));
14552
+ var templateObject_1;
14553
+
14233
14554
  var VideoIdWizard = function VideoIdWizard(_a) {
14234
14555
  var _b = _a.idCaptureProps,
14235
14556
  idCaptureProps = _b === void 0 ? {} : _b,
@@ -14248,6 +14569,9 @@ var VideoIdWizard = function VideoIdWizard(_a) {
14248
14569
  var _h = React.useState('CAPTURING_ID'),
14249
14570
  captureState = _h[0],
14250
14571
  setCaptureState = _h[1];
14572
+ var _j = React.useState(null),
14573
+ videoUrl = _j[0],
14574
+ setVideoUrl = _j[1];
14251
14575
  var operationStartedAt = React.useRef();
14252
14576
  var captureStartedAt = React.useRef();
14253
14577
  var captureEndedAt = React.useRef();
@@ -14293,6 +14617,10 @@ var VideoIdWizard = function VideoIdWizard(_a) {
14293
14617
  });
14294
14618
  });
14295
14619
  }, [logCaptureMetadata, selfieImage, setSelfieImage]);
14620
+ var onVideoCaptureComplete = React.useCallback(function (videoUrl) {
14621
+ setVideoUrl(videoUrl);
14622
+ setCaptureState('SUCCESS');
14623
+ }, []);
14296
14624
  var onVideoCaptureFaceNotDetected = React.useCallback(function () {
14297
14625
  setCaptureState('CHECKING_LIVENESS');
14298
14626
  }, []);
@@ -14338,9 +14666,14 @@ var VideoIdWizard = function VideoIdWizard(_a) {
14338
14666
  focusModelUrl: (_h = (_g = idCaptureProps.assets) === null || _g === void 0 ? void 0 : _g.focusModelUrl) !== null && _h !== void 0 ? _h : '',
14339
14667
  logPredictions: debugMode
14340
14668
  }, /*#__PURE__*/React__default['default'].createElement(HighPerformanceSelfieGuidanceModelsProvider, null, /*#__PURE__*/React__default['default'].createElement(IdVideoCapture, {
14669
+ onComplete: onVideoCaptureComplete,
14341
14670
  onFaceNotDetected: onVideoCaptureFaceNotDetected,
14342
14671
  debugMode: debugMode
14343
14672
  }))));
14673
+ case 'SUCCESS':
14674
+ return /*#__PURE__*/React__default['default'].createElement(IdVideoCaptureSuccess, {
14675
+ videoUrl: videoUrl !== null && videoUrl !== void 0 ? videoUrl : ''
14676
+ });
14344
14677
  default:
14345
14678
  return null;
14346
14679
  }