ngx-scandoc 15.1.4 → 15.1.6

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.
@@ -85,10 +85,10 @@ export class ScanSelfieComponent extends BaseComponent {
85
85
  }
86
86
  }
87
87
  ScanSelfieComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScanSelfieComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.MatDialogRef }, { token: i2.NgxScandocCameraProvider }, { token: i3.ScanProvider }, { token: i4.NgxScandocDialogsCoreProvider }], target: i0.ɵɵFactoryTarget.Component });
88
- ScanSelfieComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ScanSelfieComponent, selector: "ngx-scandoc-selfie", outputs: { actions: "actions" }, usesInheritance: true, ngImport: i0, template: "<header class=\"page-header\">\n <div class=\"title\">\n {{ \"scandoc.result.takeSelfie\" | translate }}\n </div>\n\n <span style=\"flex: 1\"></span>\n\n <ng-container *ngIf=\"cameraProvider.$showSwitchSelfie | async\">\n <div class=\"separator\"></div>\n <div style=\"padding: 0px 16px\">\n <ngx-scan-camera-switch></ngx-scan-camera-switch>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n</header>\n\n\n<div class=\"flex-column flex\">\n <div #wraper class=\"wraper flex flex-row\">\n <div\n style=\"\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: whitesmoke;\n \"\n *ngIf=\"!cameraReady && !preview\"\n >\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <ng-container>\n <ngx-scandoc-webcam\n *ngIf=\"!preview\"\n class=\"main flex\"\n #webcam\n [trigger]=\"trigger\"\n (imageCapture)=\"handleImage($event)\"\n (initError)=\"handleInitError($event)\"\n (videoReady)=\"videoReady($event)\"\n type=\"selfie\"\n >\n </ngx-scandoc-webcam>\n </ng-container>\n <div\n class=\"previewData\"\n *ngIf=\"preview\"\n style=\"\n z-index: 20;\n position: absolute;\n width: 100%;\n height: 100%;\n flex: 1;\n display: flex;\n flex-direction: row;\n \"\n >\n <div\n class=\"scanPreview\"\n style=\"display: flex; flex-direction: column; flex: 1\"\n >\n <div\n style=\"flex: 1\"\n class=\"image\"\n [style.background-image]=\"'url(' + preview + ')'\"\n ></div>\n </div>\n </div>\n </div>\n\n <footer class=\"p-8 flex-row\">\n <button\n [disabled]=\"!cameraReady\"\n class=\"w-100-p\"\n *ngIf=\"!preview\"\n mat-raised-button\n (click)=\"scan()\"\n >\n <ng-container> {{ \"scandoc.result.takeSelfie\" | translate }} </ng-container>\n </button>\n\n <div\n class=\"w-100-p flex-row flex\"\n *ngIf=\"preview\"\n style=\"align-items: center\"\n >\n <button style=\"flex: 1\" class=\"mr-4\" mat-raised-button (click)=\"retry()\">\n {{ \"scandoc.retry\" | translate }}\n </button>\n\n <button\n style=\"flex: 1\"\n class=\"ml-4\"\n mat-raised-button\n (click)=\"continue()\"\n >\n {{ \"scandoc.continueWithSelectedImage\" | translate }}\n </button>\n </div>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1;background-color:#f5f5f5}.flex{flex:1}.flex-column{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.wraper{position:relative;overflow:hidden}h3{color:#459ae5;font-size:16px}.preview{width:100%;border-radius:1%}.subhead{height:55px;padding-top:8px}footer button{box-shadow:none!important;height:45px;min-height:45px;border:1px solid rgba(0,0,0,.12);text-transform:uppercase}.error .title{font-size:22px}.error ul{font-size:18px}.mr-4{margin-right:4px}.ml-4{margin-left:4px}.p-16{padding:16px}.p-8{padding:8px}.py-16{padding:16px 0}.w-100-p{width:100%}.scanPreview{padding:16px}.scanPreview .image{background-position:center;background-repeat:no-repeat;background-size:contain}.page-header{display:flex;flex-direction:row;align-items:center}.page-header button{height:100%}@media only screen and (max-width: 768px){header .title{font-size:12px!important;line-height:18px!important}}\n", ".page-header{z-index:2000;height:64px;padding:0;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.12)}.page-header .title{padding-left:24px;line-height:64px;font-size:18px}.page-header .separator{width:1px;background-color:#0000001f;height:100%}.page-header .total{line-height:64px}.page-header .total span{font-weight:700}.page-footer{height:64px}.page-footer button{margin-left:24px;box-shadow:none!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.WebcamComponent, selector: "ngx-scandoc-webcam", inputs: ["imageHandler", "type", "trigger"], outputs: ["cameraSwitched", "videoReady", "imageCapture", "initError"] }, { kind: "component", type: i10.CameraSwitchComponent, selector: "ngx-scan-camera-switch" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
+ ScanSelfieComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ScanSelfieComponent, selector: "ngx-scandoc-selfie", outputs: { actions: "actions" }, usesInheritance: true, ngImport: i0, template: "<header class=\"page-header\">\n <div class=\"title\">\n {{ \"scandoc.result.takeSelfie\" | translate }}\n </div>\n\n <span style=\"flex: 1\"></span>\n\n <ng-container *ngIf=\"cameraProvider.$showSwitchSelfie | async\">\n <div class=\"separator\"></div>\n <div style=\"padding: 0px 16px\">\n <ngx-scan-camera-switch></ngx-scan-camera-switch>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n</header>\n\n\n<div class=\"flex-column flex\">\n <div #wraper class=\"wraper flex flex-row\">\n <div\n style=\"\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: whitesmoke;\n \"\n *ngIf=\"!cameraReady && !preview\"\n >\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <ng-container>\n <ngx-scandoc-webcam\n *ngIf=\"!preview\"\n class=\"main flex\"\n #webcam\n [trigger]=\"trigger\"\n (imageCapture)=\"handleImage($event)\"\n (initError)=\"handleInitError($event)\"\n (videoReady)=\"videoReady($event)\"\n type=\"selfie\"\n >\n </ngx-scandoc-webcam>\n </ng-container>\n <div\n class=\"previewData\"\n *ngIf=\"preview\"\n style=\"\n z-index: 20;\n position: absolute;\n width: 100%;\n height: 100%;\n flex: 1;\n display: flex;\n flex-direction: row;\n \"\n >\n <div\n class=\"scanPreview\"\n style=\"display: flex; flex-direction: column; flex: 1\"\n >\n <div\n style=\"flex: 1\"\n class=\"image\"\n [style.background-image]=\"'url(' + preview + ')'\"\n ></div>\n </div>\n </div>\n </div>\n\n <footer class=\"p-8 flex-row\">\n <button\n [disabled]=\"!cameraReady\"\n class=\"w-100-p\"\n *ngIf=\"!preview\"\n mat-raised-button\n (click)=\"scan()\"\n >\n <ng-container> {{ \"scandoc.result.takeSelfie\" | translate }} </ng-container>\n </button>\n\n <div\n class=\"w-100-p flex-row flex\"\n *ngIf=\"preview\"\n style=\"align-items: center\"\n >\n <button style=\"flex: 1\" class=\"mr-4\" mat-raised-button (click)=\"retry()\">\n {{ \"scandoc.retry\" | translate }}\n </button>\n\n <button\n style=\"flex: 1\"\n class=\"ml-4\"\n mat-raised-button\n (click)=\"continue()\"\n >\n {{ \"scandoc.continueWithSelectedImage\" | translate }}\n </button>\n </div>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1;background-color:#f5f5f5}.flex{flex:1}.flex-column{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.wraper{position:relative;overflow:hidden}h3{color:#459ae5;font-size:16px}.preview{width:100%;border-radius:1%}.subhead{height:55px;padding-top:8px}footer button{box-shadow:none!important;height:45px;min-height:45px;border:1px solid rgba(0,0,0,.12);text-transform:uppercase}.error .title{font-size:22px}.error ul{font-size:18px}.mr-4{margin-right:4px}.ml-4{margin-left:4px}.p-16{padding:16px}.p-8{padding:8px}.py-16{padding:16px 0}.w-100-p{width:100%}.scanPreview{padding:16px}.scanPreview .image{background-position:center;background-repeat:no-repeat;background-size:contain}.page-header{display:flex;flex-direction:row;align-items:center}.page-header button{height:100%}@media only screen and (max-width: 768px){header .title{font-size:12px!important;line-height:18px!important}}\n", ".page-header{z-index:2000;height:64px;padding:0;overflow:hidden;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.12)}.page-header .title{padding-left:24px;line-height:64px;font-size:18px}.page-header .separator{width:1px;background-color:#0000001f;height:100%}.page-header .total{line-height:64px}.page-header .total span{font-weight:700}.page-footer{height:64px}.page-footer button{margin-left:24px;box-shadow:none!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.WebcamComponent, selector: "ngx-scandoc-webcam", inputs: ["imageHandler", "type", "trigger"], outputs: ["cameraSwitched", "videoReady", "imageCapture", "initError"] }, { kind: "component", type: i10.CameraSwitchComponent, selector: "ngx-scan-camera-switch" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScanSelfieComponent, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'ngx-scandoc-selfie', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"page-header\">\n <div class=\"title\">\n {{ \"scandoc.result.takeSelfie\" | translate }}\n </div>\n\n <span style=\"flex: 1\"></span>\n\n <ng-container *ngIf=\"cameraProvider.$showSwitchSelfie | async\">\n <div class=\"separator\"></div>\n <div style=\"padding: 0px 16px\">\n <ngx-scan-camera-switch></ngx-scan-camera-switch>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n</header>\n\n\n<div class=\"flex-column flex\">\n <div #wraper class=\"wraper flex flex-row\">\n <div\n style=\"\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: whitesmoke;\n \"\n *ngIf=\"!cameraReady && !preview\"\n >\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <ng-container>\n <ngx-scandoc-webcam\n *ngIf=\"!preview\"\n class=\"main flex\"\n #webcam\n [trigger]=\"trigger\"\n (imageCapture)=\"handleImage($event)\"\n (initError)=\"handleInitError($event)\"\n (videoReady)=\"videoReady($event)\"\n type=\"selfie\"\n >\n </ngx-scandoc-webcam>\n </ng-container>\n <div\n class=\"previewData\"\n *ngIf=\"preview\"\n style=\"\n z-index: 20;\n position: absolute;\n width: 100%;\n height: 100%;\n flex: 1;\n display: flex;\n flex-direction: row;\n \"\n >\n <div\n class=\"scanPreview\"\n style=\"display: flex; flex-direction: column; flex: 1\"\n >\n <div\n style=\"flex: 1\"\n class=\"image\"\n [style.background-image]=\"'url(' + preview + ')'\"\n ></div>\n </div>\n </div>\n </div>\n\n <footer class=\"p-8 flex-row\">\n <button\n [disabled]=\"!cameraReady\"\n class=\"w-100-p\"\n *ngIf=\"!preview\"\n mat-raised-button\n (click)=\"scan()\"\n >\n <ng-container> {{ \"scandoc.result.takeSelfie\" | translate }} </ng-container>\n </button>\n\n <div\n class=\"w-100-p flex-row flex\"\n *ngIf=\"preview\"\n style=\"align-items: center\"\n >\n <button style=\"flex: 1\" class=\"mr-4\" mat-raised-button (click)=\"retry()\">\n {{ \"scandoc.retry\" | translate }}\n </button>\n\n <button\n style=\"flex: 1\"\n class=\"ml-4\"\n mat-raised-button\n (click)=\"continue()\"\n >\n {{ \"scandoc.continueWithSelectedImage\" | translate }}\n </button>\n </div>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1;background-color:#f5f5f5}.flex{flex:1}.flex-column{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.wraper{position:relative;overflow:hidden}h3{color:#459ae5;font-size:16px}.preview{width:100%;border-radius:1%}.subhead{height:55px;padding-top:8px}footer button{box-shadow:none!important;height:45px;min-height:45px;border:1px solid rgba(0,0,0,.12);text-transform:uppercase}.error .title{font-size:22px}.error ul{font-size:18px}.mr-4{margin-right:4px}.ml-4{margin-left:4px}.p-16{padding:16px}.p-8{padding:8px}.py-16{padding:16px 0}.w-100-p{width:100%}.scanPreview{padding:16px}.scanPreview .image{background-position:center;background-repeat:no-repeat;background-size:contain}.page-header{display:flex;flex-direction:row;align-items:center}.page-header button{height:100%}@media only screen and (max-width: 768px){header .title{font-size:12px!important;line-height:18px!important}}\n", ".page-header{z-index:2000;height:64px;padding:0;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.12)}.page-header .title{padding-left:24px;line-height:64px;font-size:18px}.page-header .separator{width:1px;background-color:#0000001f;height:100%}.page-header .total{line-height:64px}.page-header .total span{font-weight:700}.page-footer{height:64px}.page-footer button{margin-left:24px;box-shadow:none!important}\n"] }]
91
+ args: [{ selector: 'ngx-scandoc-selfie', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"page-header\">\n <div class=\"title\">\n {{ \"scandoc.result.takeSelfie\" | translate }}\n </div>\n\n <span style=\"flex: 1\"></span>\n\n <ng-container *ngIf=\"cameraProvider.$showSwitchSelfie | async\">\n <div class=\"separator\"></div>\n <div style=\"padding: 0px 16px\">\n <ngx-scan-camera-switch></ngx-scan-camera-switch>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"separator\"></div>\n\n <button mat-button (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n</header>\n\n\n<div class=\"flex-column flex\">\n <div #wraper class=\"wraper flex flex-row\">\n <div\n style=\"\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: whitesmoke;\n \"\n *ngIf=\"!cameraReady && !preview\"\n >\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <ng-container>\n <ngx-scandoc-webcam\n *ngIf=\"!preview\"\n class=\"main flex\"\n #webcam\n [trigger]=\"trigger\"\n (imageCapture)=\"handleImage($event)\"\n (initError)=\"handleInitError($event)\"\n (videoReady)=\"videoReady($event)\"\n type=\"selfie\"\n >\n </ngx-scandoc-webcam>\n </ng-container>\n <div\n class=\"previewData\"\n *ngIf=\"preview\"\n style=\"\n z-index: 20;\n position: absolute;\n width: 100%;\n height: 100%;\n flex: 1;\n display: flex;\n flex-direction: row;\n \"\n >\n <div\n class=\"scanPreview\"\n style=\"display: flex; flex-direction: column; flex: 1\"\n >\n <div\n style=\"flex: 1\"\n class=\"image\"\n [style.background-image]=\"'url(' + preview + ')'\"\n ></div>\n </div>\n </div>\n </div>\n\n <footer class=\"p-8 flex-row\">\n <button\n [disabled]=\"!cameraReady\"\n class=\"w-100-p\"\n *ngIf=\"!preview\"\n mat-raised-button\n (click)=\"scan()\"\n >\n <ng-container> {{ \"scandoc.result.takeSelfie\" | translate }} </ng-container>\n </button>\n\n <div\n class=\"w-100-p flex-row flex\"\n *ngIf=\"preview\"\n style=\"align-items: center\"\n >\n <button style=\"flex: 1\" class=\"mr-4\" mat-raised-button (click)=\"retry()\">\n {{ \"scandoc.retry\" | translate }}\n </button>\n\n <button\n style=\"flex: 1\"\n class=\"ml-4\"\n mat-raised-button\n (click)=\"continue()\"\n >\n {{ \"scandoc.continueWithSelectedImage\" | translate }}\n </button>\n </div>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column!important;flex:1;background-color:#f5f5f5}.flex{flex:1}.flex-column{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.wraper{position:relative;overflow:hidden}h3{color:#459ae5;font-size:16px}.preview{width:100%;border-radius:1%}.subhead{height:55px;padding-top:8px}footer button{box-shadow:none!important;height:45px;min-height:45px;border:1px solid rgba(0,0,0,.12);text-transform:uppercase}.error .title{font-size:22px}.error ul{font-size:18px}.mr-4{margin-right:4px}.ml-4{margin-left:4px}.p-16{padding:16px}.p-8{padding:8px}.py-16{padding:16px 0}.w-100-p{width:100%}.scanPreview{padding:16px}.scanPreview .image{background-position:center;background-repeat:no-repeat;background-size:contain}.page-header{display:flex;flex-direction:row;align-items:center}.page-header button{height:100%}@media only screen and (max-width: 768px){header .title{font-size:12px!important;line-height:18px!important}}\n", ".page-header{z-index:2000;height:64px;padding:0;overflow:hidden;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.12)}.page-header .title{padding-left:24px;line-height:64px;font-size:18px}.page-header .separator{width:1px;background-color:#0000001f;height:100%}.page-header .total{line-height:64px}.page-header .total span{font-weight:700}.page-footer{height:64px}.page-footer button{margin-left:24px;box-shadow:none!important}\n"] }]
92
92
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MatDialogRef }, { type: i2.NgxScandocCameraProvider }, { type: i3.ScanProvider }, { type: i4.NgxScandocDialogsCoreProvider }]; }, propDecorators: { actions: [{
93
93
  type: Output
94
94
  }] } });
@@ -1,11 +1,11 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { DialogsModule } from '../dialogs/dialogs.module';
3
3
  import { HttpErrorInterceptor } from '../providers/interceptor.provider';
4
- import { NgxScandocAuthProvider } from '../providers/auth.provider';
5
4
  import { ScanProvider } from '../providers/scan.provider';
6
5
  import { HTTP_INTERCEPTORS } from '@angular/common/http';
7
6
  import { NgxScandocCameraProvider } from '../providers/camera.provider';
8
7
  import { AUTH_CONFIG_TOKEN, SCAN_CONFIG_TOKEN } from '../core/tokens/config.tokens';
8
+ import { NgxScanDocTranslationProvider } from '../providers/translation.provider';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../dialogs/dialogs.module";
11
11
  export class NgxScandocModule {
@@ -13,8 +13,6 @@ export class NgxScandocModule {
13
13
  return {
14
14
  ngModule: NgxScandocModule,
15
15
  providers: [
16
- NgxScandocCameraProvider,
17
- NgxScandocAuthProvider,
18
16
  { provide: AUTH_CONFIG_TOKEN, useValue: config.auth },
19
17
  ScanProvider,
20
18
  { provide: SCAN_CONFIG_TOKEN, useValue: config.scan },
@@ -23,9 +21,14 @@ export class NgxScandocModule {
23
21
  useClass: HttpErrorInterceptor,
24
22
  multi: true,
25
23
  },
24
+ NgxScanDocTranslationProvider,
25
+ NgxScandocCameraProvider,
26
+ // NgxScandocAuthProvider,
26
27
  ],
27
28
  };
28
29
  }
30
+ constructor() {
31
+ }
29
32
  }
30
33
  NgxScandocModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgxScandocModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
34
  NgxScandocModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NgxScandocModule, imports: [i1.DialogsModule], exports: [DialogsModule] });
@@ -37,5 +40,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
37
40
  imports: [DialogsModule.forRoot()],
38
41
  exports: [DialogsModule],
39
42
  }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNjYW5kb2MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL2xpYi9uZ3gtc2NhbmRvYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBUXBGLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FDWixNQUFzQjtRQUV0QixPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBRVQsd0JBQXdCO2dCQUN4QixzQkFBc0I7Z0JBQ3RCLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNyRCxZQUFZO2dCQUNaLEVBQUUsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUVwRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzZHQXJCVSxnQkFBZ0I7OEdBQWhCLGdCQUFnQix5Q0FGakIsYUFBYTs4R0FFWixnQkFBZ0IsWUFIakIsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUN2QixhQUFhOzJGQUVaLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERpYWxvZ3NNb2R1bGUgfSBmcm9tICcuLi9kaWFsb2dzL2RpYWxvZ3MubW9kdWxlJztcbmltcG9ydCB7IEh0dHBFcnJvckludGVyY2VwdG9yIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2ludGVyY2VwdG9yLnByb3ZpZGVyJztcbmltcG9ydCB7IE5neFNjYW5kb2NBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcnMvYXV0aC5wcm92aWRlcic7XG5pbXBvcnQgeyBTY2FuUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcnMvc2Nhbi5wcm92aWRlcic7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGhDb25maWcsIFNjYW5Db25maWcsIFNjYW5EYXRhQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzL2NvbmZpZyc7XG5pbXBvcnQgeyBOZ3hTY2FuZG9jQ2FtZXJhUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcnMvY2FtZXJhLnByb3ZpZGVyJztcbmltcG9ydCB7IEFVVEhfQ09ORklHX1RPS0VOLCBTQ0FOX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2NvcmUvdG9rZW5zL2NvbmZpZy50b2tlbnMnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtEaWFsb2dzTW9kdWxlLmZvclJvb3QoKV0sXG4gIGV4cG9ydHM6IFtEaWFsb2dzTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4U2NhbmRvY01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGNvbmZpZzogU2NhbkRhdGFDb25maWdcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hTY2FuZG9jTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hTY2FuZG9jTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG5cbiAgICAgICAgTmd4U2NhbmRvY0NhbWVyYVByb3ZpZGVyLFxuICAgICAgICBOZ3hTY2FuZG9jQXV0aFByb3ZpZGVyLFxuICAgICAgICB7IHByb3ZpZGU6IEFVVEhfQ09ORklHX1RPS0VOLCB1c2VWYWx1ZTogY29uZmlnLmF1dGggfSxcbiAgICAgICAgU2NhblByb3ZpZGVyLFxuICAgICAgICB7IHByb3ZpZGU6U0NBTl9DT05GSUdfVE9LRU4sIHVzZVZhbHVlOiBjb25maWcuc2NhbiB9LFxuXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICB1c2VDbGFzczogSHR0cEVycm9ySW50ZXJjZXB0b3IsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
43
+ }], ctorParameters: function () { return []; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNjYW5kb2MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL2xpYi9uZ3gtc2NhbmRvYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBUWxGLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FDWixNQUFzQjtRQUV0QixPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBRVQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JELFlBQVk7Z0JBQ1osRUFBRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBRXBEO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNELDZCQUE2QjtnQkFDN0Isd0JBQXdCO2dCQUN6QiwwQkFBMEI7YUFDMUI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEO0lBRUEsQ0FBQzs7NkdBMUJVLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLHlDQUZqQixhQUFhOzhHQUVaLGdCQUFnQixZQUhqQixhQUFhLENBQUMsT0FBTyxFQUFFLEVBQ3ZCLGFBQWE7MkZBRVosZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGlhbG9nc01vZHVsZSB9IGZyb20gJy4uL2RpYWxvZ3MvZGlhbG9ncy5tb2R1bGUnO1xuaW1wb3J0IHsgSHR0cEVycm9ySW50ZXJjZXB0b3IgfSBmcm9tICcuLi9wcm92aWRlcnMvaW50ZXJjZXB0b3IucHJvdmlkZXInO1xuaW1wb3J0IHsgTmd4U2NhbmRvY0F1dGhQcm92aWRlciB9IGZyb20gJy4uL3Byb3ZpZGVycy9hdXRoLnByb3ZpZGVyJztcbmltcG9ydCB7IFNjYW5Qcm92aWRlciB9IGZyb20gJy4uL3Byb3ZpZGVycy9zY2FuLnByb3ZpZGVyJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQXV0aENvbmZpZywgU2NhbkNvbmZpZywgU2NhbkRhdGFDb25maWcgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMvY29uZmlnJztcbmltcG9ydCB7IE5neFNjYW5kb2NDYW1lcmFQcm92aWRlciB9IGZyb20gJy4uL3Byb3ZpZGVycy9jYW1lcmEucHJvdmlkZXInO1xuaW1wb3J0IHsgQVVUSF9DT05GSUdfVE9LRU4sIFNDQU5fQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vY29yZS90b2tlbnMvY29uZmlnLnRva2Vucyc7XG5pbXBvcnQgeyBOZ3hTY2FuRG9jVHJhbnNsYXRpb25Qcm92aWRlciB9IGZyb20gJy4uL3Byb3ZpZGVycy90cmFuc2xhdGlvbi5wcm92aWRlcic7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW0RpYWxvZ3NNb2R1bGUuZm9yUm9vdCgpXSxcbiAgZXhwb3J0czogW0RpYWxvZ3NNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hTY2FuZG9jTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgY29uZmlnOiBTY2FuRGF0YUNvbmZpZ1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFNjYW5kb2NNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFNjYW5kb2NNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcblxuICAgICAgICB7IHByb3ZpZGU6IEFVVEhfQ09ORklHX1RPS0VOLCB1c2VWYWx1ZTogY29uZmlnLmF1dGggfSxcbiAgICAgICAgU2NhblByb3ZpZGVyLFxuICAgICAgICB7IHByb3ZpZGU6U0NBTl9DT05GSUdfVE9LRU4sIHVzZVZhbHVlOiBjb25maWcuc2NhbiB9LFxuXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICB1c2VDbGFzczogSHR0cEVycm9ySW50ZXJjZXB0b3IsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIE5neFNjYW5Eb2NUcmFuc2xhdGlvblByb3ZpZGVyLFxuICAgICAgICBOZ3hTY2FuZG9jQ2FtZXJhUHJvdmlkZXIsXG4gICAgICAgLy8gTmd4U2NhbmRvY0F1dGhQcm92aWRlcixcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCl7XG5cbiAgfVxufVxuIl19
@@ -1,10 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { Subject, of } from 'rxjs';
3
- import { WebcamUtil } from '../core/components/webcam/util/webcam.util';
2
+ import { Subject, from, of } from 'rxjs';
3
+ import { map, switchMap } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
5
  export class NgxScandocCameraProvider {
6
6
  constructor() {
7
- this.mediaDevices = [];
8
7
  this.selfie$ = new Subject();
9
8
  this.rectPosition = {
10
9
  l: 0,
@@ -32,14 +31,23 @@ export class NgxScandocCameraProvider {
32
31
  if (this.mediaDevices) {
33
32
  return of(this.mediaDevices);
34
33
  }
35
- return this.devices;
34
+ return this.devices.asObservable();
35
+ }
36
+ preloadVideo() {
37
+ return from(navigator.mediaDevices.getUserMedia({ video: true })).pipe(map((mediaStream) => {
38
+ mediaStream.getTracks().forEach((track) => {
39
+ track.stop();
40
+ });
41
+ }));
36
42
  }
37
43
  setup() {
38
44
  console.warn('SETUP');
39
45
  this.$showSwitch.subscribe((s) => {
40
46
  console.log(s);
41
47
  });
42
- WebcamUtil.getAvailableVideoInputs().subscribe((mediaDevices) => {
48
+ // console.time('device');
49
+ const devices$ = this.preloadVideo().pipe(switchMap(() => from(navigator.mediaDevices.enumerateDevices()).pipe(map((inputDevices) => inputDevices.filter((m) => m.kind == 'videoinput')))));
50
+ devices$.subscribe((mediaDevices) => {
43
51
  console.log('[DEVICES]', mediaDevices, mediaDevices.map((d) => d.label));
44
52
  this.mediaDevices = mediaDevices;
45
53
  this.multipleWebcamsAvailable = mediaDevices && mediaDevices.length > 1;
@@ -71,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
71
79
  providedIn: 'root',
72
80
  }]
73
81
  }], ctorParameters: function () { return []; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy9jYW1lcmEucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQW1CLE9BQU8sRUFBUSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUl4RSxNQUFNLE9BQU8sd0JBQXdCO0lBNEJuQztRQTNCQSxpQkFBWSxHQUFNLEVBQUUsQ0FBQztRQUlyQixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV4QixpQkFBWSxHQUFHO1lBQ2IsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixFQUFFLEVBQUUsQ0FBQztZQUNMLEVBQUUsRUFBRSxDQUFDO1NBQ04sQ0FBQztRQUNGLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU1QixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0IsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEIsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLE9BQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFakIsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUI7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsQ0FDNUMsQ0FBQyxZQUErQixFQUFFLEVBQUU7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDakMsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFFeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7cUhBakZVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdlYlNvY2tldCB9IGZyb20gJ3J4anMvd2ViU29ja2V0JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgV2ViY2FtVXRpbCB9IGZyb20gJy4uL2NvcmUvY29tcG9uZW50cy93ZWJjYW0vdXRpbC93ZWJjYW0udXRpbCc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmd4U2NhbmRvY0NhbWVyYVByb3ZpZGVyIHtcbiAgbWVkaWFEZXZpY2VzOiBhbnk9W107XG5cbiAgZGV2aWNlSWQ6IGFueTtcblxuICBzZWxmaWUkID0gbmV3IFN1YmplY3QoKTtcblxuICByZWN0UG9zaXRpb24gPSB7XG4gICAgbDogMCxcbiAgICB0OiAwLFxuICAgIGg6IDAsXG4gICAgdzogMCxcbiAgICBfdzogMCxcbiAgICBfaDogMCxcbiAgfTtcbiAgc3dpdGNoQ2FtZXJhID0gbmV3IFN1YmplY3QoKTtcbiAgJHNob3dTd2l0Y2hTZWxmaWUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNhbWVyYVJlYWR5ID0gZmFsc2U7XG5cbiAgJHNob3dTd2l0Y2ggPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNhbWVyYVN3aXRjaGVkID0gbmV3IFN1YmplY3QoKTtcblxuICBkZXZpY2VzID0gbmV3IFN1YmplY3QoKTtcblxuICBtdWx0aXBsZVdlYmNhbXNBdmFpbGFibGUgPSBmYWxzZTtcbiAgaWQgPSBNYXRoLnJhbmRvbSgpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLndhcm4oJ1BST1ZJREVSIElOSVQnLCB0aGlzLmlkKTtcbiAgICB0aGlzLnNldHVwKCk7XG4gIH1cblxuICBnZXQgaGludFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnJlY3RQb3NpdGlvbi50ICsgdGhpcy5yZWN0UG9zaXRpb24uaCArIDU7XG4gIH1cblxuICBnZXREZXZpY2VzKCkge1xuICAgIGlmICh0aGlzLm1lZGlhRGV2aWNlcykge1xuICAgICAgcmV0dXJuIG9mKHRoaXMubWVkaWFEZXZpY2VzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZXZpY2VzO1xuICB9XG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc29sZS53YXJuKCdTRVRVUCcpO1xuICAgIHRoaXMuJHNob3dTd2l0Y2guc3Vic2NyaWJlKChzKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhzKTtcbiAgICB9KTtcbiAgICBXZWJjYW1VdGlsLmdldEF2YWlsYWJsZVZpZGVvSW5wdXRzKCkuc3Vic2NyaWJlKFxuICAgICAgKG1lZGlhRGV2aWNlczogTWVkaWFEZXZpY2VJbmZvW10pID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgJ1tERVZJQ0VTXScsXG4gICAgICAgICAgbWVkaWFEZXZpY2VzLFxuICAgICAgICAgIG1lZGlhRGV2aWNlcy5tYXAoKGQpID0+IGQubGFiZWwpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubWVkaWFEZXZpY2VzID0gbWVkaWFEZXZpY2VzO1xuICAgICAgICB0aGlzLm11bHRpcGxlV2ViY2Ftc0F2YWlsYWJsZSA9IG1lZGlhRGV2aWNlcyAmJiBtZWRpYURldmljZXMubGVuZ3RoID4gMTtcblxuICAgICAgICB0aGlzLmRldmljZXMubmV4dChtZWRpYURldmljZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgc2V0RGVmYXVsdCgpIHtcbiAgICBpZiAodGhpcy5kZXZpY2VJZCkge1xuICAgICAgdGhpcy5zd2l0Y2hDYW1lcmEubmV4dCh0aGlzLmRldmljZUlkKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDYW1lcmEoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc3dpdGNoQ2FtZXJhLm5leHQoZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNhbWVyYVdhc1N3aXRjaGVkKGRldmljZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnW2FjdGl2ZSBkZXZpY2VdJywgZGV2aWNlSWQpO1xuICAgIHRoaXMuZGV2aWNlSWQgPSBkZXZpY2VJZDtcbiAgICB0aGlzLmNhbWVyYVJlYWR5ID0gdHJ1ZTtcbiAgfVxuICBnZXQgd2ViY2FtT2JzZXJ2YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zd2l0Y2hDYW1lcmEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy9jYW1lcmEucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQW1CLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3hELE1BQU0sT0FBTyx3QkFBd0I7SUE0Qm5DO1FBdkJBLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXhCLGlCQUFZLEdBQUc7WUFDYixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLEVBQUUsRUFBRSxDQUFDO1lBQ0wsRUFBRSxFQUFFLENBQUM7U0FDTixDQUFDO1FBQ0YsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTVCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV4Qiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFDakMsT0FBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVqQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFD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QztJQUMxQyxDQUFDOztxSEFuR1Usd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd2ViU29ja2V0IH0gZnJvbSAncnhqcy93ZWJTb2NrZXQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdlYmNhbVV0aWwgfSBmcm9tICcuLi9jb3JlL2NvbXBvbmVudHMvd2ViY2FtL3V0aWwvd2ViY2FtLnV0aWwnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNjYW5kb2NDYW1lcmFQcm92aWRlciB7XG4gIG1lZGlhRGV2aWNlczogYW55O1xuXG4gIGRldmljZUlkOiBhbnk7XG5cbiAgc2VsZmllJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcmVjdFBvc2l0aW9uID0ge1xuICAgIGw6IDAsXG4gICAgdDogMCxcbiAgICBoOiAwLFxuICAgIHc6IDAsXG4gICAgX3c6IDAsXG4gICAgX2g6IDAsXG4gIH07XG4gIHN3aXRjaENhbWVyYSA9IG5ldyBTdWJqZWN0KCk7XG4gICRzaG93U3dpdGNoU2VsZmllID0gbmV3IFN1YmplY3QoKTtcblxuICBjYW1lcmFSZWFkeSA9IGZhbHNlO1xuXG4gICRzaG93U3dpdGNoID0gbmV3IFN1YmplY3QoKTtcblxuICBjYW1lcmFTd2l0Y2hlZCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgZGV2aWNlcyA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgbXVsdGlwbGVXZWJjYW1zQXZhaWxhYmxlID0gZmFsc2U7XG4gIGlkID0gTWF0aC5yYW5kb20oKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc29sZS53YXJuKCdQUk9WSURFUiBJTklUJywgdGhpcy5pZCk7XG4gICAgdGhpcy5zZXR1cCgpO1xuICB9XG5cbiAgZ2V0IGhpbnRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5yZWN0UG9zaXRpb24udCArIHRoaXMucmVjdFBvc2l0aW9uLmggKyA1O1xuICB9XG5cbiAgZ2V0RGV2aWNlcygpIHtcbiAgICBpZiAodGhpcy5tZWRpYURldmljZXMpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLm1lZGlhRGV2aWNlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlbG9hZFZpZGVvKCkge1xuICAgIHJldHVybiBmcm9tKG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHRydWUgfSkpLnBpcGUoXG4gICAgICBtYXAoKG1lZGlhU3RyZWFtKSA9PiB7XG4gICAgICAgIG1lZGlhU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2goKHRyYWNrKSA9PiB7XG4gICAgICAgICAgdHJhY2suc3RvcCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBzZXR1cCgpIHtcbiAgICBjb25zb2xlLndhcm4oJ1NFVFVQJyk7XG4gICAgdGhpcy4kc2hvd1N3aXRjaC5zdWJzY3JpYmUoKHMpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKHMpO1xuICAgIH0pO1xuICAgIC8vIGNvbnNvbGUudGltZSgnZGV2aWNlJyk7XG5cbiAgICBjb25zdCBkZXZpY2VzJCA9IHRoaXMucHJlbG9hZFZpZGVvKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICBmcm9tKG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpKS5waXBlKFxuICAgICAgICAgIG1hcCgoaW5wdXREZXZpY2VzOiBNZWRpYURldmljZUluZm9bXSkgPT5cbiAgICAgICAgICAgIGlucHV0RGV2aWNlcy5maWx0ZXIoKG0pID0+IG0ua2luZCA9PSAndmlkZW9pbnB1dCcpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICAgIGRldmljZXMkLnN1YnNjcmliZSgobWVkaWFEZXZpY2VzOiBNZWRpYURldmljZUluZm9bXSkgPT4ge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICdbREVWSUNFU10nLFxuICAgICAgICBtZWRpYURldmljZXMsXG4gICAgICAgIG1lZGlhRGV2aWNlcy5tYXAoKGQpID0+IGQubGFiZWwpXG4gICAgICApO1xuICAgICAgdGhpcy5tZWRpYURldmljZXMgPSBtZWRpYURldmljZXM7XG4gICAgICB0aGlzLm11bHRpcGxlV2ViY2Ftc0F2YWlsYWJsZSA9IG1lZGlhRGV2aWNlcyAmJiBtZWRpYURldmljZXMubGVuZ3RoID4gMTtcbiAgICAgIHRoaXMuZGV2aWNlcy5uZXh0KG1lZGlhRGV2aWNlcyk7XG4gICAgfSk7XG4gIH1cbiAgc2V0RGVmYXVsdCgpIHtcbiAgICBpZiAodGhpcy5kZXZpY2VJZCkge1xuICAgICAgdGhpcy5zd2l0Y2hDYW1lcmEubmV4dCh0aGlzLmRldmljZUlkKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDYW1lcmEoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc3dpdGNoQ2FtZXJhLm5leHQoZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNhbWVyYVdhc1N3aXRjaGVkKGRldmljZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnW2FjdGl2ZSBkZXZpY2VdJywgZGV2aWNlSWQpO1xuICAgIHRoaXMuZGV2aWNlSWQgPSBkZXZpY2VJZDtcbiAgICB0aGlzLmNhbWVyYVJlYWR5ID0gdHJ1ZTtcbiAgfVxuICBnZXQgd2ViY2FtT2JzZXJ2YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zd2l0Y2hDYW1lcmEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,25 +1,23 @@
1
1
  import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
2
  import { switchMap, catchError } from 'rxjs/operators';
3
- import { SCAN_CONFIG_TOKEN } from '../core/tokens/config.tokens';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@ngx-translate/core";
6
5
  import * as i2 from "@angular/common";
7
6
  const TRANSLATION_PROVIDER = new InjectionToken('Injection token for translation providers.');
8
7
  export class NgxScanDocTranslationProvider {
9
- constructor(translate, injector, providers, platformLocation) {
8
+ constructor(translate, injector,
9
+ //@Optional() @Inject(SCAN_CONFIG_TOKEN) config: ScanConfig,
10
+ providers, platformLocation) {
10
11
  this.translate = translate;
11
12
  this.injector = injector;
12
13
  this.platformLocation = platformLocation;
13
- this.config = this.injector.get(SCAN_CONFIG_TOKEN);
14
+ console.log('MM', Math.random());
14
15
  this.customLoader = this.translate.currentLoader;
15
- if (this.config.useTranslation) {
16
- // console.log(this.translate)
17
- this.defaultLang = 'en';
18
- translate.setDefaultLang(this.defaultLang);
19
- if (providers && providers.length > 0) {
20
- for (const provider of providers) {
21
- this.addTranslationFolder(provider.name, provider.source);
22
- }
16
+ //console.log('config',config)
17
+ // console.log(this.translate)
18
+ if (providers && providers.length > 0) {
19
+ for (const provider of providers) {
20
+ this.addTranslationFolder(provider.name, provider.source);
23
21
  }
24
22
  }
25
23
  }
@@ -31,6 +29,10 @@ export class NgxScanDocTranslationProvider {
31
29
  // .join('');
32
30
  // return baseHref != '' ? `/${baseHref}${path}` : path;
33
31
  }
32
+ setDefaultLang(lang) {
33
+ this.defaultLang = lang;
34
+ this.translate.setDefaultLang(this.defaultLang);
35
+ }
34
36
  addTranslationFolder(name = '', path = '') {
35
37
  console.log(name, path, this.userLang, this.defaultLang);
36
38
  if (!this.customLoader.providerRegistered(name)) {
@@ -122,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
122
124
  type: Inject,
123
125
  args: [TRANSLATION_PROVIDER]
124
126
  }] }, { type: i2.PlatformLocation }]; } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvcHJvdmlkZXJzL3RyYW5zbGF0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBWSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUNqRSxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUM3Qyw0Q0FBNEMsQ0FDN0MsQ0FBQztBQVNGLE1BQU0sT0FBTyw2QkFBNkI7SUFNeEMsWUFDUyxTQUEyQixFQUMxQixRQUFrQixFQUNnQixTQUFnQyxFQUNsRSxnQkFBa0M7UUFIbkMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTnBDLFdBQU0sR0FBYSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBUTlELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUF3QyxDQUFDO1FBQzVFLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUM7WUFDOUIsOEJBQThCO1lBRTlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTNDLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNB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QUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDM0QsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUNoQyxDQUFDO2FBQ0g7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDcEUsa0JBQWtCO29CQUNsQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7d0JBQ1gsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNwRDtvQkFDRCxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzBIQTVJVSw2QkFBNkIsMEVBU2xCLG9CQUFvQjs4SEFUL0IsNkJBQTZCLGNBRjVCLE1BQU07MkZBRVAsNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyUHJvdmlkZXIgfSBmcm9tICcuL3RyYW5zbGF0ZS1sb2FkZXIucHJvdmlkZXInO1xuXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTY2FuQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzL2NvbmZpZyc7XG5pbXBvcnQgeyBTQ0FOX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2NvcmUvdG9rZW5zL2NvbmZpZy50b2tlbnMnO1xuY29uc3QgVFJBTlNMQVRJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdJbmplY3Rpb24gdG9rZW4gZm9yIHRyYW5zbGF0aW9uIHByb3ZpZGVycy4nXG4pO1xuXG5pbnRlcmZhY2UgVHJhbnNsYXRpb25Qcm92aWRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmd4U2NhbkRvY1RyYW5zbGF0aW9uUHJvdmlkZXIge1xuICBwdWJsaWMgZGVmYXVsdExhbmchOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyTGFuZyE6IHN0cmluZztcbiAgcHJpdmF0ZSBjdXN0b21Mb2FkZXIhOiBUcmFuc2xhdGVMb2FkZXJQcm92aWRlcjtcbiAgcHJpdmF0ZSBjb25maWc6IFNjYW5Db25maWc9dGhpcy5pbmplY3Rvci5nZXQoU0NBTl9DT05GSUdfVE9LRU4pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUUkFOU0xBVElPTl9QUk9WSURFUikgcHJvdmlkZXJzOiBUcmFuc2xhdGlvblByb3ZpZGVyW10sXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uXG4gICkge1xuICAgIHRoaXMuY3VzdG9tTG9hZGVyID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExvYWRlciBhcyBUcmFuc2xhdGVMb2FkZXJQcm92aWRlcjtcbiAgICBpZih0aGlzLmNvbmZpZy51c2VUcmFuc2xhdGlvbil7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy50cmFuc2xhdGUpXG5cbiAgICB0aGlzLmRlZmF1bHRMYW5nID0gJ2VuJztcbiAgICB0cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcodGhpcy5kZWZhdWx0TGFuZyk7XG5cbiAgICBpZiAocHJvdmlkZXJzICYmIHByb3ZpZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0aGlzLmFkZFRyYW5zbGF0aW9uRm9sZGVyKHByb3ZpZGVyLm5hbWUsIHByb3ZpZGVyLnNvdXJjZSk7XG4gICAgICB9XG4gICAgfX1cbiAgfVxuICBwcml2YXRlIHBhdGgocGF0aDogYW55KSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gICAgLy8gY29uc3QgYmFzZUhyZWYgPSB0aGlzLnBsYXRmb3JtTG9jYXRpb25cbiAgICAvLyAgIC5nZXRCYXNlSHJlZkZyb21ET00oKVxuICAgIC8vICAgLnNwbGl0KCcvJylcbiAgICAvLyAgIC5qb2luKCcnKTtcblxuICAgIC8vIHJldHVybiBiYXNlSHJlZiAhPSAnJyA/IGAvJHtiYXNlSHJlZn0ke3BhdGh9YCA6IHBhdGg7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNsYXRpb25Gb2xkZXIobmFtZTogc3RyaW5nID0gJycsIHBhdGg6IHN0cmluZyA9ICcnKSB7XG4gICAgY29uc29sZS5sb2cobmFtZSwgcGF0aCwgdGhpcy51c2VyTGFuZywgdGhpcy5kZWZhdWx0TGFuZyk7XG5cbiAgICBpZiAoIXRoaXMuY3VzdG9tTG9hZGVyLnByb3ZpZGVyUmVnaXN0ZXJlZChuYW1lKSkge1xuICAgICAgdGhpcy5jdXN0b21Mb2FkZXIucmVnaXN0ZXJQcm92aWRlcihuYW1lLCB0aGlzLnBhdGgocGF0aCkpO1xuXG4gICAgICBpZiAodGhpcy51c2VyTGFuZykge1xuICAgICAgICBjb25zdCBleGlzdEN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb24oXG4gICAgICAgICAgdGhpcy51c2VyTGFuZyxcbiAgICAgICAgICB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgICAgICFleGlzdEN1cnJlbnRMYW5nXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWRUcmFuc2xhdGlvbih0aGlzLmRlZmF1bHRMYW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZywgZmFsbGJhY2s/OiBzdHJpbmcsIHVzZUxhbmcgPSB0cnVlKSB7XG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0VHJhbnNsYXRpb24obGFuZykuc3Vic2NyaWJlKFxuICAgICAgKHJlc3ApID0+IHtcbiAgICAgICAgdGhpcy5vblRyYW5zbGF0aW9uQ2hhbmdlZChsYW5nKTtcblxuICAgICAgICBpZiAodXNlTGFuZykge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpO1xuICAgICAgICAgIH0sIDIwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzLnRyYW5zbGF0ZS5yZWxvYWRMYW5nKGxhbmcpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoZmFsbGJhY2sgJiYgZmFsbGJhY2sgIT09IGxhbmcpIHtcbiAgICAgICAgICB0aGlzLmxvYWRUcmFuc2xhdGlvbihmYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcsIGZhbGxiYWNrPzogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0VHJhbnNsYXRpb24obGFuZykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBpZiAoZmFsbGJhY2sgJiYgZmFsbGJhY2sgIT09IGxhbmcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUcmFuc2xhdGlvbihmYWxsYmFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uVHJhbnNsYXRpb25DaGFuZ2VkKGxhbmcpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25DaGFuZ2VkKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uVHJhbnNsYXRpb25DaGFuZ2UubmV4dCh7XG4gICAgICBsYW5nLFxuICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmN1c3RvbUxvYWRlci5nZXRGdWxsVHJhbnNsYXRpb25KU09OKGxhbmcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVzZShsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuY3VzdG9tTG9hZGVyLmluaXQobGFuZyk7XG5cbiAgICByZXR1cm4gdGhpcy51cGRhdGVUcmFuc2xhdGlvbihsYW5nKTtcbiAgfVxuICBmb3JtcyhpdGVtOiBhbnksIG5hbWVzcGFjZSA9IG51bGwpIHtcbiAgICBpZiAoaXRlbS5maWVsZEdyb3VwKSB7XG4gICAgICBpdGVtLmZpZWxkR3JvdXAgPSBpdGVtLmZpZWxkR3JvdXAubWFwKChmaWVsZDogYW55KSA9PiB0aGlzLmZvcm1zKGZpZWxkKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gbmFtZXNwYWNlID8gbmFtZXNwYWNlICsgJy4nIDogJyc7XG5cbiAgICBpZiAoXG4gICAgICBpdGVtLnByb3BzICYmXG4gICAgICAoaXRlbS5wcm9wcy5sYWJlbCB8fCBpdGVtLnByb3BzLnBsYWNlaG9sZGVyIHx8IGl0ZW0ucHJvcHMub3B0aW9ucylcbiAgICApIHtcbiAgICAgIGlmICghaXRlbS5leHByZXNzaW9ucykge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zID0ge307XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5wcm9wcy5sYWJlbCkge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zWydwcm9wcy5sYWJlbCddID0gdGhpcy50cmFuc2xhdGUuc3RyZWFtKFxuICAgICAgICAgIHByZWZpeCArIGl0ZW0ucHJvcHMubGFiZWxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLnByb3BzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgIGl0ZW0uZXhwcmVzc2lvbnNbJ3Byb3BzLnBsYWNlaG9sZGVyJ10gPSB0aGlzLnRyYW5zbGF0ZS5zdHJlYW0oXG4gICAgICAgICAgcHJlZml4ICsgaXRlbS5wcm9wcy5wbGFjZWhvbGRlclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5wcm9wcy5vcHRpb25zKSkge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zWydwcm9wcy5vcHRpb25zJ10gPSBpdGVtLnByb3BzLm9wdGlvbnMubWFwKChtOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhtKTtcbiAgICAgICAgICBpZiAobS5sYWJlbCkge1xuICAgICAgICAgICAgbS5sYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgbS5sYWJlbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvcHJvdmlkZXJzL3RyYW5zbGF0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBWSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd2RCxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUM3Qyw0Q0FBNEMsQ0FDN0MsQ0FBQztBQVNGLE1BQU0sT0FBTyw2QkFBNkI7SUFNeEMsWUFDUyxTQUEyQixFQUMxQixRQUFrQjtJQUMxQiw0REFBNEQ7SUFDbEIsU0FBZ0MsRUFDbEUsZ0JBQWtDO1FBSm5DLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHbEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUcxQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBd0MsQ0FBQztRQUM1RSw4QkFBOEI7UUFFOUIsOEJBQThCO1FBRzlCLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDM0Q7U0FDRjtJQUNILENBQUM7SUFDTyxJQUFJLENBQUMsSUFBUztRQUNwQixPQUFPLElBQUksQ0FBQztR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VyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQzNELE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDaEMsQ0FBQzthQUNIO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7b0JBQ3BFLGtCQUFrQjtvQkFDbEIsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO3dCQUNYLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDcEQ7b0JBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzswSEFuSlUsNkJBQTZCLDBFQVVsQixvQkFBb0I7OEhBVi9CLDZCQUE2QixjQUY1QixNQUFNOzJGQUVQLDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVdJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm1Mb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlclByb3ZpZGVyIH0gZnJvbSAnLi90cmFuc2xhdGUtbG9hZGVyLnByb3ZpZGVyJztcblxuaW1wb3J0IHsgc3dpdGNoTWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2NhbkNvbmZpZyB9IGZyb20gJy4uL2NvcmUvaW50ZXJmYWNlcy9jb25maWcnO1xuaW1wb3J0IHsgU0NBTl9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb3JlL3Rva2Vucy9jb25maWcudG9rZW5zJztcbmNvbnN0IFRSQU5TTEFUSU9OX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnSW5qZWN0aW9uIHRva2VuIGZvciB0cmFuc2xhdGlvbiBwcm92aWRlcnMuJ1xuKTtcblxuaW50ZXJmYWNlIFRyYW5zbGF0aW9uUHJvdmlkZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xufVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNjYW5Eb2NUcmFuc2xhdGlvblByb3ZpZGVyIHtcbiAgcHVibGljIGRlZmF1bHRMYW5nITogc3RyaW5nO1xuICBwdWJsaWMgdXNlckxhbmchOiBzdHJpbmc7XG4gIHByaXZhdGUgY3VzdG9tTG9hZGVyITogVHJhbnNsYXRlTG9hZGVyUHJvdmlkZXI7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIC8vQE9wdGlvbmFsKCkgQEluamVjdChTQ0FOX0NPTkZJR19UT0tFTikgY29uZmlnOiBTY2FuQ29uZmlnLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVFJBTlNMQVRJT05fUFJPVklERVIpIHByb3ZpZGVyczogVHJhbnNsYXRpb25Qcm92aWRlcltdLFxuICAgIHByaXZhdGUgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvblxuICApIHtcblxuICAgIGNvbnNvbGUubG9nKCdNTScsTWF0aC5yYW5kb20oKSlcbiAgICB0aGlzLmN1c3RvbUxvYWRlciA9IHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMb2FkZXIgYXMgVHJhbnNsYXRlTG9hZGVyUHJvdmlkZXI7XG4gICAgLy9jb25zb2xlLmxvZygnY29uZmlnJyxjb25maWcpXG5cbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnRyYW5zbGF0ZSlcblxuXG4gICAgaWYgKHByb3ZpZGVycyAmJiBwcm92aWRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiBwcm92aWRlcnMpIHtcbiAgICAgICAgdGhpcy5hZGRUcmFuc2xhdGlvbkZvbGRlcihwcm92aWRlci5uYW1lLCBwcm92aWRlci5zb3VyY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHBhdGgocGF0aDogYW55KSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gICAgLy8gY29uc3QgYmFzZUhyZWYgPSB0aGlzLnBsYXRmb3JtTG9jYXRpb25cbiAgICAvLyAgIC5nZXRCYXNlSHJlZkZyb21ET00oKVxuICAgIC8vICAgLnNwbGl0KCcvJylcbiAgICAvLyAgIC5qb2luKCcnKTtcblxuICAgIC8vIHJldHVybiBiYXNlSHJlZiAhPSAnJyA/IGAvJHtiYXNlSHJlZn0ke3BhdGh9YCA6IHBhdGg7XG4gIH1cblxuICBwdWJsaWMgc2V0RGVmYXVsdExhbmcobGFuZzpzdHJpbmcpe1xuIHRoaXMuZGVmYXVsdExhbmcgPSBsYW5nO1xuICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKHRoaXMuZGVmYXVsdExhbmcpO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zbGF0aW9uRm9sZGVyKG5hbWU6IHN0cmluZyA9ICcnLCBwYXRoOiBzdHJpbmcgPSAnJykge1xuICAgIGNvbnNvbGUubG9nKG5hbWUsIHBhdGgsIHRoaXMudXNlckxhbmcsIHRoaXMuZGVmYXVsdExhbmcpO1xuXG4gICAgaWYgKCF0aGlzLmN1c3RvbUxvYWRlci5wcm92aWRlclJlZ2lzdGVyZWQobmFtZSkpIHtcbiAgICAgIHRoaXMuY3VzdG9tTG9hZGVyLnJlZ2lzdGVyUHJvdmlkZXIobmFtZSwgdGhpcy5wYXRoKHBhdGgpKTtcblxuICAgICAgaWYgKHRoaXMudXNlckxhbmcpIHtcbiAgICAgICAgY29uc3QgZXhpc3RDdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIHRoaXMubG9hZFRyYW5zbGF0aW9uKFxuICAgICAgICAgIHRoaXMudXNlckxhbmcsXG4gICAgICAgICAgdGhpcy5kZWZhdWx0TGFuZyxcbiAgICAgICAgICAhZXhpc3RDdXJyZW50TGFuZ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb24odGhpcy5kZWZhdWx0TGFuZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcsIGZhbGxiYWNrPzogc3RyaW5nLCB1c2VMYW5nID0gdHJ1ZSkge1xuICAgIHRoaXMudHJhbnNsYXRlLmdldFRyYW5zbGF0aW9uKGxhbmcpLnN1YnNjcmliZShcbiAgICAgIChyZXNwKSA9PiB7XG4gICAgICAgIHRoaXMub25UcmFuc2xhdGlvbkNoYW5nZWQobGFuZyk7XG5cbiAgICAgICAgaWYgKHVzZUxhbmcpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nKTtcbiAgICAgICAgICB9LCAyMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy50cmFuc2xhdGUucmVsb2FkTGFuZyhsYW5nKVxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKGZhbGxiYWNrICYmIGZhbGxiYWNrICE9PSBsYW5nKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb24oZmFsbGJhY2spO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVHJhbnNsYXRpb24obGFuZzogc3RyaW5nLCBmYWxsYmFjaz86IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldFRyYW5zbGF0aW9uKGxhbmcpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgaWYgKGZhbGxiYWNrICYmIGZhbGxiYWNrICE9PSBsYW5nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlVHJhbnNsYXRpb24oZmFsbGJhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblRyYW5zbGF0aW9uQ2hhbmdlZChsYW5nKTtcblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRyYW5zbGF0aW9uQ2hhbmdlZChsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0ZS5vblRyYW5zbGF0aW9uQ2hhbmdlLm5leHQoe1xuICAgICAgbGFuZyxcbiAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jdXN0b21Mb2FkZXIuZ2V0RnVsbFRyYW5zbGF0aW9uSlNPTihsYW5nKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1c2UobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLmN1c3RvbUxvYWRlci5pbml0KGxhbmcpO1xuXG4gICAgcmV0dXJuIHRoaXMudXBkYXRlVHJhbnNsYXRpb24obGFuZyk7XG4gIH1cbiAgZm9ybXMoaXRlbTogYW55LCBuYW1lc3BhY2UgPSBudWxsKSB7XG4gICAgaWYgKGl0ZW0uZmllbGRHcm91cCkge1xuICAgICAgaXRlbS5maWVsZEdyb3VwID0gaXRlbS5maWVsZEdyb3VwLm1hcCgoZmllbGQ6IGFueSkgPT4gdGhpcy5mb3JtcyhmaWVsZCkpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZWZpeCA9IG5hbWVzcGFjZSA/IG5hbWVzcGFjZSArICcuJyA6ICcnO1xuXG4gICAgaWYgKFxuICAgICAgaXRlbS5wcm9wcyAmJlxuICAgICAgKGl0ZW0ucHJvcHMubGFiZWwgfHwgaXRlbS5wcm9wcy5wbGFjZWhvbGRlciB8fCBpdGVtLnByb3BzLm9wdGlvbnMpXG4gICAgKSB7XG4gICAgICBpZiAoIWl0ZW0uZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgaXRlbS5leHByZXNzaW9ucyA9IHt9O1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW0ucHJvcHMubGFiZWwpIHtcbiAgICAgICAgaXRlbS5leHByZXNzaW9uc1sncHJvcHMubGFiZWwnXSA9IHRoaXMudHJhbnNsYXRlLnN0cmVhbShcbiAgICAgICAgICBwcmVmaXggKyBpdGVtLnByb3BzLmxhYmVsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5wcm9wcy5wbGFjZWhvbGRlcikge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zWydwcm9wcy5wbGFjZWhvbGRlciddID0gdGhpcy50cmFuc2xhdGUuc3RyZWFtKFxuICAgICAgICAgIHByZWZpeCArIGl0ZW0ucHJvcHMucGxhY2Vob2xkZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0ucHJvcHMub3B0aW9ucykpIHtcbiAgICAgICAgaXRlbS5leHByZXNzaW9uc1sncHJvcHMub3B0aW9ucyddID0gaXRlbS5wcm9wcy5vcHRpb25zLm1hcCgobTogYW55KSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2cobSk7XG4gICAgICAgICAgaWYgKG0ubGFiZWwpIHtcbiAgICAgICAgICAgIG0ubGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArIG0ubGFiZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cbn1cbiJdfQ==