@smileid/web-components 11.0.3 → 11.2.0

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.
Files changed (93) hide show
  1. package/README.md +61 -0
  2. package/dist/components/smart-camera-web/src/README.md +0 -1
  3. package/dist/esm/{DocumentCaptureScreens-C5BhNB-0.js → DocumentCaptureScreens-BbtA-WkX.js} +199 -193
  4. package/dist/esm/DocumentCaptureScreens-BbtA-WkX.js.map +1 -0
  5. package/dist/esm/{EndUserConsent-D4fd1ovG.js → EndUserConsent-HVufMamg.js} +65 -63
  6. package/dist/esm/EndUserConsent-HVufMamg.js.map +1 -0
  7. package/dist/esm/{Navigation-CTjK6tLU.js → Navigation-B-dqPkZj.js} +17 -9
  8. package/dist/esm/Navigation-B-dqPkZj.js.map +1 -0
  9. package/dist/esm/{SelfieCaptureScreens-KoQpCxtc.js → SelfieCaptureScreens-ChAMfKi3.js} +3274 -3329
  10. package/dist/esm/SelfieCaptureScreens-ChAMfKi3.js.map +1 -0
  11. package/dist/esm/{TotpConsent-CQU5jQi4.js → TotpConsent-XxR8TNxy.js} +13 -9
  12. package/dist/esm/TotpConsent-XxR8TNxy.js.map +1 -0
  13. package/dist/esm/combobox.js +20 -19
  14. package/dist/esm/combobox.js.map +1 -1
  15. package/dist/esm/document.js +1 -1
  16. package/dist/esm/end-user-consent.js +1 -1
  17. package/dist/esm/index-B_ozpejI.js +1360 -0
  18. package/dist/esm/index-B_ozpejI.js.map +1 -0
  19. package/dist/esm/localisation.js +21 -0
  20. package/dist/esm/localisation.js.map +1 -0
  21. package/dist/esm/main.js +34 -17
  22. package/dist/esm/main.js.map +1 -1
  23. package/dist/esm/navigation.js +1 -1
  24. package/dist/esm/{package-B-UwEdv7.js → package-u3FEJ3Fm.js} +25 -40
  25. package/dist/esm/package-u3FEJ3Fm.js.map +1 -0
  26. package/dist/esm/selfie.js +1 -1
  27. package/dist/esm/smart-camera-web.js +32 -23
  28. package/dist/esm/smart-camera-web.js.map +1 -1
  29. package/dist/esm/totp-consent.js +1 -1
  30. package/dist/package.json +1 -1
  31. package/dist/smart-camera-web.js +144 -160
  32. package/dist/smart-camera-web.js.map +1 -1
  33. package/dist/src/components/combobox/src/index.js +424 -1
  34. package/dist/src/components/document/src/index.js +1422 -1
  35. package/dist/src/components/end-user-consent/src/index.js +1573 -1
  36. package/dist/src/components/selfie/src/index.js +1220 -1
  37. package/dist/src/components/signature-pad/src/index.js +787 -1
  38. package/dist/src/components/smart-camera-web/src/SmartCameraWeb.js +2753 -1
  39. package/dist/src/components/totp-consent/src/index.js +1292 -1
  40. package/dist/types/combobox.d.ts +2 -2
  41. package/dist/types/document.d.ts +2 -2
  42. package/dist/types/end-user-consent.d.ts +2 -2
  43. package/dist/types/locale.d.ts +19 -0
  44. package/dist/types/localisation.d.ts +21 -0
  45. package/dist/types/main.d.ts +35 -26
  46. package/dist/types/navigation.d.ts +2 -2
  47. package/dist/types/selfie.d.ts +2 -2
  48. package/dist/types/signature-pad.d.ts +2 -2
  49. package/dist/types/smart-camera-web.d.ts +2 -2
  50. package/dist/types/totp-consent.d.ts +2 -2
  51. package/lib/components/camera-permission/CameraPermission.js +9 -4
  52. package/lib/components/combobox/src/Combobox.js +4 -2
  53. package/lib/components/document/src/DocumentCaptureScreens.js +4 -3
  54. package/lib/components/document/src/DocumentCaptureScreens.stories.js +37 -13
  55. package/lib/components/document/src/document-capture/DocumentCapture.js +23 -17
  56. package/lib/components/document/src/document-capture/DocumentCapture.stories.js +11 -2
  57. package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js +19 -14
  58. package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.stories.js +14 -5
  59. package/lib/components/document/src/document-capture-review/DocumentCaptureReview.js +14 -10
  60. package/lib/components/document/src/document-capture-review/DocumentCaptureReview.stories.js +14 -5
  61. package/lib/components/end-user-consent/src/EndUserConsent.js +30 -29
  62. package/lib/components/end-user-consent/src/EndUserConsent.stories.js +12 -2
  63. package/lib/components/navigation/src/Navigation.js +15 -2
  64. package/lib/components/navigation/src/Navigation.stories.js +20 -4
  65. package/lib/components/selfie/src/SelfieCaptureScreens.js +12 -8
  66. package/lib/components/selfie/src/SelfieCaptureScreens.stories.js +16 -4
  67. package/lib/components/selfie/src/selfie-capture/SelfieCapture.js +25 -18
  68. package/lib/components/selfie/src/selfie-capture/SelfieCapture.stories.js +19 -7
  69. package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js +19 -14
  70. package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.stories.js +14 -5
  71. package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js +13 -8
  72. package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.stories.js +14 -5
  73. package/lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx +98 -47
  74. package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx +2 -2
  75. package/lib/components/selfie/src/smartselfie-capture/components/CaptureControls.tsx +5 -2
  76. package/lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts +4 -4
  77. package/lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts +6 -5
  78. package/lib/components/selfie/src/smartselfie-capture/utils/alertMessages.ts +11 -9
  79. package/lib/components/selfie/src/smartselfie-capture/utils/imageCapture.ts +3 -1
  80. package/lib/components/signature-pad/package.json +1 -1
  81. package/lib/components/smart-camera-web/src/SmartCameraWeb.js +9 -1
  82. package/lib/components/totp-consent/src/TotpConsent.js +8 -3
  83. package/lib/domain/camera/src/SmartCamera.js +7 -22
  84. package/lib/domain/constants/src/Constants.js +28 -0
  85. package/lib/domain/file-upload/src/SmartFileUpload.js +9 -10
  86. package/lib/domain/localisation/index.js +456 -0
  87. package/package.json +13 -7
  88. package/dist/esm/DocumentCaptureScreens-C5BhNB-0.js.map +0 -1
  89. package/dist/esm/EndUserConsent-D4fd1ovG.js.map +0 -1
  90. package/dist/esm/Navigation-CTjK6tLU.js.map +0 -1
  91. package/dist/esm/SelfieCaptureScreens-KoQpCxtc.js.map +0 -1
  92. package/dist/esm/TotpConsent-CQU5jQi4.js.map +0 -1
  93. package/dist/esm/package-B-UwEdv7.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocumentCaptureScreens-C5BhNB-0.js","sources":["../../lib/components/document/src/document-capture/DocumentCapture.js","../../lib/components/document/src/document-capture-review/DocumentCaptureReview.js","../../lib/domain/file-upload/src/SmartFileUpload.js","../../lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js","../../lib/components/document/src/DocumentCaptureScreens.js"],"sourcesContent":["import SmartCamera from '../../../../domain/camera/src/SmartCamera';\nimport styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\n\nfunction hasMoreThanNColors(data, n = 16) {\n const colors = new Set();\n for (let i = 0; i < Math.min(data.length, 10000); i += 4) {\n // eslint-disable-next-line no-bitwise\n colors.add((data[i] << 16) | (data[i + 1] << 8) | data[i + 2]);\n if (colors.size > n) {\n return true;\n }\n }\n return false;\n}\n\nfunction templateString() {\n return `\n <style>\n .visually-hidden {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: auto;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n .mobile-camera-screen video {\n display: block;\n object-fit: cover;\n object-position: center;\n width: 100%;\n }\n\n .id-video.mobile-camera-screen {\n display: flex;\n align-items: stretch;\n justify-content: center;\n max-height: 300px;\n height: 15rem;\n width: 100%;\n overflow: visible;\n margin: 0 auto;\n }\n \n @media (max-width: 600px) {\n .section {\n width: 99%;\n height: 100vh;\n justify-content: center;\n }\n }\n\n\n\n #document-capture-screen,\n #back-of-document-capture-screen {\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n padding: 1rem;\n }\n\n #document-capture-screen header p {\n margin-block: 0 !important;\n }\n\n .padding-bottom-2 {\n padding-bottom: 2rem;\n }\n @media (min-width: 600px) {\n video {\n object-fit: contain;\n -webkit-tap-highlight-color: transparent;\n content: normal;\n }\n \n .id-video {\n width: 99%;\n text-align: center;\n position: relative;\n overflow: hidden;\n }\n\n .id-video-container {\n margin: auto;\n padding: 0px;\n }\n }\n .id-video-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n .id-video {\n width: 100%;\n text-align: center;\n position: relative;\n background: white;\n }\n .video-overlay {\n position: absolute;\n border-style: solid;\n border-color: rgba(0, 0, 0, 0.48);\n box-sizing: border-box;\n inset: 0px;\n }\n \n .video-overlay .inner-border {\n position: absolute;\n border-width: 0.25rem;\n border-color: #9394ab;\n border-style: solid;\n border-radius: 0.25rem;\n inset: -1px;\n }\n canvas {\n width: 100%;\n border-width: 0.25rem;\n border-color: #9394ab;\n border-style: solid;\n border-radius: 0.25rem;\n }\n \n .description {\n align-self: center;\n padding-bottom: 1.75rem;\n }\n .reset-margin-block {\n margin-block: 0;\n }\n .align-items-center {\n align-items: center;\n }\n .id-side {\n padding-bottom: 0.5rem;\n }\n \n .circle-progress {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 10rem;\n }\n\n .portrait .sticky {\n position: -webkit-sticky; /* Safari */\n position: sticky;\n bottom: 0;\n }\n .video-footer {\n background-color: rgba(255, 255, 255, 0.17);\n padding-top: 10px;\n }\n </style>\n ${styles(this.themeColor)}\n <div id='document-capture-screen' class='flow center flex-column'>\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\n <h2 class='text-base font-bold title-color'>${this.documentName}</h2>\n <div class=\"circle-progress\" id=\"loader\">\n ${this.cameraError ? '' : '<p class=\"spinner\"></p>'}\n ${this.cameraError ? `<p style=\"--flow-space: 4rem\" class='color-red | center'>${this.cameraError}</p>` : '<p style=\"--flow-space: 4rem\">Checking permissions</p>'}\n </div>\n <div class='section | flow ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}' ${this.cameraError ? 'hidden' : ''}>\n <div class='id-video-container'>\n <div class='id-video ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}' hidden>\n </div>\n <div class='video-footer sticky'>\n <h2 class='text-base font-bold title-color reset-margin-block id-side'>${this.title}</h2>\n <h4 class='text-base font-normal title-color description reset-margin-block'>Make sure all corners are visible and there is no glare.</h4>\n <div class='actions' hidden>\n <button id='capture-id-image' class='button icon-btn | center' type='button'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"70\" height=\"70\" viewBox=\"0 0 70 70\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35 70C54.33 70 70 54.33 70 35C70 15.67 54.33 0 35 0C15.67 0 0 15.67 0 35C0 54.33 15.67 70 35 70ZM61 35C61 49.3594 49.3594 61 35 61C20.6406 61 9 49.3594 9 35C9 20.6406 20.6406 9 35 9C49.3594 9 61 20.6406 61 35ZM65 35C65 51.5685 51.5685 65 35 65C18.4315 65 5 51.5685 5 35C5 18.4315 18.4315 5 35 5C51.5685 5 65 18.4315 65 35Z\" fill=\"${this.themeColor}\"/>\n </svg>\n <span class='visually-hidden'>Capture Document</span>\n </button>\n </div>\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\n </div>\n </div>\n </div>\n </div>\n `;\n}\n\nconst documentCaptureScale = 0.6;\n\nclass DocumentCapture extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n this.IdSides = {\n back: 'Back',\n front: 'Front',\n };\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n this.shadowRoot.innerHTML = '';\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n this.setUpEventListeners();\n }\n\n async getUserMedia() {\n if (SmartCamera.stream) {\n return;\n }\n if (!this.hasAttribute('data-camera-error')) return;\n\n try {\n await SmartCamera.getMedia({\n audio: false,\n video: {\n ...SmartCamera.environmentOptions,\n aspectRatio: { ideal: 16 / 9 },\n },\n });\n } catch (error) {\n console.error(error.constraint);\n console.error(error.message);\n }\n\n this.handleIDStream(SmartCamera.stream);\n }\n\n _captureIDImage() {\n const imageDetails = this._drawIDImage();\n this._stopIDVideoStream();\n\n this.dispatchEvent(\n new CustomEvent('document-capture.publish', {\n detail: {\n ...imageDetails,\n },\n }),\n );\n }\n\n _drawIDImage(video = this._IDVideo) {\n const canvas = document.createElement('canvas');\n if (this.isPortraitCaptureView) {\n canvas.width = video.videoWidth;\n canvas.height = (canvas.width * 16) / 9;\n\n const previewCanvas = document.createElement('canvas');\n previewCanvas.width = canvas.width;\n previewCanvas.height = canvas.height;\n\n this.updatePortraitId(canvas, video, 1, 1);\n this.updatePortraitId(previewCanvas, video);\n const image = canvas.toDataURL('image/jpeg');\n const previewImage = previewCanvas.toDataURL('image/jpeg');\n return {\n image,\n originalHeight: canvas.height,\n originalWidth: canvas.width,\n previewImage,\n ...this.idCardRegion,\n };\n }\n\n canvas.width = 2240;\n canvas.height = 1260;\n\n const height = canvas.width / (video.videoWidth / video.videoHeight);\n canvas.height = height;\n\n const previewCanvas = document.createElement('canvas');\n previewCanvas.height = canvas.height;\n previewCanvas.width = canvas.width;\n const isPortrait = video.videoWidth < video.videoHeight;\n if (isPortrait) {\n const intermediateCanvas = document.createElement('canvas');\n previewCanvas.height = canvas.width / 1.75;\n canvas.width = 2240;\n canvas.height = canvas.width / 1.77;\n this._capturePortraitToLandscapeImage(intermediateCanvas, video);\n this._drawLandscapeImageFromCanvas(canvas, intermediateCanvas, 1, 1);\n this._drawLandscapeImageFromCanvas(previewCanvas, intermediateCanvas);\n } else {\n this._drawLandscapeImage(canvas, video, 1, 1);\n this._drawLandscapeImage(previewCanvas, video);\n }\n const image = canvas.toDataURL('image/jpeg');\n\n const previewImage = previewCanvas.toDataURL('image/jpeg');\n return {\n image,\n originalHeight: canvas.height,\n originalWidth: canvas.width,\n previewImage,\n ...this.idCardRegion,\n };\n }\n\n _drawImage(canvas, enableImageTests = true, video = SmartCamera.stream) {\n this.resetErrorMessage();\n const context = canvas.getContext('2d');\n\n context.drawImage(\n video,\n 0,\n 0,\n video.videoWidth,\n video.videoHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n\n if (enableImageTests) {\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n\n const hasEnoughColors = hasMoreThanNColors(imageData.data);\n\n if (hasEnoughColors) {\n return context;\n }\n throw new Error(\n 'Unable to capture webcam images - Please try another device',\n );\n } else {\n return context;\n }\n }\n\n handleIDStream(stream) {\n try {\n const videoExists = this.shadowRoot.querySelector('canvas');\n if (videoExists) {\n // remove canvas\n videoExists.remove();\n }\n let video = null;\n let canvas = null;\n video = document.createElement('video');\n canvas = document.createElement('canvas');\n const videoContainer = this.shadowRoot.querySelector(\n '.id-video-container',\n );\n\n video.muted = true;\n video.setAttribute('muted', 'true');\n\n video.autoplay = true;\n video.playsInline = true;\n if ('srcObject' in video) {\n video.srcObject = stream;\n } else {\n video.src = window.URL.createObjectURL(stream);\n }\n\n canvas.width = videoContainer.clientWidth;\n canvas.height = (videoContainer.clientWidth * 9) / 16;\n if (this.isPortraitCaptureView) {\n canvas.height = (videoContainer.clientWidth * 16) / 9;\n }\n\n video.onloadedmetadata = () => {\n video.play();\n\n this.shadowRoot.querySelector('#loader').hidden = true;\n this.shadowRoot.querySelector('.id-video').hidden = false;\n this.shadowRoot.querySelector('.actions').hidden = false;\n if (!videoExists) {\n videoContainer.prepend(canvas);\n }\n };\n\n const onVideoStart = () => {\n if (video.paused || video.ended) return;\n video.removeEventListener('playing', onVideoStart);\n const aspectRatio = video.videoWidth / video.videoHeight;\n const portrait = aspectRatio < 1;\n if (this.isPortraitCaptureView) {\n this.updatePortraitId(canvas, video);\n requestAnimationFrame(onVideoStart);\n return;\n }\n\n if (portrait) {\n videoContainer.classList.add('mobile-camera-screen');\n const intermediateCanvas = document.createElement('canvas');\n this._capturePortraitToLandscapeImage(intermediateCanvas, video);\n this._drawLandscapeImageFromCanvas(canvas, intermediateCanvas);\n } else {\n this._drawLandscapeImage(canvas, video);\n }\n requestAnimationFrame(onVideoStart);\n };\n\n video.addEventListener('playing', onVideoStart);\n\n this._IDStream = stream;\n this._IDVideo = video;\n } catch (error) {\n this.setAttribute(\n 'data-camera-error',\n SmartCamera.handleCameraError(error),\n );\n if (error.name !== 'AbortError') {\n console.error(error);\n }\n SmartCamera.stopMedia();\n }\n }\n\n _drawLandscapeImage(\n canvas,\n video = this._IDVideo,\n scaleHeight = documentCaptureScale,\n scaleWidth = documentCaptureScale,\n ) {\n const heightScaleFactor = this.height\n ? this.height / video.videoHeight\n : scaleHeight;\n const widthScaleFactor = this.width\n ? this.width / video.videoWidth\n : scaleWidth;\n const scaleHeightOffset = (1 - scaleHeight) / 2;\n const scaleWidthOffset = (1 - scaleWidth) / 2;\n const width = video.videoWidth * widthScaleFactor;\n const height = video.videoHeight * heightScaleFactor;\n const startX = video.videoWidth * scaleWidthOffset;\n const startY = video.videoHeight * scaleHeightOffset;\n\n canvas\n .getContext('2d')\n .drawImage(\n video,\n startX,\n startY,\n width,\n height,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n }\n\n _capturePortraitToLandscapeImage(canvas, video = this._IDVideo) {\n const { videoHeight, videoWidth } = video;\n const cropWidth = videoWidth;\n const cropHeight = (videoWidth * 9) / 16; // convert to landscape aspect ratio\n const startX = 0;\n const startY = (videoHeight - cropHeight) / 2;\n\n canvas.width = cropWidth;\n canvas.height = cropHeight;\n\n canvas\n .getContext('2d')\n .drawImage(\n video,\n startX,\n startY,\n cropWidth,\n cropHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n }\n\n _drawLandscapeImageFromCanvas(\n canvas,\n sourceCanvas,\n scaleHeight = documentCaptureScale,\n scaleWidth = documentCaptureScale,\n ) {\n const heightScaleFactor = this.height\n ? this.height / sourceCanvas.height\n : scaleHeight;\n const widthScaleFactor = this.width\n ? this.width / sourceCanvas.width\n : scaleWidth;\n const scaleHeightOffset = (1 - scaleHeight) / 2;\n const scaleWidthOffset = (1 - scaleWidth) / 2;\n const width = sourceCanvas.width * widthScaleFactor;\n const height = sourceCanvas.height * heightScaleFactor;\n const startX = sourceCanvas.width * scaleWidthOffset;\n const startY = sourceCanvas.height * scaleHeightOffset;\n\n canvas\n .getContext('2d')\n .drawImage(\n sourceCanvas,\n startX,\n startY,\n width,\n height,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n }\n\n _drawPortraitToLandscapeImage(canvas, video = this._IDVideo) {\n const { videoHeight, videoWidth } = video;\n const cropWidth = 600;\n const cropHeight = 400;\n\n canvas.width = cropWidth;\n canvas.height = cropHeight;\n\n const startX = (videoWidth - cropWidth) / 2;\n const startY = (videoHeight - cropHeight) / 2;\n\n canvas\n .getContext('2d')\n .drawImage(\n video,\n startX,\n startY,\n cropWidth,\n cropHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n }\n\n updatePortraitId(\n destinationCanvas,\n video = this._IDVideo,\n scaleHeight = documentCaptureScale,\n scaleWidth = documentCaptureScale,\n ) {\n const { videoWidth, videoHeight } = video;\n\n if (videoWidth && videoHeight) {\n const intermediateCanvas = document.createElement('canvas');\n const aspectRatio = 9 / 16;\n let cropWidth;\n let cropHeight;\n let offsetX;\n let offsetY;\n\n if (videoWidth / videoHeight > aspectRatio) {\n // we scale the canvas to portrait aspect ratio\n cropHeight = videoHeight;\n cropWidth = cropHeight * aspectRatio;\n offsetX = (videoWidth - cropWidth) / 2;\n offsetY = 0;\n } else {\n // video already has portrait aspect ratio\n cropWidth = videoWidth;\n cropHeight = cropWidth;\n offsetX = 0;\n offsetY = 0;\n }\n\n intermediateCanvas.height = cropHeight;\n intermediateCanvas.width = cropWidth;\n // draw the video frame onto the intermediate canvas\n intermediateCanvas\n .getContext('2d')\n .drawImage(\n video,\n offsetX,\n offsetY,\n cropWidth,\n cropHeight,\n 0,\n 0,\n intermediateCanvas.width,\n intermediateCanvas.height,\n );\n\n // draw the intermediate canvas onto the destination canvas\n // we scale image based on the scaleHeight and scaleWidth\n const heightScaleFactor = this.height\n ? this.height / cropWidth\n : scaleHeight;\n const widthScaleFactor = this.width\n ? this.width / cropHeight\n : scaleWidth;\n const scaleHeightOffset = (1 - scaleHeight) / 2;\n const scaleWidthOffset = (1 - scaleWidth) / 2;\n const width = cropWidth * widthScaleFactor;\n const height = cropHeight * heightScaleFactor;\n const startX = cropWidth * scaleWidthOffset;\n const startY = cropHeight * scaleHeightOffset;\n destinationCanvas\n .getContext('2d')\n .drawImage(\n intermediateCanvas,\n startX,\n startY,\n width,\n height,\n 0,\n 0,\n destinationCanvas.width,\n destinationCanvas.height,\n );\n }\n }\n\n _stopIDVideoStream(stream = this._IDStream) {\n stream.getTracks().forEach((track) => track.stop());\n }\n\n setUpEventListeners() {\n this.captureIDImage = this.shadowRoot.querySelector('#capture-id-image');\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n if (SmartCamera.stream) {\n this.handleIDStream(SmartCamera.stream);\n }\n\n this.navigation.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n this.navigation.addEventListener('navigation.close', () => {\n this.handleCloseEvents();\n });\n\n this.captureIDImage.addEventListener('click', () => {\n this._captureIDImage();\n });\n\n this.getUserMedia();\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get documentCaptureModes() {\n return this.getAttribute('document-capture-modes') || 'camera';\n }\n\n get supportBothCaptureModes() {\n const value = this.documentCaptureModes;\n return value.includes('camera') && value.includes('upload');\n }\n\n get title() {\n return (\n this.getAttribute('title') ||\n `${this.IdSides[this.sideOfId]} of ${this.documentName}`\n );\n }\n\n get height() {\n return this.getAttribute('height');\n }\n\n get width() {\n return this.getAttribute('width');\n }\n\n get hidden() {\n return this.getAttribute('hidden');\n }\n\n get sideOfId() {\n return (this.getAttribute('side-of-id') || 'front').toLowerCase();\n }\n\n get isFrontOfId() {\n return this.sideOfId === 'front';\n }\n\n get isBackOfId() {\n return !this.isFrontOfId;\n }\n\n get documentType() {\n return this.getAttribute('document-type') || '';\n }\n\n get documentName() {\n return this.getAttribute('document-name') || 'Document';\n }\n\n get isPortraitCaptureView() {\n return this.getAttribute('document-type') === 'GREEN_BOOK';\n }\n\n get cameraError() {\n return this.getAttribute('data-camera-error');\n }\n\n static get observedAttributes() {\n return [\n 'data-camera-error',\n 'data-camera-ready',\n 'document-name',\n 'document-type',\n 'hidden',\n 'hide-back-to-host',\n 'show-navigation',\n 'title',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'data-camera-error':\n case 'data-camera-ready':\n case 'document-name':\n case 'document-type':\n case 'hidden':\n case 'title':\n this.connectedCallback();\n break;\n default:\n break;\n }\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('document-capture.cancelled'));\n SmartCamera.stopMedia();\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('document-capture.close'));\n SmartCamera.stopMedia();\n }\n}\n\nif ('customElements' in window && !customElements.get('document-capture')) {\n window.customElements.define('document-capture', DocumentCapture);\n}\n\nexport default DocumentCapture;\n","import styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\n\nfunction templateString() {\n return `\n <style>\n .retake-photo.button[data-variant~=\"ghost\"] {\n color: #FF5805;\n }\n\n\n @media (max-width: 600px) {\n .id-camera-screen {\n width: 100%;\n height: 100vh;\n }\n \n .section {\n width: 100%;\n justify-content: center;\n }\n }\n \n .id-image-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.75rem;\n }\n\n .id-image {\n width: 100%;\n text-align: center;\n position: relative;\n background: white;\n }\n img {\n height: 100%;\n min-height: 100px;\n width: 98%;\n }\n\n .action-buttons {\n width: 80%;\n }\n\n\n .icon-btn {\n appearance: none;\n background: none;\n border: none;\n color: hsl(0deg 0% 94%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n }\n .justify-right {\n justify-content: end !important;\n }\n .nav {\n display: flex;\n justify-content: space-between;\n }\n\n .back-wrapper {\n display: flex;\n align-items: center;\n }\n\n .back-button-text {\n font-size: 11px;\n line-height: 11px;\n color: rgb(21, 31, 114);\n }\n\n\n\n .tips,\n .powered-by {\n align-items: center;\n border-radius: 0.25rem;\n color: #4e6577;\n display: flex;\n justify-content: center;\n letter-spacing: 0.075em;\n }\n\n .powered-by {\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\n display: inline-flex;\n font-size: 0.5rem;\n }\n\n .tips {\n margin-left: auto;\n margin-right: auto;\n max-width: 17rem;\n }\n\n .tips > * + *,\n .powered-by > * + * {\n display: inline-block;\n margin-left: 0.5em;\n }\n\n .powered-by .company {\n color: #18406d;\n font-weight: 700;\n letter-spacing: 0.15rem;\n }\n\n .logo-mark {\n background-color: #004071;\n display: inline-block;\n padding: 0.25em 0.5em;\n }\n\n .logo-mark svg {\n height: auto;\n justify-self: center;\n width: 0.75em;\n }\n \n #document-capture-review-screen {\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n padding: 1rem;\n }\n\n #document-capture-review-screen .id-image-container.landscape {\n height: auto;\n }\n\n #document-capture-review-screen header p {\n margin-block: 0 !important;\n }\n\n .description {\n color: var(--neutral-off-black, #2D2B2A);\n text-align: center;\n\n /* p */\n font-family: DM Sans;\n font-size: 0.875rem;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n }\n\n .padding-bottom-2 {\n padding-bottom: 2rem;\n }\n img {\n border-width: 0.25rem;\n border-color: #9394ab;\n border-style: solid;\n border-radius: 0.25rem;\n }\n\n .instructions-wrapper {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2rem;\n margin-block-start: 2rem;\n margin-block-end: 4rem;\n }\n .instructions {\n display: flex;\n align-items: center;\n text-align: initial;\n }\n\n .instructions svg {\n flex-shrink: 0;\n margin-inline-end: 2rem;\n }\n\n .instructions p {\n margin-block: 0;\n }\n\n .instruction-body {\n font-size: 0.75rem;\n }\n\n h1 {\n color: var(--web-digital-blue, #001096);\n text-align: center;\n\n /* h1 */\n font-size: 1.25rem;\n font-style: normal;\n font-weight: 700;\n line-height: 36px; /* 150% */\n }\n\n .p2 {\n font-size: 1rem;\n font-style: normal;\n font-weight: 500;\n line-height: 1rem;\n }\n\n .instruction-header {\n color: var(--web-digital-blue, #001096);\n }\n\n .h2 {\n font-size: 1rem;\n font-style: normal;\n font-weight: 700;\n line-height: 1.5rem;\n }\n </style>\n ${styles(this.themeColor)}\n <div id='document-capture-review-screen' class='flow center'>\n <smileid-navigation ${this.showNavigation ? 'show-navigation' : ''} hide-back></smileid-navigation>\n <h1 class=\"header-title title-color\">\n Is the document clear and readable?\n </h1>\n <p class=\"description\">Make sure all corners of the document \n are visible and there is no glare</p>\n <div class='section | flow'>\n <div class='id-image-container'>\n <div class='id-image'>\n <div class='video-overlay'></div>\n ${this.imageSrc ? `<img alt='your ID card' id='document-capture-review-image' src='${this.imageSrc}' />` : ''}\n </div>\n <div class='flow action-buttons'>\n <button data-variant='solid full-width' class='button' type='button' id='select-id-image'>\n Yes, my ID is readable\n </button>\n <button data-variant='ghost full-width' class='button retake-photo' type='button' id='re-capture-id-image'>\n No, retake photo\n </button>\n </div>\n </div>\n\n ${\n this.hideAttribution\n ? ''\n : `\n <powered-by-smile-id></powered-by-smile-id>\n `\n }\n </div>\n </div>\n `;\n}\n\nclass IdReview extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n this.shadowRoot.innerHTML = '';\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n this.setUpEventListeners();\n }\n\n static get observedAttributes() {\n return ['hide-back-to-host', 'show-navigation', 'data-image'];\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get imageSrc() {\n return this.getAttribute('data-image');\n }\n\n get title() {\n return this.getAttribute('title') || 'Submit Front of ID';\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('document-capture-review.cancelled'));\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('document-capture-review.close'));\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'data-image':\n case 'hide-back-to-host':\n case 'show-navigation':\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n break;\n default:\n break;\n }\n }\n\n setUpEventListeners() {\n this.selectIDImage = this.shadowRoot.querySelector('#select-id-image');\n this.reCaptureIDImage = this.shadowRoot.querySelector(\n '#re-capture-id-image',\n );\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n this.navigation.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n this.navigation.addEventListener('navigation.close', () => {\n this.handleCloseEvents();\n });\n\n this.selectIDImage.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('document-capture-review.accepted', {\n detail: {},\n }),\n );\n });\n this.reCaptureIDImage.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('document-capture-review.rejected', {\n detail: {},\n }),\n );\n });\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('document-capture-review')\n) {\n window.customElements.define('document-capture-review', IdReview);\n}\n\nexport default IdReview;\n","class SmartFileUpload {\n static memoryLimit = 10240000;\n\n static supportedTypes = ['image/jpeg', 'image/png'];\n\n static getHumanSize(numberOfBytes) {\n // Approximate to the closest prefixed unit\n const units = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const exponent = Math.min(\n Math.floor(Math.log(numberOfBytes) / Math.log(1024)),\n units.length - 1,\n );\n const approx = numberOfBytes / 1024 ** exponent;\n const output =\n exponent === 0\n ? `${numberOfBytes} bytes`\n : `${approx.toFixed(0)} ${units[exponent]}`;\n\n return output;\n }\n\n static getData(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = (e) => {\n resolve(e.target.result);\n };\n reader.onerror = () => {\n reject(\n new Error(\n 'An error occurred reading the file. Please check the file, and try again',\n ),\n );\n };\n reader.readAsDataURL(file);\n });\n }\n\n static async retrieve(files) {\n if (files.length > 1) {\n throw new Error('Only one file upload is permitted at a time');\n }\n\n const file = files[0];\n\n if (!SmartFileUpload.supportedTypes.includes(file.type)) {\n throw new Error(\n 'Unsupported file format. Please ensure that you are providing a JPG or PNG image',\n );\n }\n\n if (file.size > SmartFileUpload.memoryLimit) {\n throw new Error(\n `${file.name} is too large. Please ensure that the file is less than ${SmartFileUpload.getHumanSize(SmartFileUpload.memoryLimit)}.`,\n );\n }\n\n const imageAsDataUrl = await SmartFileUpload.getData(file);\n\n return imageAsDataUrl;\n }\n}\n\nexport default SmartFileUpload;\n","import SmartFileUpload from '../../../../domain/file-upload/src/SmartFileUpload';\nimport styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\n\nfunction frontDocumentIcon() {\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"173\" height=\"103\" viewBox=\"0 0 173 103\" fill=\"none\">\n <path d=\"M15.3799 21.2759C15.3799 16.8576 18.9616 13.2759 23.3799 13.2759H64.2764C68.6947 13.2759 72.2764 16.8576 72.2764 21.2759V73.5517C72.2764 77.97 68.6947 81.5517 64.2764 81.5517H23.3799C18.9616 81.5517 15.3799 77.97 15.3799 73.5517V21.2759Z\" fill=\"#F6C969\"/>\n <g filter=\"url(#filter0_d_1281_4127)\">\n <path d=\"M60.2117 80.8741C60.2117 80.8741 49.3661 81.5134 44.1952 81.5134C39.0242 81.5134 28.1787 80.8741 28.1787 80.8741C28.1787 80.8741 34.6256 78.4515 35.3307 76.8701C35.7001 76.0962 35.8344 73.2362 35.9015 70.578C35.9687 67.9199 35.9015 65.5646 35.9015 65.5646L44.1952 65.6992L52.4888 65.5646C52.4888 65.5646 52.3881 72.0921 52.7575 75.3223C52.7813 75.8503 52.8832 76.372 53.0597 76.8701C53.7984 78.4515 60.2117 80.8741 60.2117 80.8741Z\" fill=\"url(#paint0_linear_1281_4127)\"/>\n <path d=\"M31.3688 47.126C31.3688 47.126 29.1191 46.3184 28.4812 46.6549C27.8432 46.9914 26.8695 48.6737 27.0038 50.6589C27.0373 51.1636 27.4403 53.6872 29.1527 54.9321C29.6564 55.2686 30.1265 56.951 31.2345 57.1865C32.3426 57.422 32.5105 56.6818 32.5105 56.6818L31.3688 47.126Z\" fill=\"url(#paint1_linear_1281_4127)\"/>\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M31.906 51.6683C31.906 51.6683 30.6637 47.7652 28.9848 48.3035C27.3059 48.8419 27.8767 51.6009 27.8767 51.6009C27.8767 51.6009 28.2461 49.0438 29.7571 49.8849C30.5629 50.2887 29.2534 51.029 29.2534 52.072C29.2534 53.1151 30.16 54.36 30.4622 53.6871C30.7644 53.0142 30.9659 50.6252 31.906 51.6683Z\" fill=\"url(#paint2_linear_1281_4127)\"/>\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M30.462 53.687C30.7306 52.7785 30.932 51.399 31.4357 51.5335C31.5749 51.5809 31.6986 51.6655 31.7933 51.7781C31.888 51.8908 31.9501 52.0273 31.973 52.1729L31.8386 51.1971C31.8386 51.1971 30.8985 49.683 29.7568 50.9952\" fill=\"url(#paint3_linear_1281_4127)\"/>\n <path d=\"M57.3575 47.126C57.3575 47.126 59.6407 46.3184 60.2787 46.6549C60.9167 46.9914 61.8568 48.6737 61.7561 50.6589C61.7225 51.1636 61.286 53.6872 59.5736 54.9321C59.1035 55.2686 58.5998 56.951 57.4918 57.1865C56.3837 57.422 56.2158 56.6818 56.2158 56.6818L57.3575 47.126Z\" fill=\"url(#paint4_linear_1281_4127)\"/>\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M56.8203 51.6683C56.8203 51.6683 58.0627 47.7652 59.7415 48.3035C61.4204 48.8419 60.8832 51.6009 60.8832 51.6009C60.8832 51.6009 60.5138 49.0438 58.9693 49.8849C58.1634 50.2887 59.4729 51.029 59.4729 52.072C59.4729 53.1151 58.5663 54.36 58.2641 53.6871C57.9619 53.0142 57.7605 50.6252 56.8203 51.6683Z\" fill=\"url(#paint5_linear_1281_4127)\"/>\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M58.264 56.749C58.1297 56.9509 57.0552 57.5229 56.4844 56.9509C55.9135 56.3789 56.6858 52.7113 56.753 52.173C56.753 52.173 56.5515 56.177 56.8201 56.3452C56.4172 56.1097 58.2304 56.7826 58.264 56.749Z\" fill=\"url(#paint6_linear_1281_4127)\"/>\n <path d=\"M64.4757 81.9845H23.9141L32.5771 78.6534L33.5508 75.457C34.2424 75.3865 34.938 75.364 35.6326 75.3897L35.4312 76.5673C35.4312 76.5673 37.6473 78.8553 44.1949 78.8553C50.0038 78.8553 52.9586 76.5673 52.9586 76.5673L52.7908 75.5243V75.3897C53.4854 75.364 54.181 75.3865 54.8725 75.457L55.8463 78.6534L64.4757 81.9845Z\" fill=\"#151F72\"/>\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M33.5509 75.4568C33.383 75.9951 37.7817 79.8309 44.0607 79.8309C48.0849 79.8356 51.9521 78.2662 54.839 75.4568L55.8128 78.6533C55.8128 78.6533 48.7615 81.5133 43.7249 81.5133C38.6883 81.5133 32.5771 78.6533 32.5771 78.6533L33.5509 75.4568Z\" fill=\"url(#paint7_linear_1281_4127)\"/>\n <path d=\"M56.115 37.1326C51.4478 29.6629 38.8898 29.4947 33.2487 35.854C27.6077 42.2133 30.8983 45.1406 31.1334 54.6292C31.3348 60.0464 31.5699 63.613 35.0955 66.6076C36.1386 67.4711 37.2258 68.2797 38.3525 69.0302C43.7249 73.0679 51.4813 69.5349 53.5296 66.473C57.2231 63.6467 56.8537 60.7866 57.2902 54.7301C57.626 46.8903 60.0436 43.2227 56.115 37.1326Z\" fill=\"url(#paint8_linear_1281_4127)\"/>\n </g>\n <g filter=\"url(#filter1_d_1281_4127)\">\n <mask id=\"path-12-inside-1_1281_4127\" fill=\"white\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V80.8276C4 88.5596 10.268 94.8276 18 94.8276H155C162.732 94.8276 169 88.5596 169 80.8276V14C169 6.26801 162.732 0 155 0H18ZM23.7858 14.4876C19.3676 14.4876 15.7858 18.0693 15.7858 22.4876V72.3401C15.7858 76.7584 19.3676 80.3401 23.7858 80.3401H62.7858C67.2041 80.3401 70.7858 76.7584 70.7858 72.3401V22.4876C70.7858 18.0693 67.2041 14.4876 62.7858 14.4876H23.7858Z\"/>\n </mask>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V80.8276C4 88.5596 10.268 94.8276 18 94.8276H155C162.732 94.8276 169 88.5596 169 80.8276V14C169 6.26801 162.732 0 155 0H18ZM23.7858 14.4876C19.3676 14.4876 15.7858 18.0693 15.7858 22.4876V72.3401C15.7858 76.7584 19.3676 80.3401 23.7858 80.3401H62.7858C67.2041 80.3401 70.7858 76.7584 70.7858 72.3401V22.4876C70.7858 18.0693 67.2041 14.4876 62.7858 14.4876H23.7858Z\" fill=\"#F9F0E7\"/>\n <path d=\"M5.5 14C5.5 7.09644 11.0964 1.5 18 1.5V-1.5C9.43959 -1.5 2.5 5.43958 2.5 14H5.5ZM5.5 80.8276V14H2.5V80.8276H5.5ZM18 93.3276C11.0964 93.3276 5.5 87.7311 5.5 80.8276H2.5C2.5 89.388 9.43958 96.3276 18 96.3276V93.3276ZM155 93.3276H18V96.3276H155V93.3276ZM167.5 80.8276C167.5 87.7311 161.904 93.3276 155 93.3276V96.3276C163.56 96.3276 170.5 89.388 170.5 80.8276H167.5ZM167.5 14V80.8276H170.5V14H167.5ZM155 1.5C161.904 1.5 167.5 7.09644 167.5 14H170.5C170.5 5.43959 163.56 -1.5 155 -1.5V1.5ZM18 1.5H155V-1.5H18V1.5ZM17.2858 22.4876C17.2858 18.8977 20.196 15.9876 23.7858 15.9876V12.9876C18.5391 12.9876 14.2858 17.2409 14.2858 22.4876H17.2858ZM17.2858 72.3401V22.4876H14.2858V72.3401H17.2858ZM23.7858 78.8401C20.196 78.8401 17.2858 75.9299 17.2858 72.3401H14.2858C14.2858 77.5868 18.5391 81.8401 23.7858 81.8401V78.8401ZM62.7858 78.8401H23.7858V81.8401H62.7858V78.8401ZM69.2858 72.3401C69.2858 75.9299 66.3757 78.8401 62.7858 78.8401V81.8401C68.0325 81.8401 72.2858 77.5868 72.2858 72.3401H69.2858ZM69.2858 22.4876V72.3401H72.2858V22.4876H69.2858ZM62.7858 15.9876C66.3757 15.9876 69.2858 18.8977 69.2858 22.4876H72.2858C72.2858 17.2409 68.0325 12.9876 62.7858 12.9876V15.9876ZM23.7858 15.9876H62.7858V12.9876H23.7858V15.9876Z\" fill=\"#001096\" mask=\"url(#path-12-inside-1_1281_4127)\"/>\n </g>\n <rect x=\"86.501\" y=\"23.7069\" width=\"64.8214\" height=\"1.42241\" rx=\"0.711207\" fill=\"#2D2B2A\"/>\n <rect x=\"86.501\" y=\"34.2433\" width=\"64.8214\" height=\"1.42241\" rx=\"0.711207\" fill=\"#2D2B2A\"/>\n <rect x=\"86.501\" y=\"44.1212\" width=\"32.7381\" height=\"1.42241\" rx=\"0.711207\" fill=\"#2D2B2A\"/>\n <rect x=\"27.5713\" y=\"86.2667\" width=\"32.7381\" height=\"2.63621\" rx=\"1.3181\" fill=\"#DBDBC4\"/>\n <defs>\n <filter id=\"filter0_d_1281_4127\" x=\"19.9141\" y=\"31.2932\" width=\"48.5615\" height=\"58.6913\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n <feOffset dy=\"4\"/>\n <feGaussianBlur stdDeviation=\"2\"/>\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1281_4127\"/>\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1281_4127\" result=\"shape\"/>\n </filter>\n <filter id=\"filter1_d_1281_4127\" x=\"0\" y=\"0\" width=\"173\" height=\"102.828\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n <feOffset dy=\"4\"/>\n <feGaussianBlur stdDeviation=\"2\"/>\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1281_4127\"/>\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1281_4127\" result=\"shape\"/>\n </filter>\n <linearGradient id=\"paint0_linear_1281_4127\" x1=\"44.1986\" y1=\"81.4966\" x2=\"44.1986\" y2=\"65.578\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFB09A\"/>\n <stop offset=\"0.21\" stop-color=\"#FF9B8D\"/>\n <stop offset=\"0.47\" stop-color=\"#FF8781\"/>\n <stop offset=\"0.74\" stop-color=\"#FF7B79\"/>\n <stop offset=\"1\" stop-color=\"#FF7777\"/>\n </linearGradient>\n <linearGradient id=\"paint1_linear_1281_4127\" x1=\"29.7538\" y1=\"57.2504\" x2=\"29.7538\" y2=\"46.5708\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFB09A\"/>\n <stop offset=\"0.21\" stop-color=\"#FF9B8D\"/>\n <stop offset=\"0.47\" stop-color=\"#FF8781\"/>\n <stop offset=\"0.74\" stop-color=\"#FF7B79\"/>\n <stop offset=\"1\" stop-color=\"#FF7777\"/>\n </linearGradient>\n <linearGradient id=\"paint2_linear_1281_4127\" x1=\"29.888\" y1=\"53.8755\" x2=\"29.888\" y2=\"48.2632\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFE7D8\"/>\n <stop offset=\"0.29\" stop-color=\"#FABDC9\"/>\n <stop offset=\"0.59\" stop-color=\"#F597BB\"/>\n <stop offset=\"0.84\" stop-color=\"#F280B3\"/>\n <stop offset=\"0.99\" stop-color=\"#F177B0\"/>\n </linearGradient>\n <linearGradient id=\"paint3_linear_1281_4127\" x1=\"30.8683\" y1=\"53.6937\" x2=\"30.8683\" y2=\"50.4636\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFE7D8\"/>\n <stop offset=\"0.99\" stop-color=\"#CE77F1\"/>\n </linearGradient>\n <linearGradient id=\"paint4_linear_1281_4127\" x1=\"58.9759\" y1=\"57.2504\" x2=\"58.9759\" y2=\"46.5708\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFB09A\"/>\n <stop offset=\"0.21\" stop-color=\"#FF9B8D\"/>\n <stop offset=\"0.47\" stop-color=\"#FF8781\"/>\n <stop offset=\"0.74\" stop-color=\"#FF7B79\"/>\n <stop offset=\"1\" stop-color=\"#FF7777\"/>\n </linearGradient>\n <linearGradient id=\"paint5_linear_1281_4127\" x1=\"58.845\" y1=\"53.8755\" x2=\"58.845\" y2=\"48.2632\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFE7D8\"/>\n <stop offset=\"0.29\" stop-color=\"#FABDC9\"/>\n <stop offset=\"0.59\" stop-color=\"#F597BB\"/>\n <stop offset=\"0.84\" stop-color=\"#F280B3\"/>\n <stop offset=\"0.99\" stop-color=\"#F177B0\"/>\n </linearGradient>\n <linearGradient id=\"paint6_linear_1281_4127\" x1=\"54.5402\" y1=\"54.6965\" x2=\"59.1672\" y2=\"54.6965\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFE7D8\"/>\n <stop offset=\"0.29\" stop-color=\"#FABDC9\"/>\n <stop offset=\"0.59\" stop-color=\"#F597BB\"/>\n <stop offset=\"0.84\" stop-color=\"#F280B3\"/>\n <stop offset=\"0.99\" stop-color=\"#F177B0\"/>\n </linearGradient>\n <linearGradient id=\"paint7_linear_1281_4127\" x1=\"44.195\" y1=\"75.4635\" x2=\"44.195\" y2=\"81.4965\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#151F72\"/>\n <stop offset=\"0.19\" stop-color=\"#151F72\"/>\n <stop offset=\"0.54\" stop-color=\"#7FCBF5\"/>\n <stop offset=\"0.82\" stop-color=\"#C574EC\"/>\n <stop offset=\"0.99\" stop-color=\"#FBD1EE\"/>\n </linearGradient>\n <linearGradient id=\"paint8_linear_1281_4127\" x1=\"30.0589\" y1=\"51.0693\" x2=\"58.3379\" y2=\"51.0693\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FFB09A\"/>\n <stop offset=\"0.06\" stop-color=\"#FF9B89\"/>\n <stop offset=\"0.13\" stop-color=\"#FF8A7B\"/>\n <stop offset=\"0.23\" stop-color=\"#FF7F71\"/>\n <stop offset=\"0.36\" stop-color=\"#FF786C\"/>\n <stop offset=\"0.71\" stop-color=\"#FF766A\"/>\n </linearGradient>\n </defs>\n</svg>`;\n}\n\nfunction backDocumentIcon() {\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"182\" height=\"108\" viewBox=\"0 0 182 108\" fill=\"none\">\n <path d=\"M143 68C143 65.7909 144.791 64 147 64H164C166.209 64 168 65.7909 168 68V89C168 91.2091 166.209 93 164 93H147C144.791 93 143 91.2091 143 89V68Z\" fill=\"#F6C969\"/>\n <g filter=\"url(#filter0_d_1281_4284)\">\n <mask id=\"path-2-inside-1_1281_4284\" fill=\"white\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V86C4 93.732 10.268 100 18 100H164C171.732 100 178 93.732 178 86V14C178 6.26801 171.732 0 164 0H18ZM148 67C145.791 67 144 68.7909 144 71V85C144 87.2091 145.791 89 148 89H162C164.209 89 166 87.2091 166 85V71C166 68.7909 164.209 67 162 67H148Z\"/>\n </mask>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V86C4 93.732 10.268 100 18 100H164C171.732 100 178 93.732 178 86V14C178 6.26801 171.732 0 164 0H18ZM148 67C145.791 67 144 68.7909 144 71V85C144 87.2091 145.791 89 148 89H162C164.209 89 166 87.2091 166 85V71C166 68.7909 164.209 67 162 67H148Z\" fill=\"#F9F0E7\"/>\n <path d=\"M5.5 14C5.5 7.09644 11.0964 1.5 18 1.5V-1.5C9.43959 -1.5 2.5 5.43959 2.5 14H5.5ZM5.5 86V14H2.5V86H5.5ZM18 98.5C11.0964 98.5 5.5 92.9036 5.5 86H2.5C2.5 94.5604 9.43959 101.5 18 101.5V98.5ZM164 98.5H18V101.5H164V98.5ZM176.5 86C176.5 92.9036 170.904 98.5 164 98.5V101.5C172.56 101.5 179.5 94.5604 179.5 86H176.5ZM176.5 14V86H179.5V14H176.5ZM164 1.5C170.904 1.5 176.5 7.09644 176.5 14H179.5C179.5 5.43959 172.56 -1.5 164 -1.5V1.5ZM18 1.5H164V-1.5H18V1.5ZM145.5 71C145.5 69.6193 146.619 68.5 148 68.5V65.5C144.962 65.5 142.5 67.9624 142.5 71H145.5ZM145.5 85V71H142.5V85H145.5ZM148 87.5C146.619 87.5 145.5 86.3807 145.5 85H142.5C142.5 88.0376 144.962 90.5 148 90.5V87.5ZM162 87.5H148V90.5H162V87.5ZM164.5 85C164.5 86.3807 163.381 87.5 162 87.5V90.5C165.038 90.5 167.5 88.0376 167.5 85H164.5ZM164.5 71V85H167.5V71H164.5ZM162 68.5C163.381 68.5 164.5 69.6193 164.5 71H167.5C167.5 67.9624 165.038 65.5 162 65.5V68.5ZM148 68.5H162V65.5H148V68.5Z\" fill=\"#001096\" mask=\"url(#path-2-inside-1_1281_4284)\"/>\n </g>\n <rect x=\"134\" y=\"10\" width=\"3\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"148.733\" y=\"10\" width=\"2\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"154\" y=\"10\" width=\"2\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"166\" y=\"10\" width=\"1.3\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"157\" y=\"10\" width=\"2\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"141.8\" y=\"10\" width=\"5\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"161\" y=\"10\" width=\"4\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"137.767\" y=\"10\" width=\"1\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"151.2\" y=\"10\" width=\"1\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\n <rect x=\"20.25\" y=\"32.25\" width=\"98.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\n <rect x=\"20.25\" y=\"41.75\" width=\"98.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\n <rect x=\"20.25\" y=\"51.25\" width=\"49.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\n <rect x=\"20.25\" y=\"75.25\" width=\"49.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\n <rect x=\"20.25\" y=\"84.75\" width=\"49.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\n <defs>\n <filter id=\"filter0_d_1281_4284\" x=\"0\" y=\"0\" width=\"182\" height=\"108\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n <feOffset dy=\"4\"/>\n <feGaussianBlur stdDeviation=\"2\"/>\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1281_4284\"/>\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1281_4284\" result=\"shape\"/>\n </filter>\n </defs>\n</svg>`;\n}\n\nfunction templateString() {\n return `\n <style>\n h1 {\n font-size: 1.25rem;\n }\n\n .controls {\n width: 100%;\n margin-top: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .content-root {\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n .content-header, .content-body, .content-footer {\n width: 100%;\n }\n\n .content-body {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n }\n \n .content-body header {\n margin-top: 1rem;\n }\n </style>\n <div id=\"document-capture-instructions-screen\" class=\"flow center\">\n <div class=\"content-root\">\n <div class=\"content-header\">\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\n </div>\n <div class=\"content-body\">\n <header>\n ${this.isFrontOfId ? frontDocumentIcon() : backDocumentIcon()}\n <h1 class='title-color font-bold'>${this.title}</h1>\n <p class=\"description text-sm font-normal\">\n We'll use it to verify your identity.\n </p>\n <p class=\"description padding-bottom-2\">\n Please follow the instructions below.\n </p>\n </header>\n <div class=\"instructions-wrapper\">\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"38\"\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_604_670)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M31.8569 19C31.8569 21.5428 31.1029 24.0285 29.6902 26.1428C28.2774 28.2571 26.2695 29.9049 23.9203 30.878C21.571 31.8511 18.986 32.1057 16.492 31.6096C13.9981 31.1136 11.7072 29.8891 9.90919 28.091C8.11115 26.293 6.88668 24.0022 6.3906 21.5082C5.89452 19.0143 6.14913 16.4292 7.12222 14.08C8.09531 11.7307 9.74318 9.72279 11.8574 8.31008C13.9717 6.89737 16.4574 6.14334 19.0002 6.14334C22.41 6.14334 25.6802 7.49788 28.0913 9.90897C30.5024 12.3201 31.8569 15.5902 31.8569 19Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M19.6064 4.5419H18.394L18.9912 0L19.6064 4.5419Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M26.7541 6.77667L25.7046 6.17048L28.4913 2.54239L26.7541 6.77667Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.8298 12.2957L31.2236 11.2462L35.4489 9.49097L31.8298 12.2957Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M33.4674 19.6062V18.3938L38.0003 18.9909L33.4674 19.6062Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.2236 26.7538L31.8298 25.7043L35.4579 28.491L31.2236 26.7538Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M25.7046 31.8295L26.7541 31.2233L28.5094 35.4486L25.7046 31.8295Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M18.394 33.4671H19.6064L19.0093 38L18.394 33.4671Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M11.2464 31.2233L12.2959 31.8295L9.50928 35.4576L11.2464 31.2233Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M6.17068 25.7043L6.77687 26.7538L2.55164 28.509L6.17068 25.7043Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M4.54215 18.3938V19.6062L0.000244141 19.009L4.54215 18.3938Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M6.77689 11.2462L6.1707 12.2957L2.5426 9.50903L6.77689 11.2462Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M12.296 6.17047L11.2464 6.77666L9.49121 2.55142L12.296 6.17047Z\"\n fill=\"${this.themeColor}\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_604_670\">\n <rect\n width=\"38\"\n height=\"38\"\n fill=\"white\"\n transform=\"translate(0.000244141)\"\n />\n </clipPath>\n </defs>\n </svg>\n <div class=\"instruction\">\n <p class=\"instruction-header font-bold text-base\">Good Light</p>\n <p class=\"instruction-body text-xs font-medium\">\n Make sure the image is taken in a well-lit environment where the ID document is easy to read.\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"36\"\n viewBox=\"0 0 38 36\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_604_672)\">\n <path\n d=\"M36.7211 12.6391H1.22537C1.06275 13.0909 0.910962 13.5427 0.77002 14.0055H37.1764C37.0463 13.5427 36.8946 13.0909 36.7211 12.6391Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.3716 14.7438H0.574875C0.466458 15.1625 0.379725 15.5813 0.303833 16.011H37.6426C37.5667 15.5813 37.48 15.1625 37.3716 14.7438Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.7727 16.8485H0.173703C0.119494 17.2342 0.0869685 17.6198 0.0544434 18.0055H37.892C37.8594 17.6198 37.8269 17.2342 37.7727 16.8485Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.9462 19.4711C37.9462 19.2948 37.9462 19.1295 37.9353 18.9532H0.0110865C0.000244802 19.1295 0.000244141 19.2948 0.000244141 19.4711C0.000244141 19.6474 0.000244802 19.8347 0.0110865 20.011H37.9353C37.9462 19.8347 37.9462 19.6474 37.9462 19.4711Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.8811 21.0579H0.0653076C0.086991 21.3774 0.119515 21.697 0.162882 22.0055H37.7836C37.8269 21.697 37.8595 21.3774 37.8811 21.0579Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.5992 23.1625H0.347168C0.401376 23.449 0.466426 23.7245 0.531477 24H37.4149C37.48 23.7245 37.545 23.449 37.5992 23.1625Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.0788 25.2672H0.867554C0.954287 25.5096 1.03018 25.7631 1.11691 26.0055H36.8295C36.9162 25.7631 37.0029 25.5096 37.0788 25.2672Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M36.2874 27.3719H1.65906L1.95178 28H35.9947L36.2874 27.3719Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M35.2032 29.4766H2.75403C2.84799 29.6529 2.95641 29.8292 3.07928 30.0055H34.878L35.2032 29.4766Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M33.7396 31.5813H4.20679L4.54288 32H33.4035L33.7396 31.5813Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.7989 33.6859H6.14746L6.49439 33.9945H31.452L31.7989 33.6859Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M29.0993 35.7906H8.84705L9.18314 36H28.7632L29.0993 35.7906Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M34.2384 8.01102C33.8914 7.53719 33.5228 7.07438 33.1325 6.63361C29.8258 2.60055 24.6977 0 18.9407 0C12.891 0 7.53525 2.86501 4.25021 7.26171H4.28274C4.08759 7.51515 3.89244 7.75757 3.70813 8.01102H34.2384Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M34.531 8.44077H3.41533C3.06839 8.94765 2.74314 9.47658 2.43958 10.0165H35.5068C35.2124 9.47215 34.8866 8.94597 34.531 8.44077Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M35.7887 10.5344H2.15776C1.9084 11.0193 1.68072 11.5151 1.47473 12.011H36.4717C36.2657 11.5151 36.0381 11.0193 35.7887 10.5344Z\"\n fill=\"${this.themeColor}\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_604_672\">\n <rect\n width=\"37.9459\"\n height=\"36\"\n fill=\"white\"\n transform=\"translate(0.000244141)\"\n />\n </clipPath>\n </defs>\n </svg>\n <div>\n <p class=\"instruction-header font-bold text-base\">Clear Image</p>\n <p class=\"instruction-body text-xs font-medium\">\n Hold your camera steady so the words on the ID are not blurry.\n </p>\n </div>\n </div>\n <div id=\"error\" class='color-red'>\n </div>\n </div>\n <div class='controls'>\n ${\n this.supportBothCaptureModes || this.documentCaptureModes === 'camera'\n ? `\n <button data-variant='solid full-width' class='button' type='button' id='take-photo'>\n Take Photo\n </button>\n `\n : ''\n }\n ${\n this.supportBothCaptureModes || this.documentCaptureModes === 'upload'\n ? `\n <label id='upload-photo-label' data-variant='${\n this.supportBothCaptureModes ? 'outline' : 'solid'\n }' class='button'>\n <input type='file' hidden onclick='this.value=null;' id='upload-photo' name='document' accept='image/png, image/jpeg' />\n <span>Upload Photo</span>\n </label>\n `\n : ''\n }\n</div>\n${\n this.hideAttribution\n ? ''\n : `\n <div class=\"content-footer\">\n <powered-by-smile-id></powered-by-smile-id>\n </div>\n `\n}\n </div>\n </div>\n</div>\n ${styles(this.themeColor)}\n `;\n}\n\nclass DocumentInstruction extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n this.takeDocumentPhotoButton = this.shadowRoot.querySelector('#take-photo');\n this.uploadDocumentPhotoButton =\n this.shadowRoot.querySelector('#upload-photo');\n\n this.navigation.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n this.navigation.addEventListener('navigation.close', () => {\n this.handleCloseEvents();\n });\n\n if (this.takeDocumentPhotoButton) {\n this.takeDocumentPhotoButton.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('document-capture-instructions.capture'),\n );\n });\n }\n\n if (this.uploadDocumentPhotoButton) {\n this.uploadDocumentPhotoButton.addEventListener(\n 'change',\n async (event) => {\n this.shadowRoot.querySelector('#error').innerHTML = '';\n try {\n const { files } = event.target;\n\n // validate file, and convert file to data url\n const fileData = await SmartFileUpload.retrieve(files);\n\n this.dispatchEvent(\n new CustomEvent('document-capture-instructions.upload', {\n detail: { image: fileData, previewImage: fileData },\n }),\n );\n } catch (error) {\n this.shadowRoot.querySelector('#error').innerHTML = error.message;\n }\n },\n );\n }\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get documentCaptureModes() {\n return this.getAttribute('document-capture-modes') || 'camera';\n }\n\n get supportBothCaptureModes() {\n const value = this.documentCaptureModes;\n return value.includes('camera') && value.includes('upload');\n }\n\n get title() {\n return this.getAttribute('title') || 'Submit Front of ID';\n }\n\n get sideOfId() {\n return (this.getAttribute('side-of-id') || 'front').toLowerCase();\n }\n\n get isFrontOfId() {\n return this.sideOfId === 'front';\n }\n\n get isBackOfId() {\n return !this.isFrontOfId;\n }\n\n handleBackEvents() {\n this.dispatchEvent(\n new CustomEvent('document-capture-instructions.cancelled'),\n );\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('document-capture-instructions.close'));\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('document-capture-instructions')\n) {\n window.customElements.define(\n 'document-capture-instructions',\n DocumentInstruction,\n );\n}\n\nexport default DocumentInstruction;\n","import { IMAGE_TYPE } from '../../../domain/constants/src/Constants';\nimport styles from '../../../styles/src/styles';\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\n\nimport './document-capture';\nimport './document-capture-review';\nimport './document-capture-instructions';\nimport packageJson from '../../../../package.json';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\nconst smartCameraWeb = document.querySelector('smart-camera-web');\n\nasync function getPermissions(captureScreen) {\n try {\n const stream = await SmartCamera.getMedia({\n audio: false,\n video: SmartCamera.environmentOptions,\n });\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevice = devices.find(\n (device) =>\n device.kind === 'videoinput' &&\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.camera-name', {\n detail: { cameraName: videoDevice?.label },\n }),\n );\n captureScreen.removeAttribute('data-camera-error');\n captureScreen.setAttribute('data-camera-ready', true);\n } catch (error) {\n captureScreen.removeAttribute('data-camera-ready');\n captureScreen.setAttribute(\n 'data-camera-error',\n SmartCamera.handleCameraError(error),\n );\n }\n}\n\nclass DocumentCaptureScreens extends HTMLElement {\n constructor() {\n super();\n this.activeScreen = null;\n this.smartCameraWeb = this.closest('smart-camera-web');\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.initialize'));\n }\n\n connectedCallback() {\n this.innerHTML = `\n ${styles(this.themeColor)}\n <div style=\"height: 100%;\">\n <document-capture-instructions theme-color='${this.themeColor}' id='document-capture-instructions-front' ${this.title}\n ${this.documentCaptureModes} ${this.showNavigation} ${this.hideInstructions ? 'hidden' : ''}\n ${this.hideAttribution}\n ></document-capture-instructions>\n <document-capture id='document-capture-front' side-of-id='Front'\n ${this.title} ${this.showNavigation} ${this.hideInstructions ? '' : 'hidden'} ${this.hideAttribution}\n ${this.documentCaptureModes} ${this.documentType} theme-color='${this.themeColor}'\n ></document-capture>\n <document-capture-instructions id='document-capture-instructions-back' side-of-id='Back' title='Submit Back of ID'\n ${this.documentCaptureModes} ${this.showNavigation} theme-color='${this.themeColor}' ${this.hideAttribution} hidden\n ></document-capture-instructions>\n <document-capture id='document-capture-back' side-of-id='Back' ${this.title} ${this.showNavigation}\n ${this.documentCaptureModes} theme-color='${this.themeColor}' ${this.hideAttribution}\n hidden \n ></document-capture>\n <document-capture-review id='front-of-document-capture-review' theme-color='${this.themeColor}' ${this.hideAttribution} hidden></document-capture-review>\n <document-capture-review id='back-of-document-capture-review' theme-color='${this.themeColor}' ${this.hideAttribution} hidden></document-capture-review>\n </div>\n `;\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n\n this.documentInstruction = this.querySelector(\n 'document-capture-instructions',\n );\n this.documentInstructionBack = this.querySelector(\n '#document-capture-instructions-back',\n );\n this.idCapture = this.querySelector('#document-capture-front');\n this.idReview = this.querySelector('#front-of-document-capture-review');\n this.idCaptureBack = this.querySelector('#document-capture-back');\n this.backOfIdReview = this.querySelector(\n '#back-of-document-capture-review',\n );\n this.thankYouScreen = this.querySelector('thank-you');\n\n if (this.hideInstructions) {\n getPermissions(this.idCapture);\n this.setActiveScreen(this.idCapture);\n } else {\n this.setActiveScreen(this.documentInstruction);\n }\n\n this.setUpEventListeners();\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.cleanup'));\n if (this.activeScreen) {\n this.activeScreen.removeAttribute('hidden');\n }\n this.activeScreen = null;\n this.innerHTML = '';\n }\n\n setUpEventListeners() {\n this.documentInstruction.addEventListener(\n 'document-capture-instructions.cancelled',\n () => {\n this.handleBackEvents();\n },\n );\n\n this.documentInstruction.addEventListener(\n 'document-capture-instructions.capture',\n async () => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-front-capture-start'),\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-front-origin', {\n detail: { imageOrigin: 'camera_manual_capture' },\n }),\n );\n this.setActiveScreen(this.idCapture);\n await getPermissions(this.idCapture);\n },\n );\n this.documentInstruction.addEventListener(\n 'document-capture-instructions.upload',\n async (event) => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-front-origin', {\n detail: { imageOrigin: 'gallery' },\n }),\n );\n this.idReview.setAttribute('data-image', event.detail.previewImage);\n this._data.images.push({\n image: event.detail.image.split(',')[1],\n image_type_id: IMAGE_TYPE.ID_CARD_IMAGE_BASE64,\n });\n this.setActiveScreen(this.idReview);\n },\n );\n\n this.idCapture.addEventListener('document-capture.publish', (event) => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-front-capture-end'),\n );\n this.idReview.setAttribute('data-image', event.detail.previewImage);\n this._data.images.push({\n image: event.detail.image.split(',')[1],\n image_type_id: IMAGE_TYPE.ID_CARD_IMAGE_BASE64,\n });\n SmartCamera.stopMedia();\n this.setActiveScreen(this.idReview);\n });\n\n this.idCapture.addEventListener('document-capture.cancelled', () => {\n if (this.hideInstructions) {\n this.handleBackEvents();\n } else {\n this.setActiveScreen(this.documentInstruction);\n }\n });\n\n this.idReview.addEventListener(\n 'document-capture-review.rejected',\n async () => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-front-capture-retry'),\n );\n this.idReview.removeAttribute('data-image');\n this._data.images.pop();\n if (this.hideInstructions) {\n this.setActiveScreen(this.idCapture);\n await getPermissions(this.idCapture);\n } else {\n this.setActiveScreen(this.documentInstruction);\n }\n },\n );\n\n this.idReview.addEventListener(\n 'document-capture-review.accepted',\n async () => {\n if (this.hideBackOfId) {\n this._publishSelectedImages();\n } else if (this.hideInstructions) {\n this.setActiveScreen(this.idCaptureBack);\n await getPermissions(this.idCaptureBack);\n } else {\n this.setActiveScreen(this.documentInstructionBack);\n }\n },\n );\n\n this.documentInstructionBack.addEventListener(\n 'document-capture-instructions.capture',\n async () => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-back-capture-start'),\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-back-origin', {\n detail: { imageOrigin: 'camera_manual_capture' },\n }),\n );\n this.setActiveScreen(this.idCaptureBack);\n await getPermissions(this.idCaptureBack);\n },\n );\n\n this.documentInstructionBack.addEventListener(\n 'document-capture-instructions.cancelled',\n async () => {\n this.idReview.removeAttribute('data-image');\n this._data.images.pop();\n if (this.hideInstructions) {\n this.setActiveScreen(this.idCapture);\n await getPermissions(this.idCapture);\n } else {\n this.setActiveScreen(this.documentInstruction);\n }\n },\n );\n\n this.documentInstructionBack.addEventListener(\n 'document-capture-instructions.upload',\n async (event) => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-back-origin', {\n detail: { imageOrigin: 'gallery' },\n }),\n );\n this.backOfIdReview.setAttribute('data-image', event.detail.image);\n this._data.images.push({\n image: event.detail.image.split(',')[1],\n image_type_id: IMAGE_TYPE.ID_CARD_BACK_IMAGE_BASE64,\n });\n this.setActiveScreen(this.backOfIdReview);\n },\n );\n this.idCaptureBack.addEventListener('document-capture.publish', (event) => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-back-capture-end'),\n );\n this.backOfIdReview.setAttribute('data-image', event.detail.previewImage);\n this._data.images.push({\n image: event.detail.image.split(',')[1],\n image_type_id: IMAGE_TYPE.ID_CARD_BACK_IMAGE_BASE64,\n });\n this.setActiveScreen(this.backOfIdReview);\n SmartCamera.stopMedia();\n });\n\n this.idCaptureBack.addEventListener(\n 'document-capture.cancelled',\n async () => {\n if (this.hideInstructions) {\n this.setActiveScreen(this.idCapture);\n await getPermissions(this.idCapture);\n } else {\n this.setActiveScreen(this.documentInstructionBack);\n }\n },\n );\n\n this.backOfIdReview.addEventListener(\n 'document-capture-review.rejected',\n async () => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.document-back-capture-retry'),\n );\n this.backOfIdReview.removeAttribute('data-image');\n this._data.images.pop();\n if (this.hideInstructions) {\n this.setActiveScreen(this.idCaptureBack);\n await getPermissions(this.idCaptureBack);\n } else {\n this.setActiveScreen(this.documentInstructionBack);\n }\n },\n );\n\n this.backOfIdReview.addEventListener(\n 'document-capture-review.accepted',\n () => {\n this._publishSelectedImages();\n },\n );\n\n const screens = [\n this.documentInstruction,\n this.idCapture,\n this.documentInstructionBack,\n this.idCaptureBack,\n this.idReview,\n this.backOfIdReview,\n ];\n\n screens.forEach((screen) => {\n screen.addEventListener(`${screen.nodeName.toLowerCase()}.close`, () =>\n this.handleCloseEvents(),\n );\n });\n }\n\n _publishSelectedImages() {\n this.dispatchEvent(\n new CustomEvent('document-capture-screens.publish', {\n detail: this._data,\n }),\n );\n }\n\n get hideInstructions() {\n return this.hasAttribute('hide-instructions');\n }\n\n get hideBackOfId() {\n return this.hasAttribute('hide-back-of-id');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation') ? 'show-navigation' : '';\n }\n\n get title() {\n return this.hasAttribute('title')\n ? `title=${this.getAttribute('title')}`\n : '';\n }\n\n get documentCaptureModes() {\n return this.hasAttribute('document-capture-modes')\n ? `document-capture-modes='${this.getAttribute('document-capture-modes')}'`\n : '';\n }\n\n get documentType() {\n return this.hasAttribute('document-type')\n ? `document-type='${this.getAttribute('document-type')}'`\n : '';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution') ? 'hide-attribution' : '';\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('document-capture-screens.cancelled'));\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('document-capture-screens.close'));\n }\n\n setActiveScreen(screen) {\n this.activeScreen?.setAttribute('hidden', '');\n screen.removeAttribute('hidden');\n this.activeScreen = screen;\n }\n\n static get observedAttributes() {\n return [\n 'document-capture-modes',\n 'document-type',\n 'hide-back-to-host',\n 'show-navigation',\n 'hide-back-of-id',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'document-capture-modes':\n case 'document-type':\n case 'hide-back-of-id':\n case 'hide-back-to-host':\n case 'show-navigation':\n this.connectedCallback();\n break;\n default:\n break;\n }\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('document-capture-screens')\n) {\n customElements.define('document-capture-screens', DocumentCaptureScreens);\n}\n\nexport default DocumentCaptureScreens;\n"],"names":["hasMoreThanNColors","data","n","colors","templateString","styles","documentCaptureScale","DocumentCapture","template","SmartCamera","error","imageDetails","video","canvas","previewCanvas","image","previewImage","height","intermediateCanvas","enableImageTests","context","imageData","stream","videoExists","videoContainer","onVideoStart","portrait","scaleHeight","scaleWidth","heightScaleFactor","widthScaleFactor","scaleHeightOffset","scaleWidthOffset","width","startX","startY","videoHeight","videoWidth","cropWidth","cropHeight","sourceCanvas","destinationCanvas","aspectRatio","offsetX","offsetY","track","value","name","IdReview","SmartFileUpload","numberOfBytes","units","exponent","approx","file","resolve","reject","reader","e","files","frontDocumentIcon","backDocumentIcon","DocumentInstruction","event","fileData","COMPONENTS_VERSION","packageJson","smartCameraWeb","getPermissions","captureScreen","videoDevice","device","DocumentCaptureScreens","IMAGE_TYPE","screen"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EndUserConsent-D4fd1ovG.js","sources":["../../lib/components/end-user-consent/src/EndUserConsent.js"],"sourcesContent":["import styles from '../../../styles/src/styles';\nimport '../../totp-consent/src/TotpConsent';\nimport '../../attribution/PoweredBySmileId';\n\nfunction templateString() {\n return `\n <style>\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n\n :host {\n --flow-space: 1.5rem;\n\n --color-dark: #404040;\n --color-grey: #555B69;\n\n --color-success: #1EB244;\n --color-failure: #FFEDEB;\n --color-failure-tint: #F86B58;\n --color-danger: #FF5805;\n \n --color-primary-blue: #151F72;\n --color-richblue: #043C93;\n --color-theme: ${this.themeColor};\n }\n\n html {\n font-family: 'DM Sans', sans-serif;\n }\n\n [hidden] {\n display: none !important;\n }\n\n [disabled] {\n cursor: not-allowed !important;\n filter: grayscale(75%);\n }\n\n .visually-hidden {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: auto;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n .color-dark {\n color: var(--color-dark);\n }\n\n .color-grey {\n color: var(--color-grey);\n }\n\n .flow > * + * {\n margin-top: var(--flow-space);\n }\n\n .center {\n margin-left: auto;\n margin-right: auto;\n\n text-align: center;\n }\n\n h1 {\n font-size: 20px;\n font-weight: 400;\n }\n\n ol[role=list], ul[role=list] {\n list-style: none;\n padding-left: 0;\n }\n\n button {\n --button-color: var(--color-default);\n --flow-space: 3rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n align-items: center;\n appearance: none;\n background-color: transparent;\n border-radius: 2.5rem;\n border: none;\n color: #ffffff;\n cursor: pointer;\n display: inline-flex;\n font-size: 20px;\n font-weight: 500;\n inline-size: 100%;\n justify-content: center;\n letter-spacing: .05ch;\n line-height: 1;\n padding: 1rem 2.5rem;\n text-align: center;\n text-decoration: none;\n }\n\n button[data-variant='solid'] {\n background-color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n button[data-variant='outline'] {\n color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n button[data-variant='ghost'] {\n color: var(--button-color);\n }\n\n button:hover,\n button:focus,\n button:active {\n --button-color: var(--theme-color);\n }\n\n button:disabled {\n --button-color: var(--color-disabled);\n }\n\n button[data-type='icon'] {\n align-items: center;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: flex;\n padding: 0;\n }\n\n button[data-type='icon'] {\n height: 2rem;\n padding: 0;\n width: 2rem;\n background: transparent;\n }\n\n .nav {\n display: flex;\n justify-content: space-between;\n }\n\n .justify-right {\n justify-content: end !important;\n }\n\n .back-wrapper {\n display: flex;\n align-items: center;\n }\n \n .back-button-text {\n font-size: 11px;\n line-height: 1;\n color: ${this.themeColor} !important;\n }\n\n img {\n border-radius: 50%;\n position: relative;\n }\n\n img::before {\n background-color: #ffffff;\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .demo-tip {\n align-items: center;\n background-color: #f5fcff;\n border-radius: .75rem;\n border: 1px solid #A9D1E8;\n color: inherit;\n display: flex;\n font-size: .875rem;\n max-width: 36rem;\n padding: 1rem;\n text-align: left;\n text-decoration: none;\n }\n\n .demo-tip > * + * {\n margin-left: .5rem;\n }\n\n .callout {\n font-size: .875rem;\n padding: 1rem 1.5rem;\n max-width: 20.6875rem;\n }\n\n .processing-list {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2rem;\n padding-top: 2rem;\n\n }\n\n .processing-list__items {\n display: flex;\n align-items: center;\n gap: 1rem;\n }\n\n .processing-list__items > * + p {\n margin-left: 1rem;\n }\n\n .processing-list__items-item {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .processing-list__item__title {\n color: var(--color-theme);\n }\n\n .processing-list__items-item__description {\n width: 269px\n }\n\n .theme {\n font-weight: 700;\n color: var(--color-theme);\n }\n\n .tooltip {\n position: relative;\n }\n\n .tooltip__trigger {\n }\n\n .tooltip__trigger:focus + .tooltip__content,\n .tooltip__trigger:hover + .tooltip__content {\n display: flex;\n }\n\n .tooltip__content {\n align-items: flex-start;\n background-color: #ffffff;\n border-radius: .5rem;\n box-shadow: 0px 12px 36px rgba(0, 0, 0, 0.08);\n display: none;\n padding: 1.25rem;\n position: absolute;\n right: 20px;\n bottom: -50px;\n width: 200px;\n }\n\n .tooltip__content > :last-child {\n margin-left: 1rem;\n }\n\n .tooltip__content .title {\n font-size: .75rem;\n font-weight: 700;\n }\n\n .tooltip__content .description {\n --flow-space: .25rem;\n font-size: .625rem;\n color: #6B7280;\n }\n\n svg {\n flex-shrink: 0;\n }\n\n [disabled] {\n cursor: not-allowed;\n filter: opacity(.7);\n }\n\n .credits {\n --flow-space: 2rem;\n margin-inline: auto;\n max-inline-size: 10rem;\n }\n\n .company-name {\n text-transform: uppercase;\n letter-spacing: .1rem;\n border-left: 1px solid #cecece;\n margin-left: .75rem;\n padding-left: .75rem;\n display: inline-flex;\n align-items: center;\n }\n\n .company-name svg {\n margin-right: .5rem;\n }\n #cancel {\n color: var(--color-danger);\n }\n </style>\n ${styles(this.themeColor)}\n <div id='consent-screen'>\n <section class='flow center'>\n <div class=\"nav ${this.hideBack ? 'justify-right' : ''}\">\n <div class=\"back-wrapper\" ${this.hideBack ? 'hidden' : ''}>\n <button type='button' data-type='icon' id=\"back-button\" class=\"back-button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\n <path fill=\"${this.themeColor}\" d=\"M15.5 11.25h-5.19l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-3 3c-.29.29-.29.77 0 1.06l3 3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-1.72-1.72h5.19c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z\"/>\n </svg>\n </button>\n <div class=\"back-button-text\">Back</div>\n </div>\n <button data-type='icon' type='button' class='close-iframe'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\n <path fill=\"#91190F\" d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"/>\n </svg>\n <span class='visually-hidden'>Close SmileIdentity Verification frame</span>\n </button>\n </div>\n <img alt='' width='50' height='50' src='${this.partnerLogoURL}' />\n <p class='demo-tip' ${this.demoMode ? '' : 'hidden'}>\n <svg aria-hidden='true' width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4.46045\" y=\"4.46069\" width=\"47.7205\" height=\"47.7205\" rx=\"23.8603\" fill=\"white\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.1578 25.7487H34.2813V23.1195C34.2813 20.2273 31.915 17.861 29.0229 17.861C26.1307 17.861 23.7644 20.2273 23.7644 23.1195V25.7487H22.888C21.3981 25.7487 20.2588 26.888 20.2588 28.3779V34.5128C20.2588 36.0027 21.3981 37.142 22.888 37.142H35.1578C36.6476 37.142 37.787 36.0027 37.787 34.5128V28.3779C37.787 26.888 36.6476 25.7487 35.1578 25.7487ZM25.5171 23.1194C25.5171 21.1913 27.0946 19.6138 29.0227 19.6138C30.9508 19.6138 32.5283 21.1913 32.5283 23.1194V25.7487H25.5171V23.1194ZM35.1577 35.3892C35.6836 35.3892 36.0342 35.0386 36.0342 34.5128V28.3779C36.0342 27.8521 35.6836 27.5015 35.1577 27.5015H22.888C22.3622 27.5015 22.0116 27.8521 22.0116 28.3779V34.5128C22.0116 35.0386 22.3622 35.3892 22.888 35.3892H35.1577Z\" fill=\"#2D9CDB\"/>\n <rect x=\"4.46045\" y=\"4.46069\" width=\"47.7205\" height=\"47.7205\" rx=\"23.8603\" stroke=\"#DDF2F7\" stroke-width=\"7.15808\"/>\n </svg>\n\n <span>\n This consent screen is for illustrative purposes only. Demo App does not collect personal ID data.\n </span>\n </p>\n <h1 class='text-base font-bold'>\n <span class='theme'>${this.partnerName}</span>\n wants to access your\n <span class='theme'>${this.idTypeLabel}</span>\n information\n </h1>\n <p class='text-base font-normal'>\n This will allow ${this.partnerName} to:\n </p>\n </section>\n\n <ul role='list' class='processing-list flow' style='--flow-space: 0rem; margin: var(--flow-space) auto;'>\n <li class='processing-list__items'>\n <svg width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path opacity=\"0.4\" d=\"M9.49983 0C13.0841 0 15.9894 2.90479 15.9894 6.4883C15.9894 10.0718 13.0841 12.9766 9.49983 12.9766C5.91561 12.9766 3.01025 10.0718 3.01025 6.4883C3.01025 2.90479 5.91561 0 9.49983 0Z\" fill=\"#5E646E\"/>\n <path d=\"M1.47086 20.2288H17.5251C18.0342 20.2288 18.5313 20.1561 19 20.0227C18.3413 15.3646 14.3409 11.7811 9.50001 11.7811C4.65909 11.7811 0.658656 15.3646 0 20.0227C0.468737 20.1561 0.961716 20.2288 1.4749 20.2288\" fill=\"#151F72\"/>\n <path d=\"M14.9238 19.0148L13.8262 17.931C13.8262 17.931 13.6341 17.7956 13.5244 17.7956C13.4146 17.7956 13.3049 17.8498 13.2226 17.931C13.1402 18.0123 13.0854 18.1207 13.0854 18.2291C13.0854 18.3374 13.1402 18.4458 13.2226 18.5271L14.622 19.9089C14.622 19.9089 14.814 20.0443 14.9238 20.0443C15.0335 20.0443 15.1433 19.9901 15.2256 19.9089L17.8323 17.335C17.8323 17.335 17.9421 17.1724 17.9421 17.0369C17.9421 16.9015 17.9146 16.8202 17.8323 16.7389C17.75 16.6576 17.6677 16.6305 17.5579 16.6305C17.4482 16.6305 17.3384 16.6576 17.2835 16.7389L15.0061 18.9877L14.9238 19.0148ZM15.5 24C15.5 24 15.4177 24 15.3902 24C15.3628 24 15.3354 24 15.3079 24C14.0457 23.6207 13.0305 22.8621 12.2073 21.7241C11.4116 20.5862 11 19.3128 11 17.931V15.2217C11 15.0591 11.0549 14.8965 11.1646 14.734C11.2744 14.5714 11.4116 14.4901 11.5488 14.4089L15.1982 13.0542C15.1982 13.0542 15.3902 13 15.5 13C15.6098 13 15.6921 13 15.8018 13.0542L19.4512 14.4089C19.6159 14.4631 19.753 14.5714 19.8354 14.734C19.9177 14.8965 20 15.032 20 15.2217V17.931C20 19.3128 19.5884 20.5862 18.7927 21.7241C17.9969 22.8621 16.9543 23.6478 15.6921 24H15.5Z\" fill=\"#2CC05C\"/>\n </svg> \n <div class='processing-list__items-item'>\n <p class='font-medium text-base processing-list__item__title'>Process your personal details</p>\n <p class='text-xs font-medium processing-list__items-item__description'>Partner can process your names, DoB and gender</p>\n </div\n </li>\n <li class='processing-list__items'>\n <svg width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.0226 7.222C14.8323 7.222 14.642 7.152 14.4918 7.002L12.4888 5.002C12.3491 4.86086 12.2708 4.67043 12.2708 4.472C12.2708 4.27357 12.3491 4.08313 12.4888 3.942C12.7792 3.652 13.2599 3.652 13.5504 3.942L15.0226 5.412L18.4978 1.952C18.7882 1.662 19.269 1.662 19.5594 1.952C19.8498 2.242 19.8498 2.722 19.5594 3.012L15.5534 7.012C15.4032 7.142 15.2129 7.222 15.0226 7.222Z\" fill=\"#2CC05C\"/>\n <path opacity=\"0.4\" d=\"M9.80472 12.71L6.5298 15.98C6.16926 15.66 5.81874 15.33 5.47822 14.99C4.46547 13.972 3.5314 12.8789 2.68403 11.72C1.8628 10.58 1.2018 9.44 0.721083 8.31C0.240361 7.17 0 6.08 0 5.04C0 4.36 0.12018 3.71 0.360541 3.11C0.600902 2.5 0.981474 1.94 1.51227 1.44C2.15323 0.81 2.85429 0.5 3.5954 0.5C3.87582 0.5 4.15624 0.56 4.40662 0.68C4.66701 0.8 4.89735 0.98 5.07762 1.24L7.40111 4.51C7.58138 4.76 7.71158 4.99 7.80171 5.21C7.89185 5.42 7.94192 5.63 7.94192 5.82C7.94192 6.06 7.87182 6.3 7.73161 6.53C7.60141 6.76 7.41113 7 7.17077 7.24L6.40962 8.03C6.29946 8.14 6.24938 8.27 6.24938 8.43C6.24938 8.51 6.2594 8.58 6.27943 8.66C6.30947 8.74 6.33952 8.8 6.35955 8.86C6.53982 9.19 6.85028 9.62 7.29095 10.14C7.74162 10.66 8.22234 11.19 8.74313 11.72C9.10367 12.07 9.45419 12.41 9.80472 12.71Z\" fill=\"#5E646E\"/>\n <path d=\"M20 16.83C19.9987 17.2074 19.9131 17.5798 19.7496 17.92C19.5794 18.28 19.359 18.62 19.0686 18.94C18.5779 19.48 18.037 19.87 17.4261 20.12C17.4161 20.12 17.4061 20.13 17.3961 20.13C16.8052 20.37 16.1642 20.5 15.4732 20.5C14.4517 20.5 13.36 20.26 12.2083 19.77C11.0566 19.28 9.90483 18.62 8.76312 17.79C8.37253 17.5 7.98195 17.21 7.61139 16.9L10.8863 13.63C11.1667 13.84 11.4171 14 11.6274 14.11C11.6775 14.13 11.7376 14.16 11.8077 14.19C11.8878 14.22 11.9679 14.23 12.0581 14.23C12.2283 14.23 12.3585 14.17 12.4687 14.06L13.2298 13.31C13.4802 13.06 13.7206 12.87 13.9509 12.75C14.1813 12.61 14.4116 12.54 14.662 12.54C14.8523 12.54 15.0526 12.58 15.2729 12.67C15.4932 12.76 15.7236 12.89 15.9739 13.06L19.2889 15.41C19.5493 15.59 19.7296 15.8 19.8397 16.05C19.9399 16.3 20 16.55 20 16.83Z\" fill=\"#151F72\"/>\n </svg>\n <div class='processing-list__items-item'>\n <p class='font-medium text-base processing-list__item__title'>Process your contact information</p>\n <p class='text-xs font-medium processing-list__items-item__description'>Partner can process your phone numbers and address</p>\n </div\n </li>\n <li class='processing-list__items'>\n <svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect opacity=\"0.4\" y=\"2\" width=\"19\" height=\"16\" rx=\"4\" fill=\"#5E646E\"/>\n <path d=\"M0 8H19V14C19 16.2091 17.2091 18 15 18H4C1.79086 18 0 16.2091 0 14V8Z\" fill=\"#151F72\"/>\n <path d=\"M4.66669 9C5.77129 9 6.66669 9.89539 6.66669 11C6.66669 12.1046 5.77129 13 4.66669 13C3.56208 13 2.66669 12.1046 2.66669 11C2.66669 9.89539 3.56208 9 4.66669 9Z\" fill=\"#2CC05C\"/>\n <path d=\"M2.41287 15H6.91933C7.06224 15 7.20176 14.9771 7.33333 14.935C7.14845 13.4645 6.02552 12.3333 4.66667 12.3333C3.30781 12.3333 2.18489 13.4645 2 14.935C2.13158 14.9771 2.26996 15 2.41401 15\" fill=\"#2CC05C\"/>\n <rect x=\"10\" y=\"10\" width=\"7\" height=\"1\" rx=\"0.5\" fill=\"#2CC05C\"/>\n <rect x=\"10\" y=\"12\" width=\"5.25\" height=\"1\" rx=\"0.5\" fill=\"#2CC05C\"/>\n <rect x=\"10\" y=\"14\" width=\"3.5\" height=\"1\" rx=\"0.5\" fill=\"#2CC05C\"/>\n <g clip-path=\"url(#clip0_641_419)\">\n <path d=\"M17.7221 0.583344H15.2779C14.2162 0.583344 13.5833 1.21626 13.5833 2.27793V4.71918C13.5833 5.78376 14.2162 6.41668 15.2779 6.41668H17.7191C18.7808 6.41668 19.4137 5.78376 19.4137 4.72209V2.27793C19.4166 1.21626 18.7837 0.583344 17.7221 0.583344Z\" fill=\"#151F72\"/>\n <path d=\"M16.0859 4.54474C16.0279 4.54469 15.9723 4.52161 15.9313 4.48058L15.1059 3.65516C15.0652 3.614 15.0424 3.55845 15.0424 3.50058C15.0424 3.4427 15.0652 3.38716 15.1059 3.34599C15.1904 3.26141 15.3304 3.26141 15.415 3.34599L16.0859 4.01683L17.585 2.51766C17.6696 2.43308 17.8096 2.43308 17.8942 2.51766C17.9788 2.60224 17.9788 2.74224 17.8942 2.82683L16.2404 4.48058C16.1995 4.52161 16.1439 4.54469 16.0859 4.54474Z\" fill=\"#2CC05C\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_641_419\">\n <rect width=\"7\" height=\"7\" fill=\"white\" transform=\"translate(13)\"/>\n </clipPath>\n </defs>\n </svg>\n <div class='processing-list__items-item'>\n <p class='font-medium text-base processing-list__item__title'>Process your document information</p>\n <p class='text-xs font-medium processing-list__items-item__description'>Partner can process your photo, ID expiration date, country of issuance and document number</p>\n </div\n </li>\n </ul>\n\n <section class='callout | flow center' style='--flow-space: 2rem; margin: var(--flow-space) auto;'>\n <p>\n You can view <span class='theme'>${this.partnerName}</span>'s privacy policy\n <a class='theme' href='${\n this.partnerPolicyURL\n }' rel='noreferer noopener' target='_blank'>here</a>\n </p>\n\n <p style='--flow-space: .75rem'>\n By choosing \"Allow\", you grant\n <span class='theme'>${this.partnerName}</span>\n consent to process your personal data to offer you this service\n </p>\n </section>\n\n <section class='flow' style='--flow-space: 2.5rem'>\n <button id='allow' data-variant='solid'>\n Allow\n </button>\n\n <button id='cancel' data-variant='ghost' class='color-danger' style='--flow-space: 1.5rem'>\n Cancel\n </button>\n </section>\n </div>\n\n <totp-consent\n hidden\n base-url='${this.baseUrl}'\n country='${this.country}'\n id-hint='${this.idHint}'\n id-regex='${this.idRegex}'\n id-type='${this.idType}'\n id-type-label='${this.idTypeLabel}'\n partner-id='${this.partnerId}'\n partner-name='${this.partnerName}'\n token='${this.token}'\n theme-color='${this.themeColor}'\n ${this.hideAttribution ? 'hide-attribution' : ''}\n >\n </totp-consent>\n\n <div hidden id='consent-rejected-screen' class='flow'>\n <section class='flow center'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"185\" height=\"138\" fill=\"none\">\n <g filter=\"url(#a)\">\n <path fill=\"url(#b)\" d=\"M115.503 88.266H70.86a3.443 3.443 0 0 1-3.445-3.444V23.59a3.443 3.443 0 0 1 3.445-3.444h44.643a3.443 3.443 0 0 1 3.444 3.444v61.232a3.443 3.443 0 0 1-3.444 3.444Z\"/>\n </g>\n <path fill=\"#D5DDEA\" d=\"M98.982 71.746H87.38a2.33 2.33 0 0 1-2.334-2.334 2.33 2.33 0 0 1 2.334-2.334h11.603a2.33 2.33 0 0 1 2.334 2.334 2.33 2.33 0 0 1-2.334 2.334Zm5.326 5.054H82.032c-.68 0-1.224-.544-1.224-1.224 0-.68.544-1.224 1.224-1.224h22.276c.68 0 1.224.544 1.224 1.224 0 .657-.544 1.223-1.224 1.223Z\"/>\n <path fill=\"#D9DEEA\" d=\"M108.41 44.439c0 4.578-2.017 8.68-5.213 11.467a15.186 15.186 0 0 1-10.016 3.739 15.09 15.09 0 0 1-10.016-3.762 15.17 15.17 0 0 1-5.212-11.467c0-8.407 6.82-15.228 15.228-15.228 8.407 0 15.229 6.844 15.229 15.251Z\"/>\n <path fill=\"#fff\" d=\"M103.197 55.906a15.187 15.187 0 0 1-10.016 3.739 15.09 15.09 0 0 1-10.016-3.762c1.11-.43 2.56-.997 4.51-1.79a1.87 1.87 0 0 0 .996-.952 1.8 1.8 0 0 0 .159-.77v-3.649c-.068-.068-.113-.159-.159-.227a3.648 3.648 0 0 1-.589-1.586l-.317-.158c-.93.226-.861-.771-1.11-2.697-.091-.793.022-.952.385-1.088l.294-.408c-1.813-4.079-.906-6.64.884-7.546-.59-1.292-.635-1.768-.635-1.768s3.808.635 5.1.386c1.654-.34 4.214.067 5.166 2.266 1.586.611 2.198 1.631 2.334 2.696.136.998-.158 2.085-.453 2.924a1.077 1.077 0 0 1-.068.158c0 .023-.023.046-.023.068-.045.114-.068.204-.113.295-.023.045-.023.09-.045.136-.023.09-.068.181-.09.25 0 .022 0 .022-.023.044l-.069.204a2.466 2.466 0 0 1-.068.227c.023.023.023.068.046.09.25.114.34.34.25 1.043-.228 1.836-.16 2.946-1.111 2.697l-.839 1.45c-.022.159-.045.25-.068.34-.022.272-.022.816-.022 3.807 0 .363.113.703.294.997.204.317.499.59.861.748 0 0 .023 0 .023.023 1.971.838 3.422 1.382 4.532 1.813Z\"/>\n <path fill=\"url(#c)\" d=\"M99.254 42.92c.068-.453-.136-1.042-.294-1.427-.023-.068-.068-.136-.091-.204-.725-1.45-2.357-2.062-3.898-2.153-3.943-.204-4.328.544-5.552-.589.386.567.408 1.496-.181 2.629-.408.793-1.201 1.155-1.926 1.382-1.813-4.079-.907-6.64.883-7.546-.589-1.292-.634-1.768-.634-1.768s3.807.635 5.099.386c1.654-.34 4.215.067 5.167 2.266 1.586.611 2.198 1.631 2.334 2.696.272 1.7-.725 3.58-.907 4.329Z\"/>\n <path fill=\"url(#d)\" d=\"M97.804 53.368v.702h-9.156v-.929a1.8 1.8 0 0 0 .16-.77v-3.649c-.069-.068-.114-.159-.16-.227v-.226c.204.34.454.634.748.906l2.856 2.017c.657.567 1.631.567 2.311.023l2.674-2.402c.09-.068.181-.159.272-.25-.023.272-.023.816-.023 3.807.046.363.136.703.318.998Z\"/>\n <g filter=\"url(#e)\">\n <path fill=\"url(#f)\" d=\"M54.86 77.728H26.15a3.443 3.443 0 0 1-3.445-3.444V34.128a3.443 3.443 0 0 1 3.445-3.445h28.71a3.443 3.443 0 0 1 3.444 3.445v40.179a3.424 3.424 0 0 1-3.444 3.421Z\"/>\n </g>\n <path fill=\"#D5DDEA\" d=\"M44.504 66.33h-8.022a1.615 1.615 0 0 1-1.609-1.61c0-.883.725-1.608 1.609-1.608h8.022c.884 0 1.61.725 1.61 1.609s-.726 1.609-1.61 1.609Zm3.694 3.49H32.811a.837.837 0 0 1-.838-.839c0-.476.385-.838.838-.838h15.387c.476 0 .839.385.839.838a.851.851 0 0 1-.839.839Z\"/>\n <path fill=\"#D9DEEA\" d=\"M51.008 47.453a10.52 10.52 0 0 1-3.603 7.931 10.5 10.5 0 0 1-6.912 2.584c-2.651 0-5.076-.975-6.911-2.584a10.52 10.52 0 0 1-3.604-7.931c0-5.801 4.714-10.515 10.515-10.515 5.802 0 10.515 4.714 10.515 10.515Z\"/>\n <path fill=\"#fff\" d=\"M47.405 55.385a10.5 10.5 0 0 1-6.912 2.584c-2.651 0-5.076-.975-6.912-2.584a87.84 87.84 0 0 0 3.105-1.246c.317-.136.544-.363.68-.658.068-.158.113-.34.113-.543v-2.516a.69.69 0 0 1-.113-.158 2.36 2.36 0 0 1-.408-1.088l-.227-.113c-.634.158-.589-.544-.77-1.859-.068-.544.023-.657.25-.748l.203-.271c-1.246-2.833-.612-4.6.612-5.213-.408-.883-.43-1.223-.43-1.223s2.628.43 3.535.272c1.155-.227 2.9.045 3.557 1.563 1.088.43 1.519 1.133 1.61 1.858.09.703-.114 1.428-.295 2.017-.023.046-.023.068-.045.114 0 .022-.023.022-.023.045l-.068.204c-.023.023-.023.068-.045.09-.023.069-.046.114-.068.182v.023c-.023.045-.046.09-.046.136-.022.068-.045.113-.045.158.023.023.023.045.023.068.18.09.226.227.158.703-.158 1.269-.113 2.04-.77 1.858l-.567 1.02c-.022.113-.045.158-.045.249-.023.181-.023.567-.023 2.629 0 .249.068.475.204.68.136.226.34.407.59.498h.022c1.405.59 2.402.974 3.15 1.27Z\"/>\n <path fill=\"url(#g)\" d=\"M44.708 46.41c.046-.317-.09-.702-.204-.997l-.068-.136c-.498-.997-1.631-1.427-2.696-1.473-2.72-.136-2.992.386-3.83-.407.272.407.294 1.02-.113 1.813-.295.543-.839.793-1.315.951-1.246-2.832-.612-4.6.612-5.212-.408-.884-.43-1.224-.43-1.224s2.628.431 3.535.272c1.155-.226 2.9.046 3.557 1.564 1.088.43 1.519 1.133 1.61 1.858.135 1.179-.544 2.47-.658 2.992Z\"/>\n <path fill=\"url(#h)\" d=\"M43.711 53.64v.498H37.39v-.657a1.37 1.37 0 0 0 .113-.544v-2.515a.69.69 0 0 1-.113-.16v-.135c.136.227.317.453.52.612l1.972 1.382a1.264 1.264 0 0 0 1.61.023l1.858-1.654a.689.689 0 0 0 .18-.182c-.022.181-.022.567-.022 2.629 0 .25.068.498.204.703Z\"/>\n <g filter=\"url(#i)\">\n <path fill=\"url(#j)\" d=\"M159.533 77.728h-28.712a3.443 3.443 0 0 1-3.444-3.444V34.128a3.443 3.443 0 0 1 3.444-3.445h28.712a3.443 3.443 0 0 1 3.445 3.445v40.179a3.424 3.424 0 0 1-3.445 3.421Z\"/>\n </g>\n <path fill=\"#D5DDEA\" d=\"M149.177 66.33h-8.022a1.616 1.616 0 0 1-1.609-1.61c0-.883.726-1.608 1.609-1.608h8.022c.884 0 1.609.725 1.609 1.609.023.884-.702 1.609-1.609 1.609Zm3.694 3.49h-15.387a.836.836 0 0 1-.838-.839c0-.476.385-.838.838-.838h15.387c.476 0 .839.385.839.838a.837.837 0 0 1-.839.839Z\"/>\n <path fill=\"#D9DEEA\" d=\"M155.704 47.453c0 3.172-1.405 6.005-3.604 7.931a10.498 10.498 0 0 1-6.911 2.584c-2.652 0-5.076-.975-6.912-2.584a10.52 10.52 0 0 1-3.603-7.931c0-5.801 4.713-10.515 10.515-10.515 5.801 0 10.515 4.714 10.515 10.515Z\"/>\n <path fill=\"#fff\" d=\"M152.101 55.385a10.501 10.501 0 0 1-6.912 2.584c-2.651 0-5.076-.975-6.912-2.584a87.84 87.84 0 0 0 3.105-1.246c.317-.136.544-.363.68-.658.068-.158.113-.34.113-.543v-2.516a.677.677 0 0 1-.113-.158 2.352 2.352 0 0 1-.408-1.088l-.227-.113c-.634.158-.589-.544-.77-1.859-.068-.544.022-.657.249-.748l.204-.271c-1.246-2.833-.612-4.6.612-5.213-.408-.883-.431-1.223-.431-1.223s2.629.43 3.535.272c1.156-.227 2.901.045 3.558 1.563 1.088.43 1.519 1.133 1.609 1.858.091.703-.113 1.428-.294 2.017-.023.046-.023.068-.046.114 0 .022-.022.022-.022.045l-.068.204c-.023.023-.023.068-.046.09-.022.069-.045.114-.068.182v.023c-.022.045-.045.09-.045.136-.023.068-.045.113-.045.158.022.023.022.045.022.068.182.09.227.227.159.703-.159 1.269-.113 2.04-.77 1.858l-.567 1.02c-.023.113-.045.158-.045.249-.023.181-.023.567-.023 2.629 0 .249.068.475.204.68.136.226.34.407.589.498h.023c1.382.59 2.379.974 3.15 1.27Z\"/>\n <path fill=\"url(#k)\" d=\"M149.382 46.41c.045-.317-.091-.702-.204-.997l-.068-.136c-.499-.997-1.632-1.427-2.697-1.473-2.719-.136-2.991.386-3.83-.407.272.407.295 1.02-.113 1.813-.295.543-.839.793-1.315.951-1.246-2.832-.611-4.6.612-5.212-.408-.884-.43-1.224-.43-1.224s2.628.431 3.535.272c1.156-.226 2.901.046 3.558 1.564 1.088.43 1.518 1.133 1.609 1.858.136 1.179-.521 2.47-.657 2.992Z\"/>\n <path fill=\"url(#l)\" d=\"M148.385 53.64v.498h-6.323v-.657a1.37 1.37 0 0 0 .113-.544v-2.515a.71.71 0 0 1-.113-.16v-.135c.136.227.317.453.521.612l1.972 1.382a1.264 1.264 0 0 0 1.609.023l1.858-1.654a.683.683 0 0 0 .181-.182c-.022.181-.022.567-.022 2.629 0 .25.068.498.204.703Z\"/>\n <path fill=\"#F97B6A\" d=\"M154.163 120.944 125.496 92.3l6.572-6.572 28.644 28.667-6.549 6.549Z\"/>\n <path fill=\"#F97B6A\" d=\"m168.44 135.334-21.982-21.982a4.72 4.72 0 0 1 0-6.662 4.719 4.719 0 0 1 6.663 0l21.981 21.981a4.719 4.719 0 0 1 0 6.663 4.72 4.72 0 0 1-6.662 0Z\"/>\n <path fill=\"url(#m)\" d=\"m166.876 136.739-28.282-28.282c-.657-.657-.657-1.722 0-2.402l7.229-7.229a1.71 1.71 0 0 1 2.403 0l28.281 28.282c.657.657.657 1.722 0 2.402l-7.229 7.229c-.68.657-1.745.657-2.402 0Z\"/>\n <path fill=\"url(#n)\" d=\"M93.045 0c-30.004 0-54.32 24.316-54.32 54.32 0 29.98 24.316 54.319 54.297 54.319 30.004 0 54.32-24.316 54.32-54.32C147.342 24.316 123.026 0 93.045 0Zm0 98.577c-24.09 0-43.6-19.829-43.6-44.28 0-24.452 19.51-44.258 43.6-44.258 24.089 0 43.6 19.829 43.6 44.28 0 24.452-19.534 44.258-43.6 44.258Z\"/>\n <defs>\n <linearGradient id=\"b\" x1=\"93.164\" x2=\"93.164\" y1=\"18.57\" y2=\"89.001\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FDFEFF\"/>\n <stop offset=\".996\" stop-color=\"#ECF0F5\"/>\n </linearGradient>\n <linearGradient id=\"c\" x1=\"86.316\" x2=\"100.21\" y1=\"38.084\" y2=\"38.084\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#B0BACC\"/>\n <stop offset=\"1\" stop-color=\"#969EAE\"/>\n </linearGradient>\n <linearGradient id=\"d\" x1=\"93.229\" x2=\"93.229\" y1=\"54.105\" y2=\"50.91\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#fff\"/>\n <stop offset=\"1\" stop-color=\"#E2E5EC\"/>\n </linearGradient>\n <linearGradient id=\"f\" x1=\"40.493\" x2=\"40.493\" y1=\"29.595\" y2=\"78.236\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FDFEFF\"/>\n <stop offset=\".996\" stop-color=\"#ECF0F5\"/>\n </linearGradient>\n <linearGradient id=\"g\" x1=\"35.801\" x2=\"45.385\" y1=\"43.069\" y2=\"43.069\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#B0BACC\"/>\n <stop offset=\"1\" stop-color=\"#969EAE\"/>\n </linearGradient>\n <linearGradient id=\"h\" x1=\"40.552\" x2=\"40.552\" y1=\"54.162\" y2=\"51.953\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#fff\"/>\n <stop offset=\"1\" stop-color=\"#E2E5EC\"/>\n </linearGradient>\n <linearGradient id=\"j\" x1=\"145.166\" x2=\"145.166\" y1=\"29.595\" y2=\"78.236\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FDFEFF\"/>\n <stop offset=\".996\" stop-color=\"#ECF0F5\"/>\n </linearGradient>\n <linearGradient id=\"k\" x1=\"140.474\" x2=\"150.059\" y1=\"43.069\" y2=\"43.069\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#B0BACC\"/>\n <stop offset=\"1\" stop-color=\"#969EAE\"/>\n </linearGradient>\n <linearGradient id=\"l\" x1=\"145.225\" x2=\"145.225\" y1=\"54.162\" y2=\"51.953\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#fff\"/>\n <stop offset=\"1\" stop-color=\"#E2E5EC\"/>\n </linearGradient>\n <linearGradient id=\"m\" x1=\"138.084\" x2=\"177.007\" y1=\"117.787\" y2=\"117.787\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FF6551\"/>\n <stop offset=\"1\" stop-color=\"#FF9F92\"/>\n </linearGradient>\n <linearGradient id=\"n\" x1=\"38.676\" x2=\"147.361\" y1=\"54.331\" y2=\"54.331\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#FF6551\"/>\n <stop offset=\"1\" stop-color=\"#FF9F92\"/>\n </linearGradient>\n <filter id=\"a\" width=\"95.532\" height=\"112.12\" x=\"45.415\" y=\"9.146\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\n <feOffset dy=\"11\"/>\n <feGaussianBlur stdDeviation=\"11\"/>\n <feColorMatrix values=\"0 0 0 0 0.397708 0 0 0 0 0.47749 0 0 0 0 0.575 0 0 0 0.27 0\"/>\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1211:246\"/>\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_1211:246\" result=\"shape\"/>\n </filter>\n <filter id=\"e\" width=\"79.601\" height=\"91.045\" x=\".704\" y=\"19.683\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\n <feOffset dy=\"11\"/>\n <feGaussianBlur stdDeviation=\"11\"/>\n <feColorMatrix values=\"0 0 0 0 0.397708 0 0 0 0 0.47749 0 0 0 0 0.575 0 0 0 0.27 0\"/>\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1211:246\"/>\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_1211:246\" result=\"shape\"/>\n </filter>\n <filter id=\"i\" width=\"79.601\" height=\"91.045\" x=\"105.377\" y=\"19.683\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\n <feOffset dy=\"11\"/>\n <feGaussianBlur stdDeviation=\"11\"/>\n <feColorMatrix values=\"0 0 0 0 0.397708 0 0 0 0 0.47749 0 0 0 0 0.575 0 0 0 0.27 0\"/>\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1211:246\"/>\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_1211:246\" result=\"shape\"/>\n </filter>\n </defs>\n </svg>\n\n <h1 style='font-size: 36px; line-height: 1; font-weight: 500; --flow-space: 1.5rem'>\n Consent Denied\n </h1>\n\n <p class='color-grey' style='--flow-space: 1rem'>\n We cannot verify you without your consent\n </p>\n\n <p>\n Wish to correct that?\n </p>\n </section>\n\n <button data-variant='solid' type='button' id='back-to-consent'>\n <svg style='transform: rotate(.5turn);' width=\"25\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 12h11m0 0-4.588-4M18 12l-4.588 4\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n Go Back\n </button>\n\n <button data-variant='outline' id='confirm-consent-rejection' style='--flow-space: 1rem; border-radius: 2rem'>\n No, Cancel Verification\n </button>\n\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\n </div>\n `;\n}\n\nclass EndUserConsent extends HTMLElement {\n constructor() {\n super();\n\n this.idRequiresTotpConsent = ['BVN_MFA'];\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n this.pages = [];\n const template = document.createElement('template');\n template.innerHTML = this.render();\n\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n\n this.consentScreen = this.shadowRoot.querySelector('#consent-screen');\n this.totpConsentApp = this.shadowRoot.querySelector('totp-consent');\n this.consentRejectedScreen = this.shadowRoot.querySelector(\n '#consent-rejected-screen',\n );\n\n this.allowButton = this.shadowRoot.querySelector('#allow');\n this.rejectButton = this.shadowRoot.querySelector('#cancel');\n this.backToConsentButton =\n this.shadowRoot.querySelector('#back-to-consent');\n this.confirmConsentRejectionButton = this.shadowRoot.querySelector(\n '#confirm-consent-rejection',\n );\n this.backButton = this.shadowRoot.querySelector('#back-button');\n const CloseIframeButtons =\n this.shadowRoot.querySelectorAll('.close-iframe');\n\n this.allowButton.addEventListener('click', (e) =>\n this.handleConsentGrant(e),\n );\n this.rejectButton.addEventListener('click', (e) =>\n this.handleConsentGrant(e),\n );\n\n this.backToConsentButton.addEventListener('click', () =>\n this.setActiveScreen(this.consentScreen),\n );\n this.confirmConsentRejectionButton.addEventListener('click', (e) =>\n this.handleConsentRejection(e),\n );\n\n this.totpConsentApp.addEventListener(\n 'end-user-consent.totp.denied.contact-methods-outdated',\n (e) => this.handleTotpConsentEvents(e),\n );\n this.totpConsentApp.addEventListener('end-user-consent.totp.granted', (e) =>\n this.handleTotpConsentEvents(e),\n );\n this.totpConsentApp.addEventListener(\n 'end-user-consent.totp.cancelled',\n (e) => this.handleBackEvents(e),\n );\n\n this.backButton.addEventListener('click', (e) => {\n this.handleBackEvents(e);\n });\n\n CloseIframeButtons.forEach((button) => {\n button.addEventListener(\n 'click',\n () => {\n this.closeWindow();\n },\n false,\n );\n });\n\n this.activeScreen = this.consentScreen;\n }\n\n setActiveScreen(screen) {\n this.activeScreen.hidden = true;\n screen.hidden = false;\n this.activeScreen = screen;\n }\n\n get baseUrl() {\n return this.getAttribute('base-url');\n }\n\n get country() {\n return this.getAttribute('country');\n }\n\n get demoMode() {\n return !!this.hasAttribute('demo-mode');\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host');\n }\n\n get idHint() {\n return this.getAttribute('id-hint') || 'Your BVN should be 11 digits long';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get idRegex() {\n return this.getAttribute('id-regex');\n }\n\n get idType() {\n return this.getAttribute('id-type');\n }\n\n get idTypeLabel() {\n return this.getAttribute('id-type-label');\n }\n\n get partnerId() {\n return this.getAttribute('partner-id');\n }\n\n get partnerName() {\n return this.getAttribute('partner-name');\n }\n\n get partnerLogoURL() {\n return this.getAttribute('partner-logo');\n }\n\n get partnerPolicyURL() {\n return this.getAttribute('policy-url');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#151F72';\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n handleConsentGrant(e) {\n const granted = e.target === this.allowButton;\n\n if (granted) {\n if (this.idRequiresTotpConsent.includes(this.idType)) {\n this.setActiveScreen(this.totpConsentApp);\n this.pages.push(this.consentScreen);\n } else {\n this.dispatchEvent(\n new CustomEvent('end-user-consent.granted', {\n detail: {\n consented: {\n contact_information: granted,\n document_information: granted,\n personal_details: granted,\n },\n },\n }),\n );\n }\n } else {\n this.setActiveScreen(this.consentRejectedScreen);\n }\n }\n\n handleConsentRejection() {\n this.dispatchEvent(new CustomEvent('end-user-consent.denied'));\n }\n\n handleTotpConsentEvents(e) {\n const customEvent = new CustomEvent(e.type, {\n detail: {\n ...e.detail,\n },\n });\n this.dispatchEvent(customEvent);\n }\n\n handleBackEvents() {\n const page = this.pages.pop();\n if (page) {\n this.setActiveScreen(page);\n } else {\n this.dispatchEvent(new CustomEvent('end-user-consent.cancelled'));\n }\n }\n\n closeWindow() {\n const referenceWindow = window.parent;\n referenceWindow.postMessage('SmileIdentity::Close', '*');\n }\n}\n\nif (\n 'customElements' in window &&\n !window.customElements.get('end-user-consent')\n) {\n window.customElements.define('end-user-consent', EndUserConsent);\n}\n\nexport {\n // eslint-disable-next-line import/prefer-default-export\n EndUserConsent,\n};\n"],"names":["templateString","styles","EndUserConsent","template","CloseIframeButtons","e","button","screen","granted","customEvent","page"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Navigation-CTjK6tLU.js","sources":["../../lib/components/navigation/src/Navigation.js"],"sourcesContent":["class Navigation extends HTMLElement {\n connectedCallback() {\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = `\n:host {\n display: flex;\n max-inline-size: 100%;\n justify-content: ${this.showBackButton ? 'space-between' : 'flex-end'};\n}\n\nbutton {\n --button-color: var(--color-default);\n --flow-space: 3rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n align-items: center;\n appearance: none;\n background-color: transparent;\n border-radius: 2.5rem;\n border: none;\n color: #ffffff;\n cursor: pointer;\n display: inline-flex;\n font-size: 1rem;\n font-weight: 500;\n inline-size: 100%;\n justify-content: center;\n letter-spacing: 0.05ch;\n line-height: 1;\n padding: 1rem 2.5rem;\n text-align: center;\n text-decoration: none;\n}\n\nbutton[data-type=\"icon\"] {\n align-items: center;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: flex;\n padding: 0;\n width: auto;\n}\n\n:host::part(back-button) {\n display: flex;\n align-items: center;\n}\n\n:host::part(back-button-text) {\n line-height: 1;\n color: ${this.hasThemeColor ? this.themeColor : 'rgb(21, 31, 114)'} !important;\n}\n\n:host::part(close-button) {\n}\n\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n `;\n\n const backButton = document.createElement('button');\n backButton.setAttribute('class', 'back-button');\n backButton.setAttribute('data-type', 'icon');\n backButton.setAttribute('part', 'back-button');\n backButton.setAttribute('type', 'button');\n backButton.innerHTML = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n fill=\"#DBDBC4\"\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\n opacity=\".4\"\n />\n <path\n fill=\"${this.themeColor}\"\n d=\"M15.5 11.25h-5.19l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-3 3c-.29.29-.29.77 0 1.06l3 3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-1.72-1.72h5.19c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z\"\n />\n </svg>\n <span part=\"back-button-text\">Back</span>\n `;\n\n const closeButton = document.createElement('button');\n closeButton.setAttribute('class', 'close-button');\n closeButton.setAttribute('data-type', 'icon');\n closeButton.setAttribute('part', 'close-button');\n closeButton.setAttribute('type', 'button');\n closeButton.innerHTML = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n >\n <path\n fill=\"#DBDBC4\"\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\n opacity=\".4\"\n />\n <path\n fill=\"#91190F\"\n d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"\n />\n </svg>\n <span class=\"visually-hidden\"\n >Close SmileIdentity Verification frame</span\n >\n `;\n\n shadow.appendChild(style);\n if (this.showBackButton) shadow.appendChild(backButton);\n shadow.appendChild(closeButton);\n\n // Back Button Controls\n this.backButton = backButton;\n this.backButton.addEventListener('click', () => this.handleBack());\n\n // Close Button Controls\n this.closeButton = closeButton;\n this.closeButton.addEventListener('click', () => this.handleClose());\n }\n\n disconnectedCallback() {\n this.backButton.removeEventListener('click', () => this.handleBack());\n this.closeButton.removeEventListener('click', () => this.handleClose());\n }\n\n handleBack() {\n this.dispatchEvent(new CustomEvent('navigation.back'));\n }\n\n handleClose() {\n this.dispatchEvent(new CustomEvent('navigation.close'));\n }\n\n get showBackButton() {\n return !this.hasAttribute('hide-back');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hasThemeColor() {\n return this.getAttribute('theme-color')?.trim();\n }\n}\n\nif (\n 'customElements' in window &&\n !window.customElements.get('smileid-navigation')\n) {\n window.customElements.define('smileid-navigation', Navigation);\n}\n\nexport default Navigation;\n"],"names":["Navigation","shadow","style","backButton","closeButton"],"mappings":"AAAA,MAAMA,UAAmB,YAAY;AAAA,EACnC,oBAAoB;AAClB,UAAMC,IAAS,KAAK,aAAa,EAAE,MAAM,OAAM,CAAE,GAE3CC,IAAQ,SAAS,cAAc,OAAO;AAC5C,IAAAA,EAAM,cAAc;AAAA;AAAA;AAAA;AAAA,qBAIH,KAAK,iBAAiB,kBAAkB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WA4C5D,KAAK,gBAAgB,KAAK,aAAa,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBhE,UAAMC,IAAa,SAAS,cAAc,QAAQ;AAClD,IAAAA,EAAW,aAAa,SAAS,aAAa,GAC9CA,EAAW,aAAa,aAAa,MAAM,GAC3CA,EAAW,aAAa,QAAQ,aAAa,GAC7CA,EAAW,aAAa,QAAQ,QAAQ,GACxCA,EAAW,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAcT,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7B,UAAMC,IAAc,SAAS,cAAc,QAAQ;AACnD,IAAAA,EAAY,aAAa,SAAS,cAAc,GAChDA,EAAY,aAAa,aAAa,MAAM,GAC5CA,EAAY,aAAa,QAAQ,cAAc,GAC/CA,EAAY,aAAa,QAAQ,QAAQ,GACzCA,EAAY,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAuBxBH,EAAO,YAAYC,CAAK,GACpB,KAAK,kBAAgBD,EAAO,YAAYE,CAAU,GACtDF,EAAO,YAAYG,CAAW,GAG9B,KAAK,aAAaD,GAClB,KAAK,WAAW,iBAAiB,SAAS,MAAM,KAAK,YAAY,GAGjE,KAAK,cAAcC,GACnB,KAAK,YAAY,iBAAiB,SAAS,MAAM,KAAK,aAAa;AAAA,EACrE;AAAA,EAEA,uBAAuB;AACrB,SAAK,WAAW,oBAAoB,SAAS,MAAM,KAAK,YAAY,GACpE,KAAK,YAAY,oBAAoB,SAAS,MAAM,KAAK,aAAa;AAAA,EACxE;AAAA,EAEA,aAAa;AACX,SAAK,cAAc,IAAI,YAAY,iBAAiB,CAAC;AAAA,EACvD;AAAA,EAEA,cAAc;AACZ,SAAK,cAAc,IAAI,YAAY,kBAAkB,CAAC;AAAA,EACxD;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,CAAC,KAAK,aAAa,WAAW;AAAA,EACvC;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK,aAAa,aAAa,KAAK;AAAA,EAC7C;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,KAAK,aAAa,aAAa,GAAG,KAAI;AAAA,EAC/C;AACF;AAGE,oBAAoB,UACpB,CAAC,OAAO,eAAe,IAAI,oBAAoB,KAE/C,OAAO,eAAe,OAAO,sBAAsBJ,CAAU;"}