fabrikantencore 1.1.0 → 1.3.0
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/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.mjs +1 -3
- package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +6 -3
- package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +2 -3
- package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.mjs +6 -4
- package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +114 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.mjs +14 -11
- package/esm2020/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.mjs +20 -9
- package/esm2020/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.mjs +17 -9
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.mjs +17 -14
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +22 -14
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +12 -9
- package/esm2020/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.mjs +16 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.mjs +18 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.mjs +24 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.mjs +16 -21
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.mjs +12 -10
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +31 -12
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +27 -10
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.mjs +12 -9
- package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +14 -11
- package/esm2020/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +58 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +80 -0
- package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +44 -5
- package/esm2020/src/app/modules/fabrikantencore/services/bestek.service.mjs +2 -28
- package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +310 -82
- package/esm2020/src/app/modules/fabrikantencore/services/importsets.service.mjs +1 -17
- package/esm2020/src/app/modules/fabrikantencore/services/mobile.service.mjs +8 -4
- package/esm2020/src/app/modules/fabrikantencore/services/navigate.service.mjs +32 -0
- package/esm2020/src/app/modules/fabrikantencore/services/photo.service.mjs +7 -5
- package/esm2020/src/app/modules/fabrikantencore/services/products.service.mjs +1 -23
- package/esm2020/src/app/modules/fabrikantencore/services/projectsetting.service.mjs +24 -12
- package/esm2020/src/app/modules/fabrikantencore/services/svg.service.mjs +44 -0
- package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +240 -0
- package/esm2020/src/app/modules/fabrikantencore/services/webgl.service.mjs +43 -0
- package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +1256 -89
- package/fesm2015/fabrikantencore.mjs +2588 -550
- package/fesm2015/fabrikantencore.mjs.map +1 -1
- package/fesm2020/fabrikantencore.mjs +2579 -553
- package/fesm2020/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.d.ts +1 -0
- package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.d.ts +3 -2
- package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.d.ts +21 -0
- package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.d.ts +5 -2
- package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.d.ts +7 -2
- package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.d.ts +6 -2
- package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.d.ts +5 -2
- package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.d.ts +6 -1
- package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +5 -2
- package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.d.ts +9 -0
- package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.d.ts +9 -0
- package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.d.ts +13 -0
- package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.d.ts +3 -2
- package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.d.ts +3 -1
- package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.d.ts +11 -2
- package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.d.ts +11 -2
- package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.d.ts +5 -2
- package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.d.ts +5 -2
- package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.d.ts +23 -0
- package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.d.ts +23 -0
- package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +28 -22
- package/src/app/modules/fabrikantencore/services/bestek.service.d.ts +0 -4
- package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +40 -12
- package/src/app/modules/fabrikantencore/services/importsets.service.d.ts +0 -3
- package/src/app/modules/fabrikantencore/services/mobile.service.d.ts +4 -2
- package/src/app/modules/fabrikantencore/services/navigate.service.d.ts +13 -0
- package/src/app/modules/fabrikantencore/services/photo.service.d.ts +3 -1
- package/src/app/modules/fabrikantencore/services/products.service.d.ts +0 -4
- package/src/app/modules/fabrikantencore/services/projectsetting.service.d.ts +5 -1
- package/src/app/modules/fabrikantencore/services/svg.service.d.ts +14 -0
- package/src/app/modules/fabrikantencore/services/translate.service.d.ts +41 -0
- package/src/app/modules/fabrikantencore/services/webgl.service.d.ts +14 -0
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +334 -0
|
@@ -25,8 +25,6 @@ export class BeheerImportSetsComponent {
|
|
|
25
25
|
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
26
26
|
}
|
|
27
27
|
ngOnInit() {
|
|
28
|
-
this.ProductsService.SetChangeDetectorRef(this.ChangeDetectorRef);
|
|
29
|
-
this.ImportSetsService.ChangeDetectorRef = this.ChangeDetectorRef;
|
|
30
28
|
}
|
|
31
29
|
Wijzig() {
|
|
32
30
|
var dialogRef = this.dialog.open(BeheerImportSetsDialogComponent, {
|
|
@@ -69,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
69
67
|
type: Component,
|
|
70
68
|
args: [{ selector: 'app-beheer-import-sets', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"Loading()\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!Loading() && ImportSetsService.BCBImportSetsViewModel != null && ProductsService.ProductsViewModel != null\" class=\"main-content\">\r\n <mat-card>\r\n <div class=\"toolbar\">\r\n <div class=\"toolbar-item\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"\">\r\n <button mat-raised-button (click)=\"Wijzig()\">\r\n Wijzig\r\n </button>\r\n </div>\r\n <div class=\"\">\r\n <button mat-raised-button (click)=\"Toevoegen()\">\r\n Toevoegen\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"toolbar\" *ngIf=\"GetProducts().length > 0\">\r\n <div class=\"toolbar-item\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Product</mat-label>\r\n <mat-select [(ngModel)]=\"ProductsService.ProductSelected\">\r\n <mat-option *ngFor=\"let product of GetProducts()\" [value]=\"product.id\">\r\n {{product.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"toolbar-item flex-auto\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>BCBProduct</mat-label>\r\n <mat-select [(ngModel)]=\"ProductsService.BCBProductSelected\">\r\n <mat-option *ngFor=\"let product of ProductsService.GetBCBProductsSelected()\" [value]=\"product.id\">\r\n {{product.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"\">\r\n <button mat-raised-button (click)=\"Open()\">\r\n Open\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n\r\n <div class=\"main-block\">\r\n <div class=\"flex-auto block\">\r\n <mat-card>\r\n <mat-card-title>\r\n {{ ImportSetsService.BCBImportOpenResponse?.bcbeboViewModel?.name }}\r\n </mat-card-title>\r\n <mat-card-content>\r\n <div *ngIf=\"ImportSetsService.LoadingOpen\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n <div *ngIf=\"!ImportSetsService.LoadingOpen && ImportSetsService.BCBImportOpenResponse != null\">\r\n <mat-card class=\"card\">\r\n <mat-card-title>Opbouw</mat-card-title>\r\n <mat-card-content>\r\n <app-beheer-import-sets-opbouw *ngFor=\"let opbouw of ImportSetsService.BCBImportOpenResponse.bcbImportOpbouwen\" [opbouw]=\"opbouw\"></app-beheer-import-sets-opbouw>\r\n </mat-card-content>\r\n </mat-card>\r\n <mat-card class=\"card\">\r\n <mat-card-title>Eigenschap</mat-card-title>\r\n <mat-card-content>\r\n <app-beheer-import-sets-eigenschap *ngFor=\"let eigenschap of ImportSetsService.BCBImportOpenResponse.bcbImportEigenschappen\" [eigenschap]=\"eigenschap\"></app-beheer-import-sets-eigenschap>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n </div>\r\n <div class=\"importset-block block\">\r\n <mat-card>\r\n <mat-card-title>{{ ImportSetsService.GetActiveImportSet().name }}</mat-card-title>\r\n <mat-card-content>\r\n <mat-card class=\"value-block\" *ngFor=\"let value of ImportSetsService.GetActiveImportSet().bcbImportSetValueViewModels\">\r\n <mat-card-content>\r\n {{ value.value }}\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".main-content{padding:5px}.flex-auto{flex:auto}.full-width{width:100%}.value-block{margin:3px}.importset-block{min-width:300px}.full-height{height:100%}.main-block{display:flex}.block{margin:5px}.toolbar{display:flex}.toolbar-item{margin-right:3px}.card{margin:3px}\n"] }]
|
|
71
69
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.ProductsService }, { type: i3.ImportSetsService }, { type: i4.ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1pbXBvcnQtc2V0cy9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT2xILE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBbUIsTUFBaUIsRUFBUyxlQUFnQyxFQUFTLGlCQUFvQyxFQUFTLGVBQWdDLEVBQVUsaUJBQW9DO1FBQTlMLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBUyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUVqTixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNwRSxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ2hFLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUk7YUFDdkQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ2hFLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNOLElBQUksRUFBRSxFQUFFO2FBQ1Q7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUM7SUFDcEYsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBb0IsQ0FBQztRQUUxQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBRXhFLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDN0UsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDekI7YUFDRjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztzSEFuRFUseUJBQXlCOzBHQUF6Qix5QkFBeUIsOERDWnRDLDRwSUFvR0E7MkZEeEZhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSW1wb3J0U2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW1wb3J0QXBpQ2xpZW50LCBCQ0JJbXBvcnRTZXRzVmlld01vZGVsLCBCQ0JJbXBvcnRTZXRWaWV3TW9kZWwsIFByb2R1Y3RWaWV3TW9kZWwsIEJDQlByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydE9wZW5SZXF1ZXN0LCBCQ0JJbXBvcnRPcGVuUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJJbXBvcnRTZXRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXItaW1wb3J0LXNldHMtZGlhbG9nL2JlaGVlci1pbXBvcnQtc2V0cy1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1pbXBvcnQtc2V0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlckltcG9ydFNldHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSwgcHVibGljIEltcG9ydFNldHNTZXJ2aWNlOiBJbXBvcnRTZXRzU2VydmljZSwgcHVibGljIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LCBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuU2V0Q2hhbmdlRGV0ZWN0b3JSZWYodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkNoYW5nZURldGVjdG9yUmVmID0gdGhpcy5DaGFuZ2VEZXRlY3RvclJlZjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBXaWp6aWcoKTogdm9pZCB7XHJcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJJbXBvcnRTZXRzRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpZDogdGhpcy5JbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5pZCxcclxuICAgICAgICBuYW1lOiB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkdldEFjdGl2ZUltcG9ydFNldCgpLm5hbWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVG9ldm9lZ2VuKCk6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVySW1wb3J0U2V0c0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaWQ6IC0xLFxyXG4gICAgICAgIG5hbWU6IFwiXCJcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgfHwgdGhpcy5JbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nSW1wb3J0U2V0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBPcGVuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5JbXBvcnRTZXRzU2VydmljZS5PcGVuKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RTZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0UHJvZHVjdHMoKTogQXJyYXk8UHJvZHVjdFZpZXdNb2RlbD4ge1xyXG4gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5PFByb2R1Y3RWaWV3TW9kZWw+KCk7XHJcblxyXG4gICAgdmFyIHByb2R1Y3RzID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdHNWaWV3TW9kZWwucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kdWN0c1tpXS5pbXBvcnRTZXRJZCA9PSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkdldEFjdGl2ZUltcG9ydFNldCgpLmlkKSB7XHJcbiAgICAgICAgICBhcnJheS5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxyXG5cclxuPGRpdiAqbmdJZj1cIkxvYWRpbmcoKVwiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFMb2FkaW5nKCkgJiYgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCAhPSBudWxsICYmIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSBudWxsXCIgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICA8bWF0LWNhcmQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1pdGVtXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkltcG9ydCBzZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0U2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAge3tpbXBvcnRzZXQubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIldpanppZygpXCI+XHJcbiAgICAgICAgICBXaWp6aWdcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJUb2V2b2VnZW4oKVwiPlxyXG4gICAgICAgICAgVG9ldm9lZ2VuXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwiR2V0UHJvZHVjdHMoKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+UHJvZHVjdDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIEdldFByb2R1Y3RzKClcIiBbdmFsdWVdPVwicHJvZHVjdC5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7cHJvZHVjdC5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1pdGVtIGZsZXgtYXV0b1wiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5CQ0JQcm9kdWN0PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0U2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgUHJvZHVjdHNTZXJ2aWNlLkdldEJDQlByb2R1Y3RzU2VsZWN0ZWQoKVwiIFt2YWx1ZV09XCJwcm9kdWN0LmlkXCI+XHJcbiAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJPcGVuKClcIj5cclxuICAgICAgICAgIE9wZW5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1jYXJkPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0byBibG9ja1wiPlxyXG4gICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAge3sgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0T3BlblJlc3BvbnNlPy5iY2JlYm9WaWV3TW9kZWw/Lm5hbWUgfX1cclxuICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIkltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdPcGVuXCI+XHJcbiAgICAgICAgICAgIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdPcGVuICYmIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydE9wZW5SZXNwb25zZSAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+T3Bib3V3PC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxhcHAtYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dyAqbmdGb3I9XCJsZXQgb3Bib3V3IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydE9wZW5SZXNwb25zZS5iY2JJbXBvcnRPcGJvdXdlblwiIFtvcGJvdXddPVwib3Bib3V3XCI+PC9hcHAtYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dz5cclxuICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+RWlnZW5zY2hhcDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWJlaGVlci1pbXBvcnQtc2V0cy1laWdlbnNjaGFwICpuZ0Zvcj1cImxldCBlaWdlbnNjaGFwIG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydE9wZW5SZXNwb25zZS5iY2JJbXBvcnRFaWdlbnNjaGFwcGVuXCIgW2VpZ2Vuc2NoYXBdPVwiZWlnZW5zY2hhcFwiPjwvYXBwLWJlaGVlci1pbXBvcnQtc2V0cy1laWdlbnNjaGFwPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbXBvcnRzZXQtYmxvY2sgYmxvY2tcIj5cclxuICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT57eyBJbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5uYW1lIH19PC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cInZhbHVlLWJsb2NrXCIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIEltcG9ydFNldHNTZXJ2aWNlLkdldEFjdGl2ZUltcG9ydFNldCgpLmJjYkltcG9ydFNldFZhbHVlVmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICB7eyB2YWx1ZS52YWx1ZSB9fVxyXG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1pbXBvcnQtc2V0cy9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT2xILE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBbUIsTUFBaUIsRUFBUyxlQUFnQyxFQUFTLGlCQUFvQyxFQUFTLGVBQWdDLEVBQVUsaUJBQW9DO1FBQTlMLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBUyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUVqTixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUU7WUFDaEUsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSTthQUN2RDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUU7WUFDaEUsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ04sSUFBSSxFQUFFLEVBQUU7YUFDVDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztJQUNwRixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxFQUFvQixDQUFDO1FBRTFDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUM7UUFFeEUsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM3RSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN6QjthQUNGO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O3NIQWpEVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qiw4RENadEMsNHBJQW9HQTsyRkR4RmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBJbXBvcnRTZXRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltcG9ydHNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbXBvcnRBcGlDbGllbnQsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwsIEJDQkltcG9ydFNldFZpZXdNb2RlbCwgUHJvZHVjdFZpZXdNb2RlbCwgQkNCUHJvZHVjdFZpZXdNb2RlbCwgQkNCSW1wb3J0T3BlblJlcXVlc3QsIEJDQkltcG9ydE9wZW5SZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEJlaGVlckltcG9ydFNldHNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci1pbXBvcnQtc2V0cy1kaWFsb2cvYmVoZWVyLWltcG9ydC1zZXRzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLWltcG9ydC1zZXRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVySW1wb3J0U2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgcHVibGljIFByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLCBwdWJsaWMgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlLCBwdWJsaWMgSW1wb3J0QXBpQ2xpZW50OiBJbXBvcnRBcGlDbGllbnQsIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgV2lqemlnKCk6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVySW1wb3J0U2V0c0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaWQ6IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuR2V0QWN0aXZlSW1wb3J0U2V0KCkuaWQsXHJcbiAgICAgICAgbmFtZTogdGhpcy5JbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5uYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlckltcG9ydFNldHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGlkOiAtMSxcclxuICAgICAgICBuYW1lOiBcIlwiXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ0ltcG9ydFNldHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuT3Blbih0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0U2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFByb2R1Y3RzKCk6IEFycmF5PFByb2R1Y3RWaWV3TW9kZWw+IHtcclxuICAgIHZhciBhcnJheSA9IG5ldyBBcnJheTxQcm9kdWN0Vmlld01vZGVsPigpO1xyXG5cclxuICAgIHZhciBwcm9kdWN0cyA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgIGlmIChwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAocHJvZHVjdHNbaV0uaW1wb3J0U2V0SWQgPT0gdGhpcy5JbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5pZCkge1xyXG4gICAgICAgICAgYXJyYXkucHVzaChwcm9kdWN0c1tpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJMb2FkaW5nKClcIj5cclxuICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCIhTG9hZGluZygpICYmIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwgIT0gbnVsbCAmJiBQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdHNWaWV3TW9kZWwgIT0gbnVsbFwiIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItaXRlbVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5JbXBvcnQgc2V0PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpbXBvcnRzZXQgb2YgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbC5iY2JJbXBvcnRTZXRWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImltcG9ydHNldC5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7aW1wb3J0c2V0Lm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJXaWp6aWcoKVwiPlxyXG4gICAgICAgICAgV2lqemlnXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiVG9ldm9lZ2VuKClcIj5cclxuICAgICAgICAgIFRvZXZvZWdlblxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIiAqbmdJZj1cIkdldFByb2R1Y3RzKCkubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1pdGVtXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlByb2R1Y3Q8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBHZXRQcm9kdWN0cygpXCIgW3ZhbHVlXT1cInByb2R1Y3QuaWRcIj5cclxuICAgICAgICAgICAgICB7e3Byb2R1Y3QubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItaXRlbSBmbGV4LWF1dG9cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+QkNCUHJvZHVjdDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJQcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5HZXRCQ0JQcm9kdWN0c1NlbGVjdGVkKClcIiBbdmFsdWVdPVwicHJvZHVjdC5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7cHJvZHVjdC5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiT3BlbigpXCI+XHJcbiAgICAgICAgICBPcGVuXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm1haW4tYmxvY2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWF1dG8gYmxvY2tcIj5cclxuICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgIHt7IEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydE9wZW5SZXNwb25zZT8uYmNiZWJvVmlld01vZGVsPy5uYW1lIH19XHJcbiAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJJbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nT3BlblwiPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nT3BlbiAmJiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRPcGVuUmVzcG9uc2UgIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPk9wYm91dzwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWJlaGVlci1pbXBvcnQtc2V0cy1vcGJvdXcgKm5nRm9yPVwibGV0IG9wYm91dyBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRPcGVuUmVzcG9uc2UuYmNiSW1wb3J0T3Bib3V3ZW5cIiBbb3Bib3V3XT1cIm9wYm91d1wiPjwvYXBwLWJlaGVlci1pbXBvcnQtc2V0cy1vcGJvdXc+XHJcbiAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPkVpZ2Vuc2NoYXA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1iZWhlZXItaW1wb3J0LXNldHMtZWlnZW5zY2hhcCAqbmdGb3I9XCJsZXQgZWlnZW5zY2hhcCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRPcGVuUmVzcG9uc2UuYmNiSW1wb3J0RWlnZW5zY2hhcHBlblwiIFtlaWdlbnNjaGFwXT1cImVpZ2Vuc2NoYXBcIj48L2FwcC1iZWhlZXItaW1wb3J0LXNldHMtZWlnZW5zY2hhcD5cclxuICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0c2V0LWJsb2NrIGJsb2NrXCI+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3sgSW1wb3J0U2V0c1NlcnZpY2UuR2V0QWN0aXZlSW1wb3J0U2V0KCkubmFtZSB9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJ2YWx1ZS1ibG9ja1wiICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBJbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5iY2JJbXBvcnRTZXRWYWx1ZVZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAge3sgdmFsdWUudmFsdWUgfX1cclxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -9,6 +9,7 @@ export class BeheerNavComponent {
|
|
|
9
9
|
this.authenticationService = authenticationService;
|
|
10
10
|
this.router = router;
|
|
11
11
|
this.FabrikantenApiClient = FabrikantenApiClient;
|
|
12
|
+
this.ResetCacheTitle = "Reset Cache";
|
|
12
13
|
}
|
|
13
14
|
ngOnInit() {
|
|
14
15
|
}
|
|
@@ -23,7 +24,9 @@ export class BeheerNavComponent {
|
|
|
23
24
|
return window.location.href.toLowerCase().indexOf(name.toLowerCase()) != -1;
|
|
24
25
|
}
|
|
25
26
|
ResetCache() {
|
|
27
|
+
this.ResetCacheTitle = "...";
|
|
26
28
|
this.FabrikantenApiClient.resetCache().subscribe(() => {
|
|
29
|
+
this.ResetCacheTitle = "Reset Cache";
|
|
27
30
|
alert('cache reset success');
|
|
28
31
|
}, (error) => {
|
|
29
32
|
if (error.status == 400)
|
|
@@ -36,9 +39,9 @@ export class BeheerNavComponent {
|
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
BeheerNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerNavComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.Router }, { token: i3.FabrikantenApiClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
BeheerNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BeheerNavComponent, selector: "app-beheer-nav", ngImport: i0, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n
|
|
42
|
+
BeheerNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BeheerNavComponent, selector: "app-beheer-nav", ngImport: i0, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n {{ ResetCacheTitle }}\n </button>\n <button mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\n Settings\n </button>\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\n Translate\n </button>\n <button mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\n Users\n </button>\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\n Uitloggen\n </button>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
40
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerNavComponent, decorators: [{
|
|
41
44
|
type: Component,
|
|
42
|
-
args: [{ selector: 'app-beheer-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n
|
|
45
|
+
args: [{ selector: 'app-beheer-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n {{ ResetCacheTitle }}\n </button>\n <button mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\n Settings\n </button>\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\n Translate\n </button>\n <button mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\n Users\n </button>\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\n Uitloggen\n </button>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"] }]
|
|
43
46
|
}], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.Router }, { type: i3.FabrikantenApiClient }]; } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXckUsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUFtQixxQkFBNEMsRUFBVSxNQUFjLEVBQVUsb0JBQTBDO1FBQXhILDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUZwSSxvQkFBZSxHQUFXLGFBQWEsQ0FBQztJQUcvQyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztZQUNyQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FwQ1Usa0JBQWtCO21HQUFsQixrQkFBa0Isc0RDWC9CLHV4REF5Q0E7MkZEOUJhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkFwaUNsaWVudCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1uYXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGVUaXRsZTogc3RyaW5nID0gXCJSZXNldCBDYWNoZVwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgRmFicmlrYW50ZW5BcGlDbGllbnQ6IEZhYnJpa2FudGVuQXBpQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dPZmYoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXIvaW5sb2dnZW4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBOYXZpZ2F0ZVRvKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2JlaGVlci8nICsgbmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSXNBY3RpdmUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKS5pbmRleE9mKG5hbWUudG9Mb3dlckNhc2UoKSkgIT0gLTE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRDYWNoZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVzZXRDYWNoZVRpdGxlID0gXCIuLi5cIjtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQucmVzZXRDYWNoZSgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUmVzZXRDYWNoZVRpdGxlID0gXCJSZXNldCBDYWNoZVwiO1xyXG4gICAgICBhbGVydCgnY2FjaGUgcmVzZXQgc3VjY2VzcycpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW4tYmxvY2tcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIGxlZnQtYmxvY2tcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ3NlYXJjaHByb2R1Y3RzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9zZWFyY2hwcm9kdWN0cycpXCI+XG4gICAgICAgIFpvZWtlblxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdpbXBvcnRzZXRzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9pbXBvcnRzZXRzJylcIj5cbiAgICAgICAgSW1wb3J0XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ3Byb2R1Y3RzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9wcm9kdWN0cycpXCI+XG4gICAgICAgIFByb2R1Y3RzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2ZpbHRlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2ZpbHRlcnMnKVwiPlxuICAgICAgICBGaWx0ZXJzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2Vib2tvcHBlbCcpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvZWJva29wcGVsJylcIj5cbiAgICAgICAgRUJPIEtvcHBlbFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdjYXRlZ29yaWVzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9jYXRlZ29yaWVzJylcIj5cbiAgICAgICAgQ2F0ZWdvcmllc1xuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNlbGwgcmlnaHQtYmxvY2tcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlc2V0Q2FjaGUoKVwiIGNsYXNzPVwibGlua1wiPlxuICAgICAgICB7eyBSZXNldENhY2hlVGl0bGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2V0dGluZ3MnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NldHRpbmdzJylcIj5cbiAgICAgICAgU2V0dGluZ3NcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndHJhbnNsYXRlJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy90cmFuc2xhdGUnKVwiPlxuICAgICAgICBUcmFuc2xhdGVcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndXNlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3VzZXJzJylcIj5cbiAgICAgICAgVXNlcnNcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTG9nT2ZmKClcIiBjbGFzcz1cImxpbmtcIj5cbiAgICAgICAgVWl0bG9nZ2VuXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -21,8 +21,7 @@ export class BeheerProductsComponent {
|
|
|
21
21
|
this.BCBImportSetsViewModel = undefined;
|
|
22
22
|
}
|
|
23
23
|
ngOnInit() {
|
|
24
|
-
this.ProductsService.
|
|
25
|
-
this.ImportSetsService.ChangeDetectorRef = this.ChangeDetectorRef;
|
|
24
|
+
this.ProductsService.Reload();
|
|
26
25
|
}
|
|
27
26
|
Import() {
|
|
28
27
|
var products = this.ProductsService.ProductsViewModel?.productViewModels;
|
|
@@ -143,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
143
142
|
type: Component,
|
|
144
143
|
args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td> </td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 145px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px)}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}\n"] }]
|
|
145
144
|
}], ctorParameters: function () { return [{ type: i1.ProductsService }, { type: i2.ImportSetsService }, { type: i3.ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU96TixNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQW1CLGVBQWdDLEVBQVMsaUJBQW9DLEVBQVUsZUFBZ0MsRUFBVSxpQkFBb0M7UUFBckssb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGakwsMkJBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQUluRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNwRSxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlC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ZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdGlvbkxpc3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1wb3J0c2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNBcGlDbGllbnQsIFByb2R1Y3RzVmlld01vZGVsLCBCQ0JQcm9kdWN0Vmlld01vZGVsLCBQcm9kdWN0Vmlld01vZGVsLCBCQ0JJbXBvcnRQcm9kdWN0UmVxdWVzdCwgQkNCSW1wb3J0UHJvZHVjdFJlc3BvbnNlLCBJbXBvcnRBcGlDbGllbnQsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLXByb2R1Y3RzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyUHJvZHVjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgcHVibGljIEJDQkltcG9ydFNldHNWaWV3TW9kZWw/OiBCQ0JJbXBvcnRTZXRzVmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgUHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsIHByaXZhdGUgSW1wb3J0QXBpQ2xpZW50OiBJbXBvcnRBcGlDbGllbnQsIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5TZXRDaGFuZ2VEZXRlY3RvclJlZih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuQ2hhbmdlRGV0ZWN0b3JSZWYgPSB0aGlzLkNoYW5nZURldGVjdG9yUmVmO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEltcG9ydCgpOiB2b2lkIHtcclxuICAgIHZhciBwcm9kdWN0cyA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsPy5wcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIHByb2R1Y3RzW2ldLmltcG9ydFN0YXR1cyA9IFwiMC9cIiArIGJjYnByb2R1Y3RzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJjYnByb2R1Y3RzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGJjYnByb2R1Y3RzW2pdLmltcG9ydFN0YXR1cyA9IFwiWFwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbMF0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICBpZiAoYmNicHJvZHVjdHMgIT0gbnVsbCAmJiBiY2Jwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5JbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3RzWzBdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEltcG9ydEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgQkNCSW1wb3J0UHJvZHVjdFJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IGJjYnByb2R1Y3QuaWQ7XHJcblxyXG4gICAgdGhpcy5JbXBvcnRBcGlDbGllbnQuaW1wb3J0QkNCUHJvZHVjdChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKCFtb2RlbC5zdWNjZXNzKSB7XHJcbiAgICAgICAgYWxlcnQobW9kZWwubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgYmNicHJvZHVjdC5pbXBvcnRTdGF0dXMgPSBcIlZcIjtcclxuXHJcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLkdldE5leHRCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpO1xyXG5cclxuICAgICAgICBpZiAobmV4dC5pbXBvcnRTdGF0dXMgPT0gXCJYXCIpIHtcclxuICAgICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChuZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZWxvYWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoXCJpbXBvcnQgZmFpbGVkIGZvciBpZDogXCIgKyBiY2Jwcm9kdWN0LmlkKTtcclxuXHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0SW1wb3J0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVzZXRJbXBvcnQoLTEsIC0xKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QkNCUHJvZHVjdHMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgPT0gcHJvZHVjdCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VsZWN0UHJvZHVjdChwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSBwcm9kdWN0KSB7XHJcbiAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgPSBwcm9kdWN0O1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNhdmVQcm9kdWN0KHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlNhdmVQcm9kdWN0Vmlld01vZGVsKHByb2R1Y3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gYmNicHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gYmNicHJvZHVjdDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEltcG9ydFN0YXR1cyhwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKTogc3RyaW5nIHtcclxuICAgIHZhciB0ZXh0ID0gXCJcIjtcclxuICAgIHZhciBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0LmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgIT0gXCJcIikge1xyXG4gICAgICAgICAgYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiWFwiKSB7XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgdGV4dCA9IGNvdW50ICsgXCIvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKTogQkNCUHJvZHVjdFZpZXdNb2RlbCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcbiAgICB2YXIgbmV4dDogQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB2YXIgZm91bmQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGJjYnByb2R1Y3RzW2pdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbal0gPT0gYmNicHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0O1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IEltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIVByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgJiYgIUltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCIgY2xhc3M9XCJtYWluLWJsb2NrXCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlc2V0SW1wb3J0KClcIj5cclxuICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkltcG9ydCgpXCI+XHJcbiAgICAgICAgSW1wb3J0XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gIDwvbWF0LWNhcmQ+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRyZWUtYmxvY2tcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpbWl0ZXJcIj5cclxuICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRhYmxlLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDx0ZD48L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPklkPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5OYWFtPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5WYXJpYW50czwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+SW1wb3J0c2V0PC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdHNWaWV3TW9kZWwucHJvZHVjdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgICAgIDx0ciAoY2xpY2spPVwiU2VsZWN0UHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwidGFibGUtcm93XCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9PSBwcm9kdWN0LCAnd2FybmluZyc6ICFwcm9kdWN0LmltcG9ydGVkIHx8ICFwcm9kdWN0LmNvbm5lY3RlZH1cIj5cclxuICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IEdldEltcG9ydFN0YXR1cyhwcm9kdWN0KSB9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvZHVjdC5pZCB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD57eyBwcm9kdWN0Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvZHVjdC5iY2JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGggfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cInByb2R1Y3QuaW1wb3J0U2V0SWRcIiAoY2hhbmdlKT1cIlNhdmVQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpbXBvcnRzZXQgb2YgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbC5iY2JJbXBvcnRTZXRWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImltcG9ydHNldC5pZFwiPnt7aW1wb3J0c2V0Lm5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93QkNCUHJvZHVjdHMocHJvZHVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD4mbmJzcDs8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGJjYnByb2R1Y3Qgb2YgUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwuYmNiUHJvZHVjdFZpZXdNb2RlbHNcIiBjbGFzcz1cInRhYmxlLXJvd1wiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnIDogUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gYmNicHJvZHVjdCwgJ3dhcm5pbmcnOiAhYmNicHJvZHVjdC5pbXBvcnRlZCB8fCAhYmNicHJvZHVjdC5jb25uZWN0ZWR9XCIgKGNsaWNrKT1cIlNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9XCJpbXBvcnRzcGFuXCI+e3sgYmNicHJvZHVjdC5pbXBvcnRTdGF0dXMgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgYmNicHJvZHVjdC5pZCB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIzXCI+e3sgYmNicHJvZHVjdC5uYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD4mbmJzcDs8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPGFwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdCAqbmdJZj1cIlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCAmJiBQcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9PSB1bmRlZmluZWRcIiBbUHJvZHVjdFZpZXdNb2RlbF09XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbFwiPjwvYXBwLWJlaGVlci1wcm9kdWN0cy1wcm9kdWN0PlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLWJjYnByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIiBbQkNCUHJvZHVjdFZpZXdNb2RlbF09XCJQcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbFwiPjwvYXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU96TixNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQW1CLGVBQWdDLEVBQVMsaUJBQW9DLEVBQVUsZUFBZ0MsRUFBVSxpQkFBb0M7UUFBckssb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGakwsMkJBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQUluRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO1FBRXpFLElBQUksUUFBUSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQyxLQUFLLElBQUksQ0FB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O0lBRU0saUJBQWlCLENBQUMsVUFBK0I7UUFDdEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztRQUN6RSxJQUFJLElBQUksR0FBd0IsVUFBVSxDQUFDO1FBQzNDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVsQixJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksV0FBVyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztnQkFFbkQsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO29CQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDM0MsSUFBSSxLQUFLLEVBQUU7NEJBQ1QsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3ZCO3dCQUVELElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTs0QkFDaEMsS0FBSyxHQUFHLElBQUksQ0FBQzt5QkFDZDtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O29IQXhKVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyRENYcEMscTlHQXVFQTsyRkQ1RGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3Rpb25MaXN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbXBvcnRTZXRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltcG9ydHNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzQXBpQ2xpZW50LCBQcm9kdWN0c1ZpZXdNb2RlbCwgQkNCUHJvZHVjdFZpZXdNb2RlbCwgUHJvZHVjdFZpZXdNb2RlbCwgQkNCSW1wb3J0UHJvZHVjdFJlcXVlc3QsIEJDQkltcG9ydFByb2R1Y3RSZXNwb25zZSwgSW1wb3J0QXBpQ2xpZW50LCBCQ0JJbXBvcnRTZXRzVmlld01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1wcm9kdWN0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlclByb2R1Y3RzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHB1YmxpYyBCQ0JJbXBvcnRTZXRzVmlld01vZGVsPzogQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIFByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLCBwdWJsaWMgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlLCBwcml2YXRlIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LCBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVsb2FkKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSW1wb3J0KCk6IHZvaWQge1xyXG4gICAgdmFyIHByb2R1Y3RzID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdHNWaWV3TW9kZWw/LnByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgIGlmIChwcm9kdWN0cyAhPSBudWxsICYmIHByb2R1Y3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3RzW2ldLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgICBpZiAoYmNicHJvZHVjdHMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgcHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzID0gXCIwL1wiICsgYmNicHJvZHVjdHMubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgYmNicHJvZHVjdHNbal0uaW1wb3J0U3RhdHVzID0gXCJYXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1swXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsICYmIGJjYnByb2R1Y3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLkltcG9ydEJDQlByb2R1Y3QoYmNicHJvZHVjdHNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSW1wb3J0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKTogdm9pZCB7XHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBCQ0JJbXBvcnRQcm9kdWN0UmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gYmNicHJvZHVjdC5pZDtcclxuXHJcbiAgICB0aGlzLkltcG9ydEFwaUNsaWVudC5pbXBvcnRCQ0JQcm9kdWN0KHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEJDQkltcG9ydFByb2R1Y3RSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoIW1vZGVsLnN1Y2Nlc3MpIHtcclxuICAgICAgICBhbGVydChtb2RlbC5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBiY2Jwcm9kdWN0LmltcG9ydFN0YXR1cyA9IFwiVlwiO1xyXG5cclxuICAgICAgICB2YXIgbmV4dCA9IHRoaXMuR2V0TmV4dEJDQlByb2R1Y3QoYmNicHJvZHVjdCk7XHJcblxyXG4gICAgICAgIGlmIChuZXh0LmltcG9ydFN0YXR1cyA9PSBcIlhcIikge1xyXG4gICAgICAgICAgdGhpcy5JbXBvcnRCQ0JQcm9kdWN0KG5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydChcImltcG9ydCBmYWlsZWQgZm9yIGlkOiBcIiArIGJjYnByb2R1Y3QuaWQpO1xyXG5cclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZXNldEltcG9ydCgtMSwgLTEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCQ0JQcm9kdWN0cyhwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9PSBwcm9kdWN0KSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RQcm9kdWN0KHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsICE9IHByb2R1Y3QpIHtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9IHByb2R1Y3Q7XHJcbiAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2F2ZVByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuU2F2ZVByb2R1Y3RWaWV3TW9kZWwocHJvZHVjdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VsZWN0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBiY2Jwcm9kdWN0KSB7XHJcbiAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPSBiY2Jwcm9kdWN0O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0SW1wb3J0U3RhdHVzKHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpOiBzdHJpbmcge1xyXG4gICAgdmFyIHRleHQgPSBcIlwiO1xyXG4gICAgdmFyIGFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcbiAgICBpZiAoYmNicHJvZHVjdHMgIT0gbnVsbCAmJiBiY2Jwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhciBjb3VudCA9IDA7XHJcblxyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJjYnByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzW2ldLmltcG9ydFN0YXR1cyAhPSBcIlwiKSB7XHJcbiAgICAgICAgICBhY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIGlmIChiY2Jwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgIT0gXCJYXCIpIHtcclxuICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChhY3RpdmUpIHtcclxuICAgICAgICB0ZXh0ID0gY291bnQgKyBcIi9cIiArIGJjYnByb2R1Y3RzLmxlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE5leHRCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpOiBCQ0JQcm9kdWN0Vmlld01vZGVsIHtcclxuICAgIHZhciBwcm9kdWN0cyA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsPy5wcm9kdWN0Vmlld01vZGVscztcclxuICAgIHZhciBuZXh0OiBCQ0JQcm9kdWN0Vmlld01vZGVsID0gYmNicHJvZHVjdDtcclxuICAgIHZhciBmb3VuZCA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChwcm9kdWN0cyAhPSBudWxsICYmIHByb2R1Y3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3RzW2ldLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgICBpZiAoYmNicHJvZHVjdHMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gYmNicHJvZHVjdHNbal07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChiY2Jwcm9kdWN0c1tqXSA9PSBiY2Jwcm9kdWN0KSB7XHJcbiAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHQ7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxyXG5cclxuPGRpdiAqbmdJZj1cIlByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgfHwgSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ0ltcG9ydFNldHNcIj5cclxuICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCIhUHJvZHVjdHNTZXJ2aWNlLkxvYWRpbmcoKSAmJiAhSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ0ltcG9ydFNldHNcIiBjbGFzcz1cIm1haW4tYmxvY2tcIj5cclxuICA8bWF0LWNhcmQ+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgIFJlc2V0IEltcG9ydFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICBJbXBvcnRcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHJlZS1ibG9ja1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgPHRkPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+SWQ8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPk5hYW08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlZhcmlhbnRzPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JbXBvcnRzZXQ8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbC5wcm9kdWN0Vmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgICAgICAgPHRyIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsID09IHByb2R1Y3QsICd3YXJuaW5nJzogIXByb2R1Y3QuaW1wb3J0ZWQgfHwgIXByb2R1Y3QuY29ubmVjdGVkfVwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9XCJpbXBvcnRzcGFuXCI+e3sgR2V0SW1wb3J0U3RhdHVzKHByb2R1Y3QpIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD57eyBwcm9kdWN0LmlkIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD57eyBwcm9kdWN0LmJjYlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aCB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwicHJvZHVjdC5pbXBvcnRTZXRJZFwiIChjaGFuZ2UpPVwiU2F2ZVByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+e3tpbXBvcnRzZXQubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dCQ0JQcm9kdWN0cyhwcm9kdWN0KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgYmNicHJvZHVjdCBvZiBQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbC5iY2JQcm9kdWN0Vmlld01vZGVsc1wiIGNsYXNzPVwidGFibGUtcm93XCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBQcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9PSBiY2Jwcm9kdWN0LCAnd2FybmluZyc6ICFiY2Jwcm9kdWN0LmltcG9ydGVkIHx8ICFiY2Jwcm9kdWN0LmNvbm5lY3RlZH1cIiAoY2xpY2spPVwiU2VsZWN0QkNCUHJvZHVjdChiY2Jwcm9kdWN0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBiY2Jwcm9kdWN0LmltcG9ydFN0YXR1cyB9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57eyBiY2Jwcm9kdWN0LmlkIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjNcIj57eyBiY2Jwcm9kdWN0Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpbWl0ZXJcIj5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1wcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkICYmIFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IHVuZGVmaW5lZFwiIFtQcm9kdWN0Vmlld01vZGVsXT1cIlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsXCI+PC9hcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3Q+XHJcbiAgICAgICAgPGFwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdCAqbmdJZj1cIlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZFwiIFtCQ0JQcm9kdWN0Vmlld01vZGVsXT1cIlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsXCI+PC9hcHAtYmVoZWVyLXByb2R1Y3RzLWJjYnByb2R1Y3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
|
|
@@ -8,16 +8,18 @@ import * as i5 from "../../../components/fab-loader/fab-loader.component";
|
|
|
8
8
|
import * as i6 from "./beheer-settings-options/beheer-settings-options.component";
|
|
9
9
|
import * as i7 from "./beheer-settings-string/beheer-settings-string.component";
|
|
10
10
|
export class BeheerSettingsComponent {
|
|
11
|
-
constructor(projectsettingservice) {
|
|
11
|
+
constructor(projectsettingservice, ChangeDetectorRef) {
|
|
12
12
|
this.projectsettingservice = projectsettingservice;
|
|
13
|
+
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
13
14
|
}
|
|
14
15
|
ngOnInit() {
|
|
16
|
+
this.projectsettingservice.LoadProjectSettings(this.ChangeDetectorRef);
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
|
-
BeheerSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerSettingsComponent, deps: [{ token: i1.ProjectSettingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
BeheerSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerSettingsComponent, deps: [{ token: i1.ProjectSettingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18
20
|
BeheerSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BeheerSettingsComponent, selector: "app-beheer-settings", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"projectsettingservice.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!projectsettingservice.Loading\">\r\n <div class=\"pipeline-row\">\r\n <div class=\"pipeline-block\">\r\n Pipeline step: <span class=\"pipeline-info\">{{ projectsettingservice.ProjectSettingsViewModel.pipelineStep }}</span>\r\n </div>\r\n </div>\r\n\r\n <mat-accordion>\r\n <mat-expansion-panel *ngFor=\"let projectsetting of projectsettingservice.ProjectSettingsViewModel.projectSettingViewModels\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ projectsetting.name }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ projectsetting.activeValue }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div>\r\n <app-beheer-settings-string *ngIf=\"projectsetting.projectSettingType == 1\" [projectsetting]=\"projectsetting\"></app-beheer-settings-string>\r\n <app-beheer-settings-options *ngIf=\"projectsetting.projectSettingType == 2\" [projectsetting]=\"projectsetting\"></app-beheer-settings-options>\r\n \r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n</div>\r\n", styles: [".row{display:flex}.expand{flex:auto}.pipeline-row{text-align:right;padding:5px}.pipeline-block{padding:5px;display:inline-block;border:1px solid #000}.pipeline-info{font-weight:700}.projectsetting-item{border-bottom:1px solid #000!important}.fullwidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i4.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i5.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i6.BeheerSettingsOptionsComponent, selector: "app-beheer-settings-options", inputs: ["projectsetting"] }, { kind: "component", type: i7.BeheerSettingsStringComponent, selector: "app-beheer-settings-string", inputs: ["projectsetting"] }] });
|
|
19
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerSettingsComponent, decorators: [{
|
|
20
22
|
type: Component,
|
|
21
23
|
args: [{ selector: 'app-beheer-settings', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"projectsettingservice.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!projectsettingservice.Loading\">\r\n <div class=\"pipeline-row\">\r\n <div class=\"pipeline-block\">\r\n Pipeline step: <span class=\"pipeline-info\">{{ projectsettingservice.ProjectSettingsViewModel.pipelineStep }}</span>\r\n </div>\r\n </div>\r\n\r\n <mat-accordion>\r\n <mat-expansion-panel *ngFor=\"let projectsetting of projectsettingservice.ProjectSettingsViewModel.projectSettingViewModels\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ projectsetting.name }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ projectsetting.activeValue }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div>\r\n <app-beheer-settings-string *ngIf=\"projectsetting.projectSettingType == 1\" [projectsetting]=\"projectsetting\"></app-beheer-settings-string>\r\n <app-beheer-settings-options *ngIf=\"projectsetting.projectSettingType == 2\" [projectsetting]=\"projectsetting\"></app-beheer-settings-options>\r\n \r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n</div>\r\n", styles: [".row{display:flex}.expand{flex:auto}.pipeline-row{text-align:right;padding:5px}.pipeline-block{padding:5px;display:inline-block;border:1px solid #000}.pipeline-info{font-weight:700}.projectsetting-item{border-bottom:1px solid #000!important}.fullwidth{width:100%}\n"] }]
|
|
22
|
-
}], ctorParameters: function () { return [{ type: i1.ProjectSettingService }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
}], ctorParameters: function () { return [{ type: i1.ProjectSettingService }, { type: i0.ChangeDetectorRef }]; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNldHRpbmdzL2JlaGVlci1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZXR0aW5ncy9iZWhlZXItc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVFyRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQW1CLHFCQUE0QyxFQUFVLGlCQUFvQztRQUExRiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUM3RyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6RSxDQUFDOztvSEFQVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyRENScEMscXdDQStCQTsyRkR2QmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9qZWN0U2V0dGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9qZWN0c2V0dGluZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1zZXR0aW5ncycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlclNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHByb2plY3RzZXR0aW5nc2VydmljZTogUHJvamVjdFNldHRpbmdTZXJ2aWNlLCBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb2plY3RzZXR0aW5nc2VydmljZS5Mb2FkUHJvamVjdFNldHRpbmdzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJwcm9qZWN0c2V0dGluZ3NlcnZpY2UuTG9hZGluZ1wiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFwcm9qZWN0c2V0dGluZ3NlcnZpY2UuTG9hZGluZ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJwaXBlbGluZS1yb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwaXBlbGluZS1ibG9ja1wiPlxyXG4gICAgICBQaXBlbGluZSBzdGVwOiA8c3BhbiBjbGFzcz1cInBpcGVsaW5lLWluZm9cIj57eyBwcm9qZWN0c2V0dGluZ3NlcnZpY2UuUHJvamVjdFNldHRpbmdzVmlld01vZGVsLnBpcGVsaW5lU3RlcCB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bWF0LWFjY29yZGlvbj5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICpuZ0Zvcj1cImxldCBwcm9qZWN0c2V0dGluZyBvZiBwcm9qZWN0c2V0dGluZ3NlcnZpY2UuUHJvamVjdFNldHRpbmdzVmlld01vZGVsLnByb2plY3RTZXR0aW5nVmlld01vZGVsc1wiPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7IHByb2plY3RzZXR0aW5nLm5hbWUgfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAge3sgcHJvamVjdHNldHRpbmcuYWN0aXZlVmFsdWUgfX1cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8YXBwLWJlaGVlci1zZXR0aW5ncy1zdHJpbmcgKm5nSWY9XCJwcm9qZWN0c2V0dGluZy5wcm9qZWN0U2V0dGluZ1R5cGUgPT0gMVwiIFtwcm9qZWN0c2V0dGluZ109XCJwcm9qZWN0c2V0dGluZ1wiPjwvYXBwLWJlaGVlci1zZXR0aW5ncy1zdHJpbmc+XHJcbiAgICAgICAgPGFwcC1iZWhlZXItc2V0dGluZ3Mtb3B0aW9ucyAqbmdJZj1cInByb2plY3RzZXR0aW5nLnByb2plY3RTZXR0aW5nVHlwZSA9PSAyXCIgW3Byb2plY3RzZXR0aW5nXT1cInByb2plY3RzZXR0aW5nXCI+PC9hcHAtYmVoZWVyLXNldHRpbmdzLW9wdGlvbnM+XHJcbiAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgPC9tYXQtYWNjb3JkaW9uPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CreateExportRequest, ReadExportRequest } from '../../../swagger/SwaggerClient';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../services/translate.service";
|
|
5
|
+
import * as i2 from "../../../swagger/SwaggerClient";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/form-field";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "@angular/material/button";
|
|
10
|
+
import * as i7 from "@angular/material/card";
|
|
11
|
+
import * as i8 from "@angular/material/select";
|
|
12
|
+
import * as i9 from "@angular/material/core";
|
|
13
|
+
import * as i10 from "../beheer-nav/beheer-nav.component";
|
|
14
|
+
import * as i11 from "../../../components/fab-loader/fab-loader.component";
|
|
15
|
+
import * as i12 from "../../../components/fab-flag/fab-flag.component";
|
|
16
|
+
export class BeheerTranslateComponent {
|
|
17
|
+
constructor(TranslateService, TranslateApiClient, ChangeDetectorRef) {
|
|
18
|
+
this.TranslateService = TranslateService;
|
|
19
|
+
this.TranslateApiClient = TranslateApiClient;
|
|
20
|
+
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.TranslateService.LoadTranslations(this.ChangeDetectorRef);
|
|
24
|
+
}
|
|
25
|
+
GetCategoryEntries() {
|
|
26
|
+
if (this.TranslateService.LanguagesViewModel?.languages != null && this.TranslateService.LanguagesViewModel.languages.length > 0 && this.TranslateService.LanguagesViewModel.languages[0].categoryEntries != null) {
|
|
27
|
+
return this.TranslateService.LanguagesViewModel.languages[0].categoryEntries;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return new Array();
|
|
31
|
+
;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
GetProductEntries() {
|
|
35
|
+
if (this.TranslateService.LanguagesViewModel?.languages != null && this.TranslateService.LanguagesViewModel.languages.length > 0 && this.TranslateService.LanguagesViewModel.languages[0].productEntries != null) {
|
|
36
|
+
return this.TranslateService.LanguagesViewModel.languages[0].productEntries;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return new Array();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
GetFilterEntries() {
|
|
43
|
+
if (this.TranslateService.LanguagesViewModel?.languages != null && this.TranslateService.LanguagesViewModel.languages.length > 0 && this.TranslateService.LanguagesViewModel.languages[0].filterEntries != null) {
|
|
44
|
+
return this.TranslateService.LanguagesViewModel.languages[0].filterEntries;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return new Array();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
GetFilterOptionEntries(filterid) {
|
|
51
|
+
var array = new Array();
|
|
52
|
+
if (this.TranslateService.LanguagesViewModel?.languages != null && this.TranslateService.LanguagesViewModel.languages.length > 0 && this.TranslateService.LanguagesViewModel.languages[0].filterOptionEntries != null) {
|
|
53
|
+
for (var i = 0; i < this.TranslateService.LanguagesViewModel.languages[0].filterOptionEntries.length; i++) {
|
|
54
|
+
if (this.TranslateService.LanguagesViewModel.languages[0].filterOptionEntries[i].filterId == filterid) {
|
|
55
|
+
array.push(this.TranslateService.LanguagesViewModel.languages[0].filterOptionEntries[i]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return array;
|
|
60
|
+
}
|
|
61
|
+
GetDescriptionEntries() {
|
|
62
|
+
if (this.TranslateService.LanguagesViewModel?.languages != null && this.TranslateService.LanguagesViewModel.languages.length > 0 && this.TranslateService.LanguagesViewModel.languages[0].descriptionEntries != null) {
|
|
63
|
+
return this.TranslateService.LanguagesViewModel.languages[0].descriptionEntries;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return new Array();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
GetAfbeeldingEntries() {
|
|
70
|
+
if (this.TranslateService.LanguagesViewModel?.languages != null && this.TranslateService.LanguagesViewModel.languages.length > 0 && this.TranslateService.LanguagesViewModel.languages[0].afbeeldingEntries != null) {
|
|
71
|
+
return this.TranslateService.LanguagesViewModel.languages[0].afbeeldingEntries;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return new Array();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
Export() {
|
|
78
|
+
var request = new CreateExportRequest();
|
|
79
|
+
this.TranslateService.Loading = true;
|
|
80
|
+
this.TranslateApiClient.createExport(request).subscribe((model) => {
|
|
81
|
+
alert(model.url);
|
|
82
|
+
this.TranslateService.Loading = false;
|
|
83
|
+
}, (error) => {
|
|
84
|
+
if (error.status == 400)
|
|
85
|
+
alert(error.json());
|
|
86
|
+
else {
|
|
87
|
+
alert('An unexpected error occured');
|
|
88
|
+
alert(error);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
Import() {
|
|
93
|
+
var request = new ReadExportRequest();
|
|
94
|
+
this.TranslateService.Loading = true;
|
|
95
|
+
this.TranslateApiClient.readExport(request).subscribe(() => {
|
|
96
|
+
this.TranslateService.Loading = false;
|
|
97
|
+
this.TranslateService.LoadTranslations(this.ChangeDetectorRef);
|
|
98
|
+
}, (error) => {
|
|
99
|
+
if (error.status == 400)
|
|
100
|
+
alert(error.json());
|
|
101
|
+
else {
|
|
102
|
+
alert('An unexpected error occured');
|
|
103
|
+
alert(error);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
BeheerTranslateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerTranslateComponent, deps: [{ token: i1.TranslateService }, { token: i2.TranslateApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
BeheerTranslateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BeheerTranslateComponent, selector: "app-beheer-translate", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<app-fab-loader *ngIf=\"TranslateService.Loading\"></app-fab-loader>\r\n\r\n<div *ngIf=\"!TranslateService.Loading\">\r\n <mat-card class=\"main-bar\">\r\n <mat-card-content>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Category</mat-label>\r\n <mat-select [(ngModel)]=\"TranslateService.SelectedCategory\">\r\n <mat-option *ngFor=\"let cat of TranslateService.Categories\" [value]=\"cat\">\r\n {{cat}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-raised-button (click)=\"Export()\">\r\n Export\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <mat-card class=\"main\">\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <ng-container *ngIf=\"TranslateService.GetActiveCategorie() != null\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n {{ TranslateService.GetActiveCategorie().name }}\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let key of TranslateService.GetActiveCategorie().keys\">\r\n <td>{{ key.id }}</td>\r\n <td>{{ key.name }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValue(language, TranslateService.GetActiveCategorie().name, key.name) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Categories'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Categories\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let cat of GetCategoryEntries()\">\r\n <td>{{ cat.categoryId }}</td>\r\n <td>{{ cat.categoryName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueCategory(language, cat.categoryId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Products'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Products\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let prod of GetProductEntries()\">\r\n <td>{{ prod.productId }}</td>\r\n <td>{{ prod.productName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueProduct(language, prod.productId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Filter'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Filters\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <ng-container *ngFor=\"let filter of GetFilterEntries()\">\r\n <tr>\r\n <td class=\"cat-row\">{{ filter.filterId }}</td>\r\n <td class=\"cat-row\">{{ filter.filterName }}</td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueFilter(language, filter.filterId) }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let option of GetFilterOptionEntries(filter.filterId)\">\r\n <td>{{ option.filterOptionId }}</td>\r\n <td>{{ option.filterOptionName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueFilterOption(language, option.filterOptionId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Description'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Description\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let description of GetDescriptionEntries()\">\r\n <td>{{ description.bcbProductId }}</td>\r\n <td>{{ description.productName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueDescription(language, description.bcbProductId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Afbeelding'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Afbeelding\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let afbeelding of GetAfbeeldingEntries()\">\r\n <td>{{ afbeelding.bcbProductAfbeeldingId }}</td>\r\n <td>{{ afbeelding.productName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueAfbeelding(language, afbeelding.bcbProductAfbeeldingId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n</div>\r\n", styles: [".cat-row{font-weight:700;border-bottom:1px solid #000;padding-top:20px}.main{margin:20px;max-height:calc(100vH - 235px);overflow:auto}.main-bar{margin:20px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i11.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i12.FabFlagComponent, selector: "fab-flag", inputs: ["country"] }] });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BeheerTranslateComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{ selector: 'app-beheer-translate', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<app-fab-loader *ngIf=\"TranslateService.Loading\"></app-fab-loader>\r\n\r\n<div *ngIf=\"!TranslateService.Loading\">\r\n <mat-card class=\"main-bar\">\r\n <mat-card-content>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Category</mat-label>\r\n <mat-select [(ngModel)]=\"TranslateService.SelectedCategory\">\r\n <mat-option *ngFor=\"let cat of TranslateService.Categories\" [value]=\"cat\">\r\n {{cat}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-raised-button (click)=\"Export()\">\r\n Export\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <mat-card class=\"main\">\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <ng-container *ngIf=\"TranslateService.GetActiveCategorie() != null\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n {{ TranslateService.GetActiveCategorie().name }}\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let key of TranslateService.GetActiveCategorie().keys\">\r\n <td>{{ key.id }}</td>\r\n <td>{{ key.name }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValue(language, TranslateService.GetActiveCategorie().name, key.name) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Categories'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Categories\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let cat of GetCategoryEntries()\">\r\n <td>{{ cat.categoryId }}</td>\r\n <td>{{ cat.categoryName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueCategory(language, cat.categoryId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Products'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Products\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let prod of GetProductEntries()\">\r\n <td>{{ prod.productId }}</td>\r\n <td>{{ prod.productName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueProduct(language, prod.productId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Filter'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Filters\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <ng-container *ngFor=\"let filter of GetFilterEntries()\">\r\n <tr>\r\n <td class=\"cat-row\">{{ filter.filterId }}</td>\r\n <td class=\"cat-row\">{{ filter.filterName }}</td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueFilter(language, filter.filterId) }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let option of GetFilterOptionEntries(filter.filterId)\">\r\n <td>{{ option.filterOptionId }}</td>\r\n <td>{{ option.filterOptionName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueFilterOption(language, option.filterOptionId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Description'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Description\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let description of GetDescriptionEntries()\">\r\n <td>{{ description.bcbProductId }}</td>\r\n <td>{{ description.productName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueDescription(language, description.bcbProductId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"TranslateService.SelectedCategory == 'Afbeelding'\">\r\n <tr>\r\n <td colspan=\"2\" class=\"cat-row\">\r\n Afbeelding\r\n </td>\r\n <td class=\"cat-row\" *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n <fab-flag [country]=\"language.flag\"></fab-flag> {{ language.name }}\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let afbeelding of GetAfbeeldingEntries()\">\r\n <td>{{ afbeelding.bcbProductAfbeeldingId }}</td>\r\n <td>{{ afbeelding.productName }}</td>\r\n <td *ngFor=\"let language of TranslateService.LanguagesViewModel.languages\">\r\n {{ TranslateService.GetValueAfbeelding(language, afbeelding.bcbProductAfbeeldingId) }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n</div>\r\n", styles: [".cat-row{font-weight:700;border-bottom:1px solid #000;padding-top:20px}.main{margin:20px;max-height:calc(100vH - 235px);overflow:auto}.main-bar{margin:20px}\n"] }]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.TranslateApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci10cmFuc2xhdGUvYmVoZWVyLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci10cmFuc2xhdGUvYmVoZWVyLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQXdCLGlCQUFpQixFQUFrTyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU85VSxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQ1MsZ0JBQWtDLEVBQ2pDLGtCQUFzQyxFQUN0QyxpQkFBb0M7UUFGckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBSSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLGtCQUFrQjtRQUV2QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtC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LEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUNqQjtnQkFDSCxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXJDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakUsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDakI7Z0JBQ0gsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEEzR1Usd0JBQXdCO3lHQUF4Qix3QkFBd0IsNERDVHJDLDRrTkE4SUE7MkZEcklhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENyZWF0ZUV4cG9ydFJlcXVlc3QsIENyZWF0ZUV4cG9ydFJlc3BvbnNlLCBSZWFkRXhwb3J0UmVxdWVzdCwgVHJhbnNsYXRlRW50cnlQcm9kdWN0Vmlld01vZGVsLCBUcmFuc2xhdGVFbnRyeUNhdGVnb3J5Vmlld01vZGVsLCBUcmFuc2xhdGVFbnRyeURlc2NyaXB0aW9uVmlld01vZGVsLCBUcmFuc2xhdGVFbnRyeUZpbHRlclZpZXdNb2RlbCwgVHJhbnNsYXRlRW50cnlGaWx0ZXJPcHRpb25WaWV3TW9kZWwsIFRyYW5zbGF0ZUFwaUNsaWVudCwgVHJhbnNsYXRlRW50cnlBZmJlZWxkaW5nVmlld01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLXRyYW5zbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItdHJhbnNsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXRyYW5zbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJlaGVlclRyYW5zbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBUcmFuc2xhdGVBcGlDbGllbnQ6IFRyYW5zbGF0ZUFwaUNsaWVudCxcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxvYWRUcmFuc2xhdGlvbnModGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBwdWJsaWMgR2V0Q2F0ZWdvcnlFbnRyaWVzKCk6IEFycmF5PFRyYW5zbGF0ZUVudHJ5Q2F0ZWdvcnlWaWV3TW9kZWw+IHtcblxuICAgIGlmICh0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsPy5sYW5ndWFnZXMgIT0gbnVsbCAmJiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGggPiAwICYmIHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdLmNhdGVnb3J5RW50cmllcyAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uY2F0ZWdvcnlFbnRyaWVzO1xyXG4gICAgfVxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gbmV3IEFycmF5PFRyYW5zbGF0ZUVudHJ5Q2F0ZWdvcnlWaWV3TW9kZWw+KCk7O1xyXG4gICAgfVxyXG4gIH1cblxuICBwdWJsaWMgR2V0UHJvZHVjdEVudHJpZXMoKTogQXJyYXk8VHJhbnNsYXRlRW50cnlQcm9kdWN0Vmlld01vZGVsPiB7XG5cbiAgICBpZiAodGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbD8ubGFuZ3VhZ2VzICE9IG51bGwgJiYgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXMubGVuZ3RoID4gMCAmJiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5wcm9kdWN0RW50cmllcyAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0ucHJvZHVjdEVudHJpZXM7XHJcbiAgICB9XG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8VHJhbnNsYXRlRW50cnlQcm9kdWN0Vmlld01vZGVsPigpO1xyXG4gICAgfVxyXG4gIH1cblxuICBwdWJsaWMgR2V0RmlsdGVyRW50cmllcygpOiBBcnJheTxUcmFuc2xhdGVFbnRyeUZpbHRlclZpZXdNb2RlbD4ge1xuXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uZmlsdGVyRW50cmllcyAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uZmlsdGVyRW50cmllcztcclxuICAgIH1cbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBBcnJheTxUcmFuc2xhdGVFbnRyeUZpbHRlclZpZXdNb2RlbD4oKTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIEdldEZpbHRlck9wdGlvbkVudHJpZXMoZmlsdGVyaWQ6IG51bWJlcik6IEFycmF5PFRyYW5zbGF0ZUVudHJ5RmlsdGVyT3B0aW9uVmlld01vZGVsPiB7XG4gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5PFRyYW5zbGF0ZUVudHJ5RmlsdGVyT3B0aW9uVmlld01vZGVsPigpO1xuXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uZmlsdGVyT3B0aW9uRW50cmllcyAhPSBudWxsKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdLmZpbHRlck9wdGlvbkVudHJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uZmlsdGVyT3B0aW9uRW50cmllc1tpXS5maWx0ZXJJZCA9PSBmaWx0ZXJpZCkge1xyXG4gICAgICAgICAgYXJyYXkucHVzaCh0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5maWx0ZXJPcHRpb25FbnRyaWVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxuXG4gIHB1YmxpYyBHZXREZXNjcmlwdGlvbkVudHJpZXMoKTogQXJyYXk8VHJhbnNsYXRlRW50cnlEZXNjcmlwdGlvblZpZXdNb2RlbD4ge1xuXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uZGVzY3JpcHRpb25FbnRyaWVzICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5kZXNjcmlwdGlvbkVudHJpZXM7XHJcbiAgICB9XG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8VHJhbnNsYXRlRW50cnlEZXNjcmlwdGlvblZpZXdNb2RlbD4oKTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIEdldEFmYmVlbGRpbmdFbnRyaWVzKCk6IEFycmF5PFRyYW5zbGF0ZUVudHJ5QWZiZWVsZGluZ1ZpZXdNb2RlbD4ge1xuXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0uYWZiZWVsZGluZ0VudHJpZXMgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdLmFmYmVlbGRpbmdFbnRyaWVzO1xyXG4gICAgfVxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gbmV3IEFycmF5PFRyYW5zbGF0ZUVudHJ5QWZiZWVsZGluZ1ZpZXdNb2RlbD4oKTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIEV4cG9ydCgpOiB2b2lkIHtcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBDcmVhdGVFeHBvcnRSZXF1ZXN0KCk7XHJcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5UcmFuc2xhdGVBcGlDbGllbnQuY3JlYXRlRXhwb3J0KHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IENyZWF0ZUV4cG9ydFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGFsZXJ0KG1vZGVsLnVybCk7XHJcbiAgICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGFsZXJ0KGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgSW1wb3J0KCk6IHZvaWQge1xuICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlYWRFeHBvcnRSZXF1ZXN0KCk7XHJcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5UcmFuc2xhdGVBcGlDbGllbnQucmVhZEV4cG9ydChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTG9hZFRyYW5zbGF0aW9ucyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgYWxlcnQoZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxuXG5cbn1cbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxyXG5cclxuPGFwcC1mYWItbG9hZGVyICpuZ0lmPVwiVHJhbnNsYXRlU2VydmljZS5Mb2FkaW5nXCI+PC9hcHAtZmFiLWxvYWRlcj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhVHJhbnNsYXRlU2VydmljZS5Mb2FkaW5nXCI+XHJcbiAgPG1hdC1jYXJkIGNsYXNzPVwibWFpbi1iYXJcIj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPkNhdGVnb3J5PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJUcmFuc2xhdGVTZXJ2aWNlLlNlbGVjdGVkQ2F0ZWdvcnlcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjYXQgb2YgVHJhbnNsYXRlU2VydmljZS5DYXRlZ29yaWVzXCIgW3ZhbHVlXT1cImNhdFwiPlxyXG4gICAgICAgICAgICB7e2NhdH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJFeHBvcnQoKVwiPlxyXG4gICAgICAgIEV4cG9ydFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICBJbXBvcnRcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPG1hdC1jYXJkIGNsYXNzPVwibWFpblwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVDYXRlZ29yaWUoKSAhPSBudWxsXCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiIGNsYXNzPVwiY2F0LXJvd1wiPlxyXG4gICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlQ2F0ZWdvcmllKCkubmFtZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXQtcm93XCIgKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIFRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgIDxmYWItZmxhZyBbY291bnRyeV09XCJsYW5ndWFnZS5mbGFnXCI+PC9mYWItZmxhZz4ge3sgbGFuZ3VhZ2UubmFtZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQga2V5IG9mIFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlQ2F0ZWdvcmllKCkua2V5c1wiPlxyXG4gICAgICAgICAgICA8dGQ+e3sga2V5LmlkIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7IGtleS5uYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBsYW5ndWFnZSBvZiBUcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNcIj5cclxuICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldFZhbHVlKGxhbmd1YWdlLCBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZUNhdGVnb3JpZSgpLm5hbWUsIGtleS5uYW1lKSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiVHJhbnNsYXRlU2VydmljZS5TZWxlY3RlZENhdGVnb3J5ID09ICdDYXRlZ29yaWVzJ1wiPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImNhdC1yb3dcIj5cclxuICAgICAgICAgICAgICBDYXRlZ29yaWVzXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNhdC1yb3dcIiAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzXCI+XHJcbiAgICAgICAgICAgICAgPGZhYi1mbGFnIFtjb3VudHJ5XT1cImxhbmd1YWdlLmZsYWdcIj48L2ZhYi1mbGFnPiB7eyBsYW5ndWFnZS5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBjYXQgb2YgR2V0Q2F0ZWdvcnlFbnRyaWVzKClcIj5cclxuICAgICAgICAgICAgPHRkPnt7IGNhdC5jYXRlZ29yeUlkIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7IGNhdC5jYXRlZ29yeU5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIFRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0VmFsdWVDYXRlZ29yeShsYW5ndWFnZSwgY2F0LmNhdGVnb3J5SWQpIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNlbGVjdGVkQ2F0ZWdvcnkgPT0gJ1Byb2R1Y3RzJ1wiPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImNhdC1yb3dcIj5cclxuICAgICAgICAgICAgICBQcm9kdWN0c1xyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXQtcm93XCIgKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIFRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgIDxmYWItZmxhZyBbY291bnRyeV09XCJsYW5ndWFnZS5mbGFnXCI+PC9mYWItZmxhZz4ge3sgbGFuZ3VhZ2UubmFtZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcHJvZCBvZiBHZXRQcm9kdWN0RW50cmllcygpXCI+XHJcbiAgICAgICAgICAgIDx0ZD57eyBwcm9kLnByb2R1Y3RJZCB9fTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57eyBwcm9kLnByb2R1Y3ROYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBsYW5ndWFnZSBvZiBUcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNcIj5cclxuICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldFZhbHVlUHJvZHVjdChsYW5ndWFnZSwgcHJvZC5wcm9kdWN0SWQpIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNlbGVjdGVkQ2F0ZWdvcnkgPT0gJ0ZpbHRlcidcIj5cclxuICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJjYXQtcm93XCI+XHJcbiAgICAgICAgICAgICAgRmlsdGVyc1xyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXQtcm93XCIgKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIFRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgIDxmYWItZmxhZyBbY291bnRyeV09XCJsYW5ndWFnZS5mbGFnXCI+PC9mYWItZmxhZz4ge3sgbGFuZ3VhZ2UubmFtZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBHZXRGaWx0ZXJFbnRyaWVzKClcIj5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNhdC1yb3dcIj57eyBmaWx0ZXIuZmlsdGVySWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNhdC1yb3dcIj57eyBmaWx0ZXIuZmlsdGVyTmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2F0LXJvd1wiICpuZ0Zvcj1cImxldCBsYW5ndWFnZSBvZiBUcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNcIj5cclxuICAgICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0VmFsdWVGaWx0ZXIobGFuZ3VhZ2UsIGZpbHRlci5maWx0ZXJJZCkgfX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBHZXRGaWx0ZXJPcHRpb25FbnRyaWVzKGZpbHRlci5maWx0ZXJJZClcIj5cclxuICAgICAgICAgICAgICA8dGQ+e3sgb3B0aW9uLmZpbHRlck9wdGlvbklkIH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+e3sgb3B0aW9uLmZpbHRlck9wdGlvbk5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldFZhbHVlRmlsdGVyT3B0aW9uKGxhbmd1YWdlLCBvcHRpb24uZmlsdGVyT3B0aW9uSWQpIH19XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNlbGVjdGVkQ2F0ZWdvcnkgPT0gJ0Rlc2NyaXB0aW9uJ1wiPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImNhdC1yb3dcIj5cclxuICAgICAgICAgICAgICBEZXNjcmlwdGlvblxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXQtcm93XCIgKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIFRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgIDxmYWItZmxhZyBbY291bnRyeV09XCJsYW5ndWFnZS5mbGFnXCI+PC9mYWItZmxhZz4ge3sgbGFuZ3VhZ2UubmFtZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGVzY3JpcHRpb24gb2YgR2V0RGVzY3JpcHRpb25FbnRyaWVzKClcIj5cclxuICAgICAgICAgICAgPHRkPnt7IGRlc2NyaXB0aW9uLmJjYlByb2R1Y3RJZCB9fTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57eyBkZXNjcmlwdGlvbi5wcm9kdWN0TmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgVHJhbnNsYXRlU2VydmljZS5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzXCI+XHJcbiAgICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRWYWx1ZURlc2NyaXB0aW9uKGxhbmd1YWdlLCBkZXNjcmlwdGlvbi5iY2JQcm9kdWN0SWQpIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNlbGVjdGVkQ2F0ZWdvcnkgPT0gJ0FmYmVlbGRpbmcnXCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiIGNsYXNzPVwiY2F0LXJvd1wiPlxyXG4gICAgICAgICAgICAgIEFmYmVlbGRpbmdcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2F0LXJvd1wiICpuZ0Zvcj1cImxldCBsYW5ndWFnZSBvZiBUcmFuc2xhdGVTZXJ2aWNlLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNcIj5cclxuICAgICAgICAgICAgICA8ZmFiLWZsYWcgW2NvdW50cnldPVwibGFuZ3VhZ2UuZmxhZ1wiPjwvZmFiLWZsYWc+IHt7IGxhbmd1YWdlLm5hbWUgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGFmYmVlbGRpbmcgb2YgR2V0QWZiZWVsZGluZ0VudHJpZXMoKVwiPlxyXG4gICAgICAgICAgICA8dGQ+e3sgYWZiZWVsZGluZy5iY2JQcm9kdWN0QWZiZWVsZGluZ0lkIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7IGFmYmVlbGRpbmcucHJvZHVjdE5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIFRyYW5zbGF0ZVNlcnZpY2UuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0VmFsdWVBZmJlZWxkaW5nKGxhbmd1YWdlLCBhZmJlZWxkaW5nLmJjYlByb2R1Y3RBZmJlZWxkaW5nSWQpIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZGl2PlxyXG4iXX0=
|