fabrikantencore 2.11.20 → 2.12.1
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/components/fab-breadcrumb/fab-breadcrumb.component.mjs +9 -5
- package/esm2022/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +47 -3
- package/esm2022/src/app/modules/fabrikantencore/services/authentication.service.mjs +11 -6
- package/esm2022/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +4 -1
- package/fesm2022/fabrikantencore.mjs +67 -11
- package/fesm2022/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.d.ts +4 -1
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +2 -0
|
@@ -35,12 +35,16 @@ class FabBreadcrumbComponent {
|
|
|
35
35
|
else {
|
|
36
36
|
var array = this.FabrikantenService.GetSteps();
|
|
37
37
|
if (array.length > 0) {
|
|
38
|
-
this.UndoStep(array[array.length - 1]);
|
|
38
|
+
//this.UndoStep(array[array.length - 1]);
|
|
39
|
+
this.FabrikantenService.ResetSelectionCategory(array[array.length - 1], this.ChangeDetectorRef);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
UndoStep(category) {
|
|
43
|
-
this.FabrikantenService.ResetSelectionCategory(category, this.ChangeDetectorRef);
|
|
44
|
+
//this.FabrikantenService.ResetSelectionCategory(category, this.ChangeDetectorRef);
|
|
45
|
+
if (this.FabrikantenService.FabrikantenViewModel.selectedProduct != null) {
|
|
46
|
+
this.FabrikantenService.RemoveProductSelection(this.ChangeDetectorRef);
|
|
47
|
+
}
|
|
44
48
|
}
|
|
45
49
|
ShowBack() {
|
|
46
50
|
if (this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null) {
|
|
@@ -80,13 +84,13 @@ class FabBreadcrumbComponent {
|
|
|
80
84
|
return false;
|
|
81
85
|
}
|
|
82
86
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FabBreadcrumbComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FabBreadcrumbComponent, selector: "app-fab-breadcrumb", inputs: { showfiltermenubutton: "showfiltermenubutton" }, ngImport: i0, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.Back) }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Category, TranslationSubCategory.Name, step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\"
|
|
87
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FabBreadcrumbComponent, selector: "app-fab-breadcrumb", inputs: { showfiltermenubutton: "showfiltermenubutton" }, ngImport: i0, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.Back) }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Category, TranslationSubCategory.Name, step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.FilterMenu) }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ActionMenu) }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step center\" (click)=\"Back()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"ShowBeheerLink()\">\r\n <div style=\"position: absolute; top: 2px; right: 2px;\">\r\n <button mat-stroked-button (click)=\"OpenBeheer()\">\r\n Beheer\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-breadcrumb .header{display:flex;padding:4px}app-fab-breadcrumb .center{text-align:center}app-fab-breadcrumb .tinybutton{padding:1px!important}app-fab-breadcrumb .tinybutton .header-title{text-transform:capitalize;font-size:12px!important;line-height:26px!important}app-fab-breadcrumb .tinybutton .mat-stroked-button{padding:0 8px!important}app-fab-breadcrumb .buttonsize{height:40px;line-height:25px}app-fab-breadcrumb .flexauto{flex:auto}app-fab-breadcrumb .fullwidth{width:100%}app-fab-breadcrumb .paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{text-transform:capitalize;line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{text-transform:capitalize;font-size:16px;position:relative;top:2px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\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.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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
84
88
|
}
|
|
85
89
|
export { FabBreadcrumbComponent };
|
|
86
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FabBreadcrumbComponent, decorators: [{
|
|
87
91
|
type: Component,
|
|
88
|
-
args: [{ selector: 'app-fab-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.Back) }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Category, TranslationSubCategory.Name, step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\"
|
|
92
|
+
args: [{ selector: 'app-fab-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.Back) }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Category, TranslationSubCategory.Name, step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.FilterMenu) }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ActionMenu) }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step center\" (click)=\"Back()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"ShowBeheerLink()\">\r\n <div style=\"position: absolute; top: 2px; right: 2px;\">\r\n <button mat-stroked-button (click)=\"OpenBeheer()\">\r\n Beheer\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-breadcrumb .header{display:flex;padding:4px}app-fab-breadcrumb .center{text-align:center}app-fab-breadcrumb .tinybutton{padding:1px!important}app-fab-breadcrumb .tinybutton .header-title{text-transform:capitalize;font-size:12px!important;line-height:26px!important}app-fab-breadcrumb .tinybutton .mat-stroked-button{padding:0 8px!important}app-fab-breadcrumb .buttonsize{height:40px;line-height:25px}app-fab-breadcrumb .flexauto{flex:auto}app-fab-breadcrumb .fullwidth{width:100%}app-fab-breadcrumb .paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{text-transform:capitalize;line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{text-transform:capitalize;font-size:16px;position:relative;top:2px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"] }]
|
|
89
93
|
}], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showfiltermenubutton: [{
|
|
90
94
|
type: Input
|
|
91
95
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1icmVhZGNydW1iL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItYnJlYWRjcnVtYi9mYWItYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdHLE9BQU8sRUFBZ0MsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFFeEgsTUFNYSxzQkFBc0I7SUFheEI7SUFDQTtJQUNBO0lBQ0M7SUFkRCxvQkFBb0IsQ0FBVTtJQUV2QyxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUNTLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDakMsaUJBQW9DO1FBSHJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUksQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTthQUNJO1lBQ0gsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4QztTQUNGO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFzQztRQUNwRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxJQUFJLElBQUksRUFBRTtZQUN6RSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ25FLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLGtCQUFrQixJQUFJLGFBQWEsQ0FBQztJQUNuRyxDQUFDO0lBRU0sVUFBVTtRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixJQUFJLElBQUksRUFBRTtZQUNoRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBc0IsRUFBRTtnQkFDL0UsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQzlCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0FwRlUsc0JBQXNCOzJGQUF0QixzQkFBc0Isb0hDWm5DLGc4R0F3RUE7O1NENURhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJO29NQUk1QixvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2JpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9iaWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsLCBUcmFuc2xhdGlvbkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZhYi1icmVhZGNydW1iJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dmaWx0ZXJtZW51YnV0dG9uOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuTW9iaWxlU2VydmljZS5VcGRhdGVTY3JlZW5TaXplKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEJhY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgYXJyYXkgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpO1xyXG4gICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuVW5kb1N0ZXAoYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVW5kb1N0ZXAoY2F0ZWdvcnk6IEZhYnJpa2FudGVuQ2F0ZWdvcnlWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlc2V0U2VsZWN0aW9uQ2F0ZWdvcnkoY2F0ZWdvcnksIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCYWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuR2V0U3RlcHMoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0hlYWRlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLlNob3dCYWNrKCkgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5Nb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiB0aGlzLnNob3dmaWx0ZXJtZW51YnV0dG9uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QmVoZWVyTGluaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5hY3RpdmVQaXBlbGluZVN0ZXAgPT0gXCJEZXZlbG9wbWVudFwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE9wZW5CZWhlZXIoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3BlbihcIi9iZWhlZXJcIiwgXCJfYmxhbmtcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSGlkZUJyZWFkY3J1bWIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmhpZGVCcmVhZGNydW1iSW5JZnJhbWUpIHtcclxuICAgICAgICBpZiAod2luZG93LnNlbGYgIT09IHdpbmRvdy50b3ApIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImhlYWRlclwiICpuZ0lmPVwiU2hvd0hlYWRlcigpXCIgW25nQ2xhc3NdPVwieyd0aW55YnV0dG9uJzogdGhpcy5Nb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZVRpbnl9XCI+XHJcbiAgPGRpdiAqbmdJZj1cIlNob3dCYWNrKCkgJiYgIUhpZGVCcmVhZGNydW1iKClcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25zaXplXCIgbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJCYWNrKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2tcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gYXJyb3dfYmFja1wiPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQmFjaykgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIU1vYmlsZVNlcnZpY2UuTW9iaWxlSW50ZXJmYWNlICYmICFIaWRlQnJlYWRjcnVtYigpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGVwIG9mIEZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwaWNvblwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNoZXZyb25fcmlnaHRcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwXCIgKGNsaWNrKT1cIlVuZG9TdGVwKHN0ZXApXCI+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIHN0ZXAuaWQpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcGljb25cIj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjaGV2cm9uX3JpZ2h0XCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcFwiIChjbGljayk9XCJCYWNrKClcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpLmxlbmd0aCA9PSAwXCI+UHJvZHVjdGNvbmZpZ3VyYXRpZTogPC9zcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Qcm9kdWN0LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5pZCkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgc2hvd2ZpbHRlcm1lbnVidXR0b25cIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJvcGVuLWZpbHRlcnMtYnV0dG9uIGJ1dHRvbnNpemVcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIk1vYmlsZVNlcnZpY2UuT3Blbk5hdigpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2tcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gbWVudVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuRmlsdGVyTWVudSkgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4YXV0b1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9wZW4tZmlsdGVycy1idXR0b24gYnV0dG9uc2l6ZVwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dBY3Rpb25NZW51KClcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIk1vYmlsZVNlcnZpY2UuT3BlbkFjdGlvbigpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2tcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gbWVudVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQWN0aW9uTWVudSkgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgc2hvd2ZpbHRlcm1lbnVidXR0b24gJiYgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdCAhPSBudWxsICYmICFIaWRlQnJlYWRjcnVtYigpXCI+XHJcbiAgPGRpdiBjbGFzcz1cInBhZGRpbmdsZWZ0IHN0ZXAgY2VudGVyXCIgKGNsaWNrKT1cIkJhY2soKVwiPlxyXG4gICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LlByb2R1Y3QsIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmlkKSB9fVxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93QmVoZWVyTGluaygpXCI+XHJcbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAycHg7IHJpZ2h0OiAycHg7XCI+XHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiT3BlbkJlaGVlcigpXCI+XHJcbiAgICAgIEJlaGVlclxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1icmVhZGNydW1iL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItYnJlYWRjcnVtYi9mYWItYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdHLE9BQU8sRUFBZ0MsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFFeEgsTUFNYSxzQkFBc0I7SUFheEI7SUFDQTtJQUNBO0lBQ0M7SUFkRCxvQkFBb0IsQ0FBVTtJQUV2QyxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUNTLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDakMsaUJBQW9DO1FBSHJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUksQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTthQUNJO1lBQ0gsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLHlDQUF5QztnQkFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ2pHO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQXNDO1FBQ3BELG1GQUFtRjtRQUNuRixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxJQUFJLElBQUksRUFBRTtZQUN6RSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ25FLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLGtCQUFrQixJQUFJLGFBQWEsQ0FBQztJQUNuRyxDQUFDO0lBRU0sVUFBVTtRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixJQUFJLElBQUksRUFBRTtZQUNoRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBc0IsRUFBRTtnQkFDL0UsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQzlCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0F4RlUsc0JBQXNCOzJGQUF0QixzQkFBc0Isb0hDWm5DLDY2R0F3RUE7O1NENURhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJO29NQUk1QixvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2JpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9iaWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsLCBUcmFuc2xhdGlvbkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZhYi1icmVhZGNydW1iJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dmaWx0ZXJtZW51YnV0dG9uOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuTW9iaWxlU2VydmljZS5VcGRhdGVTY3JlZW5TaXplKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEJhY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgYXJyYXkgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpO1xyXG4gICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vdGhpcy5VbmRvU3RlcChhcnJheVthcnJheS5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVzZXRTZWxlY3Rpb25DYXRlZ29yeShhcnJheVthcnJheS5sZW5ndGggLSAxXSwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBVbmRvU3RlcChjYXRlZ29yeTogRmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgLy90aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZXNldFNlbGVjdGlvbkNhdGVnb3J5KGNhdGVnb3J5LCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZW1vdmVQcm9kdWN0U2VsZWN0aW9uKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCYWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuR2V0U3RlcHMoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0hlYWRlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLlNob3dCYWNrKCkgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5Nb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiB0aGlzLnNob3dmaWx0ZXJtZW51YnV0dG9uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QmVoZWVyTGluaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5hY3RpdmVQaXBlbGluZVN0ZXAgPT0gXCJEZXZlbG9wbWVudFwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE9wZW5CZWhlZXIoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3BlbihcIi9iZWhlZXJcIiwgXCJfYmxhbmtcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSGlkZUJyZWFkY3J1bWIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmhpZGVCcmVhZGNydW1iSW5JZnJhbWUpIHtcclxuICAgICAgICBpZiAod2luZG93LnNlbGYgIT09IHdpbmRvdy50b3ApIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImhlYWRlclwiICpuZ0lmPVwiU2hvd0hlYWRlcigpXCIgW25nQ2xhc3NdPVwieyd0aW55YnV0dG9uJzogdGhpcy5Nb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZVRpbnl9XCI+XHJcbiAgPGRpdiAqbmdJZj1cIlNob3dCYWNrKCkgJiYgIUhpZGVCcmVhZGNydW1iKClcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25zaXplXCIgbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJCYWNrKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2tcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gYXJyb3dfYmFja1wiPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQmFjaykgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIU1vYmlsZVNlcnZpY2UuTW9iaWxlSW50ZXJmYWNlICYmICFIaWRlQnJlYWRjcnVtYigpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGVwIG9mIEZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwaWNvblwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNoZXZyb25fcmlnaHRcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwXCIgKGNsaWNrKT1cIlVuZG9TdGVwKHN0ZXApXCI+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIHN0ZXAuaWQpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcGljb25cIj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjaGV2cm9uX3JpZ2h0XCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkdldFN0ZXBzKCkubGVuZ3RoID09IDBcIj5Qcm9kdWN0Y29uZmlndXJhdGllOiA8L3NwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LlByb2R1Y3QsIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmlkKSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJNb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiBzaG93ZmlsdGVybWVudWJ1dHRvblwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9wZW4tZmlsdGVycy1idXR0b24gYnV0dG9uc2l6ZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiTW9iaWxlU2VydmljZS5PcGVuTmF2KClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYmFja1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBtZW51XCI+bWVudTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5GaWx0ZXJNZW51KSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXhhdXRvXCI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwib3Blbi1maWx0ZXJzLWJ1dHRvbiBidXR0b25zaXplXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd0FjdGlvbk1lbnUoKVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiTW9iaWxlU2VydmljZS5PcGVuQWN0aW9uKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYmFja1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBtZW51XCI+bWVudTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5BY3Rpb25NZW51KSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJNb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiBzaG93ZmlsdGVybWVudWJ1dHRvbiAmJiB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwgJiYgIUhpZGVCcmVhZGNydW1iKClcIj5cclxuICA8ZGl2IGNsYXNzPVwicGFkZGluZ2xlZnQgc3RlcCBjZW50ZXJcIiAoY2xpY2spPVwiQmFjaygpXCI+XHJcbiAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuUHJvZHVjdCwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5OYW1lLCBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdD8uaWQpIH19XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dCZWhlZXJMaW5rKClcIj5cclxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDJweDsgcmlnaHQ6IDJweDtcIj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJPcGVuQmVoZWVyKClcIj5cclxuICAgICAgQmVoZWVyXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -53,6 +53,17 @@ class FabProductSelectComponent {
|
|
|
53
53
|
this.ChangeDetectorRef.detectChanges();
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
IsGrouped() {
|
|
57
|
+
var products = this.FabrikantenService.FabrikantenViewModel?.products;
|
|
58
|
+
if (products != null) {
|
|
59
|
+
for (var i = 0; i < products.length; i++) {
|
|
60
|
+
if (products[i].group != null) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
56
67
|
GetHeight() {
|
|
57
68
|
var height = 0;
|
|
58
69
|
if (this.header != undefined) {
|
|
@@ -63,13 +74,46 @@ class FabProductSelectComponent {
|
|
|
63
74
|
}
|
|
64
75
|
return "calc(100% - " + height + "px)";
|
|
65
76
|
}
|
|
77
|
+
GetGroups() {
|
|
78
|
+
var groups = new Array();
|
|
79
|
+
var products = this.FabrikantenService.FabrikantenViewModel?.products;
|
|
80
|
+
if (products != null) {
|
|
81
|
+
for (var i = 0; i < products.length; i++) {
|
|
82
|
+
if (products[i].group != null) {
|
|
83
|
+
var add = true;
|
|
84
|
+
for (var j = 0; j < groups.length; j++) {
|
|
85
|
+
if (groups[j] == products[i].group) {
|
|
86
|
+
add = false;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (add) {
|
|
91
|
+
groups.push(products[i].group + "");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return groups;
|
|
97
|
+
}
|
|
98
|
+
GetProducts(group) {
|
|
99
|
+
var products = new Array();
|
|
100
|
+
var allProducts = this.FabrikantenService.FabrikantenViewModel?.products;
|
|
101
|
+
if (allProducts != null) {
|
|
102
|
+
for (var i = 0; i < allProducts.length; i++) {
|
|
103
|
+
if (allProducts[i].group == group) {
|
|
104
|
+
products.push(allProducts[i]);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return products;
|
|
109
|
+
}
|
|
66
110
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FabProductSelectComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductsLoading) }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelection) }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionInfo) }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionBlocked) }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n
|
|
111
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductsLoading) }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelection) }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionInfo) }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionBlocked) }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <ng-container *ngIf=\"IsGrouped()\">\r\n <ng-container *ngFor=\"let group of GetGroups()\">\r\n <div class=\"group-header\">\r\n {{ group }}\r\n </div>\r\n <div class=\"main-window group-collection\">\r\n <app-fab-product-tile *ngFor=\"let product of GetProducts(group)\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!IsGrouped()\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .group-header{border-bottom:1px solid #000;margin:10px;font-size:16px}app-fab-product-select .group-collection{margin:10px}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .subtitle:first-letter{text-transform:uppercase}app-fab-product-select .title:first-letter{text-transform:uppercase}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:fixed;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatLegacyCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: i11.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i12.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
68
112
|
}
|
|
69
113
|
export { FabProductSelectComponent };
|
|
70
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FabProductSelectComponent, decorators: [{
|
|
71
115
|
type: Component,
|
|
72
|
-
args: [{ selector: 'app-fab-product-select', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductsLoading) }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelection) }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionInfo) }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionBlocked) }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n
|
|
116
|
+
args: [{ selector: 'app-fab-product-select', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductsLoading) }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelection) }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionInfo) }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ProductSelectionBlocked) }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <ng-container *ngIf=\"IsGrouped()\">\r\n <ng-container *ngFor=\"let group of GetGroups()\">\r\n <div class=\"group-header\">\r\n {{ group }}\r\n </div>\r\n <div class=\"main-window group-collection\">\r\n <app-fab-product-tile *ngFor=\"let product of GetProducts(group)\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!IsGrouped()\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .group-header{border-bottom:1px solid #000;margin:10px;font-size:16px}app-fab-product-select .group-collection{margin:10px}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .subtitle:first-letter{text-transform:uppercase}app-fab-product-select .title:first-letter{text-transform:uppercase}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:fixed;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}\n"] }]
|
|
73
117
|
}], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
|
|
74
118
|
type: ViewChild,
|
|
75
119
|
args: ['header']
|
|
@@ -77,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
77
121
|
type: ViewChild,
|
|
78
122
|
args: ['info']
|
|
79
123
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC1zZWxlY3QvZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC1zZWxlY3QvZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUErQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNdkksT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFGLE1BTWEseUJBQXlCO0lBZ0IzQjtJQUNBO0lBQ0E7SUFDQTtJQUNDO0lBQ0E7SUFuQlYsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRW9CLE1BQU0sQ0FBYTtJQUNyQixJQUFJLENBQWE7SUFFN0IsTUFBTSxHQUFXLE1BQU0sQ0FBQztJQUUvQixZQUNTLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxhQUE0QixFQUM1QixnQkFBa0MsRUFDakMsY0FBOEIsRUFDOUIsaUJBQW9DO1FBTHJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUU1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhGLHlFQUF5RTtJQUMzRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFZixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDbEQ7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDaEQ7UUFFRCxPQUFPLGNBQWMsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7dUdBekRVLHlCQUF5QjsyRkFBekIseUJBQXlCLCtPQ2R0Qyx5aUVBMkNBOztTRDdCYSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBR25CLGlCQUFpQixDQUFDLElBQUk7NlBBWWhCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDQSxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVzdGVrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItcHJvZHVjdC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhYi1wcm9kdWN0LXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYlByb2R1Y3RTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnaGVhZGVyJykgaGVhZGVyOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2luZm8nKSBpbmZvOiBFbGVtZW50UmVmO1xyXG5cclxuICBwdWJsaWMgSGVpZ2h0OiBzdHJpbmcgPSBcIjEwMCVcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBCZXN0ZWtTZXJ2aWNlOiBCZXN0ZWtTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuUHJvY2Vzc1BhcmFtZXRlcnModGhpcy5BY3RpdmF0ZWRSb3V0ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICAgIC8vdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYsIHRoaXMuQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkhlaWdodCA9IHRoaXMuR2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkhlaWdodCAhPSB0aGlzLkdldEhlaWdodCgpKSB7XHJcbiAgICAgIHRoaXMuSGVpZ2h0ID0gdGhpcy5HZXRIZWlnaHQoKTtcclxuICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0SGVpZ2h0KCk6IHN0cmluZyB7XHJcbiAgICB2YXIgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5oZWFkZXIgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGhlaWdodCArPSB0aGlzLmhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pbmZvICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBoZWlnaHQgKz0gdGhpcy5pbmZvLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcImNhbGMoMTAwJSAtIFwiICsgaGVpZ2h0ICsgXCJweClcIjtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Mb2FkaW5nXCIgY2xhc3M9XCJsb2FkZXJcIj5cclxuICA8bWF0LWNhcmQgY2xhc3M9XCJsb2FkZXItY2FyZFwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImxvYWRlci1zcGlubmVyXCIgW2RpYW1ldGVyXT1cIjgwXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImxvYWRlci1zdWJ0aXRsZVwiPlxyXG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlByb2R1Y3RzTG9hZGluZykgfX1cclxuICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgPC9tYXQtY2FyZD5cclxuPC9kaXY+XHJcblxyXG48bWF0LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJ2aWV3LWNvbnRhaW5lclwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGxcIj5cclxuICA8bWF0LWRyYXdlciAjZHJhd2VyIFttb2RlXT1cIk1vYmlsZVNlcnZpY2UuTmF2TW9kZVwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLk5hdk9wZW5lZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci12aWV3XCI+XHJcbiAgICAgIDxmYWItZmlsdGVycy1pbnB1dD48L2ZhYi1maWx0ZXJzLWlucHV0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZHJhd2VyPlxyXG4gIDxtYXQtZHJhd2VyLWNvbnRlbnQgY2xhc3M9XCJ2aWV3LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgI2hlYWRlcj5cclxuICAgICAgPGFwcC1mYWItaGVhZGVyIFtzaG93ZmlsdGVybWVudWJ1dHRvbl09XCJ0cnVlXCI+PC9hcHAtZmFiLWhlYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgI2luZm8gY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgPGgxPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuUHJvZHVjdFNlbGVjdGlvbikgfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1YnRpdGxlXCIgKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnByb2R1Y3RTZWxlY3RCbG9ja2VkQnlGaWx0ZXJzXCI+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Qcm9kdWN0U2VsZWN0aW9uSW5mbykgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZVwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnByb2R1Y3RTZWxlY3RCbG9ja2VkQnlGaWx0ZXJzXCI+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Qcm9kdWN0U2VsZWN0aW9uQmxvY2tlZCkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiSGVpZ2h0XCIgKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnByb2R1Y3RTZWxlY3RCbG9ja2VkQnlGaWx0ZXJzXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLXdpbmRvd1wiPlxyXG4gICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtdGlsZSAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwucHJvZHVjdHNcIiBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9hcHAtZmFiLXByb2R1Y3QtdGlsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXItY29udGVudD5cclxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cclxuXHJcblxyXG4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC1zZWxlY3QvZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC1zZWxlY3QvZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUErQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNdkksT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUErQixNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUV2SCxNQU1hLHlCQUF5QjtJQWdCM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBbkJWLElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVvQixNQUFNLENBQWE7SUFDckIsSUFBSSxDQUFhO0lBRTdCLE1BQU0sR0FBVyxNQUFNLENBQUM7SUFFL0IsWUFDUyxhQUE0QixFQUM1QixrQkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2pDLGNBQThCLEVBQzlCLGlCQUFvQztRQUxyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsbUJB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QUUsQ0FBQyxDQUFDO3FCQUNyQztpQkFDRjthQUNGO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQStCLENBQUM7UUFFeEQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQztRQUN6RSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUU7b0JBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQy9CO2FBQ0Y7U0FDRjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7dUdBL0dVLHlCQUF5QjsyRkFBekIseUJBQXlCLCtPQ2R0Qyw4akZBdURBOztTRHpDYSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBR25CLGlCQUFpQixDQUFDLElBQUk7NlBBWWhCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDQSxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVzdGVrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSwgRmFicmlrYW50ZW5Qcm9kdWN0Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZhYi1wcm9kdWN0LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1wcm9kdWN0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXByb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiUHJvZHVjdFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25DYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvbkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5mbycpIGluZm86IEVsZW1lbnRSZWY7XHJcblxyXG4gIHB1YmxpYyBIZWlnaHQ6IHN0cmluZyA9IFwiMTAwJVwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBNb2JpbGVTZXJ2aWNlOiBNb2JpbGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIEJlc3Rla1NlcnZpY2U6IEJlc3Rla1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Qcm9jZXNzUGFyYW1ldGVycyh0aGlzLkFjdGl2YXRlZFJvdXRlLCBDaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgLy90aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZW1vdmVQcm9kdWN0U2VsZWN0aW9uKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Mb2FkRmFicmlrYW50ZW5WaWV3TW9kZWwodGhpcy5DaGFuZ2VEZXRlY3RvclJlZiwgdGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuSGVpZ2h0ID0gdGhpcy5HZXRIZWlnaHQoKTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuSGVpZ2h0ICE9IHRoaXMuR2V0SGVpZ2h0KCkpIHtcclxuICAgICAgdGhpcy5IZWlnaHQgPSB0aGlzLkdldEhlaWdodCgpO1xyXG4gICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJc0dyb3VwZWQoKTogYm9vbGVhbiB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8ucHJvZHVjdHM7XHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHByb2R1Y3RzW2ldLmdyb3VwICE9IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRIZWlnaHQoKTogc3RyaW5nIHtcclxuICAgIHZhciBoZWlnaHQgPSAwO1xyXG5cclxuICAgIGlmICh0aGlzLmhlYWRlciAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaGVpZ2h0ICs9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmluZm8gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGhlaWdodCArPSB0aGlzLmluZm8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiY2FsYygxMDAlIC0gXCIgKyBoZWlnaHQgKyBcInB4KVwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEdyb3VwcygpOiBBcnJheTxzdHJpbmc+IHtcclxuICAgIHZhciBncm91cHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuICAgIHZhciBwcm9kdWN0cyA9IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5wcm9kdWN0cztcclxuICAgIGlmIChwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAocHJvZHVjdHNbaV0uZ3JvdXAgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdmFyIGFkZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBncm91cHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGdyb3Vwc1tqXSA9PSBwcm9kdWN0c1tpXS5ncm91cCkge1xyXG4gICAgICAgICAgICAgIGFkZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGFkZCkge1xyXG4gICAgICAgICAgICBncm91cHMucHVzaChwcm9kdWN0c1tpXS5ncm91cCArIFwiXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0UHJvZHVjdHMoZ3JvdXA6IHN0cmluZyk6IEFycmF5PEZhYnJpa2FudGVuUHJvZHVjdFZpZXdNb2RlbD4ge1xyXG4gICAgdmFyIHByb2R1Y3RzID0gbmV3IEFycmF5PEZhYnJpa2FudGVuUHJvZHVjdFZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICB2YXIgYWxsUHJvZHVjdHMgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8ucHJvZHVjdHM7XHJcbiAgICBpZiAoYWxsUHJvZHVjdHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbFByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFsbFByb2R1Y3RzW2ldLmdyb3VwID09IGdyb3VwKSB7XHJcbiAgICAgICAgICBwcm9kdWN0cy5wdXNoKGFsbFByb2R1Y3RzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdHM7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuTG9hZGluZ1wiIGNsYXNzPVwibG9hZGVyXCI+XHJcbiAgPG1hdC1jYXJkIGNsYXNzPVwibG9hZGVyLWNhcmRcIj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJsb2FkZXItc3Bpbm5lclwiIFtkaWFtZXRlcl09XCI4MFwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWNhcmQtc3VidGl0bGUgY2xhc3M9XCJsb2FkZXItc3VidGl0bGVcIj5cclxuICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Qcm9kdWN0c0xvYWRpbmcpIH19XHJcbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwidmlldy1jb250YWluZXJcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsXCI+XHJcbiAgPG1hdC1kcmF3ZXIgI2RyYXdlciBbbW9kZV09XCJNb2JpbGVTZXJ2aWNlLk5hdk1vZGVcIiBbKG9wZW5lZCldPVwiTW9iaWxlU2VydmljZS5OYXZPcGVuZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdmlld1wiPlxyXG4gICAgICA8ZmFiLWZpbHRlcnMtaW5wdXQ+PC9mYWItZmlsdGVycy1pbnB1dD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlci1jb250ZW50IGNsYXNzPVwidmlldy1jb250ZW50XCI+XHJcbiAgICA8ZGl2ICNoZWFkZXI+XHJcbiAgICAgIDxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwidHJ1ZVwiPjwvYXBwLWZhYi1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICNpbmZvIGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgIDxoMT57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlByb2R1Y3RTZWxlY3Rpb24pIH19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZVwiICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5wcm9kdWN0U2VsZWN0QmxvY2tlZEJ5RmlsdGVyc1wiPlxyXG4gICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuUHJvZHVjdFNlbGVjdGlvbkluZm8pIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGVcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5wcm9kdWN0U2VsZWN0QmxvY2tlZEJ5RmlsdGVyc1wiPlxyXG4gICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuUHJvZHVjdFNlbGVjdGlvbkJsb2NrZWQpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbc3R5bGUuaGVpZ2h0XT1cIkhlaWdodFwiICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5wcm9kdWN0U2VsZWN0QmxvY2tlZEJ5RmlsdGVyc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSXNHcm91cGVkKClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBHZXRHcm91cHMoKVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWhlYWRlclwiPlxyXG4gICAgICAgICAgICB7eyBncm91cCB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi13aW5kb3cgZ3JvdXAtY29sbGVjdGlvblwiPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1wcm9kdWN0LXRpbGUgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgR2V0UHJvZHVjdHMoZ3JvdXApXCIgW3Byb2R1Y3RdPVwicHJvZHVjdFwiPjwvYXBwLWZhYi1wcm9kdWN0LXRpbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhSXNHcm91cGVkKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIj5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtdGlsZSAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwucHJvZHVjdHNcIiBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9hcHAtZmFiLXByb2R1Y3QtdGlsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXItY29udGVudD5cclxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cclxuXHJcblxyXG4iXX0=
|
|
@@ -70,11 +70,16 @@ class AuthenticationService {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
validateUserWithoutNavigate(router) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
if (this.currentUserValue == null) {
|
|
74
|
+
this.logout();
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.securityApiClient.validateUser(this.currentUserValue).subscribe((model) => {
|
|
78
|
+
if (!model) {
|
|
79
|
+
this.logout();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
78
83
|
}
|
|
79
84
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: AuthenticationService, deps: [{ token: i1.SecurityApiClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
80
85
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: AuthenticationService, providedIn: 'root' });
|
|
@@ -84,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
84
89
|
type: Injectable,
|
|
85
90
|
args: [{ providedIn: 'root' }]
|
|
86
91
|
}], ctorParameters: function () { return [{ type: i1.SecurityApiClient }]; } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHbkQsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBSTlHLE1BQ2EscUJBQXFCO0lBT1o7SUFMYixZQUFZLEdBQVksS0FBSyxDQUFDO0lBRTdCLGtCQUFrQixDQUFzQztJQUN6RCxXQUFXLENBQWlDO0lBRW5ELFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFO1lBQzdELE9BQU8sSUFBSSxDQUFDO1NB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LEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgU2VjdXJpdHlBcGlDbGllbnQsIExvZ2luUmVxdWVzdE1vZGVsLCBMb2dpblJlc3BvbnNlTW9kZWwsIFVzZXJSb2xlIH0gZnJvbSAnLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgQmVoZWVySW5sb2dDb21wb25lbnQgfSBmcm9tICcuLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW5sb2cvYmVoZWVyLWlubG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIExvYWRpbmdMb2dpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGN1cnJlbnRVc2VyU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PExvZ2luUmVzcG9uc2VNb2RlbD47XHJcbiAgcHVibGljIGN1cnJlbnRVc2VyOiBPYnNlcnZhYmxlPExvZ2luUmVzcG9uc2VNb2RlbD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VjdXJpdHlBcGlDbGllbnQ6IFNlY3VyaXR5QXBpQ2xpZW50KSB7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9naW5SZXNwb25zZU1vZGVsPihKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpICsgXCJcIikpO1xyXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IHRoaXMuY3VycmVudFVzZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW50VXNlclZhbHVlKCk6IExvZ2luUmVzcG9uc2VNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlclN1YmplY3QudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQWRtaW5pc3RyYXRvclJpZ2h0cygpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkRlVHdlZVNub2VrZW5SaWdodHMoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50VXNlclZhbHVlPy51c2VyUm9sZSA9PSBVc2VyUm9sZS5BZG1pbmlzdHJhdG9yKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEZVR3ZWVTbm9la2VuUmlnaHRzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFVzZXJWYWx1ZT8udXNlclJvbGUgPT0gVXNlclJvbGUuRGVUd2VlU25vZWtlbikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29uZmlndXJhdG9yUmlnaHRzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFVzZXJWYWx1ZT8udXNlclJvbGUgPT0gVXNlclJvbGUuQ29uZmlndXJhdG9yKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBiZWhlZXI6IEJlaGVlcklubG9nQ29tcG9uZW50LCBzdWNjZXNzOiAoYmVoZWVyOiBCZWhlZXJJbmxvZ0NvbXBvbmVudCkgPT4gdm9pZCwgZmFpbDogKGJlaGVlcjogQmVoZWVySW5sb2dDb21wb25lbnQsIG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5Mb2FkaW5nTG9naW4gPSB0cnVlO1xyXG4gICAgdmFyIG1vZGVsOiBMb2dpblJlcXVlc3RNb2RlbCA9IG5ldyBMb2dpblJlcXVlc3RNb2RlbCgpO1xyXG4gICAgbW9kZWwudXNlck5hbWUgPSB1c2VybmFtZTtcclxuICAgIG1vZGVsLnBhc3N3b3JkID0gcGFzc3dvcmQ7XHJcblxyXG4gICAgdGhpcy5zZWN1cml0eUFwaUNsaWVudC5hdXRoZW50aWNhdGVVc2VyKG1vZGVsKS5zdWJzY3JpYmUobW9kZWwgPT4ge1xyXG4gICAgICAvLyBzdG9yZSB1c2VyIGRldGFpbHMgYW5kIGJhc2ljIGF1dGggY3JlZGVudGlhbHMgaW4gbG9jYWwgc3RvcmFnZSB0byBrZWVwIHVzZXIgbG9nZ2VkIGluIGJldHdlZW4gcGFnZSByZWZyZXNoZXNcclxuICAgICAgaWYgKG1vZGVsLmxvZ2luU3VjY2Vzcykge1xyXG4gICAgICAgIG1vZGVsLmF1dGhEYXRhID0gd2luZG93LmJ0b2EodXNlcm5hbWUgKyAnOicgKyBwYXNzd29yZCk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRVc2VyJywgSlNPTi5zdHJpbmdpZnkobW9kZWwpKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5uZXh0KG1vZGVsKTtcclxuXHJcbiAgICAgICAgc3VjY2VzcyhiZWhlZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGZhaWwoYmVoZWVyLCBcIkdlYnJ1aWtlcnNuYWFtICsgd2FjaHR3b29yZCBjb21iaW5hdGllIG9uYmVrZW5kXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmdMb2dpbiA9IGZhbHNlO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ291dCgpIHtcclxuICAgIC8vIHJlbW92ZSB1c2VyIGZyb20gbG9jYWwgc3RvcmFnZSB0byBsb2cgdXNlciBvdXRcclxuICAgIFxyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5uZXh0KG5ldyBMb2dpblJlc3BvbnNlTW9kZWwoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdmFsaWRhdGV1c2VyKHJvdXRlcjogUm91dGVyKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5zZWN1cml0eUFwaUNsaWVudC52YWxpZGF0ZVVzZXIodGhpcy5jdXJyZW50VXNlclZhbHVlKS5zdWJzY3JpYmUoKG1vZGVsOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICghbW9kZWwpIHtcclxuICAgICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICAgIHJvdXRlci5uYXZpZ2F0ZShbJy9iZWhlZXIvaW5sb2dnZW4nXSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlVXNlcldpdGhvdXROYXZpZ2F0ZShyb3V0ZXI6IFJvdXRlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFVzZXJWYWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZWN1cml0eUFwaUNsaWVudC52YWxpZGF0ZVVzZXIodGhpcy5jdXJyZW50VXNlclZhbHVlKS5zdWJzY3JpYmUoKG1vZGVsOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKCFtb2RlbCkge1xyXG4gICAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|