idmission-web-sdk 2.5.83-changeset-release-develop-eb57522 → 2.5.83-changeset-release-develop-2127d44
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/index.d.ts +1 -1
- package/dist/props.json +1 -1
- package/dist/sdk2.cjs.development.js +213 -184
- package/dist/sdk2.cjs.development.js.map +1 -1
- package/dist/sdk2.cjs.production.js +1 -1
- package/dist/sdk2.cjs.production.js.map +1 -1
- package/dist/sdk2.esm.js +214 -185
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +215 -648
- package/dist/sdk2.umd.development.js.map +1 -1
- package/dist/sdk2.umd.production.js +1 -1
- package/dist/sdk2.umd.production.js.map +1 -1
- package/package.json +1 -2
|
@@ -7134,7 +7134,7 @@
|
|
|
7134
7134
|
var arr = [];
|
|
7135
7135
|
var each = arr.forEach;
|
|
7136
7136
|
var slice = arr.slice;
|
|
7137
|
-
function defaults
|
|
7137
|
+
function defaults(obj) {
|
|
7138
7138
|
each.call(slice.call(arguments, 1), function (source) {
|
|
7139
7139
|
if (source) {
|
|
7140
7140
|
for (var prop in source) {
|
|
@@ -7436,7 +7436,7 @@
|
|
|
7436
7436
|
this.services = services || {
|
|
7437
7437
|
languageUtils: {}
|
|
7438
7438
|
}; // this way the language detector can be used without i18next
|
|
7439
|
-
this.options = defaults
|
|
7439
|
+
this.options = defaults(options, this.options || {}, getDefaults());
|
|
7440
7440
|
if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {
|
|
7441
7441
|
this.options.convertDetectedLanguage = function (l) {
|
|
7442
7442
|
return l.replace('-', '_');
|
|
@@ -11233,15 +11233,17 @@
|
|
|
11233
11233
|
var HAND_OVER_FACE = 'Remove your hand from your face...';
|
|
11234
11234
|
var SELFIE_RECOVERY_HINT = 'We’re having trouble checking the lighting. Keep your face centered and hold still—we’ll still check your positioning.';
|
|
11235
11235
|
var CONTINUE_WITH_CURRENT_LIGHTING = 'Continue with current lighting';
|
|
11236
|
+
// The face liveness Retry button while the camera restarts behind it.
|
|
11237
|
+
var STARTING_CAMERA = 'Starting camera...';
|
|
11236
11238
|
var threeOhTranslations = {
|
|
11237
|
-
de: (_de = {}, _de[SELFIE_RECOVERY_HINT] = 'Wir haben Schwierigkeiten, die Beleuchtung zu prüfen. Halten Sie Ihr Gesicht mittig und bleiben Sie ruhig. Wir prüfen weiterhin Ihre Position.', _de[CONTINUE_WITH_CURRENT_LIGHTING] = 'Mit aktueller Beleuchtung fortfahren', _de[MANUAL_CAPTURE_HINT] = 'Die automatische Aufnahme hat Schwierigkeiten. Tippen Sie auf die Taste, um das Foto selbst aufzunehmen.', _de[REVIEW_HEADING] = 'Dokument aufgenommen', _de[MOVE_BACK] = 'Gehen Sie zurück und stellen Sie sicher, dass alle 4 Kanten des Blatts sichtbar sind.', _de[MOVE_CLOSER] = 'Kommen Sie näher und füllen Sie den Rahmen mit dem gesamten Blatt aus.', _de[EYES_CLOSED] = 'Augen offen halten...', _de[HAND_OVER_FACE] = 'Hand vom Gesicht nehmen...', _de),
|
|
11238
|
-
es: (_es = {}, _es[SELFIE_RECOVERY_HINT] = 'Tenemos dificultades para comprobar la iluminación. Mantenga el rostro centrado y no se mueva. Seguiremos comprobando su posición.', _es[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar con la iluminación actual', _es[MANUAL_CAPTURE_HINT] = 'La captura automática tiene dificultades. Toque el botón para tomar la foto usted mismo.', _es[REVIEW_HEADING] = 'Documento capturado', _es[MOVE_BACK] = 'Aléjese y asegúrese de que los 4 bordes de la hoja sean visibles.', _es[MOVE_CLOSER] = 'Acérquese y llene el encuadre con la hoja completa.', _es[EYES_CLOSED] = 'Hay que mantener los ojos abiertos...', _es[HAND_OVER_FACE] = 'Hay que retirar la mano de la cara...', _es),
|
|
11239
|
-
fr: (_fr = {}, _fr[SELFIE_RECOVERY_HINT] = 'Nous avons du mal à vérifier l’éclairage. Gardez votre visage centré et restez immobile. Nous vérifierons toujours votre position.', _fr[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuer avec cet éclairage', _fr[MANUAL_CAPTURE_HINT] = 'La capture automatique rencontre des difficultés. Appuyez sur le bouton pour prendre la photo vous-même.', _fr[REVIEW_HEADING] = 'Document capturé', _fr[MOVE_BACK] = 'Reculez et assurez-vous que les 4 bords de la page sont visibles.', _fr[MOVE_CLOSER] = 'Rapprochez-vous et remplissez le cadre avec la page entière.', _fr[EYES_CLOSED] = 'Gardez les yeux ouverts...', _fr[HAND_OVER_FACE] = 'Retirez votre main de votre visage...', _fr),
|
|
11240
|
-
it: (_it = {}, _it[SELFIE_RECOVERY_HINT] = 'Abbiamo difficoltà a verificare l’illuminazione. Mantieni il viso centrato e resta fermo. Continueremo a verificare la tua posizione.', _it[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continua con la luce attuale', _it[MANUAL_CAPTURE_HINT] = 'La cattura automatica sta avendo difficoltà. Tocca il pulsante per scattare la foto manualmente.', _it[REVIEW_HEADING] = 'Documento acquisito', _it[MOVE_BACK] = 'Allontanati e assicurati che tutti e 4 i bordi del foglio siano visibili.', _it[MOVE_CLOSER] = "Avvicinati e riempi l'inquadratura con l'intero foglio.", _it[EYES_CLOSED] = 'Tenere gli occhi aperti...', _it[HAND_OVER_FACE] = 'Togliere la mano dal viso...', _it),
|
|
11241
|
-
ja: (_ja = {}, _ja[SELFIE_RECOVERY_HINT] = '照明の確認がうまくできません。顔を中央に保ち、動かないでください。顔の位置は引き続き確認します。', _ja[CONTINUE_WITH_CURRENT_LIGHTING] = '現在の照明で続行', _ja[MANUAL_CAPTURE_HINT] = '自動撮影がうまくいきません。ボタンを押してご自身で撮影してください。', _ja[REVIEW_HEADING] = '書類を撮影しました', _ja[MOVE_BACK] = '離れて、書類の4つの端がすべて見えるようにしてください。', _ja[MOVE_CLOSER] = '近づいて、書類全体で画面いっぱいに表示してください。', _ja[EYES_CLOSED] = '目を開けたままにしてください…', _ja[HAND_OVER_FACE] = '顔から手を離してください…', _ja),
|
|
11242
|
-
pt: (_pt = {}, _pt[SELFIE_RECOVERY_HINT] = 'Estamos com dificuldade para verificar a iluminação. Mantenha o rosto centralizado e fique imóvel. Continuaremos verificando sua posição.', _pt[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar com a iluminação atual', _pt[MANUAL_CAPTURE_HINT] = 'A captura automática está com dificuldades. Toque no botão para tirar a foto você mesmo.', _pt[REVIEW_HEADING] = 'Documento capturado', _pt[MOVE_BACK] = 'Afaste-se e certifique-se de que as 4 bordas da folha estejam visíveis.', _pt[MOVE_CLOSER] = 'Aproxime-se e preencha o quadro com a folha inteira.', _pt[EYES_CLOSED] = 'Mantenha os olhos abertos...', _pt[HAND_OVER_FACE] = 'Tire a mão do rosto...', _pt),
|
|
11243
|
-
ru: (_ru = {}, _ru[SELFIE_RECOVERY_HINT] = 'Нам не удаётся проверить освещение. Держите лицо по центру и не двигайтесь. Мы продолжим проверять положение лица.', _ru[CONTINUE_WITH_CURRENT_LIGHTING] = 'Продолжить с текущим освещением', _ru[MANUAL_CAPTURE_HINT] = 'Автоматическая съёмка не справляется. Нажмите кнопку, чтобы сделать снимок самостоятельно.', _ru[REVIEW_HEADING] = 'Документ снят', _ru[MOVE_BACK] = 'Отойдите назад и убедитесь, что видны все 4 края листа.', _ru[MOVE_CLOSER] = 'Подойдите ближе и заполните кадр всем листом.', _ru[EYES_CLOSED] = 'Не закрывайте глаза…', _ru[HAND_OVER_FACE] = 'Уберите руку от лица…', _ru),
|
|
11244
|
-
zh: (_zh = {}, _zh[SELFIE_RECOVERY_HINT] = '我們無法順利檢查光線。請將臉部保持在中央並保持不動。我們仍會檢查您的位置。', _zh[CONTINUE_WITH_CURRENT_LIGHTING] = '使用目前的光線繼續', _zh[MANUAL_CAPTURE_HINT] = '自動拍攝遇到困難。請點選按鈕自行拍攝。', _zh[REVIEW_HEADING] = '已拍攝文件', _zh[MOVE_BACK] = '後退一些,確保紙張的四個邊緣都清晰可見。', _zh[MOVE_CLOSER] = '靠近一些,讓整張紙填滿畫面。', _zh[EYES_CLOSED] = '請保持雙眼睜開...', _zh[HAND_OVER_FACE] = '請將手從臉上移開...', _zh)
|
|
11239
|
+
de: (_de = {}, _de[SELFIE_RECOVERY_HINT] = 'Wir haben Schwierigkeiten, die Beleuchtung zu prüfen. Halten Sie Ihr Gesicht mittig und bleiben Sie ruhig. Wir prüfen weiterhin Ihre Position.', _de[CONTINUE_WITH_CURRENT_LIGHTING] = 'Mit aktueller Beleuchtung fortfahren', _de[MANUAL_CAPTURE_HINT] = 'Die automatische Aufnahme hat Schwierigkeiten. Tippen Sie auf die Taste, um das Foto selbst aufzunehmen.', _de[REVIEW_HEADING] = 'Dokument aufgenommen', _de[MOVE_BACK] = 'Gehen Sie zurück und stellen Sie sicher, dass alle 4 Kanten des Blatts sichtbar sind.', _de[MOVE_CLOSER] = 'Kommen Sie näher und füllen Sie den Rahmen mit dem gesamten Blatt aus.', _de[EYES_CLOSED] = 'Augen offen halten...', _de[HAND_OVER_FACE] = 'Hand vom Gesicht nehmen...', _de[STARTING_CAMERA] = 'Kamera wird gestartet...', _de),
|
|
11240
|
+
es: (_es = {}, _es[SELFIE_RECOVERY_HINT] = 'Tenemos dificultades para comprobar la iluminación. Mantenga el rostro centrado y no se mueva. Seguiremos comprobando su posición.', _es[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar con la iluminación actual', _es[MANUAL_CAPTURE_HINT] = 'La captura automática tiene dificultades. Toque el botón para tomar la foto usted mismo.', _es[REVIEW_HEADING] = 'Documento capturado', _es[MOVE_BACK] = 'Aléjese y asegúrese de que los 4 bordes de la hoja sean visibles.', _es[MOVE_CLOSER] = 'Acérquese y llene el encuadre con la hoja completa.', _es[EYES_CLOSED] = 'Hay que mantener los ojos abiertos...', _es[HAND_OVER_FACE] = 'Hay que retirar la mano de la cara...', _es[STARTING_CAMERA] = 'Iniciando la cámara...', _es),
|
|
11241
|
+
fr: (_fr = {}, _fr[SELFIE_RECOVERY_HINT] = 'Nous avons du mal à vérifier l’éclairage. Gardez votre visage centré et restez immobile. Nous vérifierons toujours votre position.', _fr[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuer avec cet éclairage', _fr[MANUAL_CAPTURE_HINT] = 'La capture automatique rencontre des difficultés. Appuyez sur le bouton pour prendre la photo vous-même.', _fr[REVIEW_HEADING] = 'Document capturé', _fr[MOVE_BACK] = 'Reculez et assurez-vous que les 4 bords de la page sont visibles.', _fr[MOVE_CLOSER] = 'Rapprochez-vous et remplissez le cadre avec la page entière.', _fr[EYES_CLOSED] = 'Gardez les yeux ouverts...', _fr[HAND_OVER_FACE] = 'Retirez votre main de votre visage...', _fr[STARTING_CAMERA] = 'Démarrage de la caméra...', _fr),
|
|
11242
|
+
it: (_it = {}, _it[SELFIE_RECOVERY_HINT] = 'Abbiamo difficoltà a verificare l’illuminazione. Mantieni il viso centrato e resta fermo. Continueremo a verificare la tua posizione.', _it[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continua con la luce attuale', _it[MANUAL_CAPTURE_HINT] = 'La cattura automatica sta avendo difficoltà. Tocca il pulsante per scattare la foto manualmente.', _it[REVIEW_HEADING] = 'Documento acquisito', _it[MOVE_BACK] = 'Allontanati e assicurati che tutti e 4 i bordi del foglio siano visibili.', _it[MOVE_CLOSER] = "Avvicinati e riempi l'inquadratura con l'intero foglio.", _it[EYES_CLOSED] = 'Tenere gli occhi aperti...', _it[HAND_OVER_FACE] = 'Togliere la mano dal viso...', _it[STARTING_CAMERA] = 'Avvio della fotocamera...', _it),
|
|
11243
|
+
ja: (_ja = {}, _ja[SELFIE_RECOVERY_HINT] = '照明の確認がうまくできません。顔を中央に保ち、動かないでください。顔の位置は引き続き確認します。', _ja[CONTINUE_WITH_CURRENT_LIGHTING] = '現在の照明で続行', _ja[MANUAL_CAPTURE_HINT] = '自動撮影がうまくいきません。ボタンを押してご自身で撮影してください。', _ja[REVIEW_HEADING] = '書類を撮影しました', _ja[MOVE_BACK] = '離れて、書類の4つの端がすべて見えるようにしてください。', _ja[MOVE_CLOSER] = '近づいて、書類全体で画面いっぱいに表示してください。', _ja[EYES_CLOSED] = '目を開けたままにしてください…', _ja[HAND_OVER_FACE] = '顔から手を離してください…', _ja[STARTING_CAMERA] = 'カメラを起動しています…', _ja),
|
|
11244
|
+
pt: (_pt = {}, _pt[SELFIE_RECOVERY_HINT] = 'Estamos com dificuldade para verificar a iluminação. Mantenha o rosto centralizado e fique imóvel. Continuaremos verificando sua posição.', _pt[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar com a iluminação atual', _pt[MANUAL_CAPTURE_HINT] = 'A captura automática está com dificuldades. Toque no botão para tirar a foto você mesmo.', _pt[REVIEW_HEADING] = 'Documento capturado', _pt[MOVE_BACK] = 'Afaste-se e certifique-se de que as 4 bordas da folha estejam visíveis.', _pt[MOVE_CLOSER] = 'Aproxime-se e preencha o quadro com a folha inteira.', _pt[EYES_CLOSED] = 'Mantenha os olhos abertos...', _pt[HAND_OVER_FACE] = 'Tire a mão do rosto...', _pt[STARTING_CAMERA] = 'Iniciando a câmera...', _pt),
|
|
11245
|
+
ru: (_ru = {}, _ru[SELFIE_RECOVERY_HINT] = 'Нам не удаётся проверить освещение. Держите лицо по центру и не двигайтесь. Мы продолжим проверять положение лица.', _ru[CONTINUE_WITH_CURRENT_LIGHTING] = 'Продолжить с текущим освещением', _ru[MANUAL_CAPTURE_HINT] = 'Автоматическая съёмка не справляется. Нажмите кнопку, чтобы сделать снимок самостоятельно.', _ru[REVIEW_HEADING] = 'Документ снят', _ru[MOVE_BACK] = 'Отойдите назад и убедитесь, что видны все 4 края листа.', _ru[MOVE_CLOSER] = 'Подойдите ближе и заполните кадр всем листом.', _ru[EYES_CLOSED] = 'Не закрывайте глаза…', _ru[HAND_OVER_FACE] = 'Уберите руку от лица…', _ru[STARTING_CAMERA] = 'Запуск камеры…', _ru),
|
|
11246
|
+
zh: (_zh = {}, _zh[SELFIE_RECOVERY_HINT] = '我們無法順利檢查光線。請將臉部保持在中央並保持不動。我們仍會檢查您的位置。', _zh[CONTINUE_WITH_CURRENT_LIGHTING] = '使用目前的光線繼續', _zh[MANUAL_CAPTURE_HINT] = '自動拍攝遇到困難。請點選按鈕自行拍攝。', _zh[REVIEW_HEADING] = '已拍攝文件', _zh[MOVE_BACK] = '後退一些,確保紙張的四個邊緣都清晰可見。', _zh[MOVE_CLOSER] = '靠近一些,讓整張紙填滿畫面。', _zh[EYES_CLOSED] = '請保持雙眼睜開...', _zh[HAND_OVER_FACE] = '請將手從臉上移開...', _zh[STARTING_CAMERA] = '正在啟動相機...', _zh)
|
|
11245
11247
|
};
|
|
11246
11248
|
/** Base entries win nothing — the supplement may only ADD. See `noShadowing`. */
|
|
11247
11249
|
function withThreeOhTranslations(lang, base) {
|
|
@@ -11595,7 +11597,7 @@
|
|
|
11595
11597
|
return ctx;
|
|
11596
11598
|
}
|
|
11597
11599
|
|
|
11598
|
-
var _templateObject
|
|
11600
|
+
var _templateObject$10, _templateObject2$S;
|
|
11599
11601
|
var _excluded$j = ["isRearFacing"];
|
|
11600
11602
|
var CameraVideoTag = /*#__PURE__*/React.forwardRef(function CameraVideoTag(_ref, ref) {
|
|
11601
11603
|
var isRearFacing = _ref.isRearFacing,
|
|
@@ -11608,10 +11610,10 @@
|
|
|
11608
11610
|
"$isRearFacing": isRearFacing
|
|
11609
11611
|
}, props));
|
|
11610
11612
|
});
|
|
11611
|
-
var FullscreenVideoTag = styled.video(_templateObject
|
|
11613
|
+
var FullscreenVideoTag = styled.video(_templateObject$10 || (_templateObject$10 = _taggedTemplateLiteralLoose(["\n transform: ", ";\n transform-style: preserve-3d;\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n background: black;\n z-index: -2;\n"])), function (props) {
|
|
11612
11614
|
return props.$isRearFacing ? '' : 'scaleX(-1)';
|
|
11613
11615
|
});
|
|
11614
|
-
var CameraFeedWrapper = styled.div(_templateObject2$
|
|
11616
|
+
var CameraFeedWrapper = styled.div(_templateObject2$S || (_templateObject2$S = _taggedTemplateLiteralLoose(["\n /* Keep CameraVideoTag's legacy negative z-index above opaque flow shells. */\n isolation: isolate;\n\n ", "\n\n /* Last, so it wins over both branches' display. */\n ", "\n"])), function (props) {
|
|
11615
11617
|
return props.$mode === 'snapToGuides' ? "display: flex;\n position: absolute;\n z-index: -2;\n left: " + props.$x + "px;\n top: " + props.$y + "px;\n width: " + props.$w + "px;\n height: " + props.$h + "px;\n /* Match the mask's hole when the guide publishes a radius. The mask\n sits above this feed (-1 vs -2), so square corners here show through\n as dimmed wedges outside the rounded hole. Guides that publish no\n radius keep the previous unclipped behaviour. */\n " + (props.$radius ? "border-radius: " + props.$radius + "px; overflow: hidden;" : '') : "display: flex;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;";
|
|
11616
11618
|
}, function (props) {
|
|
11617
11619
|
return props.$hidden ? 'display: none;' : '';
|
|
@@ -11666,7 +11668,7 @@
|
|
|
11666
11668
|
});
|
|
11667
11669
|
}
|
|
11668
11670
|
|
|
11669
|
-
var _templateObject
|
|
11671
|
+
var _templateObject$$, _templateObject2$R, _templateObject3$E, _templateObject4$z, _templateObject5$t, _templateObject6$l;
|
|
11670
11672
|
function _createForOfIteratorHelperLoose$v(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray$v(r)) || e) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: true } : { done: false, value: r[o++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11671
11673
|
function _unsupportedIterableToArray$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$v(r, a) : void 0; } }
|
|
11672
11674
|
function _arrayLikeToArray$v(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -11688,8 +11690,8 @@
|
|
|
11688
11690
|
if (!portalLocation) return element;
|
|
11689
11691
|
return /*#__PURE__*/reactDom.createPortal(element, portalLocation);
|
|
11690
11692
|
}
|
|
11691
|
-
var DebugStatsPaneDiv = styled.span(_templateObject
|
|
11692
|
-
var ObjectDetectionDebugOverlayDiv = styled.div(_templateObject2$
|
|
11693
|
+
var DebugStatsPaneDiv = styled.span(_templateObject$$ || (_templateObject$$ = _taggedTemplateLiteralLoose(["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n margin-right: 20px;\n padding: 8px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 10002;\n pointer-events: none;\n"])));
|
|
11694
|
+
var ObjectDetectionDebugOverlayDiv = styled.div(_templateObject2$R || (_templateObject2$R = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 1001;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n pointer-events: none;\n ", "\n transform-style: preserve-3d;\n"])), function (_ref3) {
|
|
11693
11695
|
var $flipX = _ref3.$flipX;
|
|
11694
11696
|
return $flipX ? 'transform: scaleX(-1);' : '';
|
|
11695
11697
|
});
|
|
@@ -12001,7 +12003,7 @@
|
|
|
12001
12003
|
});
|
|
12002
12004
|
}
|
|
12003
12005
|
|
|
12004
|
-
var _templateObject$
|
|
12006
|
+
var _templateObject$_;
|
|
12005
12007
|
/**
|
|
12006
12008
|
* Over WebKit's 10px "thin border" cutoff (`LocalFrameView::fixedContainerEdges`).
|
|
12007
12009
|
* At or under it, Safari never reads the strip's `background-color`: it samples
|
|
@@ -12104,7 +12106,7 @@
|
|
|
12104
12106
|
}, "bottom:" + bottomColor)]
|
|
12105
12107
|
}), target);
|
|
12106
12108
|
}
|
|
12107
|
-
var EdgeStrip = styled.div(_templateObject$
|
|
12109
|
+
var EdgeStrip = styled.div(_templateObject$_ || (_templateObject$_ = _taggedTemplateLiteralLoose(["\n position: fixed;\n left: 0;\n right: 0;\n ", ": 0;\n height: ", "px;\n background: ", ";\n ", "\n pointer-events: none;\n"])), function (_ref2) {
|
|
12108
12110
|
var $edge = _ref2.$edge;
|
|
12109
12111
|
return $edge;
|
|
12110
12112
|
}, EDGE_STRIP_PX, function (_ref3) {
|
|
@@ -12115,8 +12117,13 @@
|
|
|
12115
12117
|
return $hidden ? 'opacity: 0;' : '';
|
|
12116
12118
|
});
|
|
12117
12119
|
|
|
12118
|
-
var _templateObject$
|
|
12120
|
+
var _templateObject$Z, _templateObject2$Q;
|
|
12119
12121
|
var _excluded$i = ["children", "className", "colors", "disabled", "finished", "variant"];
|
|
12122
|
+
/**
|
|
12123
|
+
* The SDK's action button. `ladda-button` / `ladda-label` are kept as class
|
|
12124
|
+
* hooks from when Ladda drew the loading state, since 2.x customer CSS may
|
|
12125
|
+
* target them.
|
|
12126
|
+
*/
|
|
12120
12127
|
var LoaderButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
12121
12128
|
var children = _ref.children,
|
|
12122
12129
|
className = _ref.className,
|
|
@@ -12127,49 +12134,14 @@
|
|
|
12127
12134
|
_ref$variant = _ref.variant,
|
|
12128
12135
|
variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
|
|
12129
12136
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$i);
|
|
12130
|
-
var
|
|
12131
|
-
var
|
|
12132
|
-
var _useState = React.useState(false),
|
|
12133
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
12134
|
-
laddaLoaded = _useState2[0],
|
|
12135
|
-
setLaddaLoaded = _useState2[1];
|
|
12136
|
-
// Expose the button element to the parent via ref
|
|
12137
|
-
React.useImperativeHandle(ref, function () {
|
|
12138
|
-
return buttonRef.current;
|
|
12139
|
-
}, []);
|
|
12140
|
-
React.useEffect(function () {
|
|
12141
|
-
if (laddaLoaded || finished) return;
|
|
12142
|
-
var interval;
|
|
12143
|
-
var isMounted = true;
|
|
12144
|
-
Promise.resolve().then(function () { return ladda; }).then(function (Ladda) {
|
|
12145
|
-
if (!buttonRef.current || !isMounted) return;
|
|
12146
|
-
laddaRef.current = Ladda.create(buttonRef.current);
|
|
12147
|
-
laddaRef.current.start();
|
|
12148
|
-
setLaddaLoaded(true);
|
|
12149
|
-
var currentProgress = 0;
|
|
12150
|
-
interval = setInterval(function () {
|
|
12151
|
-
var _laddaRef$current;
|
|
12152
|
-
if (currentProgress < 0.9) currentProgress += 0.1;
|
|
12153
|
-
(_laddaRef$current = laddaRef.current) == null || _laddaRef$current.setProgress(currentProgress);
|
|
12154
|
-
}, 250);
|
|
12155
|
-
});
|
|
12156
|
-
return function () {
|
|
12157
|
-
var _laddaRef$current2;
|
|
12158
|
-
isMounted = false;
|
|
12159
|
-
(_laddaRef$current2 = laddaRef.current) == null || _laddaRef$current2.remove();
|
|
12160
|
-
clearInterval(interval);
|
|
12161
|
-
};
|
|
12162
|
-
}, [finished, laddaLoaded]);
|
|
12163
|
-
React.useEffect(function () {
|
|
12164
|
-
var _laddaRef$current3;
|
|
12165
|
-
if (laddaLoaded && finished) (_laddaRef$current3 = laddaRef.current) == null || _laddaRef$current3.stop();
|
|
12166
|
-
}, [finished, laddaLoaded]);
|
|
12137
|
+
var loading = finished === false;
|
|
12138
|
+
var inert = disabled || loading;
|
|
12167
12139
|
return jsx(StyledButton, _extends({
|
|
12168
|
-
className: "ladda-button " + className + " " + (
|
|
12169
|
-
"data-style": "expand-right",
|
|
12140
|
+
className: "ladda-button " + className + " " + (inert ? 'disabled' : ''),
|
|
12170
12141
|
type: "button",
|
|
12171
|
-
disabled:
|
|
12172
|
-
|
|
12142
|
+
disabled: inert,
|
|
12143
|
+
"aria-busy": loading,
|
|
12144
|
+
ref: ref,
|
|
12173
12145
|
"$backgroundColor": colors.backgroundColor,
|
|
12174
12146
|
"$textColor": colors.textColor,
|
|
12175
12147
|
"$disabledBackgroundColor": colors.loadingBackgroundColor,
|
|
@@ -12183,16 +12155,19 @@
|
|
|
12183
12155
|
}));
|
|
12184
12156
|
});
|
|
12185
12157
|
LoaderButton.displayName = 'LoaderButton';
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
})
|
|
12158
|
+
// From just off the left edge to just off the right: the bar is 38% wide, so
|
|
12159
|
+
// 265% of its own width carries it clear.
|
|
12160
|
+
var track = keyframes(_templateObject$Z || (_templateObject$Z = _taggedTemplateLiteralLoose(["\n from { transform: translateX(-100%); }\n to { transform: translateX(265%); }\n"])));
|
|
12161
|
+
var StyledButton = styled.button(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n ", "\n\n position: relative;\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n\n /* Keeps the label above the loading bar below. */\n .ladda-label {\n position: relative;\n z-index: 3;\n }\n\n /* The loading state: a short bar glides along the inside of the bottom\n edge, clipped to the button's shape, in the label's colour. The label\n stays put, so callers whose label carries progress keep it readable.\n Transform-only, so it composites without repainting. */\n &[aria-busy='true'] {\n overflow: hidden;\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n bottom: 0;\n width: 38%;\n height: 3px;\n border-radius: 3px;\n background: currentColor;\n animation: ", " 1.5s cubic-bezier(0.65, 0, 0.35, 1) infinite;\n }\n\n @media (prefers-reduced-motion: reduce) {\n &::after {\n animation: none;\n width: 100%;\n opacity: 0.4;\n }\n }\n }\n"])), function (props) {
|
|
12162
|
+
var _props$theme$buttons, _ref2, _props$$textColor, _props$theme$buttons2, _props$$variant, _ref3, _props$$backgroundCol, _props$theme$buttons3, _props$$variant2, _ref4, _props$$disabledTextC, _props$theme$buttons4, _ref5, _props$$disabledBackg, _props$theme$buttons5;
|
|
12163
|
+
return ((_props$theme$buttons = props.theme.buttons) == null ? void 0 : _props$theme$buttons.style) === 'bootstrap' && "\n border-radius: 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: color 0.15s ease-in-out, background-color 0.15s ease-in-out,\n // border-color 0.15s ease-in-out, 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-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-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: " + ((_ref2 = (_props$$textColor = props.$textColor) != null ? _props$$textColor : (_props$theme$buttons2 = props.theme.buttons) == null || (_props$theme$buttons2 = _props$theme$buttons2[(_props$$variant = props.$variant) != null ? _props$$variant : 'primary']) == null ? void 0 : _props$theme$buttons2.textColor) != null ? _ref2 : '#fff') + ";\n --bs-btn-bg: " + ((_ref3 = (_props$$backgroundCol = props.$backgroundColor) != null ? _props$$backgroundCol : (_props$theme$buttons3 = props.theme.buttons) == null || (_props$theme$buttons3 = _props$theme$buttons3[(_props$$variant2 = props.$variant) != null ? _props$$variant2 : 'primary']) == null ? void 0 : _props$theme$buttons3.backgroundColor) != null ? _ref3 : '#0d6efd') + ";\n --bs-btn-border-color: var(--bs-btn-bg);\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: " + ((_ref4 = (_props$$disabledTextC = props.$disabledTextColor) != null ? _props$$disabledTextC : (_props$theme$buttons4 = props.theme.buttons) == null || (_props$theme$buttons4 = _props$theme$buttons4.loading) == null ? void 0 : _props$theme$buttons4.textColor) != null ? _ref4 : '#fff') + ";\n --bs-btn-disabled-bg: " + ((_ref5 = (_props$$disabledBackg = props.$disabledBackgroundColor) != null ? _props$$disabledBackg : (_props$theme$buttons5 = props.theme.buttons) == null || (_props$theme$buttons5 = _props$theme$buttons5.loading) == null ? void 0 : _props$theme$buttons5.backgroundColor) != null ? _ref5 : 'gray') + ";\n --bs-btn-disabled-border-color: var(--bs-btn-disabled-bg);\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 ";
|
|
12164
|
+
}, track);
|
|
12190
12165
|
|
|
12191
|
-
var _templateObject$
|
|
12192
|
-
var ButtonsRow$2 = styled.div(_templateObject$
|
|
12166
|
+
var _templateObject$Y;
|
|
12167
|
+
var ButtonsRow$2 = styled.div(_templateObject$Y || (_templateObject$Y = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n text-align: left;\n"])));
|
|
12193
12168
|
|
|
12194
|
-
var _templateObject$
|
|
12195
|
-
var GuidanceMessageContainerDiv = styled.div(_templateObject$
|
|
12169
|
+
var _templateObject$X, _templateObject2$P;
|
|
12170
|
+
var GuidanceMessageContainerDiv = styled.div(_templateObject$X || (_templateObject$X = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n padding: 0 10%;\n box-sizing: border-box;\n"])), function (_ref) {
|
|
12196
12171
|
var $top = _ref.$top;
|
|
12197
12172
|
return $top != null ? $top : '10%';
|
|
12198
12173
|
}, function (_ref2) {
|
|
@@ -12257,14 +12232,14 @@
|
|
|
12257
12232
|
});
|
|
12258
12233
|
};
|
|
12259
12234
|
|
|
12260
|
-
var _templateObject$
|
|
12261
|
-
var wavesAnimation = keyframes(_templateObject$
|
|
12235
|
+
var _templateObject$W, _templateObject2$O, _templateObject3$D, _templateObject4$y;
|
|
12236
|
+
var wavesAnimation = keyframes(_templateObject$W || (_templateObject$W = _taggedTemplateLiteralLoose(["\n 0% {\n opacity: 0;\n transform: scale3d(1, 1, 1);\n }\n 80% {\n opacity: 1;\n }\n 100% {\n transform: scale3d(2, 2, 1);\n opacity: 0;\n }\n"])));
|
|
12262
12237
|
var progressBarAnimation = keyframes(_templateObject2$O || (_templateObject2$O = _taggedTemplateLiteralLoose(["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"])));
|
|
12263
12238
|
keyframes(_templateObject3$D || (_templateObject3$D = _taggedTemplateLiteralLoose(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"])));
|
|
12264
12239
|
keyframes(_templateObject4$y || (_templateObject4$y = _taggedTemplateLiteralLoose(["\n to {\n stroke-dashoffset: 0;\n }\n"])));
|
|
12265
12240
|
|
|
12266
|
-
var _templateObject$
|
|
12267
|
-
var OverlayContainer = styled.div(_templateObject$
|
|
12241
|
+
var _templateObject$V, _templateObject2$N, _templateObject3$C, _templateObject4$x, _templateObject5$s, _templateObject6$k, _templateObject7$h, _templateObject8$d, _templateObject9$d, _templateObject0$b, _templateObject1$a, _templateObject10$9, _templateObject11$7, _templateObject12$6, _templateObject13$6, _templateObject14$6, _templateObject15$5, _templateObject16$4, _templateObject17$3, _templateObject18$3, _templateObject19$3, _templateObject20$3;
|
|
12242
|
+
var OverlayContainer = styled.div(_templateObject$V || (_templateObject$V = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n background: ", ";\n ", "\n\n z-index: 10000;\n"])), function (props) {
|
|
12268
12243
|
return props.theme.background ? "" + props.theme.background : "white";
|
|
12269
12244
|
}, function (props) {
|
|
12270
12245
|
return props.theme.textColor ? "color: " + props.theme.textColor + ";" : "";
|
|
@@ -12304,7 +12279,7 @@
|
|
|
12304
12279
|
return props.theme.padding ? "box-sizing: border-box; padding: " + props.theme.padding + ";" : "";
|
|
12305
12280
|
});
|
|
12306
12281
|
var LoadingOverlayGuidanceMessage = styled(GuidanceMessage)(_templateObject1$a || (_templateObject1$a = _taggedTemplateLiteralLoose(["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n"])));
|
|
12307
|
-
var LoadingOverlayImageContainer = styled(OverlayImageContainer)(_templateObject10$
|
|
12282
|
+
var LoadingOverlayImageContainer = styled(OverlayImageContainer)(_templateObject10$9 || (_templateObject10$9 = _taggedTemplateLiteralLoose(["\n padding: 0;\n max-height: 100%;\n pointer-events: none;\n"])));
|
|
12308
12283
|
var LoadingOverlayProgressBarBackground = styled.div.attrs({
|
|
12309
12284
|
className: 'loading-overlay-progress-bar-background'
|
|
12310
12285
|
})(_templateObject11$7 || (_templateObject11$7 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
|
|
@@ -12439,8 +12414,8 @@
|
|
|
12439
12414
|
|
|
12440
12415
|
var _excluded$h = ["children", "status", "borderWidth", "borderRadius", "borderColor", "aspectRatio", "progress", "guideBoxDisabled"],
|
|
12441
12416
|
_excluded2$5 = ["borderRadius", "borderColor", "borderWidth", "borderOpacity", "progress", "isProgressBar", "scaleBorderRadius"];
|
|
12442
|
-
var _templateObject$
|
|
12443
|
-
var IdCardGuideImageContainer = styled(IdCardBorder)(_templateObject$
|
|
12417
|
+
var _templateObject$U, _templateObject2$M, _templateObject3$B, _templateObject4$w, _templateObject5$r, _templateObject6$j, _templateObject7$g;
|
|
12418
|
+
var IdCardGuideImageContainer = styled(IdCardBorder)(_templateObject$U || (_templateObject$U = _taggedTemplateLiteralLoose(["\n position: relative;\n ", "\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
|
|
12444
12419
|
return props.$isVisible ? '' : 'opacity: 0;';
|
|
12445
12420
|
}, function (props) {
|
|
12446
12421
|
return props.$isMobile ? props.$isLandscape ? 'height: 100%;' : 'width: 80%;' : props.$isLandscape ? 'height: 70%;' : 'width: 82%;';
|
|
@@ -12736,7 +12711,7 @@
|
|
|
12736
12711
|
}, [images]);
|
|
12737
12712
|
}
|
|
12738
12713
|
|
|
12739
|
-
var _templateObject$
|
|
12714
|
+
var _templateObject$T;
|
|
12740
12715
|
var FlipIdPrompt = function FlipIdPrompt(_ref) {
|
|
12741
12716
|
var _ref$images = _ref.images,
|
|
12742
12717
|
images = _ref$images === void 0 ? defaultIdCaptureGuideImages : _ref$images,
|
|
@@ -12833,11 +12808,11 @@
|
|
|
12833
12808
|
})]
|
|
12834
12809
|
});
|
|
12835
12810
|
};
|
|
12836
|
-
var Wrapper$1 = styled.div(_templateObject$
|
|
12811
|
+
var Wrapper$1 = styled.div(_templateObject$T || (_templateObject$T = _taggedTemplateLiteralLoose(["\n align-items: center;\n justify-content: center;\n display: flex;\n position: absolute;\n margin: auto;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
|
|
12837
12812
|
return props.$isMobile ? props.$isLandscape ? 'height: 100%;' : 'width: 80%;' : props.$isLandscape ? 'height: 70%;' : 'width: 82%;';
|
|
12838
12813
|
});
|
|
12839
12814
|
|
|
12840
|
-
var _templateObject$
|
|
12815
|
+
var _templateObject$S, _templateObject2$L, _templateObject3$A, _templateObject4$v, _templateObject5$q, _templateObject6$i, _templateObject7$f, _templateObject8$c, _templateObject9$c;
|
|
12841
12816
|
var IdCaptureGuideOverlay = function IdCaptureGuideOverlay(_ref) {
|
|
12842
12817
|
var _theme$idCapture$guid, _theme$idCapture, _theme$idCapture$guid2, _theme$idCapture2, _theme$idCapture$guid3, _theme$idCapture3, _theme$idCapture$guid4, _theme$idCapture4, _theme$idCapture$guid5, _theme$idCapture5;
|
|
12843
12818
|
var _ref$classNames = _ref.classNames,
|
|
@@ -12993,7 +12968,7 @@
|
|
|
12993
12968
|
return v;
|
|
12994
12969
|
}).join(' ');
|
|
12995
12970
|
};
|
|
12996
|
-
var StyledPageContainer = styled.div(_templateObject$
|
|
12971
|
+
var StyledPageContainer = styled.div(_templateObject$S || (_templateObject$S = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1000;\n overflow: hidden;\n"])));
|
|
12997
12972
|
var GuidesContainer = styled.div(_templateObject2$L || (_templateObject2$L = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-flow: column nowrap;\n width: 100%;\n height: 100%;\n"])));
|
|
12998
12973
|
var GuideCenterRow = styled.div(_templateObject3$A || (_templateObject3$A = _taggedTemplateLiteralLoose(["\n position: relative;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-items: center;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n min-height: 0;\n flex: 1;\n"])));
|
|
12999
12974
|
var GuideRegion = styled.div(_templateObject4$v || (_templateObject4$v = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: end;\n width: 100%;\n position: relative;\n z-index: 1000;\n background: ", ";\n color: ", ";\n text-align: center;\n ", "\n ", "\n"])), function (props) {
|
|
@@ -13026,7 +13001,7 @@
|
|
|
13026
13001
|
/** The mask colour when neither the prop nor the theme sets one. */
|
|
13027
13002
|
var OVERLAY_GUIDE_MASK_DEFAULT = 'rgba(0, 0, 0, 0.5)';
|
|
13028
13003
|
|
|
13029
|
-
var _templateObject$
|
|
13004
|
+
var _templateObject$R, _templateObject2$K, _templateObject3$z, _templateObject4$u;
|
|
13030
13005
|
var IdCaptureFitGuide = function IdCaptureFitGuide(_ref) {
|
|
13031
13006
|
var _theme$idCapture$guid, _theme$idCapture, _theme$idCapture$guid5, _theme$idCapture5, _theme$idCapture$guid6, _theme$idCapture6, _theme$idCapture$guid7, _theme$idCapture7;
|
|
13032
13007
|
var aspectRatio = _ref.aspectRatio,
|
|
@@ -13263,7 +13238,7 @@
|
|
|
13263
13238
|
})]
|
|
13264
13239
|
});
|
|
13265
13240
|
};
|
|
13266
|
-
var CanvasWrapper$1 = styled.div(_templateObject$
|
|
13241
|
+
var CanvasWrapper$1 = styled.div(_templateObject$R || (_templateObject$R = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n background-clip: padding-box;\n /* The default -1 puts the mask behind a 'fullscreen' camera feed, which hides\n the dimming entirely; it only works because 'snapToGuides' clips the feed to\n the guide rect. Lifting it is opt-in so existing integrations are untouched. */\n ", "\n"])), function (props) {
|
|
13267
13242
|
return props.$aboveCameraFeed ? "z-index: 1;" : "box-shadow: inset 0 0 0 2px " + props.$maskColor + ";\n z-index: -1;";
|
|
13268
13243
|
});
|
|
13269
13244
|
var Canvas$2 = styled.canvas(_templateObject2$K || (_templateObject2$K = _taggedTemplateLiteralLoose(["\n display: block;\n"])));
|
|
@@ -13295,8 +13270,8 @@
|
|
|
13295
13270
|
});
|
|
13296
13271
|
}
|
|
13297
13272
|
|
|
13298
|
-
var _templateObject$
|
|
13299
|
-
var ExitCaptureStyledButton = styled.button(_templateObject$
|
|
13273
|
+
var _templateObject$Q;
|
|
13274
|
+
var ExitCaptureStyledButton = styled.button(_templateObject$Q || (_templateObject$Q = _taggedTemplateLiteralLoose(["\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: 10002;\n border: none;\n border-radius: 4px;\n background: var(--idm-color-secondary-200);\n cursor: pointer;\n padding: 8px;\n box-sizing: border-box;\n display: flex;\n\n &:hover {\n background: #ddd;\n }\n\n & > svg {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n"])));
|
|
13300
13275
|
var ExitCaptureButton = function ExitCaptureButton(_ref) {
|
|
13301
13276
|
var onClick = _ref.onClick,
|
|
13302
13277
|
className = _ref.className;
|
|
@@ -13345,7 +13320,7 @@
|
|
|
13345
13320
|
});
|
|
13346
13321
|
};
|
|
13347
13322
|
|
|
13348
|
-
var _templateObject$
|
|
13323
|
+
var _templateObject$P, _templateObject2$J, _templateObject3$y, _templateObject4$t;
|
|
13349
13324
|
function IdCaptureLoadingGraphic(props) {
|
|
13350
13325
|
var isMobile = window.innerHeight > window.innerWidth;
|
|
13351
13326
|
return isMobile ? jsx(IdCaptureLoadingGraphicMobile, _extends({}, props)) : jsx(IdCaptureLoadingGraphicDesktop, _extends({}, props));
|
|
@@ -13842,7 +13817,7 @@
|
|
|
13842
13817
|
})]
|
|
13843
13818
|
});
|
|
13844
13819
|
}
|
|
13845
|
-
var LoadingGraphicWrapper = styled.div(_templateObject$
|
|
13820
|
+
var LoadingGraphicWrapper = styled.div(_templateObject$P || (_templateObject$P = _taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
|
|
13846
13821
|
var LoadingGraphicSvg = styled.svg(_templateObject2$J || (_templateObject2$J = _taggedTemplateLiteralLoose(["\n margin: auto;\n transform: scale(\n ", "\n );\n transform-style: preserve-3d;\n transition:\n transform 0.2s linear,\n border-width 0.2s linear;\n border: ", "px solid\n ", ";\n max-height: 80%;\n max-width: 80%;\n"])), function (props) {
|
|
13847
13822
|
return props.$frame > 1 ? 1 : props.$frame === 1 ? 1.25 : 0.75;
|
|
13848
13823
|
}, function (props) {
|
|
@@ -14041,7 +14016,7 @@
|
|
|
14041
14016
|
}, [enabled, ready]);
|
|
14042
14017
|
};
|
|
14043
14018
|
|
|
14044
|
-
var _templateObject$
|
|
14019
|
+
var _templateObject$O;
|
|
14045
14020
|
var LoadingSpinnerContext = /*#__PURE__*/React.createContext(undefined);
|
|
14046
14021
|
function LoadingSpinnerProvider(_ref) {
|
|
14047
14022
|
var spinner = _ref.spinner,
|
|
@@ -14109,9 +14084,9 @@
|
|
|
14109
14084
|
}
|
|
14110
14085
|
// `display: contents` while empty: an empty flex box still occupies its
|
|
14111
14086
|
// parent's gap/padding, which would offset the fallback it sits next to.
|
|
14112
|
-
var SpinnerSlot = styled.div(_templateObject$
|
|
14087
|
+
var SpinnerSlot = styled.div(_templateObject$O || (_templateObject$O = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:empty {\n display: contents;\n }\n"])));
|
|
14113
14088
|
|
|
14114
|
-
var _templateObject$
|
|
14089
|
+
var _templateObject$N, _templateObject2$I, _templateObject3$x, _templateObject4$s, _templateObject5$p;
|
|
14115
14090
|
var legacyInstructionImageUrl$1 = DEFAULT_CDN_URL$1 + "/WebSDK-Instruction-DL-Capture-3-Portrait.png";
|
|
14116
14091
|
// Module-level so the default `now` prop has a stable identity across
|
|
14117
14092
|
// renders (it sits in useModelWarmingElapsedMs's effect dependency array).
|
|
@@ -14300,7 +14275,7 @@
|
|
|
14300
14275
|
})
|
|
14301
14276
|
});
|
|
14302
14277
|
};
|
|
14303
|
-
var OverlayInner$1 = styled(LoadingOverlayInner)(_templateObject$
|
|
14278
|
+
var OverlayInner$1 = styled(LoadingOverlayInner)(_templateObject$N || (_templateObject$N = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
|
|
14304
14279
|
var _props$theme$idCaptur, _props$theme;
|
|
14305
14280
|
return (_props$theme$idCaptur = (_props$theme = props.theme) == null || (_props$theme = _props$theme.idCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$idCaptur : LOADING_OVERLAY_BACKGROUND_DEFAULT;
|
|
14306
14281
|
}, function (props) {
|
|
@@ -22961,7 +22936,7 @@
|
|
|
22961
22936
|
return bag == null ? void 0 : bag[instructionVerbiageKeys[code]];
|
|
22962
22937
|
}
|
|
22963
22938
|
|
|
22964
|
-
var _templateObject$
|
|
22939
|
+
var _templateObject$M, _templateObject2$H, _templateObject3$w, _templateObject4$r, _templateObject5$o;
|
|
22965
22940
|
var PDF417_ASPECT_RATIO = 3 / 1;
|
|
22966
22941
|
function BarcodeGuideOverlay(_ref) {
|
|
22967
22942
|
var _ref$aspectRatio = _ref.aspectRatio,
|
|
@@ -23091,14 +23066,14 @@
|
|
|
23091
23066
|
})]
|
|
23092
23067
|
});
|
|
23093
23068
|
}
|
|
23094
|
-
var Wrapper = styled.div(_templateObject$
|
|
23069
|
+
var Wrapper = styled.div(_templateObject$M || (_templateObject$M = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 1;\n"])));
|
|
23095
23070
|
var Canvas$1 = styled.canvas(_templateObject2$H || (_templateObject2$H = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
|
|
23096
23071
|
var TextOverlay = styled.div(_templateObject3$w || (_templateObject3$w = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding-top: 48px;\n pointer-events: none;\n z-index: 2;\n"])));
|
|
23097
23072
|
var HeaderText = styled.div(_templateObject4$r || (_templateObject4$r = _taggedTemplateLiteralLoose(["\n color: white;\n font-size: 24px;\n font-weight: 700;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n margin-bottom: 16px;\n"])));
|
|
23098
23073
|
var InstructionText = styled.div(_templateObject5$o || (_templateObject5$o = _taggedTemplateLiteralLoose(["\n color: white;\n font-size: 16px;\n font-weight: 400;\n text-align: center;\n max-width: 300px;\n line-height: 1.4;\n opacity: 0.9;\n"])));
|
|
23099
23074
|
|
|
23100
|
-
var _templateObject$
|
|
23101
|
-
var scaleIn = keyframes(_templateObject$
|
|
23075
|
+
var _templateObject$L, _templateObject2$G, _templateObject3$v, _templateObject4$q, _templateObject5$n, _templateObject6$h;
|
|
23076
|
+
var scaleIn = keyframes(_templateObject$L || (_templateObject$L = _taggedTemplateLiteralLoose(["\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n"])));
|
|
23102
23077
|
var drawCheck = keyframes(_templateObject2$G || (_templateObject2$G = _taggedTemplateLiteralLoose(["\n 0% {\n stroke-dashoffset: 24;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n"])));
|
|
23103
23078
|
styled.div(_templateObject3$v || (_templateObject3$v = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n z-index: 3;\n"])));
|
|
23104
23079
|
styled.div(_templateObject4$q || (_templateObject4$q = _taggedTemplateLiteralLoose(["\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n animation: ", " 0.4s ease-out forwards;\n"])), function (props) {
|
|
@@ -23199,7 +23174,7 @@
|
|
|
23199
23174
|
});
|
|
23200
23175
|
}
|
|
23201
23176
|
|
|
23202
|
-
var _templateObject$
|
|
23177
|
+
var _templateObject$K, _templateObject2$F, _templateObject3$u, _templateObject4$p, _templateObject5$m;
|
|
23203
23178
|
function OverrideWrongDocumentTypeDialog(_ref) {
|
|
23204
23179
|
var visible = _ref.visible,
|
|
23205
23180
|
onOverride = _ref.onOverride,
|
|
@@ -23231,7 +23206,7 @@
|
|
|
23231
23206
|
})
|
|
23232
23207
|
});
|
|
23233
23208
|
}
|
|
23234
|
-
var Container$3 = styled.div(_templateObject$
|
|
23209
|
+
var Container$3 = styled.div(_templateObject$K || (_templateObject$K = _taggedTemplateLiteralLoose(["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100%;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"])), function (props) {
|
|
23235
23210
|
var _props$theme$idCaptur, _props$theme$idCaptur2;
|
|
23236
23211
|
return (_props$theme$idCaptur = (_props$theme$idCaptur2 = props.theme.idCapture) == null || (_props$theme$idCaptur2 = _props$theme$idCaptur2.overrideWrongDocumentTypeGuidance) == null ? void 0 : _props$theme$idCaptur2.backgroundColor) != null ? _props$theme$idCaptur : '#eed202';
|
|
23237
23212
|
}, function (props) {
|
|
@@ -23348,7 +23323,7 @@
|
|
|
23348
23323
|
});
|
|
23349
23324
|
};
|
|
23350
23325
|
|
|
23351
|
-
var _templateObject$
|
|
23326
|
+
var _templateObject$J, _templateObject2$E;
|
|
23352
23327
|
var RING_SIZE = 74;
|
|
23353
23328
|
var RADIUS = 32;
|
|
23354
23329
|
var CIRCUMFERENCE = 2 * Math.PI * RADIUS;
|
|
@@ -23393,7 +23368,7 @@
|
|
|
23393
23368
|
})]
|
|
23394
23369
|
});
|
|
23395
23370
|
};
|
|
23396
|
-
var RingSvg = styled.svg(_templateObject$
|
|
23371
|
+
var RingSvg = styled.svg(_templateObject$J || (_templateObject$J = _taggedTemplateLiteralLoose(["\n width: ", "px;\n height: ", "px;\n transform: rotate(-90deg);\n"])), RING_SIZE, RING_SIZE);
|
|
23397
23372
|
var FillCircle = styled.circle(_templateObject2$E || (_templateObject2$E = _taggedTemplateLiteralLoose(["\n transition: stroke-dashoffset 0.3s linear;\n"])));
|
|
23398
23373
|
|
|
23399
23374
|
var selectRingStatusKey = function selectRingStatusKey(_ref) {
|
|
@@ -23409,7 +23384,7 @@
|
|
|
23409
23384
|
return 'warming';
|
|
23410
23385
|
};
|
|
23411
23386
|
|
|
23412
|
-
var _templateObject$
|
|
23387
|
+
var _templateObject$I, _templateObject2$D, _templateObject3$t, _templateObject4$o, _templateObject5$l, _templateObject6$g, _templateObject7$e, _templateObject8$b, _templateObject9$b, _templateObject0$a, _templateObject1$9;
|
|
23413
23388
|
/**
|
|
23414
23389
|
* The ring overlay's priming cover page (CEO prototype `#v-prime`): camera
|
|
23415
23390
|
* badge, title/subtitle, step chips, reassurance chip, "Enable camera &
|
|
@@ -23480,7 +23455,6 @@
|
|
|
23480
23455
|
finished: !requesting,
|
|
23481
23456
|
disabled: requesting,
|
|
23482
23457
|
onClick: onStart,
|
|
23483
|
-
"data-spinner-color": badgeColor,
|
|
23484
23458
|
children: requesting ? requestingButtonText : startButtonText
|
|
23485
23459
|
}), jsx(Privacy, {
|
|
23486
23460
|
className: classNames.introPrivacy,
|
|
@@ -23488,20 +23462,19 @@
|
|
|
23488
23462
|
})]
|
|
23489
23463
|
});
|
|
23490
23464
|
};
|
|
23491
|
-
var _float = keyframes(_templateObject$
|
|
23492
|
-
var
|
|
23493
|
-
var
|
|
23494
|
-
var Badge = styled.div(_templateObject4$o || (_templateObject4$o = _taggedTemplateLiteralLoose(["\n width: 84px;\n height: 84px;\n border-radius: 28px;\n background: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 12px 28px\n color-mix(in srgb, ", " 35%, transparent);\n margin-bottom: 8px;\n animation: ", " 3s ease-in-out infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n\n svg {\n width: 40px;\n height: 40px;\n fill: #ffffff;\n }\n"])), function (props) {
|
|
23465
|
+
var _float = keyframes(_templateObject$I || (_templateObject$I = _taggedTemplateLiteralLoose(["\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-7px); }\n"])));
|
|
23466
|
+
var IntroLayout = styled.div(_templateObject2$D || (_templateObject2$D = _taggedTemplateLiteralLoose(["\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 14px;\n padding: 34px;\n text-align: center;\n"])));
|
|
23467
|
+
var Badge = styled.div(_templateObject3$t || (_templateObject3$t = _taggedTemplateLiteralLoose(["\n width: 84px;\n height: 84px;\n border-radius: 28px;\n background: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 12px 28px\n color-mix(in srgb, ", " 35%, transparent);\n margin-bottom: 8px;\n animation: ", " 3s ease-in-out infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n\n svg {\n width: 40px;\n height: 40px;\n fill: #ffffff;\n }\n"])), function (props) {
|
|
23495
23468
|
return props.$color;
|
|
23496
23469
|
}, function (props) {
|
|
23497
23470
|
return props.$color;
|
|
23498
23471
|
}, _float);
|
|
23499
|
-
var Title$4 = styled.div(
|
|
23500
|
-
var Subtitle$3 = styled.div(
|
|
23501
|
-
var Steps = styled.div(
|
|
23502
|
-
var Step = styled.div(
|
|
23503
|
-
var StepDot = styled.div(
|
|
23504
|
-
var ReassuranceChip = styled.div(
|
|
23472
|
+
var Title$4 = styled.div(_templateObject4$o || (_templateObject4$o = _taggedTemplateLiteralLoose(["\n font-size: 22px;\n font-weight: 700;\n"])));
|
|
23473
|
+
var Subtitle$3 = styled.div(_templateObject5$l || (_templateObject5$l = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n opacity: 0.65;\n line-height: 1.5;\n"])));
|
|
23474
|
+
var Steps = styled.div(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 26px;\n margin: 16px 0 6px;\n"])));
|
|
23475
|
+
var Step = styled.div(_templateObject7$e || (_templateObject7$e = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n font-size: 11px;\n opacity: 0.75;\n width: 90px;\n"])));
|
|
23476
|
+
var StepDot = styled.div(_templateObject8$b || (_templateObject8$b = _taggedTemplateLiteralLoose(["\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background: #ffffff;\n border: 1.5px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n"])));
|
|
23477
|
+
var ReassuranceChip = styled.div(_templateObject9$b || (_templateObject9$b = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n background: ", ";\n border-radius: 10px;\n padding: 6px 12px;\n max-width: 250px;\n line-height: 1.4;\n"])), function (props) {
|
|
23505
23478
|
return props.$tint;
|
|
23506
23479
|
});
|
|
23507
23480
|
/* Pill treatment from the CEO prototype (.btn.primary: radius 26, teal glow,
|
|
@@ -23509,10 +23482,8 @@
|
|
|
23509
23482
|
* theme styling. The glow and the deliberately quiet focus ring derive from
|
|
23510
23483
|
* the button's own background (--bs-btn-bg, set by the theme's bootstrap
|
|
23511
23484
|
* block) with the intro accent as fallback for un-themed buttons. Double
|
|
23512
|
-
* ampersand outranks the base LoaderButton rules
|
|
23513
|
-
|
|
23514
|
-
* keeps its room. */
|
|
23515
|
-
var StartButton = styled(LoaderButton)(_templateObject1$9 || (_templateObject1$9 = _taggedTemplateLiteralLoose(["\n && {\n margin-top: 10px;\n white-space: nowrap;\n min-width: 240px;\n border: none;\n border-radius: 26px;\n padding: 15px 28px;\n font-size: 16px;\n font-weight: 600;\n box-shadow: 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n );\n\n &:hover:not(.disabled) {\n transform: translateY(-1px);\n box-shadow: 0 9px 24px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 42%,\n transparent\n );\n }\n\n &:active:not(.disabled) {\n transform: translateY(0) scale(0.97);\n box-shadow: 0 4px 12px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 30%,\n transparent\n );\n }\n\n &:focus-visible {\n outline: none;\n box-shadow:\n 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n ),\n 0 0 0 3px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 25%,\n #ffffff\n );\n }\n\n /* Requesting-camera state: a pale accent tint (visibly \"waiting\", not\n * the solid \"go\" green), deep-accent label, and an indeterminate gloss\n * sweep. LoaderButton's simulated 0\u219290% progress fill is hidden \u2014 a\n * permission prompt has no knowable progress. */\n &.disabled {\n opacity: 1;\n overflow: hidden;\n background: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 12%,\n #ffffff\n );\n color: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 85%,\n #000000\n );\n box-shadow: 0 4px 14px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 18%,\n transparent\n );\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: 1;\n background: linear-gradient(\n 100deg,\n transparent 30%,\n rgb(255 255 255 / 0.65) 50%,\n transparent 70%\n );\n animation: ", " 1.4s ease-in-out infinite;\n }\n\n .ladda-progress {\n display: none;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n &:hover:not(.disabled),\n &:active:not(.disabled) {\n transform: none;\n }\n\n &.disabled::after {\n display: none;\n }\n }\n }\n"])), function (props) {
|
|
23485
|
+
* ampersand outranks the base LoaderButton rules. */
|
|
23486
|
+
var StartButton = styled(LoaderButton)(_templateObject0$a || (_templateObject0$a = _taggedTemplateLiteralLoose(["\n && {\n margin-top: 10px;\n white-space: nowrap;\n min-width: 240px;\n border: none;\n border-radius: 26px;\n padding: 15px 28px;\n font-size: 16px;\n font-weight: 600;\n box-shadow: 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n );\n\n &:hover:not(.disabled) {\n transform: translateY(-1px);\n box-shadow: 0 9px 24px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 42%,\n transparent\n );\n }\n\n &:active:not(.disabled) {\n transform: translateY(0) scale(0.97);\n box-shadow: 0 4px 12px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 30%,\n transparent\n );\n }\n\n &:focus-visible {\n outline: none;\n box-shadow:\n 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n ),\n 0 0 0 3px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 25%,\n #ffffff\n );\n }\n\n /* Requesting-camera state: a pale accent tint (visibly \"waiting\", not\n * the solid \"go\" green) and a deep-accent label. LoaderButton's loading\n * bar takes the label colour. */\n &.disabled {\n opacity: 1;\n background: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 12%,\n #ffffff\n );\n color: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 85%,\n #000000\n );\n box-shadow: 0 4px 14px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 18%,\n transparent\n );\n }\n\n @media (prefers-reduced-motion: reduce) {\n &:hover:not(.disabled),\n &:active:not(.disabled) {\n transform: none;\n }\n }\n }\n"])), function (props) {
|
|
23516
23487
|
return props.$accent;
|
|
23517
23488
|
}, function (props) {
|
|
23518
23489
|
return props.$accent;
|
|
@@ -23528,8 +23499,8 @@
|
|
|
23528
23499
|
return props.$accent;
|
|
23529
23500
|
}, function (props) {
|
|
23530
23501
|
return props.$accent;
|
|
23531
|
-
}
|
|
23532
|
-
var Privacy = styled.div(
|
|
23502
|
+
});
|
|
23503
|
+
var Privacy = styled.div(_templateObject1$9 || (_templateObject1$9 = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n opacity: 0.55;\n margin-top: 6px;\n"])));
|
|
23533
23504
|
|
|
23534
23505
|
var selectRingOverlayStage = function selectRingOverlayStage(_ref) {
|
|
23535
23506
|
var showIntroScreen = _ref.showIntroScreen,
|
|
@@ -23539,7 +23510,7 @@
|
|
|
23539
23510
|
return requesting ? 'requesting' : 'intro';
|
|
23540
23511
|
};
|
|
23541
23512
|
|
|
23542
|
-
var _templateObject$
|
|
23513
|
+
var _templateObject$H, _templateObject2$C, _templateObject3$s, _templateObject4$n, _templateObject5$k, _templateObject6$f, _templateObject7$d, _templateObject8$a, _templateObject9$a, _templateObject0$9, _templateObject1$8, _templateObject10$8, _templateObject11$6, _templateObject12$5, _templateObject13$5, _templateObject14$5, _templateObject15$4;
|
|
23543
23514
|
/** Minimum time a stage handoff stays on screen so its message is
|
|
23544
23515
|
* legible even when everything preloaded and readiness is instant. */
|
|
23545
23516
|
var STAGE_TRANSITION_HOLD_MS = 1600;
|
|
@@ -23598,7 +23569,7 @@
|
|
|
23598
23569
|
})]
|
|
23599
23570
|
});
|
|
23600
23571
|
};
|
|
23601
|
-
var badgePop = keyframes(_templateObject$
|
|
23572
|
+
var badgePop = keyframes(_templateObject$H || (_templateObject$H = _taggedTemplateLiteralLoose(["\n 0% { transform: scale(0.4); opacity: 0; }\n 60% { transform: scale(1.08); opacity: 1; }\n 100% { transform: scale(1); opacity: 1; }\n"])));
|
|
23602
23573
|
var cardFlip = keyframes(_templateObject2$C || (_templateObject2$C = _taggedTemplateLiteralLoose(["\n from { transform: rotateY(0deg); }\n to { transform: rotateY(180deg); }\n"])));
|
|
23603
23574
|
var microcopyBeat = keyframes(_templateObject3$s || (_templateObject3$s = _taggedTemplateLiteralLoose(["\n 0% { opacity: 0; transform: translateY(6px); }\n 18% { opacity: 1; transform: translateY(0); }\n 60% { opacity: 1; transform: translateY(0); }\n 80% { opacity: 0; transform: translateY(-6px); }\n 100% { opacity: 0; }\n"])));
|
|
23604
23575
|
var rise = keyframes(_templateObject4$n || (_templateObject4$n = _taggedTemplateLiteralLoose(["\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n"])));
|
|
@@ -23630,7 +23601,7 @@
|
|
|
23630
23601
|
return props.$visible ? 1 : 0;
|
|
23631
23602
|
});
|
|
23632
23603
|
|
|
23633
|
-
var _templateObject$
|
|
23604
|
+
var _templateObject$G, _templateObject2$B, _templateObject3$r, _templateObject4$m, _templateObject5$j, _templateObject6$e, _templateObject7$c;
|
|
23634
23605
|
// Module-level so the default `now` prop has a stable identity across
|
|
23635
23606
|
// renders (it sits in useModelWarmingElapsedMs's effect dependency array).
|
|
23636
23607
|
var defaultNow$2 = function defaultNow() {
|
|
@@ -23904,7 +23875,7 @@
|
|
|
23904
23875
|
})
|
|
23905
23876
|
});
|
|
23906
23877
|
};
|
|
23907
|
-
var overlayFadeIn$1 = keyframes(_templateObject$
|
|
23878
|
+
var overlayFadeIn$1 = keyframes(_templateObject$G || (_templateObject$G = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
|
|
23908
23879
|
var RingOverlayInner$1 = styled(LoadingOverlayInner)(_templateObject2$B || (_templateObject2$B = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n ", "\n"])), function (props) {
|
|
23909
23880
|
var _props$theme$idCaptur, _props$theme;
|
|
23910
23881
|
var tintBase = (_props$theme$idCaptur = (_props$theme = props.theme) == null || (_props$theme = _props$theme.idCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$idCaptur : 'var(--idm-color-primary-500)';
|
|
@@ -24009,11 +23980,11 @@
|
|
|
24009
23980
|
});
|
|
24010
23981
|
};
|
|
24011
23982
|
|
|
24012
|
-
var _templateObject$
|
|
24013
|
-
var Card = styled.div(_templateObject$
|
|
23983
|
+
var _templateObject$F, _templateObject2$A;
|
|
23984
|
+
var Card = styled.div(_templateObject$F || (_templateObject$F = _taggedTemplateLiteralLoose(["\n background: white;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);\n margin: auto;\n max-width: min(500px, 100% - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"])));
|
|
24014
23985
|
var FlexCard = styled(Card)(_templateObject2$A || (_templateObject2$A = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n"])));
|
|
24015
23986
|
|
|
24016
|
-
var _templateObject$
|
|
23987
|
+
var _templateObject$E, _templateObject2$z, _templateObject3$q, _templateObject4$l, _templateObject5$i, _templateObject6$d, _templateObject7$b, _templateObject8$9, _templateObject9$9, _templateObject0$8, _templateObject1$7, _templateObject10$7, _templateObject11$5, _templateObject12$4, _templateObject13$4, _templateObject14$4, _templateObject15$3, _templateObject16$3, _templateObject17$2, _templateObject18$2, _templateObject19$2, _templateObject20$2, _templateObject21$2, _templateObject22$2, _templateObject23$2, _templateObject24$1, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44;
|
|
24017
23988
|
function ReviewDocumentDiagnostics(_ref) {
|
|
24018
23989
|
var _document$detectionSc, _document$detectionSc2, _document$focusScore, _document$focusScore2;
|
|
24019
23990
|
var document = _ref.document,
|
|
@@ -24472,7 +24443,7 @@
|
|
|
24472
24443
|
})]
|
|
24473
24444
|
});
|
|
24474
24445
|
}
|
|
24475
|
-
var DebugInfoContainer = styled.div(_templateObject$
|
|
24446
|
+
var DebugInfoContainer = styled.div(_templateObject$E || (_templateObject$E = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n margin-top: 0.5rem;\n margin-bottom: 1rem;\n padding: 0.625rem;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8125rem;\n line-height: 1.35;\n text-align: left;\n"])));
|
|
24476
24447
|
var DebugSection = styled.div(_templateObject2$z || (_templateObject2$z = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 0;\n"])));
|
|
24477
24448
|
var DebugLabel = styled.span(_templateObject3$q || (_templateObject3$q = _taggedTemplateLiteralLoose(["\n width: 110px;\n flex-shrink: 0;\n color: #495057;\n font-size: 0.8125rem;\n font-weight: 600;\n"])));
|
|
24478
24449
|
var DebugValue = styled.span(_templateObject4$l || (_templateObject4$l = _taggedTemplateLiteralLoose(["\n color: #212529;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8125rem;\n"])));
|
|
@@ -24588,7 +24559,7 @@
|
|
|
24588
24559
|
return $highlight ? '#004085' : $ok ? '#155724' : '#721c24';
|
|
24589
24560
|
});
|
|
24590
24561
|
|
|
24591
|
-
var _templateObject$
|
|
24562
|
+
var _templateObject$D, _templateObject2$y, _templateObject3$p, _templateObject4$k, _templateObject5$h;
|
|
24592
24563
|
var imageDisplayOrder = ['idCardFront', 'idCardBack', 'idBarcodeImage', 'passport', 'singlePage', 'idFrontIrImage', 'idBackIrImage', 'idFrontUvImage', 'idBackUvImage'];
|
|
24593
24564
|
var ReviewScreen = function ReviewScreen(_ref) {
|
|
24594
24565
|
var capturedDocuments = _ref.capturedDocuments,
|
|
@@ -24679,13 +24650,13 @@
|
|
|
24679
24650
|
})
|
|
24680
24651
|
});
|
|
24681
24652
|
};
|
|
24682
|
-
var Heading$9 = styled.h1(_templateObject$
|
|
24653
|
+
var Heading$9 = styled.h1(_templateObject$D || (_templateObject$D = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"])));
|
|
24683
24654
|
var ImagesContainer = styled(OverlayImageContainer)(_templateObject2$y || (_templateObject2$y = _taggedTemplateLiteralLoose(["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"])));
|
|
24684
24655
|
var ImageRow = styled(OverlayImageRow)(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n max-width: 100%;\n flex-direction: column;\n position: relative;\n width: 100%;\n"])));
|
|
24685
24656
|
var ImageCol$1 = styled.div(_templateObject4$k || (_templateObject4$k = _taggedTemplateLiteralLoose(["\n width: 450px;\n max-width: 100%;\n max-height: none !important;\n"])));
|
|
24686
24657
|
var StyledImage = styled(CapturedDocumentImg)(_templateObject5$h || (_templateObject5$h = _taggedTemplateLiteralLoose(["\n width: 100%;\n border-radius: 12px;\n"])));
|
|
24687
24658
|
|
|
24688
|
-
var _templateObject$
|
|
24659
|
+
var _templateObject$C, _templateObject2$x, _templateObject3$o, _templateObject4$j;
|
|
24689
24660
|
var CameraAccessDeniedOverlay = function CameraAccessDeniedOverlay(_ref) {
|
|
24690
24661
|
var _assets$imageUrl, _classNames$container;
|
|
24691
24662
|
var onRetry = _ref.onRetry,
|
|
@@ -24744,12 +24715,12 @@
|
|
|
24744
24715
|
})
|
|
24745
24716
|
});
|
|
24746
24717
|
};
|
|
24747
|
-
var StyledOverlayInner$2 = styled(OverlayInner$2)(_templateObject$
|
|
24718
|
+
var StyledOverlayInner$2 = styled(OverlayInner$2)(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
|
|
24748
24719
|
var StyledOverlayImageContainer = styled(OverlayImageContainer)(_templateObject2$x || (_templateObject2$x = _taggedTemplateLiteralLoose(["\n flex-grow: 0;\n"])));
|
|
24749
24720
|
var Description$3 = styled.p(_templateObject3$o || (_templateObject3$o = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
|
|
24750
24721
|
var RetryButton$1 = styled(LoaderButton)(_templateObject4$j || (_templateObject4$j = _taggedTemplateLiteralLoose(["\n width: 200px;\n margin: 0 auto;\n"])));
|
|
24751
24722
|
|
|
24752
|
-
var _templateObject$
|
|
24723
|
+
var _templateObject$B, _templateObject2$w, _templateObject3$n;
|
|
24753
24724
|
var ErrorScreen = function ErrorScreen(_ref) {
|
|
24754
24725
|
var error = _ref.error,
|
|
24755
24726
|
onRetry = _ref.onRetry,
|
|
@@ -24940,7 +24911,7 @@
|
|
|
24940
24911
|
// component pins its own foreground for the same reason (e.g.
|
|
24941
24912
|
// IdCaptureLoadingOverlayDefault's `theme...textColor ?? 'black'`); do the
|
|
24942
24913
|
// same here rather than inherit a foreground meant for the dark overlays.
|
|
24943
|
-
var ErrorCard = styled(FlexCard)(_templateObject$
|
|
24914
|
+
var ErrorCard = styled(FlexCard)(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n color: black;\n"])));
|
|
24944
24915
|
var Heading$8 = styled.h1(_templateObject2$w || (_templateObject2$w = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1rem;\n"])));
|
|
24945
24916
|
var Description$2 = styled.p(_templateObject3$n || (_templateObject3$n = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin-bottom: 1.5rem;\n"])));
|
|
24946
24917
|
|
|
@@ -24983,7 +24954,7 @@
|
|
|
24983
24954
|
return key === 'third' ? 'ID page of passport' : 'back of ID card';
|
|
24984
24955
|
}
|
|
24985
24956
|
|
|
24986
|
-
var _templateObject$
|
|
24957
|
+
var _templateObject$A, _templateObject2$v, _templateObject3$m, _templateObject4$i, _templateObject5$g, _templateObject6$c, _templateObject7$a;
|
|
24987
24958
|
function IdCaptureFallback(_ref) {
|
|
24988
24959
|
var _ref$captureRequireme = _ref.captureRequirement,
|
|
24989
24960
|
captureRequirement = _ref$captureRequireme === void 0 ? 'idCardOrPassport' : _ref$captureRequireme,
|
|
@@ -25152,7 +25123,7 @@
|
|
|
25152
25123
|
})
|
|
25153
25124
|
});
|
|
25154
25125
|
}
|
|
25155
|
-
var StyledOverlayInner$1 = styled(OverlayInner$2)(_templateObject$
|
|
25126
|
+
var StyledOverlayInner$1 = styled(OverlayInner$2)(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n justify-content: center;\n"])));
|
|
25156
25127
|
var Heading$7 = styled.h3(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n margin-bottom: 8px;\n"])));
|
|
25157
25128
|
var Description$1 = styled.p(_templateObject3$m || (_templateObject3$m = _taggedTemplateLiteralLoose(["\n margin-bottom: 8px;\n"])));
|
|
25158
25129
|
var Instruction = styled.p(_templateObject4$i || (_templateObject4$i = _taggedTemplateLiteralLoose(["\n font-weight: bold;\n"])));
|
|
@@ -25160,7 +25131,7 @@
|
|
|
25160
25131
|
var ImageCol = styled.div(_templateObject6$c || (_templateObject6$c = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n flex-grow: 1;\n flex-basis: 0;\n"])));
|
|
25161
25132
|
var StyledButtonsRow$6 = styled(ButtonsRow$2)(_templateObject7$a || (_templateObject7$a = _taggedTemplateLiteralLoose(["\n margin-top: 32px;\n"])));
|
|
25162
25133
|
|
|
25163
|
-
var _templateObject$
|
|
25134
|
+
var _templateObject$z, _templateObject2$u, _templateObject3$l, _templateObject4$h, _templateObject5$f, _templateObject6$b, _templateObject7$9, _templateObject8$8, _templateObject9$8, _templateObject0$7, _templateObject1$6, _templateObject10$6;
|
|
25164
25135
|
function IdCaptureOrUploadScreen(_ref) {
|
|
25165
25136
|
var _ref$captureRequireme = _ref.captureRequirement,
|
|
25166
25137
|
captureRequirement = _ref$captureRequireme === void 0 ? 'idCardOrPassport' : _ref$captureRequireme,
|
|
@@ -25407,7 +25378,7 @@
|
|
|
25407
25378
|
})]
|
|
25408
25379
|
});
|
|
25409
25380
|
}
|
|
25410
|
-
var ScreenContainer = styled.div(_templateObject$
|
|
25381
|
+
var ScreenContainer = styled.div(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 24px;\n background: ", ";\n"])), function (props) {
|
|
25411
25382
|
var _props$theme$backgrou, _props$theme;
|
|
25412
25383
|
return (_props$theme$backgrou = (_props$theme = props.theme) == null ? void 0 : _props$theme.background) != null ? _props$theme$backgrou : '#fff';
|
|
25413
25384
|
});
|
|
@@ -25528,7 +25499,7 @@
|
|
|
25528
25499
|
return context ? context.sessionReady : true;
|
|
25529
25500
|
}
|
|
25530
25501
|
|
|
25531
|
-
var _templateObject$
|
|
25502
|
+
var _templateObject$y;
|
|
25532
25503
|
function _createForOfIteratorHelperLoose$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(r)) || e) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: true } : { done: false, value: r[o++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25533
25504
|
function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$n(r, a) : void 0; } }
|
|
25534
25505
|
function _arrayLikeToArray$n(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -25544,7 +25515,7 @@
|
|
|
25544
25515
|
// containing block against whatever ancestor the host provides, exactly as
|
|
25545
25516
|
// before this wrapper existed) while font-family -- an inherited CSS
|
|
25546
25517
|
// property -- still cascades to every descendant.
|
|
25547
|
-
var FontCarrier = styled.div(_templateObject$
|
|
25518
|
+
var FontCarrier = styled.div(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n display: contents;\n ", "\n"])), function (props) {
|
|
25548
25519
|
var _props$theme;
|
|
25549
25520
|
return (_props$theme = props.theme) != null && _props$theme.fontFamily ? "font-family: " + props.theme.fontFamily + ";" : '';
|
|
25550
25521
|
});
|
|
@@ -28139,6 +28110,7 @@
|
|
|
28139
28110
|
liveness: config.liveness ? createInitialLivenessMachineState() : null,
|
|
28140
28111
|
challenge: null,
|
|
28141
28112
|
livenessTimedOut: false,
|
|
28113
|
+
retryPending: false,
|
|
28142
28114
|
handOverFace: {
|
|
28143
28115
|
status: 'off',
|
|
28144
28116
|
lastCheck: null
|
|
@@ -29520,6 +29492,19 @@
|
|
|
29520
29492
|
livenessTimedOut: false
|
|
29521
29493
|
});
|
|
29522
29494
|
}
|
|
29495
|
+
// retry()'s reset of the terminal attempt, run straight away or once a
|
|
29496
|
+
// released camera is back. Moving off the terminal phase and verdict is
|
|
29497
|
+
// what takes the view's terminal screen down.
|
|
29498
|
+
function spendRetry() {
|
|
29499
|
+
if (config.liveness) resetLivenessAttempt();
|
|
29500
|
+
progress.retry('capture-error');
|
|
29501
|
+
internal.setState({
|
|
29502
|
+
retryPending: false
|
|
29503
|
+
});
|
|
29504
|
+
dispatch({
|
|
29505
|
+
type: 'retryRequested'
|
|
29506
|
+
});
|
|
29507
|
+
}
|
|
29523
29508
|
// retry()'s capture re-entry, run straight away or once a released camera
|
|
29524
29509
|
// is back.
|
|
29525
29510
|
function resumeCapture() {
|
|
@@ -29676,6 +29661,7 @@
|
|
|
29676
29661
|
liveness: config.liveness ? createInitialLivenessMachineState() : null,
|
|
29677
29662
|
challenge: null,
|
|
29678
29663
|
livenessTimedOut: false,
|
|
29664
|
+
retryPending: false,
|
|
29679
29665
|
handOverFace: {
|
|
29680
29666
|
status: 'off',
|
|
29681
29667
|
lastCheck: null
|
|
@@ -29853,27 +29839,42 @@
|
|
|
29853
29839
|
},
|
|
29854
29840
|
retry: function retry() {
|
|
29855
29841
|
if (!active) return;
|
|
29856
|
-
if (config.liveness) resetLivenessAttempt();
|
|
29857
|
-
progress.retry('capture-error');
|
|
29858
|
-
dispatch({
|
|
29859
|
-
type: 'retryRequested'
|
|
29860
|
-
});
|
|
29861
29842
|
if (!cameraReleased) {
|
|
29843
|
+
spendRetry();
|
|
29862
29844
|
resumeCapture();
|
|
29863
29845
|
return;
|
|
29864
29846
|
}
|
|
29865
|
-
// The terminal screen handed the camera back: get it again
|
|
29866
|
-
//
|
|
29867
|
-
//
|
|
29868
|
-
//
|
|
29869
|
-
// up the camera error screen and its recovery path.
|
|
29847
|
+
// The terminal screen handed the camera back: get it again BEFORE
|
|
29848
|
+
// leaving that screen, so the user never lands on a feed with no
|
|
29849
|
+
// stream, and the initial-delay gate and kick-out count from a live
|
|
29850
|
+
// feed. A second retry() while this is in flight joins it.
|
|
29870
29851
|
if (cameraReacquisition) return;
|
|
29852
|
+
internal.setState({
|
|
29853
|
+
retryPending: true
|
|
29854
|
+
});
|
|
29871
29855
|
var generation = attachGeneration;
|
|
29856
|
+
// exitCapture() clears `retryPending` if it sent the user back to the
|
|
29857
|
+
// instructions while the camera was coming back.
|
|
29858
|
+
var stillPending = function stillPending() {
|
|
29859
|
+
return active && generation === attachGeneration && internal.getState().retryPending;
|
|
29860
|
+
};
|
|
29872
29861
|
var reacquisition = requestCamera().then(function () {
|
|
29873
|
-
|
|
29874
|
-
|
|
29875
|
-
|
|
29876
|
-
}
|
|
29862
|
+
if (!stillPending()) return;
|
|
29863
|
+
spendRetry();
|
|
29864
|
+
resumeCapture();
|
|
29865
|
+
}, function () {
|
|
29866
|
+
// Spend the attempt anyway so the terminal screen gives way to
|
|
29867
|
+
// the camera error screen, whose recovery re-enters through
|
|
29868
|
+
// 'loading'. 'retryRequested' clears `error`, so the one
|
|
29869
|
+
// requestCamera wrote goes back on after it.
|
|
29870
|
+
if (!stillPending()) return;
|
|
29871
|
+
var _internal$getState = internal.getState(),
|
|
29872
|
+
error = _internal$getState.error;
|
|
29873
|
+
spendRetry();
|
|
29874
|
+
internal.setState({
|
|
29875
|
+
error: error
|
|
29876
|
+
});
|
|
29877
|
+
})["finally"](function () {
|
|
29877
29878
|
// detach() may have dropped this one and a newer one started.
|
|
29878
29879
|
if (cameraReacquisition === reacquisition) cameraReacquisition = null;
|
|
29879
29880
|
});
|
|
@@ -29882,8 +29883,8 @@
|
|
|
29882
29883
|
exitCapture: function exitCapture() {
|
|
29883
29884
|
var _frameLoop9;
|
|
29884
29885
|
if (!active) return;
|
|
29885
|
-
var _internal$
|
|
29886
|
-
phase = _internal$
|
|
29886
|
+
var _internal$getState2 = internal.getState(),
|
|
29887
|
+
phase = _internal$getState2.phase;
|
|
29887
29888
|
if (phase === 'initializing' || phase === 'loading') return;
|
|
29888
29889
|
// Every armed timer belongs to the abandoned attempt.
|
|
29889
29890
|
clearAllTimers();
|
|
@@ -29898,7 +29899,8 @@
|
|
|
29898
29899
|
internal.setState({
|
|
29899
29900
|
capturedAttempt: null,
|
|
29900
29901
|
capturedImageUrl: null,
|
|
29901
|
-
captureRecovery: null
|
|
29902
|
+
captureRecovery: null,
|
|
29903
|
+
retryPending: false
|
|
29902
29904
|
});
|
|
29903
29905
|
dispatch({
|
|
29904
29906
|
type: 'exitRequested'
|
|
@@ -29944,8 +29946,8 @@
|
|
|
29944
29946
|
return shimExports.useSyncExternalStore(subscribe, controller.getState, controller.getState);
|
|
29945
29947
|
}
|
|
29946
29948
|
|
|
29947
|
-
var _templateObject$
|
|
29948
|
-
var SelfieCameraFeedWrapper = styled.div(_templateObject$
|
|
29949
|
+
var _templateObject$x;
|
|
29950
|
+
var SelfieCameraFeedWrapper = styled.div(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n display: flex;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n /* Keep CameraVideoTag's legacy negative z-index above opaque flow shells. */\n isolation: isolate;\n"])));
|
|
29949
29951
|
function SelfieCameraFeed(_ref) {
|
|
29950
29952
|
var videoRef = _ref.videoRef,
|
|
29951
29953
|
isRearFacing = _ref.isRearFacing,
|
|
@@ -29959,7 +29961,7 @@
|
|
|
29959
29961
|
});
|
|
29960
29962
|
}
|
|
29961
29963
|
|
|
29962
|
-
var _templateObject$
|
|
29964
|
+
var _templateObject$w, _templateObject2$t, _templateObject3$k, _templateObject4$g;
|
|
29963
29965
|
var _excluded$d = ["borderColor", "borderOpacity", "borderWidth", "status"],
|
|
29964
29966
|
_excluded2$4 = ["status", "guideStyle"],
|
|
29965
29967
|
_excluded3 = ["frame", "borderWidth", "borderColor", "borderOpacity", "verticalAlign", "status", "guideStyle"],
|
|
@@ -30036,7 +30038,7 @@
|
|
|
30036
30038
|
// refresh rate for the whole capture, which low-end GPUs can't keep up with
|
|
30037
30039
|
// while also running the camera and face model. Waves only render while the
|
|
30038
30040
|
// status is 'ready', so the pulse replays each time the face leaves the guide.
|
|
30039
|
-
var headGuideWavesAnimation = keyframes(_templateObject$
|
|
30041
|
+
var headGuideWavesAnimation = keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n 0% {\n opacity: 0;\n transform: scale(1);\n }\n 60% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: scale(1.3);\n }\n"])));
|
|
30040
30042
|
var PulsingHeadGuideContainer = styled.div(_templateObject2$t || (_templateObject2$t = _taggedTemplateLiteralLoose(["\n display: flex;\n position: relative;\n height: 100%;\n max-height: 100%;\n\n & > .idmSdkWaves {\n position: absolute;\n opacity: 0;\n animation: ", " 2s ease-out 3;\n\n @media (prefers-reduced-motion: reduce) {\n display: none;\n }\n }\n\n /* Paints far past its box; the nearest clipping ancestor bounds it\n (FaceCaptureGuideOverlay clips to the capture surface). */\n & > .idmSdkSpotlight {\n position: absolute;\n overflow: visible;\n pointer-events: none;\n }\n\n & > .idmSdkWavesOrigin {\n position: relative;\n }\n"])), headGuideWavesAnimation);
|
|
30041
30043
|
function HeadGuide(_ref2) {
|
|
30042
30044
|
var _theme$selfieCapture$, _theme$selfieCapture, _theme$selfieCapture$2, _theme$selfieCapture2, _theme$selfieCapture$3, _theme$selfieCapture3, _props$className;
|
|
@@ -30348,8 +30350,8 @@
|
|
|
30348
30350
|
}));
|
|
30349
30351
|
}
|
|
30350
30352
|
|
|
30351
|
-
var _templateObject$
|
|
30352
|
-
var FaceCaptureGuideContainer = styled.div(_templateObject$
|
|
30353
|
+
var _templateObject$v, _templateObject2$s;
|
|
30354
|
+
var FaceCaptureGuideContainer = styled.div(_templateObject$v || (_templateObject$v = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 1000;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n /* Keeps the spotlight dim inside the capture surface when the view is\n embedded rather than full-screen. */\n ", "\n"])), function (props) {
|
|
30353
30355
|
return props.$clip ? 'overflow: hidden;' : '';
|
|
30354
30356
|
});
|
|
30355
30357
|
var FaceCaptureGuideInner = styled.div(_templateObject2$s || (_templateObject2$s = _taggedTemplateLiteralLoose(["\n position: relative;\n height: 60%;\n"])));
|
|
@@ -30662,7 +30664,7 @@
|
|
|
30662
30664
|
});
|
|
30663
30665
|
}
|
|
30664
30666
|
|
|
30665
|
-
var _templateObject$
|
|
30667
|
+
var _templateObject$u, _templateObject2$r, _templateObject3$j, _templateObject4$f, _templateObject5$e;
|
|
30666
30668
|
var legacyInstructionImageUrl = DEFAULT_CDN_URL$1 + "/Selfie-Image-1.png";
|
|
30667
30669
|
// Module-level so the default `now` prop has a stable identity across
|
|
30668
30670
|
// renders (it sits in useModelWarmingElapsedMs's effect dependency array).
|
|
@@ -30833,7 +30835,7 @@
|
|
|
30833
30835
|
})
|
|
30834
30836
|
});
|
|
30835
30837
|
};
|
|
30836
|
-
var OverlayInner = styled(LoadingOverlayInner)(_templateObject$
|
|
30838
|
+
var OverlayInner = styled(LoadingOverlayInner)(_templateObject$u || (_templateObject$u = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
|
|
30837
30839
|
var _props$theme$selfieCa, _props$theme;
|
|
30838
30840
|
return (_props$theme$selfieCa = (_props$theme = props.theme) == null || (_props$theme = _props$theme.selfieCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$selfieCa : SELFIE_LOADING_OVERLAY_BACKGROUND_DEFAULT;
|
|
30839
30841
|
}, function (props) {
|
|
@@ -30899,7 +30901,7 @@
|
|
|
30899
30901
|
});
|
|
30900
30902
|
}
|
|
30901
30903
|
|
|
30902
|
-
var _templateObject$
|
|
30904
|
+
var _templateObject$t, _templateObject2$q;
|
|
30903
30905
|
var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLegacy(_ref) {
|
|
30904
30906
|
var _assets$instructionIm;
|
|
30905
30907
|
var state = _ref.state,
|
|
@@ -30975,10 +30977,10 @@
|
|
|
30975
30977
|
})
|
|
30976
30978
|
});
|
|
30977
30979
|
};
|
|
30978
|
-
var StyledGuidanceMessage = styled(GuidanceMessage)(_templateObject$
|
|
30980
|
+
var StyledGuidanceMessage = styled(GuidanceMessage)(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"])));
|
|
30979
30981
|
var StyledButtonsRow$5 = styled(ButtonsRow$2)(_templateObject2$q || (_templateObject2$q = _taggedTemplateLiteralLoose(["\n flex-direction: column;\n padding-top: 25px;\n"])));
|
|
30980
30982
|
|
|
30981
|
-
var _templateObject$
|
|
30983
|
+
var _templateObject$s, _templateObject2$p, _templateObject3$i, _templateObject4$e, _templateObject5$d, _templateObject6$a, _templateObject7$8;
|
|
30982
30984
|
// Module-level so the default `now` prop has a stable identity across
|
|
30983
30985
|
// renders (it sits in useModelWarmingElapsedMs's effect dependency array).
|
|
30984
30986
|
var defaultNow = function defaultNow() {
|
|
@@ -31236,7 +31238,7 @@
|
|
|
31236
31238
|
})
|
|
31237
31239
|
});
|
|
31238
31240
|
};
|
|
31239
|
-
var overlayFadeIn = keyframes(_templateObject$
|
|
31241
|
+
var overlayFadeIn = keyframes(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
|
|
31240
31242
|
var RingOverlayInner = styled(LoadingOverlayInner)(_templateObject2$p || (_templateObject2$p = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n ", "\n"])), function (props) {
|
|
31241
31243
|
var _props$theme$selfieCa, _props$theme;
|
|
31242
31244
|
var tintBase = (_props$theme$selfieCa = (_props$theme = props.theme) == null || (_props$theme = _props$theme.selfieCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$selfieCa : 'var(--idm-color-primary-500)';
|
|
@@ -31279,7 +31281,7 @@
|
|
|
31279
31281
|
return jsx(Component, _extends({}, props));
|
|
31280
31282
|
};
|
|
31281
31283
|
|
|
31282
|
-
var _templateObject$
|
|
31284
|
+
var _templateObject$r, _templateObject2$o, _templateObject3$h, _templateObject4$d, _templateObject5$c, _templateObject6$9;
|
|
31283
31285
|
function SelfieCaptureFallback(_ref) {
|
|
31284
31286
|
var _ref$silentFallback = _ref.silentFallback,
|
|
31285
31287
|
silentFallback = _ref$silentFallback === void 0 ? false : _ref$silentFallback,
|
|
@@ -31433,14 +31435,14 @@
|
|
|
31433
31435
|
})
|
|
31434
31436
|
});
|
|
31435
31437
|
}
|
|
31436
|
-
var StyledOverlayInner = styled(OverlayInner$2)(_templateObject$
|
|
31438
|
+
var StyledOverlayInner = styled(OverlayInner$2)(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n justify-content: center;\n padding: 24px;\n box-sizing: border-box;\n"])));
|
|
31437
31439
|
var Heading$6 = styled.h1(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin: 0 0 1rem;\n"])));
|
|
31438
31440
|
var Description = styled.p(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin: 0 0 1.5rem;\n"])));
|
|
31439
31441
|
var ImageContainer$4 = styled.div(_templateObject4$d || (_templateObject4$d = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n margin-bottom: 1.5rem;\n\n & > img {\n max-width: 100%;\n max-height: 40vh;\n border-radius: 8px;\n }\n"])));
|
|
31440
31442
|
var ReadFailed = styled.p(_templateObject5$c || (_templateObject5$c = _taggedTemplateLiteralLoose(["\n margin: 0 0 1rem;\n"])));
|
|
31441
31443
|
var StyledButtonsRow$4 = styled(ButtonsRow$2)(_templateObject6$9 || (_templateObject6$9 = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 12px;\n justify-content: center;\n"])));
|
|
31442
31444
|
|
|
31443
|
-
var _templateObject$
|
|
31445
|
+
var _templateObject$q, _templateObject2$n;
|
|
31444
31446
|
function SelfieCaptureSurface(_ref) {
|
|
31445
31447
|
var _state$error, _state$error2, _state$captureRecover, _state$error5, _state$captureRecover2, _state$prediction, _state$prediction$sam, _state$prediction2, _state$prediction3, _state$prediction4, _state$prediction5, _state$prediction6, _state$prediction7, _state$prediction8, _state$prediction9, _state$prediction0, _state$prediction1, _state$prediction$bri, _state$prediction10, _state$prediction$ran, _state$prediction11, _state$prediction$var, _state$prediction12, _assets$loadingOverla, _classNames$loadingOv, _colors$loadingOverla, _verbiage$loadingOver;
|
|
31446
31448
|
var controller = _ref.controller,
|
|
@@ -31842,7 +31844,7 @@
|
|
|
31842
31844
|
children: [verdict, " Eyes Open", state.thresholds.requireEyesOpen ? " (" + openReadings + "/" + eyeReadings.length + " frames open in the last " + EYES_OPEN_WINDOW_MS + " ms)" : ' (gate off)', eye('Mesh-left eye', ear.left, earBaseline.left, earCalibrationMs.left), eye('Mesh-right eye', ear.right, earBaseline.right, earCalibrationMs.right)]
|
|
31843
31845
|
});
|
|
31844
31846
|
}
|
|
31845
|
-
var ManualCaptureButtonContainer = styled.div(_templateObject$
|
|
31847
|
+
var ManualCaptureButtonContainer = styled.div(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 4;\n left: 50%;\n bottom: 24px;\n transform: translateX(-50%);\n"])));
|
|
31846
31848
|
// A footer below the camera keeps the lighting guidance visible above it.
|
|
31847
31849
|
var CaptureRecoveryActions = styled.div(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 10001;\n inset: auto 0 0;\n padding: 16px 24px max(16px, env(safe-area-inset-bottom));\n background: white;\n color: #333;\n text-align: center;\n display: grid;\n justify-items: center;\n gap: 12px;\n\n p { margin: 0; font-size: 14px; line-height: 1.4; }\n button { width: 100%; max-width: 320px; }\n"])));
|
|
31848
31850
|
|
|
@@ -31977,7 +31979,7 @@
|
|
|
31977
31979
|
return null;
|
|
31978
31980
|
}
|
|
31979
31981
|
|
|
31980
|
-
var _GUIDANCE_VERBIAGE_FI, _templateObject$
|
|
31982
|
+
var _GUIDANCE_VERBIAGE_FI, _templateObject$p;
|
|
31981
31983
|
// `state.guidance.code` -> the SelfieGuidanceVerbiage field that overrides
|
|
31982
31984
|
// it. Keyed off the same `SelfieGuidanceCode` values selfieGuidanceMessageKey
|
|
31983
31985
|
// switches on (guidance/selfieStrings.ts) — NONE has no field (the pill is
|
|
@@ -31995,7 +31997,7 @@
|
|
|
31995
31997
|
// still-mounted-through-error rationale as IdCaptureView's ScalingCameraFeed
|
|
31996
31998
|
// (a successful retry()/requestCamera() re-attaches into the SAME element).
|
|
31997
31999
|
var CAPTURE_SURFACE_PHASES$1 = new Set(['capturing', 'challenge', 'processing', 'checking', 'completed', 'failed']);
|
|
31998
|
-
var Container$2 = styled.div(_templateObject$
|
|
32000
|
+
var Container$2 = styled.div(_templateObject$p || (_templateObject$p = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n /* sdk2 applied theme.fontFamily at the flow-level SdkPage wrapper\n (SdkPage.tsx:59: a font-family declaration reading props.theme.fontFamily,\n conditional on it being set) -- SdkPage itself is flow-level and was\n never ported to this package, so this view's own root carries it\n instead. */\n ", "\n"])), function (props) {
|
|
31999
32001
|
var _props$theme;
|
|
32000
32002
|
return (_props$theme = props.theme) != null && _props$theme.fontFamily ? "font-family: " + props.theme.fontFamily + ";" : '';
|
|
32001
32003
|
});
|
|
@@ -32173,11 +32175,24 @@
|
|
|
32173
32175
|
});
|
|
32174
32176
|
}
|
|
32175
32177
|
|
|
32178
|
+
var _templateObject$o;
|
|
32179
|
+
/**
|
|
32180
|
+
* A polite live region that is read aloud but not shown. For a change with no
|
|
32181
|
+
* focused text to carry it, such as a button that went busy and dropped focus
|
|
32182
|
+
* by being disabled. Keep it mounted and change its text: a region that mounts
|
|
32183
|
+
* already holding its message is often not announced.
|
|
32184
|
+
*/
|
|
32185
|
+
var ScreenReaderStatus = styled.span.attrs({
|
|
32186
|
+
role: 'status'
|
|
32187
|
+
})(_templateObject$o || (_templateObject$o = _taggedTemplateLiteralLoose(["\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n"])));
|
|
32188
|
+
|
|
32176
32189
|
var _templateObject$n, _templateObject2$m;
|
|
32177
32190
|
var FaceLivenessSuccess = function FaceLivenessSuccess(_ref) {
|
|
32178
32191
|
var imageUrl = _ref.imageUrl,
|
|
32179
32192
|
onDoneClick = _ref.onDoneClick,
|
|
32180
32193
|
onRetryClick = _ref.onRetryClick,
|
|
32194
|
+
_ref$retrying = _ref.retrying,
|
|
32195
|
+
retrying = _ref$retrying === void 0 ? false : _ref$retrying,
|
|
32181
32196
|
_ref$classNames = _ref.classNames,
|
|
32182
32197
|
classNames = _ref$classNames === void 0 ? {} : _ref$classNames,
|
|
32183
32198
|
_ref$colors = _ref.colors,
|
|
@@ -32187,6 +32202,7 @@
|
|
|
32187
32202
|
var verbiage = useTranslations(rawVerbiage, {
|
|
32188
32203
|
headingText: 'Face liveness has been verified!',
|
|
32189
32204
|
retryBtnText: 'Retry',
|
|
32205
|
+
retryingBtnText: 'Starting camera...',
|
|
32190
32206
|
doneBtnText: 'Done'
|
|
32191
32207
|
});
|
|
32192
32208
|
var imageContainerRef = React.useRef(null);
|
|
@@ -32216,20 +32232,24 @@
|
|
|
32216
32232
|
children: verbiage.headingText
|
|
32217
32233
|
}), jsxs(ButtonsColumn, {
|
|
32218
32234
|
className: classNames.buttonsRow,
|
|
32219
|
-
children: [jsx(
|
|
32235
|
+
children: [jsx(ScreenReaderStatus, {
|
|
32236
|
+
children: retrying ? verbiage.retryingBtnText : null
|
|
32237
|
+
}), jsx(WideButton, {
|
|
32220
32238
|
variant: "positive",
|
|
32221
32239
|
onClick: onDoneClick,
|
|
32222
32240
|
colors: colors.doneBtn,
|
|
32223
32241
|
className: classNames.doneBtn,
|
|
32224
32242
|
finished: true,
|
|
32243
|
+
// Done would race the retry the user already started.
|
|
32244
|
+
disabled: retrying,
|
|
32225
32245
|
children: verbiage.doneBtnText
|
|
32226
32246
|
}), jsx(WideBorderButton, {
|
|
32227
32247
|
variant: "secondary",
|
|
32228
32248
|
onClick: onRetryClick,
|
|
32229
32249
|
colors: colors.retryBtn,
|
|
32230
32250
|
className: classNames.retryBtn,
|
|
32231
|
-
finished:
|
|
32232
|
-
children: verbiage.retryBtnText
|
|
32251
|
+
finished: !retrying,
|
|
32252
|
+
children: retrying ? verbiage.retryingBtnText : verbiage.retryBtnText
|
|
32233
32253
|
})]
|
|
32234
32254
|
})]
|
|
32235
32255
|
})
|
|
@@ -32245,6 +32265,8 @@
|
|
|
32245
32265
|
var _ref$canRetry = _ref.canRetry,
|
|
32246
32266
|
canRetry = _ref$canRetry === void 0 ? true : _ref$canRetry,
|
|
32247
32267
|
onRetryClick = _ref.onRetryClick,
|
|
32268
|
+
_ref$retrying = _ref.retrying,
|
|
32269
|
+
retrying = _ref$retrying === void 0 ? false : _ref$retrying,
|
|
32248
32270
|
onExitClick = _ref.onExitClick,
|
|
32249
32271
|
_ref$assets = _ref.assets,
|
|
32250
32272
|
assets = _ref$assets === void 0 ? {} : _ref$assets,
|
|
@@ -32258,6 +32280,7 @@
|
|
|
32258
32280
|
var verbiage = useTranslations(rawVerbiage, {
|
|
32259
32281
|
headingText: 'Live face not detected, please try again',
|
|
32260
32282
|
retryBtnText: 'Retry',
|
|
32283
|
+
retryingBtnText: 'Starting camera...',
|
|
32261
32284
|
exitBtnText: 'Exit'
|
|
32262
32285
|
});
|
|
32263
32286
|
return jsx(GrayOverlayContainer, {
|
|
@@ -32277,13 +32300,15 @@
|
|
|
32277
32300
|
children: verbiage.headingText
|
|
32278
32301
|
}), jsxs(ButtonsColumn, {
|
|
32279
32302
|
className: classNames.buttonsRow,
|
|
32280
|
-
children: [
|
|
32303
|
+
children: [jsx(ScreenReaderStatus, {
|
|
32304
|
+
children: retrying ? verbiage.retryingBtnText : null
|
|
32305
|
+
}), canRetry && jsx(WideButton, {
|
|
32281
32306
|
variant: "secondary",
|
|
32282
32307
|
className: classNames.retryBtn,
|
|
32283
32308
|
onClick: onRetryClick,
|
|
32284
32309
|
colors: colors.retryBtn,
|
|
32285
|
-
finished:
|
|
32286
|
-
children: verbiage.retryBtnText
|
|
32310
|
+
finished: !retrying,
|
|
32311
|
+
children: retrying ? verbiage.retryingBtnText : verbiage.retryBtnText
|
|
32287
32312
|
}), jsx(WideBorderButton, {
|
|
32288
32313
|
variant: "secondary",
|
|
32289
32314
|
className: classNames.exitBtn,
|
|
@@ -32567,6 +32592,9 @@
|
|
|
32567
32592
|
// back and let the camera light go out. `restartRun` gets it again through
|
|
32568
32593
|
// the controller's retry(). A skipped success screen needs nothing here: the
|
|
32569
32594
|
// host moves on and unmounting detaches.
|
|
32595
|
+
// Core holds the terminal screen up while a retry waits for that camera
|
|
32596
|
+
// (`retryPending`), so its Retry button shows the wait instead of the user
|
|
32597
|
+
// landing on a black feed.
|
|
32570
32598
|
var coveredByTerminalScreen = showSuccessScreen || showFailureScreen;
|
|
32571
32599
|
React.useEffect(function () {
|
|
32572
32600
|
if (coveredByTerminalScreen) controller.actions.releaseCamera();
|
|
@@ -32631,12 +32659,19 @@
|
|
|
32631
32659
|
return onDone == null ? void 0 : onDone(completedImageUrl);
|
|
32632
32660
|
},
|
|
32633
32661
|
onRetryClick: restartRun,
|
|
32662
|
+
retrying: state.retryPending,
|
|
32634
32663
|
verbiage: verbiage.success,
|
|
32635
32664
|
classNames: classNames.success,
|
|
32636
32665
|
colors: colors.success
|
|
32637
|
-
}), showFailureScreen && jsx(FaceLivenessFailure
|
|
32638
|
-
|
|
32666
|
+
}), showFailureScreen && jsx(FaceLivenessFailure
|
|
32667
|
+
// The click already spent the budget; keep the last retry's button
|
|
32668
|
+
// up while it waits on the camera.
|
|
32669
|
+
, {
|
|
32670
|
+
// The click already spent the budget; keep the last retry's button
|
|
32671
|
+
// up while it waits on the camera.
|
|
32672
|
+
canRetry: canRetryFailure || state.retryPending,
|
|
32639
32673
|
onRetryClick: restartRun,
|
|
32674
|
+
retrying: state.retryPending,
|
|
32640
32675
|
onExitClick: onExitAfterFailure != null ? onExitAfterFailure : onExit,
|
|
32641
32676
|
assets: assets.failure,
|
|
32642
32677
|
verbiage: verbiage.failure,
|
|
@@ -41596,14 +41631,8 @@
|
|
|
41596
41631
|
className: classNames.captureBtn,
|
|
41597
41632
|
finished: state.camera.ready,
|
|
41598
41633
|
variant: "primary",
|
|
41599
|
-
// Guarded rather than relying on `disabled` alone: with
|
|
41600
|
-
// `finished` false, LoaderButton hands the element to ladda,
|
|
41601
|
-
// which manipulates its disabled state imperatively
|
|
41602
|
-
// (LoaderButton.tsx:63-79). The button can therefore be
|
|
41603
|
-
// clickable mid-animation, which CI caught.
|
|
41604
41634
|
onClick: function onClick() {
|
|
41605
|
-
|
|
41606
|
-
void controller.actions.capture();
|
|
41635
|
+
return void controller.actions.capture();
|
|
41607
41636
|
},
|
|
41608
41637
|
disabled: !state.camera.ready || state.capturing,
|
|
41609
41638
|
children: !state.camera.ready ? verbiage.loadingBtnText : state.capturing ? verbiage.capturingBtnText : verbiage.captureBtnText
|
|
@@ -54108,7 +54137,7 @@
|
|
|
54108
54137
|
});
|
|
54109
54138
|
}
|
|
54110
54139
|
|
|
54111
|
-
var webSdkVersion = '2.5.83-changeset-release-develop-
|
|
54140
|
+
var webSdkVersion = '2.5.83-changeset-release-develop-2127d44';
|
|
54112
54141
|
|
|
54113
54142
|
// GENERATED by scripts/styleBagTypes.mjs from
|
|
54114
54143
|
// src/__fixtures__/sdk2StyleBags.json and the mapper sweep — do not
|
|
@@ -57440,468 +57469,6 @@
|
|
|
57440
57469
|
// of the 2.x contract — a consumer that imports a single type still gets it.
|
|
57441
57470
|
initializeI18n();
|
|
57442
57471
|
|
|
57443
|
-
var __assign = undefined && undefined.__assign || function () {
|
|
57444
|
-
__assign = Object.assign || function (t) {
|
|
57445
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
57446
|
-
s = arguments[i];
|
|
57447
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
57448
|
-
}
|
|
57449
|
-
return t;
|
|
57450
|
-
};
|
|
57451
|
-
return __assign.apply(this, arguments);
|
|
57452
|
-
};
|
|
57453
|
-
var defaults = {
|
|
57454
|
-
lines: 12,
|
|
57455
|
-
length: 7,
|
|
57456
|
-
width: 5,
|
|
57457
|
-
radius: 10,
|
|
57458
|
-
scale: 1.0,
|
|
57459
|
-
corners: 1,
|
|
57460
|
-
color: '#000',
|
|
57461
|
-
fadeColor: 'transparent',
|
|
57462
|
-
animation: 'spinner-line-fade-default',
|
|
57463
|
-
rotate: 0,
|
|
57464
|
-
direction: 1,
|
|
57465
|
-
speed: 1,
|
|
57466
|
-
zIndex: 2e9,
|
|
57467
|
-
className: 'spinner',
|
|
57468
|
-
top: '50%',
|
|
57469
|
-
left: '50%',
|
|
57470
|
-
shadow: '0 0 1px transparent',
|
|
57471
|
-
// prevent aliased lines
|
|
57472
|
-
position: 'absolute'
|
|
57473
|
-
};
|
|
57474
|
-
var Spinner = /** @class */function () {
|
|
57475
|
-
function Spinner(opts) {
|
|
57476
|
-
if (opts === void 0) {
|
|
57477
|
-
opts = {};
|
|
57478
|
-
}
|
|
57479
|
-
this.opts = __assign(__assign({}, defaults), opts);
|
|
57480
|
-
}
|
|
57481
|
-
/**
|
|
57482
|
-
* Adds the spinner to the given target element. If this instance is already
|
|
57483
|
-
* spinning, it is automatically removed from its previous target by calling
|
|
57484
|
-
* stop() internally.
|
|
57485
|
-
*/
|
|
57486
|
-
Spinner.prototype.spin = function (target) {
|
|
57487
|
-
this.stop();
|
|
57488
|
-
this.el = document.createElement('div');
|
|
57489
|
-
this.el.className = this.opts.className;
|
|
57490
|
-
this.el.setAttribute('role', 'progressbar');
|
|
57491
|
-
this.el.style.position = this.opts.position;
|
|
57492
|
-
this.el.style.width = "0";
|
|
57493
|
-
this.el.style.zIndex = this.opts.zIndex.toString();
|
|
57494
|
-
this.el.style.left = this.opts.left;
|
|
57495
|
-
this.el.style.top = this.opts.top;
|
|
57496
|
-
this.el.style.transform = "scale(".concat(this.opts.scale, ")");
|
|
57497
|
-
if (target) {
|
|
57498
|
-
target.insertBefore(this.el, target.firstChild || null);
|
|
57499
|
-
}
|
|
57500
|
-
drawLines(this.el, this.opts);
|
|
57501
|
-
return this;
|
|
57502
|
-
};
|
|
57503
|
-
/**
|
|
57504
|
-
* Stops and removes the Spinner.
|
|
57505
|
-
* Stopped spinners may be reused by calling spin() again.
|
|
57506
|
-
*/
|
|
57507
|
-
Spinner.prototype.stop = function () {
|
|
57508
|
-
if (this.el) {
|
|
57509
|
-
if (this.el.parentNode) {
|
|
57510
|
-
this.el.parentNode.removeChild(this.el);
|
|
57511
|
-
}
|
|
57512
|
-
this.el = undefined;
|
|
57513
|
-
}
|
|
57514
|
-
return this;
|
|
57515
|
-
};
|
|
57516
|
-
return Spinner;
|
|
57517
|
-
}();
|
|
57518
|
-
/**
|
|
57519
|
-
* Returns the line color from the given string or array.
|
|
57520
|
-
*/
|
|
57521
|
-
function getColor(color, idx) {
|
|
57522
|
-
return typeof color == 'string' ? color : color[idx % color.length];
|
|
57523
|
-
}
|
|
57524
|
-
/**
|
|
57525
|
-
* Internal method that draws the individual lines.
|
|
57526
|
-
*/
|
|
57527
|
-
function drawLines(el, opts) {
|
|
57528
|
-
var borderRadius = Math.round(opts.corners * opts.width * 500) / 1000 + 'px';
|
|
57529
|
-
var shadow = 'none';
|
|
57530
|
-
if (opts.shadow === true) {
|
|
57531
|
-
shadow = '0 2px 4px #000'; // default shadow
|
|
57532
|
-
} else if (typeof opts.shadow === 'string') {
|
|
57533
|
-
shadow = opts.shadow;
|
|
57534
|
-
}
|
|
57535
|
-
var shadows = parseBoxShadow(shadow);
|
|
57536
|
-
for (var i = 0; i < opts.lines; i++) {
|
|
57537
|
-
var degrees = ~~(360 / opts.lines * i + opts.rotate);
|
|
57538
|
-
var backgroundLine = document.createElement('div');
|
|
57539
|
-
backgroundLine.style.position = 'absolute';
|
|
57540
|
-
backgroundLine.style.top = "".concat(-opts.width / 2, "px");
|
|
57541
|
-
backgroundLine.style.width = opts.length + opts.width + 'px';
|
|
57542
|
-
backgroundLine.style.height = opts.width + 'px';
|
|
57543
|
-
backgroundLine.style.background = getColor(opts.fadeColor, i);
|
|
57544
|
-
backgroundLine.style.borderRadius = borderRadius;
|
|
57545
|
-
backgroundLine.style.transformOrigin = 'left';
|
|
57546
|
-
backgroundLine.style.transform = "rotate(".concat(degrees, "deg) translateX(").concat(opts.radius, "px)");
|
|
57547
|
-
var delay = i * opts.direction / opts.lines / opts.speed;
|
|
57548
|
-
delay -= 1 / opts.speed; // so initial animation state will include trail
|
|
57549
|
-
var line = document.createElement('div');
|
|
57550
|
-
line.style.width = '100%';
|
|
57551
|
-
line.style.height = '100%';
|
|
57552
|
-
line.style.background = getColor(opts.color, i);
|
|
57553
|
-
line.style.borderRadius = borderRadius;
|
|
57554
|
-
line.style.boxShadow = normalizeShadow(shadows, degrees);
|
|
57555
|
-
line.style.animation = "".concat(1 / opts.speed, "s linear ").concat(delay, "s infinite ").concat(opts.animation);
|
|
57556
|
-
backgroundLine.appendChild(line);
|
|
57557
|
-
el.appendChild(backgroundLine);
|
|
57558
|
-
}
|
|
57559
|
-
}
|
|
57560
|
-
function parseBoxShadow(boxShadow) {
|
|
57561
|
-
var regex = /^\s*([a-zA-Z]+\s+)?(-?\d+(\.\d+)?)([a-zA-Z]*)\s+(-?\d+(\.\d+)?)([a-zA-Z]*)(.*)$/;
|
|
57562
|
-
var shadows = [];
|
|
57563
|
-
for (var _i = 0, _a = boxShadow.split(','); _i < _a.length; _i++) {
|
|
57564
|
-
var shadow = _a[_i];
|
|
57565
|
-
var matches = shadow.match(regex);
|
|
57566
|
-
if (matches === null) {
|
|
57567
|
-
continue; // invalid syntax
|
|
57568
|
-
}
|
|
57569
|
-
var x = +matches[2];
|
|
57570
|
-
var y = +matches[5];
|
|
57571
|
-
var xUnits = matches[4];
|
|
57572
|
-
var yUnits = matches[7];
|
|
57573
|
-
if (x === 0 && !xUnits) {
|
|
57574
|
-
xUnits = yUnits;
|
|
57575
|
-
}
|
|
57576
|
-
if (y === 0 && !yUnits) {
|
|
57577
|
-
yUnits = xUnits;
|
|
57578
|
-
}
|
|
57579
|
-
if (xUnits !== yUnits) {
|
|
57580
|
-
continue; // units must match to use as coordinates
|
|
57581
|
-
}
|
|
57582
|
-
shadows.push({
|
|
57583
|
-
prefix: matches[1] || '',
|
|
57584
|
-
// could have value of 'inset' or undefined
|
|
57585
|
-
x: x,
|
|
57586
|
-
y: y,
|
|
57587
|
-
xUnits: xUnits,
|
|
57588
|
-
yUnits: yUnits,
|
|
57589
|
-
end: matches[8]
|
|
57590
|
-
});
|
|
57591
|
-
}
|
|
57592
|
-
return shadows;
|
|
57593
|
-
}
|
|
57594
|
-
/**
|
|
57595
|
-
* Modify box-shadow x/y offsets to counteract rotation
|
|
57596
|
-
*/
|
|
57597
|
-
function normalizeShadow(shadows, degrees) {
|
|
57598
|
-
var normalized = [];
|
|
57599
|
-
for (var _i = 0, shadows_1 = shadows; _i < shadows_1.length; _i++) {
|
|
57600
|
-
var shadow = shadows_1[_i];
|
|
57601
|
-
var xy = convertOffset(shadow.x, shadow.y, degrees);
|
|
57602
|
-
normalized.push(shadow.prefix + xy[0] + shadow.xUnits + ' ' + xy[1] + shadow.yUnits + shadow.end);
|
|
57603
|
-
}
|
|
57604
|
-
return normalized.join(', ');
|
|
57605
|
-
}
|
|
57606
|
-
function convertOffset(x, y, degrees) {
|
|
57607
|
-
var radians = degrees * Math.PI / 180;
|
|
57608
|
-
var sin = Math.sin(radians);
|
|
57609
|
-
var cos = Math.cos(radians);
|
|
57610
|
-
return [Math.round((x * cos + y * sin) * 1000) / 1000, Math.round((-x * sin + y * cos) * 1000) / 1000];
|
|
57611
|
-
}
|
|
57612
|
-
|
|
57613
|
-
/*!
|
|
57614
|
-
* Ladda
|
|
57615
|
-
* http://lab.hakim.se/ladda
|
|
57616
|
-
* MIT licensed
|
|
57617
|
-
*
|
|
57618
|
-
* Copyright (C) 2018 Hakim El Hattab, http://hakim.se
|
|
57619
|
-
*/
|
|
57620
|
-
|
|
57621
|
-
|
|
57622
|
-
// All currently instantiated instances of Ladda
|
|
57623
|
-
var ALL_INSTANCES = [];
|
|
57624
|
-
|
|
57625
|
-
/**
|
|
57626
|
-
* Creates a new instance of Ladda which wraps the
|
|
57627
|
-
* target button element.
|
|
57628
|
-
*
|
|
57629
|
-
* @return An API object that can be used to control
|
|
57630
|
-
* the loading animation state.
|
|
57631
|
-
*/
|
|
57632
|
-
function create(button) {
|
|
57633
|
-
if (typeof button === 'undefined') {
|
|
57634
|
-
console.warn("Ladda button target must be defined.");
|
|
57635
|
-
return;
|
|
57636
|
-
}
|
|
57637
|
-
|
|
57638
|
-
// The button must have the class "ladda-button"
|
|
57639
|
-
if (!button.classList.contains('ladda-button')) {
|
|
57640
|
-
button.classList.add('ladda-button');
|
|
57641
|
-
}
|
|
57642
|
-
|
|
57643
|
-
// Style is required, default to "expand-right"
|
|
57644
|
-
if (!button.hasAttribute('data-style')) {
|
|
57645
|
-
button.setAttribute('data-style', 'expand-right');
|
|
57646
|
-
}
|
|
57647
|
-
|
|
57648
|
-
// The text contents must be wrapped in a ladda-label
|
|
57649
|
-
// element, create one if it doesn't already exist
|
|
57650
|
-
if (!button.querySelector('.ladda-label')) {
|
|
57651
|
-
var laddaLabel = document.createElement('span');
|
|
57652
|
-
laddaLabel.className = 'ladda-label';
|
|
57653
|
-
wrapContent(button, laddaLabel);
|
|
57654
|
-
}
|
|
57655
|
-
|
|
57656
|
-
// The spinner component
|
|
57657
|
-
var spinnerWrapper = button.querySelector('.ladda-spinner');
|
|
57658
|
-
|
|
57659
|
-
// Wrapper element for the spinner
|
|
57660
|
-
if (!spinnerWrapper) {
|
|
57661
|
-
spinnerWrapper = document.createElement('span');
|
|
57662
|
-
spinnerWrapper.className = 'ladda-spinner';
|
|
57663
|
-
}
|
|
57664
|
-
button.appendChild(spinnerWrapper);
|
|
57665
|
-
|
|
57666
|
-
// Timer used to delay starting/stopping
|
|
57667
|
-
var timer;
|
|
57668
|
-
var spinner;
|
|
57669
|
-
var instance = {
|
|
57670
|
-
/**
|
|
57671
|
-
* Enter the loading state.
|
|
57672
|
-
*/
|
|
57673
|
-
start: function start() {
|
|
57674
|
-
// Create the spinner if it doesn't already exist
|
|
57675
|
-
if (!spinner) {
|
|
57676
|
-
spinner = createSpinner(button);
|
|
57677
|
-
}
|
|
57678
|
-
button.disabled = true;
|
|
57679
|
-
button.setAttribute('data-loading', '');
|
|
57680
|
-
clearTimeout(timer);
|
|
57681
|
-
spinner.spin(spinnerWrapper);
|
|
57682
|
-
this.setProgress(0);
|
|
57683
|
-
return this; // chain
|
|
57684
|
-
},
|
|
57685
|
-
/**
|
|
57686
|
-
* Enter the loading state, after a delay.
|
|
57687
|
-
*/
|
|
57688
|
-
startAfter: function startAfter(delay) {
|
|
57689
|
-
clearTimeout(timer);
|
|
57690
|
-
timer = setTimeout(function () {
|
|
57691
|
-
instance.start();
|
|
57692
|
-
}, delay);
|
|
57693
|
-
return this; // chain
|
|
57694
|
-
},
|
|
57695
|
-
/**
|
|
57696
|
-
* Exit the loading state.
|
|
57697
|
-
*/
|
|
57698
|
-
stop: function stop() {
|
|
57699
|
-
if (instance.isLoading()) {
|
|
57700
|
-
button.disabled = false;
|
|
57701
|
-
button.removeAttribute('data-loading');
|
|
57702
|
-
}
|
|
57703
|
-
|
|
57704
|
-
// Kill the animation after a delay to make sure it
|
|
57705
|
-
// runs for the duration of the button transition
|
|
57706
|
-
clearTimeout(timer);
|
|
57707
|
-
if (spinner) {
|
|
57708
|
-
timer = setTimeout(function () {
|
|
57709
|
-
spinner.stop();
|
|
57710
|
-
}, 1000);
|
|
57711
|
-
}
|
|
57712
|
-
return this; // chain
|
|
57713
|
-
},
|
|
57714
|
-
/**
|
|
57715
|
-
* Toggle the loading state on/off.
|
|
57716
|
-
*/
|
|
57717
|
-
toggle: function toggle() {
|
|
57718
|
-
return this.isLoading() ? this.stop() : this.start();
|
|
57719
|
-
},
|
|
57720
|
-
/**
|
|
57721
|
-
* Sets the width of the visual progress bar inside of
|
|
57722
|
-
* this Ladda button
|
|
57723
|
-
*
|
|
57724
|
-
* @param {number} progress in the range of 0-1
|
|
57725
|
-
*/
|
|
57726
|
-
setProgress: function setProgress(progress) {
|
|
57727
|
-
// Cap it
|
|
57728
|
-
progress = Math.max(Math.min(progress, 1), 0);
|
|
57729
|
-
var progressElement = button.querySelector('.ladda-progress');
|
|
57730
|
-
|
|
57731
|
-
// Remove the progress bar if we're at 0 progress
|
|
57732
|
-
if (progress === 0 && progressElement && progressElement.parentNode) {
|
|
57733
|
-
progressElement.parentNode.removeChild(progressElement);
|
|
57734
|
-
} else {
|
|
57735
|
-
if (!progressElement) {
|
|
57736
|
-
progressElement = document.createElement('div');
|
|
57737
|
-
progressElement.className = 'ladda-progress';
|
|
57738
|
-
button.appendChild(progressElement);
|
|
57739
|
-
}
|
|
57740
|
-
progressElement.style.width = (progress || 0) * button.offsetWidth + 'px';
|
|
57741
|
-
}
|
|
57742
|
-
},
|
|
57743
|
-
isLoading: function isLoading() {
|
|
57744
|
-
return button.hasAttribute('data-loading');
|
|
57745
|
-
},
|
|
57746
|
-
remove: function remove() {
|
|
57747
|
-
clearTimeout(timer);
|
|
57748
|
-
button.disabled = false;
|
|
57749
|
-
button.removeAttribute('data-loading');
|
|
57750
|
-
if (spinner) {
|
|
57751
|
-
spinner.stop();
|
|
57752
|
-
spinner = null;
|
|
57753
|
-
}
|
|
57754
|
-
ALL_INSTANCES.splice(ALL_INSTANCES.indexOf(instance), 1);
|
|
57755
|
-
}
|
|
57756
|
-
};
|
|
57757
|
-
ALL_INSTANCES.push(instance);
|
|
57758
|
-
return instance;
|
|
57759
|
-
}
|
|
57760
|
-
|
|
57761
|
-
/**
|
|
57762
|
-
* Binds the target buttons to automatically enter the
|
|
57763
|
-
* loading state when clicked.
|
|
57764
|
-
*
|
|
57765
|
-
* @param target Either an HTML element or a CSS selector.
|
|
57766
|
-
* @param options
|
|
57767
|
-
* - timeout Number of milliseconds to wait before
|
|
57768
|
-
* automatically cancelling the animation.
|
|
57769
|
-
* - callback A function to be called with the Ladda
|
|
57770
|
-
* instance when a target button is clicked.
|
|
57771
|
-
*/
|
|
57772
|
-
function bind(target, options) {
|
|
57773
|
-
var targets;
|
|
57774
|
-
if (typeof target === 'string') {
|
|
57775
|
-
targets = document.querySelectorAll(target);
|
|
57776
|
-
} else if (typeof target === 'object') {
|
|
57777
|
-
targets = [target];
|
|
57778
|
-
} else {
|
|
57779
|
-
throw new Error('target must be string or object');
|
|
57780
|
-
}
|
|
57781
|
-
options = options || {};
|
|
57782
|
-
for (var i = 0; i < targets.length; i++) {
|
|
57783
|
-
bindElement(targets[i], options);
|
|
57784
|
-
}
|
|
57785
|
-
}
|
|
57786
|
-
|
|
57787
|
-
/**
|
|
57788
|
-
* Stops ALL current loading animations.
|
|
57789
|
-
*/
|
|
57790
|
-
function stopAll() {
|
|
57791
|
-
for (var i = 0, len = ALL_INSTANCES.length; i < len; i++) {
|
|
57792
|
-
ALL_INSTANCES[i].stop();
|
|
57793
|
-
}
|
|
57794
|
-
}
|
|
57795
|
-
|
|
57796
|
-
/**
|
|
57797
|
-
* Get the first ancestor node from an element, having a
|
|
57798
|
-
* certain type.
|
|
57799
|
-
*
|
|
57800
|
-
* @param elem An HTML element
|
|
57801
|
-
* @param type an HTML tag type (uppercased)
|
|
57802
|
-
*
|
|
57803
|
-
* @return An HTML element
|
|
57804
|
-
*/
|
|
57805
|
-
function getAncestorOfTagType(elem, type) {
|
|
57806
|
-
while (elem.parentNode && elem.tagName !== type) {
|
|
57807
|
-
elem = elem.parentNode;
|
|
57808
|
-
}
|
|
57809
|
-
return type === elem.tagName ? elem : undefined;
|
|
57810
|
-
}
|
|
57811
|
-
function createSpinner(button) {
|
|
57812
|
-
var height = button.offsetHeight,
|
|
57813
|
-
spinnerColor,
|
|
57814
|
-
spinnerLines;
|
|
57815
|
-
if (height === 0) {
|
|
57816
|
-
// We may have an element that is not visible so
|
|
57817
|
-
// we attempt to get the height in a different way
|
|
57818
|
-
height = parseFloat(window.getComputedStyle(button).height);
|
|
57819
|
-
}
|
|
57820
|
-
|
|
57821
|
-
// If the button is tall we can afford some padding
|
|
57822
|
-
if (height > 32) {
|
|
57823
|
-
height *= 0.8;
|
|
57824
|
-
}
|
|
57825
|
-
|
|
57826
|
-
// Prefer an explicit height if one is defined
|
|
57827
|
-
if (button.hasAttribute('data-spinner-size')) {
|
|
57828
|
-
height = parseInt(button.getAttribute('data-spinner-size'), 10);
|
|
57829
|
-
}
|
|
57830
|
-
|
|
57831
|
-
// Allow buttons to specify the color of the spinner element
|
|
57832
|
-
if (button.hasAttribute('data-spinner-color')) {
|
|
57833
|
-
spinnerColor = button.getAttribute('data-spinner-color');
|
|
57834
|
-
}
|
|
57835
|
-
|
|
57836
|
-
// Allow buttons to specify the number of lines of the spinner
|
|
57837
|
-
if (button.hasAttribute('data-spinner-lines')) {
|
|
57838
|
-
spinnerLines = parseInt(button.getAttribute('data-spinner-lines'), 10);
|
|
57839
|
-
}
|
|
57840
|
-
var radius = height * 0.2,
|
|
57841
|
-
length = radius * 0.6,
|
|
57842
|
-
width = radius < 7 ? 2 : 3;
|
|
57843
|
-
return new Spinner({
|
|
57844
|
-
color: spinnerColor || '#fff',
|
|
57845
|
-
lines: spinnerLines || 12,
|
|
57846
|
-
radius: radius,
|
|
57847
|
-
length: length,
|
|
57848
|
-
width: width,
|
|
57849
|
-
animation: 'ladda-spinner-line-fade',
|
|
57850
|
-
zIndex: 'auto',
|
|
57851
|
-
top: 'auto',
|
|
57852
|
-
left: 'auto',
|
|
57853
|
-
className: ''
|
|
57854
|
-
});
|
|
57855
|
-
}
|
|
57856
|
-
function wrapContent(node, wrapper) {
|
|
57857
|
-
var r = document.createRange();
|
|
57858
|
-
r.selectNodeContents(node);
|
|
57859
|
-
r.surroundContents(wrapper);
|
|
57860
|
-
node.appendChild(wrapper);
|
|
57861
|
-
}
|
|
57862
|
-
function bindElement(element, options) {
|
|
57863
|
-
if (typeof element.addEventListener !== 'function') {
|
|
57864
|
-
return;
|
|
57865
|
-
}
|
|
57866
|
-
var instance = create(element);
|
|
57867
|
-
var timeout = -1;
|
|
57868
|
-
element.addEventListener('click', function () {
|
|
57869
|
-
// If the button belongs to a form, make sure all the
|
|
57870
|
-
// fields in that form are filled out
|
|
57871
|
-
var valid = true;
|
|
57872
|
-
var form = getAncestorOfTagType(element, 'FORM');
|
|
57873
|
-
if (typeof form !== 'undefined' && !form.hasAttribute('novalidate')) {
|
|
57874
|
-
// Modern form validation
|
|
57875
|
-
if (typeof form.checkValidity === 'function') {
|
|
57876
|
-
valid = form.checkValidity();
|
|
57877
|
-
}
|
|
57878
|
-
}
|
|
57879
|
-
if (valid) {
|
|
57880
|
-
// This is asynchronous to avoid an issue where disabling
|
|
57881
|
-
// the button prevents forms from submitting
|
|
57882
|
-
instance.startAfter(1);
|
|
57883
|
-
|
|
57884
|
-
// Set a loading timeout if one is specified
|
|
57885
|
-
if (typeof options.timeout === 'number') {
|
|
57886
|
-
clearTimeout(timeout);
|
|
57887
|
-
timeout = setTimeout(instance.stop, options.timeout);
|
|
57888
|
-
}
|
|
57889
|
-
|
|
57890
|
-
// Invoke callbacks
|
|
57891
|
-
if (typeof options.callback === 'function') {
|
|
57892
|
-
options.callback.apply(null, [instance]);
|
|
57893
|
-
}
|
|
57894
|
-
}
|
|
57895
|
-
}, false);
|
|
57896
|
-
}
|
|
57897
|
-
|
|
57898
|
-
var ladda = /*#__PURE__*/Object.freeze({
|
|
57899
|
-
__proto__: null,
|
|
57900
|
-
bind: bind,
|
|
57901
|
-
create: create,
|
|
57902
|
-
stopAll: stopAll
|
|
57903
|
-
});
|
|
57904
|
-
|
|
57905
57472
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
57906
57473
|
function _createForOfIteratorHelperLoose$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: true } : { done: false, value: r[o++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
57907
57474
|
function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
|