@smileid/web-components 11.4.5 → 11.6.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 (132) hide show
  1. package/dist/esm/DocumentCaptureScreens-DjSTdVP-.js +5398 -0
  2. package/dist/esm/DocumentCaptureScreens-DjSTdVP-.js.map +1 -0
  3. package/dist/esm/{Navigation-Bb7MPLE8.js → Navigation-6DH3vF4-.js} +28 -22
  4. package/dist/esm/Navigation-6DH3vF4-.js.map +1 -0
  5. package/dist/esm/{PoweredBySmileId-CxbaihMu.js → PoweredBySmileId-DoKwoPUd.js} +424 -6
  6. package/dist/esm/PoweredBySmileId-DoKwoPUd.js.map +1 -0
  7. package/dist/esm/SelfieCaptureScreens-CtX-4Tco.js +11470 -0
  8. package/dist/esm/SelfieCaptureScreens-CtX-4Tco.js.map +1 -0
  9. package/dist/esm/combobox.js +1 -1
  10. package/dist/esm/document.js +1 -1
  11. package/dist/esm/end-user-consent.js +713 -2
  12. package/dist/esm/end-user-consent.js.map +1 -1
  13. package/dist/esm/index-BqyuTk9f.js +1366 -0
  14. package/dist/esm/{index-C4RTMbgw.js.map → index-BqyuTk9f.js.map} +1 -1
  15. package/dist/esm/localisation.js +1 -1
  16. package/dist/esm/main.js +14 -14
  17. package/dist/esm/navigation.js +1 -1
  18. package/dist/esm/package-CjZI-cNQ.js +2540 -0
  19. package/dist/esm/package-CjZI-cNQ.js.map +1 -0
  20. package/dist/esm/selfie.js +1 -1
  21. package/dist/esm/smart-camera-web.js +81 -37
  22. package/dist/esm/smart-camera-web.js.map +1 -1
  23. package/dist/esm/totp-consent.js +731 -2
  24. package/dist/esm/totp-consent.js.map +1 -1
  25. package/dist/esm/validate.js +31 -0
  26. package/dist/esm/validate.js.map +1 -0
  27. package/dist/smart-camera-web.js +1513 -383
  28. package/dist/smart-camera-web.js.map +1 -1
  29. package/dist/types/main.d.ts +18 -1
  30. package/dist/types/validate.d.ts +21 -0
  31. package/lib/components/document/src/DocumentCaptureScreens.js +97 -18
  32. package/lib/components/document/src/assets/lottie.d.ts +12 -0
  33. package/lib/components/document/src/assets/svg-inline.d.ts +8 -0
  34. package/lib/components/document/src/document-auto-capture/DocumentAutoCapture.stories.js +75 -0
  35. package/lib/components/document/src/document-auto-capture/DocumentAutoCapture.tsx +1458 -0
  36. package/lib/components/document/src/document-auto-capture/README.md +73 -0
  37. package/lib/components/document/src/document-auto-capture/assets/Greenbook_Shimmer.svg +42 -0
  38. package/lib/components/document/src/document-auto-capture/assets/ID_Back_Shimmer.svg +8 -0
  39. package/lib/components/document/src/document-auto-capture/assets/ID_Front_Shimmer.svg +20 -0
  40. package/lib/components/document/src/document-auto-capture/assets/Passport-Shimmer.svg +143 -0
  41. package/lib/components/document/src/document-auto-capture/assets/shimmers.ts +21 -0
  42. package/lib/components/document/src/document-auto-capture/assets/svg-raw.d.ts +4 -0
  43. package/lib/components/document/src/document-auto-capture/components/CaptureButton.tsx +122 -0
  44. package/lib/components/document/src/document-auto-capture/components/Overlay.tsx +167 -0
  45. package/lib/components/document/src/document-auto-capture/components/TuningPanel.tsx +856 -0
  46. package/lib/components/document/src/document-auto-capture/constants/captureLayout.ts +58 -0
  47. package/lib/components/document/src/document-auto-capture/detection/cvErrorRecovery.ts +40 -0
  48. package/lib/components/document/src/document-auto-capture/detection/documentAspect.ts +20 -0
  49. package/lib/components/document/src/document-auto-capture/detection/qualityScoring.ts +35 -0
  50. package/lib/components/document/src/document-auto-capture/detection/seamRejection.ts +209 -0
  51. package/lib/components/document/src/document-auto-capture/detection/synthesisTiming.ts +10 -0
  52. package/lib/components/document/src/document-auto-capture/hooks/useCamera.ts +117 -0
  53. package/lib/components/document/src/document-auto-capture/hooks/useCardDetection.ts +3059 -0
  54. package/lib/components/document/src/document-auto-capture/index.ts +4 -0
  55. package/lib/components/document/src/document-auto-capture/theme.ts +40 -0
  56. package/lib/components/document/src/document-auto-capture/utils/debug.ts +25 -0
  57. package/lib/components/document/src/document-auto-capture/utils/opencvLoader.ts +86 -0
  58. package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.tsx +327 -244
  59. package/lib/components/document/src/document-capture-review/DocumentCaptureReview.js +153 -189
  60. package/lib/components/document/src/document-capture-submission/DocumentCaptureSubmission.tsx +432 -0
  61. package/lib/components/document/src/document-capture-submission/index.js +3 -0
  62. package/lib/components/navigation/src/Navigation.js +27 -8
  63. package/lib/components/selfie/README.md +13 -0
  64. package/lib/components/selfie/src/SelfieCaptureScreens.js +56 -8
  65. package/lib/components/selfie/src/enhanced-smartselfie-capture/EnhancedSmartSelfieCapture.tsx +684 -0
  66. package/lib/components/selfie/src/enhanced-smartselfie-capture/EnhancedSmartSelfieConsent.tsx +71 -0
  67. package/lib/components/selfie/src/enhanced-smartselfie-capture/EnhancedSmartSelfieSubmission.tsx +181 -0
  68. package/lib/components/selfie/src/enhanced-smartselfie-capture/OvalProgress.tsx +87 -0
  69. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/Icon.svg +8 -0
  70. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/accessories.svg +77 -0
  71. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/active_liveness_animation.lottie +0 -0
  72. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/device.svg +12 -0
  73. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/device_orientation.lottie +0 -0
  74. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/good.svg +52 -0
  75. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/id-card.svg +9 -0
  76. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/illustrations.tsx +852 -0
  77. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/instructions-img.svg +3 -0
  78. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/multiple-faces.svg +69 -0
  79. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/person.svg +6 -0
  80. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/phone.svg +8 -0
  81. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/poor-lighting.svg +53 -0
  82. package/lib/components/selfie/src/enhanced-smartselfie-capture/assets/too_dark_animation.lottie +0 -0
  83. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/ActiveLivenessOverlay.tsx +226 -0
  84. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/AlertDisplay.tsx +38 -0
  85. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/BackNavigation.tsx +45 -0
  86. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/CameraPreview.tsx +96 -0
  87. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/CaptureControls.tsx +97 -0
  88. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/CaptureGuidelines.tsx +374 -0
  89. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/ConsentView.tsx +460 -0
  90. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/SubmissionView.tsx +426 -0
  91. package/lib/components/selfie/src/enhanced-smartselfie-capture/components/index.ts +3 -0
  92. package/lib/components/selfie/src/enhanced-smartselfie-capture/constants.ts +23 -0
  93. package/lib/components/selfie/src/enhanced-smartselfie-capture/hooks/index.ts +2 -0
  94. package/lib/components/selfie/src/enhanced-smartselfie-capture/hooks/useCamera.ts +238 -0
  95. package/lib/components/selfie/src/enhanced-smartselfie-capture/hooks/useFaceCapture.ts +1075 -0
  96. package/lib/components/selfie/src/enhanced-smartselfie-capture/index.ts +1 -0
  97. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/alertMessages.ts +20 -0
  98. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/canvas.ts +108 -0
  99. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/faceDetection.ts +545 -0
  100. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/imageCapture.ts +66 -0
  101. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/imageQuality.ts +151 -0
  102. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/index.ts +5 -0
  103. package/lib/components/selfie/src/enhanced-smartselfie-capture/utils/mediapipeManager.ts +215 -0
  104. package/lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx +24 -1
  105. package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx +2 -2
  106. package/lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts +15 -7
  107. package/lib/components/selfie/src/smartselfie-capture/utils/canvas.ts +4 -6
  108. package/lib/components/signature-pad/package.json +1 -1
  109. package/lib/components/smart-camera-web/src/README.md +11 -0
  110. package/lib/components/smart-camera-web/src/SmartCameraWeb.js +89 -8
  111. package/lib/components/totp-consent/src/TotpConsent.js +1 -1
  112. package/lib/domain/localisation/index.js +2 -2
  113. package/package.json +9 -5
  114. package/dist/esm/DocumentCaptureScreens-D2G0NOQr.js +0 -4147
  115. package/dist/esm/DocumentCaptureScreens-D2G0NOQr.js.map +0 -1
  116. package/dist/esm/EndUserConsent-uHfA3txP.js +0 -717
  117. package/dist/esm/EndUserConsent-uHfA3txP.js.map +0 -1
  118. package/dist/esm/Navigation-Bb7MPLE8.js.map +0 -1
  119. package/dist/esm/PoweredBySmileId-CxbaihMu.js.map +0 -1
  120. package/dist/esm/SelfieCaptureScreens-Dr7VzON7.js +0 -7651
  121. package/dist/esm/SelfieCaptureScreens-Dr7VzON7.js.map +0 -1
  122. package/dist/esm/TotpConsent-Depzg0ti.js +0 -734
  123. package/dist/esm/TotpConsent-Depzg0ti.js.map +0 -1
  124. package/dist/esm/index-C4RTMbgw.js +0 -1360
  125. package/dist/esm/package-D6YrpMcO.js +0 -565
  126. package/dist/esm/package-D6YrpMcO.js.map +0 -1
  127. package/dist/esm/styles-BTEClL7R.js +0 -419
  128. package/dist/esm/styles-BTEClL7R.js.map +0 -1
  129. /package/lib/components/document/src/assets/lottie/{taking photo of green book passport.lottie → greenbook.lottie} +0 -0
  130. /package/lib/components/document/src/assets/lottie/{taking photo of ID FLIP 2D.lottie → id-card-flip.lottie} +0 -0
  131. /package/lib/components/document/src/assets/lottie/{taking photo of ID.lottie → id-card.lottie} +0 -0
  132. /package/lib/components/document/src/assets/lottie/{taking photo of passport 2.lottie → passport.lottie} +0 -0
@@ -1,4 +1,4 @@
1
- import { S as r } from "./SelfieCaptureScreens-Dr7VzON7.js";
1
+ import { S as r } from "./SelfieCaptureScreens-CtX-4Tco.js";
2
2
  export {
3
3
  r as default
4
4
  };
@@ -1,13 +1,12 @@
1
- import { s as r } from "./styles-BTEClL7R.js";
2
- import { S as i, p as o } from "./package-D6YrpMcO.js";
3
- import "./DocumentCaptureScreens-D2G0NOQr.js";
4
- import "./SelfieCaptureScreens-Dr7VzON7.js";
5
- import "./PoweredBySmileId-CxbaihMu.js";
6
- import "./Navigation-Bb7MPLE8.js";
7
- import { b as h, t as a } from "./index-C4RTMbgw.js";
8
- function c() {
1
+ import { s as o } from "./PoweredBySmileId-DoKwoPUd.js";
2
+ import { S as a, p as c } from "./package-CjZI-cNQ.js";
3
+ import "./DocumentCaptureScreens-DjSTdVP-.js";
4
+ import "./SelfieCaptureScreens-CtX-4Tco.js";
5
+ import "./Navigation-6DH3vF4-.js";
6
+ import { b as h, t as n } from "./index-BqyuTk9f.js";
7
+ function l() {
9
8
  return `
10
- ${r(this.themeColor)}
9
+ ${o(this.themeColor)}
11
10
  <style>
12
11
  .camera-permission-screen {
13
12
  display: flex;
@@ -71,10 +70,10 @@ function c() {
71
70
  </clipPath>
72
71
  </defs>
73
72
  </svg>
74
- <p class='text-2xl font-bold'>${a("camera.permission.description")}</p>
73
+ <p class='text-2xl font-bold'>${n("camera.permission.description")}</p>
75
74
  <div class='flow action-buttons'>
76
75
  <button data-variant='solid full-width' class='button' type='button' id='request-camera-access'>
77
- ${a("camera.permission.requestButton")}
76
+ ${n("camera.permission.requestButton")}
78
77
  </button>
79
78
  ${this.hideAttribution ? "" : "<powered-by-smile-id></powered-by-smile-id>"}
80
79
  </div>
@@ -83,27 +82,27 @@ function c() {
83
82
  </div>
84
83
  `;
85
84
  }
86
- class l extends HTMLElement {
85
+ class u extends HTMLElement {
87
86
  connectedCallback() {
88
- this.templateString = c.bind(this), this.render = () => this.templateString(), this.attachShadow({ mode: "open" }), this.shadowRoot.innerHTML = this.render(), this.setUpEventListeners();
87
+ this.templateString = l.bind(this), this.render = () => this.templateString(), this.attachShadow({ mode: "open" }), this.shadowRoot.innerHTML = this.render(), this.setUpEventListeners();
89
88
  }
90
89
  setUpEventListeners() {
91
- const e = this.shadowRoot.querySelector("#error"), t = this.shadowRoot.getElementById(
90
+ const e = this.shadowRoot.querySelector("#error"), s = this.shadowRoot.getElementById(
92
91
  "request-camera-access"
93
92
  );
94
- e.textContent = "", t.addEventListener("click", async () => {
95
- t.setAttribute("disabled", !0);
93
+ e.textContent = "", s.addEventListener("click", async () => {
94
+ s.setAttribute("disabled", !0);
96
95
  try {
97
- await i.getMedia({
96
+ await a.getMedia({
98
97
  audio: !1,
99
98
  video: !0
100
99
  }), this.dispatchEvent(new CustomEvent("camera-permission.granted"));
101
- } catch (s) {
100
+ } catch (r) {
102
101
  this.dispatchEvent(
103
- new CustomEvent("camera-permission.denied", { detail: s })
104
- ), e.textContent = i.handleCameraError(s);
102
+ new CustomEvent("camera-permission.denied", { detail: r })
103
+ ), e.textContent = a.handleCameraError(r);
105
104
  }
106
- t.removeAttribute("disabled");
105
+ s.removeAttribute("disabled");
107
106
  });
108
107
  }
109
108
  get showNavigation() {
@@ -122,8 +121,8 @@ class l extends HTMLElement {
122
121
  return this.getAttribute("dir") || h() || "ltr";
123
122
  }
124
123
  }
125
- window.customElements && !window.customElements.get("camera-permission") && window.customElements.define("camera-permission", l);
126
- const d = o.version;
124
+ window.customElements && !window.customElements.get("camera-permission") && window.customElements.define("camera-permission", u);
125
+ const d = c.version, t = (i) => String(i).replace(/&/g, "&amp;").replace(/"/g, "&quot;");
127
126
  function m() {
128
127
  return `
129
128
  <style>
@@ -132,18 +131,18 @@ function m() {
132
131
  height: 100%;
133
132
  }
134
133
  </style>
135
- ${r(this.themeColor)}
134
+ ${o(this.themeColor)}
136
135
  <div style="height: 100%;">
137
136
  <camera-permission ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.hideInstructions ? "" : "hidden"} ${this.hideAttribution}></camera-permission>
138
- <selfie-capture-screens ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.disableImageTests} ${this.hideAttribution} ${this.hideInstructions} hidden
139
- ${this.hideBackToHost} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.allowLegacySelfieFallback}
137
+ <selfie-capture-screens ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.disableImageTests} ${this.hideAttribution} ${this.hideInstructions} ${this.hideConsent} ${this.partnerName} ${this.partnerLogo} ${this.policyUrl} hidden
138
+ ${this.hideBackToHost} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.allowLegacySelfieFallback} ${this.useStrictMode} ${this.showBackOnGuidelines}
140
139
  ></selfie-capture-screens>
141
- <document-capture-screens ${this.applyComponentThemeColor} document-type=${this.documentType} ${this.title} ${this.documentCaptureModes} ${this.showNavigation} ${this.hideAttribution}
140
+ <document-capture-screens ${this.autoCaptureFeature} ${this.autoCapture} ${this.autoCaptureTimeout} ${this.applyComponentThemeColor} document-type="${t(this.documentType)}" ${this.title} ${this.documentCaptureModes} ${this.showNavigation} ${this.hideAttribution}
142
141
  ${this.hideBackOfId} ${this.newInstructions} ${this.applyComponentThemeColor} hidden></document-capture-screens>
143
142
  </div>
144
143
  `;
145
144
  }
146
- class u extends HTMLElement {
145
+ class p extends HTMLElement {
147
146
  constructor() {
148
147
  super(), this.scwTemplateString = m.bind(this), this.render = () => this.scwTemplateString(), this.attachShadow({ mode: "open" }), this.activeScreen = null;
149
148
  }
@@ -156,36 +155,54 @@ class u extends HTMLElement {
156
155
  }, "mediaDevices" in navigator && "getUserMedia" in navigator.mediaDevices ? this.setUpEventListeners() : this.shadowRoot.innerHTML = '<h1 class="error-message">Your browser does not support this integration</h1>';
157
156
  }
158
157
  disconnectedCallback() {
159
- i.stopMedia(), this.activeScreen && this.activeScreen.removeAttribute("hidden"), this.activeScreen = null, this.shadowRoot.innerHTML = "";
158
+ a.stopMedia(), this.activeScreen && this.activeScreen.removeAttribute("hidden"), this.activeScreen = null, this.shadowRoot.innerHTML = "";
160
159
  }
161
160
  static get observedAttributes() {
162
161
  return [
163
162
  "allow-agent-mode",
164
163
  "allow-legacy-selfie-fallback",
164
+ "auto-capture-enabled",
165
+ "auto-capture",
166
+ "auto-capture-timeout",
165
167
  "disable-image-tests",
166
168
  "document-capture-modes",
167
169
  "document-type",
168
170
  "hide-attribution",
169
171
  "hide-back-of-id",
170
172
  "hide-back-to-host",
173
+ "hide-consent",
174
+ "partner-name",
175
+ "partner-logo",
176
+ "policy-url",
171
177
  "show-navigation",
178
+ "show-back-on-guidelines",
172
179
  "theme-color",
173
- "new-instructions"
180
+ "new-instructions",
181
+ "use-strict-mode"
174
182
  ];
175
183
  }
176
184
  attributeChangedCallback(e) {
177
185
  switch (e) {
178
186
  case "allow-agent-mode":
179
187
  case "allow-legacy-selfie-fallback":
188
+ case "auto-capture-enabled":
189
+ case "auto-capture":
190
+ case "auto-capture-timeout":
180
191
  case "disable-image-tests":
181
192
  case "document-capture-modes":
182
193
  case "document-type":
183
194
  case "hide-attribution":
184
195
  case "hide-back-of-id":
185
196
  case "hide-back-to-host":
197
+ case "hide-consent":
198
+ case "partner-name":
199
+ case "partner-logo":
200
+ case "policy-url":
186
201
  case "show-navigation":
202
+ case "show-back-on-guidelines":
187
203
  case "theme-color":
188
204
  case "new-instructions":
205
+ case "use-strict-mode":
189
206
  this.disconnectedCallback(), this.shadowRoot.innerHTML = this.render(), this.setUpEventListeners();
190
207
  break;
191
208
  }
@@ -270,30 +287,57 @@ class u extends HTMLElement {
270
287
  get showNavigation() {
271
288
  return this.hasAttribute("show-navigation") ? "show-navigation" : "";
272
289
  }
290
+ get showBackOnGuidelines() {
291
+ return this.hasAttribute("show-back-on-guidelines") ? "show-back-on-guidelines" : "";
292
+ }
273
293
  get hideBackToHost() {
274
294
  return this.hasAttribute("hide-back-to-host") || this.hasAttribute("hide-back") ? "hide-back" : "";
275
295
  }
276
296
  get allowAgentMode() {
277
- return this.hasAttribute("allow-agent-mode") ? `allow-agent-mode=${this.getAttribute("allow-agent-mode")}` : "";
297
+ return this.hasAttribute("allow-agent-mode") ? `allow-agent-mode="${t(this.getAttribute("allow-agent-mode"))}"` : "";
278
298
  }
279
299
  get allowAgentModeTests() {
280
300
  return this.hasAttribute("show-agent-mode-for-tests") ? "show-agent-mode-for-tests" : "";
281
301
  }
282
302
  get title() {
283
- return this.hasAttribute("title") ? `title=${this.getAttribute("title")}` : "";
303
+ return this.hasAttribute("title") ? `title="${t(this.getAttribute("title"))}"` : "";
284
304
  }
285
305
  get documentCaptureModes() {
286
- return this.hasAttribute("document-capture-modes") ? `document-capture-modes='${this.getAttribute("document-capture-modes")}'` : "";
306
+ return this.hasAttribute("document-capture-modes") ? `document-capture-modes="${t(this.getAttribute("document-capture-modes"))}"` : "";
307
+ }
308
+ get autoCaptureFeature() {
309
+ return this.hasAttribute("auto-capture-enabled") ? "auto-capture-enabled" : "";
310
+ }
311
+ get autoCapture() {
312
+ return this.hasAttribute("auto-capture") ? `auto-capture="${t(this.getAttribute("auto-capture"))}"` : "";
313
+ }
314
+ get autoCaptureTimeout() {
315
+ return this.hasAttribute("auto-capture-timeout") ? `auto-capture-timeout="${t(this.getAttribute("auto-capture-timeout"))}"` : "";
287
316
  }
288
317
  get disableImageTests() {
289
318
  return this.hasAttribute("disable-image-tests") ? "disable-image-tests" : "";
290
319
  }
291
320
  get allowLegacySelfieFallback() {
292
- return this.hasAttribute("allow-legacy-selfie-fallback") ? `allow-legacy-selfie-fallback='${this.getAttribute("allow-legacy-selfie-fallback")}'` : "";
321
+ return this.hasAttribute("allow-legacy-selfie-fallback") ? `allow-legacy-selfie-fallback="${t(this.getAttribute("allow-legacy-selfie-fallback"))}"` : "";
322
+ }
323
+ get useStrictMode() {
324
+ return this.hasAttribute("use-strict-mode") && this.getAttribute("use-strict-mode") !== "false" ? 'use-strict-mode="true"' : "";
293
325
  }
294
326
  get hideAttribution() {
295
327
  return this.hasAttribute("hide-attribution") ? "hide-attribution" : "";
296
328
  }
329
+ get hideConsent() {
330
+ return this.hasAttribute("hide-consent") ? "hide-consent" : "";
331
+ }
332
+ get partnerName() {
333
+ return this.hasAttribute("partner-name") ? `partner-name="${t(this.getAttribute("partner-name"))}"` : "";
334
+ }
335
+ get partnerLogo() {
336
+ return this.hasAttribute("partner-logo") ? `partner-logo="${t(this.getAttribute("partner-logo"))}"` : "";
337
+ }
338
+ get policyUrl() {
339
+ return this.hasAttribute("policy-url") ? `policy-url="${t(this.getAttribute("policy-url"))}"` : "";
340
+ }
297
341
  get hasThemeColor() {
298
342
  return this.hasAttribute("theme-color") && ![null, void 0, "null", "undefined"].includes(
299
343
  this.getAttribute("theme-color")
@@ -303,7 +347,7 @@ class u extends HTMLElement {
303
347
  return this.hasThemeColor ? this.getAttribute("theme-color") : "#001096";
304
348
  }
305
349
  get applyComponentThemeColor() {
306
- return this.hasThemeColor ? `theme-color='${this.themeColor}'` : "";
350
+ return this.hasThemeColor ? `theme-color="${t(this.themeColor)}"` : "";
307
351
  }
308
352
  setActiveScreen(e) {
309
353
  this.activeScreen?.setAttribute("hidden", ""), e.removeAttribute("hidden"), this.activeScreen = e;
@@ -312,8 +356,8 @@ class u extends HTMLElement {
312
356
  this.dispatchEvent(new CustomEvent("smart-camera-web.close"));
313
357
  }
314
358
  }
315
- "customElements" in window && !customElements.get("smart-camera-web") && customElements.define("smart-camera-web", u);
359
+ "customElements" in window && !customElements.get("smart-camera-web") && customElements.define("smart-camera-web", p);
316
360
  export {
317
- u as default
361
+ p as default
318
362
  };
319
363
  //# sourceMappingURL=smart-camera-web.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-camera-web.js","sources":["../../lib/components/camera-permission/CameraPermission.js","../../lib/components/smart-camera-web/src/SmartCameraWeb.js"],"sourcesContent":["import SmartCamera from '../../domain/camera/src/SmartCamera';\nimport styles from '../../styles/src/styles';\nimport '../attribution/PoweredBySmileId';\nimport '../navigation/src';\nimport { t, getDirection } from '../../domain/localisation';\n\nfunction templateString() {\n return `\n ${styles(this.themeColor)}\n <style>\n .camera-permission-screen {\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n }\n .camera-permission {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n align-items: center;\n margin-top: auto;\n margin-bottom: auto;\n }\n .camera-permission svg {\n flex-shrink: 0;\n margin-inline-end: 2rem;\n }\n .camera-permission p {\n margin-block: 0;\n text-align: center;\n }\n </style>\n <div class='camera-permission-screen flow center' dir='${this.direction}'>\n ${this.showNavigation ? `<smileid-navigation theme-color='${this.themeColor}' ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>` : ''}\n <div class='flow center'>\n <p class='color-red | center' id='error'>\n </p>\n </div>\n <div class='section | flow camera-permission-wrapper'>\n <div class='center camera-permission'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"43\" height=\"33\" viewBox=\"0 0 43 33\" fill=\"none\">\n <g clip-path=\"url(#clip0_658_1399)\">\n <path d=\"M6.36288 7.14178H36.6374C38.1923 7.14178 39.6835 7.7593 40.783 8.85849C41.8824 9.95768 42.5001 11.4485 42.5001 13.003V29.8478C42.5001 30.6838 42.1679 31.4856 41.5766 32.0767C40.9853 32.6679 40.1833 33 39.347 33H6.36288C4.80798 33 3.31676 32.3825 2.21728 31.2833C1.1178 30.1841 0.500122 28.6933 0.500122 27.1388L0.500122 13.003C0.500122 11.4485 1.1178 9.95768 2.21728 8.85849C3.31676 7.7593 4.80798 7.14178 6.36288 7.14178Z\" fill=\"#B2B2B2\"/>\n <path d=\"M10.454 23.1789C10.7438 21.9337 9.96906 20.6893 8.7235 20.3995C7.47794 20.1098 6.23325 20.8843 5.9434 22.1296C5.65355 23.3748 6.4283 24.6191 7.67386 24.9089C8.91942 25.1987 10.1641 24.4241 10.454 23.1789Z\" fill=\"#DBDBC4\"/>\n <path d=\"M10.0768 22.9365C10.2425 21.9024 9.53826 20.9298 8.50389 20.7642C7.46952 20.5985 6.49668 21.3025 6.331 22.3366C6.16532 23.3707 6.86954 24.3433 7.90391 24.509C8.93828 24.6746 9.91112 23.9706 10.0768 22.9365Z\" fill=\"#FF5805\"/>\n <path d=\"M10.9694 16.2784H5.20514C4.83782 16.2784 4.54004 16.576 4.54004 16.9433V18.5194C4.54004 18.8866 4.83782 19.1843 5.20514 19.1843H10.9694C11.3367 19.1843 11.6345 18.8866 11.6345 18.5194V16.9433C11.6345 16.576 11.3367 16.2784 10.9694 16.2784Z\" fill=\"#2D2B2A\"/>\n <path d=\"M37.9183 22.6813C37.9183 19.8492 37.9183 17.0418 37.9429 14.2097C37.9429 11.8948 37.9183 9.57985 37.9676 7.28955C37.5348 7.16853 37.0868 7.11047 36.6374 7.11716H36.0708C36.0954 9.87537 36.1201 12.6089 36.1201 15.3672C36.1201 20.9082 36.1201 26.4739 36.1447 32.0149V32.9754H37.8937C37.8937 29.5522 37.8937 26.1291 37.9183 22.6813Z\" fill=\"#DBDBC4\"/>\n <path d=\"M0.500136 12.9291C0.496683 12.9634 0.500492 12.9981 0.511315 13.0309C0.522139 13.0637 0.539736 13.0938 0.562964 13.1194C0.586192 13.1449 0.614532 13.1653 0.646146 13.1792C0.67776 13.1931 0.71194 13.2002 0.746471 13.2H10.4767C12.8169 13.2 12.1271 11.2545 15.1324 11.2545H41.9582C41.9989 11.2523 42.0385 11.2411 42.0742 11.2215C42.1099 11.2019 42.1408 11.1745 42.1644 11.1414C42.1881 11.1083 42.204 11.0702 42.2109 11.0301C42.2179 10.99 42.2157 10.9488 42.2045 10.9097C41.8333 9.80556 41.125 8.84568 40.1793 8.16529C39.2335 7.48491 38.0981 7.11831 36.933 7.11716H6.31363C5.55019 7.11716 4.79423 7.26749 4.0889 7.55957C3.38358 7.85164 2.7427 8.27975 2.20287 8.81944C1.66304 9.35913 1.23482 9.99983 0.942663 10.705C0.650508 11.4101 0.500136 12.1659 0.500136 12.9291Z\" fill=\"#5E646E\"/>\n <path d=\"M29.7154 1.3791H23.4585C21.4632 1.3791 19.7388 2.48731 19.394 4.01418L18.113 9.45671L18.1623 9.50597H35.0116C35.0362 9.50597 35.0608 9.48134 35.0362 9.45671L33.7799 4.01418C33.4104 2.48731 31.7107 1.3791 29.7154 1.3791Z\" fill=\"#5E646E\"/>\n <path d=\"M30.8977 4.06343V3.71865C30.8977 3.32677 30.742 2.95093 30.4649 2.67382C30.1877 2.39672 29.8117 2.24104 29.4197 2.24104H23.6555C23.2678 2.2475 22.8982 2.40603 22.6263 2.68244C22.3544 2.95885 22.2021 3.331 22.2021 3.71865V4.06343H30.8977Z\" fill=\"#2D2B2A\"/>\n <path d=\"M14.0731 4.72836H6.70771C6.4084 4.72836 6.16577 4.97093 6.16577 5.27015V6.63695C6.16577 6.93617 6.4084 7.17874 6.70771 7.17874H14.0731C14.3724 7.17874 14.615 6.93617 14.615 6.63695V5.27015C14.615 4.97093 14.3724 4.72836 14.0731 4.72836Z\" fill=\"#2D2B2A\"/>\n <path d=\"M8.99862 8.76717H7.12648C6.73194 8.76717 6.41211 9.08692 6.41211 9.48135V11.0181C6.41211 11.4125 6.73194 11.7322 7.12648 11.7322H8.99862C9.39315 11.7322 9.71299 11.4125 9.71299 11.0181V9.48135C9.71299 9.08692 9.39315 8.76717 8.99862 8.76717Z\" fill=\"#FCFCFC\"/>\n <path d=\"M8.77703 10.2448C8.77709 10.1521 8.75846 10.0604 8.72227 9.97507C8.68608 9.88977 8.63306 9.81263 8.56638 9.74827C8.4997 9.6839 8.42073 9.63363 8.33418 9.60047C8.24763 9.5673 8.15529 9.55191 8.06266 9.55522C7.97208 9.55522 7.88239 9.57305 7.79871 9.60771C7.71503 9.64236 7.63899 9.69315 7.57494 9.75718C7.5109 9.82121 7.46009 9.89723 7.42543 9.98089C7.39076 10.0646 7.37292 10.1542 7.37292 10.2448C7.37281 10.43 7.44469 10.608 7.57338 10.7413C7.70206 10.8745 7.8775 10.9526 8.06266 10.9589C8.25212 10.9589 8.43382 10.8837 8.56779 10.7498C8.70176 10.6158 8.77703 10.4342 8.77703 10.2448Z\" fill=\"#5E646E\"/>\n <path d=\"M26.9318 30.0202C33.7069 30.0202 39.1992 24.5293 39.1992 17.756C39.1992 10.9827 33.7069 5.49179 26.9318 5.49179C20.1566 5.49179 14.6643 10.9827 14.6643 17.756C14.6643 24.5293 20.1566 30.0202 26.9318 30.0202Z\" fill=\"#FCFCFC\"/>\n <path d=\"M26.9319 28.3455C32.7819 28.3455 37.5242 23.6044 37.5242 17.756C37.5242 11.9075 32.7819 7.16641 26.9319 7.16641C21.0818 7.16641 16.3395 11.9075 16.3395 17.756C16.3395 23.6044 21.0818 28.3455 26.9319 28.3455Z\" fill=\"#0A462F\"/>\n <path d=\"M26.9318 24.0358C30.401 24.0358 33.2133 21.2242 33.2133 17.756C33.2133 14.2877 30.401 11.4761 26.9318 11.4761C23.4626 11.4761 20.6503 14.2877 20.6503 17.756C20.6503 21.2242 23.4626 24.0358 26.9318 24.0358Z\" fill=\"#2D2B2A\"/>\n <path opacity=\"0.49\" d=\"M28.4098 19.1104C30.1376 19.1104 31.5383 17.7102 31.5383 15.9828C31.5383 14.2555 30.1376 12.8552 28.4098 12.8552C26.682 12.8552 25.2814 14.2555 25.2814 15.9828C25.2814 17.7102 26.682 19.1104 28.4098 19.1104Z\" fill=\"url(#paint0_linear_658_1399)\"/>\n <g style=\"mix-blend-mode:screen\" opacity=\"0.24\">\n <path d=\"M30.9717 14.6776C30.9717 14.9977 30.8445 15.3046 30.6182 15.5309C30.3918 15.7572 30.0848 15.8843 29.7647 15.8843C29.4445 15.8843 29.1375 15.7572 28.9112 15.5309C28.6848 15.3046 28.5576 14.9977 28.5576 14.6776C28.5576 14.5203 28.589 14.3645 28.6499 14.2195C28.7109 14.0744 28.8002 13.943 28.9126 13.8329C29.025 13.7228 29.1583 13.6363 29.3046 13.5783C29.4509 13.5204 29.6073 13.4922 29.7647 13.4955C29.922 13.4922 30.0784 13.5204 30.2247 13.5783C30.371 13.6363 30.5043 13.7228 30.6167 13.8329C30.7291 13.943 30.8184 14.0744 30.8794 14.2195C30.9403 14.3645 30.9717 14.5203 30.9717 14.6776Z\" fill=\"#00FFFF\"/>\n </g>\n </g>\n <defs>\n <linearGradient id=\"paint0_linear_658_1399\" x1=\"25.2617\" y1=\"15.9804\" x2=\"31.5383\" y2=\"15.9804\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#7F47DD\" stop-opacity=\"0.1\"/>\n <stop offset=\"0.99\" stop-color=\"#00FFFF\"/>\n </linearGradient>\n <clipPath id=\"clip0_658_1399\">\n <rect width=\"42\" height=\"33\" fill=\"white\" transform=\"translate(0.500122)\"/>\n </clipPath>\n </defs>\n </svg>\n <p class='text-2xl font-bold'>${t('camera.permission.description')}</p>\n <div class='flow action-buttons'>\n <button data-variant='solid full-width' class='button' type='button' id='request-camera-access'>\n ${t('camera.permission.requestButton')}\n </button>\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\n </div>\n </div>\n </div>\n </div>\n `;\n}\n\nclass CameraPermission extends HTMLElement {\n connectedCallback() {\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n }\n\n setUpEventListeners() {\n const errorMessage = this.shadowRoot.querySelector('#error');\n const permissionButton = this.shadowRoot.getElementById(\n 'request-camera-access',\n );\n errorMessage.textContent = '';\n permissionButton.addEventListener('click', async () => {\n permissionButton.setAttribute('disabled', true);\n try {\n await SmartCamera.getMedia({\n audio: false,\n video: true,\n });\n this.dispatchEvent(new CustomEvent('camera-permission.granted'));\n } catch (error) {\n this.dispatchEvent(\n new CustomEvent('camera-permission.denied', { detail: error }),\n );\n errorMessage.textContent = SmartCamera.handleCameraError(error);\n }\n permissionButton.removeAttribute('disabled');\n });\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n}\n\nif (window.customElements && !window.customElements.get('camera-permission')) {\n window.customElements.define('camera-permission', CameraPermission);\n}\n\nexport default CameraPermission;\n","import styles from '../../../styles/src/styles';\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\n\nimport '../../document/src';\nimport '../../selfie/src';\nimport '../../camera-permission/CameraPermission';\nimport packageJson from '../../../../package.json';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\nfunction scwTemplateString() {\n return `\n <style>\n :host {\n display: block;\n height: 100%;\n }\n </style>\n ${styles(this.themeColor)}\n <div style=\"height: 100%;\">\n <camera-permission ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.hideInstructions ? '' : 'hidden'} ${this.hideAttribution}></camera-permission>\n <selfie-capture-screens ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.disableImageTests} ${this.hideAttribution} ${this.hideInstructions} hidden\n ${this.hideBackToHost} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.allowLegacySelfieFallback}\n ></selfie-capture-screens>\n <document-capture-screens ${this.applyComponentThemeColor} document-type=${this.documentType} ${this.title} ${this.documentCaptureModes} ${this.showNavigation} ${this.hideAttribution}\n ${this.hideBackOfId} ${this.newInstructions} ${this.applyComponentThemeColor} hidden></document-capture-screens>\n </div>\n`;\n}\nclass SmartCameraWeb extends HTMLElement {\n constructor() {\n super();\n this.scwTemplateString = scwTemplateString.bind(this);\n this.render = () => this.scwTemplateString();\n this.attachShadow({ mode: 'open' });\n this.activeScreen = null;\n }\n\n connectedCallback() {\n this.shadowRoot.innerHTML = this.render();\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n\n if (\n 'mediaDevices' in navigator &&\n 'getUserMedia' in navigator.mediaDevices\n ) {\n this.setUpEventListeners();\n } else {\n this.shadowRoot.innerHTML =\n '<h1 class=\"error-message\">Your browser does not support this integration</h1>';\n }\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n if (this.activeScreen) {\n this.activeScreen.removeAttribute('hidden');\n }\n this.activeScreen = null;\n this.shadowRoot.innerHTML = '';\n }\n\n static get observedAttributes() {\n return [\n 'allow-agent-mode',\n 'allow-legacy-selfie-fallback',\n 'disable-image-tests',\n 'document-capture-modes',\n 'document-type',\n 'hide-attribution',\n 'hide-back-of-id',\n 'hide-back-to-host',\n 'show-navigation',\n 'theme-color',\n 'new-instructions',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'allow-agent-mode':\n case 'allow-legacy-selfie-fallback':\n case 'disable-image-tests':\n case 'document-capture-modes':\n case 'document-type':\n case 'hide-attribution':\n case 'hide-back-of-id':\n case 'hide-back-to-host':\n case 'show-navigation':\n case 'theme-color':\n case 'new-instructions':\n this.disconnectedCallback();\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n break;\n default:\n break;\n }\n }\n\n setUpEventListeners() {\n this.cameraPermission = this.shadowRoot.querySelector('camera-permission');\n this.SelfieCaptureScreens = this.shadowRoot.querySelector(\n 'selfie-capture-screens',\n );\n this.documentCapture = this.shadowRoot.querySelector(\n 'document-capture-screens',\n );\n\n if (this.hideInstructions) {\n this.setActiveScreen(this.cameraPermission);\n } else {\n this.setActiveScreen(this.SelfieCaptureScreens);\n }\n this.cameraPermission.addEventListener('camera-permission.granted', () => {\n this.setActiveScreen(this.SelfieCaptureScreens);\n this.SelfieCaptureScreens.removeAttribute('data-camera-error');\n this.SelfieCaptureScreens.setAttribute('data-camera-ready', true);\n });\n\n this.SelfieCaptureScreens.addEventListener(\n 'selfie-capture-screens.publish',\n (event) => {\n this._data.images = event.detail.images;\n if (!this.captureId) {\n this._publishSelectedImages();\n } else {\n this.setActiveScreen(this.documentCapture);\n }\n },\n );\n\n this.SelfieCaptureScreens.addEventListener(\n 'selfie-capture-screens.cancelled',\n () => {\n if (this.hideInstructions) {\n this.setActiveScreen(this.cameraPermission);\n } else {\n this.handleBackEvents();\n }\n },\n );\n this.SelfieCaptureScreens.addEventListener(\n 'selfie-capture-screens.back',\n () => {\n if (!this.hideInstructions) {\n this.setActiveScreen(this.cameraPermission);\n }\n },\n );\n\n this.documentCapture.addEventListener(\n 'document-capture-screens.publish',\n (event) => {\n this._data.images = [...this._data.images, ...event.detail.images];\n this._publishSelectedImages();\n },\n );\n\n this.documentCapture.addEventListener(\n 'document-capture-screens.cancelled',\n () => {\n this.setActiveScreen(this.SelfieCaptureScreens);\n // Land on a clean selfie capture screen by driving the navigation\n // explicitly. Previously this set `initial-screen=\"selfie-capture\"`,\n // whose side effect was a full SelfieCaptureScreens rebuild — re-fired\n // on every back-navigation (setAttribute invokes attributeChangedCallback\n // even when the value is unchanged).\n this.SelfieCaptureScreens.restartSelfieCapture();\n this.SelfieCaptureScreens.removeAttribute('data-camera-error');\n this.SelfieCaptureScreens.setAttribute('data-camera-ready', true);\n },\n );\n\n [\n this.cameraPermission,\n this.SelfieCaptureScreens,\n this.documentCapture,\n ].forEach((screen) => {\n screen.addEventListener(`${screen.nodeName.toLowerCase()}.close`, () =>\n this.handleCloseEvent(),\n );\n });\n this.documentCapture.addEventListener(\n 'document-capture-screens.back',\n () => {\n this.setActiveScreen(this.SelfieCaptureScreens);\n this.reset();\n },\n );\n }\n\n reset() {\n this.disconnectedCallback();\n this.connectedCallback();\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('smart-camera-web.cancelled'));\n }\n\n _publishSelectedImages() {\n this.dispatchEvent(\n new CustomEvent('smart-camera-web.publish', { detail: this._data }),\n );\n }\n\n get captureId() {\n return this.hasAttribute('capture-id');\n }\n\n get documentType() {\n return this.getAttribute('document-type');\n }\n\n get isPortraitCaptureView() {\n return this.getAttribute('document-type') === 'GREEN_BOOK';\n }\n\n get hideInstructions() {\n return this.hasAttribute('hide-instructions') ? 'hide-instructions' : '';\n }\n\n get hideBackOfId() {\n return this.hasAttribute('hide-back-of-id') ? 'hide-back-of-id' : '';\n }\n\n get newInstructions() {\n return this.hasAttribute('new-instructions') ? 'new-instructions' : '';\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation') ? 'show-navigation' : '';\n }\n\n get hideBackToHost() {\n return this.hasAttribute('hide-back-to-host') ||\n this.hasAttribute('hide-back')\n ? 'hide-back'\n : '';\n }\n\n get allowAgentMode() {\n return this.hasAttribute('allow-agent-mode')\n ? `allow-agent-mode=${this.getAttribute('allow-agent-mode')}`\n : '';\n }\n\n get allowAgentModeTests() {\n return this.hasAttribute('show-agent-mode-for-tests')\n ? 'show-agent-mode-for-tests'\n : '';\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 disableImageTests() {\n return this.hasAttribute('disable-image-tests')\n ? 'disable-image-tests'\n : '';\n }\n\n get allowLegacySelfieFallback() {\n return this.hasAttribute('allow-legacy-selfie-fallback')\n ? `allow-legacy-selfie-fallback='${this.getAttribute('allow-legacy-selfie-fallback')}'`\n : '';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution') ? 'hide-attribution' : '';\n }\n\n get hasThemeColor() {\n return (\n this.hasAttribute('theme-color') &&\n ![null, undefined, 'null', 'undefined'].includes(\n this.getAttribute('theme-color'),\n )\n );\n }\n\n get themeColor() {\n return this.hasThemeColor ? this.getAttribute('theme-color') : '#001096';\n }\n\n get applyComponentThemeColor() {\n return this.hasThemeColor ? `theme-color='${this.themeColor}'` : '';\n }\n\n setActiveScreen(screen) {\n this.activeScreen?.setAttribute('hidden', '');\n screen.removeAttribute('hidden');\n this.activeScreen = screen;\n }\n\n handleCloseEvent() {\n this.dispatchEvent(new CustomEvent('smart-camera-web.close'));\n }\n}\n\nif ('customElements' in window && !customElements.get('smart-camera-web')) {\n customElements.define('smart-camera-web', SmartCameraWeb);\n}\n\nexport default SmartCameraWeb;\n"],"names":["templateString","styles","t","CameraPermission","errorMessage","permissionButton","SmartCamera","error","getDirection","COMPONENTS_VERSION","packageJson","scwTemplateString","SmartCameraWeb","name","event","screen"],"mappings":"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"}
1
+ {"version":3,"file":"smart-camera-web.js","sources":["../../lib/components/camera-permission/CameraPermission.js","../../lib/components/smart-camera-web/src/SmartCameraWeb.js"],"sourcesContent":["import SmartCamera from '../../domain/camera/src/SmartCamera';\nimport styles from '../../styles/src/styles';\nimport '../attribution/PoweredBySmileId';\nimport '../navigation/src';\nimport { t, getDirection } from '../../domain/localisation';\n\nfunction templateString() {\n return `\n ${styles(this.themeColor)}\n <style>\n .camera-permission-screen {\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n }\n .camera-permission {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n align-items: center;\n margin-top: auto;\n margin-bottom: auto;\n }\n .camera-permission svg {\n flex-shrink: 0;\n margin-inline-end: 2rem;\n }\n .camera-permission p {\n margin-block: 0;\n text-align: center;\n }\n </style>\n <div class='camera-permission-screen flow center' dir='${this.direction}'>\n ${this.showNavigation ? `<smileid-navigation theme-color='${this.themeColor}' ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>` : ''}\n <div class='flow center'>\n <p class='color-red | center' id='error'>\n </p>\n </div>\n <div class='section | flow camera-permission-wrapper'>\n <div class='center camera-permission'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"43\" height=\"33\" viewBox=\"0 0 43 33\" fill=\"none\">\n <g clip-path=\"url(#clip0_658_1399)\">\n <path d=\"M6.36288 7.14178H36.6374C38.1923 7.14178 39.6835 7.7593 40.783 8.85849C41.8824 9.95768 42.5001 11.4485 42.5001 13.003V29.8478C42.5001 30.6838 42.1679 31.4856 41.5766 32.0767C40.9853 32.6679 40.1833 33 39.347 33H6.36288C4.80798 33 3.31676 32.3825 2.21728 31.2833C1.1178 30.1841 0.500122 28.6933 0.500122 27.1388L0.500122 13.003C0.500122 11.4485 1.1178 9.95768 2.21728 8.85849C3.31676 7.7593 4.80798 7.14178 6.36288 7.14178Z\" fill=\"#B2B2B2\"/>\n <path d=\"M10.454 23.1789C10.7438 21.9337 9.96906 20.6893 8.7235 20.3995C7.47794 20.1098 6.23325 20.8843 5.9434 22.1296C5.65355 23.3748 6.4283 24.6191 7.67386 24.9089C8.91942 25.1987 10.1641 24.4241 10.454 23.1789Z\" fill=\"#DBDBC4\"/>\n <path d=\"M10.0768 22.9365C10.2425 21.9024 9.53826 20.9298 8.50389 20.7642C7.46952 20.5985 6.49668 21.3025 6.331 22.3366C6.16532 23.3707 6.86954 24.3433 7.90391 24.509C8.93828 24.6746 9.91112 23.9706 10.0768 22.9365Z\" fill=\"#FF5805\"/>\n <path d=\"M10.9694 16.2784H5.20514C4.83782 16.2784 4.54004 16.576 4.54004 16.9433V18.5194C4.54004 18.8866 4.83782 19.1843 5.20514 19.1843H10.9694C11.3367 19.1843 11.6345 18.8866 11.6345 18.5194V16.9433C11.6345 16.576 11.3367 16.2784 10.9694 16.2784Z\" fill=\"#2D2B2A\"/>\n <path d=\"M37.9183 22.6813C37.9183 19.8492 37.9183 17.0418 37.9429 14.2097C37.9429 11.8948 37.9183 9.57985 37.9676 7.28955C37.5348 7.16853 37.0868 7.11047 36.6374 7.11716H36.0708C36.0954 9.87537 36.1201 12.6089 36.1201 15.3672C36.1201 20.9082 36.1201 26.4739 36.1447 32.0149V32.9754H37.8937C37.8937 29.5522 37.8937 26.1291 37.9183 22.6813Z\" fill=\"#DBDBC4\"/>\n <path d=\"M0.500136 12.9291C0.496683 12.9634 0.500492 12.9981 0.511315 13.0309C0.522139 13.0637 0.539736 13.0938 0.562964 13.1194C0.586192 13.1449 0.614532 13.1653 0.646146 13.1792C0.67776 13.1931 0.71194 13.2002 0.746471 13.2H10.4767C12.8169 13.2 12.1271 11.2545 15.1324 11.2545H41.9582C41.9989 11.2523 42.0385 11.2411 42.0742 11.2215C42.1099 11.2019 42.1408 11.1745 42.1644 11.1414C42.1881 11.1083 42.204 11.0702 42.2109 11.0301C42.2179 10.99 42.2157 10.9488 42.2045 10.9097C41.8333 9.80556 41.125 8.84568 40.1793 8.16529C39.2335 7.48491 38.0981 7.11831 36.933 7.11716H6.31363C5.55019 7.11716 4.79423 7.26749 4.0889 7.55957C3.38358 7.85164 2.7427 8.27975 2.20287 8.81944C1.66304 9.35913 1.23482 9.99983 0.942663 10.705C0.650508 11.4101 0.500136 12.1659 0.500136 12.9291Z\" fill=\"#5E646E\"/>\n <path d=\"M29.7154 1.3791H23.4585C21.4632 1.3791 19.7388 2.48731 19.394 4.01418L18.113 9.45671L18.1623 9.50597H35.0116C35.0362 9.50597 35.0608 9.48134 35.0362 9.45671L33.7799 4.01418C33.4104 2.48731 31.7107 1.3791 29.7154 1.3791Z\" fill=\"#5E646E\"/>\n <path d=\"M30.8977 4.06343V3.71865C30.8977 3.32677 30.742 2.95093 30.4649 2.67382C30.1877 2.39672 29.8117 2.24104 29.4197 2.24104H23.6555C23.2678 2.2475 22.8982 2.40603 22.6263 2.68244C22.3544 2.95885 22.2021 3.331 22.2021 3.71865V4.06343H30.8977Z\" fill=\"#2D2B2A\"/>\n <path d=\"M14.0731 4.72836H6.70771C6.4084 4.72836 6.16577 4.97093 6.16577 5.27015V6.63695C6.16577 6.93617 6.4084 7.17874 6.70771 7.17874H14.0731C14.3724 7.17874 14.615 6.93617 14.615 6.63695V5.27015C14.615 4.97093 14.3724 4.72836 14.0731 4.72836Z\" fill=\"#2D2B2A\"/>\n <path d=\"M8.99862 8.76717H7.12648C6.73194 8.76717 6.41211 9.08692 6.41211 9.48135V11.0181C6.41211 11.4125 6.73194 11.7322 7.12648 11.7322H8.99862C9.39315 11.7322 9.71299 11.4125 9.71299 11.0181V9.48135C9.71299 9.08692 9.39315 8.76717 8.99862 8.76717Z\" fill=\"#FCFCFC\"/>\n <path d=\"M8.77703 10.2448C8.77709 10.1521 8.75846 10.0604 8.72227 9.97507C8.68608 9.88977 8.63306 9.81263 8.56638 9.74827C8.4997 9.6839 8.42073 9.63363 8.33418 9.60047C8.24763 9.5673 8.15529 9.55191 8.06266 9.55522C7.97208 9.55522 7.88239 9.57305 7.79871 9.60771C7.71503 9.64236 7.63899 9.69315 7.57494 9.75718C7.5109 9.82121 7.46009 9.89723 7.42543 9.98089C7.39076 10.0646 7.37292 10.1542 7.37292 10.2448C7.37281 10.43 7.44469 10.608 7.57338 10.7413C7.70206 10.8745 7.8775 10.9526 8.06266 10.9589C8.25212 10.9589 8.43382 10.8837 8.56779 10.7498C8.70176 10.6158 8.77703 10.4342 8.77703 10.2448Z\" fill=\"#5E646E\"/>\n <path d=\"M26.9318 30.0202C33.7069 30.0202 39.1992 24.5293 39.1992 17.756C39.1992 10.9827 33.7069 5.49179 26.9318 5.49179C20.1566 5.49179 14.6643 10.9827 14.6643 17.756C14.6643 24.5293 20.1566 30.0202 26.9318 30.0202Z\" fill=\"#FCFCFC\"/>\n <path d=\"M26.9319 28.3455C32.7819 28.3455 37.5242 23.6044 37.5242 17.756C37.5242 11.9075 32.7819 7.16641 26.9319 7.16641C21.0818 7.16641 16.3395 11.9075 16.3395 17.756C16.3395 23.6044 21.0818 28.3455 26.9319 28.3455Z\" fill=\"#0A462F\"/>\n <path d=\"M26.9318 24.0358C30.401 24.0358 33.2133 21.2242 33.2133 17.756C33.2133 14.2877 30.401 11.4761 26.9318 11.4761C23.4626 11.4761 20.6503 14.2877 20.6503 17.756C20.6503 21.2242 23.4626 24.0358 26.9318 24.0358Z\" fill=\"#2D2B2A\"/>\n <path opacity=\"0.49\" d=\"M28.4098 19.1104C30.1376 19.1104 31.5383 17.7102 31.5383 15.9828C31.5383 14.2555 30.1376 12.8552 28.4098 12.8552C26.682 12.8552 25.2814 14.2555 25.2814 15.9828C25.2814 17.7102 26.682 19.1104 28.4098 19.1104Z\" fill=\"url(#paint0_linear_658_1399)\"/>\n <g style=\"mix-blend-mode:screen\" opacity=\"0.24\">\n <path d=\"M30.9717 14.6776C30.9717 14.9977 30.8445 15.3046 30.6182 15.5309C30.3918 15.7572 30.0848 15.8843 29.7647 15.8843C29.4445 15.8843 29.1375 15.7572 28.9112 15.5309C28.6848 15.3046 28.5576 14.9977 28.5576 14.6776C28.5576 14.5203 28.589 14.3645 28.6499 14.2195C28.7109 14.0744 28.8002 13.943 28.9126 13.8329C29.025 13.7228 29.1583 13.6363 29.3046 13.5783C29.4509 13.5204 29.6073 13.4922 29.7647 13.4955C29.922 13.4922 30.0784 13.5204 30.2247 13.5783C30.371 13.6363 30.5043 13.7228 30.6167 13.8329C30.7291 13.943 30.8184 14.0744 30.8794 14.2195C30.9403 14.3645 30.9717 14.5203 30.9717 14.6776Z\" fill=\"#00FFFF\"/>\n </g>\n </g>\n <defs>\n <linearGradient id=\"paint0_linear_658_1399\" x1=\"25.2617\" y1=\"15.9804\" x2=\"31.5383\" y2=\"15.9804\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#7F47DD\" stop-opacity=\"0.1\"/>\n <stop offset=\"0.99\" stop-color=\"#00FFFF\"/>\n </linearGradient>\n <clipPath id=\"clip0_658_1399\">\n <rect width=\"42\" height=\"33\" fill=\"white\" transform=\"translate(0.500122)\"/>\n </clipPath>\n </defs>\n </svg>\n <p class='text-2xl font-bold'>${t('camera.permission.description')}</p>\n <div class='flow action-buttons'>\n <button data-variant='solid full-width' class='button' type='button' id='request-camera-access'>\n ${t('camera.permission.requestButton')}\n </button>\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\n </div>\n </div>\n </div>\n </div>\n `;\n}\n\nclass CameraPermission extends HTMLElement {\n connectedCallback() {\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n }\n\n setUpEventListeners() {\n const errorMessage = this.shadowRoot.querySelector('#error');\n const permissionButton = this.shadowRoot.getElementById(\n 'request-camera-access',\n );\n errorMessage.textContent = '';\n permissionButton.addEventListener('click', async () => {\n permissionButton.setAttribute('disabled', true);\n try {\n await SmartCamera.getMedia({\n audio: false,\n video: true,\n });\n this.dispatchEvent(new CustomEvent('camera-permission.granted'));\n } catch (error) {\n this.dispatchEvent(\n new CustomEvent('camera-permission.denied', { detail: error }),\n );\n errorMessage.textContent = SmartCamera.handleCameraError(error);\n }\n permissionButton.removeAttribute('disabled');\n });\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n}\n\nif (window.customElements && !window.customElements.get('camera-permission')) {\n window.customElements.define('camera-permission', CameraPermission);\n}\n\nexport default CameraPermission;\n","import styles from '../../../styles/src/styles';\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\n\nimport '../../document/src';\nimport '../../selfie/src';\nimport '../../camera-permission/CameraPermission';\nimport packageJson from '../../../../package.json';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\n// Minimal HTML-attribute escaper for values interpolated into the innerHTML\n// template below. Order matters: encode `&` first so we don't double-encode\n// the `&` we introduce when escaping `\"`. Used because partner-supplied\n// attributes (partner-name, partner-logo, policy-url, theme-color, ...) flow\n// straight into the template string and an unescaped quote would otherwise\n// allow attribute injection / XSS.\nconst escAttr = (s) => String(s).replace(/&/g, '&amp;').replace(/\"/g, '&quot;');\n\nfunction scwTemplateString() {\n return `\n <style>\n :host {\n display: block;\n height: 100%;\n }\n </style>\n ${styles(this.themeColor)}\n <div style=\"height: 100%;\">\n <camera-permission ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.hideInstructions ? '' : 'hidden'} ${this.hideAttribution}></camera-permission>\n <selfie-capture-screens ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.disableImageTests} ${this.hideAttribution} ${this.hideInstructions} ${this.hideConsent} ${this.partnerName} ${this.partnerLogo} ${this.policyUrl} hidden\n ${this.hideBackToHost} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.allowLegacySelfieFallback} ${this.useStrictMode} ${this.showBackOnGuidelines}\n ></selfie-capture-screens>\n <document-capture-screens ${this.autoCaptureFeature} ${this.autoCapture} ${this.autoCaptureTimeout} ${this.applyComponentThemeColor} document-type=\"${escAttr(this.documentType)}\" ${this.title} ${this.documentCaptureModes} ${this.showNavigation} ${this.hideAttribution}\n ${this.hideBackOfId} ${this.newInstructions} ${this.applyComponentThemeColor} hidden></document-capture-screens>\n </div>\n`;\n}\nclass SmartCameraWeb extends HTMLElement {\n constructor() {\n super();\n this.scwTemplateString = scwTemplateString.bind(this);\n this.render = () => this.scwTemplateString();\n this.attachShadow({ mode: 'open' });\n this.activeScreen = null;\n }\n\n connectedCallback() {\n this.shadowRoot.innerHTML = this.render();\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n\n if (\n 'mediaDevices' in navigator &&\n 'getUserMedia' in navigator.mediaDevices\n ) {\n this.setUpEventListeners();\n } else {\n this.shadowRoot.innerHTML =\n '<h1 class=\"error-message\">Your browser does not support this integration</h1>';\n }\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n if (this.activeScreen) {\n this.activeScreen.removeAttribute('hidden');\n }\n this.activeScreen = null;\n this.shadowRoot.innerHTML = '';\n }\n\n static get observedAttributes() {\n return [\n 'allow-agent-mode',\n 'allow-legacy-selfie-fallback',\n 'auto-capture-enabled',\n 'auto-capture',\n 'auto-capture-timeout',\n 'disable-image-tests',\n 'document-capture-modes',\n 'document-type',\n 'hide-attribution',\n 'hide-back-of-id',\n 'hide-back-to-host',\n 'hide-consent',\n 'partner-name',\n 'partner-logo',\n 'policy-url',\n 'show-navigation',\n 'show-back-on-guidelines',\n 'theme-color',\n 'new-instructions',\n 'use-strict-mode',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'allow-agent-mode':\n case 'allow-legacy-selfie-fallback':\n case 'auto-capture-enabled':\n case 'auto-capture':\n case 'auto-capture-timeout':\n case 'disable-image-tests':\n case 'document-capture-modes':\n case 'document-type':\n case 'hide-attribution':\n case 'hide-back-of-id':\n case 'hide-back-to-host':\n case 'hide-consent':\n case 'partner-name':\n case 'partner-logo':\n case 'policy-url':\n case 'show-navigation':\n case 'show-back-on-guidelines':\n case 'theme-color':\n case 'new-instructions':\n case 'use-strict-mode':\n this.disconnectedCallback();\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n break;\n default:\n break;\n }\n }\n\n setUpEventListeners() {\n this.cameraPermission = this.shadowRoot.querySelector('camera-permission');\n this.SelfieCaptureScreens = this.shadowRoot.querySelector(\n 'selfie-capture-screens',\n );\n this.documentCapture = this.shadowRoot.querySelector(\n 'document-capture-screens',\n );\n\n if (this.hideInstructions) {\n this.setActiveScreen(this.cameraPermission);\n } else {\n this.setActiveScreen(this.SelfieCaptureScreens);\n }\n this.cameraPermission.addEventListener('camera-permission.granted', () => {\n this.setActiveScreen(this.SelfieCaptureScreens);\n this.SelfieCaptureScreens.removeAttribute('data-camera-error');\n this.SelfieCaptureScreens.setAttribute('data-camera-ready', true);\n });\n\n this.SelfieCaptureScreens.addEventListener(\n 'selfie-capture-screens.publish',\n (event) => {\n this._data.images = event.detail.images;\n if (!this.captureId) {\n this._publishSelectedImages();\n } else {\n this.setActiveScreen(this.documentCapture);\n }\n },\n );\n\n this.SelfieCaptureScreens.addEventListener(\n 'selfie-capture-screens.cancelled',\n () => {\n if (this.hideInstructions) {\n this.setActiveScreen(this.cameraPermission);\n } else {\n this.handleBackEvents();\n }\n },\n );\n this.SelfieCaptureScreens.addEventListener(\n 'selfie-capture-screens.back',\n () => {\n if (!this.hideInstructions) {\n this.setActiveScreen(this.cameraPermission);\n }\n },\n );\n\n this.documentCapture.addEventListener(\n 'document-capture-screens.publish',\n (event) => {\n this._data.images = [...this._data.images, ...event.detail.images];\n this._publishSelectedImages();\n },\n );\n\n this.documentCapture.addEventListener(\n 'document-capture-screens.cancelled',\n () => {\n this.setActiveScreen(this.SelfieCaptureScreens);\n // Land on a clean selfie capture screen by driving the navigation\n // explicitly. Previously this set `initial-screen=\"selfie-capture\"`,\n // whose side effect was a full SelfieCaptureScreens rebuild — re-fired\n // on every back-navigation (setAttribute invokes attributeChangedCallback\n // even when the value is unchanged).\n this.SelfieCaptureScreens.restartSelfieCapture();\n this.SelfieCaptureScreens.removeAttribute('data-camera-error');\n this.SelfieCaptureScreens.setAttribute('data-camera-ready', true);\n },\n );\n\n [\n this.cameraPermission,\n this.SelfieCaptureScreens,\n this.documentCapture,\n ].forEach((screen) => {\n screen.addEventListener(`${screen.nodeName.toLowerCase()}.close`, () =>\n this.handleCloseEvent(),\n );\n });\n this.documentCapture.addEventListener(\n 'document-capture-screens.back',\n () => {\n this.setActiveScreen(this.SelfieCaptureScreens);\n this.reset();\n },\n );\n }\n\n reset() {\n this.disconnectedCallback();\n this.connectedCallback();\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('smart-camera-web.cancelled'));\n }\n\n _publishSelectedImages() {\n this.dispatchEvent(\n new CustomEvent('smart-camera-web.publish', { detail: this._data }),\n );\n }\n\n get captureId() {\n return this.hasAttribute('capture-id');\n }\n\n get documentType() {\n return this.getAttribute('document-type');\n }\n\n get isPortraitCaptureView() {\n return this.getAttribute('document-type') === 'GREEN_BOOK';\n }\n\n get hideInstructions() {\n return this.hasAttribute('hide-instructions') ? 'hide-instructions' : '';\n }\n\n get hideBackOfId() {\n return this.hasAttribute('hide-back-of-id') ? 'hide-back-of-id' : '';\n }\n\n get newInstructions() {\n return this.hasAttribute('new-instructions') ? 'new-instructions' : '';\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation') ? 'show-navigation' : '';\n }\n\n get showBackOnGuidelines() {\n return this.hasAttribute('show-back-on-guidelines')\n ? 'show-back-on-guidelines'\n : '';\n }\n\n get hideBackToHost() {\n return this.hasAttribute('hide-back-to-host') ||\n this.hasAttribute('hide-back')\n ? 'hide-back'\n : '';\n }\n\n get allowAgentMode() {\n return this.hasAttribute('allow-agent-mode')\n ? `allow-agent-mode=\"${escAttr(this.getAttribute('allow-agent-mode'))}\"`\n : '';\n }\n\n get allowAgentModeTests() {\n return this.hasAttribute('show-agent-mode-for-tests')\n ? 'show-agent-mode-for-tests'\n : '';\n }\n\n get title() {\n return this.hasAttribute('title')\n ? `title=\"${escAttr(this.getAttribute('title'))}\"`\n : '';\n }\n\n get documentCaptureModes() {\n return this.hasAttribute('document-capture-modes')\n ? `document-capture-modes=\"${escAttr(this.getAttribute('document-capture-modes'))}\"`\n : '';\n }\n\n get autoCaptureFeature() {\n return this.hasAttribute('auto-capture-enabled')\n ? 'auto-capture-enabled'\n : '';\n }\n\n get autoCapture() {\n return this.hasAttribute('auto-capture')\n ? `auto-capture=\"${escAttr(this.getAttribute('auto-capture'))}\"`\n : '';\n }\n\n get autoCaptureTimeout() {\n return this.hasAttribute('auto-capture-timeout')\n ? `auto-capture-timeout=\"${escAttr(this.getAttribute('auto-capture-timeout'))}\"`\n : '';\n }\n\n get disableImageTests() {\n return this.hasAttribute('disable-image-tests')\n ? 'disable-image-tests'\n : '';\n }\n\n get allowLegacySelfieFallback() {\n return this.hasAttribute('allow-legacy-selfie-fallback')\n ? `allow-legacy-selfie-fallback=\"${escAttr(this.getAttribute('allow-legacy-selfie-fallback'))}\"`\n : '';\n }\n\n get useStrictMode() {\n return this.hasAttribute('use-strict-mode') &&\n this.getAttribute('use-strict-mode') !== 'false'\n ? 'use-strict-mode=\"true\"'\n : '';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution') ? 'hide-attribution' : '';\n }\n\n get hideConsent() {\n return this.hasAttribute('hide-consent') ? 'hide-consent' : '';\n }\n\n get partnerName() {\n return this.hasAttribute('partner-name')\n ? `partner-name=\"${escAttr(this.getAttribute('partner-name'))}\"`\n : '';\n }\n\n get partnerLogo() {\n return this.hasAttribute('partner-logo')\n ? `partner-logo=\"${escAttr(this.getAttribute('partner-logo'))}\"`\n : '';\n }\n\n get policyUrl() {\n return this.hasAttribute('policy-url')\n ? `policy-url=\"${escAttr(this.getAttribute('policy-url'))}\"`\n : '';\n }\n\n get hasThemeColor() {\n return (\n this.hasAttribute('theme-color') &&\n ![null, undefined, 'null', 'undefined'].includes(\n this.getAttribute('theme-color'),\n )\n );\n }\n\n get themeColor() {\n return this.hasThemeColor ? this.getAttribute('theme-color') : '#001096';\n }\n\n get applyComponentThemeColor() {\n return this.hasThemeColor\n ? `theme-color=\"${escAttr(this.themeColor)}\"`\n : '';\n }\n\n setActiveScreen(screen) {\n this.activeScreen?.setAttribute('hidden', '');\n screen.removeAttribute('hidden');\n this.activeScreen = screen;\n }\n\n handleCloseEvent() {\n this.dispatchEvent(new CustomEvent('smart-camera-web.close'));\n }\n}\n\nif ('customElements' in window && !customElements.get('smart-camera-web')) {\n customElements.define('smart-camera-web', SmartCameraWeb);\n}\n\nexport default SmartCameraWeb;\n"],"names":["templateString","styles","t","CameraPermission","errorMessage","permissionButton","SmartCamera","error","getDirection","COMPONENTS_VERSION","packageJson","escAttr","s","scwTemplateString","SmartCameraWeb","name","event","screen"],"mappings":";;;;;;AAMA,SAASA,IAAiB;AACxB,SAAO;AAAA,MACHC,EAAO,KAAK,UAAU,CAAC;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,6DAyBgC,KAAK,SAAS;AAAA,UACjE,KAAK,iBAAiB,oCAAoC,KAAK,UAAU,KAAK,KAAK,WAAW,cAAc,EAAE,2BAA2B,EAAE;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,4CAsCzGC,EAAE,+BAA+B,CAAC;AAAA;AAAA;AAAA,oBAG1DA,EAAE,iCAAiC,CAAC;AAAA;AAAA,kBAEtC,KAAK,kBAAkB,KAAK,6CAA6C;AAAA;AAAA;AAAA;AAAA;AAAA;AAM3F;AAEA,MAAMC,UAAyB,YAAY;AAAA,EACzC,oBAAoB;AAClB,SAAK,iBAAiBH,EAAe,KAAK,IAAI,GAC9C,KAAK,SAAS,MAAM,KAAK,eAAc,GACvC,KAAK,aAAa,EAAE,MAAM,OAAM,CAAE,GAClC,KAAK,WAAW,YAAY,KAAK,OAAM,GACvC,KAAK,oBAAmB;AAAA,EAC1B;AAAA,EAEA,sBAAsB;AACpB,UAAMI,IAAe,KAAK,WAAW,cAAc,QAAQ,GACrDC,IAAmB,KAAK,WAAW;AAAA,MACvC;AAAA,IACN;AACI,IAAAD,EAAa,cAAc,IAC3BC,EAAiB,iBAAiB,SAAS,YAAY;AACrD,MAAAA,EAAiB,aAAa,YAAY,EAAI;AAC9C,UAAI;AACF,cAAMC,EAAY,SAAS;AAAA,UACzB,OAAO;AAAA,UACP,OAAO;AAAA,QACjB,CAAS,GACD,KAAK,cAAc,IAAI,YAAY,2BAA2B,CAAC;AAAA,MACjE,SAASC,GAAO;AACd,aAAK;AAAA,UACH,IAAI,YAAY,4BAA4B,EAAE,QAAQA,EAAK,CAAE;AAAA,QACvE,GACQH,EAAa,cAAcE,EAAY,kBAAkBC,CAAK;AAAA,MAChE;AACA,MAAAF,EAAiB,gBAAgB,UAAU;AAAA,IAC7C,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,aAAa,iBAAiB;AAAA,EAC5C;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,KAAK,aAAa,kBAAkB;AAAA,EAC7C;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,aAAa,WAAW;AAAA,EACtC;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK,aAAa,aAAa,KAAK;AAAA,EAC7C;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,aAAa,KAAK,KAAKG,EAAY,KAAM;AAAA,EACvD;AACF;AAEI,OAAO,kBAAkB,CAAC,OAAO,eAAe,IAAI,mBAAmB,KACzE,OAAO,eAAe,OAAO,qBAAqBL,CAAgB;ACpIpE,MAAMM,IAAqBC,EAAY,SAQjCC,IAAU,CAACC,MAAM,OAAOA,CAAC,EAAE,QAAQ,MAAM,OAAO,EAAE,QAAQ,MAAM,QAAQ;AAE9E,SAASC,IAAoB;AAC3B,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOLZ,EAAO,KAAK,UAAU,CAAC;AAAA;AAAA,yBAEF,KAAK,wBAAwB,IAAI,KAAK,KAAK,IAAI,KAAK,cAAc,IAAI,KAAK,mBAAmB,KAAK,QAAQ,IAAI,KAAK,eAAe;AAAA,8BAC9H,KAAK,wBAAwB,IAAI,KAAK,KAAK,IAAI,KAAK,cAAc,IAAI,KAAK,iBAAiB,IAAI,KAAK,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,WAAW,IAAI,KAAK,WAAW,IAAI,KAAK,WAAW,IAAI,KAAK,SAAS;AAAA,QACjP,KAAK,cAAc,IAAI,KAAK,cAAc,IAAI,KAAK,mBAAmB,IAAI,KAAK,yBAAyB,IAAI,KAAK,aAAa,IAAI,KAAK,oBAAoB;AAAA;AAAA,gCAEnI,KAAK,kBAAkB,IAAI,KAAK,WAAW,IAAI,KAAK,kBAAkB,IAAI,KAAK,wBAAwB,mBAAmBU,EAAQ,KAAK,YAAY,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,oBAAoB,IAAI,KAAK,cAAc,KAAK,KAAK,eAAe;AAAA,OACzQ,KAAK,YAAY,IAAI,KAAK,eAAe,IAAI,KAAK,wBAAwB;AAAA;AAAA;AAGjF;AACA,MAAMG,UAAuB,YAAY;AAAA,EACvC,cAAc;AACZ,UAAA,GACA,KAAK,oBAAoBD,EAAkB,KAAK,IAAI,GACpD,KAAK,SAAS,MAAM,KAAK,kBAAA,GACzB,KAAK,aAAa,EAAE,MAAM,OAAA,CAAQ,GAClC,KAAK,eAAe;AAAA,EACtB;AAAA,EAEA,oBAAoB;AAClB,SAAK,WAAW,YAAY,KAAK,OAAA,GAEjC,KAAK,QAAQ;AAAA,MACX,QAAQ,CAAA;AAAA,MACR,MAAM;AAAA,QACJ,gBAAgBJ;AAAA,MAAA;AAAA,IAClB,GAIA,kBAAkB,aAClB,kBAAkB,UAAU,eAE5B,KAAK,oBAAA,IAEL,KAAK,WAAW,YACd;AAAA,EAEN;AAAA,EAEA,uBAAuB;AACrB,IAAAH,EAAY,UAAA,GACR,KAAK,gBACP,KAAK,aAAa,gBAAgB,QAAQ,GAE5C,KAAK,eAAe,MACpB,KAAK,WAAW,YAAY;AAAA,EAC9B;AAAA,EAEA,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,yBAAyBS,GAAM;AAC7B,YAAQA,GAAA;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,aAAK,qBAAA,GACL,KAAK,WAAW,YAAY,KAAK,OAAA,GACjC,KAAK,oBAAA;AACL;AAAA,IAEA;AAAA,EAEN;AAAA,EAEA,sBAAsB;AACpB,SAAK,mBAAmB,KAAK,WAAW,cAAc,mBAAmB,GACzE,KAAK,uBAAuB,KAAK,WAAW;AAAA,MAC1C;AAAA,IAAA,GAEF,KAAK,kBAAkB,KAAK,WAAW;AAAA,MACrC;AAAA,IAAA,GAGE,KAAK,mBACP,KAAK,gBAAgB,KAAK,gBAAgB,IAE1C,KAAK,gBAAgB,KAAK,oBAAoB,GAEhD,KAAK,iBAAiB,iBAAiB,6BAA6B,MAAM;AACxE,WAAK,gBAAgB,KAAK,oBAAoB,GAC9C,KAAK,qBAAqB,gBAAgB,mBAAmB,GAC7D,KAAK,qBAAqB,aAAa,qBAAqB,EAAI;AAAA,IAClE,CAAC,GAED,KAAK,qBAAqB;AAAA,MACxB;AAAA,MACA,CAACC,MAAU;AACT,aAAK,MAAM,SAASA,EAAM,OAAO,QAC5B,KAAK,YAGR,KAAK,gBAAgB,KAAK,eAAe,IAFzC,KAAK,uBAAA;AAAA,MAIT;AAAA,IAAA,GAGF,KAAK,qBAAqB;AAAA,MACxB;AAAA,MACA,MAAM;AACJ,QAAI,KAAK,mBACP,KAAK,gBAAgB,KAAK,gBAAgB,IAE1C,KAAK,iBAAA;AAAA,MAET;AAAA,IAAA,GAEF,KAAK,qBAAqB;AAAA,MACxB;AAAA,MACA,MAAM;AACJ,QAAK,KAAK,oBACR,KAAK,gBAAgB,KAAK,gBAAgB;AAAA,MAE9C;AAAA,IAAA,GAGF,KAAK,gBAAgB;AAAA,MACnB;AAAA,MACA,CAACA,MAAU;AACT,aAAK,MAAM,SAAS,CAAC,GAAG,KAAK,MAAM,QAAQ,GAAGA,EAAM,OAAO,MAAM,GACjE,KAAK,uBAAA;AAAA,MACP;AAAA,IAAA,GAGF,KAAK,gBAAgB;AAAA,MACnB;AAAA,MACA,MAAM;AACJ,aAAK,gBAAgB,KAAK,oBAAoB,GAM9C,KAAK,qBAAqB,qBAAA,GAC1B,KAAK,qBAAqB,gBAAgB,mBAAmB,GAC7D,KAAK,qBAAqB,aAAa,qBAAqB,EAAI;AAAA,MAClE;AAAA,IAAA,GAGF;AAAA,MACE,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,EACL,QAAQ,CAACC,MAAW;AACpB,MAAAA,EAAO;AAAA,QAAiB,GAAGA,EAAO,SAAS,YAAA,CAAa;AAAA,QAAU,MAChE,KAAK,iBAAA;AAAA,MAAiB;AAAA,IAE1B,CAAC,GACD,KAAK,gBAAgB;AAAA,MACnB;AAAA,MACA,MAAM;AACJ,aAAK,gBAAgB,KAAK,oBAAoB,GAC9C,KAAK,MAAA;AAAA,MACP;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,QAAQ;AACN,SAAK,qBAAA,GACL,KAAK,kBAAA;AAAA,EACP;AAAA,EAEA,mBAAmB;AACjB,SAAK,cAAc,IAAI,YAAY,4BAA4B,CAAC;AAAA,EAClE;AAAA,EAEA,yBAAyB;AACvB,SAAK;AAAA,MACH,IAAI,YAAY,4BAA4B,EAAE,QAAQ,KAAK,OAAO;AAAA,IAAA;AAAA,EAEtE;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,aAAa,YAAY;AAAA,EACvC;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,aAAa,eAAe;AAAA,EAC1C;AAAA,EAEA,IAAI,wBAAwB;AAC1B,WAAO,KAAK,aAAa,eAAe,MAAM;AAAA,EAChD;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,KAAK,aAAa,mBAAmB,IAAI,sBAAsB;AAAA,EACxE;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,aAAa,iBAAiB,IAAI,oBAAoB;AAAA,EACpE;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,KAAK,aAAa,kBAAkB,IAAI,qBAAqB;AAAA,EACtE;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,aAAa,iBAAiB,IAAI,oBAAoB;AAAA,EACpE;AAAA,EAEA,IAAI,uBAAuB;AACzB,WAAO,KAAK,aAAa,yBAAyB,IAC9C,4BACA;AAAA,EACN;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,aAAa,mBAAmB,KAC1C,KAAK,aAAa,WAAW,IAC3B,cACA;AAAA,EACN;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,aAAa,kBAAkB,IACvC,qBAAqBN,EAAQ,KAAK,aAAa,kBAAkB,CAAC,CAAC,MACnE;AAAA,EACN;AAAA,EAEA,IAAI,sBAAsB;AACxB,WAAO,KAAK,aAAa,2BAA2B,IAChD,8BACA;AAAA,EACN;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,aAAa,OAAO,IAC5B,UAAUA,EAAQ,KAAK,aAAa,OAAO,CAAC,CAAC,MAC7C;AAAA,EACN;AAAA,EAEA,IAAI,uBAAuB;AACzB,WAAO,KAAK,aAAa,wBAAwB,IAC7C,2BAA2BA,EAAQ,KAAK,aAAa,wBAAwB,CAAC,CAAC,MAC/E;AAAA,EACN;AAAA,EAEA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa,sBAAsB,IAC3C,yBACA;AAAA,EACN;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,aAAa,cAAc,IACnC,iBAAiBA,EAAQ,KAAK,aAAa,cAAc,CAAC,CAAC,MAC3D;AAAA,EACN;AAAA,EAEA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa,sBAAsB,IAC3C,yBAAyBA,EAAQ,KAAK,aAAa,sBAAsB,CAAC,CAAC,MAC3E;AAAA,EACN;AAAA,EAEA,IAAI,oBAAoB;AACtB,WAAO,KAAK,aAAa,qBAAqB,IAC1C,wBACA;AAAA,EACN;AAAA,EAEA,IAAI,4BAA4B;AAC9B,WAAO,KAAK,aAAa,8BAA8B,IACnD,iCAAiCA,EAAQ,KAAK,aAAa,8BAA8B,CAAC,CAAC,MAC3F;AAAA,EACN;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,KAAK,aAAa,iBAAiB,KACxC,KAAK,aAAa,iBAAiB,MAAM,UACvC,2BACA;AAAA,EACN;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,KAAK,aAAa,kBAAkB,IAAI,qBAAqB;AAAA,EACtE;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,aAAa,cAAc,IAAI,iBAAiB;AAAA,EAC9D;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,aAAa,cAAc,IACnC,iBAAiBA,EAAQ,KAAK,aAAa,cAAc,CAAC,CAAC,MAC3D;AAAA,EACN;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,aAAa,cAAc,IACnC,iBAAiBA,EAAQ,KAAK,aAAa,cAAc,CAAC,CAAC,MAC3D;AAAA,EACN;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,aAAa,YAAY,IACjC,eAAeA,EAAQ,KAAK,aAAa,YAAY,CAAC,CAAC,MACvD;AAAA,EACN;AAAA,EAEA,IAAI,gBAAgB;AAClB,WACE,KAAK,aAAa,aAAa,KAC/B,CAAC,CAAC,MAAM,QAAW,QAAQ,WAAW,EAAE;AAAA,MACtC,KAAK,aAAa,aAAa;AAAA,IAAA;AAAA,EAGrC;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK,gBAAgB,KAAK,aAAa,aAAa,IAAI;AAAA,EACjE;AAAA,EAEA,IAAI,2BAA2B;AAC7B,WAAO,KAAK,gBACR,gBAAgBA,EAAQ,KAAK,UAAU,CAAC,MACxC;AAAA,EACN;AAAA,EAEA,gBAAgBM,GAAQ;AACtB,SAAK,cAAc,aAAa,UAAU,EAAE,GAC5CA,EAAO,gBAAgB,QAAQ,GAC/B,KAAK,eAAeA;AAAA,EACtB;AAAA,EAEA,mBAAmB;AACjB,SAAK,cAAc,IAAI,YAAY,wBAAwB,CAAC;AAAA,EAC9D;AACF;AAEI,oBAAoB,UAAU,CAAC,eAAe,IAAI,kBAAkB,KACtE,eAAe,OAAO,oBAAoBH,CAAc;"}