@jaak.ai/stamps 1.0.0-beta.1

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 (122) hide show
  1. package/README.md +385 -0
  2. package/dist/cjs/document-detector_19.cjs.entry.js +8540 -0
  3. package/dist/cjs/index-5e4e5e7d.js +1685 -0
  4. package/dist/cjs/index.cjs.js +2 -0
  5. package/dist/cjs/loader.cjs.js +22 -0
  6. package/dist/cjs/mb-tooltip.cjs.entry.js +26 -0
  7. package/dist/cjs/stamps.cjs.js +23 -0
  8. package/dist/collection/collection-manifest.json +31 -0
  9. package/dist/collection/components/document-detector/document-detector.css +154 -0
  10. package/dist/collection/components/document-detector/document-detector.js +416 -0
  11. package/dist/collection/components/shared/mb-api-process-status/mb-api-process-status.css +360 -0
  12. package/dist/collection/components/shared/mb-api-process-status/mb-api-process-status.js +124 -0
  13. package/dist/collection/components/shared/mb-button/mb-button.css +95 -0
  14. package/dist/collection/components/shared/mb-button/mb-button.js +201 -0
  15. package/dist/collection/components/shared/mb-button-classic/mb-button-classic.css +100 -0
  16. package/dist/collection/components/shared/mb-button-classic/mb-button-classic.js +130 -0
  17. package/dist/collection/components/shared/mb-camera-experience/mb-camera-experience.css +740 -0
  18. package/dist/collection/components/shared/mb-camera-experience/mb-camera-experience.js +827 -0
  19. package/dist/collection/components/shared/mb-camera-experience/mb-camera-experience.utils.js +55 -0
  20. package/dist/collection/components/shared/mb-camera-selection/mb-camera-selection.css +124 -0
  21. package/dist/collection/components/shared/mb-camera-selection/mb-camera-selection.js +194 -0
  22. package/dist/collection/components/shared/mb-camera-toolbar/mb-camera-toolbar.css +80 -0
  23. package/dist/collection/components/shared/mb-camera-toolbar/mb-camera-toolbar.js +275 -0
  24. package/dist/collection/components/shared/mb-completed/mb-completed.css +17 -0
  25. package/dist/collection/components/shared/mb-completed/mb-completed.js +48 -0
  26. package/dist/collection/components/shared/mb-component/mb-component.css +321 -0
  27. package/dist/collection/components/shared/mb-component/mb-component.js +2269 -0
  28. package/dist/collection/components/shared/mb-component/mb-component.utils.js +14 -0
  29. package/dist/collection/components/shared/mb-container/mb-container.css +7 -0
  30. package/dist/collection/components/shared/mb-container/mb-container.js +23 -0
  31. package/dist/collection/components/shared/mb-feedback/mb-feedback.css +36 -0
  32. package/dist/collection/components/shared/mb-feedback/mb-feedback.js +91 -0
  33. package/dist/collection/components/shared/mb-feedback/mb-feedback.utils.js +11 -0
  34. package/dist/collection/components/shared/mb-help/mb-help.css +191 -0
  35. package/dist/collection/components/shared/mb-help/mb-help.js +409 -0
  36. package/dist/collection/components/shared/mb-help/mb-help.model.js +5 -0
  37. package/dist/collection/components/shared/mb-image-box/mb-image-box.css +78 -0
  38. package/dist/collection/components/shared/mb-image-box/mb-image-box.js +150 -0
  39. package/dist/collection/components/shared/mb-modal/mb-modal.css +106 -0
  40. package/dist/collection/components/shared/mb-modal/mb-modal.js +239 -0
  41. package/dist/collection/components/shared/mb-overlay/mb-overlay.css +46 -0
  42. package/dist/collection/components/shared/mb-overlay/mb-overlay.js +76 -0
  43. package/dist/collection/components/shared/mb-progress-tracker/mb-progress-tracker.css +24 -0
  44. package/dist/collection/components/shared/mb-progress-tracker/mb-progress-tracker.js +80 -0
  45. package/dist/collection/components/shared/mb-screen/mb-screen.css +19 -0
  46. package/dist/collection/components/shared/mb-screen/mb-screen.js +48 -0
  47. package/dist/collection/components/shared/mb-spinner/mb-spinner.css +30 -0
  48. package/dist/collection/components/shared/mb-spinner/mb-spinner.js +67 -0
  49. package/dist/collection/components/shared/mb-tooltip/mb-tooltip.css +62 -0
  50. package/dist/collection/components/shared/mb-tooltip/mb-tooltip.js +150 -0
  51. package/dist/collection/components/shared/mb-tooltip-advanced/mb-tooltip-advanced.css +91 -0
  52. package/dist/collection/components/shared/mb-tooltip-advanced/mb-tooltip-advanced.js +96 -0
  53. package/dist/collection/index.js +1 -0
  54. package/dist/collection/utils/data-structures.js +189 -0
  55. package/dist/collection/utils/device.helpers.js +37 -0
  56. package/dist/collection/utils/error-structures.js +47 -0
  57. package/dist/collection/utils/generic.helpers.js +82 -0
  58. package/dist/collection/utils/sdk.service.js +943 -0
  59. package/dist/collection/utils/state-lifter.js +3 -0
  60. package/dist/collection/utils/status.document-detector.js +15 -0
  61. package/dist/collection/utils/translation.service.js +97 -0
  62. package/dist/esm/document-detector_19.entry.js +8518 -0
  63. package/dist/esm/index-dc740acb.js +1656 -0
  64. package/dist/esm/index.js +1 -0
  65. package/dist/esm/loader.js +18 -0
  66. package/dist/esm/mb-tooltip.entry.js +22 -0
  67. package/dist/esm/polyfills/core-js.js +11 -0
  68. package/dist/esm/polyfills/css-shim.js +1 -0
  69. package/dist/esm/polyfills/dom.js +79 -0
  70. package/dist/esm/polyfills/es5-html-element.js +1 -0
  71. package/dist/esm/polyfills/index.js +34 -0
  72. package/dist/esm/polyfills/system.js +6 -0
  73. package/dist/esm/stamps.js +18 -0
  74. package/dist/index.cjs.js +1 -0
  75. package/dist/index.js +1 -0
  76. package/dist/stamps/index.esm.js +0 -0
  77. package/dist/stamps/p-66d9fb33.entry.js +9 -0
  78. package/dist/stamps/p-7f07a434.js +2 -0
  79. package/dist/stamps/p-ec3f5972.entry.js +1 -0
  80. package/dist/stamps/stamps.esm.js +1 -0
  81. package/dist/types/components/document-detector/document-detector.d.ts +86 -0
  82. package/dist/types/components/shared/mb-api-process-status/mb-api-process-status.d.ts +30 -0
  83. package/dist/types/components/shared/mb-button/mb-button.d.ts +41 -0
  84. package/dist/types/components/shared/mb-button-classic/mb-button-classic.d.ts +27 -0
  85. package/dist/types/components/shared/mb-camera-experience/mb-camera-experience.d.ts +141 -0
  86. package/dist/types/components/shared/mb-camera-experience/mb-camera-experience.utils.d.ts +3 -0
  87. package/dist/types/components/shared/mb-camera-selection/mb-camera-selection.d.ts +33 -0
  88. package/dist/types/components/shared/mb-camera-toolbar/mb-camera-toolbar.d.ts +54 -0
  89. package/dist/types/components/shared/mb-completed/mb-completed.d.ts +12 -0
  90. package/dist/types/components/shared/mb-component/mb-component.d.ts +308 -0
  91. package/dist/types/components/shared/mb-component/mb-component.utils.d.ts +3 -0
  92. package/dist/types/components/shared/mb-container/mb-container.d.ts +8 -0
  93. package/dist/types/components/shared/mb-feedback/mb-feedback.d.ts +19 -0
  94. package/dist/types/components/shared/mb-feedback/mb-feedback.utils.d.ts +2 -0
  95. package/dist/types/components/shared/mb-help/mb-help.d.ts +66 -0
  96. package/dist/types/components/shared/mb-help/mb-help.model.d.ts +9 -0
  97. package/dist/types/components/shared/mb-image-box/mb-image-box.d.ts +35 -0
  98. package/dist/types/components/shared/mb-modal/mb-modal.d.ts +53 -0
  99. package/dist/types/components/shared/mb-overlay/mb-overlay.d.ts +17 -0
  100. package/dist/types/components/shared/mb-progress-tracker/mb-progress-tracker.d.ts +19 -0
  101. package/dist/types/components/shared/mb-screen/mb-screen.d.ts +12 -0
  102. package/dist/types/components/shared/mb-spinner/mb-spinner.d.ts +16 -0
  103. package/dist/types/components/shared/mb-tooltip/mb-tooltip.d.ts +10 -0
  104. package/dist/types/components/shared/mb-tooltip-advanced/mb-tooltip-advanced.d.ts +7 -0
  105. package/dist/types/components.d.ts +1382 -0
  106. package/dist/types/index.d.ts +1 -0
  107. package/dist/types/stencil-public-runtime.d.ts +1637 -0
  108. package/dist/types/utils/data-structures.d.ts +264 -0
  109. package/dist/types/utils/device.helpers.d.ts +7 -0
  110. package/dist/types/utils/error-structures.d.ts +44 -0
  111. package/dist/types/utils/generic.helpers.d.ts +21 -0
  112. package/dist/types/utils/sdk.service.d.ts +52 -0
  113. package/dist/types/utils/state-lifter.d.ts +3 -0
  114. package/dist/types/utils/status.document-detector.d.ts +14 -0
  115. package/dist/types/utils/translation.service.d.ts +77 -0
  116. package/loader/cdn.js +3 -0
  117. package/loader/index.cjs.js +3 -0
  118. package/loader/index.d.ts +21 -0
  119. package/loader/index.es2017.js +3 -0
  120. package/loader/index.js +4 -0
  121. package/loader/package.json +11 -0
  122. package/package.json +63 -0
@@ -0,0 +1,827 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import { CameraExperience, CameraExperienceState, CameraExperienceStateDuration, } from "../../../utils/data-structures";
3
+ import { classNames, getWebComponentParts, setWebComponentParts, } from "../../../utils/generic.helpers";
4
+ import * as Utils from "./mb-camera-experience.utils";
5
+ import { globalState } from "../../../utils/state-lifter";
6
+ export class MbCameraExperience {
7
+ constructor() {
8
+ this.cameraStateChangeId = 0;
9
+ this.cameraStateInProgress = false;
10
+ this.flipCameraStateInProgress = false;
11
+ this.barcodeScanningInProgress = false;
12
+ this.cameraCursorBarcodeClassName = "rectangle";
13
+ this.cameraCursorIdentityCardClassName = "reticle";
14
+ this.scanningLineBarcodeClassName = undefined;
15
+ this.cameraMessageIdentityCardContent = undefined;
16
+ this.cameraMessageIdentityCardClassName = "message";
17
+ this.type = undefined;
18
+ this.cameraExperienceStateDurations = null;
19
+ this.showOverlay = true;
20
+ this.translationService = undefined;
21
+ this.apiState = undefined;
22
+ this.cameraFlipped = false;
23
+ this.showScanningLine = false;
24
+ this.showCameraFeedbackBarcodeMessage = false;
25
+ this.clearIsCameraActive = false;
26
+ this.allowHelpScreens = false;
27
+ this.allowHelpScreensFab = false;
28
+ this.allowHelpScreensOnboarding = false;
29
+ this.allowHelpScreensOnboardingPerpetuity = false;
30
+ this.helpScreensTooltipPauseTimeout = 15000;
31
+ }
32
+ apiStateHandler(apiState, _oldValue) {
33
+ if (apiState === "" &&
34
+ (this.type === CameraExperience.CardSingleSide ||
35
+ this.type === CameraExperience.CardMultiSide))
36
+ this.cardIdentityElement.classList.add("visible");
37
+ else
38
+ this.cardIdentityElement.classList.remove("visible");
39
+ }
40
+ /**
41
+ * Change active camera.
42
+ */
43
+ async setActiveCamera(cameraId) {
44
+ this.cameraToolbar.setActiveCamera(cameraId);
45
+ }
46
+ /**
47
+ * Populate list of camera devices.
48
+ */
49
+ async populateCameraDevices() {
50
+ await this.cameraToolbar.populateCameraDevices();
51
+ }
52
+ /**
53
+ * Method is exposed outside which allow us to control Camera Flip state from parent component.
54
+ */
55
+ async setCameraFlipState(isFlipped) {
56
+ this.cameraFlipped = isFlipped;
57
+ }
58
+ /**
59
+ * Initializes Help Screens.
60
+ */
61
+ async initializeHelpScreens(callbacks) {
62
+ this.helpScreens.initialize(callbacks);
63
+ }
64
+ /**
65
+ * Opens Help Screens in the Onboarding mode.
66
+ */
67
+ async openHelpScreensOnboarding() {
68
+ this.helpScreens.openOnboarding();
69
+ }
70
+ /**
71
+ * Terminates Help Screens.
72
+ */
73
+ async terminateHelpScreens() {
74
+ this.helpScreens.terminate();
75
+ }
76
+ /**
77
+ * Set camera state which includes animation and message.
78
+ */
79
+ setState(state, isBackSide = false, force = false) {
80
+ return new Promise((resolve) => {
81
+ if (!force &&
82
+ (!state || this.cameraStateInProgress || this.flipCameraStateInProgress)) {
83
+ resolve();
84
+ return;
85
+ }
86
+ if (state === CameraExperienceState.BarcodeScanning) {
87
+ this.barcodeScanningInProgress = true;
88
+ }
89
+ this.cameraStateInProgress = true;
90
+ let cameraStateChangeId = this.cameraStateChangeId + 1;
91
+ this.cameraStateChangeId = cameraStateChangeId;
92
+ if (state === CameraExperienceState.Flip) {
93
+ this.flipCameraStateInProgress = true;
94
+ }
95
+ const stateClass = Utils.getStateClass(state);
96
+ switch (this.type) {
97
+ case CameraExperience.CardSingleSide:
98
+ case CameraExperience.CardMultiSide:
99
+ this.cameraCursorIdentityCardClassName = `reticle ${stateClass}`;
100
+ break;
101
+ case CameraExperience.Barcode:
102
+ stateClass === "is-detection" && this.showScanningLine
103
+ ? (this.scanningLineBarcodeClassName = "is-active")
104
+ : (this.scanningLineBarcodeClassName = "");
105
+ this.cameraCursorBarcodeClassName = `rectangle ${stateClass}`;
106
+ break;
107
+ }
108
+ this.setMessage(state, isBackSide, this.type);
109
+ window.setTimeout(() => {
110
+ if (this.flipCameraStateInProgress &&
111
+ state === CameraExperienceState.Flip) {
112
+ this.flipCameraStateInProgress = false;
113
+ }
114
+ if (this.cameraStateChangeId === cameraStateChangeId) {
115
+ this.cameraStateInProgress = false;
116
+ }
117
+ resolve();
118
+ }, this.getCameraExperienceStateDuration(state));
119
+ });
120
+ }
121
+ getCameraExperienceStateDuration(state) {
122
+ return this.cameraExperienceStateDurations
123
+ ? this.getStateDurationFromUserInput(state)
124
+ : CameraExperienceStateDuration.get(state);
125
+ }
126
+ getStateDurationFromUserInput(state) {
127
+ const cameraExperienceStateDurationMap = new Map(Object.entries(this.cameraExperienceStateDurations));
128
+ const stateAdjusted = state[0].toLocaleLowerCase() + state.slice(1);
129
+ const duration = cameraExperienceStateDurationMap.get(stateAdjusted);
130
+ return duration || CameraExperienceStateDuration.get(state);
131
+ }
132
+ /**
133
+ * Set camera state to initial method.
134
+ */
135
+ resetState() {
136
+ return new Promise((resolve) => {
137
+ // Reset flags
138
+ this.cameraStateChangeId = 0;
139
+ this.cameraStateInProgress = false;
140
+ this.flipCameraStateInProgress = false;
141
+ this.barcodeScanningInProgress = false;
142
+ // Reset DOM
143
+ while (this.cameraMessageIdentityCard.firstChild) {
144
+ this.cameraMessageIdentityCard.removeChild(this.cameraMessageIdentityCard.firstChild);
145
+ }
146
+ while (this.cameraMessageBarcode.firstChild) {
147
+ this.cameraMessageBarcode.removeChild(this.cameraMessageBarcode.firstChild);
148
+ }
149
+ resolve();
150
+ });
151
+ }
152
+ flipCamera() {
153
+ this.flipCameraAction.emit();
154
+ }
155
+ handleStop() {
156
+ this.close.emit();
157
+ }
158
+ setMessage(state, isBackSide, type) {
159
+ const message = this.getStateMessage(state, isBackSide, type);
160
+ switch (type) {
161
+ case CameraExperience.CardSingleSide:
162
+ case CameraExperience.CardMultiSide:
163
+ while (this.cameraMessageIdentityCard.firstChild) {
164
+ this.cameraMessageIdentityCard.removeChild(this.cameraMessageIdentityCard.firstChild);
165
+ }
166
+ if (message) {
167
+ this.cameraMessageIdentityCard.appendChild(message);
168
+ }
169
+ this.cameraMessageIdentityCardClassName =
170
+ message && message !== null ? "message is-active" : "message";
171
+ break;
172
+ case CameraExperience.Barcode:
173
+ while (this.cameraMessageBarcode.firstChild) {
174
+ this.cameraMessageBarcode.removeChild(this.cameraMessageBarcode.firstChild);
175
+ }
176
+ if (this.showCameraFeedbackBarcodeMessage) {
177
+ if (message) {
178
+ this.cameraMessageBarcode.appendChild(message);
179
+ }
180
+ this.cameraMessageBarcode.setAttribute("class", message && message !== null ? "message is-active" : "message");
181
+ }
182
+ break;
183
+ default:
184
+ // Do nothing
185
+ }
186
+ }
187
+ getStateMessage(state, isBackSide = false, type) {
188
+ const getStateMessageAsHTML = (message) => {
189
+ if (message) {
190
+ const messageArray = typeof message === "string" ? [message] : message;
191
+ const children = [];
192
+ while (messageArray.length) {
193
+ const sentence = messageArray.shift();
194
+ children.push(document.createTextNode(sentence));
195
+ if (messageArray.length) {
196
+ children.push(document.createElement("br"));
197
+ }
198
+ }
199
+ const spanElement = document.createElement("span");
200
+ while (children.length) {
201
+ spanElement.appendChild(children.shift());
202
+ }
203
+ return spanElement;
204
+ }
205
+ };
206
+ switch (state) {
207
+ case CameraExperienceState.Default:
208
+ // Do not take this into consideration if passport is detected
209
+ if (globalState.isPassport) {
210
+ break;
211
+ }
212
+ if (type === CameraExperience.Barcode &&
213
+ this.showCameraFeedbackBarcodeMessage) {
214
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-barcode-message"));
215
+ }
216
+ const key = isBackSide
217
+ ? "camera-feedback-scan-back"
218
+ : "camera-feedback-scan-front";
219
+ if (this.barcodeScanningInProgress) {
220
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-barcode"));
221
+ }
222
+ return getStateMessageAsHTML(this.translationService.i(key));
223
+ case CameraExperienceState.MoveFarther:
224
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-farther"));
225
+ case CameraExperienceState.MoveCloser:
226
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-closer"));
227
+ case CameraExperienceState.AdjustAngle:
228
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-adjust-angle"));
229
+ case CameraExperienceState.GlareDetected:
230
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-glare"));
231
+ case CameraExperienceState.BlurDetected: {
232
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-blur"));
233
+ }
234
+ case CameraExperienceState.WrongSide: {
235
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-wrong-side"));
236
+ }
237
+ case CameraExperienceState.MovePassportUp: {
238
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-top-page"));
239
+ }
240
+ case CameraExperienceState.MovePassportRight: {
241
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-right-page"));
242
+ }
243
+ case CameraExperienceState.MovePassportDown: {
244
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-bottom-page"));
245
+ }
246
+ case CameraExperienceState.MovePassportLeft: {
247
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-left-page"));
248
+ }
249
+ case CameraExperienceState.ScanPassportUp: {
250
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-scan-top-page"));
251
+ }
252
+ case CameraExperienceState.ScanPassportDown: {
253
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-scan-bottom-page"));
254
+ }
255
+ case CameraExperienceState.ScanPassportRight: {
256
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-scan-right-page"));
257
+ }
258
+ case CameraExperienceState.ScanPassportLeft: {
259
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-scan-left-page"));
260
+ }
261
+ case CameraExperienceState.MovePassportUpError: {
262
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-top-page"));
263
+ }
264
+ case CameraExperienceState.MovePassportDownError: {
265
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-bottom-page"));
266
+ }
267
+ case CameraExperienceState.MovePassportRightError: {
268
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-right-page"));
269
+ }
270
+ case CameraExperienceState.MovePassportLeftError: {
271
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-move-left-page"));
272
+ }
273
+ case CameraExperienceState.FacePhotoCovered: {
274
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-face-photo-covered"));
275
+ }
276
+ case CameraExperienceState.Flip:
277
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-flip"));
278
+ case CameraExperienceState.BarcodeScanning:
279
+ return getStateMessageAsHTML(this.translationService.i("camera-feedback-barcode"));
280
+ case CameraExperienceState.Classification:
281
+ case CameraExperienceState.Detection:
282
+ return type === CameraExperience.Barcode
283
+ ? getStateMessageAsHTML(this.translationService.i("camera-feedback-barcode-message"))
284
+ : null;
285
+ case CameraExperienceState.Done:
286
+ case CameraExperienceState.DoneAll:
287
+ default:
288
+ return null;
289
+ }
290
+ }
291
+ handleChangeCameraDevice(camera) {
292
+ this.changeCameraDevice.emit(camera);
293
+ }
294
+ componentDidLoad() {
295
+ setWebComponentParts(this.hostEl);
296
+ const parts = getWebComponentParts(this.hostEl.shadowRoot);
297
+ this.hostEl.setAttribute("exportparts", parts.join(", "));
298
+ }
299
+ render() {
300
+ return (h(Host, { class: classNames({ "no-overlay": !this.showOverlay }) }, h("div", { id: "barcode", class: classNames({
301
+ visible: this.type === CameraExperience.Barcode,
302
+ }) }, h("div", { class: "rectangle-container" }, h("div", { class: this.cameraCursorBarcodeClassName }, h("div", { class: "rectangle__cursor" }, h("div", { class: "rectangle__el" }), h("div", { class: "rectangle__el" }), h("div", { class: "rectangle__el" }), h("div", { class: "rectangle__el" }), h("div", { class: `scanning-line ${this.scanningLineBarcodeClassName}` }))), h("p", { class: "message", ref: (el) => (this.cameraMessageBarcode = el) }))), h("div", { id: "card-identity", ref: (el) => (this.cardIdentityElement = el), class: classNames({
303
+ visible: this.type === CameraExperience.CardSingleSide ||
304
+ this.type === CameraExperience.CardMultiSide,
305
+ }) }, h("div", { class: "reticle-container" }, h("div", { class: this.cameraCursorIdentityCardClassName }, h("div", { class: "reticle__cursor" }, h("div", { class: "reticle__el" }), h("div", { class: "reticle__el" }), h("div", { class: "reticle__el" }), h("div", { class: "reticle__el" })), h("img", { class: "reticle__done", src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjk3MiAzMy40NkMyMC43MDk1IDMzLjQ2MDUgMjAuNDQ5NCAzMy40MDkyIDIwLjIwNjggMzMuMzA5QzE5Ljk2NDEgMzMuMjA4OCAxOS43NDM2IDMzLjA2MTYgMTkuNTU4IDMyLjg3NkwxMS4wNzQgMjQuMzlDMTAuODgyOSAyNC4yMDU2IDEwLjczMDMgMjMuOTg1MSAxMC42MjU0IDIzLjc0MTFDMTAuNTIwNCAyMy40OTcyIDEwLjQ2NSAyMy4yMzQ4IDEwLjQ2MjUgMjIuOTY5MkMxMC40NiAyMi43MDM3IDEwLjUxMDQgMjIuNDQwMyAxMC42MTA4IDIyLjE5NDRDMTAuNzExMiAyMS45NDg2IDEwLjg1OTYgMjEuNzI1MiAxMS4wNDcyIDIxLjUzNzNDMTEuMjM0OSAyMS4zNDkzIDExLjQ1ODEgMjEuMjAwNyAxMS43MDM4IDIxLjA5OTlDMTEuOTQ5NSAyMC45OTkyIDEyLjIxMjggMjAuOTQ4NCAxMi40Nzg0IDIwLjk1MDVDMTIuNzQzOSAyMC45NTI2IDEzLjAwNjQgMjEuMDA3NiAxMy4yNTA1IDIxLjExMjNDMTMuNDk0NiAyMS4yMTY5IDEzLjcxNTQgMjEuMzY5MSAxMy45IDIxLjU2TDIwLjk3IDI4LjYzTDMzLjcgMTUuOTA0QzM0LjA3NSAxNS41Mjg3IDM0LjU4MzggMTUuMzE3OCAzNS4xMTQzIDE1LjMxNzZDMzUuNjQ0OCAxNS4zMTc0IDM2LjE1MzcgMTUuNTI4IDM2LjUyOSAxNS45MDNDMzYuOTA0MyAxNi4yNzggMzcuMTE1MiAxNi43ODY4IDM3LjExNTQgMTcuMzE3M0MzNy4xMTU2IDE3Ljg0NzggMzYuOTA1IDE4LjM1NjcgMzYuNTMgMTguNzMyTDIyLjM4NiAzMi44NzZDMjIuMjAwNCAzMy4wNjE2IDIxLjk3OTkgMzMuMjA4OCAyMS43MzcyIDMzLjMwOUMyMS40OTQ2IDMzLjQwOTIgMjEuMjM0NSAzMy40NjA1IDIwLjk3MiAzMy40NloiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=" })), h("p", { class: this.cameraMessageIdentityCardClassName, ref: (el) => (this.cameraMessageIdentityCard = el) }))), h("div", { class: "gradient-overlay bottom" }), h("mb-camera-toolbar", { "clear-is-camera-active": this.clearIsCameraActive, "show-close": this.apiState !== "error", "camera-flipped": this.cameraFlipped, onCloseEvent: () => this.handleStop(), onFlipEvent: () => this.flipCamera(), onChangeCameraDevice: (ev) => this.handleChangeCameraDevice(ev.detail), ref: (el) => (this.cameraToolbar = el) }), h("mb-help", { allow: this.allowHelpScreens, allowFab: this.allowHelpScreensFab, allowOnboarding: this.allowHelpScreensOnboarding, allowOnboardingPerpetuity: this.allowHelpScreensOnboardingPerpetuity, tooltipPauseTimeout: this.helpScreensTooltipPauseTimeout, translationService: this.translationService, ref: (el) => {
306
+ this.helpScreens = el;
307
+ } })));
308
+ }
309
+ static get is() { return "mb-camera-experience"; }
310
+ static get encapsulation() { return "shadow"; }
311
+ static get originalStyleUrls() {
312
+ return {
313
+ "$": ["mb-camera-experience.scss"]
314
+ };
315
+ }
316
+ static get styleUrls() {
317
+ return {
318
+ "$": ["mb-camera-experience.css"]
319
+ };
320
+ }
321
+ static get properties() {
322
+ return {
323
+ "type": {
324
+ "type": "string",
325
+ "mutable": false,
326
+ "complexType": {
327
+ "original": "CameraExperience",
328
+ "resolved": "CameraExperience.Barcode | CameraExperience.CardMultiSide | CameraExperience.CardSingleSide | CameraExperience.Passport | CameraExperience.PaymentCard",
329
+ "references": {
330
+ "CameraExperience": {
331
+ "location": "import",
332
+ "path": "../../../utils/data-structures"
333
+ }
334
+ }
335
+ },
336
+ "required": false,
337
+ "optional": false,
338
+ "docs": {
339
+ "tags": [],
340
+ "text": "Choose desired camera experience.\n\nEach experience type must be implemented in this component."
341
+ },
342
+ "attribute": "type",
343
+ "reflect": false
344
+ },
345
+ "cameraExperienceStateDurations": {
346
+ "type": "unknown",
347
+ "mutable": false,
348
+ "complexType": {
349
+ "original": "CameraExperienceStateDurations",
350
+ "resolved": "CameraExperienceStateDurations",
351
+ "references": {
352
+ "CameraExperienceStateDurations": {
353
+ "location": "import",
354
+ "path": "../../../utils/data-structures"
355
+ }
356
+ }
357
+ },
358
+ "required": false,
359
+ "optional": false,
360
+ "docs": {
361
+ "tags": [],
362
+ "text": "Configure camera experience state timeout durations"
363
+ },
364
+ "defaultValue": "null"
365
+ },
366
+ "showOverlay": {
367
+ "type": "boolean",
368
+ "mutable": false,
369
+ "complexType": {
370
+ "original": "boolean",
371
+ "resolved": "boolean",
372
+ "references": {}
373
+ },
374
+ "required": false,
375
+ "optional": false,
376
+ "docs": {
377
+ "tags": [],
378
+ "text": "Unless specifically granted by your license key, you are not allowed to\nmodify or remove the Microblink logo displayed on the bottom of the camera\noverlay."
379
+ },
380
+ "attribute": "show-overlay",
381
+ "reflect": false,
382
+ "defaultValue": "true"
383
+ },
384
+ "translationService": {
385
+ "type": "unknown",
386
+ "mutable": false,
387
+ "complexType": {
388
+ "original": "TranslationService",
389
+ "resolved": "TranslationService",
390
+ "references": {
391
+ "TranslationService": {
392
+ "location": "import",
393
+ "path": "../../../utils/translation.service"
394
+ }
395
+ }
396
+ },
397
+ "required": false,
398
+ "optional": false,
399
+ "docs": {
400
+ "tags": [],
401
+ "text": "Instance of TranslationService passed from root component."
402
+ }
403
+ },
404
+ "apiState": {
405
+ "type": "string",
406
+ "mutable": false,
407
+ "complexType": {
408
+ "original": "string",
409
+ "resolved": "string",
410
+ "references": {}
411
+ },
412
+ "required": false,
413
+ "optional": false,
414
+ "docs": {
415
+ "tags": [],
416
+ "text": "Api state passed from root component."
417
+ },
418
+ "attribute": "api-state",
419
+ "reflect": false
420
+ },
421
+ "cameraFlipped": {
422
+ "type": "boolean",
423
+ "mutable": true,
424
+ "complexType": {
425
+ "original": "boolean",
426
+ "resolved": "boolean",
427
+ "references": {}
428
+ },
429
+ "required": false,
430
+ "optional": false,
431
+ "docs": {
432
+ "tags": [],
433
+ "text": "Camera horizontal state passed from root component.\n\nHorizontal camera image can be mirrored"
434
+ },
435
+ "attribute": "camera-flipped",
436
+ "reflect": false,
437
+ "defaultValue": "false"
438
+ },
439
+ "showScanningLine": {
440
+ "type": "boolean",
441
+ "mutable": false,
442
+ "complexType": {
443
+ "original": "boolean",
444
+ "resolved": "boolean",
445
+ "references": {}
446
+ },
447
+ "required": false,
448
+ "optional": false,
449
+ "docs": {
450
+ "tags": [],
451
+ "text": "Show scanning line on camera"
452
+ },
453
+ "attribute": "show-scanning-line",
454
+ "reflect": false,
455
+ "defaultValue": "false"
456
+ },
457
+ "showCameraFeedbackBarcodeMessage": {
458
+ "type": "boolean",
459
+ "mutable": false,
460
+ "complexType": {
461
+ "original": "boolean",
462
+ "resolved": "boolean",
463
+ "references": {}
464
+ },
465
+ "required": false,
466
+ "optional": false,
467
+ "docs": {
468
+ "tags": [],
469
+ "text": "Show camera feedback message on camera for Barcode scanning"
470
+ },
471
+ "attribute": "show-camera-feedback-barcode-message",
472
+ "reflect": false,
473
+ "defaultValue": "false"
474
+ },
475
+ "clearIsCameraActive": {
476
+ "type": "boolean",
477
+ "mutable": false,
478
+ "complexType": {
479
+ "original": "boolean",
480
+ "resolved": "boolean",
481
+ "references": {}
482
+ },
483
+ "required": false,
484
+ "optional": false,
485
+ "docs": {
486
+ "tags": [],
487
+ "text": ""
488
+ },
489
+ "attribute": "clear-is-camera-active",
490
+ "reflect": false,
491
+ "defaultValue": "false"
492
+ },
493
+ "allowHelpScreens": {
494
+ "type": "boolean",
495
+ "mutable": false,
496
+ "complexType": {
497
+ "original": "boolean",
498
+ "resolved": "boolean",
499
+ "references": {}
500
+ },
501
+ "required": false,
502
+ "optional": false,
503
+ "docs": {
504
+ "tags": [],
505
+ "text": "Dictates if Help Screens usage is allowed (turned on)."
506
+ },
507
+ "attribute": "allow-help-screens",
508
+ "reflect": false,
509
+ "defaultValue": "false"
510
+ },
511
+ "allowHelpScreensFab": {
512
+ "type": "boolean",
513
+ "mutable": false,
514
+ "complexType": {
515
+ "original": "boolean",
516
+ "resolved": "boolean",
517
+ "references": {}
518
+ },
519
+ "required": false,
520
+ "optional": false,
521
+ "docs": {
522
+ "tags": [],
523
+ "text": "See description in public component."
524
+ },
525
+ "attribute": "allow-help-screens-fab",
526
+ "reflect": false,
527
+ "defaultValue": "false"
528
+ },
529
+ "allowHelpScreensOnboarding": {
530
+ "type": "boolean",
531
+ "mutable": false,
532
+ "complexType": {
533
+ "original": "boolean",
534
+ "resolved": "boolean",
535
+ "references": {}
536
+ },
537
+ "required": false,
538
+ "optional": false,
539
+ "docs": {
540
+ "tags": [],
541
+ "text": "See description in public component."
542
+ },
543
+ "attribute": "allow-help-screens-onboarding",
544
+ "reflect": false,
545
+ "defaultValue": "false"
546
+ },
547
+ "allowHelpScreensOnboardingPerpetuity": {
548
+ "type": "boolean",
549
+ "mutable": false,
550
+ "complexType": {
551
+ "original": "boolean",
552
+ "resolved": "boolean",
553
+ "references": {}
554
+ },
555
+ "required": false,
556
+ "optional": false,
557
+ "docs": {
558
+ "tags": [],
559
+ "text": "See description in public component."
560
+ },
561
+ "attribute": "allow-help-screens-onboarding-perpetuity",
562
+ "reflect": false,
563
+ "defaultValue": "false"
564
+ },
565
+ "helpScreensTooltipPauseTimeout": {
566
+ "type": "number",
567
+ "mutable": false,
568
+ "complexType": {
569
+ "original": "number",
570
+ "resolved": "number",
571
+ "references": {}
572
+ },
573
+ "required": false,
574
+ "optional": false,
575
+ "docs": {
576
+ "tags": [],
577
+ "text": "See description in public component."
578
+ },
579
+ "attribute": "help-screens-tooltip-pause-timeout",
580
+ "reflect": false,
581
+ "defaultValue": "15000"
582
+ }
583
+ };
584
+ }
585
+ static get states() {
586
+ return {
587
+ "cameraCursorBarcodeClassName": {},
588
+ "cameraCursorIdentityCardClassName": {},
589
+ "scanningLineBarcodeClassName": {},
590
+ "cameraMessageIdentityCardContent": {},
591
+ "cameraMessageIdentityCardClassName": {}
592
+ };
593
+ }
594
+ static get events() {
595
+ return [{
596
+ "method": "close",
597
+ "name": "close",
598
+ "bubbles": true,
599
+ "cancelable": true,
600
+ "composed": true,
601
+ "docs": {
602
+ "tags": [],
603
+ "text": "Emitted when user clicks on 'X' button."
604
+ },
605
+ "complexType": {
606
+ "original": "void",
607
+ "resolved": "void",
608
+ "references": {}
609
+ }
610
+ }, {
611
+ "method": "setIsCameraActive",
612
+ "name": "setIsCameraActive",
613
+ "bubbles": true,
614
+ "cancelable": true,
615
+ "composed": true,
616
+ "docs": {
617
+ "tags": [],
618
+ "text": "Emitted when camera stream becomes active."
619
+ },
620
+ "complexType": {
621
+ "original": "boolean",
622
+ "resolved": "boolean",
623
+ "references": {}
624
+ }
625
+ }, {
626
+ "method": "changeCameraDevice",
627
+ "name": "changeCameraDevice",
628
+ "bubbles": true,
629
+ "cancelable": true,
630
+ "composed": true,
631
+ "docs": {
632
+ "tags": [],
633
+ "text": "Emitted when user selects a different camera device."
634
+ },
635
+ "complexType": {
636
+ "original": "CameraEntry",
637
+ "resolved": "CameraEntry",
638
+ "references": {
639
+ "CameraEntry": {
640
+ "location": "import",
641
+ "path": "../../../utils/data-structures"
642
+ }
643
+ }
644
+ }
645
+ }, {
646
+ "method": "flipCameraAction",
647
+ "name": "flipCameraAction",
648
+ "bubbles": true,
649
+ "cancelable": true,
650
+ "composed": true,
651
+ "docs": {
652
+ "tags": [],
653
+ "text": "Emitted when user clicks on Flip button."
654
+ },
655
+ "complexType": {
656
+ "original": "void",
657
+ "resolved": "void",
658
+ "references": {}
659
+ }
660
+ }];
661
+ }
662
+ static get methods() {
663
+ return {
664
+ "setActiveCamera": {
665
+ "complexType": {
666
+ "signature": "(cameraId: string) => Promise<void>",
667
+ "parameters": [{
668
+ "tags": [],
669
+ "text": ""
670
+ }],
671
+ "references": {
672
+ "Promise": {
673
+ "location": "global"
674
+ }
675
+ },
676
+ "return": "Promise<void>"
677
+ },
678
+ "docs": {
679
+ "text": "Change active camera.",
680
+ "tags": []
681
+ }
682
+ },
683
+ "populateCameraDevices": {
684
+ "complexType": {
685
+ "signature": "() => Promise<void>",
686
+ "parameters": [],
687
+ "references": {
688
+ "Promise": {
689
+ "location": "global"
690
+ }
691
+ },
692
+ "return": "Promise<void>"
693
+ },
694
+ "docs": {
695
+ "text": "Populate list of camera devices.",
696
+ "tags": []
697
+ }
698
+ },
699
+ "setCameraFlipState": {
700
+ "complexType": {
701
+ "signature": "(isFlipped: boolean) => Promise<void>",
702
+ "parameters": [{
703
+ "tags": [],
704
+ "text": ""
705
+ }],
706
+ "references": {
707
+ "Promise": {
708
+ "location": "global"
709
+ }
710
+ },
711
+ "return": "Promise<void>"
712
+ },
713
+ "docs": {
714
+ "text": "Method is exposed outside which allow us to control Camera Flip state from parent component.",
715
+ "tags": []
716
+ }
717
+ },
718
+ "initializeHelpScreens": {
719
+ "complexType": {
720
+ "signature": "(callbacks: MbHelpCallbacks) => Promise<void>",
721
+ "parameters": [{
722
+ "tags": [],
723
+ "text": ""
724
+ }],
725
+ "references": {
726
+ "Promise": {
727
+ "location": "global"
728
+ },
729
+ "MbHelpCallbacks": {
730
+ "location": "import",
731
+ "path": "../mb-help/mb-help.model"
732
+ }
733
+ },
734
+ "return": "Promise<void>"
735
+ },
736
+ "docs": {
737
+ "text": "Initializes Help Screens.",
738
+ "tags": []
739
+ }
740
+ },
741
+ "openHelpScreensOnboarding": {
742
+ "complexType": {
743
+ "signature": "() => Promise<void>",
744
+ "parameters": [],
745
+ "references": {
746
+ "Promise": {
747
+ "location": "global"
748
+ }
749
+ },
750
+ "return": "Promise<void>"
751
+ },
752
+ "docs": {
753
+ "text": "Opens Help Screens in the Onboarding mode.",
754
+ "tags": []
755
+ }
756
+ },
757
+ "terminateHelpScreens": {
758
+ "complexType": {
759
+ "signature": "() => Promise<void>",
760
+ "parameters": [],
761
+ "references": {
762
+ "Promise": {
763
+ "location": "global"
764
+ }
765
+ },
766
+ "return": "Promise<void>"
767
+ },
768
+ "docs": {
769
+ "text": "Terminates Help Screens.",
770
+ "tags": []
771
+ }
772
+ },
773
+ "setState": {
774
+ "complexType": {
775
+ "signature": "(state: CameraExperienceState, isBackSide?: boolean, force?: boolean) => Promise<void>",
776
+ "parameters": [{
777
+ "tags": [],
778
+ "text": ""
779
+ }, {
780
+ "tags": [],
781
+ "text": ""
782
+ }, {
783
+ "tags": [],
784
+ "text": ""
785
+ }],
786
+ "references": {
787
+ "Promise": {
788
+ "location": "global"
789
+ },
790
+ "CameraExperienceState": {
791
+ "location": "import",
792
+ "path": "../../../utils/data-structures"
793
+ }
794
+ },
795
+ "return": "Promise<void>"
796
+ },
797
+ "docs": {
798
+ "text": "Set camera state which includes animation and message.",
799
+ "tags": []
800
+ }
801
+ },
802
+ "resetState": {
803
+ "complexType": {
804
+ "signature": "() => Promise<void>",
805
+ "parameters": [],
806
+ "references": {
807
+ "Promise": {
808
+ "location": "global"
809
+ }
810
+ },
811
+ "return": "Promise<void>"
812
+ },
813
+ "docs": {
814
+ "text": "Set camera state to initial method.",
815
+ "tags": []
816
+ }
817
+ }
818
+ };
819
+ }
820
+ static get elementRef() { return "hostEl"; }
821
+ static get watchers() {
822
+ return [{
823
+ "propName": "apiState",
824
+ "methodName": "apiStateHandler"
825
+ }];
826
+ }
827
+ }