@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,55 @@
1
+ import { CameraExperienceState } from "../../../utils/data-structures";
2
+ // TODO: do we need anything except CardSingleSide, CardMultiSide and Barcode?
3
+ function getStateClass(state) {
4
+ let stateClass = "is-default";
5
+ switch (state) {
6
+ case CameraExperienceState.BarcodeScanning:
7
+ case CameraExperienceState.Classification:
8
+ stateClass = "is-classification";
9
+ break;
10
+ case CameraExperienceState.Default:
11
+ stateClass = "is-default";
12
+ break;
13
+ case CameraExperienceState.Detection:
14
+ stateClass = "is-detection";
15
+ break;
16
+ case CameraExperienceState.FacePhotoCovered:
17
+ stateClass = "is-error-move-closer";
18
+ console.log("Face photo covered");
19
+ break;
20
+ case CameraExperienceState.MoveFarther:
21
+ stateClass = "is-error-move-farther";
22
+ break;
23
+ case CameraExperienceState.MoveCloser:
24
+ stateClass = "is-error-move-closer";
25
+ break;
26
+ case CameraExperienceState.AdjustAngle:
27
+ stateClass = "is-error-adjust-angle";
28
+ break;
29
+ case CameraExperienceState.Flip:
30
+ stateClass = "is-flip";
31
+ break;
32
+ case CameraExperienceState.Done:
33
+ stateClass = "is-done";
34
+ break;
35
+ case CameraExperienceState.DoneAll:
36
+ stateClass = "is-done-all";
37
+ break;
38
+ // We use the same class for blur and glare
39
+ case CameraExperienceState.BlurDetected:
40
+ case CameraExperienceState.GlareDetected:
41
+ // and for wrong side
42
+ case CameraExperienceState.WrongSide:
43
+ // and for passport page errors
44
+ case CameraExperienceState.MovePassportDownError:
45
+ case CameraExperienceState.MovePassportUpError:
46
+ case CameraExperienceState.MovePassportLeftError:
47
+ case CameraExperienceState.MovePassportRightError:
48
+ stateClass = "is-error-move-closer";
49
+ break;
50
+ default:
51
+ // Reset class
52
+ }
53
+ return stateClass;
54
+ }
55
+ export { getStateClass };
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Copyright (c) Microblink Ltd. All rights reserved.
3
+ *
4
+ * SASS variables, not customizable via CSS variables
5
+ */
6
+ /**
7
+ * Camera experiences
8
+ */
9
+ :host {
10
+ display: grid;
11
+ font-family: inherit;
12
+ font-size: var(--mb-font-size);
13
+ }
14
+ :host * {
15
+ box-sizing: border-box;
16
+ }
17
+ :host .active-camera {
18
+ all: unset;
19
+ box-sizing: border-box;
20
+ display: flex;
21
+ cursor: pointer;
22
+ min-width: 0;
23
+ max-width: 100%;
24
+ align-items: center;
25
+ color: var(--mb-toolbar-color);
26
+ line-height: var(--mb-line-height);
27
+ text-align: center;
28
+ text-decoration: none;
29
+ border: 1px solid transparent;
30
+ border-radius: var(--mb-toolbar-border-radius);
31
+ }
32
+ :host .active-camera .icon {
33
+ width: 20px;
34
+ height: 20px;
35
+ }
36
+ :host .active-camera .icon svg {
37
+ width: 20px;
38
+ height: 20px;
39
+ }
40
+ :host .active-camera .name {
41
+ font-weight: var(--mb-toolbar-camera-name-font-weight);
42
+ padding: 0 8px 0 4px;
43
+ overflow: hidden;
44
+ text-overflow: ellipsis;
45
+ white-space: nowrap;
46
+ }
47
+ :host .active-camera {
48
+ padding: 4px 16px;
49
+ background-color: transparent;
50
+ }
51
+ :host .active-camera:hover, :host .active-camera:active, :host .active-camera:focus {
52
+ background-color: rgba(107, 114, 128, 0.3);
53
+ }
54
+ :host .active-camera.active, :host .active-camera:active, :host .active-camera:focus {
55
+ padding: 4px 16px;
56
+ border-color: var(--mb-toolbar-border-color);
57
+ }
58
+ :host #list-background {
59
+ position: fixed;
60
+ top: 0;
61
+ left: 0;
62
+ width: 100vw;
63
+ height: 100vh;
64
+ }
65
+ :host #list-background:not(.visible) {
66
+ display: none;
67
+ }
68
+ :host .list {
69
+ position: absolute;
70
+ top: calc(var(--mb-font-size) * 1.5 + 16px);
71
+ left: calc(50% - var(--mb-toolbar-selection-width) / 2);
72
+ width: var(--mb-toolbar-selection-width);
73
+ padding: 0;
74
+ background-color: var(--mb-toolbar-list-background);
75
+ border-radius: var(--mb-toolbar-border-radius);
76
+ box-shadow: var(--mb-toolbar-list-shadow);
77
+ }
78
+ :host .list:not(.visible) {
79
+ display: none;
80
+ }
81
+ :host .list svg,
82
+ :host .list .name,
83
+ :host .list .spacer {
84
+ display: inline-block;
85
+ vertical-align: middle;
86
+ }
87
+ :host .list .spacer,
88
+ :host .list svg {
89
+ width: 24px;
90
+ height: 20px;
91
+ }
92
+ :host .list .name {
93
+ max-width: calc(100% - 24px);
94
+ overflow: hidden;
95
+ text-overflow: ellipsis;
96
+ }
97
+ :host .list ul {
98
+ margin: 0;
99
+ padding: 8px;
100
+ border-radius: var(--mb-toolbar-list-border-radius);
101
+ list-style: none;
102
+ }
103
+ :host .list ul li {
104
+ display: block;
105
+ }
106
+ :host .list ul li.active {
107
+ color: #0062f2;
108
+ }
109
+ :host .list ul button {
110
+ all: unset;
111
+ box-sizing: border-box;
112
+ display: block;
113
+ width: 100%;
114
+ -webkit-appearance: none;
115
+ -moz-appearance: none;
116
+ appearance: none;
117
+ border-radius: var(--mb-toolbar-list-item-border-radius);
118
+ padding: 4px 16px;
119
+ line-height: var(--mb-line-height);
120
+ cursor: pointer;
121
+ }
122
+ :host .list ul button:hover, :host .list ul button:focus {
123
+ background-color: rgba(116, 116, 128, 0.08);
124
+ }
@@ -0,0 +1,194 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import { setWebComponentParts, classNames, } from "../../../utils/generic.helpers";
3
+ import { getCameraDevices } from "../../../utils/sdk.service";
4
+ export class MbCameraSelection {
5
+ constructor() {
6
+ this.activeCamera = {
7
+ prettyName: "-",
8
+ details: null,
9
+ };
10
+ this.cameraList = [];
11
+ this.isListVisible = false;
12
+ this.clearIsCameraActive = false;
13
+ }
14
+ /**
15
+ * Change active camera.
16
+ */
17
+ async setActiveCamera(cameraId) {
18
+ const camera = this.cameraList.find((el) => el.details.deviceId === cameraId);
19
+ if (!camera) {
20
+ return;
21
+ }
22
+ this.activeCamera = camera;
23
+ }
24
+ /**
25
+ * Populate list of camera devices.
26
+ */
27
+ async populateCameraDevices() {
28
+ try {
29
+ const devices = await getCameraDevices();
30
+ this.cameraList = devices;
31
+ }
32
+ catch (error) {
33
+ // Camera access error is handled by the video recognizer.
34
+ this.cameraList = [];
35
+ }
36
+ }
37
+ handleListOpen(ev) {
38
+ ev.preventDefault();
39
+ ev.stopPropagation();
40
+ this.setListVisibility(!this.isListVisible);
41
+ }
42
+ handleCameraSelection(ev, camera) {
43
+ ev.preventDefault();
44
+ ev.stopPropagation();
45
+ this.changeCameraDevice.emit(camera);
46
+ this.activeCamera = camera;
47
+ this.setListVisibility(false);
48
+ }
49
+ setListVisibility(visible) {
50
+ this.isListVisible = visible;
51
+ }
52
+ componentDidLoad() {
53
+ setWebComponentParts(this.hostEl);
54
+ }
55
+ render() {
56
+ const cameraListElements = this.cameraList.map((camera) => {
57
+ const isActive = !this.clearIsCameraActive &&
58
+ this.activeCamera?.details?.deviceId === camera.details.deviceId;
59
+ let content = h("span", { class: "spacer" });
60
+ if (isActive) {
61
+ content = (h("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M17.2559 5.24408C17.5813 5.56951 17.5813 6.09715 17.2559 6.42259L8.92257 14.7559C8.59713 15.0814 8.06949 15.0814 7.74406 14.7559L3.57739 10.5893C3.25195 10.2638 3.25195 9.73618 3.57739 9.41074C3.90283 9.08531 4.43047 9.08531 4.7559 9.41074L8.33331 12.9882L16.0774 5.24408C16.4028 4.91864 16.9305 4.91864 17.2559 5.24408Z", fill: "#0062F2" })));
62
+ }
63
+ return (h("li", { class: classNames({ active: isActive }) }, h("button", { onClick: (ev) => this.handleCameraSelection(ev, camera) }, content, h("span", { class: "name" }, camera.prettyName))));
64
+ });
65
+ const doNotRender = !(this.cameraList?.length > 1);
66
+ if (doNotRender) {
67
+ return undefined;
68
+ }
69
+ return (h(Host, null, h("button", { class: this.isListVisible ? "active-camera active" : "active-camera", onClick: (ev) => this.handleListOpen(ev) }, h("span", { class: "icon" }, h("svg", { width: "21", height: "20", viewBox: "0 0 21 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M6.82145 2.98816C7.13401 2.6756 7.55793 2.5 7.99996 2.5H13C13.442 2.5 13.8659 2.6756 14.1785 2.98816C14.491 3.30072 14.6666 3.72464 14.6666 4.16667C14.6666 4.38768 14.7544 4.59964 14.9107 4.75592C15.067 4.9122 15.2789 5 15.5 5H16.3333C16.9963 5 17.6322 5.26339 18.1011 5.73223C18.5699 6.20107 18.8333 6.83696 18.8333 7.5V15C18.8333 15.663 18.5699 16.2989 18.1011 16.7678C17.6322 17.2366 16.9963 17.5 16.3333 17.5H4.66663C4.00358 17.5 3.3677 17.2366 2.89886 16.7678C2.43002 16.2989 2.16663 15.663 2.16663 15V7.5C2.16663 6.83696 2.43002 6.20107 2.89886 5.73223C3.3677 5.26339 4.00358 5 4.66663 5H5.49996C5.72097 5 5.93293 4.9122 6.08922 4.75592C6.2455 4.59964 6.33329 4.38768 6.33329 4.16667C6.33329 3.72464 6.50889 3.30072 6.82145 2.98816ZM4.66663 6.66667C4.44561 6.66667 4.23365 6.75446 4.07737 6.91074C3.92109 7.06702 3.83329 7.27899 3.83329 7.5V15C3.83329 15.221 3.92109 15.433 4.07737 15.5893C4.23365 15.7455 4.44561 15.8333 4.66663 15.8333H16.3333C16.5543 15.8333 16.7663 15.7455 16.9225 15.5893C17.0788 15.433 17.1666 15.221 17.1666 15V7.5C17.1666 7.27899 17.0788 7.06702 16.9225 6.91074C16.7663 6.75446 16.5543 6.66667 16.3333 6.66667H15.5C14.8369 6.66667 14.201 6.40327 13.7322 5.93443C13.2634 5.46559 13 4.82971 13 4.16667L7.99996 4.16667C7.99996 4.82971 7.73657 5.46559 7.26773 5.93443C6.79889 6.40327 6.163 6.66667 5.49996 6.66667H4.66663Z", fill: "white" }), h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M10.5 9.16667C9.57948 9.16667 8.83329 9.91286 8.83329 10.8333C8.83329 11.7538 9.57948 12.5 10.5 12.5C11.4204 12.5 12.1666 11.7538 12.1666 10.8333C12.1666 9.91286 11.4204 9.16667 10.5 9.16667ZM7.16663 10.8333C7.16663 8.99238 8.65901 7.5 10.5 7.5C12.3409 7.5 13.8333 8.99238 13.8333 10.8333C13.8333 12.6743 12.3409 14.1667 10.5 14.1667C8.65901 14.1667 7.16663 12.6743 7.16663 10.8333Z", fill: "white" }))), h("span", { class: "name" }, this.activeCamera.prettyName), h("span", { class: "icon" }, h("svg", { width: "21", height: "20", viewBox: "0 0 21 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M4.9107 6.91076C5.23614 6.58533 5.76378 6.58533 6.08922 6.91076L10.5 11.3215L14.9107 6.91076C15.2361 6.58533 15.7638 6.58533 16.0892 6.91076C16.4147 7.2362 16.4147 7.76384 16.0892 8.08928L11.0892 13.0893C10.7638 13.4147 10.2361 13.4147 9.9107 13.0893L4.9107 8.08928C4.58527 7.76384 4.58527 7.2362 4.9107 6.91076Z", fill: "white" })))), h("div", { id: "list-background", class: classNames({ visible: this.isListVisible }), onClick: () => this.setListVisibility(false) }), h("div", { class: this.isListVisible ? "list visible" : "list" }, h("ul", null, cameraListElements))));
70
+ }
71
+ static get is() { return "mb-camera-selection"; }
72
+ static get encapsulation() { return "shadow"; }
73
+ static get originalStyleUrls() {
74
+ return {
75
+ "$": ["mb-camera-selection.scss"]
76
+ };
77
+ }
78
+ static get styleUrls() {
79
+ return {
80
+ "$": ["mb-camera-selection.css"]
81
+ };
82
+ }
83
+ static get properties() {
84
+ return {
85
+ "clearIsCameraActive": {
86
+ "type": "boolean",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "boolean",
90
+ "resolved": "boolean",
91
+ "references": {}
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": ""
98
+ },
99
+ "attribute": "clear-is-camera-active",
100
+ "reflect": false,
101
+ "defaultValue": "false"
102
+ }
103
+ };
104
+ }
105
+ static get states() {
106
+ return {
107
+ "activeCamera": {},
108
+ "cameraList": {},
109
+ "isListVisible": {}
110
+ };
111
+ }
112
+ static get events() {
113
+ return [{
114
+ "method": "setIsCameraActive",
115
+ "name": "setIsCameraActive",
116
+ "bubbles": true,
117
+ "cancelable": true,
118
+ "composed": true,
119
+ "docs": {
120
+ "tags": [],
121
+ "text": "Emitted when camera stream becomes active."
122
+ },
123
+ "complexType": {
124
+ "original": "boolean",
125
+ "resolved": "boolean",
126
+ "references": {}
127
+ }
128
+ }, {
129
+ "method": "changeCameraDevice",
130
+ "name": "changeCameraDevice",
131
+ "bubbles": true,
132
+ "cancelable": true,
133
+ "composed": true,
134
+ "docs": {
135
+ "tags": [],
136
+ "text": "Emitted when user selects a different camera device."
137
+ },
138
+ "complexType": {
139
+ "original": "CameraEntry",
140
+ "resolved": "CameraEntry",
141
+ "references": {
142
+ "CameraEntry": {
143
+ "location": "import",
144
+ "path": "../../../utils/data-structures"
145
+ }
146
+ }
147
+ }
148
+ }];
149
+ }
150
+ static get methods() {
151
+ return {
152
+ "setActiveCamera": {
153
+ "complexType": {
154
+ "signature": "(cameraId: string) => Promise<void>",
155
+ "parameters": [{
156
+ "tags": [],
157
+ "text": ""
158
+ }],
159
+ "references": {
160
+ "Promise": {
161
+ "location": "global"
162
+ },
163
+ "CameraEntry": {
164
+ "location": "import",
165
+ "path": "../../../utils/data-structures"
166
+ }
167
+ },
168
+ "return": "Promise<void>"
169
+ },
170
+ "docs": {
171
+ "text": "Change active camera.",
172
+ "tags": []
173
+ }
174
+ },
175
+ "populateCameraDevices": {
176
+ "complexType": {
177
+ "signature": "() => Promise<void>",
178
+ "parameters": [],
179
+ "references": {
180
+ "Promise": {
181
+ "location": "global"
182
+ }
183
+ },
184
+ "return": "Promise<void>"
185
+ },
186
+ "docs": {
187
+ "text": "Populate list of camera devices.",
188
+ "tags": []
189
+ }
190
+ }
191
+ };
192
+ }
193
+ static get elementRef() { return "hostEl"; }
194
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Copyright (c) Microblink Ltd. All rights reserved.
3
+ *
4
+ * SASS variables, not customizable via CSS variables
5
+ */
6
+ /**
7
+ * Camera experiences
8
+ */
9
+ :host {
10
+ position: absolute;
11
+ top: 0;
12
+ left: 0;
13
+ right: 0;
14
+ background-color: rgba(107, 114, 128, 0.7);
15
+ -webkit-backdrop-filter: blur(var(--mb-blur-filter));
16
+ backdrop-filter: blur(var(--mb-blur-filter));
17
+ }
18
+ :host header {
19
+ display: grid;
20
+ grid-template-columns: 1fr auto 1fr;
21
+ height: 44px;
22
+ align-items: center;
23
+ }
24
+ :host .camera-selection-wrapper {
25
+ min-width: 0;
26
+ position: relative;
27
+ }
28
+
29
+ @media only screen and (min-width: 1280px) {
30
+ :host header {
31
+ max-width: 1024px;
32
+ margin: 0 auto;
33
+ padding-left: 0;
34
+ padding-right: 0;
35
+ }
36
+ }
37
+ /**
38
+ * Toolbar buttons
39
+ */
40
+ :host .toolbar-button {
41
+ all: unset;
42
+ flex-shrink: 0;
43
+ -webkit-appearance: none;
44
+ -moz-appearance: none;
45
+ appearance: none;
46
+ cursor: pointer;
47
+ width: 40px;
48
+ height: 40px;
49
+ box-sizing: border-box;
50
+ border-radius: var(--mb-toolbar-border-radius);
51
+ display: grid;
52
+ place-content: center;
53
+ }
54
+ :host .toolbar-button.close-button {
55
+ justify-self: end;
56
+ }
57
+ :host .toolbar-button svg {
58
+ filter: drop-shadow(0px 1px 4px rgba(0, 0, 0, 0.4));
59
+ }
60
+ :host .toolbar-button:hover {
61
+ background-color: rgba(107, 114, 128, 0.3);
62
+ box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1);
63
+ }
64
+ :host .toolbar-button:focus, :host .toolbar-button:active {
65
+ box-shadow: 0 0 0 1px var(--mb-toolbar-border-color);
66
+ }
67
+ :host .flip-button {
68
+ transform-style: preserve-3d;
69
+ perspective: 600px;
70
+ z-index: 1;
71
+ justify-self: flex-start;
72
+ }
73
+ :host .flip-button svg {
74
+ transition: transform 300ms;
75
+ backface-visibility: visible;
76
+ will-change: transform;
77
+ }
78
+ :host .flip-button.flipped svg {
79
+ transform: rotateY(180deg);
80
+ }