ngx-scandoc 1.0.1 → 1.0.3

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 (45) hide show
  1. package/core/components/base.component.d.ts +6 -0
  2. package/core/components/camera-switch/camera-switch.component.d.ts +11 -0
  3. package/core/components/components.module.d.ts +10 -3
  4. package/core/components/scan/scan.component.d.ts +119 -0
  5. package/core/components/scan-results/scan-results.component.d.ts +20 -0
  6. package/core/components/webcam/webcam/webcam.component.d.ts +5 -2
  7. package/core/interfaces/config.d.ts +16 -0
  8. package/dialogs/components/blank/blank.component.d.ts +2 -3
  9. package/dialogs/components/scan-profile/scan-profile.component.d.ts +10 -116
  10. package/dialogs/components/turn-document/turn-document.component.d.ts +12 -0
  11. package/dialogs/dialogs.core.provider.d.ts +1 -1
  12. package/dialogs/dialogs.module.d.ts +2 -2
  13. package/esm2020/core/components/base.component.mjs +15 -0
  14. package/esm2020/core/components/camera-switch/camera-switch.component.mjs +22 -0
  15. package/esm2020/core/components/components.module.mjs +34 -6
  16. package/esm2020/core/components/scan/scan.component.mjs +582 -0
  17. package/esm2020/core/components/scan-results/scan-results.component.mjs +38 -0
  18. package/esm2020/core/components/webcam/webcam/webcam.component.mjs +23 -12
  19. package/esm2020/core/interfaces/config.mjs +2 -0
  20. package/esm2020/dialogs/components/blank/blank.component.mjs +6 -7
  21. package/esm2020/dialogs/components/scan-profile/scan-profile.component.mjs +33 -741
  22. package/esm2020/dialogs/components/scan-selfie/scan-selfie.component.mjs +2 -2
  23. package/esm2020/dialogs/components/turn-document/turn-document.component.mjs +32 -0
  24. package/esm2020/dialogs/dialogs.core.provider.mjs +18 -9
  25. package/esm2020/dialogs/dialogs.module.mjs +7 -7
  26. package/esm2020/lib/ngx-scandoc.module.mjs +1 -1
  27. package/esm2020/providers/auth.provider.mjs +3 -2
  28. package/esm2020/providers/camera.provider.mjs +40 -0
  29. package/esm2020/providers/interceptor.provider.mjs +2 -2
  30. package/esm2020/providers/layout.provider.mjs +28 -0
  31. package/esm2020/providers/scan.provider.mjs +4 -6
  32. package/esm2020/public-api.mjs +4 -2
  33. package/fesm2015/ngx-scandoc.mjs +1765 -1752
  34. package/fesm2015/ngx-scandoc.mjs.map +1 -1
  35. package/fesm2020/ngx-scandoc.mjs +1962 -1949
  36. package/fesm2020/ngx-scandoc.mjs.map +1 -1
  37. package/lib/ngx-scandoc.module.d.ts +1 -15
  38. package/package.json +1 -1
  39. package/providers/auth.provider.d.ts +1 -1
  40. package/providers/camera.provider.d.ts +17 -0
  41. package/providers/layout.provider.d.ts +11 -0
  42. package/providers/scan.provider.d.ts +3 -5
  43. package/public-api.d.ts +3 -1
  44. package/dialogs/components/scan-mobile/scan-mobile.component.d.ts +0 -16
  45. package/esm2020/dialogs/components/scan-mobile/scan-mobile.component.mjs +0 -43
@@ -0,0 +1,6 @@
1
+ import { Observable, Subject } from 'rxjs';
2
+ export declare class BaseComponent {
3
+ $destroy: Subject<unknown>;
4
+ __subs(observable: Observable<any>): Observable<any>;
5
+ __destroy(): void;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { NgxScandocCameraProvider } from '../../../providers/camera.provider';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CameraSwitchComponent implements AfterViewInit, OnDestroy {
5
+ cameraProvider: NgxScandocCameraProvider;
6
+ constructor(cameraProvider: NgxScandocCameraProvider);
7
+ ngAfterViewInit(): void;
8
+ ngOnDestroy(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<CameraSwitchComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<CameraSwitchComponent, "ngx-scan-camera-switch", never, {}, {}, never, never, false>;
11
+ }
@@ -1,8 +1,15 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "@angular/common";
3
- import * as i2 from "./webcam/webcam.module";
2
+ import * as i1 from "./scan/scan.component";
3
+ import * as i2 from "./scan-results/scan-results.component";
4
+ import * as i3 from "./camera-switch/camera-switch.component";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@ngx-translate/core";
8
+ import * as i7 from "./webcam/webcam.module";
9
+ import * as i8 from "../shared/material.module";
10
+ import * as i9 from "../../forms/form.module";
4
11
  export declare class CoreComponentsModule {
5
12
  static ɵfac: i0.ɵɵFactoryDeclaration<CoreComponentsModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<CoreComponentsModule, never, [typeof i1.CommonModule, typeof i2.WebcamModule], [typeof i2.WebcamModule]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CoreComponentsModule, [typeof i1.ScanComponent, typeof i2.ScanResultsComponent, typeof i3.CameraSwitchComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.TranslateModule, typeof i7.WebcamModule, typeof i8.MaterialModule, typeof i9.AppFormModule, typeof i5.ReactiveFormsModule], [typeof i7.WebcamModule, typeof i1.ScanComponent, typeof i3.CameraSwitchComponent]>;
7
14
  static ɵinj: i0.ɵɵInjectorDeclaration<CoreComponentsModule>;
8
15
  }
@@ -0,0 +1,119 @@
1
+ import { EventEmitter, ElementRef, ChangeDetectorRef, AfterViewInit, OnDestroy, NgZone, Injector } from '@angular/core';
2
+ import { MatDialogRef } from '@angular/material/dialog';
3
+ import { Subject, Observable, Subscription } from 'rxjs';
4
+ import { FormGroup } from '@angular/forms';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { ScanProvider } from '../../../providers/scan.provider';
7
+ import { WebcamImage } from '../../../core/components/webcam/domain/webcam-image';
8
+ import { WebcamInitError } from '../../../core/components/webcam/domain/webcam-init-error';
9
+ import { AuthProvider } from '../../../providers/auth.provider';
10
+ import { NgxScandocCameraProvider } from '../../../providers/camera.provider';
11
+ import { LayoutProvider } from '../../../providers/layout.provider';
12
+ import { BaseComponent } from '../base.component';
13
+ import * as i0 from "@angular/core";
14
+ export interface IWindow extends Window {
15
+ TextDetector: any;
16
+ }
17
+ interface Troubleshooting {
18
+ Request: any;
19
+ Response: any;
20
+ ExpectedOutput: any;
21
+ AcceptTermsAndConditions: boolean;
22
+ }
23
+ interface Timestamps {
24
+ time: number;
25
+ load: number;
26
+ }
27
+ export declare class ScanComponent extends BaseComponent implements AfterViewInit, OnDestroy {
28
+ cd: ChangeDetectorRef;
29
+ private zone;
30
+ private translate;
31
+ cameraProvider: NgxScandocCameraProvider;
32
+ private injector;
33
+ private layoutProvider;
34
+ private auth;
35
+ scanBlastData: any;
36
+ type: string;
37
+ dialogs: any;
38
+ actions: EventEmitter<any>;
39
+ mediaDevices: any;
40
+ deviceId?: string;
41
+ videoOptions: MediaTrackConstraints;
42
+ dialogRef?: MatDialogRef<any>;
43
+ data: any;
44
+ startTime: number;
45
+ isDebug: boolean;
46
+ multipleWebcamsAvailable: boolean;
47
+ scanInProgress: boolean;
48
+ fields: any;
49
+ documentTypeSelected: boolean;
50
+ imageHandlerSubscription: Subscription;
51
+ selectedSide: any;
52
+ images: any;
53
+ scanTimeout: any;
54
+ preview: any;
55
+ scanType: any;
56
+ width: any;
57
+ height: any;
58
+ videoWidth: any;
59
+ videoHeight: any;
60
+ errorCode: string;
61
+ displayInfo: any;
62
+ allowCameraSwitch: boolean;
63
+ verificationErrorSent: boolean;
64
+ error: boolean;
65
+ cameraReady: boolean;
66
+ result: any;
67
+ scaning: boolean;
68
+ imageHandler: Subject<unknown>;
69
+ logData: Troubleshooting;
70
+ defaultDevice: any;
71
+ scanDatas: any;
72
+ scanSide: any;
73
+ idScan: any;
74
+ webcamImage?: WebcamImage;
75
+ model: any;
76
+ validation: boolean;
77
+ scannedImages: any[];
78
+ scanDelay: any;
79
+ trigger: Subject<number>;
80
+ nextWebcam: Subject<boolean | string>;
81
+ imageVerified: boolean;
82
+ form: FormGroup<{}>;
83
+ isMobile: boolean;
84
+ showDialog: boolean;
85
+ scanImageTimestamps: Timestamps;
86
+ wraper?: ElementRef;
87
+ get class(): boolean;
88
+ onResize(): void;
89
+ scanProvider: ScanProvider;
90
+ constructor(cd: ChangeDetectorRef, zone: NgZone, translate: TranslateService, cameraProvider: NgxScandocCameraProvider, injector: Injector, layoutProvider: LayoutProvider, auth: AuthProvider);
91
+ private resetLogData;
92
+ ngOnDestroy(): void;
93
+ init(): void;
94
+ cameraOff(ev: any): void;
95
+ continue(): void;
96
+ scan(): void;
97
+ handleImage(webcamImage: WebcamImage): void;
98
+ private handleBurstData;
99
+ handleInitError(error: WebcamInitError): void;
100
+ get scanBlastCanUpload(): boolean;
101
+ cameraWasSwitched(deviceId: string): void;
102
+ get nextWebcamObservable(): Observable<boolean | string>;
103
+ private handleLongValidationError;
104
+ ngAfterViewInit(): void;
105
+ handleBitmapImage(bitmap: any): any;
106
+ autoScan(): void;
107
+ singleScan(side: any): void;
108
+ private getImgBase64;
109
+ scanBlastFinish(): void;
110
+ retry(): void;
111
+ triggerSnapshot(): void;
112
+ retake(): void;
113
+ use(): void;
114
+ selfie(): void;
115
+ videoReady(event: boolean): void;
116
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScanComponent, never>;
117
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScanComponent, "ngx-scan", never, { "type": "type"; "dialogs": "dialogs"; "showDialog": "showDialog"; }, { "actions": "actions"; }, never, never, false>;
118
+ }
119
+ export {};
@@ -0,0 +1,20 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { NgxScandocCameraProvider } from '../../../providers/camera.provider';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { ScanFieldsProvider } from '../../../providers/scan.form';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ScanResultsComponent implements OnInit, OnDestroy {
7
+ cameraProvider: NgxScandocCameraProvider;
8
+ private formProvider;
9
+ model: any;
10
+ images: any;
11
+ fields: any;
12
+ form: FormGroup;
13
+ action: EventEmitter<any>;
14
+ constructor(cameraProvider: NgxScandocCameraProvider, formProvider: ScanFieldsProvider);
15
+ ngOnInit(): void;
16
+ ngOnDestroy(): void;
17
+ selfie(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScanResultsComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScanResultsComponent, "ngx-scan-results", never, { "model": "model"; "images": "images"; "form": "form"; }, { "action": "action"; }, never, never, false>;
20
+ }
@@ -5,12 +5,15 @@ import { Observable, Subject } from 'rxjs';
5
5
  import { WebcamMirrorProperties } from '../domain/webcam-mirror-properties';
6
6
  import { BreakpointObserver } from '@angular/cdk/layout';
7
7
  import { Platform } from '@angular/cdk/platform';
8
+ import { NgxScandocCameraProvider } from '../../../../providers/camera.provider';
9
+ import { BaseComponent } from '../../base.component';
8
10
  import * as i0 from "@angular/core";
9
- export declare class WebcamComponent implements AfterViewInit, OnDestroy {
11
+ export declare class WebcamComponent extends BaseComponent implements AfterViewInit, OnDestroy {
10
12
  breakpointObserver: BreakpointObserver;
11
13
  platform: Platform;
12
14
  private cd;
13
15
  private zone;
16
+ private cameraProvider;
14
17
  trackProcessor: any;
15
18
  trackSettings: any;
16
19
  imageHandler: Subject<any>;
@@ -87,7 +90,7 @@ export declare class WebcamComponent implements AfterViewInit, OnDestroy {
87
90
  */
88
91
  switchCamera: any;
89
92
  onResize(): void;
90
- constructor(breakpointObserver: BreakpointObserver, platform: Platform, cd: ChangeDetectorRef, zone: NgZone);
93
+ constructor(breakpointObserver: BreakpointObserver, platform: Platform, cd: ChangeDetectorRef, zone: NgZone, cameraProvider: NgxScandocCameraProvider);
91
94
  /**
92
95
  * Get MediaTrackConstraints to request streaming the given device
93
96
  * @param deviceId
@@ -0,0 +1,16 @@
1
+ export interface AuthConfig {
2
+ path: string;
3
+ tokenName: string;
4
+ clientId: string;
5
+ }
6
+ export interface ScanConfig {
7
+ extractionPath: string;
8
+ validationPath: string;
9
+ errorLoggingPath: string;
10
+ stateLessPath: string;
11
+ development?: boolean;
12
+ }
13
+ export interface ScanDataConfig {
14
+ auth: AuthConfig;
15
+ scan: ScanConfig;
16
+ }
@@ -1,14 +1,13 @@
1
- import { ComponentFactoryResolver, ViewContainerRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';
1
+ import { ViewContainerRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';
2
2
  import { MatDialogRef } from '@angular/material/dialog';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class BlankComponent implements AfterViewInit {
5
5
  dialogRef: MatDialogRef<BlankComponent>;
6
6
  data: any;
7
- private componentFactoryResolver;
8
7
  cd: ChangeDetectorRef;
9
8
  body?: ViewContainerRef;
10
9
  initSet: boolean;
11
- constructor(dialogRef: MatDialogRef<BlankComponent>, data: any, componentFactoryResolver: ComponentFactoryResolver, cd: ChangeDetectorRef);
10
+ constructor(dialogRef: MatDialogRef<BlankComponent>, data: any, cd: ChangeDetectorRef);
12
11
  setModel(model: any): void;
13
12
  init(): void;
14
13
  ngAfterViewInit(): void;
@@ -1,124 +1,18 @@
1
- import { EventEmitter, ElementRef, ChangeDetectorRef, AfterViewInit, OnDestroy, NgZone } from '@angular/core';
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import { MatDialogRef } from '@angular/material/dialog';
3
- import { Subject, Observable, Subscription } from 'rxjs';
4
- import { FormGroup } from '@angular/forms';
5
- import { TranslateService } from '@ngx-translate/core';
6
- import { ScanProvider } from '../../../providers/scan.provider';
3
+ import { BaseComponent } from '../../../core/components/base.component';
7
4
  import { DialogsCoreProvider } from '../../../dialogs/dialogs.core.provider';
8
- import { WebcamImage } from '../../../core/components/webcam/domain/webcam-image';
9
- import { WebcamInitError } from '../../../core/components/webcam/domain/webcam-init-error';
10
- import { ScanFieldsProvider } from '../../../providers/scan.form';
11
- import { AuthProvider } from '../../../providers/auth.provider';
12
5
  import * as i0 from "@angular/core";
13
- export interface IWindow extends Window {
14
- TextDetector: any;
15
- }
16
- interface Troubleshooting {
17
- Request: any;
18
- Response: any;
19
- ExpectedOutput: any;
20
- AcceptTermsAndConditions: boolean;
21
- }
22
- interface Timestamps {
23
- time: number;
24
- load: number;
25
- }
26
- export declare class ScanProfileComponent implements AfterViewInit, OnDestroy {
27
- cd: ChangeDetectorRef;
28
- scanProvider: ScanProvider;
29
- private dialogs;
30
- private formProvider;
31
- private zone;
32
- private translate;
33
- private auth;
34
- scanBlastData: any;
6
+ export declare class ScanProfileComponent extends BaseComponent implements AfterViewInit, OnDestroy {
7
+ dialogs: DialogsCoreProvider;
8
+ dialogRef: MatDialogRef<ScanProfileComponent>;
35
9
  type: string;
36
- actions: EventEmitter<any>;
37
- mediaDevices: any;
38
- deviceId?: string;
39
- videoOptions: MediaTrackConstraints;
40
- dialogRef?: MatDialogRef<any>;
41
- data: any;
42
- startTime: number;
43
- isDebug: boolean;
44
- multipleWebcamsAvailable: boolean;
45
- scanInProgress: boolean;
46
- fields: any;
47
- documentTypeSelected: boolean;
48
- imageHandlerSubscription: Subscription;
49
- selectedSide: any;
50
- images: any;
51
- scanTimeout: any;
52
- preview: any;
53
- scanType: any;
54
- width: any;
55
- height: any;
56
- videoWidth: any;
57
- videoHeight: any;
58
- errorCode: string;
59
- displayInfo: any;
60
- allowCameraSwitch: boolean;
61
- verificationErrorSent: boolean;
62
- error: boolean;
63
- cameraReady: boolean;
64
- result: any;
65
- scaning: boolean;
66
- imageHandler: Subject<unknown>;
67
- logData: Troubleshooting;
68
- defaultDevice: any;
69
- scanDatas: any;
70
- scanSide: any;
71
- idScan: any;
72
- webcamImage?: WebcamImage;
73
- model: any;
74
- validation: boolean;
75
- scannedImages: any[];
76
- scanDelay: any;
77
- trigger: Subject<number>;
78
- nextWebcam: Subject<boolean | string>;
79
- imageVerified: boolean;
80
- form: FormGroup<{}>;
81
- scanImageTimestamps: Timestamps;
82
- wraper?: ElementRef;
83
- onResize(): void;
84
- constructor(cd: ChangeDetectorRef, scanProvider: ScanProvider, dialogs: DialogsCoreProvider, formProvider: ScanFieldsProvider, zone: NgZone, translate: TranslateService, auth: AuthProvider);
85
- private resetLogData;
86
- ngOnDestroy(): void;
87
- init(): void;
88
- scan(): void;
89
- private DataUrlFromImage;
90
- handleImage(webcamImage: WebcamImage): void;
91
- private handleBurstData;
92
- handleInitError(error: WebcamInitError): void;
93
- get scanBlastCanUpload(): boolean;
94
- cameraWasSwitched(deviceId: string): void;
95
- get nextWebcamObservable(): Observable<boolean | string>;
96
- private handleLongValidationError;
10
+ showDialog: boolean;
11
+ constructor(dialogs: DialogsCoreProvider, dialogRef: MatDialogRef<ScanProfileComponent>);
97
12
  ngAfterViewInit(): void;
98
- handleBitmapImage(bitmap: any): any;
99
- autoScan(): void;
100
- selectCamera(event: any): void;
13
+ ngOnDestroy(): void;
14
+ actions(event: any): void;
101
15
  close(): void;
102
- singleScan(side: any): void;
103
- getBase64(file: any): Observable<unknown>;
104
- handleFileInput(target: any, event: any, side: any): void;
105
- rotateBase64Image(base64data: any): Observable<unknown>;
106
- sendMobile(): void;
107
- singleScanRotate(side: any): void;
108
- singleScanRemove(side: any): void;
109
- resolutionLimit(file: any): Observable<unknown>;
110
- private getImgBase64;
111
- scanBlastFinish(): void;
112
- cameraOff(ev: any): void;
113
- continue(): void;
114
- retry(): void;
115
- triggerSnapshot(): void;
116
- retake(): void;
117
- cancel(): void;
118
- use(): void;
119
- selfie(): void;
120
- videoReady(event: boolean): void;
121
16
  static ɵfac: i0.ɵɵFactoryDeclaration<ScanProfileComponent, never>;
122
- static ɵcmp: i0.ɵɵComponentDeclaration<ScanProfileComponent, "app-scan-profile", never, { "type": "type"; }, { "actions": "actions"; }, never, never, false>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScanProfileComponent, "app-scan-profile", never, { "type": "type"; }, {}, never, never, false>;
123
18
  }
124
- export {};
@@ -0,0 +1,12 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { MatDialogRef } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TurnDocumentComponent implements OnInit {
5
+ dialogRef: MatDialogRef<TurnDocumentComponent>;
6
+ data: any;
7
+ constructor(dialogRef: MatDialogRef<TurnDocumentComponent>, data: any);
8
+ ngOnInit(): void;
9
+ close(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<TurnDocumentComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<TurnDocumentComponent, "app-turndocuments", never, {}, {}, never, never, false>;
12
+ }
@@ -11,7 +11,7 @@ export declare class DialogsCoreProvider {
11
11
  scanProfile(data: any): MatDialogRef<BlankComponent, any>;
12
12
  loading(title?: string): MatDialogRef<BlankComponent, any>;
13
13
  alert(title: string, text: string): MatDialogRef<BlankComponent, any>;
14
- scanMobile(data: any): MatDialogRef<BlankComponent, any>;
14
+ turnDocument(idScan: any): import("rxjs").Observable<any>;
15
15
  scanSelfie(data: any): MatDialogRef<BlankComponent, any>;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogsCoreProvider, never>;
17
17
  static ɵprov: i0.ɵɵInjectableDeclaration<DialogsCoreProvider>;
@@ -3,7 +3,7 @@ import * as i1 from "./components/scan-profile/scan-profile.component";
3
3
  import * as i2 from "./components/blank/blank.component";
4
4
  import * as i3 from "./components/loading/loading.component";
5
5
  import * as i4 from "./components/confirm/confirm.component";
6
- import * as i5 from "./components/scan-mobile/scan-mobile.component";
6
+ import * as i5 from "./components/turn-document/turn-document.component";
7
7
  import * as i6 from "./components/scan-selfie/scan-selfie.component";
8
8
  import * as i7 from "angularx-qrcode";
9
9
  import * as i8 from "@angular/forms";
@@ -16,6 +16,6 @@ import * as i14 from "../core/pipes/pipes.module";
16
16
  import * as i15 from "@angular/flex-layout";
17
17
  export declare class DialogsModule {
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogsModule, never>;
19
- static ɵmod: i0.ɵɵNgModuleDeclaration<DialogsModule, [typeof i1.ScanProfileComponent, typeof i2.BlankComponent, typeof i3.LoadingComponent, typeof i4.ConfirmComponent, typeof i5.ScanMobileComponent, typeof i6.ScanSelfieComponent], [typeof i7.QRCodeModule, typeof i8.ReactiveFormsModule, typeof i9.CommonModule, typeof i8.FormsModule, typeof i10.AppFormModule, typeof i11.TranslateModule, typeof i12.MaterialModule, typeof i13.CoreComponentsModule, typeof i14.CorePipesModule, typeof i15.FlexModule, typeof i15.FlexLayoutModule], [typeof i1.ScanProfileComponent, typeof i3.LoadingComponent, typeof i2.BlankComponent, typeof i5.ScanMobileComponent, typeof i12.MaterialModule, typeof i6.ScanSelfieComponent]>;
19
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DialogsModule, [typeof i1.ScanProfileComponent, typeof i2.BlankComponent, typeof i3.LoadingComponent, typeof i4.ConfirmComponent, typeof i5.TurnDocumentComponent, typeof i6.ScanSelfieComponent], [typeof i7.QRCodeModule, typeof i8.ReactiveFormsModule, typeof i9.CommonModule, typeof i8.FormsModule, typeof i10.AppFormModule, typeof i11.TranslateModule, typeof i12.MaterialModule, typeof i13.CoreComponentsModule, typeof i14.CorePipesModule, typeof i15.FlexModule, typeof i15.FlexLayoutModule], [typeof i1.ScanProfileComponent, typeof i3.LoadingComponent, typeof i2.BlankComponent, typeof i5.TurnDocumentComponent, typeof i12.MaterialModule, typeof i6.ScanSelfieComponent]>;
20
20
  static ɵinj: i0.ɵɵInjectorDeclaration<DialogsModule>;
21
21
  }
@@ -0,0 +1,15 @@
1
+ import { Subject } from 'rxjs';
2
+ import { takeUntil } from 'rxjs/operators';
3
+ export class BaseComponent {
4
+ constructor() {
5
+ this.$destroy = new Subject();
6
+ }
7
+ __subs(observable) {
8
+ return observable.pipe(takeUntil(this.$destroy));
9
+ }
10
+ __destroy() {
11
+ this.$destroy.next(true);
12
+ this.$destroy.complete();
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFVM0IsQ0FBQztJQVJDLE1BQU0sQ0FBQyxVQUEyQjtRQUNoQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBCYXNlQ29tcG9uZW50IHtcbiAgJGRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xuXG4gIF9fc3VicyhvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSk7XG4gIH1cblxuICBfX2Rlc3Ryb3koKSB7XG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KHRydWUpO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../providers/camera.provider";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "@angular/material/form-field";
7
+ import * as i5 from "@angular/material/select";
8
+ import * as i6 from "@angular/material/core";
9
+ export class CameraSwitchComponent {
10
+ constructor(cameraProvider) {
11
+ this.cameraProvider = cameraProvider;
12
+ }
13
+ ngAfterViewInit() { }
14
+ ngOnDestroy() { }
15
+ }
16
+ CameraSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CameraSwitchComponent, deps: [{ token: i1.NgxScandocCameraProvider }], target: i0.ɵɵFactoryTarget.Component });
17
+ CameraSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CameraSwitchComponent, selector: "ngx-scan-camera-switch", ngImport: i0, template: "<mat-form-field\n style=\"font-size: 14px; width: 200px; margin-top: 8px\"\n class=\"w-100 mr-16 mt-8\"\n>\n <mat-label> Camera </mat-label>\n <mat-select (selectionChange)=\"cameraProvider.selectCamera($event)\" [(ngModel)]=\"cameraProvider.deviceId\">\n <mat-option *ngFor=\"let device of cameraProvider.mediaDevices\" [value]=\"device.deviceId\">\n {{ device.label }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CameraSwitchComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'ngx-scan-camera-switch', template: "<mat-form-field\n style=\"font-size: 14px; width: 200px; margin-top: 8px\"\n class=\"w-100 mr-16 mt-8\"\n>\n <mat-label> Camera </mat-label>\n <mat-select (selectionChange)=\"cameraProvider.selectCamera($event)\" [(ngModel)]=\"cameraProvider.deviceId\">\n <mat-option *ngFor=\"let device of cameraProvider.mediaDevices\" [value]=\"device.deviceId\">\n {{ device.label }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1}\n"] }]
21
+ }], ctorParameters: function () { return [{ type: i1.NgxScandocCameraProvider }]; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL2NhbWVyYS1zd2l0Y2gvY2FtZXJhLXN3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL2NhbWVyYS1zd2l0Y2gvY2FtZXJhLXN3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQU1WLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVN2QixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW1CLGNBQXdDO1FBQXhDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtJQUFHLENBQUM7SUFJL0QsZUFBZSxLQUFVLENBQUM7SUFFMUIsV0FBVyxLQUFVLENBQUM7O2tIQVBYLHFCQUFxQjtzR0FBckIscUJBQXFCLDhEQ2hCbEMseWJBV0E7MkZES2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hTY2FuZG9jQ2FtZXJhUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY2FtZXJhLnByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXNjYW4tY2FtZXJhLXN3aXRjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYW1lcmEtc3dpdGNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FtZXJhLXN3aXRjaC5jb21wb25lbnQuc2NzcyddLFxuLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYW1lcmFTd2l0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2FtZXJhUHJvdmlkZXI6IE5neFNjYW5kb2NDYW1lcmFQcm92aWRlcikge31cblxuXG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHt9XG59XG4iLCI8bWF0LWZvcm0tZmllbGRcbiAgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7IHdpZHRoOiAyMDBweDsgbWFyZ2luLXRvcDogOHB4XCJcbiAgY2xhc3M9XCJ3LTEwMCBtci0xNiBtdC04XCJcbj5cbiAgPG1hdC1sYWJlbD4gQ2FtZXJhIDwvbWF0LWxhYmVsPlxuICA8bWF0LXNlbGVjdCAoc2VsZWN0aW9uQ2hhbmdlKT1cImNhbWVyYVByb3ZpZGVyLnNlbGVjdENhbWVyYSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJjYW1lcmFQcm92aWRlci5kZXZpY2VJZFwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBkZXZpY2Ugb2YgY2FtZXJhUHJvdmlkZXIubWVkaWFEZXZpY2VzXCIgW3ZhbHVlXT1cImRldmljZS5kZXZpY2VJZFwiPlxuICAgICAge3sgZGV2aWNlLmxhYmVsIH19XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1zZWxlY3Q+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -1,18 +1,46 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { WebcamModule } from './webcam/webcam.module';
4
+ import { ScanComponent } from './scan/scan.component';
5
+ import { MaterialModule } from '../shared/material.module';
6
+ import { AppFormModule } from '../../forms/form.module';
7
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
+ import { TranslateModule } from '@ngx-translate/core';
9
+ import { CameraSwitchComponent } from './camera-switch/camera-switch.component';
10
+ import { ScanResultsComponent } from './scan-results/scan-results.component';
4
11
  import * as i0 from "@angular/core";
5
12
  export class CoreComponentsModule {
6
13
  }
7
14
  CoreComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CoreComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- CoreComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CoreComponentsModule, imports: [CommonModule, WebcamModule], exports: [WebcamModule] });
9
- CoreComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CoreComponentsModule, imports: [CommonModule, WebcamModule, WebcamModule] });
15
+ CoreComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CoreComponentsModule, declarations: [ScanComponent, ScanResultsComponent, CameraSwitchComponent], imports: [CommonModule,
16
+ FormsModule,
17
+ TranslateModule,
18
+ WebcamModule,
19
+ MaterialModule,
20
+ AppFormModule,
21
+ ReactiveFormsModule], exports: [WebcamModule, ScanComponent, CameraSwitchComponent] });
22
+ CoreComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CoreComponentsModule, imports: [CommonModule,
23
+ FormsModule,
24
+ TranslateModule,
25
+ WebcamModule,
26
+ MaterialModule,
27
+ AppFormModule,
28
+ ReactiveFormsModule, WebcamModule] });
10
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CoreComponentsModule, decorators: [{
11
30
  type: NgModule,
12
31
  args: [{
13
- imports: [CommonModule, WebcamModule],
14
- declarations: [],
15
- exports: [WebcamModule],
32
+ imports: [
33
+ CommonModule,
34
+ FormsModule,
35
+ TranslateModule,
36
+ WebcamModule,
37
+ MaterialModule,
38
+ AppFormModule,
39
+ ReactiveFormsModule,
40
+ ],
41
+ declarations: [ScanComponent, ScanResultsComponent, CameraSwitchComponent],
42
+ exports: [WebcamModule, ScanComponent, CameraSwitchComponent],
43
+ providers: [],
16
44
  }]
17
45
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPdEQsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLFlBSnJCLFlBQVksRUFBRSxZQUFZLGFBRTFCLFlBQVk7a0hBRVgsb0JBQW9CLFlBSnJCLFlBQVksRUFBRSxZQUFZLEVBRTFCLFlBQVk7MkZBRVgsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7b0JBQ3JDLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgV2ViY2FtTW9kdWxlIH0gZnJvbSAnLi93ZWJjYW0vd2ViY2FtLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdlYmNhbU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGV4cG9ydHM6IFtXZWJjYW1Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlQ29tcG9uZW50c01vZHVsZSB7fVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWtCN0UsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQUpoQixhQUFhLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLGFBVnZFLFlBQVk7UUFDWixXQUFXO1FBQ1gsZUFBZTtRQUVmLFlBQVk7UUFDWixjQUFjO1FBRWQsYUFBYTtRQUNiLG1CQUFtQixhQUdYLFlBQVksRUFBRSxhQUFhLEVBQUUscUJBQXFCO2tIQUdqRCxvQkFBb0IsWUFkN0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxlQUFlO1FBRWYsWUFBWTtRQUNaLGNBQWM7UUFFZCxhQUFhO1FBQ2IsbUJBQW1CLEVBR1gsWUFBWTsyRkFHWCxvQkFBb0I7a0JBaEJoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFFZixZQUFZO3dCQUNaLGNBQWM7d0JBRWQsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCO29CQUNELFlBQVksRUFBRSxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQztvQkFDMUUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQztvQkFDN0QsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBXZWJjYW1Nb2R1bGUgfSBmcm9tICcuL3dlYmNhbS93ZWJjYW0ubW9kdWxlJztcbmltcG9ydCB7IFNjYW5Db21wb25lbnQgfSBmcm9tICcuL3NjYW4vc2Nhbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IEFwcEZvcm1Nb2R1bGUgfSBmcm9tICcuLi8uLi9mb3Jtcy9mb3JtLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ2FtZXJhU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnLi9jYW1lcmEtc3dpdGNoL2NhbWVyYS1zd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IFNjYW5SZXN1bHRzQ29tcG9uZW50IH0gZnJvbSAnLi9zY2FuLXJlc3VsdHMvc2Nhbi1yZXN1bHRzLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuXG4gICAgV2ViY2FtTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuXG4gICAgQXBwRm9ybU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtTY2FuQ29tcG9uZW50LCBTY2FuUmVzdWx0c0NvbXBvbmVudCwgQ2FtZXJhU3dpdGNoQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1dlYmNhbU1vZHVsZSwgU2NhbkNvbXBvbmVudCwgQ2FtZXJhU3dpdGNoQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUNvbXBvbmVudHNNb2R1bGUge31cbiJdfQ==