fabrikantencore 2.10.18 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-bcb-instance/beheer-bcb-instance.component.mjs +120 -0
  2. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-configurator/beheer-configurator.component.mjs +83 -0
  3. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.mjs +9 -4
  4. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.mjs +25 -7
  5. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +3 -3
  6. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +65 -4
  7. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.mjs +25 -6
  8. package/esm2022/src/app/modules/fabrikantencore/components/fab-checkbox/fab-checkbox.component.mjs +5 -3
  9. package/esm2022/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +44 -12
  10. package/esm2022/src/app/modules/fabrikantencore/components/fab-form/fab-form.component.mjs +3 -3
  11. package/esm2022/src/app/modules/fabrikantencore/components/inputs/fab-filter-colour/fab-filter-colour-dialog/fab-filter-colour-dialog.component.mjs +16 -3
  12. package/esm2022/src/app/modules/fabrikantencore/components/inputs/fab-filter-display-value/fab-filter-display-value.component.mjs +4 -3
  13. package/esm2022/src/app/modules/fabrikantencore/components/inputs/fab-filter-label/fab-filter-label.component.mjs +4 -3
  14. package/esm2022/src/app/modules/fabrikantencore/components/inputs/fab-filter-picture-select/fab-filter-picture-select.component.mjs +4 -3
  15. package/esm2022/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +15 -4
  16. package/esm2022/src/app/modules/fabrikantencore/services/authentication.service.mjs +7 -1
  17. package/esm2022/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +13 -1
  18. package/esm2022/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +1047 -152
  19. package/fesm2022/fabrikantencore.mjs +1580 -335
  20. package/fesm2022/fabrikantencore.mjs.map +1 -1
  21. package/package.json +1 -1
  22. package/src/app/modules/fabrikantencore/beheer/components/beheer-bcb-instance/beheer-bcb-instance.component.d.ts +28 -0
  23. package/src/app/modules/fabrikantencore/beheer/components/beheer-configurator/beheer-configurator.component.d.ts +24 -0
  24. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.d.ts +5 -1
  25. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.d.ts +9 -1
  26. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.d.ts +6 -2
  27. package/src/app/modules/fabrikantencore/components/fab-checkbox/fab-checkbox.component.d.ts +2 -1
  28. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +8 -2
  29. package/src/app/modules/fabrikantencore/components/inputs/fab-filter-colour/fab-filter-colour-dialog/fab-filter-colour-dialog.component.d.ts +4 -0
  30. package/src/app/modules/fabrikantencore/components/inputs/fab-filter-display-value/fab-filter-display-value.component.d.ts +2 -1
  31. package/src/app/modules/fabrikantencore/components/inputs/fab-filter-label/fab-filter-label.component.d.ts +2 -1
  32. package/src/app/modules/fabrikantencore/components/inputs/fab-filter-picture-select/fab-filter-picture-select.component.d.ts +2 -1
  33. package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +31 -29
  34. package/src/app/modules/fabrikantencore/services/authentication.service.d.ts +1 -0
  35. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +3 -0
  36. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +255 -27
@@ -0,0 +1,120 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { FormInstanceRequestModel, TranslationCategory, TranslationSubCategory, LoginResponseModel } from '../../../swagger/SwaggerClient';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../swagger/SwaggerClient";
5
+ import * as i2 from "../../../services/translate.service";
6
+ import * as i3 from "../../../services/authentication.service";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/material/legacy-button";
9
+ import * as i6 from "../../../components/fab-loader/fab-loader.component";
10
+ import * as i7 from "../../../components/fab-form/fab-form.component";
11
+ class BeheerBcbInstanceComponent {
12
+ FormApiClient;
13
+ TranslateService;
14
+ authenticationService;
15
+ ChangeDetectorRef;
16
+ FormLoaded = false;
17
+ InstanceLoaded = false;
18
+ BCBProductInstanceViewModel;
19
+ LoadingForm = true;
20
+ LoadingInstance = true;
21
+ FabrikantenFormViewModel;
22
+ set input(value) {
23
+ this.BCBProductInstanceViewModel = value;
24
+ this.InstanceLoaded = true;
25
+ this.LoadInstance();
26
+ }
27
+ get TranslationCategory() {
28
+ return TranslationCategory;
29
+ }
30
+ get TranslationSubCategory() {
31
+ return TranslationSubCategory;
32
+ }
33
+ Loading() {
34
+ return this.LoadingForm || this.LoadingInstance;
35
+ }
36
+ constructor(FormApiClient, TranslateService, authenticationService, ChangeDetectorRef) {
37
+ this.FormApiClient = FormApiClient;
38
+ this.TranslateService = TranslateService;
39
+ this.authenticationService = authenticationService;
40
+ this.ChangeDetectorRef = ChangeDetectorRef;
41
+ this.LoadForm();
42
+ }
43
+ Save() {
44
+ this.LoadingInstance = true;
45
+ this.FabrikantenFormViewModel.customConnectId = this.BCBProductInstanceViewModel.id;
46
+ this.FormApiClient.saveForm(this.FabrikantenFormViewModel).subscribe(() => {
47
+ this.LoadingInstance = false;
48
+ }, (error) => {
49
+ alert('An unexpected error occured');
50
+ this.LoadingInstance = false;
51
+ });
52
+ }
53
+ LoadForm() {
54
+ this.LoadingForm = true;
55
+ this.FormApiClient.getForm().subscribe((model) => {
56
+ this.FabrikantenFormViewModel = model;
57
+ this.LoadingForm = false;
58
+ this.FormLoaded = true;
59
+ this.LoadInstance();
60
+ }, (error) => {
61
+ alert('An unexpected error occured');
62
+ this.LoadingForm = false;
63
+ });
64
+ }
65
+ LoadInstance() {
66
+ if (this.FormLoaded && this.InstanceLoaded) {
67
+ this.LoadingInstance = true;
68
+ var request = new FormInstanceRequestModel();
69
+ request.customConnectId = this.BCBProductInstanceViewModel.id;
70
+ request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
71
+ this.FormApiClient.getFormInstance(request).subscribe((model) => {
72
+ this.FabrikantenFormViewModel.formInstanceId = model.id;
73
+ var instances = model.formInputInstances;
74
+ if (instances != null) {
75
+ for (var i = 0; i < instances.length; i++) {
76
+ var formcats = this.FabrikantenFormViewModel.formCategories;
77
+ if (formcats != null) {
78
+ for (var j = 0; j < formcats.length; j++) {
79
+ var rows = formcats[j].rows;
80
+ if (rows != null) {
81
+ for (var k = 0; k < rows.length; k++) {
82
+ var inputs = rows[k].inputs;
83
+ if (inputs != null) {
84
+ for (var l = 0; l < inputs.length; l++) {
85
+ if (inputs[l].id == instances[i].formInputId) {
86
+ inputs[l].value = instances[i].value;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ this.LoadingInstance = false;
97
+ }, (error) => {
98
+ alert('An unexpected error occured');
99
+ this.LoadingInstance = false;
100
+ });
101
+ }
102
+ }
103
+ DownloadPDF() {
104
+ // CreateInstancePDF(int pLanguageId, int pPDFTemplateId, int pBCBInstanceId)
105
+ var url = "/Download/CreateInstancePDF?pLanguageId=" + this.TranslateService.ActiveLanguage.id;
106
+ url += "&pPDFTemplateId=1";
107
+ url += "&pBCBInstanceId=" + this.BCBProductInstanceViewModel.id;
108
+ window.open(url, "_blank");
109
+ }
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerBcbInstanceComponent, deps: [{ token: i1.FormApiClient }, { token: i2.TranslateService }, { token: i3.AuthenticationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
111
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerBcbInstanceComponent, selector: "app-beheer-bcb-instance", inputs: { input: "input" }, ngImport: i0, template: "<div *ngIf=\"Loading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!Loading()\">\n <div class=\"displayflex\">\n <div class=\"prop prop-name\">Product</div>\n <div class=\"prop prop-value\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, BCBProductInstanceViewModel.productId) }}\n </div>\n </div>\n <div class=\"displayflex\">\n <div class=\"prop prop-name\">Datum</div>\n <div class=\"prop prop-value\">\n {{ BCBProductInstanceViewModel.dateTimeModified }}\n </div>\n </div>\n <br />\n <br />\n <br />\n <div class=\"displayflex\">\n <div style=\"width: 50%;\">\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" colspan=\"2\">Filter</td>\n </tr>\n <ng-container *ngFor=\"let filter of BCBProductInstanceViewModel.filters\">\n <tr *ngIf=\"filter.filterOptions.length > 0\" class=\"info-row\">\n <td>\n {{ TranslateService.GetActiveValue(TranslationCategory.Filter, TranslationSubCategory.Name, filter.filterId) }}\n </td>\n <td>\n <div *ngFor=\"let filteroption of filter.filterOptions\" class=\"value-cell\">\n {{ TranslateService.GetActiveValue(TranslationCategory.FilterOption, TranslationSubCategory.Name, filteroption.filterOptionId) }}\n </div>\n </td>\n </tr>\n </ng-container>\n </table>\n <br />\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" colspan=\"2\">Range Input</td>\n </tr>\n <ng-container *ngFor=\"let rangeinput of BCBProductInstanceViewModel.rangeInputs\">\n <tr *ngIf=\"rangeinput.value != null\" class=\"info-row\">\n <td>\n {{ TranslateService.GetActiveValue(TranslationCategory.RangeInput, TranslationSubCategory.Name, rangeinput.rangeInputId) }}\n </td>\n <td class=\"value-cell\">\n {{ rangeinput.value }}\n </td>\n </tr>\n </ng-container>\n </table>\n </div>\n\n <div style=\"width: 50%;\">\n <app-fab-form [form]=\"FabrikantenFormViewModel\"></app-fab-form>\n <div class=\"button-row\">\n <button mat-raised-button (click)=\"Save()\">\n Save\n </button>\n </div>\n </div>\n </div>\n <br />\n <br />\n <button mat-raised-button (click)=\"DownloadPDF()\">\n Download PDF\n </button>\n <br />\n</div>\n", styles: [".displayflex{display:flex}.prop{font-size:20px;padding:5px;border-bottom:1px solid #000}.prop-name{width:200px}.prop-value{width:calc(100% - 220px)}.border-bottom{border-bottom:1px solid #000;font-size:20px;padding:4px}.form-button-row{display:none}.value-cell{text-align:right;padding-right:5px}.info-row:hover{background-color:#efefef}.button-row{padding-top:3px;text-align:right}\n"], dependencies: [{ 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.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i7.FabFormComponent, selector: "app-fab-form", inputs: ["form"], outputs: ["completed"] }], encapsulation: i0.ViewEncapsulation.None });
112
+ }
113
+ export { BeheerBcbInstanceComponent };
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerBcbInstanceComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ selector: 'app-beheer-bcb-instance', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"Loading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!Loading()\">\n <div class=\"displayflex\">\n <div class=\"prop prop-name\">Product</div>\n <div class=\"prop prop-value\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, BCBProductInstanceViewModel.productId) }}\n </div>\n </div>\n <div class=\"displayflex\">\n <div class=\"prop prop-name\">Datum</div>\n <div class=\"prop prop-value\">\n {{ BCBProductInstanceViewModel.dateTimeModified }}\n </div>\n </div>\n <br />\n <br />\n <br />\n <div class=\"displayflex\">\n <div style=\"width: 50%;\">\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" colspan=\"2\">Filter</td>\n </tr>\n <ng-container *ngFor=\"let filter of BCBProductInstanceViewModel.filters\">\n <tr *ngIf=\"filter.filterOptions.length > 0\" class=\"info-row\">\n <td>\n {{ TranslateService.GetActiveValue(TranslationCategory.Filter, TranslationSubCategory.Name, filter.filterId) }}\n </td>\n <td>\n <div *ngFor=\"let filteroption of filter.filterOptions\" class=\"value-cell\">\n {{ TranslateService.GetActiveValue(TranslationCategory.FilterOption, TranslationSubCategory.Name, filteroption.filterOptionId) }}\n </div>\n </td>\n </tr>\n </ng-container>\n </table>\n <br />\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" colspan=\"2\">Range Input</td>\n </tr>\n <ng-container *ngFor=\"let rangeinput of BCBProductInstanceViewModel.rangeInputs\">\n <tr *ngIf=\"rangeinput.value != null\" class=\"info-row\">\n <td>\n {{ TranslateService.GetActiveValue(TranslationCategory.RangeInput, TranslationSubCategory.Name, rangeinput.rangeInputId) }}\n </td>\n <td class=\"value-cell\">\n {{ rangeinput.value }}\n </td>\n </tr>\n </ng-container>\n </table>\n </div>\n\n <div style=\"width: 50%;\">\n <app-fab-form [form]=\"FabrikantenFormViewModel\"></app-fab-form>\n <div class=\"button-row\">\n <button mat-raised-button (click)=\"Save()\">\n Save\n </button>\n </div>\n </div>\n </div>\n <br />\n <br />\n <button mat-raised-button (click)=\"DownloadPDF()\">\n Download PDF\n </button>\n <br />\n</div>\n", styles: [".displayflex{display:flex}.prop{font-size:20px;padding:5px;border-bottom:1px solid #000}.prop-name{width:200px}.prop-value{width:calc(100% - 220px)}.border-bottom{border-bottom:1px solid #000;font-size:20px;padding:4px}.form-button-row{display:none}.value-cell{text-align:right;padding-right:5px}.info-row:hover{background-color:#efefef}.button-row{padding-top:3px;text-align:right}\n"] }]
117
+ }], ctorParameters: function () { return [{ type: i1.FormApiClient }, { type: i2.TranslateService }, { type: i3.AuthenticationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
118
+ type: Input
119
+ }] } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1iY2ItaW5zdGFuY2UvYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1iY2ItaW5zdGFuY2UvYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0YsT0FBTyxFQUFFLHdCQUF3QixFQUErRixtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFFeE8sTUFNYSwwQkFBMEI7SUE4QmpCO0lBQ1g7SUFDQTtJQUNBO0lBL0JGLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUVoQywyQkFBMkIsQ0FBOEI7SUFDekQsV0FBVyxHQUFZLElBQUksQ0FBQztJQUM1QixlQUFlLEdBQVksSUFBSSxDQUFDO0lBRWhDLHdCQUF3QixDQUEyQjtJQUUxRCxJQUFhLEtBQUssQ0FBQyxLQUFrQztRQUNuRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUFvQixhQUE0QixFQUN2QyxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLGlCQUFvQztRQUh6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN2QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUUzQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUM7UUFFcEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUU7WUFDekUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUV2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFFckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUU1QixJQUFJLE9BQU8sR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFFN0MsT0FBTyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO1lBQzlELE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRWpHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQTRCLEVBQUUsRUFBRTtnQkFFckYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUV4RCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUM7Z0JBRXpDLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtvQkFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBRXpDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUM7d0JBRTVELElBQUksUUFBUSxJQUFJLElBQUksRUFBRTs0QkFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBRXhDLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0NBRTVCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtvQ0FDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0NBRXBDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7d0NBRTVCLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTs0Q0FFbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0RBQ3RDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO29EQUM1QyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7aURBQ3RDOzZDQUNGO3lDQUVGO3FDQUNGO2lDQUNGOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQy9CLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO2dCQUNyQixLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFFckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLDZFQUE2RTtRQUM3RSxJQUFJLEdBQUcsR0FBRywwQ0FBMEMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUMvRixHQUFHLElBQUksbUJBQW1CLENBQUM7UUFDM0IsR0FBRyxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUM7UUFFaEUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQzt1R0FsSVUsMEJBQTBCOzJGQUExQiwwQkFBMEIsMkZDWHZDLDIrRUF5RUE7O1NEOURhLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHlCQUF5QixpQkFHcEIsaUJBQWlCLENBQUMsSUFBSTt1TUFheEIsS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUluc3RhbmNlUmVxdWVzdE1vZGVsLCBGb3JtSW5zdGFuY2VWaWV3TW9kZWwsIEZhYnJpa2FudGVuRm9ybVZpZXdNb2RlbCwgQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLCBGb3JtQXBpQ2xpZW50LCBUcmFuc2xhdGlvbkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LCBMb2dpblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItYmNiLWluc3RhbmNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1iY2ItaW5zdGFuY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItYmNiLWluc3RhbmNlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQmVoZWVyQmNiSW5zdGFuY2VDb21wb25lbnQge1xuXG4gIHB1YmxpYyBGb3JtTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBJbnN0YW5jZUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWw6IEJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbDtcbiAgcHVibGljIExvYWRpbmdGb3JtOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIExvYWRpbmdJbnN0YW5jZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIEZhYnJpa2FudGVuRm9ybVZpZXdNb2RlbDogRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsO1xuXG4gIEBJbnB1dCgpIHNldCBpbnB1dCh2YWx1ZTogQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsKSB7XG4gICAgdGhpcy5CQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwgPSB2YWx1ZTtcbiAgICB0aGlzLkluc3RhbmNlTG9hZGVkID0gdHJ1ZTtcblxuICAgIHRoaXMuTG9hZEluc3RhbmNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cblxuICBwdWJsaWMgTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5Mb2FkaW5nRm9ybSB8fCB0aGlzLkxvYWRpbmdJbnN0YW5jZTtcclxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBGb3JtQXBpQ2xpZW50OiBGb3JtQXBpQ2xpZW50LFxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG5cbiAgICB0aGlzLkxvYWRGb3JtKCk7XHJcbiAgfVxuXG4gIHB1YmxpYyBTYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuTG9hZGluZ0luc3RhbmNlID0gdHJ1ZTtcblxuICAgIHRoaXMuRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsLmN1c3RvbUNvbm5lY3RJZCA9IHRoaXMuQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLmlkO1xuICAgIFxuICAgIHRoaXMuRm9ybUFwaUNsaWVudC5zYXZlRm9ybSh0aGlzLkZhYnJpa2FudGVuRm9ybVZpZXdNb2RlbCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5Mb2FkaW5nSW5zdGFuY2UgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nSW5zdGFuY2UgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgTG9hZEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5Mb2FkaW5nRm9ybSA9IHRydWU7XG5cbiAgICB0aGlzLkZvcm1BcGlDbGllbnQuZ2V0Rm9ybSgpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuRm9ybVZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuRm9ybVZpZXdNb2RlbCA9IG1vZGVsO1xyXG4gICAgICB0aGlzLkxvYWRpbmdGb3JtID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuRm9ybUxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLkxvYWRJbnN0YW5jZSgpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmdGb3JtID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XG5cbiAgcHVibGljIExvYWRJbnN0YW5jZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5Gb3JtTG9hZGVkICYmIHRoaXMuSW5zdGFuY2VMb2FkZWQpIHtcbiAgICAgIHRoaXMuTG9hZGluZ0luc3RhbmNlID0gdHJ1ZTtcblxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgRm9ybUluc3RhbmNlUmVxdWVzdE1vZGVsKCk7XG5cbiAgICAgIHJlcXVlc3QuY3VzdG9tQ29ubmVjdElkID0gdGhpcy5CQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwuaWQ7XG4gICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XG5cbiAgICAgIHRoaXMuRm9ybUFwaUNsaWVudC5nZXRGb3JtSW5zdGFuY2UocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogRm9ybUluc3RhbmNlVmlld01vZGVsKSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsLmZvcm1JbnN0YW5jZUlkID0gbW9kZWwuaWQ7XHJcblxyXG4gICAgICAgIHZhciBpbnN0YW5jZXMgPSBtb2RlbC5mb3JtSW5wdXRJbnN0YW5jZXM7XHJcblxyXG4gICAgICAgIGlmIChpbnN0YW5jZXMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnN0YW5jZXMubGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgICAgIHZhciBmb3JtY2F0cyA9IHRoaXMuRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsLmZvcm1DYXRlZ29yaWVzO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZvcm1jYXRzICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGZvcm1jYXRzLmxlbmd0aDsgaisrKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHJvd3MgPSBmb3JtY2F0c1tqXS5yb3dzO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyb3dzICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCByb3dzLmxlbmd0aDsgaysrKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dHMgPSByb3dzW2tdLmlucHV0cztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0cyAhPSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbCA9IDA7IGwgPCBpbnB1dHMubGVuZ3RoOyBsKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0c1tsXS5pZCA9PSBpbnN0YW5jZXNbaV0uZm9ybUlucHV0SWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHNbbF0udmFsdWUgPSBpbnN0YW5jZXNbaV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdJbnN0YW5jZSA9IGZhbHNlO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdJbnN0YW5jZSA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIERvd25sb2FkUERGKCk6IHZvaWQge1xuICAgIC8vIENyZWF0ZUluc3RhbmNlUERGKGludCBwTGFuZ3VhZ2VJZCwgaW50IHBQREZUZW1wbGF0ZUlkLCBpbnQgcEJDQkluc3RhbmNlSWQpXG4gICAgdmFyIHVybCA9IFwiL0Rvd25sb2FkL0NyZWF0ZUluc3RhbmNlUERGP3BMYW5ndWFnZUlkPVwiICsgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkFjdGl2ZUxhbmd1YWdlLmlkO1xyXG4gICAgdXJsICs9IFwiJnBQREZUZW1wbGF0ZUlkPTFcIjtcclxuICAgIHVybCArPSBcIiZwQkNCSW5zdGFuY2VJZD1cIiArIHRoaXMuQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLmlkO1xyXG5cclxuICAgIHdpbmRvdy5vcGVuKHVybCwgXCJfYmxhbmtcIik7XHJcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIkxvYWRpbmcoKVwiPlxuICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiIUxvYWRpbmcoKVwiPlxuICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvcCBwcm9wLW5hbWVcIj5Qcm9kdWN0PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByb3AgcHJvcC12YWx1ZVwiPlxuICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LlByb2R1Y3QsIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLnByb2R1Y3RJZCkgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9wIHByb3AtbmFtZVwiPkRhdHVtPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByb3AgcHJvcC12YWx1ZVwiPlxuICAgICAge3sgQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLmRhdGVUaW1lTW9kaWZpZWQgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxiciAvPlxuICA8YnIgLz5cbiAgPGJyIC8+XG4gIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleFwiPlxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogNTAlO1wiPlxuICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib3JkZXItYm90dG9tXCIgY29sc3Bhbj1cIjJcIj5GaWx0ZXI8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLmZpbHRlcnNcIj5cbiAgICAgICAgICA8dHIgKm5nSWY9XCJmaWx0ZXIuZmlsdGVyT3B0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJpbmZvLXJvd1wiPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuRmlsdGVyLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIGZpbHRlci5maWx0ZXJJZCkgfX1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbHRlcm9wdGlvbiBvZiBmaWx0ZXIuZmlsdGVyT3B0aW9uc1wiIGNsYXNzPVwidmFsdWUtY2VsbFwiPlxuICAgICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5GaWx0ZXJPcHRpb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgZmlsdGVyb3B0aW9uLmZpbHRlck9wdGlvbklkKSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RhYmxlPlxuICAgICAgPGJyIC8+XG4gICAgICA8dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvcmRlci1ib3R0b21cIiBjb2xzcGFuPVwiMlwiPlJhbmdlIElucHV0PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmFuZ2VpbnB1dCBvZiBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwucmFuZ2VJbnB1dHNcIj5cbiAgICAgICAgICA8dHIgKm5nSWY9XCJyYW5nZWlucHV0LnZhbHVlICE9IG51bGxcIiBjbGFzcz1cImluZm8tcm93XCI+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5SYW5nZUlucHV0LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIHJhbmdlaW5wdXQucmFuZ2VJbnB1dElkKSB9fVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlLWNlbGxcIj5cbiAgICAgICAgICAgICAge3sgcmFuZ2VpbnB1dC52YWx1ZSB9fVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDUwJTtcIj5cbiAgICAgIDxhcHAtZmFiLWZvcm0gW2Zvcm1dPVwiRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsXCI+PC9hcHAtZmFiLWZvcm0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXJvd1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTYXZlKClcIj5cbiAgICAgICAgICBTYXZlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YnIgLz5cbiAgPGJyIC8+XG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkRvd25sb2FkUERGKClcIj5cbiAgICBEb3dubG9hZCBQREZcbiAgPC9idXR0b24+XG4gIDxiciAvPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { Component } from '@angular/core';
2
+ import { DeleteBCBProductInstanceRequestModel, GetConfigurationsRequestModel, LoginResponseModel, TranslationCategory, TranslationSubCategory } from '../../../swagger/SwaggerClient';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../swagger/SwaggerClient";
5
+ import * as i2 from "../../../services/translate.service";
6
+ import * as i3 from "../../../services/authentication.service";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/material/legacy-button";
9
+ import * as i6 from "@angular/material/legacy-card";
10
+ import * as i7 from "../beheer-nav/beheer-nav.component";
11
+ import * as i8 from "../../../components/fab-loader/fab-loader.component";
12
+ import * as i9 from "../beheer-bcb-instance/beheer-bcb-instance.component";
13
+ class BeheerConfiguratorComponent {
14
+ ConfiguratorApiClient;
15
+ TranslateService;
16
+ authenticationService;
17
+ ChangeDetectorRef;
18
+ Loading = true;
19
+ ConfigurationsViewModel;
20
+ BCBProductInstanceViewModel = null;
21
+ get TranslationCategory() {
22
+ return TranslationCategory;
23
+ }
24
+ get TranslationSubCategory() {
25
+ return TranslationSubCategory;
26
+ }
27
+ constructor(ConfiguratorApiClient, TranslateService, authenticationService, ChangeDetectorRef) {
28
+ this.ConfiguratorApiClient = ConfiguratorApiClient;
29
+ this.TranslateService = TranslateService;
30
+ this.authenticationService = authenticationService;
31
+ this.ChangeDetectorRef = ChangeDetectorRef;
32
+ }
33
+ ngOnInit() {
34
+ this.TranslateService.LoadTranslations(this.ChangeDetectorRef, null, undefined);
35
+ this.LoadConfigurations();
36
+ }
37
+ Select(instance) {
38
+ this.BCBProductInstanceViewModel = instance;
39
+ }
40
+ Delete(instance) {
41
+ if (confirm("Weet je het zeker?")) {
42
+ this.Loading = true;
43
+ var request = new DeleteBCBProductInstanceRequestModel();
44
+ request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
45
+ request.bcbInstanceId = instance.id;
46
+ this.ConfiguratorApiClient.deleteInstance(request).subscribe(() => {
47
+ this.LoadConfigurations();
48
+ }, (error) => {
49
+ alert('An unexpected error occured');
50
+ this.Loading = false;
51
+ });
52
+ }
53
+ }
54
+ IsLoading() {
55
+ if (this.Loading) {
56
+ return true;
57
+ }
58
+ if (this.TranslateService.Loading) {
59
+ return true;
60
+ }
61
+ return false;
62
+ }
63
+ LoadConfigurations() {
64
+ this.Loading = true;
65
+ var request = new GetConfigurationsRequestModel();
66
+ request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
67
+ this.ConfiguratorApiClient.getConfigurations(request).subscribe((model) => {
68
+ this.ConfigurationsViewModel = model;
69
+ this.Loading = false;
70
+ }, (error) => {
71
+ alert('An unexpected error occured');
72
+ this.Loading = false;
73
+ });
74
+ }
75
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerConfiguratorComponent, deps: [{ token: i1.ConfiguratorApiClient }, { token: i2.TranslateService }, { token: i3.AuthenticationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerConfiguratorComponent, selector: "app-beheer-configurator", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!IsLoading()\" class=\"main-container\">\n <mat-card *ngIf=\"BCBProductInstanceViewModel == null\">\n <mat-card-content>\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" style=\"min-width: 20px;\"><b>Id</b></td>\n <td class=\"border-bottom\"><b>Product</b></td>\n <td class=\"border-bottom\"></td>\n <td></td>\n </tr>\n <tr *ngFor=\"let instance of ConfigurationsViewModel.instances\">\n <td class=\"selectable\" (click)=\"Select(instance)\">{{ instance.id }}</td>\n <td class=\"selectable\" (click)=\"Select(instance)\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, instance.productId) }}\n </td>\n <td class=\"selectable\" (click)=\"Select(instance)\">\n {{ instance.dateTimeModified }}\n </td>\n <td style=\"width: 150px;\">\n <button mat-raised-button (click)=\"Delete(instance)\" style=\"width: 100%;\">\n Verwijderen\n </button>\n </td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"BCBProductInstanceViewModel != null\">\n <mat-card-content>\n <app-beheer-bcb-instance [input]=\"BCBProductInstanceViewModel\"></app-beheer-bcb-instance>\n <br />\n <br />\n <br />\n <div>\n <button mat-raised-button (click)=\"Select(null)\">\n Terug\n </button>\n </div>\n\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".main-container{padding:10px}.border-bottom{border-bottom:1px solid #000}.selectable{cursor:pointer}.selectable:hover{background-color:#f0f0f0}.displayflex{display:flex}\n"], dependencies: [{ 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.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i7.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i9.BeheerBcbInstanceComponent, selector: "app-beheer-bcb-instance", inputs: ["input"] }] });
77
+ }
78
+ export { BeheerConfiguratorComponent };
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerConfiguratorComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'app-beheer-configurator', template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!IsLoading()\" class=\"main-container\">\n <mat-card *ngIf=\"BCBProductInstanceViewModel == null\">\n <mat-card-content>\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" style=\"min-width: 20px;\"><b>Id</b></td>\n <td class=\"border-bottom\"><b>Product</b></td>\n <td class=\"border-bottom\"></td>\n <td></td>\n </tr>\n <tr *ngFor=\"let instance of ConfigurationsViewModel.instances\">\n <td class=\"selectable\" (click)=\"Select(instance)\">{{ instance.id }}</td>\n <td class=\"selectable\" (click)=\"Select(instance)\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, instance.productId) }}\n </td>\n <td class=\"selectable\" (click)=\"Select(instance)\">\n {{ instance.dateTimeModified }}\n </td>\n <td style=\"width: 150px;\">\n <button mat-raised-button (click)=\"Delete(instance)\" style=\"width: 100%;\">\n Verwijderen\n </button>\n </td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"BCBProductInstanceViewModel != null\">\n <mat-card-content>\n <app-beheer-bcb-instance [input]=\"BCBProductInstanceViewModel\"></app-beheer-bcb-instance>\n <br />\n <br />\n <br />\n <div>\n <button mat-raised-button (click)=\"Select(null)\">\n Terug\n </button>\n </div>\n\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".main-container{padding:10px}.border-bottom{border-bottom:1px solid #000}.selectable{cursor:pointer}.selectable:hover{background-color:#f0f0f0}.displayflex{display:flex}\n"] }]
82
+ }], ctorParameters: function () { return [{ type: i1.ConfiguratorApiClient }, { type: i2.TranslateService }, { type: i3.AuthenticationService }, { type: i0.ChangeDetectorRef }]; } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1jb25maWd1cmF0b3IvYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1jb25maWd1cmF0b3IvYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLEVBQTRCLG9DQUFvQyxFQUErRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7OztBQUU3UixNQUthLDJCQUEyQjtJQWVsQjtJQUNYO0lBQ0E7SUFDQTtJQWpCRixPQUFPLEdBQVksSUFBSSxDQUFDO0lBRXhCLHVCQUF1QixDQUEwQjtJQUVqRCwyQkFBMkIsR0FBdUMsSUFBSSxDQUFDO0lBRTlFLElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQW9CLHFCQUE0QyxFQUN2RCxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLGlCQUFvQztRQUh6QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQ3ZELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTdDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFxQztRQUNqRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBcUM7UUFDakQsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVwQixJQUFJLE9BQU8sR0FBRyxJQUFJLG9DQUFvQyxFQUFFLENBQUM7WUFFekQsT0FBTyxDQUFDLGtCQUFrQixHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDakcsT0FBTyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBRXBDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUVyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksT0FBTyxHQUFHLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUVsRCxPQUFPLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVqRyxJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFO1lBQ2pHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFFckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTdFVSwyQkFBMkI7MkZBQTNCLDJCQUEyQiwrRENWeEMscXFEQWlEQTs7U0R2Q2EsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsLCBEZWxldGVCQ0JQcm9kdWN0SW5zdGFuY2VSZXF1ZXN0TW9kZWwsIEJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbCwgQ29uZmlndXJhdG9yQXBpQ2xpZW50LCBDb25maWd1cmF0aW9uc1ZpZXdNb2RlbCwgR2V0Q29uZmlndXJhdGlvbnNSZXF1ZXN0TW9kZWwsIExvZ2luUmVzcG9uc2VNb2RlbCwgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItY29uZmlndXJhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1jb25maWd1cmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItY29uZmlndXJhdG9yLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmVoZWVyQ29uZmlndXJhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHB1YmxpYyBDb25maWd1cmF0aW9uc1ZpZXdNb2RlbDogQ29uZmlndXJhdGlvbnNWaWV3TW9kZWw7XG5cbiAgcHVibGljIEJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbDogQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBUcmFuc2xhdGlvbkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25TdWJDYXRlZ29yeTtcclxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBDb25maWd1cmF0b3JBcGlDbGllbnQ6IENvbmZpZ3VyYXRvckFwaUNsaWVudCxcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuXHJcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxvYWRUcmFuc2xhdGlvbnModGhpcy5DaGFuZ2VEZXRlY3RvclJlZiwgbnVsbCwgdW5kZWZpbmVkKTtcclxuICAgIHRoaXMuTG9hZENvbmZpZ3VyYXRpb25zKCk7XHJcbiAgfVxuXG4gIHB1YmxpYyBTZWxlY3QoaW5zdGFuY2U6IEJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsID0gaW5zdGFuY2U7XG4gIH1cblxuICBwdWJsaWMgRGVsZXRlKGluc3RhbmNlOiBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xuICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IERlbGV0ZUJDQlByb2R1Y3RJbnN0YW5jZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5sb2dpblJlc3BvbnNlTW9kZWwgPSBuZXcgTG9naW5SZXNwb25zZU1vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpO1xyXG4gICAgICByZXF1ZXN0LmJjYkluc3RhbmNlSWQgPSBpbnN0YW5jZS5pZDtcclxuXHJcbiAgICAgIHRoaXMuQ29uZmlndXJhdG9yQXBpQ2xpZW50LmRlbGV0ZUluc3RhbmNlKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Mb2FkQ29uZmlndXJhdGlvbnMoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cblxuICBwdWJsaWMgSXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLkxvYWRpbmcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5Mb2FkaW5nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XG5cbiAgcHJpdmF0ZSBMb2FkQ29uZmlndXJhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBHZXRDb25maWd1cmF0aW9uc1JlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICB0aGlzLkNvbmZpZ3VyYXRvckFwaUNsaWVudC5nZXRDb25maWd1cmF0aW9ucyhyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBDb25maWd1cmF0aW9uc1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLkNvbmZpZ3VyYXRpb25zVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cbn1cbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxuXG48ZGl2ICpuZ0lmPVwiSXNMb2FkaW5nKClcIj5cbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFJc0xvYWRpbmcoKVwiIGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cbiAgPG1hdC1jYXJkICpuZ0lmPVwiQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsID09IG51bGxcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDx0YWJsZSBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9yZGVyLWJvdHRvbVwiIHN0eWxlPVwibWluLXdpZHRoOiAyMHB4O1wiPjxiPklkPC9iPjwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9yZGVyLWJvdHRvbVwiPjxiPlByb2R1Y3Q8L2I+PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib3JkZXItYm90dG9tXCI+PC90ZD5cbiAgICAgICAgICA8dGQ+PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpbnN0YW5jZSBvZiBDb25maWd1cmF0aW9uc1ZpZXdNb2RlbC5pbnN0YW5jZXNcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJzZWxlY3RhYmxlXCIgKGNsaWNrKT1cIlNlbGVjdChpbnN0YW5jZSlcIj57eyBpbnN0YW5jZS5pZCB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwic2VsZWN0YWJsZVwiIChjbGljayk9XCJTZWxlY3QoaW5zdGFuY2UpXCI+XG4gICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuUHJvZHVjdCwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5OYW1lLCBpbnN0YW5jZS5wcm9kdWN0SWQpIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJzZWxlY3RhYmxlXCIgKGNsaWNrKT1cIlNlbGVjdChpbnN0YW5jZSlcIj5cbiAgICAgICAgICAgIHt7IGluc3RhbmNlLmRhdGVUaW1lTW9kaWZpZWQgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAxNTBweDtcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkRlbGV0ZShpbnN0YW5jZSlcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgICBWZXJ3aWpkZXJlblxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxtYXQtY2FyZCAqbmdJZj1cIkJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbCAhPSBudWxsXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8YXBwLWJlaGVlci1iY2ItaW5zdGFuY2UgW2lucHV0XT1cIkJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbFwiPjwvYXBwLWJlaGVlci1iY2ItaW5zdGFuY2U+XG4gICAgICA8YnIgLz5cbiAgICAgIDxiciAvPlxuICAgICAgPGJyIC8+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTZWxlY3QobnVsbClcIj5cbiAgICAgICAgICBUZXJ1Z1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuPC9kaXY+XG4iXX0=
@@ -33,17 +33,22 @@ class BeheerInlogComponent {
33
33
  this.authenticationService.login(this.Username, this.Password, this, this.Success, this.Failure);
34
34
  }
35
35
  Success(beheer) {
36
- beheer.router.navigateByUrl('/beheer');
36
+ if (beheer.authenticationService.ConfiguratorRights()) {
37
+ beheer.router.navigateByUrl('/beheer/configurator');
38
+ }
39
+ else {
40
+ beheer.router.navigateByUrl('/beheer');
41
+ }
37
42
  }
38
43
  Failure(beheer, message) {
39
44
  beheer.Message = message;
40
45
  }
41
46
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerInlogComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.Router }, { token: i3.SecurityApiClient }], target: i0.ɵɵFactoryTarget.Component });
42
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerInlogComponent, selector: "app-beheer-inlog", ngImport: i0, template: "\r\n<div class=\"container\">\r\n <div class=\"inlogdialog\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Gebruikersnaam</mat-label>\r\n <input type=\"text\" [(ngModel)]=\"Username\" matInput value=\"\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Wachtwoord</mat-label>\r\n <input type=\"password\" [(ngModel)]=\"Password\" matInput value=\"\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"button-bar\">\r\n <div class=\"error-box\">\r\n {{ Message }}\r\n </div>\r\n <button mat-raised-button (click)=\"Login()\" class=\"login-button\">\r\n <span *ngIf=\"!authenticationService.LoadingLogin\">\r\n Login\r\n </span>\r\n <span *ngIf=\"authenticationService.LoadingLogin\">\r\n <app-fab-loader class=\"loader\"></app-fab-loader>\r\n </span>\r\n </button>\r\n </div>\r\n <div>\r\n IP Address: {{ LoginIPResponseModel?.ipAddress }}\r\n </div>\r\n <div>\r\n FabrikantenCore: {{ LoginIPResponseModel?.fabrikantenCoreVersion }}\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n \r\n </div>\r\n</div>\r\n", styles: ["app-beheer-inlog .container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}app-beheer-inlog .error-box{font-size:12px;text-align:center;color:red;padding:3px}app-beheer-inlog .login-button{width:70px}app-beheer-inlog .loader{height:20px;top:6px;position:relative}app-beheer-inlog .inlogdialog{width:300px}app-beheer-inlog .button-bar{text-align:right}app-beheer-inlog mat-form-field{width:100%}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.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: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.FabLoaderComponent, selector: "app-fab-loader" }], encapsulation: i0.ViewEncapsulation.None });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerInlogComponent, selector: "app-beheer-inlog", ngImport: i0, template: "\r\n<div class=\"container\">\r\n <div class=\"inlogdialog\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Gebruikersnaam</mat-label>\r\n <input type=\"text\" [(ngModel)]=\"Username\" matInput value=\"\" (keyup.enter)=\"Login()\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Wachtwoord</mat-label>\r\n <input type=\"password\" [(ngModel)]=\"Password\" matInput value=\"\" (keyup.enter)=\"Login()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"button-bar\">\r\n <span *ngIf=\"authenticationService.LoadingLogin\">\r\n <app-fab-loader class=\"loader\"></app-fab-loader>\r\n <br />\r\n <br />\r\n <br />\r\n </span>\r\n\r\n <ng-container *ngIf=\"!authenticationService.LoadingLogin\">\r\n <div class=\"error-box\">\r\n {{ Message }}\r\n </div>\r\n <button mat-raised-button (click)=\"Login()\" class=\"login-button\">\r\n <span >\r\n Login\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div>\r\n IP Address: {{ LoginIPResponseModel?.ipAddress }}\r\n </div>\r\n <div>\r\n FabrikantenCore: {{ LoginIPResponseModel?.fabrikantenCoreVersion }}\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n \r\n </div>\r\n</div>\r\n", styles: ["app-beheer-inlog .container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}app-beheer-inlog .error-box{font-size:12px;text-align:center;color:red;padding:3px}app-beheer-inlog .login-button{width:70px}app-beheer-inlog .loader{height:20px;top:6px;position:relative}app-beheer-inlog .inlogdialog{width:300px}app-beheer-inlog .button-bar{text-align:right}app-beheer-inlog mat-form-field{width:100%}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.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: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.FabLoaderComponent, selector: "app-fab-loader" }], encapsulation: i0.ViewEncapsulation.None });
43
48
  }
44
49
  export { BeheerInlogComponent };
45
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerInlogComponent, decorators: [{
46
51
  type: Component,
47
- args: [{ selector: 'app-beheer-inlog', encapsulation: ViewEncapsulation.None, template: "\r\n<div class=\"container\">\r\n <div class=\"inlogdialog\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Gebruikersnaam</mat-label>\r\n <input type=\"text\" [(ngModel)]=\"Username\" matInput value=\"\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Wachtwoord</mat-label>\r\n <input type=\"password\" [(ngModel)]=\"Password\" matInput value=\"\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"button-bar\">\r\n <div class=\"error-box\">\r\n {{ Message }}\r\n </div>\r\n <button mat-raised-button (click)=\"Login()\" class=\"login-button\">\r\n <span *ngIf=\"!authenticationService.LoadingLogin\">\r\n Login\r\n </span>\r\n <span *ngIf=\"authenticationService.LoadingLogin\">\r\n <app-fab-loader class=\"loader\"></app-fab-loader>\r\n </span>\r\n </button>\r\n </div>\r\n <div>\r\n IP Address: {{ LoginIPResponseModel?.ipAddress }}\r\n </div>\r\n <div>\r\n FabrikantenCore: {{ LoginIPResponseModel?.fabrikantenCoreVersion }}\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n \r\n </div>\r\n</div>\r\n", styles: ["app-beheer-inlog .container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}app-beheer-inlog .error-box{font-size:12px;text-align:center;color:red;padding:3px}app-beheer-inlog .login-button{width:70px}app-beheer-inlog .loader{height:20px;top:6px;position:relative}app-beheer-inlog .inlogdialog{width:300px}app-beheer-inlog .button-bar{text-align:right}app-beheer-inlog mat-form-field{width:100%}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}\n"] }]
52
+ args: [{ selector: 'app-beheer-inlog', encapsulation: ViewEncapsulation.None, template: "\r\n<div class=\"container\">\r\n <div class=\"inlogdialog\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Gebruikersnaam</mat-label>\r\n <input type=\"text\" [(ngModel)]=\"Username\" matInput value=\"\" (keyup.enter)=\"Login()\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Wachtwoord</mat-label>\r\n <input type=\"password\" [(ngModel)]=\"Password\" matInput value=\"\" (keyup.enter)=\"Login()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"button-bar\">\r\n <span *ngIf=\"authenticationService.LoadingLogin\">\r\n <app-fab-loader class=\"loader\"></app-fab-loader>\r\n <br />\r\n <br />\r\n <br />\r\n </span>\r\n\r\n <ng-container *ngIf=\"!authenticationService.LoadingLogin\">\r\n <div class=\"error-box\">\r\n {{ Message }}\r\n </div>\r\n <button mat-raised-button (click)=\"Login()\" class=\"login-button\">\r\n <span >\r\n Login\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div>\r\n IP Address: {{ LoginIPResponseModel?.ipAddress }}\r\n </div>\r\n <div>\r\n FabrikantenCore: {{ LoginIPResponseModel?.fabrikantenCoreVersion }}\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n \r\n </div>\r\n</div>\r\n", styles: ["app-beheer-inlog .container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}app-beheer-inlog .error-box{font-size:12px;text-align:center;color:red;padding:3px}app-beheer-inlog .login-button{width:70px}app-beheer-inlog .loader{height:20px;top:6px;position:relative}app-beheer-inlog .inlogdialog{width:300px}app-beheer-inlog .button-bar{text-align:right}app-beheer-inlog mat-form-field{width:100%}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}\n"] }]
48
53
  }], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.Router }, { type: i3.SecurityApiClient }]; } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWlubG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWlubG9nL2JlaGVlci1pbmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1pbmxvZy9iZWhlZXItaW5sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBS3JFLE1BTWEsb0JBQW9CO0lBU1o7SUFBcUQ7SUFBd0I7SUFQekYsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRXRCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFFckIsb0JBQW9CLENBQXVCO0lBRWxELFlBQW1CLHFCQUE0QyxFQUFTLE1BQWMsRUFBVSxpQkFBb0M7UUFBakgsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRWpJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQTJCLEVBQUUsRUFBRTtZQUMxRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQTRCO1FBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBNEIsRUFBRSxPQUFlO1FBQzFELE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7dUdBOUJVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLHdEQ1hqQywwNUNBMENBOztTRC9CYSxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBMb2dpbklQUmVzcG9uc2VNb2RlbCwgU2VjdXJpdHlBcGlDbGllbnQgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItaW5sb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItaW5sb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1pbmxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlcklubG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIFVzZXJuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBQYXNzd29yZDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIE1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBMb2dpbklQUmVzcG9uc2VNb2RlbDogTG9naW5JUFJlc3BvbnNlTW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHNlY3VyaXR5QXBpQ2xpZW50OiBTZWN1cml0eUFwaUNsaWVudCkge1xyXG5cclxuICAgICB0aGlzLnNlY3VyaXR5QXBpQ2xpZW50LmdldExvZ2luSVBSZXNwb25zZU1vZGVsKCkuc3Vic2NyaWJlKChtb2RlbDogTG9naW5JUFJlc3BvbnNlTW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5Mb2dpbklQUmVzcG9uc2VNb2RlbCA9IG1vZGVsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dpbigpOiB2b2lkIHtcclxuICAgIHRoaXMuTWVzc2FnZSA9IFwiXCI7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dpbih0aGlzLlVzZXJuYW1lLCB0aGlzLlBhc3N3b3JkLCB0aGlzLCB0aGlzLlN1Y2Nlc3MsIHRoaXMuRmFpbHVyZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU3VjY2VzcyhiZWhlZXI6IEJlaGVlcklubG9nQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBiZWhlZXIucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXInKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBGYWlsdXJlKGJlaGVlcjogQmVoZWVySW5sb2dDb21wb25lbnQsIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgYmVoZWVyLk1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbmxvZ2RpYWxvZ1wiPlxyXG4gICAgPG1hdC1jYXJkPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+R2VicnVpa2Vyc25hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJVc2VybmFtZVwiIG1hdElucHV0IHZhbHVlPVwiXCI+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD5XYWNodHdvb3JkPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBbKG5nTW9kZWwpXT1cIlBhc3N3b3JkXCIgbWF0SW5wdXQgdmFsdWU9XCJcIj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYmFyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItYm94XCI+XHJcbiAgICAgICAgICAgIHt7IE1lc3NhZ2UgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTG9naW4oKVwiIGNsYXNzPVwibG9naW4tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWF1dGhlbnRpY2F0aW9uU2VydmljZS5Mb2FkaW5nTG9naW5cIj5cclxuICAgICAgICAgICAgICBMb2dpblxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXV0aGVudGljYXRpb25TZXJ2aWNlLkxvYWRpbmdMb2dpblwiPlxyXG4gICAgICAgICAgICAgIDxhcHAtZmFiLWxvYWRlciBjbGFzcz1cImxvYWRlclwiPjwvYXBwLWZhYi1sb2FkZXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICBJUCBBZGRyZXNzOiB7eyBMb2dpbklQUmVzcG9uc2VNb2RlbD8uaXBBZGRyZXNzIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIEZhYnJpa2FudGVuQ29yZToge3sgTG9naW5JUFJlc3BvbnNlTW9kZWw/LmZhYnJpa2FudGVuQ29yZVZlcnNpb24gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICAgIFxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWlubG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWlubG9nL2JlaGVlci1pbmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1pbmxvZy9iZWhlZXItaW5sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBS3JFLE1BTWEsb0JBQW9CO0lBU1o7SUFBcUQ7SUFBd0I7SUFQekYsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRXRCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFFckIsb0JBQW9CLENBQXVCO0lBRWxELFlBQW1CLHFCQUE0QyxFQUFTLE1BQWMsRUFBVSxpQkFBb0M7UUFBakgsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRWxJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQTJCLEVBQUUsRUFBRTtZQUN6RixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQTRCO1FBQ3pDLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUNyRDthQUNJO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQTRCLEVBQUUsT0FBZTtRQUMxRCxNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO3VHQW5DVSxvQkFBb0I7MkZBQXBCLG9CQUFvQix3RENYakMsd2xEQWdEQTs7U0RyQ2Esb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9naW5JUFJlc3BvbnNlTW9kZWwsIFNlY3VyaXR5QXBpQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLWlubG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLWlubG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItaW5sb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJJbmxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBVc2VybmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgUGFzc3dvcmQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBNZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwdWJsaWMgTG9naW5JUFJlc3BvbnNlTW9kZWw6IExvZ2luSVBSZXNwb25zZU1vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBzZWN1cml0eUFwaUNsaWVudDogU2VjdXJpdHlBcGlDbGllbnQpIHtcclxuXHJcbiAgICB0aGlzLnNlY3VyaXR5QXBpQ2xpZW50LmdldExvZ2luSVBSZXNwb25zZU1vZGVsKCkuc3Vic2NyaWJlKChtb2RlbDogTG9naW5JUFJlc3BvbnNlTW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5Mb2dpbklQUmVzcG9uc2VNb2RlbCA9IG1vZGVsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dpbigpOiB2b2lkIHtcclxuICAgIHRoaXMuTWVzc2FnZSA9IFwiXCI7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dpbih0aGlzLlVzZXJuYW1lLCB0aGlzLlBhc3N3b3JkLCB0aGlzLCB0aGlzLlN1Y2Nlc3MsIHRoaXMuRmFpbHVyZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU3VjY2VzcyhiZWhlZXI6IEJlaGVlcklubG9nQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBpZiAoYmVoZWVyLmF1dGhlbnRpY2F0aW9uU2VydmljZS5Db25maWd1cmF0b3JSaWdodHMoKSkge1xyXG4gICAgICBiZWhlZXIucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXIvY29uZmlndXJhdG9yJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgYmVoZWVyLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYmVoZWVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRmFpbHVyZShiZWhlZXI6IEJlaGVlcklubG9nQ29tcG9uZW50LCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGJlaGVlci5NZXNzYWdlID0gbWVzc2FnZTtcclxuICB9XHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5sb2dkaWFsb2dcIj5cclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPkdlYnJ1aWtlcnNuYWFtPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiVXNlcm5hbWVcIiBtYXRJbnB1dCB2YWx1ZT1cIlwiIChrZXl1cC5lbnRlcik9XCJMb2dpbigpXCI+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD5XYWNodHdvb3JkPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBbKG5nTW9kZWwpXT1cIlBhc3N3b3JkXCIgbWF0SW5wdXQgdmFsdWU9XCJcIiAoa2V5dXAuZW50ZXIpPVwiTG9naW4oKVwiPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1iYXJcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXV0aGVudGljYXRpb25TZXJ2aWNlLkxvYWRpbmdMb2dpblwiPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1sb2FkZXIgY2xhc3M9XCJsb2FkZXJcIj48L2FwcC1mYWItbG9hZGVyPlxyXG4gICAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYXV0aGVudGljYXRpb25TZXJ2aWNlLkxvYWRpbmdMb2dpblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItYm94XCI+XHJcbiAgICAgICAgICAgICAge3sgTWVzc2FnZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTG9naW4oKVwiIGNsYXNzPVwibG9naW4tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gPlxyXG4gICAgICAgICAgICAgICAgTG9naW5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIElQIEFkZHJlc3M6IHt7IExvZ2luSVBSZXNwb25zZU1vZGVsPy5pcEFkZHJlc3MgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgRmFicmlrYW50ZW5Db3JlOiB7eyBMb2dpbklQUmVzcG9uc2VNb2RlbD8uZmFicmlrYW50ZW5Db3JlVmVyc2lvbiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,21 +1,39 @@
1
1
  import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/router";
4
- import * as i2 from "../beheer-nav/beheer-nav.component";
4
+ import * as i2 from "../../../swagger/SwaggerClient";
5
+ import * as i3 from "../../../services/authentication.service";
6
+ import * as i4 from "../beheer-nav/beheer-nav.component";
5
7
  class BeheerMainComponent {
6
8
  router;
7
- constructor(router) {
9
+ securityApiClient;
10
+ authenticationService;
11
+ constructor(router, securityApiClient, authenticationService) {
8
12
  this.router = router;
9
- this.router.navigate(['/beheer/translate']);
13
+ this.securityApiClient = securityApiClient;
14
+ this.authenticationService = authenticationService;
15
+ this.securityApiClient.validateUser(this.authenticationService.currentUserValue).subscribe((model) => {
16
+ if (!model) {
17
+ router.navigate(['/beheer/inloggen']);
18
+ }
19
+ else {
20
+ if (this.authenticationService.ConfiguratorRights()) {
21
+ this.router.navigate(['/beheer/configurator']);
22
+ }
23
+ else {
24
+ this.router.navigate(['/beheer/translate']);
25
+ }
26
+ }
27
+ });
10
28
  }
11
29
  ngOnInit() {
12
30
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerMainComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerMainComponent, selector: "app-beheer-main", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.BeheerNavComponent, selector: "app-beheer-nav" }] });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerMainComponent, deps: [{ token: i1.Router }, { token: i2.SecurityApiClient }, { token: i3.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerMainComponent, selector: "app-beheer-main", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n", styles: [""], dependencies: [{ kind: "component", type: i4.BeheerNavComponent, selector: "app-beheer-nav" }] });
15
33
  }
16
34
  export { BeheerMainComponent };
17
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerMainComponent, decorators: [{
18
36
  type: Component,
19
37
  args: [{ selector: 'app-beheer-main', template: "<app-beheer-nav></app-beheer-nav>\r\n" }]
20
- }], ctorParameters: function () { return [{ type: i1.Router }]; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItbWFpbi9iZWhlZXItbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1tYWluL2JlaGVlci1tYWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFHbEQsTUFLYSxtQkFBbUI7SUFFWDtJQUFuQixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7dUdBUFUsbUJBQW1COzJGQUFuQixtQkFBbUIsdURDUmhDLHVDQUNBOztTRE9hLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItbWFpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1tYWluLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbWFpbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlck1haW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2JlaGVlci90cmFuc2xhdGUnXSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxyXG4iXX0=
38
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.SecurityApiClient }, { type: i3.AuthenticationService }]; } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItbWFpbi9iZWhlZXItbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1tYWluL2JlaGVlci1tYWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUtsRCxNQUthLG1CQUFtQjtJQUVYO0lBQ1Q7SUFDRDtJQUZULFlBQW1CLE1BQWMsRUFDdkIsaUJBQW9DLEVBQ3JDLHFCQUE0QztRQUZsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDckMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUVuRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQzVHLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQzthQUN2QztpQkFDSTtnQkFDSCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO29CQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztpQkFDaEQ7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzt1R0F0QlUsbUJBQW1COzJGQUFuQixtQkFBbUIsdURDVmhDLHVDQUNBOztTRFNhLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWN1cml0eUFwaUNsaWVudCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItbWFpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1tYWluLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbWFpbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlck1haW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNlY3VyaXR5QXBpQ2xpZW50OiBTZWN1cml0eUFwaUNsaWVudCxcclxuICAgIHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge1xyXG5cclxuICAgIHRoaXMuc2VjdXJpdHlBcGlDbGllbnQudmFsaWRhdGVVc2VyKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpLnN1YnNjcmliZSgobW9kZWw6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKCFtb2RlbCkge1xyXG4gICAgICAgIHJvdXRlci5uYXZpZ2F0ZShbJy9iZWhlZXIvaW5sb2dnZW4nXSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLkNvbmZpZ3VyYXRvclJpZ2h0cygpKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9iZWhlZXIvY29uZmlndXJhdG9yJ10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2JlaGVlci90cmFuc2xhdGUnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcbiJdfQ==
@@ -40,11 +40,11 @@ class BeheerNavComponent {
40
40
  window.open('/', '_blank');
41
41
  }
42
42
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerNavComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.Router }, { token: i3.FabrikantenApiClient }], target: i0.ɵɵFactoryTarget.Component });
43
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerNavComponent, selector: "app-beheer-nav", ngImport: i0, template: "<div class=\"main-block\">\r\n <div class=\"row\">\r\n <div class=\"cell left-block\" *ngIf=\"authenticationService.DeTweeSnoekenRights()\">\r\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\r\n Zoeken\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\r\n Products\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\r\n Filters\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\r\n EBO Koppel\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\r\n Categories\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('deeplink')\" class=\"link\" [disabled]=\"IsActive('/deeplink')\">\r\n Deeplink\r\n </button>\r\n </div>\r\n <div class=\"cell right-block\">\r\n <button mat-raised-button (click)=\"Home()\" class=\"link\">\r\n Home\r\n </button>\r\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\r\n {{ ResetCacheTitle }}\r\n </button>\r\n <button *ngIf=\"authenticationService.DeTweeSnoekenRights()\" mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\r\n Settings\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\r\n Translate\r\n </button>\r\n <button *ngIf=\"authenticationService.AdministratorRights()\" mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\r\n Users\r\n </button>\r\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\r\n Uitloggen\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"], dependencies: [{ kind: "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"] }], encapsulation: i0.ViewEncapsulation.None });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: BeheerNavComponent, selector: "app-beheer-nav", ngImport: i0, template: "<div class=\"main-block\">\r\n <div class=\"row\">\r\n <div class=\"cell left-block\" *ngIf=\"authenticationService.DeTweeSnoekenRights()\">\r\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\r\n Zoeken\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\r\n Products\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\r\n Filters\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\r\n EBO Koppel\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\r\n Categories\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('deeplink')\" class=\"link\" [disabled]=\"IsActive('/deeplink')\">\r\n Deeplink\r\n </button>\r\n </div>\r\n <div class=\"cell right-block\">\r\n <button mat-raised-button (click)=\"Home()\" class=\"link\">\r\n Home\r\n </button>\r\n <button *ngIf=\"!authenticationService.ConfiguratorRights()\" mat-raised-button (click)=\"ResetCache()\" class=\"link\">\r\n {{ ResetCacheTitle }}\r\n </button>\r\n <button *ngIf=\"authenticationService.DeTweeSnoekenRights()\" mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\r\n Settings\r\n </button>\r\n <button *ngIf=\"!authenticationService.ConfiguratorRights()\" mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\r\n Translate\r\n </button>\r\n <button *ngIf=\"authenticationService.ConfiguratorRights()\" mat-raised-button (click)=\"NavigateTo('configurator')\" class=\"link\" [disabled]=\"IsActive('/configurator')\">\r\n Configurator\r\n </button>\r\n <button *ngIf=\"authenticationService.AdministratorRights()\" mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\r\n Users\r\n </button>\r\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\r\n Uitloggen\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"], dependencies: [{ kind: "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"] }], encapsulation: i0.ViewEncapsulation.None });
44
44
  }
45
45
  export { BeheerNavComponent };
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BeheerNavComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'app-beheer-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"main-block\">\r\n <div class=\"row\">\r\n <div class=\"cell left-block\" *ngIf=\"authenticationService.DeTweeSnoekenRights()\">\r\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\r\n Zoeken\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\r\n Products\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\r\n Filters\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\r\n EBO Koppel\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\r\n Categories\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('deeplink')\" class=\"link\" [disabled]=\"IsActive('/deeplink')\">\r\n Deeplink\r\n </button>\r\n </div>\r\n <div class=\"cell right-block\">\r\n <button mat-raised-button (click)=\"Home()\" class=\"link\">\r\n Home\r\n </button>\r\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\r\n {{ ResetCacheTitle }}\r\n </button>\r\n <button *ngIf=\"authenticationService.DeTweeSnoekenRights()\" mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\r\n Settings\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\r\n Translate\r\n </button>\r\n <button *ngIf=\"authenticationService.AdministratorRights()\" mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\r\n Users\r\n </button>\r\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\r\n Uitloggen\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"] }]
48
+ args: [{ selector: 'app-beheer-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"main-block\">\r\n <div class=\"row\">\r\n <div class=\"cell left-block\" *ngIf=\"authenticationService.DeTweeSnoekenRights()\">\r\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\r\n Zoeken\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\r\n Products\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\r\n Filters\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\r\n EBO Koppel\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\r\n Categories\r\n </button>\r\n <button mat-raised-button (click)=\"NavigateTo('deeplink')\" class=\"link\" [disabled]=\"IsActive('/deeplink')\">\r\n Deeplink\r\n </button>\r\n </div>\r\n <div class=\"cell right-block\">\r\n <button mat-raised-button (click)=\"Home()\" class=\"link\">\r\n Home\r\n </button>\r\n <button *ngIf=\"!authenticationService.ConfiguratorRights()\" mat-raised-button (click)=\"ResetCache()\" class=\"link\">\r\n {{ ResetCacheTitle }}\r\n </button>\r\n <button *ngIf=\"authenticationService.DeTweeSnoekenRights()\" mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\r\n Settings\r\n </button>\r\n <button *ngIf=\"!authenticationService.ConfiguratorRights()\" mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\r\n Translate\r\n </button>\r\n <button *ngIf=\"authenticationService.ConfiguratorRights()\" mat-raised-button (click)=\"NavigateTo('configurator')\" class=\"link\" [disabled]=\"IsActive('/configurator')\">\r\n Configurator\r\n </button>\r\n <button *ngIf=\"authenticationService.AdministratorRights()\" mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\r\n Users\r\n </button>\r\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\r\n Uitloggen\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"] }]
49
49
  }], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.Router }, { type: i3.FabrikantenApiClient }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBTXJFLE1BTWEsa0JBQWtCO0lBSVY7SUFBc0Q7SUFBd0I7SUFGMUYsZUFBZSxHQUFXLGFBQWEsQ0FBQztJQUUvQyxZQUFtQixxQkFBNEMsRUFBVSxNQUFjLEVBQVUsb0JBQTBDO1FBQXhILDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUUzSSxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztZQUNyQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQzt1R0FwQ1Usa0JBQWtCOzJGQUFsQixrQkFBa0Isc0RDWi9CLHN4RUErQ0E7O1NEbkNhLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkFwaUNsaWVudCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1uYXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGVUaXRsZTogc3RyaW5nID0gXCJSZXNldCBDYWNoZVwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgRmFicmlrYW50ZW5BcGlDbGllbnQ6IEZhYnJpa2FudGVuQXBpQ2xpZW50KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9nT2ZmKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYmVoZWVyL2lubG9nZ2VuJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTmF2aWdhdGVUbyhuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXIvJyArIG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIElzQWN0aXZlKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihuYW1lLnRvTG93ZXJDYXNlKCkpICE9IC0xO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLlJlc2V0Q2FjaGVUaXRsZSA9IFwiLi4uXCI7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LnJlc2V0Q2FjaGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlc2V0Q2FjaGVUaXRsZSA9IFwiUmVzZXQgQ2FjaGVcIjtcclxuICAgICAgYWxlcnQoJ2NhY2hlIHJlc2V0IHN1Y2Nlc3MnKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSG9tZSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vcGVuKCcvJywgJ19ibGFuaycpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIGxlZnQtYmxvY2tcIiAqbmdJZj1cImF1dGhlbnRpY2F0aW9uU2VydmljZS5EZVR3ZWVTbm9la2VuUmlnaHRzKClcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2VhcmNocHJvZHVjdHMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NlYXJjaHByb2R1Y3RzJylcIj5cclxuICAgICAgICBab2VrZW5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2ltcG9ydHNldHMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2ltcG9ydHNldHMnKVwiPlxyXG4gICAgICAgIEltcG9ydFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygncHJvZHVjdHMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3Byb2R1Y3RzJylcIj5cclxuICAgICAgICBQcm9kdWN0c1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnZmlsdGVycycpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvZmlsdGVycycpXCI+XHJcbiAgICAgICAgRmlsdGVyc1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnZWJva29wcGVsJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9lYm9rb3BwZWwnKVwiPlxyXG4gICAgICAgIEVCTyBLb3BwZWxcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2NhdGVnb3JpZXMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2NhdGVnb3JpZXMnKVwiPlxyXG4gICAgICAgIENhdGVnb3JpZXNcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2RlZXBsaW5rJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9kZWVwbGluaycpXCI+XHJcbiAgICAgICAgRGVlcGxpbmtcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIHJpZ2h0LWJsb2NrXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkhvbWUoKVwiIGNsYXNzPVwibGlua1wiPlxyXG4gICAgICAgIEhvbWVcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlc2V0Q2FjaGUoKVwiIGNsYXNzPVwibGlua1wiPlxyXG4gICAgICAgIHt7IFJlc2V0Q2FjaGVUaXRsZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImF1dGhlbnRpY2F0aW9uU2VydmljZS5EZVR3ZWVTbm9la2VuUmlnaHRzKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2V0dGluZ3MnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NldHRpbmdzJylcIj5cclxuICAgICAgICBTZXR0aW5nc1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndHJhbnNsYXRlJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy90cmFuc2xhdGUnKVwiPlxyXG4gICAgICAgIFRyYW5zbGF0ZVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImF1dGhlbnRpY2F0aW9uU2VydmljZS5BZG1pbmlzdHJhdG9yUmlnaHRzKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndXNlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3VzZXJzJylcIj5cclxuICAgICAgICBVc2Vyc1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTG9nT2ZmKClcIiBjbGFzcz1cImxpbmtcIj5cclxuICAgICAgICBVaXRsb2dnZW5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBTXJFLE1BTWEsa0JBQWtCO0lBSVY7SUFBc0Q7SUFBd0I7SUFGMUYsZUFBZSxHQUFXLGFBQWEsQ0FBQztJQUUvQyxZQUFtQixxQkFBNEMsRUFBVSxNQUFjLEVBQVUsb0JBQTBDO1FBQXhILDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUUzSSxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztZQUNyQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQzt1R0FwQ1Usa0JBQWtCOzJGQUFsQixrQkFBa0Isc0RDWi9CLHFtRkFrREE7O1NEdENhLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkFwaUNsaWVudCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1uYXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGVUaXRsZTogc3RyaW5nID0gXCJSZXNldCBDYWNoZVwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgRmFicmlrYW50ZW5BcGlDbGllbnQ6IEZhYnJpa2FudGVuQXBpQ2xpZW50KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9nT2ZmKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYmVoZWVyL2lubG9nZ2VuJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTmF2aWdhdGVUbyhuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXIvJyArIG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIElzQWN0aXZlKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihuYW1lLnRvTG93ZXJDYXNlKCkpICE9IC0xO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLlJlc2V0Q2FjaGVUaXRsZSA9IFwiLi4uXCI7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LnJlc2V0Q2FjaGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlc2V0Q2FjaGVUaXRsZSA9IFwiUmVzZXQgQ2FjaGVcIjtcclxuICAgICAgYWxlcnQoJ2NhY2hlIHJlc2V0IHN1Y2Nlc3MnKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSG9tZSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vcGVuKCcvJywgJ19ibGFuaycpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIGxlZnQtYmxvY2tcIiAqbmdJZj1cImF1dGhlbnRpY2F0aW9uU2VydmljZS5EZVR3ZWVTbm9la2VuUmlnaHRzKClcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2VhcmNocHJvZHVjdHMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NlYXJjaHByb2R1Y3RzJylcIj5cclxuICAgICAgICBab2VrZW5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2ltcG9ydHNldHMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2ltcG9ydHNldHMnKVwiPlxyXG4gICAgICAgIEltcG9ydFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygncHJvZHVjdHMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3Byb2R1Y3RzJylcIj5cclxuICAgICAgICBQcm9kdWN0c1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnZmlsdGVycycpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvZmlsdGVycycpXCI+XHJcbiAgICAgICAgRmlsdGVyc1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnZWJva29wcGVsJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9lYm9rb3BwZWwnKVwiPlxyXG4gICAgICAgIEVCTyBLb3BwZWxcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2NhdGVnb3JpZXMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2NhdGVnb3JpZXMnKVwiPlxyXG4gICAgICAgIENhdGVnb3JpZXNcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2RlZXBsaW5rJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9kZWVwbGluaycpXCI+XHJcbiAgICAgICAgRGVlcGxpbmtcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIHJpZ2h0LWJsb2NrXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkhvbWUoKVwiIGNsYXNzPVwibGlua1wiPlxyXG4gICAgICAgIEhvbWVcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCIhYXV0aGVudGljYXRpb25TZXJ2aWNlLkNvbmZpZ3VyYXRvclJpZ2h0cygpXCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlc2V0Q2FjaGUoKVwiIGNsYXNzPVwibGlua1wiPlxyXG4gICAgICAgIHt7IFJlc2V0Q2FjaGVUaXRsZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImF1dGhlbnRpY2F0aW9uU2VydmljZS5EZVR3ZWVTbm9la2VuUmlnaHRzKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2V0dGluZ3MnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NldHRpbmdzJylcIj5cclxuICAgICAgICBTZXR0aW5nc1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFhdXRoZW50aWNhdGlvblNlcnZpY2UuQ29uZmlndXJhdG9yUmlnaHRzKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndHJhbnNsYXRlJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy90cmFuc2xhdGUnKVwiPlxyXG4gICAgICAgIFRyYW5zbGF0ZVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImF1dGhlbnRpY2F0aW9uU2VydmljZS5Db25maWd1cmF0b3JSaWdodHMoKVwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdjb25maWd1cmF0b3InKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2NvbmZpZ3VyYXRvcicpXCI+XHJcbiAgICAgICAgQ29uZmlndXJhdG9yXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiYXV0aGVudGljYXRpb25TZXJ2aWNlLkFkbWluaXN0cmF0b3JSaWdodHMoKVwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCd1c2VycycpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvdXNlcnMnKVwiPlxyXG4gICAgICAgIFVzZXJzXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJMb2dPZmYoKVwiIGNsYXNzPVwibGlua1wiPlxyXG4gICAgICAgIFVpdGxvZ2dlblxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19