fabrikantencore 2.12.4 → 2.12.11
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-filters-input/fab-filters-input.component.mjs +3 -3
- package/esm2022/src/app/modules/fabrikantencore/components/fab-input-code/fab-input-code.component.mjs +2 -2
- package/fesm2022/fabrikantencore.mjs +4 -4
- package/fesm2022/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -202,11 +202,11 @@ class FabFiltersInputComponent {
|
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabFiltersInputComponent, deps: [{ token: i1.Router }, { token: i2.FabrikantenService }, { token: i3.TranslateService }, { token: i4.FabrikantenApiClient }, { token: i4.ConfiguratorApiClient }, { token: i5.AuthenticationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
205
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabFiltersInputComponent, selector: "fab-filters-input", ngImport: i0, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <div class=\"filter-view-header-h1\">\r\n
|
|
205
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabFiltersInputComponent, selector: "fab-filters-input", ngImport: i0, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <ng-container *ngIf=\"ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n <div>\r\n <app-fab-input-code></app-fab-input-code>\r\n </div>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!ShowCategories()\">\r\n <div class=\"inputs-container\" [ngClass]=\"{'two-columns': ShowTwoColumns() }\">\r\n <ng-container *ngFor=\"let inputviewmodel of FabrikantenService.FabrikantenViewModel.inputs; index as i\">\r\n <app-fab-input [input]=\"inputviewmodel\" [ngClass]=\"{'col1': i % 2 == 0, 'col2': i % 2 == 1 }\"></app-fab-input>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"ShowAffectsOnlyBestek()\">\r\n <div class=\"affects-only-bestek\">\r\n <span><sup>1</sup></span>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.AffectsOnlyBestek) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"ShowCategories()\">\r\n <mat-stepper orientation=\"vertical\" [linear]=\"true\" #stepper>\r\n <ng-template matStepperIcon=\"edit\" let-index=\"index\">\r\n {{ index + 1 }}\r\n </ng-template>\r\n\r\n <mat-step *ngFor=\"let cat of FabrikantenService.FabrikantenViewModel.filterCategories\" state=\"{{ cat.id }}\" [completed]=\"cat.completed\" [aria-labelledby]=\"GetHeaderAriaLabel(cat)\" [class.completed-step]=\"cat.completed\">\r\n <ng-template matStepLabel>\r\n <div class=\"step-name-div\">\r\n <div class=\"step-name-completed\" *ngIf=\"cat.completed\">\r\n <mat-icon class=\"step-name-completed-icon\">done</mat-icon>\r\n </div>\r\n <div class=\"step-name-name\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.FilterCategory, TranslationSubCategory.Name, cat.id) }}\r\n </div>\r\n <div class=\"step-name-icon\" *ngIf=\"cat.icon != null\">\r\n <span class=\"helper\"></span>\r\n <img [src]=\"cat.icon\" class=\"filter-category-icon\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngFor=\"let inputviewmodel of cat.inputs\">\r\n <app-fab-input [input]=\"inputviewmodel\"></app-fab-input>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"ShowSaveConf()\" class=\"save-conf-div\">\r\n <ng-container *ngIf=\"LoadingGenerate\">\r\n <mat-spinner [diameter]=\"20\"></mat-spinner>\r\n </ng-container>\r\n <ng-container *ngIf=\"!LoadingGenerate\">\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Project\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedProjectId\">\r\n <ng-container *ngFor=\"let project of ConfigurationsViewModel.projects\">\r\n <mat-option [value]=\"project.id\">\r\n {{ project.name }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Unique Code\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedInstanceId\" (selectionChange)=\"SelectInstance()\">\r\n <mat-option [value]=\"-1\">\r\n Nieuw\r\n </mat-option>\r\n <ng-container *ngFor=\"let instance of GetProjectViewModel().instances\">\r\n <mat-option [value]=\"instance.id\">\r\n {{ instance.uniqueCode }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-raised-button (click)=\"SaveConfiguration()\" class=\"save-conf-button\">\r\n Save Configuration\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: ["fab-filters-input .mat-step-header{cursor:pointer!important}fab-filters-input .two-columns{display:flex;flex-wrap:wrap}fab-filters-input .mat-step-header[aria-labelledby=disabled_af]{cursor:not-allowed!important;opacity:.6}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon{background-color:#000}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon-selected{background-color:#3f51b5}fab-filters-input .filter-view-header{display:flex}fab-filters-input .filter-view-header-h1{flex:auto;text-transform:capitalize}fab-filters-input .step-name-icon{height:54px;white-space:nowrap;text-align:center;margin:auto 0}fab-filters-input .step-name-completed{height:54px;display:flex;align-items:center}fab-filters-input .step-name-div{width:100%}fab-filters-input .filter-category-icon{height:48px;vertical-align:middle}fab-filters-input .mat-step-text-label{width:100%}fab-filters-input .mat-step-label{width:100%}fab-filters-input .step-name-name{line-height:56px}fab-filters-input .helper{display:inline-block;height:100%;vertical-align:middle}fab-filters-input .filter-view-margin{padding:10px}fab-filters-input .filter-view-header-reset{cursor:pointer}fab-filters-input .mat-vertical-content-container{padding-top:10px}fab-filters-input .mat-vertical-content{padding:0}fab-filters-input .step-name-div{display:flex}fab-filters-input .step-name-name{flex:auto}fab-filters-input .save-conf-div{padding:15px}fab-filters-input .save-conf-div mat-spinner{margin:auto}fab-filters-input .save-conf-button{width:100%}\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: "component", type: i7.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.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: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i11.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i11.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i11.MatStepperIcon, selector: "ng-template[matStepperIcon]", inputs: ["matStepperIcon"] }, { kind: "component", type: i12.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i13.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i14.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i15.FabInputComponent, selector: "app-fab-input", inputs: ["input"] }, { kind: "component", type: i16.FabInputCodeComponent, selector: "app-fab-input-code" }], encapsulation: i0.ViewEncapsulation.None });
|
|
206
206
|
}
|
|
207
207
|
export { FabFiltersInputComponent };
|
|
208
208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabFiltersInputComponent, decorators: [{
|
|
209
209
|
type: Component,
|
|
210
|
-
args: [{ selector: 'fab-filters-input', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <div class=\"filter-view-header-h1\">\r\n
|
|
210
|
+
args: [{ selector: 'fab-filters-input', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <ng-container *ngIf=\"ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n <div>\r\n <app-fab-input-code></app-fab-input-code>\r\n </div>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!ShowCategories()\">\r\n <div class=\"inputs-container\" [ngClass]=\"{'two-columns': ShowTwoColumns() }\">\r\n <ng-container *ngFor=\"let inputviewmodel of FabrikantenService.FabrikantenViewModel.inputs; index as i\">\r\n <app-fab-input [input]=\"inputviewmodel\" [ngClass]=\"{'col1': i % 2 == 0, 'col2': i % 2 == 1 }\"></app-fab-input>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"ShowAffectsOnlyBestek()\">\r\n <div class=\"affects-only-bestek\">\r\n <span><sup>1</sup></span>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.AffectsOnlyBestek) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"ShowCategories()\">\r\n <mat-stepper orientation=\"vertical\" [linear]=\"true\" #stepper>\r\n <ng-template matStepperIcon=\"edit\" let-index=\"index\">\r\n {{ index + 1 }}\r\n </ng-template>\r\n\r\n <mat-step *ngFor=\"let cat of FabrikantenService.FabrikantenViewModel.filterCategories\" state=\"{{ cat.id }}\" [completed]=\"cat.completed\" [aria-labelledby]=\"GetHeaderAriaLabel(cat)\" [class.completed-step]=\"cat.completed\">\r\n <ng-template matStepLabel>\r\n <div class=\"step-name-div\">\r\n <div class=\"step-name-completed\" *ngIf=\"cat.completed\">\r\n <mat-icon class=\"step-name-completed-icon\">done</mat-icon>\r\n </div>\r\n <div class=\"step-name-name\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.FilterCategory, TranslationSubCategory.Name, cat.id) }}\r\n </div>\r\n <div class=\"step-name-icon\" *ngIf=\"cat.icon != null\">\r\n <span class=\"helper\"></span>\r\n <img [src]=\"cat.icon\" class=\"filter-category-icon\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngFor=\"let inputviewmodel of cat.inputs\">\r\n <app-fab-input [input]=\"inputviewmodel\"></app-fab-input>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"ShowSaveConf()\" class=\"save-conf-div\">\r\n <ng-container *ngIf=\"LoadingGenerate\">\r\n <mat-spinner [diameter]=\"20\"></mat-spinner>\r\n </ng-container>\r\n <ng-container *ngIf=\"!LoadingGenerate\">\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Project\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedProjectId\">\r\n <ng-container *ngFor=\"let project of ConfigurationsViewModel.projects\">\r\n <mat-option [value]=\"project.id\">\r\n {{ project.name }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Unique Code\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedInstanceId\" (selectionChange)=\"SelectInstance()\">\r\n <mat-option [value]=\"-1\">\r\n Nieuw\r\n </mat-option>\r\n <ng-container *ngFor=\"let instance of GetProjectViewModel().instances\">\r\n <mat-option [value]=\"instance.id\">\r\n {{ instance.uniqueCode }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-raised-button (click)=\"SaveConfiguration()\" class=\"save-conf-button\">\r\n Save Configuration\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: ["fab-filters-input .mat-step-header{cursor:pointer!important}fab-filters-input .two-columns{display:flex;flex-wrap:wrap}fab-filters-input .mat-step-header[aria-labelledby=disabled_af]{cursor:not-allowed!important;opacity:.6}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon{background-color:#000}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon-selected{background-color:#3f51b5}fab-filters-input .filter-view-header{display:flex}fab-filters-input .filter-view-header-h1{flex:auto;text-transform:capitalize}fab-filters-input .step-name-icon{height:54px;white-space:nowrap;text-align:center;margin:auto 0}fab-filters-input .step-name-completed{height:54px;display:flex;align-items:center}fab-filters-input .step-name-div{width:100%}fab-filters-input .filter-category-icon{height:48px;vertical-align:middle}fab-filters-input .mat-step-text-label{width:100%}fab-filters-input .mat-step-label{width:100%}fab-filters-input .step-name-name{line-height:56px}fab-filters-input .helper{display:inline-block;height:100%;vertical-align:middle}fab-filters-input .filter-view-margin{padding:10px}fab-filters-input .filter-view-header-reset{cursor:pointer}fab-filters-input .mat-vertical-content-container{padding-top:10px}fab-filters-input .mat-vertical-content{padding:0}fab-filters-input .step-name-div{display:flex}fab-filters-input .step-name-name{flex:auto}fab-filters-input .save-conf-div{padding:15px}fab-filters-input .save-conf-div mat-spinner{margin:auto}fab-filters-input .save-conf-button{width:100%}\n"] }]
|
|
211
211
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.FabrikantenService }, { type: i3.TranslateService }, { type: i4.FabrikantenApiClient }, { type: i4.ConfiguratorApiClient }, { type: i5.AuthenticationService }, { type: i0.ChangeDetectorRef }]; } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpbHRlcnMtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1maWx0ZXJzLWlucHV0L2ZhYi1maWx0ZXJzLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItZmlsdGVycy1pbnB1dC9mYWItZmlsdGVycy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQXVELGdDQUFnQyxFQUF3QixtQkFBbUIsRUFBRSxzQkFBc0IsRUFBc0MsNkJBQTZCLEVBQUUsa0JBQWtCLEVBQTJCLDhCQUE4QixFQUFtQyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMVksTUFTYSx3QkFBd0I7SUFpQnpCO0lBQ0Q7SUFDQTtJQUNDO0lBQ0E7SUFDRDtJQUNBO0lBckJGLGVBQWUsR0FBWSxJQUFJLENBQUM7SUFFaEMsdUJBQXVCLENBQTBCO0lBQ2pELGlCQUFpQixHQUFXLENBQUMsQ0FBQztJQUM5QixrQkFBa0IsR0FBVyxDQUFDLENBQUMsQ0FBQztJQUV2QyxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUNVLE1BQWMsRUFDZixrQkFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2pDLG9CQUEwQyxFQUMxQyxxQkFBNEMsRUFDN0MscUJBQTRDLEVBQzVDLGlCQUFvQztRQU5uQyxXQUFN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Qy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0E5TlUsd0JBQXdCOzRGQUF4Qix3QkFBd0IseURDakJyQyxtaElBK0ZBOztTRDlFYSx3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNURVBQRVJfR0xPQkFMX09QVElPTlMgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9qZWN0Vmlld01vZGVsLCBDb25maWd1cmF0b3JBcGlDbGllbnQsIEZhYnJpa2FudGVuSW5zdGFuY2VWaWV3TW9kZWwsIEZhYnJpa2FudGVuQ3JlYXRlSW5zdGFuY2VSZXF1ZXN0LCBGYWJyaWthbnRlbkFwaUNsaWVudCwgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSwgRmFicmlrYW50ZW5GaWx0ZXJDYXRlZ29yeVZpZXdNb2RlbCwgR2V0Q29uZmlndXJhdGlvbnNSZXF1ZXN0TW9kZWwsIExvZ2luUmVzcG9uc2VNb2RlbCwgQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwsIEZhYnJpa2FudGVuT3Blbkluc3RhbmNlUmVxdWVzdCwgRmFicmlrYW50ZW5PcGVuSW5zdGFuY2VSZXNwb25zZSB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZhYi1maWx0ZXJzLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWZpbHRlcnMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhYi1maWx0ZXJzLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAvL3Byb3ZpZGVyczogW3tcclxuICAvLyAgcHJvdmlkZTogU1RFUFBFUl9HTE9CQUxfT1BUSU9OUywgdXNlVmFsdWU6IHsgZGlzcGxheURlZmF1bHRJbmRpY2F0b3JUeXBlOiBmYWxzZSB9XHJcbiAgLy99XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiRmlsdGVyc0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIExvYWRpbmdHZW5lcmF0ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBDb25maWd1cmF0aW9uc1ZpZXdNb2RlbDogQ29uZmlndXJhdGlvbnNWaWV3TW9kZWw7XHJcbiAgcHVibGljIFNlbGVjdGVkUHJvamVjdElkOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBTZWxlY3RlZEluc3RhbmNlSWQ6IG51bWJlciA9IC0xO1xyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIEZhYnJpa2FudGVuQXBpQ2xpZW50OiBGYWJyaWthbnRlbkFwaUNsaWVudCxcclxuICAgIHByaXZhdGUgQ29uZmlndXJhdG9yQXBpQ2xpZW50OiBDb25maWd1cmF0b3JBcGlDbGllbnQsXHJcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS52YWxpZGF0ZVVzZXJXaXRob3V0TmF2aWdhdGUodGhpcy5yb3V0ZXIpO1xyXG5cclxuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5Db25maWd1cmF0b3JSaWdodHMoKSkge1xyXG4gICAgICB0aGlzLkxvYWRDb25maWd1cmF0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFByb2plY3RWaWV3TW9kZWwoKTogUHJvamVjdFZpZXdNb2RlbCB7XHJcbiAgICBpZiAodGhpcy5Db25maWd1cmF0aW9uc1ZpZXdNb2RlbC5wcm9qZWN0cyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5Db25maWd1cmF0aW9uc1ZpZXdNb2RlbC5wcm9qZWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkNvbmZpZ3VyYXRpb25zVmlld01vZGVsLnByb2plY3RzW2ldLmlkID09IHRoaXMuU2VsZWN0ZWRQcm9qZWN0SWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkNvbmZpZ3VyYXRpb25zVmlld01vZGVsLnByb2plY3RzW2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwucHJvamVjdHNbMF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9qZWN0Vmlld01vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRBbGxGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVzZXRBbGxGaWx0ZXJzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dDYXRlZ29yaWVzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5maWx0ZXJDYXRlZ29yaWVzICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmZpbHRlckNhdGVnb3JpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dBZmZlY3RzT25seUJlc3RlaygpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5pbnB1dHMgIT0gbnVsbCkge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaW5wdXRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaW5wdXRzW2ldLmZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5pbnB1dHNbaV0uZmlsdGVyPy5hZmZlY3RzT25seUJlc3RlayA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0lucHV0Q29kZSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5pbnB1dENvZGVFbmFibGVkID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dUd29Db2x1bW5zKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWw/LmFkZEVuYWJsZVR3b0NvbHVtbkZpbHRlcnMgPT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0SGVhZGVyTmFtZSgpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLnNob3dQcm9kdWN0TmFtZUluRmlsdGVyc0lucHV0ID09IHRydWUpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdCAhPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LlByb2R1Y3QsIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmlkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuRmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd1NhdmVDb25mKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLkNvbmZpZ3VyYXRvclJpZ2h0cygpKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTYXZlQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZ0dlbmVyYXRlID0gdHJ1ZTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuQ3JlYXRlSW5zdGFuY2VSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LnByb2plY3RJZCA9IHRoaXMuU2VsZWN0ZWRQcm9qZWN0SWQ7XHJcblxyXG4gICAgdmFyIHVuaXF1ZUNvZGUgPSB0aGlzLkdldFVuaXF1ZUNvZGUoKTtcclxuXHJcbiAgICBpZiAodW5pcXVlQ29kZSAhPSBcIlwiKSB7XHJcbiAgICAgIHJlcXVlc3QudW5pcXVlQ29kZSA9IHVuaXF1ZUNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5jcmVhdGVJbnN0YW5jZShyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkluc3RhbmNlVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIC8vdGhpcy5GYWJyaWthbnRlbkluc3RhbmNlVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZENvbmZpZ3VyYXRpb25zKCk7XHJcbiAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0dlbmVyYXRlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0SGVhZGVyQXJpYUxhYmVsKGNhdDogRmFicmlrYW50ZW5GaWx0ZXJDYXRlZ29yeVZpZXdNb2RlbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoY2F0LmNhbkJlT3BlbmVkKSB7XHJcbiAgICAgIGlmIChjYXQuY29tcGxldGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiZW5hYmxlZC1jb21wbGV0ZWRcIjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gXCJlbmFibGVkXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJkaXNhYmxlZF9hZlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFVuaXF1ZUNvZGUoKTogc3RyaW5nIHtcclxuICAgIHZhciBpbnN0YW5jZXMgPSB0aGlzLkdldFByb2plY3RWaWV3TW9kZWwoKS5pbnN0YW5jZXM7XHJcblxyXG4gICAgaWYgKGluc3RhbmNlcyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGluc3RhbmNlc1tpXS5pZCA9PSB0aGlzLlNlbGVjdGVkSW5zdGFuY2VJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGluc3RhbmNlc1tpXS51bmlxdWVDb2RlICsgXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RJbnN0YW5jZSgpOiB2b2lkIHtcclxuICAgIHZhciB1bmlxdWVDb2RlID0gdGhpcy5HZXRVbmlxdWVDb2RlKCk7XHJcblxyXG4gICAgaWYgKHVuaXF1ZUNvZGUgIT0gXCJcIikge1xyXG4gICAgICB0aGlzLk9wZW4odW5pcXVlQ29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbihvcGVuY29kZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuT3Blbkluc3RhbmNlUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0Lmluc3RhbmNlSWQgPSBvcGVuY29kZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZXNldFRhYnMoKTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50Lm9wZW5JbnN0YW5jZShyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbk9wZW5JbnN0YW5jZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChtb2RlbC5lcnJvcikge1xyXG4gICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZWxvYWRNb2RlbCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgTG9hZENvbmZpZ3VyYXRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nR2VuZXJhdGUgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEdldENvbmZpZ3VyYXRpb25zUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG5cclxuICAgIHRoaXMuQ29uZmlndXJhdG9yQXBpQ2xpZW50LmdldENvbmZpZ3VyYXRpb25zKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IENvbmZpZ3VyYXRpb25zVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIHRoaXMuQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICAgIHZhciBwcm9qZWN0cyA9IHRoaXMuQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwucHJvamVjdHM7XHJcbiAgICAgIGlmIChwcm9qZWN0cyAhPSBudWxsICYmIHByb2plY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLlNlbGVjdGVkUHJvamVjdElkID0gcHJvamVjdHNbMF0uaWQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5Mb2FkaW5nR2VuZXJhdGUgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nR2VuZXJhdGUgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctbWFyZ2luXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci12aWV3LWhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci12aWV3LWhlYWRlci1oMVwiPlxyXG4gICAgICA8aDE+e3sgR2V0SGVhZGVyTmFtZSgpIH19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIlNob3dJbnB1dENvZGUoKVwiPlxyXG4gICAgICA8YXBwLWZhYi1pbnB1dC1jb2RlPjwvYXBwLWZhYi1pbnB1dC1jb2RlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctaGVhZGVyLXJlc2V0XCIgKGNsaWNrKT1cIlJlc2V0QWxsRmlsdGVycygpXCI+XHJcbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuUmVzZXRGaWx0ZXJzKSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU2hvd0NhdGVnb3JpZXMoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0cy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3R3by1jb2x1bW5zJzogU2hvd1R3b0NvbHVtbnMoKSB9XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGlucHV0dmlld21vZGVsIG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5pbnB1dHM7IGluZGV4IGFzIGlcIj5cclxuICAgICAgICA8YXBwLWZhYi1pbnB1dCBbaW5wdXRdPVwiaW5wdXR2aWV3bW9kZWxcIiBbbmdDbGFzc109XCJ7J2NvbDEnOiBpICUgMiA9PSAwLCAnY29sMic6IGkgJSAyID09IDEgfVwiPjwvYXBwLWZhYi1pbnB1dD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0FmZmVjdHNPbmx5QmVzdGVrKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFmZmVjdHMtb25seS1iZXN0ZWtcIj5cclxuICAgICAgICA8c3Bhbj48c3VwPjE8L3N1cD48L3NwYW4+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5BZmZlY3RzT25seUJlc3RlaykgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIlNob3dDYXRlZ29yaWVzKClcIj5cclxuICAgIDxtYXQtc3RlcHBlciBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgW2xpbmVhcl09XCJ0cnVlXCIgI3N0ZXBwZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwcGVySWNvbj1cImVkaXRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgIHt7IGluZGV4ICsgMSB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG1hdC1zdGVwICpuZ0Zvcj1cImxldCBjYXQgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmZpbHRlckNhdGVnb3JpZXNcIiBzdGF0ZT1cInt7IGNhdC5pZCB9fVwiIFtjb21wbGV0ZWRdPVwiY2F0LmNvbXBsZXRlZFwiIFthcmlhLWxhYmVsbGVkYnldPVwiR2V0SGVhZGVyQXJpYUxhYmVsKGNhdClcIiBbY2xhc3MuY29tcGxldGVkLXN0ZXBdPVwiY2F0LmNvbXBsZXRlZFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1uYW1lLWRpdlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1uYW1lLWNvbXBsZXRlZFwiICpuZ0lmPVwiY2F0LmNvbXBsZXRlZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN0ZXAtbmFtZS1jb21wbGV0ZWQtaWNvblwiPmRvbmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtbmFtZS1uYW1lXCI+XHJcbiAgICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkZpbHRlckNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIGNhdC5pZCkgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLW5hbWUtaWNvblwiICpuZ0lmPVwiY2F0Lmljb24gIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVscGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjYXQuaWNvblwiIGNsYXNzPVwiZmlsdGVyLWNhdGVnb3J5LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGlucHV0dmlld21vZGVsIG9mIGNhdC5pbnB1dHNcIj5cclxuICAgICAgICAgIDxhcHAtZmFiLWlucHV0IFtpbnB1dF09XCJpbnB1dHZpZXdtb2RlbFwiPjwvYXBwLWZhYi1pbnB1dD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtc3RlcD5cclxuICAgIDwvbWF0LXN0ZXBwZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIlNob3dTYXZlQ29uZigpXCIgY2xhc3M9XCJzYXZlLWNvbmYtZGl2XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkxvYWRpbmdHZW5lcmF0ZVwiPlxyXG4gICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIyMFwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFMb2FkaW5nR2VuZXJhdGVcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAgUHJvamVjdFxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTZWxlY3RlZFByb2plY3RJZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2plY3Qgb2YgQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwucHJvamVjdHNcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJwcm9qZWN0LmlkXCI+XHJcbiAgICAgICAgICAgIHt7IHByb2plY3QubmFtZSB9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICBVbmlxdWUgQ29kZVxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTZWxlY3RlZEluc3RhbmNlSWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIlNlbGVjdEluc3RhbmNlKClcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiLTFcIj5cclxuICAgICAgICAgIE5pZXV3XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGluc3RhbmNlIG9mIEdldFByb2plY3RWaWV3TW9kZWwoKS5pbnN0YW5jZXNcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpbnN0YW5jZS5pZFwiPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS51bmlxdWVDb2RlIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTYXZlQ29uZmlndXJhdGlvbigpXCIgY2xhc3M9XCJzYXZlLWNvbmYtYnV0dG9uXCI+XHJcbiAgICAgIFNhdmUgQ29uZmlndXJhdGlvblxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpbHRlcnMtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1maWx0ZXJzLWlucHV0L2ZhYi1maWx0ZXJzLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItZmlsdGVycy1pbnB1dC9mYWItZmlsdGVycy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQXVELGdDQUFnQyxFQUF3QixtQkFBbUIsRUFBRSxzQkFBc0IsRUFBc0MsNkJBQTZCLEVBQUUsa0JBQWtCLEVBQTJCLDhCQUE4QixFQUFtQyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMVksTUFTYSx3QkFBd0I7SUFpQnpCO0lBQ0Q7SUFDQTtJQUNDO0lBQ0E7SUFDRDtJQUNBO0lBckJGLGVBQWUsR0FBWSxJQUFJLENBQUM7SUFFaEMsdUJBQXVCLENBQTBCO0lBQ2pELGlCQUFpQixHQUFXLENBQUMsQ0FBQztJQUM5QixrQkFBa0IsR0FBVyxDQUFDLENBQUMsQ0FBQztJQUV2QyxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUNVLE1BQWMsRUFDZixrQkFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2pDLG9CQUEwQyxFQUMxQyxxQkFBNEMsRUFDN0MscUJBQTRDLEVBQzVDLGlCQUFvQztRQU5uQyxXQUFN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Qy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0E5TlUsd0JBQXdCOzRGQUF4Qix3QkFBd0IseURDakJyQywyOUlBeUdBOztTRHhGYSx3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNURVBQRVJfR0xPQkFMX09QVElPTlMgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9qZWN0Vmlld01vZGVsLCBDb25maWd1cmF0b3JBcGlDbGllbnQsIEZhYnJpa2FudGVuSW5zdGFuY2VWaWV3TW9kZWwsIEZhYnJpa2FudGVuQ3JlYXRlSW5zdGFuY2VSZXF1ZXN0LCBGYWJyaWthbnRlbkFwaUNsaWVudCwgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSwgRmFicmlrYW50ZW5GaWx0ZXJDYXRlZ29yeVZpZXdNb2RlbCwgR2V0Q29uZmlndXJhdGlvbnNSZXF1ZXN0TW9kZWwsIExvZ2luUmVzcG9uc2VNb2RlbCwgQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwsIEZhYnJpa2FudGVuT3Blbkluc3RhbmNlUmVxdWVzdCwgRmFicmlrYW50ZW5PcGVuSW5zdGFuY2VSZXNwb25zZSB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZhYi1maWx0ZXJzLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWZpbHRlcnMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhYi1maWx0ZXJzLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAvL3Byb3ZpZGVyczogW3tcclxuICAvLyAgcHJvdmlkZTogU1RFUFBFUl9HTE9CQUxfT1BUSU9OUywgdXNlVmFsdWU6IHsgZGlzcGxheURlZmF1bHRJbmRpY2F0b3JUeXBlOiBmYWxzZSB9XHJcbiAgLy99XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiRmlsdGVyc0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIExvYWRpbmdHZW5lcmF0ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBDb25maWd1cmF0aW9uc1ZpZXdNb2RlbDogQ29uZmlndXJhdGlvbnNWaWV3TW9kZWw7XHJcbiAgcHVibGljIFNlbGVjdGVkUHJvamVjdElkOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBTZWxlY3RlZEluc3RhbmNlSWQ6IG51bWJlciA9IC0xO1xyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIEZhYnJpa2FudGVuQXBpQ2xpZW50OiBGYWJyaWthbnRlbkFwaUNsaWVudCxcclxuICAgIHByaXZhdGUgQ29uZmlndXJhdG9yQXBpQ2xpZW50OiBDb25maWd1cmF0b3JBcGlDbGllbnQsXHJcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS52YWxpZGF0ZVVzZXJXaXRob3V0TmF2aWdhdGUodGhpcy5yb3V0ZXIpO1xyXG5cclxuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5Db25maWd1cmF0b3JSaWdodHMoKSkge1xyXG4gICAgICB0aGlzLkxvYWRDb25maWd1cmF0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFByb2plY3RWaWV3TW9kZWwoKTogUHJvamVjdFZpZXdNb2RlbCB7XHJcbiAgICBpZiAodGhpcy5Db25maWd1cmF0aW9uc1ZpZXdNb2RlbC5wcm9qZWN0cyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5Db25maWd1cmF0aW9uc1ZpZXdNb2RlbC5wcm9qZWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkNvbmZpZ3VyYXRpb25zVmlld01vZGVsLnByb2plY3RzW2ldLmlkID09IHRoaXMuU2VsZWN0ZWRQcm9qZWN0SWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkNvbmZpZ3VyYXRpb25zVmlld01vZGVsLnByb2plY3RzW2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwucHJvamVjdHNbMF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9qZWN0Vmlld01vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRBbGxGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVzZXRBbGxGaWx0ZXJzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dDYXRlZ29yaWVzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5maWx0ZXJDYXRlZ29yaWVzICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmZpbHRlckNhdGVnb3JpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dBZmZlY3RzT25seUJlc3RlaygpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5pbnB1dHMgIT0gbnVsbCkge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaW5wdXRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaW5wdXRzW2ldLmZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5pbnB1dHNbaV0uZmlsdGVyPy5hZmZlY3RzT25seUJlc3RlayA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0lucHV0Q29kZSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5pbnB1dENvZGVFbmFibGVkID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dUd29Db2x1bW5zKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWw/LmFkZEVuYWJsZVR3b0NvbHVtbkZpbHRlcnMgPT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0SGVhZGVyTmFtZSgpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLnNob3dQcm9kdWN0TmFtZUluRmlsdGVyc0lucHV0ID09IHRydWUpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdCAhPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LlByb2R1Y3QsIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmlkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuRmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd1NhdmVDb25mKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLkNvbmZpZ3VyYXRvclJpZ2h0cygpKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTYXZlQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZ0dlbmVyYXRlID0gdHJ1ZTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuQ3JlYXRlSW5zdGFuY2VSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LnByb2plY3RJZCA9IHRoaXMuU2VsZWN0ZWRQcm9qZWN0SWQ7XHJcblxyXG4gICAgdmFyIHVuaXF1ZUNvZGUgPSB0aGlzLkdldFVuaXF1ZUNvZGUoKTtcclxuXHJcbiAgICBpZiAodW5pcXVlQ29kZSAhPSBcIlwiKSB7XHJcbiAgICAgIHJlcXVlc3QudW5pcXVlQ29kZSA9IHVuaXF1ZUNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5jcmVhdGVJbnN0YW5jZShyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkluc3RhbmNlVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIC8vdGhpcy5GYWJyaWthbnRlbkluc3RhbmNlVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZENvbmZpZ3VyYXRpb25zKCk7XHJcbiAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0dlbmVyYXRlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0SGVhZGVyQXJpYUxhYmVsKGNhdDogRmFicmlrYW50ZW5GaWx0ZXJDYXRlZ29yeVZpZXdNb2RlbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoY2F0LmNhbkJlT3BlbmVkKSB7XHJcbiAgICAgIGlmIChjYXQuY29tcGxldGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiZW5hYmxlZC1jb21wbGV0ZWRcIjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gXCJlbmFibGVkXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJkaXNhYmxlZF9hZlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFVuaXF1ZUNvZGUoKTogc3RyaW5nIHtcclxuICAgIHZhciBpbnN0YW5jZXMgPSB0aGlzLkdldFByb2plY3RWaWV3TW9kZWwoKS5pbnN0YW5jZXM7XHJcblxyXG4gICAgaWYgKGluc3RhbmNlcyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGluc3RhbmNlc1tpXS5pZCA9PSB0aGlzLlNlbGVjdGVkSW5zdGFuY2VJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGluc3RhbmNlc1tpXS51bmlxdWVDb2RlICsgXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RJbnN0YW5jZSgpOiB2b2lkIHtcclxuICAgIHZhciB1bmlxdWVDb2RlID0gdGhpcy5HZXRVbmlxdWVDb2RlKCk7XHJcblxyXG4gICAgaWYgKHVuaXF1ZUNvZGUgIT0gXCJcIikge1xyXG4gICAgICB0aGlzLk9wZW4odW5pcXVlQ29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbihvcGVuY29kZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuT3Blbkluc3RhbmNlUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0Lmluc3RhbmNlSWQgPSBvcGVuY29kZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZXNldFRhYnMoKTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50Lm9wZW5JbnN0YW5jZShyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbk9wZW5JbnN0YW5jZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChtb2RlbC5lcnJvcikge1xyXG4gICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZWxvYWRNb2RlbCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgTG9hZENvbmZpZ3VyYXRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nR2VuZXJhdGUgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEdldENvbmZpZ3VyYXRpb25zUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG5cclxuICAgIHRoaXMuQ29uZmlndXJhdG9yQXBpQ2xpZW50LmdldENvbmZpZ3VyYXRpb25zKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IENvbmZpZ3VyYXRpb25zVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIHRoaXMuQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICAgIHZhciBwcm9qZWN0cyA9IHRoaXMuQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwucHJvamVjdHM7XHJcbiAgICAgIGlmIChwcm9qZWN0cyAhPSBudWxsICYmIHByb2plY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLlNlbGVjdGVkUHJvamVjdElkID0gcHJvamVjdHNbMF0uaWQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5Mb2FkaW5nR2VuZXJhdGUgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nR2VuZXJhdGUgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctbWFyZ2luXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci12aWV3LWhlYWRlclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dJbnB1dENvZGUoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctaGVhZGVyLWgxXCI+XHJcbiAgICAgICAgPGgxPnt7IEdldEhlYWRlck5hbWUoKSB9fTwvaDE+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxhcHAtZmFiLWlucHV0LWNvZGU+PC9hcHAtZmFiLWlucHV0LWNvZGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctaGVhZGVyLXJlc2V0XCIgKGNsaWNrKT1cIlJlc2V0QWxsRmlsdGVycygpXCI+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5SZXNldEZpbHRlcnMpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVNob3dJbnB1dENvZGUoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctaGVhZGVyLWgxXCI+XHJcbiAgICAgICAgPGgxPnt7IEdldEhlYWRlck5hbWUoKSB9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXctaGVhZGVyLXJlc2V0XCIgKGNsaWNrKT1cIlJlc2V0QWxsRmlsdGVycygpXCI+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5SZXNldEZpbHRlcnMpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU2hvd0NhdGVnb3JpZXMoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0cy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3R3by1jb2x1bW5zJzogU2hvd1R3b0NvbHVtbnMoKSB9XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGlucHV0dmlld21vZGVsIG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5pbnB1dHM7IGluZGV4IGFzIGlcIj5cclxuICAgICAgICA8YXBwLWZhYi1pbnB1dCBbaW5wdXRdPVwiaW5wdXR2aWV3bW9kZWxcIiBbbmdDbGFzc109XCJ7J2NvbDEnOiBpICUgMiA9PSAwLCAnY29sMic6IGkgJSAyID09IDEgfVwiPjwvYXBwLWZhYi1pbnB1dD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0FmZmVjdHNPbmx5QmVzdGVrKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFmZmVjdHMtb25seS1iZXN0ZWtcIj5cclxuICAgICAgICA8c3Bhbj48c3VwPjE8L3N1cD48L3NwYW4+XHJcbiAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5BZmZlY3RzT25seUJlc3RlaykgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIlNob3dDYXRlZ29yaWVzKClcIj5cclxuICAgIDxtYXQtc3RlcHBlciBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgW2xpbmVhcl09XCJ0cnVlXCIgI3N0ZXBwZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwcGVySWNvbj1cImVkaXRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgIHt7IGluZGV4ICsgMSB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG1hdC1zdGVwICpuZ0Zvcj1cImxldCBjYXQgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmZpbHRlckNhdGVnb3JpZXNcIiBzdGF0ZT1cInt7IGNhdC5pZCB9fVwiIFtjb21wbGV0ZWRdPVwiY2F0LmNvbXBsZXRlZFwiIFthcmlhLWxhYmVsbGVkYnldPVwiR2V0SGVhZGVyQXJpYUxhYmVsKGNhdClcIiBbY2xhc3MuY29tcGxldGVkLXN0ZXBdPVwiY2F0LmNvbXBsZXRlZFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1uYW1lLWRpdlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1uYW1lLWNvbXBsZXRlZFwiICpuZ0lmPVwiY2F0LmNvbXBsZXRlZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN0ZXAtbmFtZS1jb21wbGV0ZWQtaWNvblwiPmRvbmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtbmFtZS1uYW1lXCI+XHJcbiAgICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkZpbHRlckNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIGNhdC5pZCkgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLW5hbWUtaWNvblwiICpuZ0lmPVwiY2F0Lmljb24gIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVscGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjYXQuaWNvblwiIGNsYXNzPVwiZmlsdGVyLWNhdGVnb3J5LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGlucHV0dmlld21vZGVsIG9mIGNhdC5pbnB1dHNcIj5cclxuICAgICAgICAgIDxhcHAtZmFiLWlucHV0IFtpbnB1dF09XCJpbnB1dHZpZXdtb2RlbFwiPjwvYXBwLWZhYi1pbnB1dD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtc3RlcD5cclxuICAgIDwvbWF0LXN0ZXBwZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIlNob3dTYXZlQ29uZigpXCIgY2xhc3M9XCJzYXZlLWNvbmYtZGl2XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkxvYWRpbmdHZW5lcmF0ZVwiPlxyXG4gICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIyMFwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFMb2FkaW5nR2VuZXJhdGVcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAgUHJvamVjdFxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTZWxlY3RlZFByb2plY3RJZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2plY3Qgb2YgQ29uZmlndXJhdGlvbnNWaWV3TW9kZWwucHJvamVjdHNcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJwcm9qZWN0LmlkXCI+XHJcbiAgICAgICAgICAgIHt7IHByb2plY3QubmFtZSB9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICBVbmlxdWUgQ29kZVxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTZWxlY3RlZEluc3RhbmNlSWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIlNlbGVjdEluc3RhbmNlKClcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiLTFcIj5cclxuICAgICAgICAgIE5pZXV3XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGluc3RhbmNlIG9mIEdldFByb2plY3RWaWV3TW9kZWwoKS5pbnN0YW5jZXNcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpbnN0YW5jZS5pZFwiPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS51bmlxdWVDb2RlIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTYXZlQ29uZmlndXJhdGlvbigpXCIgY2xhc3M9XCJzYXZlLWNvbmYtYnV0dG9uXCI+XHJcbiAgICAgIFNhdmUgQ29uZmlndXJhdGlvblxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -78,12 +78,12 @@ class FabInputCodeComponent {
|
|
|
78
78
|
return false;
|
|
79
79
|
}
|
|
80
80
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabInputCodeComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i3.FabrikantenApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabInputCodeComponent, selector: "app-fab-input-code", ngImport: i0, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabInputCodeComponent, selector: "app-fab-input-code", ngImport: i0, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open-input{width:80px;text-align:center}app-fab-input-code .fab-input-code-open-button{margin:7px 7px 27px;padding:0 3px!important;min-width:0px}app-fab-input-code .fab-input-code-open{display:flex;align-items:center;justify-content:center}app-fab-input-code .fab-input-code-generate{text-align:center}app-fab-input-code .fab-input-code-generate-spinner{margin:auto}\n"], dependencies: [{ kind: "directive", type: i4.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "directive", type: i7.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { 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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
82
82
|
}
|
|
83
83
|
export { FabInputCodeComponent };
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabInputCodeComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
|
-
args: [{ selector: 'app-fab-input-code', encapsulation: ViewEncapsulation.None, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open
|
|
86
|
+
args: [{ selector: 'app-fab-input-code', encapsulation: ViewEncapsulation.None, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open-input{width:80px;text-align:center}app-fab-input-code .fab-input-code-open-button{margin:7px 7px 27px;padding:0 3px!important;min-width:0px}app-fab-input-code .fab-input-code-open{display:flex;align-items:center;justify-content:center}app-fab-input-code .fab-input-code-generate{text-align:center}app-fab-input-code .fab-input-code-generate-spinner{margin:auto}\n"] }]
|
|
87
87
|
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i3.FabrikantenApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
88
88
|
export class InputCodeErrorStateMatcher {
|
|
89
89
|
CodeError = false;
|
|
@@ -21473,11 +21473,11 @@ class FabInputCodeComponent {
|
|
|
21473
21473
|
return false;
|
|
21474
21474
|
}
|
|
21475
21475
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabInputCodeComponent, deps: [{ token: FabrikantenService }, { token: TranslateService }, { token: FabrikantenApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
21476
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabInputCodeComponent, selector: "app-fab-input-code", ngImport: i0, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open
|
|
21476
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabInputCodeComponent, selector: "app-fab-input-code", ngImport: i0, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open-input{width:80px;text-align:center}app-fab-input-code .fab-input-code-open-button{margin:7px 7px 27px;padding:0 3px!important;min-width:0px}app-fab-input-code .fab-input-code-open{display:flex;align-items:center;justify-content:center}app-fab-input-code .fab-input-code-generate{text-align:center}app-fab-input-code .fab-input-code-generate-spinner{margin:auto}\n"], dependencies: [{ kind: "directive", type: i5.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { 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$1.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "directive", type: i6$3.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { 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: i8$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
21477
21477
|
}
|
|
21478
21478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabInputCodeComponent, decorators: [{
|
|
21479
21479
|
type: Component,
|
|
21480
|
-
args: [{ selector: 'app-fab-input-code', encapsulation: ViewEncapsulation.None, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open
|
|
21480
|
+
args: [{ selector: 'app-fab-input-code', encapsulation: ViewEncapsulation.None, template: "<div class=\"fab-input-code-main\">\n <div class=\"fab-input-code-open\">\n <span class=\"filter-label-info\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeInfo) }}\n </span>\n <span class=\"filter-label-tooltip\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeTooltip) }}\">\n <mat-icon class=\"expand_less\">info</mat-icon>\n </span>\n\n <mat-form-field appearance=\"fill\" class=\"fab-input-code-open-input\">\n <mat-label>\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeLabel) }}\n </mat-label>\n <input matInput [errorStateMatcher]=\"InputCodeErrorStateMatcher\" type=\"text\" placeholder=\"000000\" [(ngModel)]=\"InputCode\">\n <mat-error>{{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.InputCodeError) }}</mat-error>\n </mat-form-field>\n\n <button mat-raised-button (click)=\"Open()\" class=\"fab-input-code-open-button\">\n <mat-icon>\n chevron_right\n </mat-icon>\n </button>\n </div>\n</div>\n", styles: ["app-fab-input-code .fab-input-code-open-input{width:80px;text-align:center}app-fab-input-code .fab-input-code-open-button{margin:7px 7px 27px;padding:0 3px!important;min-width:0px}app-fab-input-code .fab-input-code-open{display:flex;align-items:center;justify-content:center}app-fab-input-code .fab-input-code-generate{text-align:center}app-fab-input-code .fab-input-code-generate-spinner{margin:auto}\n"] }]
|
|
21481
21481
|
}], ctorParameters: function () { return [{ type: FabrikantenService }, { type: TranslateService }, { type: FabrikantenApiClient }, { type: i0.ChangeDetectorRef }]; } });
|
|
21482
21482
|
class InputCodeErrorStateMatcher {
|
|
21483
21483
|
CodeError = false;
|
|
@@ -21671,11 +21671,11 @@ class FabFiltersInputComponent {
|
|
|
21671
21671
|
});
|
|
21672
21672
|
}
|
|
21673
21673
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabFiltersInputComponent, deps: [{ token: i3.Router }, { token: FabrikantenService }, { token: TranslateService }, { token: FabrikantenApiClient }, { token: ConfiguratorApiClient }, { token: AuthenticationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
21674
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabFiltersInputComponent, selector: "fab-filters-input", ngImport: i0, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <div class=\"filter-view-header-h1\">\r\n
|
|
21674
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FabFiltersInputComponent, selector: "fab-filters-input", ngImport: i0, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <ng-container *ngIf=\"ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n <div>\r\n <app-fab-input-code></app-fab-input-code>\r\n </div>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!ShowCategories()\">\r\n <div class=\"inputs-container\" [ngClass]=\"{'two-columns': ShowTwoColumns() }\">\r\n <ng-container *ngFor=\"let inputviewmodel of FabrikantenService.FabrikantenViewModel.inputs; index as i\">\r\n <app-fab-input [input]=\"inputviewmodel\" [ngClass]=\"{'col1': i % 2 == 0, 'col2': i % 2 == 1 }\"></app-fab-input>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"ShowAffectsOnlyBestek()\">\r\n <div class=\"affects-only-bestek\">\r\n <span><sup>1</sup></span>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.AffectsOnlyBestek) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"ShowCategories()\">\r\n <mat-stepper orientation=\"vertical\" [linear]=\"true\" #stepper>\r\n <ng-template matStepperIcon=\"edit\" let-index=\"index\">\r\n {{ index + 1 }}\r\n </ng-template>\r\n\r\n <mat-step *ngFor=\"let cat of FabrikantenService.FabrikantenViewModel.filterCategories\" state=\"{{ cat.id }}\" [completed]=\"cat.completed\" [aria-labelledby]=\"GetHeaderAriaLabel(cat)\" [class.completed-step]=\"cat.completed\">\r\n <ng-template matStepLabel>\r\n <div class=\"step-name-div\">\r\n <div class=\"step-name-completed\" *ngIf=\"cat.completed\">\r\n <mat-icon class=\"step-name-completed-icon\">done</mat-icon>\r\n </div>\r\n <div class=\"step-name-name\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.FilterCategory, TranslationSubCategory.Name, cat.id) }}\r\n </div>\r\n <div class=\"step-name-icon\" *ngIf=\"cat.icon != null\">\r\n <span class=\"helper\"></span>\r\n <img [src]=\"cat.icon\" class=\"filter-category-icon\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngFor=\"let inputviewmodel of cat.inputs\">\r\n <app-fab-input [input]=\"inputviewmodel\"></app-fab-input>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"ShowSaveConf()\" class=\"save-conf-div\">\r\n <ng-container *ngIf=\"LoadingGenerate\">\r\n <mat-spinner [diameter]=\"20\"></mat-spinner>\r\n </ng-container>\r\n <ng-container *ngIf=\"!LoadingGenerate\">\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Project\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedProjectId\">\r\n <ng-container *ngFor=\"let project of ConfigurationsViewModel.projects\">\r\n <mat-option [value]=\"project.id\">\r\n {{ project.name }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Unique Code\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedInstanceId\" (selectionChange)=\"SelectInstance()\">\r\n <mat-option [value]=\"-1\">\r\n Nieuw\r\n </mat-option>\r\n <ng-container *ngFor=\"let instance of GetProjectViewModel().instances\">\r\n <mat-option [value]=\"instance.id\">\r\n {{ instance.uniqueCode }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-raised-button (click)=\"SaveConfiguration()\" class=\"save-conf-button\">\r\n Save Configuration\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: ["fab-filters-input .mat-step-header{cursor:pointer!important}fab-filters-input .two-columns{display:flex;flex-wrap:wrap}fab-filters-input .mat-step-header[aria-labelledby=disabled_af]{cursor:not-allowed!important;opacity:.6}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon{background-color:#000}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon-selected{background-color:#3f51b5}fab-filters-input .filter-view-header{display:flex}fab-filters-input .filter-view-header-h1{flex:auto;text-transform:capitalize}fab-filters-input .step-name-icon{height:54px;white-space:nowrap;text-align:center;margin:auto 0}fab-filters-input .step-name-completed{height:54px;display:flex;align-items:center}fab-filters-input .step-name-div{width:100%}fab-filters-input .filter-category-icon{height:48px;vertical-align:middle}fab-filters-input .mat-step-text-label{width:100%}fab-filters-input .mat-step-label{width:100%}fab-filters-input .step-name-name{line-height:56px}fab-filters-input .helper{display:inline-block;height:100%;vertical-align:middle}fab-filters-input .filter-view-margin{padding:10px}fab-filters-input .filter-view-header-reset{cursor:pointer}fab-filters-input .mat-vertical-content-container{padding-top:10px}fab-filters-input .mat-vertical-content{padding:0}fab-filters-input .step-name-div{display:flex}fab-filters-input .step-name-name{flex:auto}fab-filters-input .save-conf-div{padding:15px}fab-filters-input .save-conf-div mat-spinner{margin:auto}fab-filters-input .save-conf-button{width:100%}\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: 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: i8$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11$1.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i11$1.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i11$1.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i11$1.MatStepperIcon, selector: "ng-template[matStepperIcon]", inputs: ["matStepperIcon"] }, { kind: "component", type: i6.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { 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: FabInputComponent, selector: "app-fab-input", inputs: ["input"] }, { kind: "component", type: FabInputCodeComponent, selector: "app-fab-input-code" }], encapsulation: i0.ViewEncapsulation.None });
|
|
21675
21675
|
}
|
|
21676
21676
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FabFiltersInputComponent, decorators: [{
|
|
21677
21677
|
type: Component,
|
|
21678
|
-
args: [{ selector: 'fab-filters-input', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <div class=\"filter-view-header-h1\">\r\n
|
|
21678
|
+
args: [{ selector: 'fab-filters-input', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-view-margin\">\r\n <div class=\"filter-view-header\">\r\n <ng-container *ngIf=\"ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n <div>\r\n <app-fab-input-code></app-fab-input-code>\r\n </div>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ShowInputCode()\">\r\n <div class=\"filter-view-header-h1\">\r\n <h1>{{ GetHeaderName() }}</h1>\r\n </div>\r\n <div class=\"filter-view-header-reset\" (click)=\"ResetAllFilters()\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.ResetFilters) }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!ShowCategories()\">\r\n <div class=\"inputs-container\" [ngClass]=\"{'two-columns': ShowTwoColumns() }\">\r\n <ng-container *ngFor=\"let inputviewmodel of FabrikantenService.FabrikantenViewModel.inputs; index as i\">\r\n <app-fab-input [input]=\"inputviewmodel\" [ngClass]=\"{'col1': i % 2 == 0, 'col2': i % 2 == 1 }\"></app-fab-input>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"ShowAffectsOnlyBestek()\">\r\n <div class=\"affects-only-bestek\">\r\n <span><sup>1</sup></span>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.Common, TranslationSubCategory.AffectsOnlyBestek) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"ShowCategories()\">\r\n <mat-stepper orientation=\"vertical\" [linear]=\"true\" #stepper>\r\n <ng-template matStepperIcon=\"edit\" let-index=\"index\">\r\n {{ index + 1 }}\r\n </ng-template>\r\n\r\n <mat-step *ngFor=\"let cat of FabrikantenService.FabrikantenViewModel.filterCategories\" state=\"{{ cat.id }}\" [completed]=\"cat.completed\" [aria-labelledby]=\"GetHeaderAriaLabel(cat)\" [class.completed-step]=\"cat.completed\">\r\n <ng-template matStepLabel>\r\n <div class=\"step-name-div\">\r\n <div class=\"step-name-completed\" *ngIf=\"cat.completed\">\r\n <mat-icon class=\"step-name-completed-icon\">done</mat-icon>\r\n </div>\r\n <div class=\"step-name-name\">\r\n {{ TranslateService.GetActiveValue(TranslationCategory.FilterCategory, TranslationSubCategory.Name, cat.id) }}\r\n </div>\r\n <div class=\"step-name-icon\" *ngIf=\"cat.icon != null\">\r\n <span class=\"helper\"></span>\r\n <img [src]=\"cat.icon\" class=\"filter-category-icon\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngFor=\"let inputviewmodel of cat.inputs\">\r\n <app-fab-input [input]=\"inputviewmodel\"></app-fab-input>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"ShowSaveConf()\" class=\"save-conf-div\">\r\n <ng-container *ngIf=\"LoadingGenerate\">\r\n <mat-spinner [diameter]=\"20\"></mat-spinner>\r\n </ng-container>\r\n <ng-container *ngIf=\"!LoadingGenerate\">\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Project\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedProjectId\">\r\n <ng-container *ngFor=\"let project of ConfigurationsViewModel.projects\">\r\n <mat-option [value]=\"project.id\">\r\n {{ project.name }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"fill\" style=\"width: 100%;\">\r\n <mat-label>\r\n Unique Code\r\n </mat-label>\r\n <mat-select [(ngModel)]=\"SelectedInstanceId\" (selectionChange)=\"SelectInstance()\">\r\n <mat-option [value]=\"-1\">\r\n Nieuw\r\n </mat-option>\r\n <ng-container *ngFor=\"let instance of GetProjectViewModel().instances\">\r\n <mat-option [value]=\"instance.id\">\r\n {{ instance.uniqueCode }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-raised-button (click)=\"SaveConfiguration()\" class=\"save-conf-button\">\r\n Save Configuration\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: ["fab-filters-input .mat-step-header{cursor:pointer!important}fab-filters-input .two-columns{display:flex;flex-wrap:wrap}fab-filters-input .mat-step-header[aria-labelledby=disabled_af]{cursor:not-allowed!important;opacity:.6}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon{background-color:#000}fab-filters-input .mat-step-header[aria-labelledby=enabled] .mat-step-icon-selected{background-color:#3f51b5}fab-filters-input .filter-view-header{display:flex}fab-filters-input .filter-view-header-h1{flex:auto;text-transform:capitalize}fab-filters-input .step-name-icon{height:54px;white-space:nowrap;text-align:center;margin:auto 0}fab-filters-input .step-name-completed{height:54px;display:flex;align-items:center}fab-filters-input .step-name-div{width:100%}fab-filters-input .filter-category-icon{height:48px;vertical-align:middle}fab-filters-input .mat-step-text-label{width:100%}fab-filters-input .mat-step-label{width:100%}fab-filters-input .step-name-name{line-height:56px}fab-filters-input .helper{display:inline-block;height:100%;vertical-align:middle}fab-filters-input .filter-view-margin{padding:10px}fab-filters-input .filter-view-header-reset{cursor:pointer}fab-filters-input .mat-vertical-content-container{padding-top:10px}fab-filters-input .mat-vertical-content{padding:0}fab-filters-input .step-name-div{display:flex}fab-filters-input .step-name-name{flex:auto}fab-filters-input .save-conf-div{padding:15px}fab-filters-input .save-conf-div mat-spinner{margin:auto}fab-filters-input .save-conf-button{width:100%}\n"] }]
|
|
21679
21679
|
}], ctorParameters: function () { return [{ type: i3.Router }, { type: FabrikantenService }, { type: TranslateService }, { type: FabrikantenApiClient }, { type: ConfiguratorApiClient }, { type: AuthenticationService }, { type: i0.ChangeDetectorRef }]; } });
|
|
21680
21680
|
|
|
21681
21681
|
class FabBreadcrumbComponent {
|