npm package: @idscan/idvc
Description: component for the capturing documents
Author: IDScan.net
Latest version: 1.12.25

## Overview

Upon being switched on, the library integrates the component of capturing the documents and faces from a video to your page.

## Use cases

- Capture and determination of the document type
- Capture of pdf417
- Capture of MRZ
- Capture of faces

## Recommendations

Use a modern phone with a good camera having the definition of not less than 8 megapixels.
The capture must be made in a well-lighted room. A document must be located at the uniform background.

## Limitations

This component works in phones with the operating system Android in the browser Chrome (minimum version 52) and in phones with the operating system iOS (minimum version 11) in the browser Safari

## Installation

```
$ npm install @idscan/idvc
```

This component contains JS, CSS files which require the mandatory import into your project.

1. Before importing it is necessary to set the webpack-configuration.

*Note: The project must use the webpack 4 and later versions.*

1.1. Add the following rules of loading to the field rules
```javascript
{
	test: /\.css$/,
	use: ["style-loader", "css-loader"]
}
```

1.2. If you prefer to use neural networks from your domain, you should add the &#39;CopyWebpackPlugin&#39; into the section &#39;plugins&#39; which will copy the files, which are necessary for the work of the neural network, from the folder to another folder that should be selected by you.

*Note: The structure inside the folder of the component &#39;networks&#39; must be saved on the server with due regard to the nesting.
There are binary files in the folder which do not have the extension. These files must be provided by the server with the header `Content-Type: application/octet-stream`.*
```javascript
new CopyWebpackPlugin ([
	{
    	from: 'node_modules/@idscan/idvc/dist/networks/**/*',
    	to: 'networks/[folder]/[name].[ext]',
    	toType: 'template'
	}
])
```

1.3. Import the library and css to your project.

```javascript
import IDVC from '@idscan/idvc'
import  '@idscan/idvc/dist/css/idvc.css'

```

## Configuration
Configuration documentation you can find on our [site](https://docs.idscan.net/dvs/dvs-web-api/web-library-v1.html).

*Note: Request an license key for the library by emailing
 [sales@idscan.net](mailto:sales@idscan.net) or [support@idscan.net](mailto:support@idscan.net)*

## Version history

- **1.12.25**
  - fixed: turning on the selfie camera instead of the back one on iPhones

- **1.12.24**
  - some minor updates

- **1.12.23**
  - fixed "strictAllowedTypes" behavior when type isn't detected

- **1.12.22**
  - some improvements

- **1.12.21**
  - fixed gray mask size
  - fixed the "Back Scan" step disappearing on the "Front" step retaking

- **1.12.20**
  - fixed and changed behavior by configuration with described one document type 

- **1.12.19**
  - changed default options descriptions
  
- **1.12.18**
  - changed options descriptions

- **1.12.17**
  - added: onMounted callback

- **1.12.16**
  - added: possibility to change a document type during the document processing

- **1.12.15**
  - fixed: capture mask console output
  - improved back step filtering behaviour

- **1.12.14**
  - fixed: capture mask resize

- **1.12.13**
  - fixed: angular app resize and rotate image

- **1.12.12**
  - fixed: desktop type select styles
  - fixed: fixFrontOrientAfterUpload

- **1.12.11**
  - changed capture frame
  - changed success progress
  - performance improvement
  - changed hint behaviour
  - added message box

- **1.12.10**
  - Some infrastructure improvements

- **1.12.9**
  - Some infrastructure improvements

- **1.12.8**
  - Added: type declaration

- **1.12.7**
  - Fixed: not disappeared loader on reset all steps by manual upload

- **1.12.6**
  - Added new modules available via CDN

- **1.12.5**
  - improved iOs camera start

- **1.12.3**
  - Fixed: automatic call of the submit callback if the submit button is disabled

- **1.12.2**
  - Fixed: no video output on Safari 15
  - Fixed: global isShowManualSwitchButton
  - improved speed of library initialization
  - changed images
  - added: strictAllowedTypes config option

- **1.12.1**
  - Fixed: neural networks path

- **1.12.0**
  - Added: the ability to use CDN
  - BREAKING CHANGE: neural networks names are changed. Check out you don't forget to rebuild your app
  - Added: config validation
  - ALl colors are moved to CSS custom properties
  - All colors are standardized

- **1.11.12**
  - Deprecated: enableMobileLimitation
  - Added: check if a browser supports work with media devices

- **1.11.11**
  - Fixed: iPhone memory leak 
  - Fixed: browser support 

- **1.11.10**
  - Fixed: Windows surface support
  
- **1.11.9**
  - Fixed: On iOS devices was a black screen on the second step
  
- **1.11.8**
  - Changed: On iOS devices version 12 and below, simplified face capture is now used  
  
- **1.11.7**
  - Changed: isShowManualSwitchButton can be setted in a step 
  
- **1.11.6**
  - Changed: new version of PDF reader
  
- **1.11.5**
  - Added: onRetakeHook callback function
  
- **1.11.4**
  - Changed: the tapOnVideo option is set to false as default value

- **1.11.3**
  - Changed: isShowManualSwitchButton can accept an object instead of a boolean
  
- **1.11.1**
  - Added: barcode step
  - Added: option display parsed data      

- **1.10.4**
  - Added: metadata field
  - Added: get user location
  - Added: send base64 encoded metadata

- **1.10.3**
  - Fixed: reload component method

- **1.10.2**
  - Fixed: 3D faces crashed on iPhone
    
- **1.10.1**
  - Fixed: Models for 3D faces were loaded from tf hub and Google Storage. Now all models are stored inside the package
    Note: you’ll need to rebuild your app
  
- **1.10.0**
    - Added: Option "parseMRZ" - if it is enabled, the captured MRZ lines are converted into the parsed document fields. Thus on-server parsing won’t be necessary. MRZ is captured automatically, after which the parsedData object is available
    - Added: Message "MRZ not recognized" during the "MRZ" step (or "Front" when the document requires presense of MRZ lines) the validity of MRZ is valid.
    
    Note: you’ll need to request a new license key since the new version will not work with the old one.

- **1.9.18**
  - Added: New method showSpinner. Accepts the boolean value "true" or "false" as input.
  
- **1.9.17**
  - Fixed: 3D face capture mode was enabled in document face capture mode
  
- **1.9.16**
  - Fixed: "capturing" step doesn't work
  
- **1.9.15**
  - Fixed: "resetAllSteps" method doesn't work
  
- **1.9.14**
  - Set default value for minPdfFrames to 2
  
- **1.9.13**
  - Fixed: fixFrontOrientAfterUpload doesn't work
  
- **1.9.11**
  - Added: During the manual upload PDF417 will be scanned automatically.
  - Changed: The default value of ‘autoContinue’ is set to ‘true’.
  - Changed: The default value of ‘capturingMode’ is set to 4. NOTE! If you got an error related to the neural network downloading, then you’ll need to copy the ‘networks’ folder once again.
  
- **1.9.10**
  - Added: Orientation change support
  
- **1.9.9**
  - Added: The option enableFlash, which turns on the flash while capturing an image
  - Fixed: High load on CPU while stopping the mode of auto capturing 
  
- **1.9.8**
  - Added "source" field to each element of the steps array
  - Updated "captureMethod" field to contain a string value where each character is either a "0", "1" or a "2" (e.g. "102" or "111"). "0" indicates a step was completed by uploading a file, a "1" indicates a step was completed by the builtin autocapture functionality and a "2" indicates a user tapped the video area to capture an image manually
  
- **1.9.7**
  - Fixed: Angles model is not loaded 
    
- **1.9.6**
  - Fixed:  tfjs-converter is broken in version 1.7.4 
  
- **1.9.5**
  - Fixed:  "fixFrontOrientAfterUpload" did not work if one step was specified
  
- **1.9.4**
  - Fixed: Selecting a wide camera on Samsung devices 
  
- **1.9.3**
  - Added "captureMethod" field in the payload of the submit function
  
- **1.9.2**
  - Fixed: face image not showing 
  
- **1.9.1**
  - Unless the browser supports the WebAssembly technology, the widget will show that the browser is not supported 
  
- **1.9.0**
  - The new option fixFrontOrientAfterUpload has been added. When you switch it on, the document will be rotated into correct position in case of manual uploading 
  
- **1.8.27**
  - Fixed: The widget broke down when using the camera during switching the page in SPA 
  
- **1.8.26**
  - Fixed: autocapturing does not work if method 4 is selected and one document type is selected
      
- **1.8.25**
  - We have added the option "minPDFframes" which determines the minimal number of frames for capturing the PDF417. Default: 1
   
- **1.8.24**
  - In each step we have added the field which means whether the auto capturing has been used or not 
  
- **1.8.23**
  - Fix blank image if capturinMethod is 'none'
  
- **1.8.22**
  - Reduced minimum frames to capturing of PDF417 barcode from 4 to 1
  
- **1.8.21**
  - Fix tapOnVideo in the new capturing mode

- **1.8.20**
  - A new method of the autocapturing has been added. To enable it  use option "capturingMode"

- **1.8.14**
  - Fixed the style of the select of types

- **1.8.13**
  - Changed text for the Driver's license label

- **1.8.12**
  - Fix the rotation for Samsung browser

- **1.8.11**
  - Disabled rotation after resizing

- **1.8.10**
  - Fixed bundle for webpack 3

- **1.8.9**
  - Fixed trim MRZ

- **1.8.8**
  - Added callback "onCameraError" for exceptions from a camera

- **1.8.7**
  - Added option "tapFace"

- **1.8.6**
  - Added full support of HEIC format

- **1.8.2**
  - Added support "Tap on video" on PC

- **1.8.0**
  - Added option "autoContinue" (Default: false) - enables automatic transition to the next step

- **1.7.21**
  - Fixed "Tap on video". Now all video area available for tap

- **1.7.20**
  - Fix getCapabilities in Firefox

- **1.7.19**
  - Now the file extension is checked by magic numbers

- **1.7.18**
  - Changed text in the uploader
  - Changed text in the switch button
  - Changed timings (needed 25 frames, 100 ms between frames) in front capturing proccesing

- **1.7.17**
  - Changed upload icon

- **1.7.16**
  - Fixed: Widget stuck in spinner when cancel uploading image on Mac OS

- **1.7.15**
  - Resize loss rate set to 1

- **1.7.14**
  - Fixed image distortion in the preview of the steps

- **1.7.13**
  - Updated mrz reader

- **1.7.11**
  - Added heic support

- **1.7.10**
  - Fix text when passport detected

- **1.7.9**
  - Fix "showForceCapturingBtn" option

- **1.7.8**
  - Added step - capturing

- **1.7.7**
  - Added index to step

- **1.7.6**
  - Fix real face for inverted camera

- **1.7.5**
  - Added showing of error for unsupported types of images

- **1.7.4**
  - Fix "reset all steps" when your document is passport

- **1.7.3**
  - Fix error in pipeline of passport capturing

- **1.7.2**
  - Added option tapBackSide (Default: false) - tap and hold the screen to capture the back side of the ID

- **1.6.16**
  - Fixed for back step (hidden if it is not necessary)

- **1.6.15**
  - Fonts are now included in the js file

- **1.6.14**
  - Reduced the number of frames needed to capture PDF417 from 10 to 4

- **1.6.10**
  - Changed text for barcode tips

- **1.6.10**
  - Changed text for barcode tips

- **1.6.8**
  - Added option: isShowVersion(boolean) - hide/show version of library in the bottom

- **1.6.6**
  - Added pdf progress

- **1.6.0**
  - Added option: **resizeUploadedImage** (integer) - sets the maximum size for manually loaded pictures