@smileid/web-components 11.0.0 → 11.0.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.
- package/README.md +15 -15
- package/dist/README.md +15 -0
- package/dist/components/README.md +14 -0
- package/dist/components/document/src/README.md +111 -0
- package/dist/components/document/src/document-capture/README.md +90 -0
- package/dist/components/document/src/document-capture-instructions/README.md +56 -0
- package/dist/components/document/src/document-capture-review/README.md +79 -0
- package/dist/components/selfie/README.md +225 -0
- package/dist/components/smart-camera-web/src/README.md +207 -0
- package/dist/domain/camera/src/README.md +38 -0
- package/dist/domain/file-upload/README.md +35 -0
- package/dist/esm/{DocumentCaptureScreens-RECPb0wH.js → DocumentCaptureScreens-DmH2JZDA.js} +2 -2
- package/dist/esm/DocumentCaptureScreens-DmH2JZDA.js.map +1 -0
- package/dist/esm/EndUserConsent-D4fd1ovG.js.map +1 -1
- package/dist/esm/Navigation-CTjK6tLU.js.map +1 -1
- package/dist/esm/PoweredBySmileId-CxbaihMu.js.map +1 -1
- package/dist/esm/{SelfieCaptureScreens-CqBVGEJk.js → SelfieCaptureScreens-DbdN2zNk.js} +2 -2
- package/dist/esm/SelfieCaptureScreens-DbdN2zNk.js.map +1 -0
- package/dist/esm/SignaturePad-C7MtmT8m.js.map +1 -1
- package/dist/esm/TotpConsent-CQU5jQi4.js.map +1 -1
- package/dist/esm/combobox.js.map +1 -1
- package/dist/esm/document.js +1 -1
- package/dist/esm/main.js +2 -2
- package/dist/esm/{package-BDJnoIAU.js → package-bgeQiff6.js} +2 -2
- package/dist/esm/package-bgeQiff6.js.map +1 -0
- package/dist/esm/selfie.js +1 -1
- package/dist/esm/smart-camera-web.js +3 -3
- package/dist/esm/smart-camera-web.js.map +1 -1
- package/dist/esm/styles-BOEZtbuc.js.map +1 -1
- package/dist/package-lock.json +4948 -0
- package/dist/package.json +59 -0
- package/dist/smart-camera-web.js +1 -1
- package/dist/smart-camera-web.js.gz +0 -0
- package/dist/smart-camera-web.js.map +1 -1
- package/dist/src/components/combobox/src/index.js +2 -0
- package/dist/src/components/combobox/src/index.js.map +7 -0
- package/dist/src/components/document/src/index.js +2 -0
- package/dist/src/components/document/src/index.js.map +7 -0
- package/dist/src/components/end-user-consent/src/index.js +14 -0
- package/dist/src/components/end-user-consent/src/index.js.map +7 -0
- package/dist/src/components/selfie/src/index.js +2 -0
- package/dist/src/components/selfie/src/index.js.map +7 -0
- package/dist/src/components/signature-pad/src/index.js +10 -0
- package/dist/src/components/signature-pad/src/index.js.map +7 -0
- package/dist/src/components/smart-camera-web/src/SmartCameraWeb.js +2 -0
- package/dist/src/components/smart-camera-web/src/SmartCameraWeb.js.map +7 -0
- package/dist/src/components/totp-consent/src/index.js +14 -0
- package/dist/src/components/totp-consent/src/index.js.map +7 -0
- package/dist/src/index.js.map +7 -0
- package/dist/styles/README.md +3 -0
- package/dist/types/combobox.d.ts +19 -19
- package/dist/types/document.d.ts +19 -19
- package/dist/types/end-user-consent.d.ts +19 -19
- package/dist/types/main.d.ts +24 -20
- package/dist/types/navigation.d.ts +19 -19
- package/dist/types/selfie.d.ts +19 -19
- package/dist/types/signature-pad.d.ts +19 -19
- package/dist/types/smart-camera-web.d.ts +19 -19
- package/dist/types/totp-consent.d.ts +19 -19
- package/lib/components/README.md +14 -14
- package/lib/components/attribution/PoweredBySmileId.js +42 -42
- package/lib/components/camera-permission/CameraPermission.js +139 -139
- package/lib/components/camera-permission/CameraPermission.stories.js +27 -27
- package/lib/components/combobox/src/Combobox.js +589 -589
- package/lib/components/combobox/src/index.js +1 -1
- package/lib/components/document/src/DocumentCaptureScreens.js +410 -410
- package/lib/components/document/src/DocumentCaptureScreens.stories.js +57 -57
- package/lib/components/document/src/README.md +111 -111
- package/lib/components/document/src/document-capture/DocumentCapture.js +760 -760
- package/lib/components/document/src/document-capture/DocumentCapture.stories.js +78 -78
- package/lib/components/document/src/document-capture/README.md +90 -90
- package/lib/components/document/src/document-capture/index.js +3 -3
- package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js +545 -545
- package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.stories.js +24 -24
- package/lib/components/document/src/document-capture-instructions/README.md +56 -56
- package/lib/components/document/src/document-capture-instructions/index.js +3 -3
- package/lib/components/document/src/document-capture-review/DocumentCaptureReview.js +360 -360
- package/lib/components/document/src/document-capture-review/DocumentCaptureReview.stories.js +24 -24
- package/lib/components/document/src/document-capture-review/README.md +79 -79
- package/lib/components/document/src/document-capture-review/index.js +3 -3
- package/lib/components/document/src/index.js +3 -3
- package/lib/components/end-user-consent/src/EndUserConsent.js +795 -795
- package/lib/components/end-user-consent/src/EndUserConsent.stories.js +29 -29
- package/lib/components/end-user-consent/src/index.js +4 -4
- package/lib/components/navigation/src/Navigation.js +171 -171
- package/lib/components/navigation/src/Navigation.stories.js +24 -24
- package/lib/components/navigation/src/index.js +3 -3
- package/lib/components/selfie/README.md +225 -225
- package/lib/components/selfie/src/SelfieCaptureScreens.js +420 -420
- package/lib/components/selfie/src/SelfieCaptureScreens.stories.js +29 -29
- package/lib/components/selfie/src/index.js +3 -3
- package/lib/components/selfie/src/selfie-capture/SelfieCapture.js +1099 -1099
- package/lib/components/selfie/src/selfie-capture/SelfieCapture.stories.js +36 -36
- package/lib/components/selfie/src/selfie-capture/index.js +3 -3
- package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js +689 -689
- package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.stories.js +23 -23
- package/lib/components/selfie/src/selfie-capture-instructions/index.js +3 -3
- package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js +209 -209
- package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.stories.js +24 -24
- package/lib/components/selfie/src/selfie-capture-review/index.js +3 -3
- package/lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx +256 -256
- package/lib/components/selfie/src/selfie-capture-wrapper/index.ts +1 -1
- package/lib/components/selfie/src/smartselfie-capture/OvalProgress.tsx +81 -81
- package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx +265 -265
- package/lib/components/selfie/src/smartselfie-capture/components/AlertDisplay.tsx +34 -34
- package/lib/components/selfie/src/smartselfie-capture/components/CameraPreview.tsx +97 -97
- package/lib/components/selfie/src/smartselfie-capture/components/CaptureControls.tsx +78 -78
- package/lib/components/selfie/src/smartselfie-capture/components/index.ts +3 -3
- package/lib/components/selfie/src/smartselfie-capture/constants.ts +23 -23
- package/lib/components/selfie/src/smartselfie-capture/hooks/index.ts +2 -2
- package/lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts +238 -238
- package/lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts +618 -618
- package/lib/components/selfie/src/smartselfie-capture/index.ts +1 -1
- package/lib/components/selfie/src/smartselfie-capture/utils/alertMessages.ts +13 -13
- package/lib/components/selfie/src/smartselfie-capture/utils/canvas.ts +105 -105
- package/lib/components/selfie/src/smartselfie-capture/utils/faceDetection.ts +129 -129
- package/lib/components/selfie/src/smartselfie-capture/utils/imageCapture.ts +64 -64
- package/lib/components/selfie/src/smartselfie-capture/utils/index.ts +4 -4
- package/lib/components/selfie/src/smartselfie-capture/utils/mediapipeManager.ts +77 -77
- package/lib/components/signature-pad/package-lock.json +3009 -3009
- package/lib/components/signature-pad/package.json +30 -30
- package/lib/components/signature-pad/src/SignaturePad.js +484 -484
- package/lib/components/signature-pad/src/SignaturePad.stories.js +32 -32
- package/lib/components/signature-pad/src/index.js +3 -3
- package/lib/components/smart-camera-web/src/README.md +206 -206
- package/lib/components/smart-camera-web/src/SmartCameraWeb.js +305 -305
- package/lib/components/smart-camera-web/src/SmartCameraWeb.stories.js +57 -57
- package/lib/components/totp-consent/src/TotpConsent.js +949 -949
- package/lib/components/totp-consent/src/index.js +4 -4
- package/lib/domain/camera/src/README.md +38 -38
- package/lib/domain/camera/src/SmartCamera.js +109 -109
- package/lib/domain/constants/src/Constants.js +27 -27
- package/lib/domain/file-upload/README.md +35 -35
- package/lib/domain/file-upload/src/SmartFileUpload.js +65 -65
- package/lib/styles/README.md +3 -3
- package/lib/styles/src/styles.js +372 -372
- package/lib/styles/src/typography.js +52 -52
- package/package.json +111 -112
- package/dist/esm/DocumentCaptureScreens-RECPb0wH.js.map +0 -1
- package/dist/esm/SelfieCaptureScreens-CqBVGEJk.js.map +0 -1
- package/dist/esm/package-BDJnoIAU.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# Instructions
|
|
2
|
-
|
|
3
|
-
These components can be used to capture id document or liveness images
|
|
4
|
-
|
|
5
|
-
1. [`smart-camera-web`](./components/smart-camera-web/src/)
|
|
6
|
-
2. [`document-capture-screens`](./components/document/src/README.md)
|
|
7
|
-
3. [`selfie-capture-screens`](./components/selfie/README.md)
|
|
8
|
-
|
|
9
|
-
## Orchestration
|
|
10
|
-
|
|
11
|
-
To build your own flow, we have several components that can be used together.
|
|
12
|
-
|
|
13
|
-
### document-capture-instructions
|
|
14
|
-
|
|
15
|
-
This is the screen used to instruct the user how to capture document using both the camera and/or upload.
|
|
1
|
+
# Instructions
|
|
2
|
+
|
|
3
|
+
These components can be used to capture id document or liveness images
|
|
4
|
+
|
|
5
|
+
1. [`smart-camera-web`](./components/smart-camera-web/src/)
|
|
6
|
+
2. [`document-capture-screens`](./components/document/src/README.md)
|
|
7
|
+
3. [`selfie-capture-screens`](./components/selfie/README.md)
|
|
8
|
+
|
|
9
|
+
## Orchestration
|
|
10
|
+
|
|
11
|
+
To build your own flow, we have several components that can be used together.
|
|
12
|
+
|
|
13
|
+
### document-capture-instructions
|
|
14
|
+
|
|
15
|
+
This is the screen used to instruct the user how to capture document using both the camera and/or upload.
|
package/dist/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Instructions
|
|
2
|
+
|
|
3
|
+
These components can be used to capture id document or liveness images
|
|
4
|
+
|
|
5
|
+
1. [`smart-camera-web`](./components/smart-camera-web/src/)
|
|
6
|
+
2. [`document-capture-screens`](./components/document/src/README.md)
|
|
7
|
+
3. [`selfie-capture-screens`](./components/selfie/README.md)
|
|
8
|
+
|
|
9
|
+
## Orchestration
|
|
10
|
+
|
|
11
|
+
To build your own flow, we have several components that can be used together
|
|
12
|
+
|
|
13
|
+
### document-capture-instructions
|
|
14
|
+
|
|
15
|
+
This is the screen used to instruct the user how to capture document using both the camera and/or upload.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Instructions
|
|
2
|
+
|
|
3
|
+
These components can be used to capture id document or liveness images
|
|
4
|
+
|
|
5
|
+
1. [`document-capture-screens`](./document/src/README.md)
|
|
6
|
+
2. [`selfie-capture-screens`](./selfie/README.md)
|
|
7
|
+
|
|
8
|
+
## Orchestration
|
|
9
|
+
|
|
10
|
+
To build your own flow, we have several components that can be used together
|
|
11
|
+
|
|
12
|
+
### document-capture-instructions
|
|
13
|
+
|
|
14
|
+
This is the screen used to instruct the user how to capture document using both the camera and/or upload.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# DocumentCapture Web Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The `DocumentCaptureScreens` is a bespoke web component designed for capturing document images using a camera. It leverages the `SmartCamera` module for camera interaction and permission management.
|
|
6
|
+
This component contains the flow for capturing both front and the back of id documents.
|
|
7
|
+
|
|
8
|
+
### Importing the Component
|
|
9
|
+
|
|
10
|
+
To utilize the `DocumentCaptureScreens` component within your project, import it into your JavaScript file as follows:
|
|
11
|
+
|
|
12
|
+
```js
|
|
13
|
+
import '@smileid/components/document-capture';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Using the Component
|
|
17
|
+
|
|
18
|
+
The DocumentCapture component can be embedded in your HTML similarly to any standard HTML element:
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<document-capture-screens></document-capture-screens>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Attributes
|
|
25
|
+
|
|
26
|
+
Customize the component's behavior with the following attributes:
|
|
27
|
+
|
|
28
|
+
#### `hide-instructions`
|
|
29
|
+
|
|
30
|
+
Omits the capture instructions. This attribute is boolean and does not require a value.
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<document-capture-screens hide-instructions></document-capture-screens>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
#### `hide-back-of-id`
|
|
37
|
+
|
|
38
|
+
Excludes the option to capture the ID's back side. This attribute is boolean.
|
|
39
|
+
|
|
40
|
+
```html
|
|
41
|
+
<document-capture-screens hide-back-of-id></document-capture-screens>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### `show-navigation`
|
|
45
|
+
|
|
46
|
+
Displays navigation controls for the capture process. This attribute is boolean.
|
|
47
|
+
|
|
48
|
+
```html
|
|
49
|
+
<document-capture-screens show-navigation></document-capture-screens>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### `document-capture-modes`
|
|
53
|
+
|
|
54
|
+
Specifies the capture modes, accepting `camera`, `upload`, or both. Value required.
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<document-capture-screens
|
|
58
|
+
document-capture-modes="camera,upload"
|
|
59
|
+
></document-capture-screens>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Permissions
|
|
63
|
+
|
|
64
|
+
Camera permissions are essential for functionality. The component requests permissions automatically. Upon granting, `data-camera-ready` is set to true, and `data-camera-error` is removed. Denied permissions result in `data-camera-error` being set with an error message.
|
|
65
|
+
|
|
66
|
+
For manual permission handling, appropriately set `data-camera-ready` and `data-camera-error`.
|
|
67
|
+
|
|
68
|
+
### Error Handling
|
|
69
|
+
|
|
70
|
+
Errors during permission requests or document capture are managed by the component, setting `data-camera-error` with the respective error message.
|
|
71
|
+
|
|
72
|
+
### Event Handlers
|
|
73
|
+
|
|
74
|
+
Capture events emit `document-capture-screens.publish`, providing captured images and metadata:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"detail": {
|
|
79
|
+
"images": [{ "image": "base64-encoded image", "image_type_id": "" }],
|
|
80
|
+
"meta": {
|
|
81
|
+
"version": "library version"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
To handle this event:
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
document
|
|
91
|
+
.querySelector('document-capture-screens')
|
|
92
|
+
.addEventListener('document-capture-screens.publish', function (event) {
|
|
93
|
+
console.log(event.detail);
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Dependencies
|
|
98
|
+
|
|
99
|
+
`DocumentCaptureScreens` relies on the following modules:
|
|
100
|
+
|
|
101
|
+
- [document-capture-instructions](./document-capture-instructions/README.md)
|
|
102
|
+
- [document-capture](./document-capture/README.md)
|
|
103
|
+
- [document-capture-review](./document-capture-review/README.md)
|
|
104
|
+
- [SmartCamera](../../../domain/camera/src/README.md)
|
|
105
|
+
- [FileUpload](../../../domain/file-upload/README.md)
|
|
106
|
+
|
|
107
|
+
These dependencies are automatically imported with the component.
|
|
108
|
+
|
|
109
|
+
### Compatibility
|
|
110
|
+
|
|
111
|
+
Designed for modern browsers supporting custom web components, with specific enhancements for multi-camera Samsung devices to prevent blurry image edges. Report compatibility issues with other devices to our support team.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# IdCapture Web Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The `IdCapture` is a custom web component designed to capture documents using a camera. It uses the `SmartCamera` module to interact with the device's camera and handle permissions.
|
|
6
|
+
|
|
7
|
+
### Importing the Component
|
|
8
|
+
|
|
9
|
+
To use the IdCapture component, you need to import it into your JavaScript file:
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import '@smileid/components/document-capture';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Using the Component
|
|
16
|
+
|
|
17
|
+
You can use the IdCapture component in your HTML like any other HTML element:
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<document-capture></document-capture>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### IdCapture Web Component Attributes
|
|
24
|
+
|
|
25
|
+
You can use a mixture of the following attributes to configure the behavior of the component.
|
|
26
|
+
|
|
27
|
+
#### hide-back-of-id
|
|
28
|
+
|
|
29
|
+
This attribute, when present, hides the option to capture the back of the ID. It does not require a value.
|
|
30
|
+
|
|
31
|
+
Usage:
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<document-capture hide-back-of-id></document-capture>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### show-navigation
|
|
38
|
+
|
|
39
|
+
This attribute, when present, shows the navigation controls for the document capture process. It does not require a value.
|
|
40
|
+
|
|
41
|
+
Usage:
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<document-capture show-navigation></document-capture>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Permissions
|
|
48
|
+
|
|
49
|
+
The `IdCapture` component requires camera permissions to function. It will automatically request these permissions when used. If the permissions are granted, it will remove the `data-camera-error` attribute from the capture screen and set the `data-camera-ready` attribute to true. If the permissions are denied, it will remove the `data-camera-ready` attribute and set the `data-camera-error` attribute with the error message.
|
|
50
|
+
|
|
51
|
+
If you handle the permissions yourself, make sure to set `data-camera-ready` and `data-camera-error` appropriately.
|
|
52
|
+
|
|
53
|
+
### Error Handling
|
|
54
|
+
|
|
55
|
+
If there is an error while requesting permissions or capturing the document, the `IdCapture` component will handle it and set the `data-camera-error` attribute with the error message.
|
|
56
|
+
|
|
57
|
+
### Event Handlers
|
|
58
|
+
|
|
59
|
+
To receive the images after they have been captured, you can listen to the custom event `document-capture.publish`. The data posted to this event has the structure:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"detail": {
|
|
64
|
+
"image": "base64 image",
|
|
65
|
+
"previewImage": "base64 image"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Usage:
|
|
71
|
+
|
|
72
|
+
```js
|
|
73
|
+
document
|
|
74
|
+
.querySelector('document-capture')
|
|
75
|
+
.addEventListener('document-capture.publish', function (event) {
|
|
76
|
+
console.log(event.detail);
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Dependencies
|
|
81
|
+
|
|
82
|
+
The `DocumentCapture` component depends on the following module:
|
|
83
|
+
|
|
84
|
+
- [SmartCamera](../../../../domain/camera/src/README.md)
|
|
85
|
+
|
|
86
|
+
This module is imported when you use the `DocumentCapture` component in your projects.
|
|
87
|
+
|
|
88
|
+
### Compatibility
|
|
89
|
+
|
|
90
|
+
The IdCapture component is designed to work on all modern browsers that support custom web components. However, it includes a special case for multi-camera Samsung devices to mitigate blurry images at the edges. Please report any issues found on other devices to our support team.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Document Instruction Web Component Guide
|
|
2
|
+
|
|
3
|
+
## Importing the Component
|
|
4
|
+
|
|
5
|
+
To incorporate the DocumentInstruction component into your project, import it into your JavaScript file as follows:
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
import '@smileid/document-capture/document-capture-instructions';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Using the Component
|
|
12
|
+
|
|
13
|
+
The `DocumentInstruction` component is designed to provide users with guidance for capturing document images. It can be integrated into your web page as a custom HTML element:
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<document-capture-instructions></document-capture-instructions>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Customizing the Component
|
|
20
|
+
|
|
21
|
+
Adjust the component's behavior and appearance using the following attributes:
|
|
22
|
+
|
|
23
|
+
#### `show-navigation`
|
|
24
|
+
|
|
25
|
+
Displays navigation controls, facilitating user interaction during the document capture process. This attribute is boolean and does not require a value.
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<document-capture-instructions show-navigation></document-capture-instructions>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
#### `document-capture-modes`
|
|
32
|
+
|
|
33
|
+
Determines the available modes for document capture. This attribute accepts a comma-separated string specifying the modes:
|
|
34
|
+
|
|
35
|
+
- `camera`: Enables capturing document images using the camera.
|
|
36
|
+
- `upload`: Allows uploading document images from the device.
|
|
37
|
+
- `camera,upload`: Offers users a choice between capturing images using the camera or uploading from the device.
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<document-capture-instructions
|
|
41
|
+
document-capture-modes="camera,upload"
|
|
42
|
+
></document-capture-instructions>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Example
|
|
46
|
+
|
|
47
|
+
Here is a complete example demonstrating how to embed the `DocumentInstruction` component with navigation controls and both capture modes enabled:
|
|
48
|
+
|
|
49
|
+
```html
|
|
50
|
+
<document-capture-instructions
|
|
51
|
+
show-navigation
|
|
52
|
+
document-capture-modes="camera,upload"
|
|
53
|
+
></document-capture-instructions>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This setup provides an intuitive interface for users, enabling them to receive instructions, navigate through the capture process, and choose their preferred method of document image submission.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# DocumentCaptureReview Web Component
|
|
2
|
+
|
|
3
|
+
The `DocumentCaptureReview` component is designed to facilitate user interaction by allowing them to review and verify the accuracy of captured images. Users have the option to accept the captured image or initiate a recapture if necessary.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
To integrate the `DocumentCaptureReview` component into your web application, insert the custom HTML tag as follows, specifying attributes for the captured image data and optional features like navigation controls:
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<document-capture-review
|
|
11
|
+
data-image="base64image"
|
|
12
|
+
show-navigation
|
|
13
|
+
hide-back-to-host
|
|
14
|
+
></document-capture-review>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Attributes
|
|
18
|
+
|
|
19
|
+
- `data-image`: A base64 encoded string of the captured image to be reviewed.
|
|
20
|
+
- `show-navigation`: (Optional) Shows navigation controls for the review process. This attribute is boolean and does not require a value.
|
|
21
|
+
- `hide-back-to-host`: (Optional) Hides the option to return to the host application or page. This attribute is boolean and does not require a value.
|
|
22
|
+
|
|
23
|
+
## Event Handling
|
|
24
|
+
|
|
25
|
+
### Image Acceptance
|
|
26
|
+
|
|
27
|
+
When a user confirms the captured image as acceptable, the `document-capture-review.accepted` event is emitted. Implement an event listener to handle this action:
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
document
|
|
31
|
+
.querySelector('document-capture-review')
|
|
32
|
+
.addEventListener('document-capture-review.accepted', function (event) {
|
|
33
|
+
// Handle the image acceptance action here
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Recapture Request
|
|
38
|
+
|
|
39
|
+
If the user decides to recapture the image, the `document-capture-review.rejected` event is triggered. Set up an event listener to manage this scenario:
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
document
|
|
43
|
+
.querySelector('document-capture-review')
|
|
44
|
+
.addEventListener('document-capture-review.rejected', function (event) {
|
|
45
|
+
// Handle the recapture request here
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Example
|
|
50
|
+
|
|
51
|
+
Below is a sample implementation showcasing how to use the `IdReview` component with an event listener for both accepting an image and requesting a recapture:
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<document-capture-review
|
|
55
|
+
data-image="base64image"
|
|
56
|
+
show-navigation
|
|
57
|
+
hide-back-to-host
|
|
58
|
+
></document-capture-review>
|
|
59
|
+
|
|
60
|
+
<script>
|
|
61
|
+
const idReviewElement = document.querySelector('document-capture-review');
|
|
62
|
+
|
|
63
|
+
idReviewElement.addEventListener(
|
|
64
|
+
'document-capture-review.accepted',
|
|
65
|
+
function (event) {
|
|
66
|
+
console.log('Image accepted by the user.');
|
|
67
|
+
// Additional logic for accepted image
|
|
68
|
+
},
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
idReviewElement.addEventListener(
|
|
72
|
+
'document-capture-review.rejected',
|
|
73
|
+
function (event) {
|
|
74
|
+
console.log('User requested to recapture the image.');
|
|
75
|
+
// Additional logic for image recapture
|
|
76
|
+
},
|
|
77
|
+
);
|
|
78
|
+
</script>
|
|
79
|
+
```
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# SelfieCaptureScreens Web Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The `SelfieCaptureScreens` is a custom web component designed to capture selfies and liveness images using a camera. It uses the `SmartCamera` module to interact with the device's camera and handle permissions.
|
|
6
|
+
|
|
7
|
+
### Importing the Component
|
|
8
|
+
|
|
9
|
+
To use the SelfieCaptureScreens component, you need to import it into your JavaScript file:
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import '@smileid/web-components/selfie-capture-screens';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Using the Component
|
|
16
|
+
|
|
17
|
+
You can use the SelfieCaptureScreens component in your HTML like any other HTML element:
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<selfie-capture-screens></selfie-capture-screens>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### SelfieCaptureScreens Web Component Attributes
|
|
24
|
+
|
|
25
|
+
You can use a mixture of the following attributes to configure the behavior of the component.
|
|
26
|
+
|
|
27
|
+
#### hide-instructions
|
|
28
|
+
|
|
29
|
+
This attribute, when present, hides the instructions for the liveness capture process. It does not require a value.
|
|
30
|
+
|
|
31
|
+
Usage:
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<selfie-capture-screens hide-instructions></selfie-capture-screens>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### show-navigation
|
|
38
|
+
|
|
39
|
+
This attribute, when present, shows the navigation controls for the liveness capture process. It does not require a value.
|
|
40
|
+
|
|
41
|
+
Usage:
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<selfie-capture-screens show-navigation></selfie-capture-screens>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Permissions
|
|
48
|
+
|
|
49
|
+
The `SelfieCaptureScreens` component requires camera permissions to function. It will automatically request these permissions when used. If the permissions are granted, it will remove the `data-camera-error` attribute from the capture screen and set the `data-camera-ready` attribute to true. If the permissions are denied, it will remove the `data-camera-ready` attribute and set the `data-camera-error` attribute with the error message.
|
|
50
|
+
|
|
51
|
+
If you handle the permissions yourself, make sure to set `data-camera-ready` and `data-camera-error` appropriately.
|
|
52
|
+
|
|
53
|
+
### Error Handling
|
|
54
|
+
|
|
55
|
+
If there is an error while requesting permissions or capturing the images, the `SelfieCaptureScreens` component will handle it and set the `data-camera-error` attribute with the error message.
|
|
56
|
+
|
|
57
|
+
### Event Handlers
|
|
58
|
+
|
|
59
|
+
To receive the images after they have been captured, you can listen to the custom event `selfie-capture-screens.publish`. The data posted to this event has the structure:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"detail": {
|
|
64
|
+
"images": [{ "image": "base64 image", "image_type_id": "" }],
|
|
65
|
+
"meta": {
|
|
66
|
+
"version": "version of the library in use"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Usage:
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
document
|
|
76
|
+
.querySelector('selfie-capture-screens')
|
|
77
|
+
.addEventListener('selfie-capture-screens.publish', function (event) {
|
|
78
|
+
console.log(event.detail);
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Dependencies
|
|
83
|
+
|
|
84
|
+
The `SelfieCaptureScreens` component depends on the following modules:
|
|
85
|
+
|
|
86
|
+
- [selfie-capture](#selfiecapture-web-component)
|
|
87
|
+
- [selfie-capture-review](#selfiecapturereview-web-component)
|
|
88
|
+
- [Selfie-instructions](#selfiecaptureinstructions-web-component)
|
|
89
|
+
- [SmartCamera](../../domain/camera/src/README.md)
|
|
90
|
+
|
|
91
|
+
These modules are imported when you use the `SelfieCaptureScreens` component in your projects.
|
|
92
|
+
|
|
93
|
+
### SelfieCaptureInstructions Web Component
|
|
94
|
+
|
|
95
|
+
#### Overview
|
|
96
|
+
|
|
97
|
+
The `SelfieCaptureInstructions` is a custom web component designed to show an instruction on how to capture a clear selfie image.
|
|
98
|
+
|
|
99
|
+
#### Importing the SelfieCaptureInstructions Component
|
|
100
|
+
|
|
101
|
+
To use the SelfieCaptureInstructions component, you need to import it into your JavaScript file:
|
|
102
|
+
|
|
103
|
+
```js
|
|
104
|
+
import '@smileid/web-components/selfie-capture-instructions';
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### show-navigation
|
|
108
|
+
|
|
109
|
+
This attribute, when present, shows the navigation controls for the document capture process. It does not require a value.
|
|
110
|
+
|
|
111
|
+
Usage:
|
|
112
|
+
|
|
113
|
+
```html
|
|
114
|
+
<selfie-capture-instructions show-navigation></selfie-capture-instructions>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### SelfieCapture Web Component
|
|
118
|
+
|
|
119
|
+
#### Overview
|
|
120
|
+
|
|
121
|
+
The `SelfieCapture` is a custom web component designed to capture selfies and liveness images using a camera. It uses the `SmartCamera` module to interact with the device's camera and handle permissions.
|
|
122
|
+
|
|
123
|
+
#### Importing the SelfieCapture Component
|
|
124
|
+
|
|
125
|
+
To use the SelfieCapture component, you need to import it into your JavaScript file:
|
|
126
|
+
|
|
127
|
+
```js
|
|
128
|
+
import '@smileid/web-components/selfie-capture';
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Using the SelfieCapture Component
|
|
132
|
+
|
|
133
|
+
You can use the SelfieCapture component in your HTML like any other HTML element:
|
|
134
|
+
|
|
135
|
+
```html
|
|
136
|
+
<selfie-capture></selfie-capture>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### SelfieCapture Web Component Attributes
|
|
140
|
+
|
|
141
|
+
You can use a mixture of the following attributes to configure the behavior of the component.
|
|
142
|
+
|
|
143
|
+
#### show-navigation
|
|
144
|
+
|
|
145
|
+
This attribute, when present, shows the navigation controls for the document capture process. It does not require a value.
|
|
146
|
+
|
|
147
|
+
Usage:
|
|
148
|
+
|
|
149
|
+
```html
|
|
150
|
+
<selfie-capture show-navigation></selfie-capture>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Permissions
|
|
154
|
+
|
|
155
|
+
The `SelfieCapture` component requires camera permissions to function. It will automatically request these permissions when used. If the permissions are granted, it will remove the `data-camera-error` attribute from the capture screen and set the `data-camera-ready` attribute to true. If the permissions are denied, it will remove the `data-camera-ready` attribute and set the `data-camera-error` attribute with the error message.
|
|
156
|
+
|
|
157
|
+
If you handle the permissions yourself, make sure to set `data-camera-ready` and `data-camera-error` appropriately.
|
|
158
|
+
|
|
159
|
+
### Error Handling
|
|
160
|
+
|
|
161
|
+
If there is an error while requesting permissions or capturing the images, the `SelfieCapture` component will handle it and set the `data-camera-error` attribute with the error message.
|
|
162
|
+
|
|
163
|
+
### Event Handlers
|
|
164
|
+
|
|
165
|
+
To receive the images after they have been captured, you can listen to the custom event `selfie-capture.publish`. The data posted to this event has the structure:
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"detail": {
|
|
170
|
+
"images": [
|
|
171
|
+
{"image": "
|
|
172
|
+
|
|
173
|
+
base64 image", "image_type_id": ""}
|
|
174
|
+
],
|
|
175
|
+
"meta": {
|
|
176
|
+
"version": "version of the library in use"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Usage:
|
|
183
|
+
|
|
184
|
+
```js
|
|
185
|
+
document
|
|
186
|
+
.querySelector('selfie-capture')
|
|
187
|
+
.addEventListener('selfie-capture.publish', function (event) {
|
|
188
|
+
console.log(event.detail);
|
|
189
|
+
});
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### SelfieCaptureReview Web Component
|
|
193
|
+
|
|
194
|
+
This component is used to allow the user to verify the accuracy of the capture.
|
|
195
|
+
The user can choose to use the captured image or recapture a new selfie.
|
|
196
|
+
|
|
197
|
+
Usage:
|
|
198
|
+
|
|
199
|
+
```html
|
|
200
|
+
<selfie-capture-review
|
|
201
|
+
data-image="base64 image"
|
|
202
|
+
show-navigation
|
|
203
|
+
hide-back-to-host
|
|
204
|
+
></selfie-capture-review>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
When a user accepts an image, an event is triggered as shown below:
|
|
208
|
+
|
|
209
|
+
```js
|
|
210
|
+
document
|
|
211
|
+
.querySelector('selfie-capture-review')
|
|
212
|
+
.addEventListener('selfie-capture-review.accepted', function (event) {});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
When a user wants to recapture a selfie, an event is triggered as shown below:
|
|
216
|
+
|
|
217
|
+
```js
|
|
218
|
+
document
|
|
219
|
+
.querySelector('selfie-capture-review')
|
|
220
|
+
.addEventListener('selfie-capture-review.rejected', function (event) {});
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Compatibility
|
|
224
|
+
|
|
225
|
+
The SelfieCaptureScreens component is designed to work on all modern browsers that support custom web components. However, it includes a special case for multi-camera Samsung devices to mitigate blurry images at the edges. Please report any issues found on other devices to our support team.
|