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.
package/dist/sdk2.esm.js CHANGED
@@ -14,7 +14,7 @@ import useResizeObserver from 'use-resize-observer';
14
14
  import { FaceDetector, FilesetResolver } from '@mediapipe/tasks-vision';
15
15
  import SignatureCanvas from 'react-signature-canvas';
16
16
 
17
- var webSdkVersion = '1.0.19';
17
+ var webSdkVersion = '1.0.21';
18
18
 
19
19
  function getPlatform() {
20
20
  return window.platform;
@@ -190,7 +190,7 @@ function contentDispositionFromDataUrl(url) {
190
190
  return (_b = (_a = url.match(/^(data:.*;base64),/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';
191
191
  }
192
192
 
193
- var PageContainerDiv = styled.div(templateObject_1$b || (templateObject_1$b = __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) {
193
+ var PageContainerDiv = styled.div(templateObject_1$c || (templateObject_1$c = __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) {
194
194
  var $heightOffset = _a.$heightOffset;
195
195
  return $heightOffset !== null && $heightOffset !== void 0 ? $heightOffset : 0;
196
196
  });
@@ -227,13 +227,13 @@ var PageContainer = /*#__PURE__*/forwardRef(function (_a, ref) {
227
227
  }, dimensionsCalculated && children);
228
228
  });
229
229
  PageContainer.displayName = 'PageContainer';
230
- var templateObject_1$b;
230
+ var templateObject_1$c;
231
231
 
232
- var OverlayContainer = styled(PageContainer)(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n background: white;\n z-index: 10000;\n"], ["\n background: white;\n z-index: 10000;\n"])));
232
+ var OverlayContainer = styled(PageContainer)(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n background: white;\n z-index: 10000;\n"], ["\n background: white;\n z-index: 10000;\n"])));
233
233
  var OverlayInner = styled.div(templateObject_2$4 || (templateObject_2$4 = __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"])));
234
234
  var OverlayImageWrapper = styled.div(templateObject_3$3 || (templateObject_3$3 = __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"])));
235
235
  var OverlayImageMultiContainer = styled.div(templateObject_4$2 || (templateObject_4$2 = __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"])));
236
- var templateObject_1$a, templateObject_2$4, templateObject_3$3, templateObject_4$2;
236
+ var templateObject_1$b, templateObject_2$4, templateObject_3$3, templateObject_4$2;
237
237
 
238
238
  var LoaderButton = function LoaderButton(_a) {
239
239
  var children = _a.children,
@@ -284,7 +284,7 @@ var LoaderButton = function LoaderButton(_a) {
284
284
  className: "ladda-label"
285
285
  }, children));
286
286
  };
287
- var StyledButton = styled.button(templateObject_1$9 || (templateObject_1$9 = __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) {
287
+ var StyledButton = styled.button(templateObject_1$a || (templateObject_1$a = __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) {
288
288
  var $textColor = _a.$textColor;
289
289
  return $textColor !== null && $textColor !== void 0 ? $textColor : '#fff';
290
290
  }, function (_a) {
@@ -303,7 +303,7 @@ var StyledButton = styled.button(templateObject_1$9 || (templateObject_1$9 = __m
303
303
  var $disabledBackgroundColor = _a.$disabledBackgroundColor;
304
304
  return $disabledBackgroundColor !== null && $disabledBackgroundColor !== void 0 ? $disabledBackgroundColor : '#0d6efd';
305
305
  });
306
- var templateObject_1$9;
306
+ var templateObject_1$a;
307
307
 
308
308
  var GeolocationAccessDeniedOverlay = function GeolocationAccessDeniedOverlay(_a) {
309
309
  var accessBlockedImageUrl = _a.accessBlockedImageUrl;
@@ -8264,7 +8264,7 @@ function getFrameDimensions(frame) {
8264
8264
  return [frameWidth, frameHeight];
8265
8265
  }
8266
8266
 
8267
- var InvisibleCanvas = styled.canvas(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
8267
+ var InvisibleCanvas = styled.canvas(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
8268
8268
  function drawToCanvas(canvas, frame, width, height) {
8269
8269
  if (!canvas) return;
8270
8270
  var ctx = canvas.getContext('2d');
@@ -8286,7 +8286,7 @@ function clearCanvas(canvas) {
8286
8286
  if (!ctx) return;
8287
8287
  ctx.clearRect(0, 0, canvas.width, canvas.height);
8288
8288
  }
8289
- var templateObject_1$8;
8289
+ var templateObject_1$9;
8290
8290
 
8291
8291
  function cropToShoulders(rawCanvas, cropCanvas, frame, face) {
8292
8292
  if (!rawCanvas || !cropCanvas) return '';
@@ -8810,7 +8810,7 @@ function disposeTfBackend() {
8810
8810
  }
8811
8811
  }
8812
8812
 
8813
- var DebugStatsPane = styled.span(templateObject_1$7 || (templateObject_1$7 = __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"])));
8813
+ var DebugStatsPane = styled.span(templateObject_1$8 || (templateObject_1$8 = __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"])));
8814
8814
  var ObjectDetectionDebugOverlay = styled.div(templateObject_2$3 || (templateObject_2$3 = __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) {
8815
8815
  var $flipX = _a.$flipX;
8816
8816
  return $flipX ? 'transform: scaleX(-1);' : '';
@@ -8981,12 +8981,12 @@ function SelfieCaptureFaceKeypoint(_a) {
8981
8981
  }
8982
8982
  });
8983
8983
  }
8984
- var templateObject_1$7, templateObject_2$3, templateObject_3$2, templateObject_4$1;
8984
+ var templateObject_1$8, templateObject_2$3, templateObject_3$2, templateObject_4$1;
8985
8985
 
8986
- var ExitCaptureButton = styled.button(templateObject_1$6 || (templateObject_1$6 = __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"])));
8987
- var templateObject_1$6;
8986
+ var ExitCaptureButton = styled.button(templateObject_1$7 || (templateObject_1$7 = __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"])));
8987
+ var templateObject_1$7;
8988
8988
 
8989
- var Spinner = styled.div(templateObject_1$5 || (templateObject_1$5 = __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) {
8989
+ var Spinner = styled.div(templateObject_1$6 || (templateObject_1$6 = __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) {
8990
8990
  var $size = _a.$size;
8991
8991
  return $size !== null && $size !== void 0 ? $size : 80;
8992
8992
  }, function (_a) {
@@ -9011,7 +9011,7 @@ var Spinner = styled.div(templateObject_1$5 || (templateObject_1$5 = __makeTempl
9011
9011
  var $color = _a.$color;
9012
9012
  return $color !== null && $color !== void 0 ? $color : '#888';
9013
9013
  });
9014
- var templateObject_1$5;
9014
+ var templateObject_1$6;
9015
9015
 
9016
9016
  var IdCaptureImagePreview = function IdCaptureImagePreview(_a) {
9017
9017
  var text = _a.text,
@@ -9038,10 +9038,10 @@ var SelfieProgressPreview = function SelfieProgressPreview(_a) {
9038
9038
  alt: ""
9039
9039
  })));
9040
9040
  };
9041
- var ImagePreviewWrapper = styled.div(templateObject_1$4 || (templateObject_1$4 = __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"])));
9041
+ var ImagePreviewWrapper = styled.div(templateObject_1$5 || (templateObject_1$5 = __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"])));
9042
9042
  var ImagePreviewText = styled.div(templateObject_2$2 || (templateObject_2$2 = __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"])));
9043
9043
  var ImagePreviewImageWrapper = styled.div(templateObject_3$1 || (templateObject_3$1 = __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"])));
9044
- var templateObject_1$4, templateObject_2$2, templateObject_3$1;
9044
+ var templateObject_1$5, templateObject_2$2, templateObject_3$1;
9045
9045
 
9046
9046
  var enTranslation = {};
9047
9047
 
@@ -9152,7 +9152,7 @@ function useTranslations(verbiage, fallbacks) {
9152
9152
  }, [fallbacks, i18n.language, t, verbiage]);
9153
9153
  }
9154
9154
 
9155
- var GuidanceMessageContainer = styled.div(templateObject_1$3 || (templateObject_1$3 = __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) {
9155
+ var GuidanceMessageContainer = styled.div(templateObject_1$4 || (templateObject_1$4 = __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) {
9156
9156
  var $top = _a.$top;
9157
9157
  return $top !== null && $top !== void 0 ? $top : '10vh';
9158
9158
  });
@@ -9163,7 +9163,7 @@ var GuidanceMessage = styled.div(templateObject_2$1 || (templateObject_2$1 = __m
9163
9163
  var $textColor = _a.$textColor;
9164
9164
  return $textColor !== null && $textColor !== void 0 ? $textColor : 'black';
9165
9165
  });
9166
- var templateObject_1$3, templateObject_2$1;
9166
+ var templateObject_1$4, templateObject_2$1;
9167
9167
 
9168
9168
  var initialState$5 = {
9169
9169
  videoWidth: 0,
@@ -10084,10 +10084,10 @@ var CameraVideoTag = function CameraVideoTag() {
10084
10084
  "$isRearFacing": (_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.isRearFacing
10085
10085
  });
10086
10086
  };
10087
- var FullscreenVideoTag = styled.video(templateObject_1$2 || (templateObject_1$2 = __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) {
10087
+ var FullscreenVideoTag = styled.video(templateObject_1$3 || (templateObject_1$3 = __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) {
10088
10088
  return props.$isRearFacing ? '' : 'scaleX(-1)';
10089
10089
  });
10090
- var templateObject_1$2;
10090
+ var templateObject_1$3;
10091
10091
 
10092
10092
  function useShowSuccessScreen(skipSuccessScreen, successScreenReady, onDoneCallback) {
10093
10093
  var _this = this;
@@ -11975,11 +11975,11 @@ function signatureDataToIdmissionFormat(signatureCanvas) {
11975
11975
  return signatureData;
11976
11976
  }
11977
11977
 
11978
- var SignatureCanvasContainer = styled.div(templateObject_1$1 || (templateObject_1$1 = __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"])));
11978
+ var SignatureCanvasContainer = styled.div(templateObject_1$2 || (templateObject_1$2 = __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"])));
11979
11979
  var SignaturePad = styled.div(templateObject_2 || (templateObject_2 = __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"])));
11980
11980
  var SignatureButtonsContainer = styled.div(templateObject_3 || (templateObject_3 = __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"])));
11981
11981
  var SignaturePaperBacking = styled.div(templateObject_4 || (templateObject_4 = __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"])));
11982
- var templateObject_1$1, templateObject_2, templateObject_3, templateObject_4;
11982
+ var templateObject_1$2, templateObject_2, templateObject_3, templateObject_4;
11983
11983
 
11984
11984
  var SignatureCapture = function SignatureCapture(_a) {
11985
11985
  var onAccept = _a.onAccept,
@@ -12288,7 +12288,7 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
12288
12288
  retryBtnText: 'Retry',
12289
12289
  doneBtnText: 'Done'
12290
12290
  });
12291
- return /*#__PURE__*/React__default.createElement(OverlayContainer, null, /*#__PURE__*/React__default.createElement(OverlayInner, null, /*#__PURE__*/React__default.createElement("h1", null, verbiage.headingText), /*#__PURE__*/React__default.createElement(OverlayImageWrapper, null, /*#__PURE__*/React__default.createElement(StyledVideo, {
12291
+ return /*#__PURE__*/React__default.createElement(OverlayContainer, null, /*#__PURE__*/React__default.createElement(OverlayInner, null, /*#__PURE__*/React__default.createElement("h1", null, verbiage.headingText), /*#__PURE__*/React__default.createElement(OverlayImageWrapper, null, /*#__PURE__*/React__default.createElement(StyledVideo$1, {
12292
12292
  src: videoUrl,
12293
12293
  poster: videoUrl + '#t=0.1',
12294
12294
  controls: true,
@@ -12307,8 +12307,8 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
12307
12307
  finished: true
12308
12308
  }, verbiage.doneBtnText))));
12309
12309
  };
12310
- var StyledVideo = styled.video(templateObject_1 || (templateObject_1 = __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"])));
12311
- var templateObject_1;
12310
+ var StyledVideo$1 = styled.video(templateObject_1$1 || (templateObject_1$1 = __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"])));
12311
+ var templateObject_1$1;
12312
12312
 
12313
12313
  var VideoSignatureWizard = function VideoSignatureWizard(_a) {
12314
12314
  var onComplete = _a.onComplete,
@@ -14054,13 +14054,179 @@ var SignatureKYC = function SignatureKYC(_a) {
14054
14054
  })));
14055
14055
  };
14056
14056
 
14057
+ var IdVideoCaptureFlipIdPrompt = function IdVideoCaptureFlipIdPrompt(_a) {
14058
+ var _b;
14059
+ var _c = _a.style,
14060
+ style = _c === void 0 ? {} : _c,
14061
+ _d = _a.assets,
14062
+ assets = _d === void 0 ? {} : _d,
14063
+ _e = _a.verbiage,
14064
+ verbiage = _e === void 0 ? {} : _e;
14065
+ var _f = useResizeObserver(),
14066
+ ref = _f.ref,
14067
+ _g = _f.width,
14068
+ width = _g === void 0 ? 1 : _g,
14069
+ _h = _f.height,
14070
+ height = _h === void 0 ? 1 : _h;
14071
+ var cameraRef = useContext(CameraStateContext).cameraRef;
14072
+ assets.frontImageUrl || (assets.frontImageUrl = "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Front-SVG-Landscape-2.svg"));
14073
+ assets.backImageUrl || (assets.backImageUrl = "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Back-SVG-Landscape-2.svg"));
14074
+ var instructionText = useVerbiage(verbiage.instructionText, 'Please flip your ID card...');
14075
+ var padding = 0;
14076
+ var borderWidth = 4;
14077
+ var borderColor = 'white';
14078
+ var isMirrored = !((_b = cameraRef.current) === null || _b === void 0 ? void 0 : _b.isRearFacing);
14079
+ var imageStyle = {
14080
+ height: height - padding * 2 - borderWidth * 2
14081
+ };
14082
+ imageStyle = {
14083
+ width: width - padding * 2 - borderWidth * 2
14084
+ };
14085
+ var _j = useState(1),
14086
+ transitionTime = _j[0],
14087
+ setTransitionTime = _j[1];
14088
+ var _k = useState(0),
14089
+ rotationAngle = _k[0],
14090
+ setRotationAngle = _k[1];
14091
+ var frontTransforms = ["rotateY(".concat(rotationAngle, "deg)")];
14092
+ if (isMirrored) frontTransforms.push('scaleX(-1)');
14093
+ var backTransforms = ["rotateY(".concat(180 - rotationAngle, "deg)")];
14094
+ if (isMirrored) backTransforms.push('scaleX(-1)');
14095
+ useEffect(function () {
14096
+ var doFlip = function doFlip() {
14097
+ setTransitionTime(1);
14098
+ setRotationAngle(180);
14099
+ setTimeout(function () {
14100
+ setTransitionTime(0);
14101
+ setRotationAngle(0);
14102
+ }, 1500);
14103
+ };
14104
+ setTimeout(doFlip, 250);
14105
+ var interval = setInterval(doFlip, 2500);
14106
+ return function () {
14107
+ clearInterval(interval);
14108
+ };
14109
+ }, []);
14110
+ return /*#__PURE__*/React__default.createElement("div", {
14111
+ ref: ref,
14112
+ style: __assign(__assign({}, style), {
14113
+ position: 'relative'
14114
+ })
14115
+ }, /*#__PURE__*/React__default.createElement("div", {
14116
+ style: {
14117
+ display: 'flex',
14118
+ flexFlow: 'column nowrap',
14119
+ height: '100%'
14120
+ }
14121
+ }, /*#__PURE__*/React__default.createElement("div", {
14122
+ style: {
14123
+ width: '100%',
14124
+ height: '100%',
14125
+ flexGrow: 1,
14126
+ textAlign: 'center',
14127
+ color: 'white',
14128
+ display: 'flex',
14129
+ flexDirection: 'column',
14130
+ justifyContent: 'end'
14131
+ }
14132
+ }, /*#__PURE__*/React__default.createElement("span", {
14133
+ style: {
14134
+ alignContent: 'center',
14135
+ marginTop: 12,
14136
+ marginBottom: 12
14137
+ }
14138
+ }, instructionText)), /*#__PURE__*/React__default.createElement("div", {
14139
+ style: {
14140
+ position: 'relative',
14141
+ display: 'flex',
14142
+ flexFlow: 'row nowrap',
14143
+ alignItems: 'center',
14144
+ justifyItems: 'center',
14145
+ maxWidth: "calc(100%)",
14146
+ maxHeight: "calc(100% - ".concat(padding * 2, "px - ").concat(borderWidth * 2, "px)")
14147
+ }
14148
+ }, /*#__PURE__*/React__default.createElement("div", {
14149
+ style: {
14150
+ width: '100%',
14151
+ height: '100%',
14152
+ minWidth: padding,
14153
+ flexGrow: 1
14154
+ }
14155
+ }), /*#__PURE__*/React__default.createElement("div", {
14156
+ style: {
14157
+ maxWidth: "calc(100% - ".concat(padding * 2, "px - ").concat(borderWidth * 2, "px)"),
14158
+ maxHeight: height - padding * 2 - borderWidth * 2
14159
+ }
14160
+ }, /*#__PURE__*/React__default.createElement("div", {
14161
+ style: {
14162
+ position: 'relative',
14163
+ border: "".concat(borderWidth, "px solid ").concat(borderColor)
14164
+ }
14165
+ }, /*#__PURE__*/React__default.createElement("img", {
14166
+ src: assets.frontImageUrl,
14167
+ alt: "",
14168
+ style: __assign({
14169
+ backfaceVisibility: 'hidden',
14170
+ transition: "transform ".concat(transitionTime, "s"),
14171
+ transform: frontTransforms.join(' '),
14172
+ transformStyle: 'preserve-3d',
14173
+ position: 'relative',
14174
+ top: 0,
14175
+ left: 0,
14176
+ display: 'block'
14177
+ }, imageStyle)
14178
+ }), /*#__PURE__*/React__default.createElement("img", {
14179
+ src: assets.backImageUrl,
14180
+ alt: "",
14181
+ style: __assign({
14182
+ backfaceVisibility: 'hidden',
14183
+ transition: "transform ".concat(transitionTime, "s"),
14184
+ transform: backTransforms.join(' '),
14185
+ transformStyle: 'preserve-3d',
14186
+ position: 'absolute',
14187
+ top: 0,
14188
+ left: 0,
14189
+ display: 'block'
14190
+ }, imageStyle)
14191
+ }))), /*#__PURE__*/React__default.createElement("div", {
14192
+ style: {
14193
+ width: '100%',
14194
+ height: '100%',
14195
+ minWidth: padding,
14196
+ flexGrow: 1
14197
+ }
14198
+ })), /*#__PURE__*/React__default.createElement("div", {
14199
+ style: {
14200
+ width: '100%',
14201
+ height: '100%',
14202
+ flexGrow: 1,
14203
+ textAlign: 'center',
14204
+ color: 'white',
14205
+ display: 'flex',
14206
+ flexDirection: 'column',
14207
+ justifyContent: 'end'
14208
+ }
14209
+ }, /*#__PURE__*/React__default.createElement("span", {
14210
+ style: {
14211
+ alignContent: 'center',
14212
+ marginTop: 12,
14213
+ marginBottom: 12,
14214
+ opacity: 0
14215
+ }
14216
+ }, instructionText))));
14217
+ };
14218
+
14057
14219
  var IdVideoCaptureGuides = function IdVideoCaptureGuides(_a) {
14058
- var _b = _a.borderWidth,
14220
+ var instructionText = _a.instructionText,
14221
+ _b = _a.borderWidth,
14059
14222
  borderWidth = _b === void 0 ? 3 : _b,
14060
14223
  _c = _a.borderColor,
14061
14224
  borderColor = _c === void 0 ? 'white' : _c,
14062
14225
  _d = _a.guideImageUrl,
14063
- guideImageUrl = _d === void 0 ? "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Front-SVG-Landscape-2.svg") : _d;
14226
+ guideImageUrl = _d === void 0 ? "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-Front-SVG-Landscape-2.svg") : _d,
14227
+ _e = _a.flipping,
14228
+ flipping = _e === void 0 ? false : _e;
14229
+ var idGuideWidth = window.innerWidth > window.innerHeight ? '30%' : '75%';
14064
14230
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
14065
14231
  style: {
14066
14232
  position: 'absolute',
@@ -14080,43 +14246,113 @@ var IdVideoCaptureGuides = function IdVideoCaptureGuides(_a) {
14080
14246
  height: '100%',
14081
14247
  margin: '4% auto auto'
14082
14248
  }
14083
- }), /*#__PURE__*/React__default.createElement("img", {
14084
- src: guideImageUrl,
14249
+ }), flipping ? /*#__PURE__*/React__default.createElement(IdVideoCaptureFlipIdPrompt, {
14085
14250
  style: {
14086
- width: '30%',
14251
+ width: idGuideWidth,
14087
14252
  margin: '2% auto 2%'
14088
14253
  }
14089
- })));
14254
+ }) : /*#__PURE__*/React__default.createElement("div", {
14255
+ style: {
14256
+ width: idGuideWidth,
14257
+ margin: '2% auto 2%',
14258
+ display: 'flex',
14259
+ flexFlow: 'column nowrap'
14260
+ }
14261
+ }, /*#__PURE__*/React__default.createElement("div", {
14262
+ style: {
14263
+ width: '100%',
14264
+ height: '100%',
14265
+ flexGrow: 1,
14266
+ textAlign: 'center',
14267
+ color: 'white',
14268
+ display: 'flex',
14269
+ flexDirection: 'column',
14270
+ justifyContent: 'end'
14271
+ }
14272
+ }, /*#__PURE__*/React__default.createElement("span", {
14273
+ style: {
14274
+ alignContent: 'center',
14275
+ marginTop: 12,
14276
+ marginBottom: 12
14277
+ }
14278
+ }, instructionText)), /*#__PURE__*/React__default.createElement("div", {
14279
+ style: {
14280
+ border: "4px solid ".concat(borderColor)
14281
+ }
14282
+ }, /*#__PURE__*/React__default.createElement("img", {
14283
+ src: guideImageUrl,
14284
+ alt: "",
14285
+ style: {
14286
+ width: '100%'
14287
+ }
14288
+ })), /*#__PURE__*/React__default.createElement("div", {
14289
+ style: {
14290
+ width: '100%',
14291
+ height: '100%',
14292
+ flexGrow: 1,
14293
+ textAlign: 'center',
14294
+ color: 'white',
14295
+ display: 'flex',
14296
+ flexDirection: 'column',
14297
+ justifyContent: 'end'
14298
+ }
14299
+ }, /*#__PURE__*/React__default.createElement("span", {
14300
+ style: {
14301
+ alignContent: 'center',
14302
+ marginTop: 12,
14303
+ marginBottom: 12,
14304
+ opacity: 0
14305
+ }
14306
+ }, instructionText)))));
14090
14307
  };
14091
14308
 
14092
14309
  var IdVideoCapture = function IdVideoCapture(_a) {
14093
14310
  var _b, _c, _d, _e, _f, _g;
14094
- var onFaceNotDetected = _a.onFaceNotDetected,
14095
- _h = _a.debugMode,
14096
- debugMode = _h === void 0 ? false : _h;
14097
- var _j = useResizeObserver(),
14098
- ref = _j.ref,
14099
- _k = _j.width,
14100
- width = _k === void 0 ? 1 : _k,
14101
- _l = _j.height,
14102
- height = _l === void 0 ? 1 : _l;
14103
- var _m = useContext(CameraStateContext),
14104
- cameraRef = _m.cameraRef,
14105
- videoRef = _m.videoRef,
14106
- videoLoaded = _m.videoLoaded,
14107
- cameraReady = _m.cameraReady;
14108
- var _o = useState([]),
14109
- detectedObjects = _o[0],
14110
- setDetectedObjects = _o[1];
14111
- var _p = useState([]),
14112
- faces = _p[0],
14113
- setFaces = _p[1];
14114
- var _q = useContext(IdCaptureModelsContext),
14115
- idModelsReady = _q.ready,
14116
- idModelsWorking = _q.working,
14117
- makeIdPrediction = _q.makePrediction,
14118
- onIdPredictionMade = _q.onPredictionMade;
14311
+ var onComplete = _a.onComplete,
14312
+ onFaceNotDetected = _a.onFaceNotDetected,
14313
+ _h = _a.idDetectionThreshold,
14314
+ idDetectionThreshold = _h === void 0 ? 0.6 : _h,
14315
+ _j = _a.idFocusThreshold,
14316
+ idFocusThreshold = _j === void 0 ? 0.25 : _j,
14317
+ _k = _a.goodFramesThreshold,
14318
+ goodFramesThreshold = _k === void 0 ? 3 : _k,
14319
+ _l = _a.verbiage,
14320
+ rawVerbiage = _l === void 0 ? {} : _l,
14321
+ _m = _a.debugMode,
14322
+ debugMode = _m === void 0 ? false : _m;
14323
+ var _o = useResizeObserver(),
14324
+ ref = _o.ref,
14325
+ _p = _o.width,
14326
+ width = _p === void 0 ? 1 : _p,
14327
+ _q = _o.height,
14328
+ height = _q === void 0 ? 1 : _q;
14329
+ var _r = useContext(CameraStateContext),
14330
+ cameraRef = _r.cameraRef,
14331
+ videoRef = _r.videoRef,
14332
+ videoLoaded = _r.videoLoaded,
14333
+ cameraReady = _r.cameraReady;
14334
+ var _s = useState([]),
14335
+ detectedObjects = _s[0],
14336
+ setDetectedObjects = _s[1];
14337
+ var _t = useState([]),
14338
+ faces = _t[0],
14339
+ setFaces = _t[1];
14340
+ var _u = useContext(IdCaptureModelsContext),
14341
+ idModelsReady = _u.ready,
14342
+ idModelsWorking = _u.working,
14343
+ makeIdPrediction = _u.makePrediction,
14344
+ onIdPredictionMade = _u.onPredictionMade,
14345
+ setThresholds = _u.setThresholds;
14119
14346
  var onSelfiePredictionMade = useContext(HighPerformanceSelfieGuidanceModelsContext).onPredictionMade;
14347
+ var _v = useVideoRecorder(cameraRef.current),
14348
+ isRecording = _v.isRecording,
14349
+ startRecording = _v.startRecording,
14350
+ stopRecording = _v.stopRecording,
14351
+ videoUrl = _v.videoUrl;
14352
+ useEffect(function () {
14353
+ if (!isRecording && !videoUrl) startRecording();
14354
+ if (videoUrl) onComplete === null || onComplete === void 0 ? void 0 : onComplete(videoUrl);
14355
+ }, [isRecording, onComplete, startRecording, videoUrl]);
14120
14356
  var animationFrame = useRef(0);
14121
14357
  var shouldCaptureFrames = useRef(false);
14122
14358
  useEffect(function () {
@@ -14139,14 +14375,51 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14139
14375
  cancelAnimationFrame(animationFrame.current);
14140
14376
  };
14141
14377
  }, [cameraReady, idModelsReady, idModelsWorking, makeIdPrediction, videoLoaded, videoRef]);
14378
+ useEffect(function () {
14379
+ setThresholds({
14380
+ document: idDetectionThreshold,
14381
+ passport: 1,
14382
+ focus: idFocusThreshold
14383
+ });
14384
+ }, [idDetectionThreshold, idFocusThreshold, setThresholds]);
14385
+ var _w = useState(DocumentType.ID_CARD_FRONT),
14386
+ requestedDocumentType = _w[0],
14387
+ setRequestedDocumentType = _w[1];
14388
+ var _x = useState(false),
14389
+ flippingIdCard = _x[0],
14390
+ setFlippingIdCard = _x[1];
14391
+ var _y = useState(0),
14392
+ goodFramesCount = _y[0],
14393
+ setGoodFramesCount = _y[1];
14394
+ var goodFramesThresholdMet = goodFramesCount >= goodFramesThreshold;
14142
14395
  useEffect(function () {
14143
14396
  onIdPredictionMade(function (prediction) {
14144
14397
  setDetectedObjects(prediction.detectedObjects);
14398
+ if (prediction.detectionThresholdMet && prediction.focusThresholdMet) {
14399
+ setGoodFramesCount(function (n) {
14400
+ return n + 1;
14401
+ });
14402
+ } else {
14403
+ setGoodFramesCount(0);
14404
+ }
14145
14405
  });
14146
- }, [onIdPredictionMade]);
14147
- var _r = useState(0),
14148
- numFramesWithoutFaces = _r[0],
14149
- setNumFramesWithoutFaces = _r[1];
14406
+ }, [idDetectionThreshold, onIdPredictionMade]);
14407
+ useEffect(function () {
14408
+ if (goodFramesThresholdMet) {
14409
+ if (requestedDocumentType == DocumentType.ID_CARD_FRONT) {
14410
+ setFlippingIdCard(true);
14411
+ setTimeout(function () {
14412
+ setFlippingIdCard(false);
14413
+ setRequestedDocumentType(DocumentType.ID_CARD_BACK);
14414
+ }, 3500);
14415
+ } else {
14416
+ stopRecording();
14417
+ }
14418
+ }
14419
+ }, [goodFramesThresholdMet, onComplete, requestedDocumentType, stopRecording]);
14420
+ var _z = useState(0),
14421
+ numFramesWithoutFaces = _z[0],
14422
+ setNumFramesWithoutFaces = _z[1];
14150
14423
  useEffect(function () {
14151
14424
  onSelfiePredictionMade(function (faces) {
14152
14425
  setFaces(faces);
@@ -14160,6 +14433,10 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14160
14433
  onFaceNotDetected === null || onFaceNotDetected === void 0 ? void 0 : onFaceNotDetected();
14161
14434
  }
14162
14435
  }, [numFramesWithoutFaces, onFaceNotDetected]);
14436
+ var verbiage = useTranslations(rawVerbiage, {
14437
+ idFrontInstructionText: 'Display the front of your ID card...',
14438
+ idBackInstructionText: 'Display the back of your ID card...'
14439
+ });
14163
14440
  var debugScalingDetails = useDebugScalingDetails({
14164
14441
  enabled: debugMode,
14165
14442
  pageWidth: width,
@@ -14170,7 +14447,12 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14170
14447
  return /*#__PURE__*/React__default.createElement(PageContainer, {
14171
14448
  ref: ref,
14172
14449
  className: "flex"
14173
- }, /*#__PURE__*/React__default.createElement(CameraVideoTag, null), /*#__PURE__*/React__default.createElement(IdVideoCaptureGuides, null), debugMode && detectedObjects.length > 0 && /*#__PURE__*/React__default.createElement(ObjectDetectionDebugOverlay, {
14450
+ }, /*#__PURE__*/React__default.createElement(CameraVideoTag, null), /*#__PURE__*/React__default.createElement(IdVideoCaptureGuides, {
14451
+ instructionText: requestedDocumentType === DocumentType.ID_CARD_FRONT ? verbiage.idFrontInstructionText : verbiage.idBackInstructionText,
14452
+ guideImageUrl: "".concat(DEFAULT_CDN_URL, "/Shieldout-IDCard-").concat(requestedDocumentType === DocumentType.ID_CARD_FRONT ? 'Front' : 'Back', "-SVG-Landscape-2.svg"),
14453
+ borderColor: goodFramesCount > 0 ? 'green' : 'white',
14454
+ flipping: flippingIdCard
14455
+ }), debugMode && detectedObjects.length > 0 && /*#__PURE__*/React__default.createElement(ObjectDetectionDebugOverlay, {
14174
14456
  "$flipX": !((_f = cameraRef.current) === null || _f === void 0 ? void 0 : _f.isRearFacing)
14175
14457
  }, detectedObjects.map(function (obj, i) {
14176
14458
  var _a;
@@ -14191,9 +14473,48 @@ var IdVideoCapture = function IdVideoCapture(_a) {
14191
14473
  scaling: debugScalingDetails,
14192
14474
  flipX: !((_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.isRearFacing)
14193
14475
  });
14194
- })));
14476
+ })), debugMode && /*#__PURE__*/React__default.createElement(DebugStatsPane, null, cameraRef.current ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", cameraRef.current.label, " (", cameraRef.current.width, "x", cameraRef.current.height, ")") : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), goodFramesThresholdMet ? '✅' : '❌', " Good Frame Count:", ' ', goodFramesCount, "/", goodFramesThreshold));
14195
14477
  };
14196
14478
 
14479
+ var IdVideoCaptureSuccess = function IdVideoCaptureSuccess(_a) {
14480
+ var _b, _c;
14481
+ var videoUrl = _a.videoUrl,
14482
+ onDoneClick = _a.onDoneClick,
14483
+ onRetryClick = _a.onRetryClick,
14484
+ _d = _a.colors,
14485
+ colors = _d === void 0 ? {} : _d,
14486
+ _e = _a.verbiage,
14487
+ rawVerbiage = _e === void 0 ? {} : _e;
14488
+ colors.retryBtn || (colors.retryBtn = {});
14489
+ (_b = colors.retryBtn).backgroundColor || (_b.backgroundColor = '#ea8557');
14490
+ (_c = colors.retryBtn).textColor || (_c.textColor = 'white');
14491
+ var verbiage = useTranslations(rawVerbiage, {
14492
+ headingText: 'Video ID has been successfully captured!',
14493
+ retryBtnText: 'Retry',
14494
+ doneBtnText: 'Done'
14495
+ });
14496
+ return /*#__PURE__*/React__default.createElement(OverlayContainer, null, /*#__PURE__*/React__default.createElement(OverlayInner, null, /*#__PURE__*/React__default.createElement("h1", null, verbiage.headingText), /*#__PURE__*/React__default.createElement(OverlayImageWrapper, null, /*#__PURE__*/React__default.createElement(StyledVideo, {
14497
+ src: videoUrl,
14498
+ poster: videoUrl + '#t=0.1',
14499
+ controls: true,
14500
+ preload: "metadata",
14501
+ autoPlay: true
14502
+ })), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(LoaderButton, {
14503
+ onClick: onRetryClick,
14504
+ colors: colors.retryBtn,
14505
+ finished: true
14506
+ }, verbiage.retryBtnText), /*#__PURE__*/React__default.createElement(LoaderButton, {
14507
+ onClick: onDoneClick,
14508
+ colors: colors.doneBtn,
14509
+ style: {
14510
+ marginLeft: 15
14511
+ },
14512
+ finished: true
14513
+ }, verbiage.doneBtnText))));
14514
+ };
14515
+ var StyledVideo = styled.video(templateObject_1 || (templateObject_1 = __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"])));
14516
+ var templateObject_1;
14517
+
14197
14518
  var VideoIdWizard = function VideoIdWizard(_a) {
14198
14519
  var _b = _a.idCaptureProps,
14199
14520
  idCaptureProps = _b === void 0 ? {} : _b,
@@ -14212,6 +14533,9 @@ var VideoIdWizard = function VideoIdWizard(_a) {
14212
14533
  var _h = useState('CAPTURING_ID'),
14213
14534
  captureState = _h[0],
14214
14535
  setCaptureState = _h[1];
14536
+ var _j = useState(null),
14537
+ videoUrl = _j[0],
14538
+ setVideoUrl = _j[1];
14215
14539
  var operationStartedAt = useRef();
14216
14540
  var captureStartedAt = useRef();
14217
14541
  var captureEndedAt = useRef();
@@ -14257,6 +14581,10 @@ var VideoIdWizard = function VideoIdWizard(_a) {
14257
14581
  });
14258
14582
  });
14259
14583
  }, [logCaptureMetadata, selfieImage, setSelfieImage]);
14584
+ var onVideoCaptureComplete = useCallback(function (videoUrl) {
14585
+ setVideoUrl(videoUrl);
14586
+ setCaptureState('SUCCESS');
14587
+ }, []);
14260
14588
  var onVideoCaptureFaceNotDetected = useCallback(function () {
14261
14589
  setCaptureState('CHECKING_LIVENESS');
14262
14590
  }, []);
@@ -14302,9 +14630,14 @@ var VideoIdWizard = function VideoIdWizard(_a) {
14302
14630
  focusModelUrl: (_h = (_g = idCaptureProps.assets) === null || _g === void 0 ? void 0 : _g.focusModelUrl) !== null && _h !== void 0 ? _h : '',
14303
14631
  logPredictions: debugMode
14304
14632
  }, /*#__PURE__*/React__default.createElement(HighPerformanceSelfieGuidanceModelsProvider, null, /*#__PURE__*/React__default.createElement(IdVideoCapture, {
14633
+ onComplete: onVideoCaptureComplete,
14305
14634
  onFaceNotDetected: onVideoCaptureFaceNotDetected,
14306
14635
  debugMode: debugMode
14307
14636
  }))));
14637
+ case 'SUCCESS':
14638
+ return /*#__PURE__*/React__default.createElement(IdVideoCaptureSuccess, {
14639
+ videoUrl: videoUrl !== null && videoUrl !== void 0 ? videoUrl : ''
14640
+ });
14308
14641
  default:
14309
14642
  return null;
14310
14643
  }