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.
- package/core/components/scan/scan.component.d.ts +2 -0
- package/core/components/webcam/domain/webcam-image.d.ts +1 -1
- package/core/components/webcam/webcam/webcam.component.d.ts +3 -0
- package/esm2020/core/components/scan/scan.component.mjs +52 -34
- package/esm2020/core/components/webcam/domain/webcam-image.mjs +1 -1
- package/esm2020/core/components/webcam/webcam/webcam.component.mjs +150 -29
- package/esm2020/dialogs/components/confirm/confirm.component.mjs +2 -2
- package/esm2020/dialogs/components/scan-profile/scan-profile.component.mjs +2 -2
- package/esm2020/dialogs/components/scan-selfie/scan-selfie.component.mjs +2 -2
- package/esm2020/lib/ngx-scandoc.module.mjs +8 -5
- package/esm2020/providers/camera.provider.mjs +14 -6
- package/esm2020/providers/translation.provider.mjs +14 -12
- package/fesm2015/ngx-scandoc.mjs +243 -137
- package/fesm2015/ngx-scandoc.mjs.map +1 -1
- package/fesm2020/ngx-scandoc.mjs +242 -137
- package/fesm2020/ngx-scandoc.mjs.map +1 -1
- package/lib/ngx-scandoc.module.d.ts +1 -0
- package/package.json +1 -1
- package/providers/camera.provider.d.ts +1 -0
- package/providers/translation.provider.d.ts +1 -1
- package/src/assets/i18n/de.json +5 -2
- package/src/assets/i18n/en.json +1 -1
- package/src/assets/i18n/hr.json +5 -1
- package/src/assets/i18n/it.json +5 -1
|
@@ -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,
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
-
|
|
14
|
+
console.log('MM', Math.random());
|
|
14
15
|
this.customLoader = this.translate.currentLoader;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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==
|