fabrikantencore 2.9.2 → 2.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.mjs +4 -4
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +21 -4
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +4 -4
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.mjs +3 -3
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-select-filter-dialog/beheer-select-filter-dialog.component.mjs +3 -2
- package/esm2022/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.mjs +3 -10
- package/esm2022/src/app/modules/fabrikantencore/components/fab-display-photo-dialog/fab-display-photo-dialog.component.mjs +25 -0
- package/esm2022/src/app/modules/fabrikantencore/components/fab-filter-label/fab-filter-label.component.mjs +3 -3
- package/esm2022/src/app/modules/fabrikantencore/components/fab-filter-picture-select/fab-filter-picture-select.component.mjs +70 -0
- package/esm2022/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +18 -3
- package/esm2022/src/app/modules/fabrikantencore/components/fab-form/fab-form.component.mjs +107 -0
- package/esm2022/src/app/modules/fabrikantencore/components/fab-form-dialog/fab-form-dialog.component.mjs +14 -80
- package/esm2022/src/app/modules/fabrikantencore/components/fab-input/fab-input.component.mjs +4 -3
- package/esm2022/src/app/modules/fabrikantencore/components/fab-input-code/fab-input-code.component.mjs +8 -9
- package/esm2022/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +11 -3
- package/esm2022/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +12 -3
- package/esm2022/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +51 -51
- package/esm2022/src/app/modules/fabrikantencore/services/products.service.mjs +2 -2
- package/esm2022/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +96 -1
- package/fesm2022/fabrikantencore.mjs +737 -490
- package/fesm2022/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +1 -0
- package/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.d.ts +0 -1
- package/src/app/modules/fabrikantencore/components/fab-display-photo-dialog/fab-display-photo-dialog.component.d.ts +10 -0
- package/src/app/modules/fabrikantencore/components/fab-filter-picture-select/fab-filter-picture-select.component.d.ts +28 -0
- package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +2 -0
- package/src/app/modules/fabrikantencore/components/fab-form/fab-form.component.d.ts +25 -0
- package/src/app/modules/fabrikantencore/components/fab-form-dialog/fab-form-dialog.component.d.ts +2 -11
- package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.d.ts +1 -0
- package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +32 -29
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +26 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { BeheerImportSetsDialogComponent } from './beheer-import-sets-dialog/beheer-import-sets-dialog.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/material/legacy-dialog";
|
|
@@ -70,11 +70,11 @@ class BeheerImportSetsComponent {
|
|
|
70
70
|
return array;
|
|
71
71
|
}
|
|
72
72
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerImportSetsComponent, deps: [{ token: i1.MatLegacyDialog }, { token: i2.ProductsService }, { token: i3.ImportSetsService }, { token: i4.ImportApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerImportSetsComponent, selector: "app-beheer-import-sets", ngImport: i0, 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()\" 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\" (selectionChange)=\"Reload()\">\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-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 <h3 class=\"title\">{{ ImportSetsService.BCBImportOpenResponse?.bcbeboViewModel?.name }}</h3>\r\n\r\n <div class=\"opbouw\">Opbouw</div>\r\n <app-beheer-import-sets-opbouw *ngFor=\"let opbouw of ImportSetsService.BCBImportOpenResponse.bcbImportOpbouwen\" [opbouw]=\"opbouw\"></app-beheer-import-sets-opbouw>\r\n\r\n <div class=\"opbouw\">Eigenschap</div>\r\n <app-beheer-import-sets-eigenschap *ngFor=\"let eigenschap of ImportSetsService.BCBImportOpenResponse.bcbImportEigenschappen\" [eigenschap]=\"eigenschap\"></app-beheer-import-sets-eigenschap>\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}.opbouw{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatLegacyButton, 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: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i9.MatLegacyCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i10.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i12.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i13.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i14.BeheerImportSetsOpbouwComponent, selector: "app-beheer-import-sets-opbouw", inputs: ["opbouw"] }, { kind: "component", type: i15.BeheerImportSetsEigenschapComponent, selector: "app-beheer-import-sets-eigenschap", inputs: ["eigenschap"] }] });
|
|
73
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerImportSetsComponent, selector: "app-beheer-import-sets", ngImport: i0, 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()\" 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\" (selectionChange)=\"Reload()\">\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-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 <h3 class=\"title\">{{ ImportSetsService.BCBImportOpenResponse?.bcbeboViewModel?.name }}</h3>\r\n\r\n <div class=\"opbouw\">Opbouw</div>\r\n <app-beheer-import-sets-opbouw *ngFor=\"let opbouw of ImportSetsService.BCBImportOpenResponse.bcbImportOpbouwen\" [opbouw]=\"opbouw\"></app-beheer-import-sets-opbouw>\r\n\r\n <div class=\"opbouw\">Eigenschap</div>\r\n <app-beheer-import-sets-eigenschap *ngFor=\"let eigenschap of ImportSetsService.BCBImportOpenResponse.bcbImportEigenschappen\" [eigenschap]=\"eigenschap\"></app-beheer-import-sets-eigenschap>\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: ["app-beheer-import-sets .main-content{padding:5px}app-beheer-import-sets .flex-auto{flex:auto}app-beheer-import-sets .mat-form-field-wrapper{padding-bottom:0}app-beheer-import-sets .mat-form-field-underline{bottom:0}app-beheer-import-sets .full-width{width:100%}app-beheer-import-sets .value-block{margin:3px}app-beheer-import-sets .importset-block{min-width:300px}app-beheer-import-sets .full-height{height:100%}app-beheer-import-sets .main-block{display:flex}app-beheer-import-sets .block{margin-top:5px;margin-bottom:5px}app-beheer-import-sets .toolbar{display:flex}app-beheer-import-sets .toolbar-item{margin-right:3px}app-beheer-import-sets .card{margin:3px}app-beheer-import-sets .opbouw{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatLegacyButton, 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: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i9.MatLegacyCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i10.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i12.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i13.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i14.BeheerImportSetsOpbouwComponent, selector: "app-beheer-import-sets-opbouw", inputs: ["opbouw"] }, { kind: "component", type: i15.BeheerImportSetsEigenschapComponent, selector: "app-beheer-import-sets-eigenschap", inputs: ["eigenschap"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
74
74
|
}
|
|
75
75
|
export { BeheerImportSetsComponent };
|
|
76
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerImportSetsComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
|
-
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()\" 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\" (selectionChange)=\"Reload()\">\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-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 <h3 class=\"title\">{{ ImportSetsService.BCBImportOpenResponse?.bcbeboViewModel?.name }}</h3>\r\n\r\n <div class=\"opbouw\">Opbouw</div>\r\n <app-beheer-import-sets-opbouw *ngFor=\"let opbouw of ImportSetsService.BCBImportOpenResponse.bcbImportOpbouwen\" [opbouw]=\"opbouw\"></app-beheer-import-sets-opbouw>\r\n\r\n <div class=\"opbouw\">Eigenschap</div>\r\n <app-beheer-import-sets-eigenschap *ngFor=\"let eigenschap of ImportSetsService.BCBImportOpenResponse.bcbImportEigenschappen\" [eigenschap]=\"eigenschap\"></app-beheer-import-sets-eigenschap>\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}.opbouw{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"] }]
|
|
78
|
+
args: [{ selector: 'app-beheer-import-sets', encapsulation: ViewEncapsulation.None, 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()\" 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\" (selectionChange)=\"Reload()\">\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-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 <h3 class=\"title\">{{ ImportSetsService.BCBImportOpenResponse?.bcbeboViewModel?.name }}</h3>\r\n\r\n <div class=\"opbouw\">Opbouw</div>\r\n <app-beheer-import-sets-opbouw *ngFor=\"let opbouw of ImportSetsService.BCBImportOpenResponse.bcbImportOpbouwen\" [opbouw]=\"opbouw\"></app-beheer-import-sets-opbouw>\r\n\r\n <div class=\"opbouw\">Eigenschap</div>\r\n <app-beheer-import-sets-eigenschap *ngFor=\"let eigenschap of ImportSetsService.BCBImportOpenResponse.bcbImportEigenschappen\" [eigenschap]=\"eigenschap\"></app-beheer-import-sets-eigenschap>\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: ["app-beheer-import-sets .main-content{padding:5px}app-beheer-import-sets .flex-auto{flex:auto}app-beheer-import-sets .mat-form-field-wrapper{padding-bottom:0}app-beheer-import-sets .mat-form-field-underline{bottom:0}app-beheer-import-sets .full-width{width:100%}app-beheer-import-sets .value-block{margin:3px}app-beheer-import-sets .importset-block{min-width:300px}app-beheer-import-sets .full-height{height:100%}app-beheer-import-sets .main-block{display:flex}app-beheer-import-sets .block{margin-top:5px;margin-bottom:5px}app-beheer-import-sets .toolbar{display:flex}app-beheer-import-sets .toolbar-item{margin-right:3px}app-beheer-import-sets .card{margin:3px}app-beheer-import-sets .opbouw{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"] }]
|
|
79
79
|
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }, { type: i2.ProductsService }, { type: i3.ImportSetsService }, { type: i4.ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1pbXBvcnQtc2V0cy9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxILE1BS2EseUJBQXlCO0lBRzNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0M7SUFMVixZQUNTLE1BQWlCLEVBQ2pCLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUMvQixpQkFBb0M7UUFKckMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUU5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRTtZQUNoRSxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xELElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJO2FBQ3ZEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRTtZQUNoRSxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDTixJQUFJLEVBQUUsRUFBRTthQUNUO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO0lBQ3BGLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7UUFFMUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztRQUV6RSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzdFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0EzRFUseUJBQXlCOzJGQUF6Qix5QkFBeUIsOERDWnRDLG94SEE0RkE7O1NEaEZhLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1wb3J0c2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydEFwaUNsaWVudCwgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCwgQkNCSW1wb3J0U2V0Vmlld01vZGVsLCBQcm9kdWN0Vmlld01vZGVsLCBCQ0JQcm9kdWN0Vmlld01vZGVsLCBCQ0JJbXBvcnRPcGVuUmVxdWVzdCwgQkNCSW1wb3J0T3BlblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgQmVoZWVySW1wb3J0U2V0c0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyLWltcG9ydC1zZXRzLWRpYWxvZy9iZWhlZXItaW1wb3J0LXNldHMtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItaW1wb3J0LXNldHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJJbXBvcnRTZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwdWJsaWMgUHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuTG9hZEltcG9ydFNldHModGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgV2lqemlnKCk6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVySW1wb3J0U2V0c0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaWQ6IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuR2V0QWN0aXZlSW1wb3J0U2V0KCkuaWQsXHJcbiAgICAgICAgbmFtZTogdGhpcy5JbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5uYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlckltcG9ydFNldHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGlkOiAtMSxcclxuICAgICAgICBuYW1lOiBcIlwiXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ0ltcG9ydFNldHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuT3Blbih0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0U2VsZWN0ZWQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlbG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9kdWN0cygpOiBBcnJheTxQcm9kdWN0Vmlld01vZGVsPiB7XHJcbiAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk8UHJvZHVjdFZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kdWN0c1tpXS5pbXBvcnRTZXRJZCA9PSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkdldEFjdGl2ZUltcG9ydFNldCgpLmlkKSB7XHJcbiAgICAgICAgICBhcnJheS5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxyXG5cclxuPGRpdiAqbmdJZj1cIkxvYWRpbmcoKVwiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFMb2FkaW5nKClcIiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gIDxtYXQtY2FyZD5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+SW1wb3J0IHNldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiUmVsb2FkKClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAge3tpbXBvcnRzZXQubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIldpanppZygpXCI+XHJcbiAgICAgICAgICBXaWp6aWdcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJUb2V2b2VnZW4oKVwiPlxyXG4gICAgICAgICAgVG9ldm9lZ2VuXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwiR2V0UHJvZHVjdHMoKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+UHJvZHVjdDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIEdldFByb2R1Y3RzKClcIiBbdmFsdWVdPVwicHJvZHVjdC5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7cHJvZHVjdC5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1pdGVtIGZsZXgtYXV0b1wiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5CQ0JQcm9kdWN0PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0U2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgUHJvZHVjdHNTZXJ2aWNlLkdldEJDQlByb2R1Y3RzU2VsZWN0ZWQoKVwiIFt2YWx1ZV09XCJwcm9kdWN0LmlkXCI+XHJcbiAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJPcGVuKClcIj5cclxuICAgICAgICAgIE9wZW5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1jYXJkPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0byBibG9ja1wiPlxyXG4gICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ09wZW5cIj5cclxuICAgICAgICAgICAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ09wZW4gJiYgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0T3BlblJlc3BvbnNlICE9IG51bGxcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwidGl0bGVcIj57eyBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRPcGVuUmVzcG9uc2U/LmJjYmVib1ZpZXdNb2RlbD8ubmFtZSB9fTwvaDM+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Bib3V3XCI+T3Bib3V3PC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dyAqbmdGb3I9XCJsZXQgb3Bib3V3IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydE9wZW5SZXNwb25zZS5iY2JJbXBvcnRPcGJvdXdlblwiIFtvcGJvdXddPVwib3Bib3V3XCI+PC9hcHAtYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcGJvdXdcIj5FaWdlbnNjaGFwPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXAgKm5nRm9yPVwibGV0IGVpZ2Vuc2NoYXAgb2YgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0T3BlblJlc3BvbnNlLmJjYkltcG9ydEVpZ2Vuc2NoYXBwZW5cIiBbZWlnZW5zY2hhcF09XCJlaWdlbnNjaGFwXCI+PC9hcHAtYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0c2V0LWJsb2NrIGJsb2NrXCI+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3sgSW1wb3J0U2V0c1NlcnZpY2UuR2V0QWN0aXZlSW1wb3J0U2V0KCkubmFtZSB9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJ2YWx1ZS1ibG9ja1wiICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBJbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5iY2JJbXBvcnRTZXRWYWx1ZVZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAge3sgdmFsdWUudmFsdWUgfX1cclxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1pbXBvcnQtc2V0cy9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxILE1BTWEseUJBQXlCO0lBRzNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0M7SUFMVixZQUNTLE1BQWlCLEVBQ2pCLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUMvQixpQkFBb0M7UUFKckMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUU5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRTtZQUNoRSxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xELElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJO2FBQ3ZEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRTtZQUNoRSxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDTixJQUFJLEVBQUUsRUFBRTthQUNUO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO0lBQ3BGLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7UUFFMUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztRQUV6RSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzdFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0EzRFUseUJBQXlCOzJGQUF6Qix5QkFBeUIsOERDYnRDLG94SEE0RkE7O1NEL0VhLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHdCQUF3QixpQkFHbkIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xyXG5pbXBvcnQgeyBJbXBvcnRTZXRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltcG9ydHNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbXBvcnRBcGlDbGllbnQsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwsIEJDQkltcG9ydFNldFZpZXdNb2RlbCwgUHJvZHVjdFZpZXdNb2RlbCwgQkNCUHJvZHVjdFZpZXdNb2RlbCwgQkNCSW1wb3J0T3BlblJlcXVlc3QsIEJDQkltcG9ydE9wZW5SZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEJlaGVlckltcG9ydFNldHNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci1pbXBvcnQtc2V0cy1kaWFsb2cvYmVoZWVyLWltcG9ydC1zZXRzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLWltcG9ydC1zZXRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLWltcG9ydC1zZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItaW1wb3J0LXNldHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJJbXBvcnRTZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwdWJsaWMgUHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuTG9hZEltcG9ydFNldHModGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgV2lqemlnKCk6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVySW1wb3J0U2V0c0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaWQ6IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuR2V0QWN0aXZlSW1wb3J0U2V0KCkuaWQsXHJcbiAgICAgICAgbmFtZTogdGhpcy5JbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5uYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlckltcG9ydFNldHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGlkOiAtMSxcclxuICAgICAgICBuYW1lOiBcIlwiXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ0ltcG9ydFNldHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuT3Blbih0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0U2VsZWN0ZWQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlbG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9kdWN0cygpOiBBcnJheTxQcm9kdWN0Vmlld01vZGVsPiB7XHJcbiAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk8UHJvZHVjdFZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kdWN0c1tpXS5pbXBvcnRTZXRJZCA9PSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkdldEFjdGl2ZUltcG9ydFNldCgpLmlkKSB7XHJcbiAgICAgICAgICBhcnJheS5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxyXG5cclxuPGRpdiAqbmdJZj1cIkxvYWRpbmcoKVwiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFMb2FkaW5nKClcIiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gIDxtYXQtY2FyZD5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+SW1wb3J0IHNldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiUmVsb2FkKClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAge3tpbXBvcnRzZXQubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIldpanppZygpXCI+XHJcbiAgICAgICAgICBXaWp6aWdcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJUb2V2b2VnZW4oKVwiPlxyXG4gICAgICAgICAgVG9ldm9lZ2VuXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwiR2V0UHJvZHVjdHMoKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+UHJvZHVjdDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIEdldFByb2R1Y3RzKClcIiBbdmFsdWVdPVwicHJvZHVjdC5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7cHJvZHVjdC5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1pdGVtIGZsZXgtYXV0b1wiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5CQ0JQcm9kdWN0PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0U2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgUHJvZHVjdHNTZXJ2aWNlLkdldEJDQlByb2R1Y3RzU2VsZWN0ZWQoKVwiIFt2YWx1ZV09XCJwcm9kdWN0LmlkXCI+XHJcbiAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJPcGVuKClcIj5cclxuICAgICAgICAgIE9wZW5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1jYXJkPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0byBibG9ja1wiPlxyXG4gICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ09wZW5cIj5cclxuICAgICAgICAgICAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1wb3J0U2V0c1NlcnZpY2UuTG9hZGluZ09wZW4gJiYgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0T3BlblJlc3BvbnNlICE9IG51bGxcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwidGl0bGVcIj57eyBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRPcGVuUmVzcG9uc2U/LmJjYmVib1ZpZXdNb2RlbD8ubmFtZSB9fTwvaDM+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Bib3V3XCI+T3Bib3V3PC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dyAqbmdGb3I9XCJsZXQgb3Bib3V3IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydE9wZW5SZXNwb25zZS5iY2JJbXBvcnRPcGJvdXdlblwiIFtvcGJvdXddPVwib3Bib3V3XCI+PC9hcHAtYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcGJvdXdcIj5FaWdlbnNjaGFwPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXAgKm5nRm9yPVwibGV0IGVpZ2Vuc2NoYXAgb2YgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0T3BlblJlc3BvbnNlLmJjYkltcG9ydEVpZ2Vuc2NoYXBwZW5cIiBbZWlnZW5zY2hhcF09XCJlaWdlbnNjaGFwXCI+PC9hcHAtYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0c2V0LWJsb2NrIGJsb2NrXCI+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3sgSW1wb3J0U2V0c1NlcnZpY2UuR2V0QWN0aXZlSW1wb3J0U2V0KCkubmFtZSB9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJ2YWx1ZS1ibG9ja1wiICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBJbXBvcnRTZXRzU2VydmljZS5HZXRBY3RpdmVJbXBvcnRTZXQoKS5iY2JJbXBvcnRTZXRWYWx1ZVZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAge3sgdmFsdWUudmFsdWUgfX1cclxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { ConnectBCBEigenschapRequest, IgnoreBCBEigenschapRequest, ConnectEigenschapOptieRequest, LoginResponseModel } from '../../../../swagger/SwaggerClient';
|
|
2
|
+
import { ConvertBCBEigenschapRequest, ConnectBCBEigenschapRequest, IgnoreBCBEigenschapRequest, ConnectEigenschapOptieRequest, LoginResponseModel } from '../../../../swagger/SwaggerClient';
|
|
3
3
|
import { BeheerSelectFilterDialogComponent } from '../../beheer-select-filter-dialog/beheer-select-filter-dialog.component';
|
|
4
4
|
import { BeheerProductsConnectRangeinputComponent } from '../beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component';
|
|
5
5
|
import { BeheerProductsKoppelFilteroptionDailogComponent } from '../beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component';
|
|
@@ -166,6 +166,23 @@ class BeheerProductsEigenschapComponent {
|
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
|
+
Convert() {
|
|
170
|
+
if (confirm("Are you sure?")) {
|
|
171
|
+
var result = prompt("Split range into options of:", "100") + "";
|
|
172
|
+
if (this.ProductsService.BCBProductViewModel != null) {
|
|
173
|
+
var request = new ConvertBCBEigenschapRequest();
|
|
174
|
+
request.bcbEigenschapId = this.eigenschap.id;
|
|
175
|
+
request.location = this.eigenschap.location;
|
|
176
|
+
request.splitSize = parseInt(result);
|
|
177
|
+
request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
|
|
178
|
+
this.ProductsApiClient.convertBCBEigenschap(request).subscribe(() => {
|
|
179
|
+
this.ProductsService.LoadProduct(this.ChangeDetectorRef);
|
|
180
|
+
}, (error) => {
|
|
181
|
+
alert(error);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
169
186
|
ConnectRange() {
|
|
170
187
|
var dialogRef = this.dialog.open(BeheerProductsConnectRangeinputComponent, {
|
|
171
188
|
data: {
|
|
@@ -204,13 +221,13 @@ class BeheerProductsEigenschapComponent {
|
|
|
204
221
|
return false;
|
|
205
222
|
}
|
|
206
223
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerProductsEigenschapComponent, deps: [{ token: i1.ImportSetsService }, { token: i2.ProductsService }, { token: i3.MatLegacyDialog }, { token: i4.AuthenticationService }, { token: i5.ProductsApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
207
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerProductsEigenschapComponent, selector: "app-beheer-products-eigenschap", inputs: { eigenschap: "eigenschap" }, ngImport: i0, template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"!eigenschap.connected\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n <button mat-raised-button (click)=\"Ignore()\">\r\n Ignore\r\n </button>\r\n <button mat-raised-button (click)=\"IgnoreMany()\">\r\n IgnoreMany\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n
|
|
224
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerProductsEigenschapComponent, selector: "app-beheer-products-eigenschap", inputs: { eigenschap: "eigenschap" }, ngImport: i0, template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"!eigenschap.connected && !eigenschap.ignore\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n <button mat-raised-button (click)=\"Ignore()\">\r\n Ignore\r\n </button>\r\n <button mat-raised-button (click)=\"IgnoreMany()\">\r\n IgnoreMany\r\n </button>\r\n <button mat-raised-button (click)=\"Convert()\">\r\n Convert\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <!--<button mat-raised-button>\r\n Remove\r\n </button>-->\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <button mat-raised-button (click)=\"Connect(optie.id)\">\r\n FilterOption\r\n </button>\r\n <button mat-raised-button (click)=\"ConnectAuto(optie.id)\">\r\n FilterOptionAuto\r\n </button>\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"IgnoreId(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.MatLegacyButton, 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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.BeheerProductsEigenschapBereikComponent, selector: "app-beheer-products-eigenschap-bereik", inputs: ["bereik"] }] });
|
|
208
225
|
}
|
|
209
226
|
export { BeheerProductsEigenschapComponent };
|
|
210
227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerProductsEigenschapComponent, decorators: [{
|
|
211
228
|
type: Component,
|
|
212
|
-
args: [{ selector: 'app-beheer-products-eigenschap', template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"!eigenschap.connected\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n <button mat-raised-button (click)=\"Ignore()\">\r\n Ignore\r\n </button>\r\n <button mat-raised-button (click)=\"IgnoreMany()\">\r\n IgnoreMany\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n
|
|
229
|
+
args: [{ selector: 'app-beheer-products-eigenschap', template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"!eigenschap.connected && !eigenschap.ignore\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n <button mat-raised-button (click)=\"Ignore()\">\r\n Ignore\r\n </button>\r\n <button mat-raised-button (click)=\"IgnoreMany()\">\r\n IgnoreMany\r\n </button>\r\n <button mat-raised-button (click)=\"Convert()\">\r\n Convert\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <!--<button mat-raised-button>\r\n Remove\r\n </button>-->\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <button mat-raised-button (click)=\"Connect(optie.id)\">\r\n FilterOption\r\n </button>\r\n <button mat-raised-button (click)=\"ConnectAuto(optie.id)\">\r\n FilterOptionAuto\r\n </button>\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"IgnoreId(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"] }]
|
|
213
230
|
}], ctorParameters: function () { return [{ type: i1.ImportSetsService }, { type: i2.ProductsService }, { type: i3.MatLegacyDialog }, { type: i4.AuthenticationService }, { type: i5.ProductsApiClient }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { eigenschap: [{
|
|
214
231
|
type: Input
|
|
215
232
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSzVFLE9BQU8sRUFBcUIsMkJBQTJCLEVBQTBCLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMU0sT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDOUksT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0dBQW9HLENBQUM7Ozs7Ozs7Ozs7O0FBRXJLLE1BS2EsaUNBQWlDO0lBS25DO0lBQ0E7SUFDQTtJQUNBO0lBQ0M7SUFDQTtJQVJELFVBQVUsQ0FBeUI7SUFFNUMsWUFDUyxpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsTUFBaUIsRUFDakIscUJBQTRDLEVBQzNDLGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFMckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFt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RSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUk7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUksSUFBSTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxJQUFJO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0F2TlUsaUNBQWlDOzJGQUFqQyxpQ0FBaUMsNEdDaEI5Qyx5ekdBb0ZBOztTRHBFYSxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7d1FBTWpDLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW1wb3J0c2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzQXBpQ2xpZW50LCBDb25uZWN0QkNCRWlnZW5zY2hhcFJlcXVlc3QsIEJDQkVpZ2Vuc2NoYXBWaWV3TW9kZWwsIElnbm9yZUJDQkVpZ2Vuc2NoYXBSZXF1ZXN0LCBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVxdWVzdCwgTG9naW5SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgQmVoZWVyQ29ubmVjdENhdGVnb3J5RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmVoZWVyLWNvbm5lY3QtY2F0ZWdvcnktZGlhbG9nL2JlaGVlci1jb25uZWN0LWNhdGVnb3J5LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZWxlY3RGaWx0ZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cvYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclByb2R1Y3RzQ29ubmVjdFJhbmdlaW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9iZWhlZXItcHJvZHVjdHMtY29ubmVjdC1yYW5nZWlucHV0L2JlaGVlci1wcm9kdWN0cy1jb25uZWN0LXJhbmdlaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNLb3BwZWxGaWx0ZXJvcHRpb25EYWlsb2dDb21wb25lbnQgfSBmcm9tICcuLi9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cvYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBlaWdlbnNjaGFwOiBCQ0JFaWdlbnNjaGFwVmlld01vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgUHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIFByb2R1Y3RzQXBpQ2xpZW50OiBQcm9kdWN0c0FwaUNsaWVudCxcclxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5laWdlbnNjaGFwLm9wZW4gPSAhdGhpcy5laWdlbnNjaGFwLm9wZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdChpZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJQcm9kdWN0c0tvcHBlbEZpbHRlcm9wdGlvbkRhaWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbG9jYXRpb246IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbixcclxuICAgICAgICBiY2JlaWdlbnNjaGFwb3B0aWVpZDogaWRcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcclxuICAgICAgICBpZiAocmVzdWx0LmZpbHRlcm9wdGlvbiAhPSBudWxsICYmIHJlc3VsdC5maWx0ZXJvcHRpb24gPiAwKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcE9wdGllSWQgPSBpZDtcclxuICAgICAgICAgICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IHJlc3VsdC5maWx0ZXJvcHRpb247XHJcbiAgICAgICAgICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZDtcclxuICAgICAgICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENvbm5lY3RBdXRvKGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbmFtZTogdGhpcy5laWdlbnNjaGFwLm5hbWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdD8uZmlsdGVyICE9IG51bGwpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQuZmlsdGVyID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29ubmVjdEJDQkVpZ2Vuc2NoYXBSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgICAgICAgIHJlcXVlc3QuZmlsdGVySWQgPSByZXN1bHQuZmlsdGVyO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QubG9jYXRpb24gPSB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb247XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwSWQgPSB0aGlzLmVpZ2Vuc2NoYXAuaWQ7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwT3B0aWVJZCA9IGlkO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QuYmNiSW1wb3J0U2V0SWQgPSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0Lm1hbnkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBGaWx0ZXIocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdE1hbnkoaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyU2VsZWN0RmlsdGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBuYW1lOiB0aGlzLmVpZ2Vuc2NoYXAubmFtZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgICBpZiAocmVzdWx0Py5maWx0ZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXIgPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0QkNCRWlnZW5zY2hhcFJlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHJlc3VsdC5maWx0ZXI7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBJZCA9IHRoaXMuZWlnZW5zY2hhcC5pZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYkltcG9ydFNldElkID0gdGhpcy5JbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5tYW55ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBGaWx0ZXIocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSWdub3JlSWQoaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwT3B0aWVJZCA9IGlkO1xyXG4gICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gLTE7XHJcbiAgICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZDtcclxuICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuICAgICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG5cclxuICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5pZ25vcmVCQ0JFaWdlbnNjaGFwT3B0aWVGaWx0ZXJPcHRpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkUHJvZHVjdCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSWdub3JlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBJZ25vcmVCQ0JFaWdlbnNjaGFwUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwSWQgPSB0aGlzLmVpZ2Vuc2NoYXAuaWQ7XHJcbiAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuaWdub3JlQkNCRWlnZW5zY2hhcChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJZ25vcmVNYW55KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBJZ25vcmVCQ0JFaWdlbnNjaGFwUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwSWQgPSB0aGlzLmVpZ2Vuc2NoYXAuaWQ7XHJcbiAgICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZDtcclxuICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuICAgICAgcmVxdWVzdC5tYW55ID0gdHJ1ZTtcclxuICAgICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG5cclxuICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5pZ25vcmVCQ0JFaWdlbnNjaGFwKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIENvbm5lY3RSYW5nZSgpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlclByb2R1Y3RzQ29ubmVjdFJhbmdlaW5wdXRDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGJjYmVpZ2Vuc2NoYXBpZDogdGhpcy5laWdlbnNjaGFwLmlkLFxyXG4gICAgICAgIGxvY2F0aW9uOiB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb25cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdENhdGVnb3J5KCk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmZpcm0oXCJXZWV0IGplIGhldCB6ZWtlcj9cIikpIHtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29ubmVjdEJDQkVpZ2Vuc2NoYXBSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBJZCA9IHRoaXMuZWlnZW5zY2hhcC5pZDtcclxuICAgICAgcmVxdWVzdC5iY2JJbXBvcnRTZXRJZCA9IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0U2VsZWN0ZWQ7XHJcbiAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBDYXRlZ29yeShyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZWlnZW5zY2hhcD8ub3B0aWVzPy5sZW5ndGggIT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLmVpZ2Vuc2NoYXAub3B0aWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZWlnZW5zY2hhcD8uYmVyZWlrZW4/Lmxlbmd0aCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZWlnZW5zY2hhcC5iZXJlaWtlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVpZ2Vuc2NoYXA/LnRvZWJlaG9yZW4/Lmxlbmd0aCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZWlnZW5zY2hhcC50b2ViZWhvcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyd3YXJuaW5nJzogIWVpZ2Vuc2NoYXAuY29ubmVjdGVkLCAnbm9ybWFsJzogZWlnZW5zY2hhcC5jb25uZWN0ZWR9XCI+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJUb2dnbGUoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImljb24tdGRcIj5cclxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWVpZ2Vuc2NoYXAub3BlbiAmJiBTaG93KClcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImVpZ2Vuc2NoYXAub3BlbiAmJiBTaG93KClcIj5leHBhbmRfbGVzczwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlaWdlbnNjaGFwY2VsXCIgY29sc3Bhbj1cIjJcIj5cclxuICAgICAge3tlaWdlbnNjaGFwPy5uYW1lfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJlaWdlbnNjaGFwLm9wZW5cIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGJlcmVpayBvZiBlaWdlbnNjaGFwLmJlcmVpa2VuXCIgY2xhc3M9XCJiZXJlaWtcIj5cclxuICAgICAgPGFwcC1iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC1iZXJlaWsgW2JlcmVpa109XCJiZXJlaWtcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC1iZXJlaWs+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHRvZWJlaG9yZW4gb2YgZWlnZW5zY2hhcC50b2ViZWhvcmVuXCI+XHJcbiAgICAgIHt7IHRvZWJlaG9yZW4ubmFtZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZWlnZW5zY2hhcC5iZXJlaWtlbi5sZW5ndGggPiAwICYmIGVpZ2Vuc2NoYXAucmFuZ2VJbnB1dHMgIT0gbnVsbFwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWVpZ2Vuc2NoYXAuY29ubmVjdGVkXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdFJhbmdlKClcIj5cclxuICAgICAgICAgIFJhbmdlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSWdub3JlKClcIj5cclxuICAgICAgICAgIElnbm9yZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIklnbm9yZU1hbnkoKVwiPlxyXG4gICAgICAgICAgSWdub3JlTWFueVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmFuZ2Ugb2YgZWlnZW5zY2hhcC5yYW5nZUlucHV0c1wiPlxyXG4gICAgICAgIHt7IHJhbmdlLnJhbmdlSW5wdXRNb2RlbC5uYW1lIH19XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24+XHJcbiAgICAgICAgICBSZW1vdmVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGllIG9mIGVpZ2Vuc2NoYXAub3B0aWVzXCIgW25nQ2xhc3NdPVwieyd3YXJuaW5nJzogIW9wdGllLmNvbm5lY3RlZH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGllLmNvbG91ciAhPSBudWxsICYmIG9wdGllLmNvbG91ciAhPSAnJ1wiPlxyXG4gICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogb3B0aWUuY29sb3VyfVwiIGNsYXNzPVwiY29sb3VyLXByZXZpZXdcIj5cclxuICAgICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRpdiBsaW5lLWhlaWdodFwiPnt7IG9wdGllLm5hbWUgfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFvcHRpZS5jb25uZWN0ZWRcIiBjbGFzcz1cImJ1dHRvbi1yb3dcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNvbm5lY3Qob3B0aWUuaWQpXCI+XHJcbiAgICAgICAgICAgIEZpbHRlck9wdGlvblxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJDb25uZWN0QXV0byhvcHRpZS5pZClcIj5cclxuICAgICAgICAgICAgRmlsdGVyT3B0aW9uQXV0b1xyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJDb25uZWN0TWFueShvcHRpZS5pZClcIj5cclxuICAgICAgICAgICAgRmlsdGVyT3B0aW9uTWFueVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8IS0tPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdENhdGVnb3J5KClcIj5cclxuICAgIENhdGVnb3J5XHJcbiAgPC9idXR0b24+LS0+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJJZ25vcmVJZChvcHRpZS5pZClcIj5cclxuICAgICAgICAgICAgSWdub3JlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25uZWN0IG9mIG9wdGllLmJjYkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvblZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgIDxiPnt7IGNvbm5lY3QuZmlsdGVyT3B0aW9uVmlld01vZGVsLmZpbHRlck5hbWUgfX06IHt7IGNvbm5lY3QuZmlsdGVyT3B0aW9uVmlld01vZGVsLm5hbWUgfX08L2I+Jm5ic3A7XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICAgICAgICBSZW1vdmVcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbm5lY3Qgb2Ygb3B0aWUuYmNiRWlnZW5zY2hhcE9wdGllQ2F0ZWdvcnlWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICA8Yj57eyBjb25uZWN0LmNhdGVnb3J5Vmlld01vZGVsLm5hbWUgfX08L2I+Jm5ic3A7XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICAgICAgICBSZW1vdmVcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpZS5pZ25vcmVcIj5cclxuICAgICAgICAgIDxiPklnbm9yZTwvYj4mbmJzcDtcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBcUIsMkJBQTJCLEVBQTBCLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdk8sT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDOUksT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0dBQW9HLENBQUM7Ozs7Ozs7Ozs7O0FBRXJLLE1BS2EsaUNBQWlDO0lBS25DO0lBQ0E7SUFDQTtJQUNBO0lBQ0M7SUFDQTtJQVJELFVBQVUsQ0FBeUI7SUFFNUMsWUFDUyxpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsTUFBaUIsRUFDakIscUJBQTRDLEVBQzNDLGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFMckMsc0JBQWlCLEdBQWpC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QUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxJQUFJO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0E1T1UsaUNBQWlDOzJGQUFqQyxpQ0FBaUMsNEdDaEI5Qyw0N0dBdUZBOztTRHZFYSxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7d1FBTWpDLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW1wb3J0c2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnZlcnRCQ0JFaWdlbnNjaGFwUmVxdWVzdCwgUHJvZHVjdHNBcGlDbGllbnQsIENvbm5lY3RCQ0JFaWdlbnNjaGFwUmVxdWVzdCwgQkNCRWlnZW5zY2hhcFZpZXdNb2RlbCwgSWdub3JlQkNCRWlnZW5zY2hhcFJlcXVlc3QsIENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXF1ZXN0LCBMb2dpblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJDb25uZWN0Q2F0ZWdvcnlEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iZWhlZXItY29ubmVjdC1jYXRlZ29yeS1kaWFsb2cvYmVoZWVyLWNvbm5lY3QtY2F0ZWdvcnktZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2JlaGVlci1wcm9kdWN0cy1jb25uZWN0LXJhbmdlaW5wdXQvYmVoZWVyLXByb2R1Y3RzLWNvbm5lY3QtcmFuZ2VpbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0tvcHBlbEZpbHRlcm9wdGlvbkRhaWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlclByb2R1Y3RzRWlnZW5zY2hhcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGVpZ2Vuc2NoYXA6IEJDQkVpZ2Vuc2NoYXBWaWV3TW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIEltcG9ydFNldHNTZXJ2aWNlOiBJbXBvcnRTZXRzU2VydmljZSxcclxuICAgIHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgUHJvZHVjdHNBcGlDbGllbnQ6IFByb2R1Y3RzQXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBUb2dnbGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVpZ2Vuc2NoYXAub3BlbiA9ICF0aGlzLmVpZ2Vuc2NoYXAub3BlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb25uZWN0KGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlclByb2R1Y3RzS29wcGVsRmlsdGVyb3B0aW9uRGFpbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsb2NhdGlvbjogdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uLFxyXG4gICAgICAgIGJjYmVpZ2Vuc2NoYXBvcHRpZWlkOiBpZFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChyZXN1bHQuZmlsdGVyb3B0aW9uICE9IG51bGwgJiYgcmVzdWx0LmZpbHRlcm9wdGlvbiA+IDApIHtcclxuICAgICAgICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29ubmVjdEVpZ2Vuc2NoYXBPcHRpZVJlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuICAgICAgICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwT3B0aWVJZCA9IGlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gcmVzdWx0LmZpbHRlcm9wdGlvbjtcclxuICAgICAgICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmxvY2F0aW9uID0gdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb25uZWN0QkNCRWlnZW5zY2hhcE9wdGllRmlsdGVyT3B0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdEF1dG8oaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyU2VsZWN0RmlsdGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBuYW1lOiB0aGlzLmVpZ2Vuc2NoYXAubmFtZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgICBpZiAocmVzdWx0Py5maWx0ZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXIgPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0QkNCRWlnZW5zY2hhcFJlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHJlc3VsdC5maWx0ZXI7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBJZCA9IHRoaXMuZWlnZW5zY2hhcC5pZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBPcHRpZUlkID0gaWQ7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JJbXBvcnRTZXRJZCA9IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0U2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QubWFueSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb25uZWN0QkNCRWlnZW5zY2hhcEZpbHRlcihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb25uZWN0TWFueShpZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJTZWxlY3RGaWx0ZXJEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIG5hbWU6IHRoaXMuZWlnZW5zY2hhcC5uYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChyZXN1bHQ/LmZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmZpbHRlciA+IDApIHtcclxuICAgICAgICAgICAgaWYgKGNvbmZpcm0oXCJXZWV0IGplIGhldCB6ZWtlcj9cIikpIHtcclxuICAgICAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkaW5nUHJvZHVjdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IENvbm5lY3RCQ0JFaWdlbnNjaGFwUmVxdWVzdCgpO1xyXG5cclxuICAgICAgICAgICAgICByZXF1ZXN0LmZpbHRlcklkID0gcmVzdWx0LmZpbHRlcjtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmxvY2F0aW9uID0gdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcElkID0gdGhpcy5laWdlbnNjaGFwLmlkO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QuYmNiSW1wb3J0U2V0SWQgPSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0Lm1hbnkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb25uZWN0QkNCRWlnZW5zY2hhcEZpbHRlcihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBJZ25vcmVJZChpZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBPcHRpZUlkID0gaWQ7XHJcbiAgICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSAtMTtcclxuICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gICAgICByZXF1ZXN0LmxvY2F0aW9uID0gdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uO1xyXG4gICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcblxyXG4gICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50Lmlnbm9yZUJDQkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJZ25vcmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IElnbm9yZUJDQkVpZ2Vuc2NoYXBSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBJZCA9IHRoaXMuZWlnZW5zY2hhcC5pZDtcclxuICAgICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG5cclxuICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5pZ25vcmVCQ0JFaWdlbnNjaGFwKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIElnbm9yZU1hbnkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IElnbm9yZUJDQkVpZ2Vuc2NoYXBSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBJZCA9IHRoaXMuZWlnZW5zY2hhcC5pZDtcclxuICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gICAgICByZXF1ZXN0LmxvY2F0aW9uID0gdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uO1xyXG4gICAgICByZXF1ZXN0Lm1hbnkgPSB0cnVlO1xyXG4gICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcblxyXG4gICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50Lmlnbm9yZUJDQkVpZ2Vuc2NoYXAocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkUHJvZHVjdCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29udmVydCgpOiB2b2lkIHtcclxuICAgIGlmIChjb25maXJtKFwiQXJlIHlvdSBzdXJlP1wiKSkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gcHJvbXB0KFwiU3BsaXQgcmFuZ2UgaW50byBvcHRpb25zIG9mOlwiLCBcIjEwMFwiKSArIFwiXCI7XHJcblxyXG4gICAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29udmVydEJDQkVpZ2Vuc2NoYXBSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcElkID0gdGhpcy5laWdlbnNjaGFwLmlkO1xyXG4gICAgICAgIHJlcXVlc3QubG9jYXRpb24gPSB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb247XHJcbiAgICAgICAgcmVxdWVzdC5zcGxpdFNpemUgPSBwYXJzZUludChyZXN1bHQpO1xyXG4gICAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb252ZXJ0QkNCRWlnZW5zY2hhcChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdFJhbmdlKCk6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgYmNiZWlnZW5zY2hhcGlkOiB0aGlzLmVpZ2Vuc2NoYXAuaWQsXHJcbiAgICAgICAgbG9jYXRpb246IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb25uZWN0Q2F0ZWdvcnkoKTogdm9pZCB7XHJcbiAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkaW5nUHJvZHVjdHMgPSB0cnVlO1xyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0QkNCRWlnZW5zY2hhcFJlcXVlc3QoKTtcclxuXHJcbiAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcElkID0gdGhpcy5laWdlbnNjaGFwLmlkO1xyXG4gICAgICByZXF1ZXN0LmJjYkltcG9ydFNldElkID0gdGhpcy5JbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZDtcclxuICAgICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG5cclxuICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb25uZWN0QkNCRWlnZW5zY2hhcENhdGVnb3J5KHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3coKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5laWdlbnNjaGFwPy5vcHRpZXM/Lmxlbmd0aCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZWlnZW5zY2hhcC5vcHRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5laWdlbnNjaGFwPy5iZXJlaWtlbj8ubGVuZ3RoICE9IG51bGwgJiZcclxuICAgICAgdGhpcy5laWdlbnNjaGFwLmJlcmVpa2VuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZWlnZW5zY2hhcD8udG9lYmVob3Jlbj8ubGVuZ3RoICE9IG51bGwgJiZcclxuICAgICAgdGhpcy5laWdlbnNjaGFwLnRvZWJlaG9yZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3dhcm5pbmcnOiAhZWlnZW5zY2hhcC5jb25uZWN0ZWQsICdub3JtYWwnOiBlaWdlbnNjaGFwLmNvbm5lY3RlZH1cIj5cclxuICA8ZGl2IGNsYXNzPVwicm93XCIgKGNsaWNrKT1cIlRvZ2dsZSgpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi10ZFwiPlxyXG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhZWlnZW5zY2hhcC5vcGVuICYmIFNob3coKVwiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiZWlnZW5zY2hhcC5vcGVuICYmIFNob3coKVwiPmV4cGFuZF9sZXNzPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImVpZ2Vuc2NoYXBjZWxcIiBjb2xzcGFuPVwiMlwiPlxyXG4gICAgICB7e2VpZ2Vuc2NoYXA/Lm5hbWV9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImVpZ2Vuc2NoYXAub3BlblwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYmVyZWlrIG9mIGVpZ2Vuc2NoYXAuYmVyZWlrZW5cIiBjbGFzcz1cImJlcmVpa1wiPlxyXG4gICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLWJlcmVpayBbYmVyZWlrXT1cImJlcmVpa1wiPjwvYXBwLWJlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLWJlcmVpaz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdG9lYmVob3JlbiBvZiBlaWdlbnNjaGFwLnRvZWJlaG9yZW5cIj5cclxuICAgICAge3sgdG9lYmVob3Jlbi5uYW1lIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJlaWdlbnNjaGFwLmJlcmVpa2VuLmxlbmd0aCA+IDAgJiYgZWlnZW5zY2hhcC5yYW5nZUlucHV0cyAhPSBudWxsXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhZWlnZW5zY2hhcC5jb25uZWN0ZWQgJiYgIWVpZ2Vuc2NoYXAuaWdub3JlXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdFJhbmdlKClcIj5cclxuICAgICAgICAgIFJhbmdlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSWdub3JlKClcIj5cclxuICAgICAgICAgIElnbm9yZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIklnbm9yZU1hbnkoKVwiPlxyXG4gICAgICAgICAgSWdub3JlTWFueVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNvbnZlcnQoKVwiPlxyXG4gICAgICAgICAgQ29udmVydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmFuZ2Ugb2YgZWlnZW5zY2hhcC5yYW5nZUlucHV0c1wiPlxyXG4gICAgICAgIHt7IHJhbmdlLnJhbmdlSW5wdXRNb2RlbC5uYW1lIH19XHJcblxyXG4gICAgICAgIDwhLS08YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgPC9idXR0b24+LS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpZSBvZiBlaWdlbnNjaGFwLm9wdGllc1wiIFtuZ0NsYXNzXT1cInsnd2FybmluZyc6ICFvcHRpZS5jb25uZWN0ZWR9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpZS5jb2xvdXIgIT0gbnVsbCAmJiBvcHRpZS5jb2xvdXIgIT0gJydcIj5cclxuICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IG9wdGllLmNvbG91cn1cIiBjbGFzcz1cImNvbG91ci1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kaXYgbGluZS1oZWlnaHRcIj57eyBvcHRpZS5uYW1lIH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhb3B0aWUuY29ubmVjdGVkXCIgY2xhc3M9XCJidXR0b24tcm93XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJDb25uZWN0KG9wdGllLmlkKVwiPlxyXG4gICAgICAgICAgICBGaWx0ZXJPcHRpb25cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdEF1dG8ob3B0aWUuaWQpXCI+XHJcbiAgICAgICAgICAgIEZpbHRlck9wdGlvbkF1dG9cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdE1hbnkob3B0aWUuaWQpXCI+XHJcbiAgICAgICAgICAgIEZpbHRlck9wdGlvbk1hbnlcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLTxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNvbm5lY3RDYXRlZ29yeSgpXCI+XHJcbiAgICBDYXRlZ29yeVxyXG4gIDwvYnV0dG9uPi0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSWdub3JlSWQob3B0aWUuaWQpXCI+XHJcbiAgICAgICAgICAgIElnbm9yZVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29ubmVjdCBvZiBvcHRpZS5iY2JFaWdlbnNjaGFwT3B0aWVGaWx0ZXJPcHRpb25WaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICA8Yj57eyBjb25uZWN0LmZpbHRlck9wdGlvblZpZXdNb2RlbC5maWx0ZXJOYW1lIH19OiB7eyBjb25uZWN0LmZpbHRlck9wdGlvblZpZXdNb2RlbC5uYW1lIH19PC9iPiZuYnNwO1xyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25uZWN0IG9mIG9wdGllLmJjYkVpZ2Vuc2NoYXBPcHRpZUNhdGVnb3J5Vmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgPGI+e3sgY29ubmVjdC5jYXRlZ29yeVZpZXdNb2RlbC5uYW1lIH19PC9iPiZuYnNwO1xyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aWUuaWdub3JlXCI+XHJcbiAgICAgICAgICA8Yj5JZ25vcmU8L2I+Jm5ic3A7XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { BCBImportProductRequest } from '../../../swagger/SwaggerClient';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../../services/products.service";
|
|
@@ -140,11 +140,11 @@ class BeheerProductsComponent {
|
|
|
140
140
|
return next;
|
|
141
141
|
}
|
|
142
142
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerProductsComponent, deps: [{ token: i1.ProductsService }, { token: i2.ImportSetsService }, { token: i3.ImportApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, 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 <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\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\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\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 </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\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 [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ 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%}.gap{gap:3px}.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 - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}
|
|
143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, 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-products\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\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\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\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 </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\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 [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ 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: ["app-beheer-products .full-width{width:100%}app-beheer-products .main-block-products{padding:10px;height:calc(100vh - 66px);overflow:auto}app-beheer-products .mat-form-field-wrapper{padding-bottom:0}app-beheer-products .mat-form-field-underline{bottom:0}app-beheer-products .full-height{height:100%}app-beheer-products .gap{gap:3px}app-beheer-products .table-head td{font-weight:700;border-bottom:2px solid #000}app-beheer-products .table-row td{border-bottom:1px solid #000;cursor:pointer}app-beheer-products .warning{background-color:#f08080}app-beheer-products .table-row:hover{background-color:#d3d3d3}app-beheer-products .limiter{max-height:calc(100vh - 179px);overflow:auto}app-beheer-products .selected{background-color:#add8e6!important}app-beheer-products .importspan{margin-left:5px;font-weight:700}app-beheer-products .main-content{padding:5px;flex:auto;width:50%}app-beheer-products .tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}app-beheer-products .example-tree-invisible{display:none}app-beheer-products .example-tree ul,app-beheer-products .example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}app-beheer-products .example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}app-beheer-products .example-tree div[role=group]>.mat-tree-node{padding-left:40px}app-beheer-products .displayflex{display:flex}app-beheer-products .flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatLegacyButton, 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: i8.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i13.BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: i14.BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
144
144
|
}
|
|
145
145
|
export { BeheerProductsComponent };
|
|
146
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerProductsComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
148
|
-
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 <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\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\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\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 </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\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 [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ 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%}.gap{gap:3px}.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 - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}
|
|
148
|
+
args: [{ selector: 'app-beheer-products', encapsulation: ViewEncapsulation.None, 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-products\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\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\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\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 </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\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 [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ 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: ["app-beheer-products .full-width{width:100%}app-beheer-products .main-block-products{padding:10px;height:calc(100vh - 66px);overflow:auto}app-beheer-products .mat-form-field-wrapper{padding-bottom:0}app-beheer-products .mat-form-field-underline{bottom:0}app-beheer-products .full-height{height:100%}app-beheer-products .gap{gap:3px}app-beheer-products .table-head td{font-weight:700;border-bottom:2px solid #000}app-beheer-products .table-row td{border-bottom:1px solid #000;cursor:pointer}app-beheer-products .warning{background-color:#f08080}app-beheer-products .table-row:hover{background-color:#d3d3d3}app-beheer-products .limiter{max-height:calc(100vh - 179px);overflow:auto}app-beheer-products .selected{background-color:#add8e6!important}app-beheer-products .importspan{margin-left:5px;font-weight:700}app-beheer-products .main-content{padding:5px;flex:auto;width:50%}app-beheer-products .tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}app-beheer-products .example-tree-invisible{display:none}app-beheer-products .example-tree ul,app-beheer-products .example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}app-beheer-products .example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}app-beheer-products .example-tree div[role=group]>.mat-tree-node{padding-left:40px}app-beheer-products .displayflex{display:flex}app-beheer-products .flex-auto{flex:auto}\n"] }]
|
|
149
149
|
}], ctorParameters: function () { return [{ type: i1.ProductsService }, { type: i2.ImportSetsService }, { type: i3.ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUV6TixNQUthLHVCQUF1QjtJQUlmO0lBQ1Y7SUFDQztJQUNEO0lBTEYsc0JBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQUVuRSxZQUFtQixlQUFnQyxFQUMxQyxpQkFBb0MsRUFDbkMsZUFBZ0MsRUFDakMsaUJBQW9DO1FBSDFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTdDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxRQUFR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QUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDekM7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFVBQStCO1FBQ3RELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7UUFDekUsSUFBSSxJQUFJLEdBQXdCLFVBQVUsQ0FBQztRQUMzQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbEIsSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7Z0JBRW5ELElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtvQkFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQzNDLElBQUksS0FBSyxFQUFFOzRCQUNULE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN2Qjt3QkFFRCxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7NEJBQ2hDLEtBQUssR0FBRyxJQUFJLENBQUM7eUJBQ2Q7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQXpKVSx1QkFBdUI7MkZBQXZCLHVCQUF1QiwyRENYcEMsdW5KQTZGQTs7U0RsRmEsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeVNlbGVjdGlvbkxpc3QgYXMgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1saXN0JztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1wb3J0c2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNBcGlDbGllbnQsIFByb2R1Y3RzVmlld01vZGVsLCBCQ0JQcm9kdWN0Vmlld01vZGVsLCBQcm9kdWN0Vmlld01vZGVsLCBCQ0JJbXBvcnRQcm9kdWN0UmVxdWVzdCwgQkNCSW1wb3J0UHJvZHVjdFJlc3BvbnNlLCBJbXBvcnRBcGlDbGllbnQsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLXByb2R1Y3RzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyUHJvZHVjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbD86IEJDQkltcG9ydFNldHNWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcclxuICAgIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5JbXBvcnRTZXRzU2VydmljZS5Mb2FkSW1wb3J0U2V0cyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5DaGVja1N0YXR1cyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwgJiYgcHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbaV0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgPSBcIjAvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBiY2Jwcm9kdWN0c1tqXS5pbXBvcnRTdGF0dXMgPSBcIlhcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3RzWzBdLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChiY2Jwcm9kdWN0c1swXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSBiY2Jwcm9kdWN0LmlkO1xyXG5cclxuICAgIHRoaXMuSW1wb3J0QXBpQ2xpZW50LmltcG9ydEJDQlByb2R1Y3QocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogQkNCSW1wb3J0UHJvZHVjdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmICghbW9kZWwuc3VjY2Vzcykge1xyXG4gICAgICAgIGFsZXJ0KG1vZGVsLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzID0gXCJWXCI7XHJcblxyXG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5HZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0KTtcclxuXHJcbiAgICAgICAgaWYgKG5leHQuaW1wb3J0U3RhdHVzID09IFwiWFwiKSB7XHJcbiAgICAgICAgICB0aGlzLkltcG9ydEJDQlByb2R1Y3QobmV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVsb2FkKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydChcImltcG9ydCBmYWlsZWQgZm9yIGlkOiBcIiArIGJjYnByb2R1Y3QuaWQpO1xyXG5cclxuICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0SW1wb3J0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVzZXRJbXBvcnQoLTEsIC0xLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QkNCUHJvZHVjdHMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWw/LmlkID09IHByb2R1Y3QuaWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9IHByb2R1Y3Q7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNhdmVQcm9kdWN0KHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlNhdmVQcm9kdWN0Vmlld01vZGVsKHByb2R1Y3QsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gYmNicHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gYmNicHJvZHVjdDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEltcG9ydFN0YXR1cyhwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKTogc3RyaW5nIHtcclxuICAgIHZhciB0ZXh0ID0gXCJcIjtcclxuICAgIHZhciBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0LmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgIT0gXCJcIikge1xyXG4gICAgICAgICAgYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiWFwiKSB7XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgdGV4dCA9IGNvdW50ICsgXCIvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKTogQkNCUHJvZHVjdFZpZXdNb2RlbCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcbiAgICB2YXIgbmV4dDogQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB2YXIgZm91bmQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGJjYnByb2R1Y3RzW2pdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbal0gPT0gYmNicHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0O1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IEltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIVByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgJiYgIUltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCIgY2xhc3M9XCJtYWluLWJsb2NrXCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleCBnYXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXggZmxleC1hdXRvIGdhcFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+SW1wb3J0IHNldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAgICB7e2ltcG9ydHNldC5uYW1lfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKVwiPlxyXG4gICAgICAgICAgICBSZWZyZXNoXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4IGdhcFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTdGF0dXMoKVwiPlxyXG4gICAgICAgICAgICBTdGF0dXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICAgICAgSW1wb3J0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCIgKm5nSWY9XCJ0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLWJsb2NrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JZDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+TmFhbTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+VmFyaWFudHM8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPkltcG9ydHNldDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9PSBwcm9kdWN0LCAnd2FybmluZyc6ICFwcm9kdWN0LmltcG9ydGVkIHx8ICFwcm9kdWN0LmNvbm5lY3RlZH1cIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdCkgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj57eyBwcm9kdWN0LmlkIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj57eyBwcm9kdWN0Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgKGNsaWNrKT1cIlNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cInRhYmxlLXJvd1wiPnt7IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9kdWN0LmltcG9ydFNldElkXCIgKGNoYW5nZSk9XCJTYXZlUHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW1wb3J0c2V0IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1wiIFt2YWx1ZV09XCJpbXBvcnRzZXQuaWRcIj57e2ltcG9ydHNldC5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IGJjYnByb2R1Y3QsICd3YXJuaW5nJzogIWJjYnByb2R1Y3QuaW1wb3J0ZWQgfHwgIWJjYnByb2R1Y3QuY29ubmVjdGVkfVwiIChjbGljayk9XCJTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGJjYnByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPnt7IGJjYnByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgJiYgUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gdW5kZWZpbmVkXCIgW1Byb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdD5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkXCIgW0JDQlByb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJeEYsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUV6TixNQU1hLHVCQUF1QjtJQUlmO0lBQ1Y7SUFDQztJQUNEO0lBTEYsc0JBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQUVuRSxZQUFtQixlQUFnQyxFQUMxQyxpQkFBb0MsRUFDbkMsZUFBZ0MsRUFDakMsaUJBQW9DO1FBSDFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTdDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxNQUFNO1FB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b3JSZWYsIENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lTZWxlY3Rpb25MaXN0IGFzIE1hdFNlbGVjdGlvbkxpc3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktbGlzdCc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbXBvcnRTZXRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltcG9ydHNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzQXBpQ2xpZW50LCBQcm9kdWN0c1ZpZXdNb2RlbCwgQkNCUHJvZHVjdFZpZXdNb2RlbCwgUHJvZHVjdFZpZXdNb2RlbCwgQkNCSW1wb3J0UHJvZHVjdFJlcXVlc3QsIEJDQkltcG9ydFByb2R1Y3RSZXNwb25zZSwgSW1wb3J0QXBpQ2xpZW50LCBCQ0JJbXBvcnRTZXRzVmlld01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1wcm9kdWN0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyUHJvZHVjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbD86IEJDQkltcG9ydFNldHNWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcclxuICAgIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5JbXBvcnRTZXRzU2VydmljZS5Mb2FkSW1wb3J0U2V0cyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5DaGVja1N0YXR1cyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwgJiYgcHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbaV0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgPSBcIjAvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBiY2Jwcm9kdWN0c1tqXS5pbXBvcnRTdGF0dXMgPSBcIlhcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3RzWzBdLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChiY2Jwcm9kdWN0c1swXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSBiY2Jwcm9kdWN0LmlkO1xyXG5cclxuICAgIHRoaXMuSW1wb3J0QXBpQ2xpZW50LmltcG9ydEJDQlByb2R1Y3QocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogQkNCSW1wb3J0UHJvZHVjdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmICghbW9kZWwuc3VjY2Vzcykge1xyXG4gICAgICAgIGFsZXJ0KG1vZGVsLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzID0gXCJWXCI7XHJcblxyXG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5HZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0KTtcclxuXHJcbiAgICAgICAgaWYgKG5leHQuaW1wb3J0U3RhdHVzID09IFwiWFwiKSB7XHJcbiAgICAgICAgICB0aGlzLkltcG9ydEJDQlByb2R1Y3QobmV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVsb2FkKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydChcImltcG9ydCBmYWlsZWQgZm9yIGlkOiBcIiArIGJjYnByb2R1Y3QuaWQpO1xyXG5cclxuICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0SW1wb3J0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVzZXRJbXBvcnQoLTEsIC0xLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QkNCUHJvZHVjdHMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWw/LmlkID09IHByb2R1Y3QuaWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9IHByb2R1Y3Q7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNhdmVQcm9kdWN0KHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlNhdmVQcm9kdWN0Vmlld01vZGVsKHByb2R1Y3QsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gYmNicHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gYmNicHJvZHVjdDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEltcG9ydFN0YXR1cyhwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKTogc3RyaW5nIHtcclxuICAgIHZhciB0ZXh0ID0gXCJcIjtcclxuICAgIHZhciBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0LmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgIT0gXCJcIikge1xyXG4gICAgICAgICAgYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiWFwiKSB7XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgdGV4dCA9IGNvdW50ICsgXCIvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKTogQkNCUHJvZHVjdFZpZXdNb2RlbCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcbiAgICB2YXIgbmV4dDogQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB2YXIgZm91bmQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGJjYnByb2R1Y3RzW2pdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbal0gPT0gYmNicHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0O1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IEltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIVByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgJiYgIUltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCIgY2xhc3M9XCJtYWluLWJsb2NrLXByb2R1Y3RzXCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleCBnYXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXggZmxleC1hdXRvIGdhcFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+SW1wb3J0IHNldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAgICB7e2ltcG9ydHNldC5uYW1lfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKVwiPlxyXG4gICAgICAgICAgICBSZWZyZXNoXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4IGdhcFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTdGF0dXMoKVwiPlxyXG4gICAgICAgICAgICBTdGF0dXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICAgICAgSW1wb3J0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCIgKm5nSWY9XCJ0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLWJsb2NrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JZDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+TmFhbTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+VmFyaWFudHM8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPkltcG9ydHNldDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9PSBwcm9kdWN0LCAnd2FybmluZyc6ICFwcm9kdWN0LmltcG9ydGVkIHx8ICFwcm9kdWN0LmNvbm5lY3RlZH1cIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdCkgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj57eyBwcm9kdWN0LmlkIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj57eyBwcm9kdWN0Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgKGNsaWNrKT1cIlNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cInRhYmxlLXJvd1wiPnt7IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9kdWN0LmltcG9ydFNldElkXCIgKGNoYW5nZSk9XCJTYXZlUHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW1wb3J0c2V0IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1wiIFt2YWx1ZV09XCJpbXBvcnRzZXQuaWRcIj57e2ltcG9ydHNldC5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IGJjYnByb2R1Y3QsICd3YXJuaW5nJzogIWJjYnByb2R1Y3QuaW1wb3J0ZWQgfHwgIWJjYnByb2R1Y3QuY29ubmVjdGVkfVwiIChjbGljayk9XCJTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGJjYnByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPnt7IGJjYnByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgJiYgUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gdW5kZWZpbmVkXCIgW1Byb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdD5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkXCIgW0JDQlByb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|