@indigina/kendo 1.2.37 → 1.2.38

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 (69) hide show
  1. package/esm2022/lib/angular/forms/directives/debounce.directive.mjs +5 -5
  2. package/esm2022/lib/angular/forms/widgets/field/field-input/field-input.component.mjs +5 -5
  3. package/esm2022/lib/angular/forms/widgets/field/field-input/field-input.module.mjs +5 -5
  4. package/esm2022/lib/angular/forms/widgets/field/field-input/number-input.component.mjs +5 -5
  5. package/esm2022/lib/angular/forms/widgets/field/field.component.mjs +5 -5
  6. package/esm2022/lib/angular/forms/widgets/file/file-select/field-file-select.component.mjs +5 -5
  7. package/esm2022/lib/angular/forms/widgets/file/file-select/field-file-select.module.mjs +5 -5
  8. package/esm2022/lib/angular/forms/widgets/file/file-upload/field-file-upload.component.mjs +5 -5
  9. package/esm2022/lib/angular/forms/widgets/file/file-upload/field-file-upload.module.mjs +5 -5
  10. package/esm2022/lib/angular/forms/widgets/form/form.component.mjs +140 -0
  11. package/esm2022/lib/angular/forms/widgets/general-errors/general-errors.component.mjs +4 -4
  12. package/esm2022/lib/angular/forms/widgets/textarea/field-textarea.component.mjs +5 -5
  13. package/esm2022/lib/angular/forms/widgets/textarea/field-textarea.module.mjs +5 -5
  14. package/esm2022/lib/angular/indigina.module.mjs +5 -5
  15. package/esm2022/lib/angular/models/AppSettings.mjs +4 -4
  16. package/esm2022/lib/angular/models/IndiginaConfiguration.mjs +4 -4
  17. package/esm2022/lib/angular/services/http.service.mjs +5 -5
  18. package/esm2022/lib/angular/services/locale-settings.service.mjs +5 -5
  19. package/esm2022/lib/angular/services/settings.service.mjs +4 -4
  20. package/esm2022/lib/angular/services/toastr.service.mjs +5 -5
  21. package/esm2022/lib/angular/widgets/live-updates-control/live-updates-control.component.mjs +4 -4
  22. package/esm2022/lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component.mjs +5 -5
  23. package/esm2022/lib/angular/widgets/side-menu/side-menu.component.mjs +4 -4
  24. package/esm2022/lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component.mjs +4 -4
  25. package/esm2022/lib/angular/widgets/tree-view/tree-view.component.mjs +5 -5
  26. package/esm2022/lib/components/account-menu/account-menu.component.mjs +5 -5
  27. package/esm2022/lib/components/azure-login-callback/azure-login-callback.component.mjs +5 -5
  28. package/esm2022/lib/components/forbidden/forbidden.component.mjs +5 -5
  29. package/esm2022/lib/components/language-selector/language-selector.component.mjs +5 -5
  30. package/esm2022/lib/directives/requirePermission.directive.mjs +5 -5
  31. package/esm2022/lib/interceptors/auth-headers.interceptor.mjs +5 -5
  32. package/esm2022/lib/kendo.module.mjs +6 -6
  33. package/esm2022/lib/services/account.service.mjs +5 -5
  34. package/esm2022/lib/services/activity.filter.service.mjs +6 -6
  35. package/esm2022/lib/services/auth-provider.resolver.mjs +5 -5
  36. package/esm2022/lib/services/partner.service.mjs +5 -5
  37. package/esm2022/lib/services/permissions.service.mjs +5 -5
  38. package/esm2022/lib/services/signalr/signalr.service.mjs +5 -5
  39. package/esm2022/lib/widgets/activity-filter/activity-filter.component.mjs +5 -5
  40. package/esm2022/lib/widgets/confirm-dialog/confirm-dialog.component.mjs +5 -5
  41. package/esm2022/lib/widgets/current-timezone/current-timezone.component.mjs +5 -5
  42. package/esm2022/lib/widgets/entity-edit/buttons-bar/buttons-bar.component.mjs +4 -4
  43. package/esm2022/lib/widgets/entity-edit/dropdowns/field-dropdown/field-dropdown.component.mjs +131 -0
  44. package/esm2022/lib/widgets/entity-edit/dropdowns/field-dropdown/field-dropdown.module.mjs +32 -0
  45. package/esm2022/lib/widgets/entity-edit/dropdowns/form-dropdown/form-dropdown.component.mjs +137 -0
  46. package/esm2022/lib/widgets/entity-edit/dropdowns/form-dropdown/form-dropdown.module.mjs +32 -0
  47. package/esm2022/lib/widgets/entity-edit/entity-edit-form.component.mjs +5 -5
  48. package/esm2022/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.mjs +5 -5
  49. package/esm2022/lib/widgets/entity-list/entity-list.component.mjs +5 -5
  50. package/esm2022/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.mjs +5 -5
  51. package/esm2022/lib/widgets/entity-list/user-list-admin.component.mjs +5 -5
  52. package/esm2022/lib/widgets/excel-export-button/excel-export-button.component.mjs +4 -4
  53. package/esm2022/lib/widgets/footer-bar/footer-bar.component.mjs +4 -4
  54. package/esm2022/lib/widgets/modal-window/modal-window.component.mjs +5 -5
  55. package/esm2022/lib/widgets/multicheck-filter/multicheck-filter.component.mjs +4 -4
  56. package/esm2022/lib/widgets/top-bar/top-bar.component.mjs +4 -4
  57. package/esm2022/public-api.mjs +6 -3
  58. package/fesm2022/indigina-kendo.mjs +589 -228
  59. package/fesm2022/indigina-kendo.mjs.map +1 -1
  60. package/lib/angular/forms/widgets/form/form.component.d.ts +34 -0
  61. package/lib/kendo.module.d.ts +1 -1
  62. package/lib/widgets/entity-edit/{field-dropdown → dropdowns/field-dropdown}/field-dropdown.component.d.ts +23 -6
  63. package/lib/widgets/entity-edit/dropdowns/form-dropdown/form-dropdown.component.d.ts +46 -0
  64. package/lib/widgets/entity-edit/dropdowns/form-dropdown/form-dropdown.module.d.ts +11 -0
  65. package/package.json +24 -24
  66. package/public-api.d.ts +5 -2
  67. package/esm2022/lib/widgets/entity-edit/field-dropdown/field-dropdown.component.mjs +0 -59
  68. package/esm2022/lib/widgets/entity-edit/field-dropdown/field-dropdown.module.mjs +0 -32
  69. /package/lib/widgets/entity-edit/{field-dropdown → dropdowns/field-dropdown}/field-dropdown.module.d.ts +0 -0
@@ -0,0 +1,137 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { ControlContainer, FormGroupDirective, } from '@angular/forms';
3
+ import { FormComponent } from '../../../../angular/forms/widgets/form/form.component';
4
+ import { BehaviorSubject, map, tap } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@ngx-translate/core";
8
+ import * as i3 from "@progress/kendo-angular-dropdowns";
9
+ import * as i4 from "@angular/common";
10
+ const SelectValue = 'Select value';
11
+ const defaultFieldName = 'name';
12
+ const emptyLine = '';
13
+ export class FormDropdownComponent extends FormComponent {
14
+ get control() {
15
+ return this.parent.form.get(this.fieldName).get(this.textField);
16
+ }
17
+ constructor(parent, eref, translate) {
18
+ super(parent, eref, null);
19
+ this.parent = parent;
20
+ this.eref = eref;
21
+ this.translate = translate;
22
+ this.textField = defaultFieldName;
23
+ this.selectedChange = new EventEmitter();
24
+ this.firstLoad = true;
25
+ }
26
+ onValueChange(event) {
27
+ if (event !== emptyLine) {
28
+ const entity = this.getEntityById(event);
29
+ this.emitSelectedEntity(entity);
30
+ }
31
+ else {
32
+ this.emitSelectedEntity(this.defaultItem);
33
+ }
34
+ }
35
+ ngOnInit() {
36
+ super.ngOnInit();
37
+ this.setData();
38
+ this.setDefaultItem();
39
+ }
40
+ setDefaultItem() {
41
+ this.defaultItem = {
42
+ id: emptyLine,
43
+ name: this.translate.instant(this.defaultName || SelectValue),
44
+ };
45
+ }
46
+ ngOnChanges() {
47
+ super.ngOnChanges();
48
+ this.setData();
49
+ }
50
+ setData() {
51
+ if (this.data) {
52
+ this.setInputData();
53
+ }
54
+ else {
55
+ this.data$ = this.service
56
+ .getPage(this.filter ? { filter: this.filter } : {})
57
+ .pipe(tap((x) => {
58
+ this.items = x.data;
59
+ if (this.canUpdateWithSelectedItem()) {
60
+ const selectedItem = this.updateControlGroupWithSelectedEntity(this.selectedItem.id);
61
+ this.writeSelectedItemValueIfExists(selectedItem);
62
+ }
63
+ else {
64
+ this.updateControlGroupWithSelectedEntity(this.control.value);
65
+ }
66
+ this.setFirstLoadFalse();
67
+ }), map((x) => x.data));
68
+ }
69
+ }
70
+ setInputData() {
71
+ let dataSubject = new BehaviorSubject(this.data);
72
+ this.data$ = dataSubject.asObservable();
73
+ }
74
+ canUpdateWithSelectedItem() {
75
+ return this.selectedItem && this.firstLoad;
76
+ }
77
+ updateControlGroupWithSelectedEntity(entityId) {
78
+ const entity = this.getEntityById(entityId);
79
+ if (entity) {
80
+ this.updateControlGroup(entity);
81
+ }
82
+ return entity;
83
+ }
84
+ updateControlGroup(entity) {
85
+ this.setControlValue(entity);
86
+ this.setGroupValues(entity);
87
+ }
88
+ setControlValue(entity) {
89
+ this.control.setValue(entity.id);
90
+ }
91
+ emitSelectedEntity(entity) {
92
+ this.selectedChange.emit(entity);
93
+ }
94
+ getEntityById(entityId) {
95
+ return this.items.find((x) => x.id === entityId);
96
+ }
97
+ writeSelectedItemValueIfExists(selectedItem) {
98
+ if (selectedItem) {
99
+ this.kendoDropDown.writeValue(selectedItem.id);
100
+ }
101
+ }
102
+ setFirstLoadFalse() {
103
+ this.firstLoad = false;
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FormDropdownComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: FormDropdownComponent, selector: "form-dropdown", inputs: { service: "service", rebind: "rebind", filter: "filter", defaultName: "defaultName", selectedItem: "selectedItem", data: "data", formFields: "formFields", textField: "textField" }, outputs: { selectedChange: "selectedChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"textField\"\n valueField=\"id\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n #inputElement\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], viewProviders: [
107
+ { provide: ControlContainer, useExisting: FormGroupDirective },
108
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FormDropdownComponent, decorators: [{
111
+ type: Component,
112
+ args: [{ selector: 'form-dropdown', viewProviders: [
113
+ { provide: ControlContainer, useExisting: FormGroupDirective },
114
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"textField\"\n valueField=\"id\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n #inputElement\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n" }]
115
+ }], ctorParameters: () => [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }, { type: i2.TranslateService }], propDecorators: { service: [{
116
+ type: Input
117
+ }], rebind: [{
118
+ type: Input
119
+ }], filter: [{
120
+ type: Input
121
+ }], defaultName: [{
122
+ type: Input
123
+ }], selectedItem: [{
124
+ type: Input
125
+ }], data: [{
126
+ type: Input
127
+ }], formFields: [{
128
+ type: Input
129
+ }], textField: [{
130
+ type: Input
131
+ }], selectedChange: [{
132
+ type: Output
133
+ }], kendoDropDown: [{
134
+ type: ViewChild,
135
+ args: ['inputElement']
136
+ }] } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZHJvcGRvd25zL2Zvcm0tZHJvcGRvd24vZm9ybS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZHJvcGRvd25zL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUl0RixPQUFPLEVBQUUsZUFBZSxFQUFjLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUk3RCxNQUFNLFdBQVcsR0FBVyxjQUFjLENBQUM7QUFDM0MsTUFBTSxnQkFBZ0IsR0FBVyxNQUFNLENBQUM7QUFDeEMsTUFBTSxTQUFTLEdBQVcsRUFBRSxDQUFDO0FBVTdCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBMkJ0RCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFDUyxNQUEwQixFQUMxQixJQUFnQixFQUNmLFNBQTJCO1FBRW5DLEtBQUss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QUU7cUJBQy9ELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOytJQUkvQyxPQUFPO3NCQUROLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsTUFBTTtnQkFJQyxhQUFhO3NCQURwQixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xDb250YWluZXIsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2FuZ3VsYXIvZm9ybXMvd2lkZ2V0cy9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IElHZXRQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2dldC1wYWdlLnNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5hbWVkTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9hbmd1bGFyL21vZGVscy9OYW1lZE1vZGVsJztcbmltcG9ydCB7IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEcm9wRG93bkxpc3RDb21wb25lbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kcm9wZG93bnMnO1xuXG5jb25zdCBTZWxlY3RWYWx1ZTogc3RyaW5nID0gJ1NlbGVjdCB2YWx1ZSc7XG5jb25zdCBkZWZhdWx0RmllbGROYW1lOiBzdHJpbmcgPSAnbmFtZSc7XG5jb25zdCBlbXB0eUxpbmU6IHN0cmluZyA9ICcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Ecm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEZvcm1Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBzZXJ2aWNlOiBJR2V0UGFnZVNlcnZpY2U8TmFtZWRNb2RlbD47XG4gIEBJbnB1dCgpXG4gIHJlYmluZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmaWx0ZXI/OiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yO1xuICBASW5wdXQoKVxuICBkZWZhdWx0TmFtZT86IHN0cmluZztcbiAgQElucHV0KClcbiAgc2VsZWN0ZWRJdGVtPzogTmFtZWRNb2RlbDtcbiAgQElucHV0KClcbiAgZGF0YT86IE5hbWVkTW9kZWxbXTtcbiAgQElucHV0KClcbiAgZm9ybUZpZWxkczogc3RyaW5nW107XG4gIEBJbnB1dCgpXG4gIHRleHRGaWVsZDogc3RyaW5nID0gZGVmYXVsdEZpZWxkTmFtZTtcbiAgQE91dHB1dCgpXG4gIHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbCB8IG51bWJlciB8IHN0cmluZz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcbiAgcHJpdmF0ZSBrZW5kb0Ryb3BEb3duOiBEcm9wRG93bkxpc3RDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBpdGVtczogTmFtZWRNb2RlbFtdO1xuICBwdWJsaWMgZGVmYXVsdEl0ZW06IE5hbWVkTW9kZWw7XG4gIHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxOYW1lZE1vZGVsW10+O1xuICBwdWJsaWMgZmlyc3RMb2FkOiBib29sZWFuID0gdHJ1ZTtcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZm9ybS5nZXQodGhpcy5maWVsZE5hbWUpLmdldCh0aGlzLnRleHRGaWVsZCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHVibGljIGVyZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgZXJlZiwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50ICE9PSBlbXB0eUxpbmUpIHtcbiAgICAgIGNvbnN0IGVudGl0eTogTmFtZWRNb2RlbCA9IHRoaXMuZ2V0RW50aXR5QnlJZChldmVudCk7XG4gICAgICB0aGlzLmVtaXRTZWxlY3RlZEVudGl0eShlbnRpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRTZWxlY3RlZEVudGl0eSh0aGlzLmRlZmF1bHRJdGVtKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2V0RGF0YSgpO1xuICAgIHRoaXMuc2V0RGVmYXVsdEl0ZW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0SXRlbSA9IHtcbiAgICAgIGlkOiBlbXB0eUxpbmUsXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuZGVmYXVsdE5hbWUgfHwgU2VsZWN0VmFsdWUpLFxuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcygpO1xuICAgIHRoaXMuc2V0RGF0YSgpO1xuICB9XG5cbiAgc2V0RGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLnNldElucHV0RGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGEkID0gdGhpcy5zZXJ2aWNlXG4gICAgICAgIC5nZXRQYWdlKHRoaXMuZmlsdGVyID8geyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0gOiB7fSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0geC5kYXRhO1xuICAgICAgICAgICAgaWYgKHRoaXMuY2FuVXBkYXRlV2l0aFNlbGVjdGVkSXRlbSgpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbTogTmFtZWRNb2RlbCA9XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb250cm9sR3JvdXBXaXRoU2VsZWN0ZWRFbnRpdHkodGhpcy5zZWxlY3RlZEl0ZW0uaWQpO1xuICAgICAgICAgICAgICB0aGlzLndyaXRlU2VsZWN0ZWRJdGVtVmFsdWVJZkV4aXN0cyhzZWxlY3RlZEl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb250cm9sR3JvdXBXaXRoU2VsZWN0ZWRFbnRpdHkodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRGaXJzdExvYWRGYWxzZSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgoeCkgPT4geC5kYXRhKSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldElucHV0RGF0YSgpOiB2b2lkIHtcbiAgICBsZXQgZGF0YVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxOYW1lZE1vZGVsW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgIE5hbWVkTW9kZWxbXVxuICAgID4odGhpcy5kYXRhKTtcbiAgICB0aGlzLmRhdGEkID0gZGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGNhblVwZGF0ZVdpdGhTZWxlY3RlZEl0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtICYmIHRoaXMuZmlyc3RMb2FkO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sR3JvdXBXaXRoU2VsZWN0ZWRFbnRpdHkoZW50aXR5SWQ6IHN0cmluZyk6IE5hbWVkTW9kZWwge1xuICAgIGNvbnN0IGVudGl0eTogTmFtZWRNb2RlbCA9IHRoaXMuZ2V0RW50aXR5QnlJZChlbnRpdHlJZCk7XG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgdGhpcy51cGRhdGVDb250cm9sR3JvdXAoZW50aXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50aXR5O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sR3JvdXAoZW50aXR5OiBOYW1lZE1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZW50aXR5KTtcbiAgICB0aGlzLnNldEdyb3VwVmFsdWVzKGVudGl0eSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRyb2xWYWx1ZShlbnRpdHk6IE5hbWVkTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZW50aXR5LmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFNlbGVjdGVkRW50aXR5KGVudGl0eTogTmFtZWRNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChlbnRpdHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnRpdHlCeUlkKGVudGl0eUlkOiBzdHJpbmcpOiBOYW1lZE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKCh4KSA9PiB4LmlkID09PSBlbnRpdHlJZCk7XG4gIH1cblxuICBwcml2YXRlIHdyaXRlU2VsZWN0ZWRJdGVtVmFsdWVJZkV4aXN0cyhzZWxlY3RlZEl0ZW06IE5hbWVkTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICB0aGlzLmtlbmRvRHJvcERvd24ud3JpdGVWYWx1ZShzZWxlY3RlZEl0ZW0uaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Rmlyc3RMb2FkRmFsc2UoKTogdm9pZCB7XG4gICAgdGhpcy5maXJzdExvYWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsXG4gICAgZm9yPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICBjbGFzcz1cImNvbC1tZC0zIGNvbnRyb2wtbGFiZWxcIlxuICAgIHRyYW5zbGF0ZT1cInt7IGxhYmVsS2V5IH19XCJcbiAgPjwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiICpuZ0lmPVwiY29udHJvbFwiPlxuICAgIDxrZW5kby1kcm9wZG93bmxpc3RcbiAgICAgIGlkPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFtkYXRhXT1cImRhdGEkIHwgYXN5bmNcIlxuICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgdmFsdWVGaWVsZD1cImlkXCJcbiAgICAgIFt2YWx1ZVByaW1pdGl2ZV09XCJ0cnVlXCJcbiAgICAgIFtkZWZhdWx0SXRlbV09XCJkZWZhdWx0SXRlbVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICNpbnB1dEVsZW1lbnRcbiAgICA+XG4gICAgPC9rZW5kby1kcm9wZG93bmxpc3Q+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmctZGFuZ2VyXCIgKm5nSWY9XCJjb250cm9sLmludmFsaWQgJiYgY29udHJvbC50b3VjaGVkXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydyZXF1aXJlZCddXCI+e3tcbiAgICAgICAgXCJSZXF1aXJlZFwiIHwgdHJhbnNsYXRlIDogeyBwYXJhbTA6IGxhYmVsS2V5IHwgdHJhbnNsYXRlIH1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmVycm9yc1snc2VydmVyRXJyb3JNc2cnXVwiPnt7XG4gICAgICAgIGNvbnRyb2wuZXJyb3JzW1wic2VydmVyRXJyb3JNc2dcIl1cbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormDropdownComponent } from './form-dropdown.component';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i0 from "@angular/core";
8
+ export class FormDropdownModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FormDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: FormDropdownModule, declarations: [FormDropdownComponent], imports: [TranslateModule,
11
+ DropDownsModule,
12
+ ReactiveFormsModule,
13
+ CommonModule], exports: [FormDropdownComponent] }); }
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FormDropdownModule, imports: [TranslateModule,
15
+ DropDownsModule,
16
+ ReactiveFormsModule,
17
+ CommonModule] }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FormDropdownModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [FormDropdownComponent],
23
+ imports: [
24
+ TranslateModule,
25
+ DropDownsModule,
26
+ ReactiveFormsModule,
27
+ CommonModule,
28
+ ],
29
+ exports: [FormDropdownComponent],
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kcm9wZG93bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZHJvcGRvd25zL2Zvcm0tZHJvcGRvd24vZm9ybS1kcm9wZG93bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZL0MsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsaUJBVGQscUJBQXFCLGFBRWxDLGVBQWU7WUFDZixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLFlBQVksYUFFSixxQkFBcUI7K0dBRXBCLGtCQUFrQixZQVAzQixlQUFlO1lBQ2YsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixZQUFZOzsyRkFJSCxrQkFBa0I7a0JBVjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRHJvcERvd25zTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZHJvcGRvd25zJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGb3JtRHJvcGRvd25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIERyb3BEb3duc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0Zvcm1Ecm9wZG93bkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Ecm9wZG93bk1vZHVsZSB7fVxuIl19
@@ -69,17 +69,17 @@ export class EntityEditFormComponent {
69
69
  },
70
70
  });
71
71
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: EntityEditFormComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: EntityEditFormComponent, selector: "entity-edit-form", inputs: { title: "title", entityId: "entityId", adapter: "adapter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"col-md-8\">\n <header class=\"header-page-bg\">\n <h4>{{ title | translate }}</h4>\n </header>\n <div class=\"panel editor-area hero-unit\">\n <form\n *ngIf=\"formGroup | async as form\"\n class=\"form-horizontal\"\n [formGroup]=\"form\"\n novalidate\n autocomplete=\"off\"\n >\n <div class=\"col-md-3\"></div>\n <div class=\"col-md-9\">\n <app-general-errors\n [form]=\"form\"\n [errors]=\"form.generalErrors\"\n ></app-general-errors>\n </div>\n <ng-content></ng-content>\n <entity-edit-buttons-bar\n (save)=\"save()\"\n [valid]=\"form.valid && form.dirty && !saveInProgress\"\n >\n </entity-edit-buttons-bar>\n </form>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GeneralErrorsComponent, selector: "app-general-errors", inputs: ["form", "errors"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.EntityEditButtonsBarComponent, selector: "entity-edit-buttons-bar", inputs: ["valid"], outputs: ["save"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: EntityEditFormComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: EntityEditFormComponent, selector: "entity-edit-form", inputs: { title: "title", entityId: "entityId", adapter: "adapter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"col-md-8\">\n <header class=\"header-page-bg\">\n <h4>{{ title | translate }}</h4>\n </header>\n <div class=\"panel editor-area hero-unit\">\n <form\n *ngIf=\"formGroup | async as form\"\n class=\"form-horizontal\"\n [formGroup]=\"form\"\n novalidate\n autocomplete=\"off\"\n >\n <div class=\"col-md-3\"></div>\n <div class=\"col-md-9\">\n <app-general-errors\n [form]=\"form\"\n [errors]=\"form.generalErrors\"\n ></app-general-errors>\n </div>\n <ng-content></ng-content>\n <entity-edit-buttons-bar\n (save)=\"save()\"\n [valid]=\"form.valid && form.dirty && !saveInProgress\"\n >\n </entity-edit-buttons-bar>\n </form>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GeneralErrorsComponent, selector: "app-general-errors", inputs: ["form", "errors"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.EntityEditButtonsBarComponent, selector: "entity-edit-buttons-bar", inputs: ["valid"], outputs: ["save"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: EntityEditFormComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: EntityEditFormComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'entity-edit-form', template: "<div class=\"col-md-8\">\n <header class=\"header-page-bg\">\n <h4>{{ title | translate }}</h4>\n </header>\n <div class=\"panel editor-area hero-unit\">\n <form\n *ngIf=\"formGroup | async as form\"\n class=\"form-horizontal\"\n [formGroup]=\"form\"\n novalidate\n autocomplete=\"off\"\n >\n <div class=\"col-md-3\"></div>\n <div class=\"col-md-9\">\n <app-general-errors\n [form]=\"form\"\n [errors]=\"form.generalErrors\"\n ></app-general-errors>\n </div>\n <ng-content></ng-content>\n <entity-edit-buttons-bar\n (save)=\"save()\"\n [valid]=\"form.valid && form.dirty && !saveInProgress\"\n >\n </entity-edit-buttons-bar>\n </form>\n </div>\n</div>\n" }]
78
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }]; }, propDecorators: { title: [{
78
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }], propDecorators: { title: [{
79
79
  type: Input
80
80
  }], entityId: [{
81
81
  type: Input
82
82
  }], adapter: [{
83
83
  type: Input
84
84
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxZQUFvQixLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVpsQyxjQUFTLEdBQ2QsSUFBSSxlQUFlLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBWS9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxR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dkIsdUJBQXVCLG1KQ2ZwQyx5d0JBNEJBOzs0RkRiYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCO3FHQVE1QixLQUFLO3NCQURKLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUZvcm1BZGFwdGVyIH0gZnJvbSAnLi9JRm9ybUFkYXB0ZXInO1xuaW1wb3J0IHsgRm9ybUdyb3VwV2l0aEVycm9ycyB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvZm9ybXMvZXh0ZW5zaW9ucy9Gb3JtR3JvdXBXaXRoRXJyb3JzJztcbmltcG9ydCB7IElkZW50aWZpZWRNb2RlbCB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL0lkZW50aWZpZWRNb2RlbCc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudGl0eS1lZGl0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudGl0eS1lZGl0LWZvcm0uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlFZGl0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBwdWJsaWMgZm9ybUdyb3VwOiBCZWhhdmlvclN1YmplY3Q8Rm9ybUdyb3VwV2l0aEVycm9ycz4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUdyb3VwV2l0aEVycm9ycz4obnVsbCk7XG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGVudGl0eUlkPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBhZGFwdGVyOiBJRm9ybUFkYXB0ZXI8SWRlbnRpZmllZE1vZGVsPjtcbiAgcm91dGVTZXJ2aWNlOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIHNhdmVJblByb2dyZXNzOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgdGhpcy5zYXZlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW50aXR5SWQpIHtcbiAgICAgIHRoaXMubG9hZEVudGl0eSh0aGlzLmVudGl0eUlkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlU2VydmljZT8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5lbnRpdHlJZCkge1xuICAgICAgdGhpcy5yb3V0ZVNlcnZpY2UgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoXG4gICAgICAgIChwYXJhbXM6IElkZW50aWZpZWRNb2RlbCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZEVudGl0eShwYXJhbXMuaWQpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsb2FkRW50aXR5KGlkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAubmV4dChudWxsKTtcbiAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwV2l0aEVycm9ycyh7fSk7XG4gICAgaWYgKCFpZCkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNldEZvcm0oZm9ybUdyb3VwKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLm5leHQoZm9ybUdyb3VwKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWRhcHRlclxuICAgICAgLmdldFNlcnZpY2UoKVxuICAgICAgLmdldChpZCwgdGhpcy5hZGFwdGVyLmdldFVybFBhcmFtcygpKVxuICAgICAgLnN1YnNjcmliZSgobW9kZWwpID0+IHtcbiAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woJ2lkJywgbmV3IFVudHlwZWRGb3JtQ29udHJvbChtb2RlbC5pZCkpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcbiAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChrZXksIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobW9kZWxba2V5XSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZGFwdGVyLnNldEZvcm0oZm9ybUdyb3VwKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubmV4dChmb3JtR3JvdXApO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMuYWRhcHRlclxuICAgICAgLmdldFNlcnZpY2UoKVxuICAgICAgLnNhdmUodGhpcy5hZGFwdGVyLmdldFZhbHVlKCksIHRoaXMuYWRhcHRlci5nZXRVcmxQYXJhbXMoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5zYXZlSW5Qcm9ncmVzcyA9IGZhbHNlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3VsdDogSWRlbnRpZmllZE1vZGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGFwdGVyLm9uU2F2ZWQocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5hcHBseVNlcnZlckVycm9ycyhcbiAgICAgICAgICAgIHsgZXJyb3JzOiB7fSB9LFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5uZXh0KHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5hcHBseVNlcnZlckVycm9ycyhcbiAgICAgICAgICAgIGVycm9yLmVycm9yLFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5uZXh0KHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cbiAgPGhlYWRlciBjbGFzcz1cImhlYWRlci1wYWdlLWJnXCI+XG4gICAgPGg0Pnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgPC9oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBlZGl0b3ItYXJlYSBoZXJvLXVuaXRcIj5cbiAgICA8Zm9ybVxuICAgICAgKm5nSWY9XCJmb3JtR3JvdXAgfCBhc3luYyBhcyBmb3JtXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBub3ZhbGlkYXRlXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XG4gICAgICAgIDxhcHAtZ2VuZXJhbC1lcnJvcnNcbiAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICBbZXJyb3JzXT1cImZvcm0uZ2VuZXJhbEVycm9yc1wiXG4gICAgICAgID48L2FwcC1nZW5lcmFsLWVycm9ycz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGVudGl0eS1lZGl0LWJ1dHRvbnMtYmFyXG4gICAgICAgIChzYXZlKT1cInNhdmUoKVwiXG4gICAgICAgIFt2YWxpZF09XCJmb3JtLnZhbGlkICYmIGZvcm0uZGlydHkgJiYgIXNhdmVJblByb2dyZXNzXCJcbiAgICAgID5cbiAgICAgIDwvZW50aXR5LWVkaXQtYnV0dG9ucy1iYXI+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxZQUFvQixLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVpsQyxjQUFTLEdBQ2QsSUFBSSxlQUFlLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBWS9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxR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dkIsdUJBQXVCLG1KQ2ZwQyx5d0JBNEJBOzsyRkRiYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCO21GQVE1QixLQUFLO3NCQURKLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUZvcm1BZGFwdGVyIH0gZnJvbSAnLi9JRm9ybUFkYXB0ZXInO1xuaW1wb3J0IHsgRm9ybUdyb3VwV2l0aEVycm9ycyB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvZm9ybXMvZXh0ZW5zaW9ucy9Gb3JtR3JvdXBXaXRoRXJyb3JzJztcbmltcG9ydCB7IElkZW50aWZpZWRNb2RlbCB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL0lkZW50aWZpZWRNb2RlbCc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudGl0eS1lZGl0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWVkaXQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudGl0eS1lZGl0LWZvcm0uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlFZGl0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBwdWJsaWMgZm9ybUdyb3VwOiBCZWhhdmlvclN1YmplY3Q8Rm9ybUdyb3VwV2l0aEVycm9ycz4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUdyb3VwV2l0aEVycm9ycz4obnVsbCk7XG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGVudGl0eUlkPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBhZGFwdGVyOiBJRm9ybUFkYXB0ZXI8SWRlbnRpZmllZE1vZGVsPjtcbiAgcm91dGVTZXJ2aWNlOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIHNhdmVJblByb2dyZXNzOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgdGhpcy5zYXZlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW50aXR5SWQpIHtcbiAgICAgIHRoaXMubG9hZEVudGl0eSh0aGlzLmVudGl0eUlkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlU2VydmljZT8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5lbnRpdHlJZCkge1xuICAgICAgdGhpcy5yb3V0ZVNlcnZpY2UgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoXG4gICAgICAgIChwYXJhbXM6IElkZW50aWZpZWRNb2RlbCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZEVudGl0eShwYXJhbXMuaWQpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsb2FkRW50aXR5KGlkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAubmV4dChudWxsKTtcbiAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwV2l0aEVycm9ycyh7fSk7XG4gICAgaWYgKCFpZCkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNldEZvcm0oZm9ybUdyb3VwKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLm5leHQoZm9ybUdyb3VwKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWRhcHRlclxuICAgICAgLmdldFNlcnZpY2UoKVxuICAgICAgLmdldChpZCwgdGhpcy5hZGFwdGVyLmdldFVybFBhcmFtcygpKVxuICAgICAgLnN1YnNjcmliZSgobW9kZWwpID0+IHtcbiAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woJ2lkJywgbmV3IFVudHlwZWRGb3JtQ29udHJvbChtb2RlbC5pZCkpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcbiAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChrZXksIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobW9kZWxba2V5XSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZGFwdGVyLnNldEZvcm0oZm9ybUdyb3VwKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubmV4dChmb3JtR3JvdXApO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMuYWRhcHRlclxuICAgICAgLmdldFNlcnZpY2UoKVxuICAgICAgLnNhdmUodGhpcy5hZGFwdGVyLmdldFZhbHVlKCksIHRoaXMuYWRhcHRlci5nZXRVcmxQYXJhbXMoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5zYXZlSW5Qcm9ncmVzcyA9IGZhbHNlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3VsdDogSWRlbnRpZmllZE1vZGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGFwdGVyLm9uU2F2ZWQocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5hcHBseVNlcnZlckVycm9ycyhcbiAgICAgICAgICAgIHsgZXJyb3JzOiB7fSB9LFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5uZXh0KHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5hcHBseVNlcnZlckVycm9ycyhcbiAgICAgICAgICAgIGVycm9yLmVycm9yLFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5uZXh0KHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cbiAgPGhlYWRlciBjbGFzcz1cImhlYWRlci1wYWdlLWJnXCI+XG4gICAgPGg0Pnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgPC9oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBlZGl0b3ItYXJlYSBoZXJvLXVuaXRcIj5cbiAgICA8Zm9ybVxuICAgICAgKm5nSWY9XCJmb3JtR3JvdXAgfCBhc3luYyBhcyBmb3JtXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBub3ZhbGlkYXRlXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XG4gICAgICAgIDxhcHAtZ2VuZXJhbC1lcnJvcnNcbiAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICBbZXJyb3JzXT1cImZvcm0uZ2VuZXJhbEVycm9yc1wiXG4gICAgICAgID48L2FwcC1nZW5lcmFsLWVycm9ycz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGVudGl0eS1lZGl0LWJ1dHRvbnMtYmFyXG4gICAgICAgIChzYXZlKT1cInNhdmUoKVwiXG4gICAgICAgIFt2YWxpZF09XCJmb3JtLnZhbGlkICYmIGZvcm0uZGlydHkgJiYgIXNhdmVJblByb2dyZXNzXCJcbiAgICAgID5cbiAgICAgIDwvZW50aXR5LWVkaXQtYnV0dG9ucy1iYXI+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -36,15 +36,15 @@ export class FieldMultiSelectComponent extends FieldComponent {
36
36
  getData() {
37
37
  return this.service.getPage(this.filter ? { filter: this.filter } : {});
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldMultiSelectComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField", singleMode: "singleMode", autoClose: "autoClose" }, outputs: { changed: "changed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["showStickyHeader", "focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "adaptiveMode", "title", "subtitle", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], viewProviders: [
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FieldMultiSelectComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField", singleMode: "singleMode", autoClose: "autoClose" }, outputs: { changed: "changed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["showStickyHeader", "focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "adaptiveMode", "title", "subtitle", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], viewProviders: [
41
41
  {
42
42
  provide: ControlContainer,
43
43
  useExisting: FormGroupDirective,
44
44
  },
45
45
  ] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldMultiSelectComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: FieldMultiSelectComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'field-multiselect', viewProviders: [
50
50
  {
@@ -52,7 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
52
52
  useExisting: FormGroupDirective,
53
53
  },
54
54
  ], template: "<div class=\"form-group\">\n <label\n for=\"{{ '_' + fieldName }}\"\n class=\"col-md-3 control-label\"\n translate=\"{{ labelKey }}\"\n ></label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n >\n </kendo-multiselect>\n\n <div *ngIf=\"control.invalid && control.touched\" class=\"bg-danger\">\n <span *ngIf=\"control.errors['required']\">{{\n 'Required' | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors['serverErrorMsg']\n }}</span>\n </div>\n </div>\n</div>\n" }]
55
- }], ctorParameters: function () { return [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }]; }, propDecorators: { service: [{
55
+ }], ctorParameters: () => [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }], propDecorators: { service: [{
56
56
  type: Input
57
57
  }], rebind: [{
58
58
  type: Input
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
69
69
  }], changed: [{
70
70
  type: Output
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2ZpZWxkLW11bHRpc2VsZWN0L2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktZWRpdC9maWVsZC1tdWx0aXNlbGVjdC9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7O0FBbUJ0RixNQUFNLE9BQU8seUJBQ1gsU0FBUSxjQUF3QjtJQVloQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQ1MsTUFBMEIsRUFDMUIsSUFBZ0I7UUFFdkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIakIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVhoQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFvQixJQUFJLFlBQVksRUFBSyxDQUFDO1FBRTNELFNBQUksR0FBc0IsRUFBRSxDQUFDO1FBVTNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdkIsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDMUQsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7K0dBL0NVLHlCQUF5QjttR0FBekIseUJBQXlCLDhTQzFCdEMsMDNCQTZCQSw4dUNEVmlCO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsV0FBVyxFQUFFLGtCQUFrQjthQUNoQztTQUNGOzs0RkFFVSx5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUdkO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFdBQVcsRUFBRSxrQkFBa0I7eUJBQ2hDO3FCQUNGO2tJQUtRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xDb250YWluZXIsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyL2Zvcm1zL3dpZGdldHMvZmllbGQvZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IElkZW50aWZpZWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIvbW9kZWxzL0lkZW50aWZpZWRNb2RlbCc7XG5pbXBvcnQgeyBOYW1lZE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci9tb2RlbHMvTmFtZWRNb2RlbCc7XG5pbXBvcnQgeyBJRW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL0lFbnRpdHlTZXJ2aWNlJztcbmltcG9ydCB7IFByZXZlbnRhYmxlRXZlbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kcm9wZG93bnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3Byb2plY3RzL2tlbmRvL3NyYy9saWIvbW9kZWxzL1BhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWVsZC1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC5jc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkTXVsdGlTZWxlY3RDb21wb25lbnQ8VD5cbiAgZXh0ZW5kcyBGaWVsZENvbXBvbmVudDxzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzZXJ2aWNlOiBJRW50aXR5U2VydmljZTxOYW1lZE1vZGVsPjtcbiAgQElucHV0KCkgcmViaW5kOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbHRlcj86IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3I7XG4gIEBJbnB1dCgpIHRleHRGaWVsZD86IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgQElucHV0KCkgc2luZ2xlTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBkYXRhOiBJZGVudGlmaWVkTW9kZWxbXSA9IFtdO1xuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5mb3JtLmdldCh0aGlzLmZpZWxkTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHVibGljIGVyZWY6IEVsZW1lbnRSZWYsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgZXJlZiwgW10pO1xuICAgIHRoaXMudGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQgPz8gJ25hbWUnO1xuICAgIHRoaXMudmFsdWVGaWVsZCA9IHRoaXMudmFsdWVGaWVsZCA/PyAnaWQnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXREYXRhKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgIHRoaXMuY29udHJvbC52YWx1ZS5maWx0ZXIoXG4gICAgICAgICAgKHg6IHN0cmluZykgPT4gdGhpcy5kYXRhLmZpbHRlcigoZCkgPT4gZC5pZCA9PT0geCkubGVuZ3RoXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBvblBvcHVwT3BlbihldmVudDogUHJldmVudGFibGVFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaW5nbGVNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA+IDAgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiBPYnNlcnZhYmxlPFBhZ2U8TmFtZWRNb2RlbD4+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2UodGhpcy5maWx0ZXIgPyB7IGZpbHRlcjogdGhpcy5maWx0ZXIgfSA6IHt9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsXG4gICAgZm9yPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICBjbGFzcz1cImNvbC1tZC0zIGNvbnRyb2wtbGFiZWxcIlxuICAgIHRyYW5zbGF0ZT1cInt7IGxhYmVsS2V5IH19XCJcbiAgPjwvbGFiZWw+XG4gIDxkaXYgKm5nSWY9XCJjb250cm9sXCIgY2xhc3M9XCJjb2wtbWQtOVwiPlxuICAgIDxrZW5kby1tdWx0aXNlbGVjdFxuICAgICAgaWQ9XCJ7eyAnXycgKyBmaWVsZE5hbWUgfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICBbYXV0b0Nsb3NlXT1cImF1dG9DbG9zZVwiXG4gICAgICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiXG4gICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCJcbiAgICAgIFt2YWx1ZVByaW1pdGl2ZV09XCJ0cnVlXCJcbiAgICAgIChvcGVuKT1cIm9uUG9wdXBPcGVuKCRldmVudClcIlxuICAgID5cbiAgICA8L2tlbmRvLW11bHRpc2VsZWN0PlxuXG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2wuaW52YWxpZCAmJiBjb250cm9sLnRvdWNoZWRcIiBjbGFzcz1cImJnLWRhbmdlclwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmVycm9yc1sncmVxdWlyZWQnXVwiPnt7XG4gICAgICAgICdSZXF1aXJlZCcgfCB0cmFuc2xhdGUgOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXCI+e3tcbiAgICAgICAgY29udHJvbC5lcnJvcnNbJ3NlcnZlckVycm9yTXNnJ11cbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2ZpZWxkLW11bHRpc2VsZWN0L2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktZWRpdC9maWVsZC1tdWx0aXNlbGVjdC9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7O0FBbUJ0RixNQUFNLE9BQU8seUJBQ1gsU0FBUSxjQUF3QjtJQVloQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQ1MsTUFBMEIsRUFDMUIsSUFBZ0I7UUFFdkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIakIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVhoQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFvQixJQUFJLFlBQVksRUFBSyxDQUFDO1FBRTNELFNBQUksR0FBc0IsRUFBRSxDQUFDO1FBVTNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdkIsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDMUQsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBL0NVLHlCQUF5QjtrR0FBekIseUJBQXlCLDhTQzFCdEMsMDNCQTZCQSw4dUNEVmlCO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsV0FBVyxFQUFFLGtCQUFrQjthQUNoQztTQUNGOzsyRkFFVSx5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUdkO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFdBQVcsRUFBRSxrQkFBa0I7eUJBQ2hDO3FCQUNGO2dIQUtRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xDb250YWluZXIsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyL2Zvcm1zL3dpZGdldHMvZmllbGQvZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IElkZW50aWZpZWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2FuZ3VsYXIvbW9kZWxzL0lkZW50aWZpZWRNb2RlbCc7XG5pbXBvcnQgeyBOYW1lZE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vYW5ndWxhci9tb2RlbHMvTmFtZWRNb2RlbCc7XG5pbXBvcnQgeyBJRW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL0lFbnRpdHlTZXJ2aWNlJztcbmltcG9ydCB7IFByZXZlbnRhYmxlRXZlbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kcm9wZG93bnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3Byb2plY3RzL2tlbmRvL3NyYy9saWIvbW9kZWxzL1BhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWVsZC1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC5jc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkTXVsdGlTZWxlY3RDb21wb25lbnQ8VD5cbiAgZXh0ZW5kcyBGaWVsZENvbXBvbmVudDxzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzZXJ2aWNlOiBJRW50aXR5U2VydmljZTxOYW1lZE1vZGVsPjtcbiAgQElucHV0KCkgcmViaW5kOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbHRlcj86IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3I7XG4gIEBJbnB1dCgpIHRleHRGaWVsZD86IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgQElucHV0KCkgc2luZ2xlTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBkYXRhOiBJZGVudGlmaWVkTW9kZWxbXSA9IFtdO1xuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5mb3JtLmdldCh0aGlzLmZpZWxkTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHVibGljIGVyZWY6IEVsZW1lbnRSZWYsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgZXJlZiwgW10pO1xuICAgIHRoaXMudGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQgPz8gJ25hbWUnO1xuICAgIHRoaXMudmFsdWVGaWVsZCA9IHRoaXMudmFsdWVGaWVsZCA/PyAnaWQnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXREYXRhKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgIHRoaXMuY29udHJvbC52YWx1ZS5maWx0ZXIoXG4gICAgICAgICAgKHg6IHN0cmluZykgPT4gdGhpcy5kYXRhLmZpbHRlcigoZCkgPT4gZC5pZCA9PT0geCkubGVuZ3RoXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBvblBvcHVwT3BlbihldmVudDogUHJldmVudGFibGVFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaW5nbGVNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA+IDAgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiBPYnNlcnZhYmxlPFBhZ2U8TmFtZWRNb2RlbD4+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2UodGhpcy5maWx0ZXIgPyB7IGZpbHRlcjogdGhpcy5maWx0ZXIgfSA6IHt9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsXG4gICAgZm9yPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICBjbGFzcz1cImNvbC1tZC0zIGNvbnRyb2wtbGFiZWxcIlxuICAgIHRyYW5zbGF0ZT1cInt7IGxhYmVsS2V5IH19XCJcbiAgPjwvbGFiZWw+XG4gIDxkaXYgKm5nSWY9XCJjb250cm9sXCIgY2xhc3M9XCJjb2wtbWQtOVwiPlxuICAgIDxrZW5kby1tdWx0aXNlbGVjdFxuICAgICAgaWQ9XCJ7eyAnXycgKyBmaWVsZE5hbWUgfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICBbYXV0b0Nsb3NlXT1cImF1dG9DbG9zZVwiXG4gICAgICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiXG4gICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCJcbiAgICAgIFt2YWx1ZVByaW1pdGl2ZV09XCJ0cnVlXCJcbiAgICAgIChvcGVuKT1cIm9uUG9wdXBPcGVuKCRldmVudClcIlxuICAgID5cbiAgICA8L2tlbmRvLW11bHRpc2VsZWN0PlxuXG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2wuaW52YWxpZCAmJiBjb250cm9sLnRvdWNoZWRcIiBjbGFzcz1cImJnLWRhbmdlclwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmVycm9yc1sncmVxdWlyZWQnXVwiPnt7XG4gICAgICAgICdSZXF1aXJlZCcgfCB0cmFuc2xhdGUgOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXCI+e3tcbiAgICAgICAgY29udHJvbC5lcnJvcnNbJ3NlcnZlckVycm9yTXNnJ11cbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -195,13 +195,13 @@ export class EntityListComponent {
195
195
  this.onFilterChange();
196
196
  this.getData();
197
197
  }
198
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: EntityListComponent, deps: [{ token: i1.TranslateService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: EntityListComponent, selector: "entity-list", inputs: { service: "service", filters: "filters", fields: "fields", commands: "commands", rowClass: "rowClass", defaultSort: "defaultSort", mapItemFn: "mapItemFn", pageButtonsCount: "pageButtonsCount" }, outputs: { filterChange: "filterChange" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["confirmDialog"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-md-4\">\n <header class=\"header-page-bg\"></header>\n <div class=\"panel search-panel hero-unit\">\n <div class=\"header-selection-field\">\n <label for=\"searchinput\" class=\"title-field\" translate=\"Search\"></label>\n <input\n kendoTextBox\n class=\"quick-filter input input-field\"\n title=\"\"\n id=\"searchinput\"\n type=\"text\"\n appDebounce\n (debounceKeyup)=\"onSearch($event.target.value)\"\n [ngModel]=\"searchTerm\"\n [debounceTime]=\"600\"\n />\n </div>\n <ng-content></ng-content>\n <div class=\"divide-line\"></div>\n\n <kendo-grid\n [data]=\"page | async\"\n [pageSize]=\"gridState.take\"\n [skip]=\"gridState.skip\"\n [sort]=\"gridState.sort\"\n [pageable]=\"true\"\n [sortable]=\"true\"\n [style.maxHeight.px]=\"480\"\n (remove)=\"removeHandler($event)\"\n (dataStateChange)=\"dataStateChange($event)\"\n [loading]=\"loadings > 0\"\n (cellClick)=\"selectItem($event)\"\n culture\n class=\"rows-pointable\"\n kendoGridSelectBy=\"id\"\n [selectedKeys]=\"selected\"\n [rowClass]=\"getRowClass\"\n >\n <ng-template kendoGridToolbarTemplate>\n <excel-export-button></excel-export-button>\n </ng-template>\n <kendo-grid-excel [fetchData]=\"getAllData\"></kendo-grid-excel>\n <kendo-grid-command-column width=\"65\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button\n *ngIf=\"!dataItem.suppressDeletion\"\n kendoGridRemoveCommand\n requirePermission\n permissionType=\"Delete\"\n >\n <em class=\"k-icon glyphicon glyphicon-trash\"></em>\n </button>\n </ng-template>\n </kendo-grid-command-column>\n <kendo-grid-column\n *ngFor=\"let field of gridFields\"\n field=\"{{ field.name }}\"\n title=\"{{ field.label | translate }}\"\n [sortable]=\"field.sortable !== false\"\n >\n </kendo-grid-column>\n <kendo-grid-command-column width=\"65\" *ngIf=\"commands.length > 0\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button\n *ngFor=\"let command of commands\"\n (click)=\"command.handler(dataItem)\"\n title=\"{{ command.title | translate }}\"\n class=\"k-button\"\n >\n <em\n *ngIf=\"command.iconClass\"\n class=\"{{ command.iconClass }}\"\n ></em>\n {{ command.name | translate }}\n </button>\n </ng-template>\n </kendo-grid-command-column>\n <ng-template kendoGridNoRecordsTemplate>\n {{ \"Messages.NoRecords\" | translate }}\n </ng-template>\n <ng-template kendoPagerTemplate>\n <kendo-grid-spacer></kendo-grid-spacer>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons\n [buttonCount]=\"pageButtonsCount\"\n ></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n </ng-template>\n </kendo-grid>\n </div>\n </div>\n <router-outlet\n (activate)=\"onActivate($event)\"\n (deactivate)=\"onDeactivate($event)\"\n ></router-outlet>\n</div>\n<confirm-dialog #confirmDialog></confirm-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.DebounceDirective, selector: "[appDebounce]", inputs: ["debounceTime"], outputs: ["debounceKeyup"] }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i5.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "component", type: i5.GridSpacerComponent, selector: "kendo-grid-spacer, kendo-pager-spacer", inputs: ["width"] }, { kind: "directive", type: i5.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "directive", type: i5.GridToolbarFocusableDirective, selector: " [kendoGridToolbarFocusable], [kendoGridAddCommand], [kendoGridCancelCommand], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridExcelCommand], [kendoGridPDFCommand] " }, { kind: "component", type: i5.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i5.FocusableDirective, selector: "[kendoGridFocusable], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridCancelCommand], [kendoGridSelectionCheckbox] ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: i5.CommandColumnComponent, selector: "kendo-grid-command-column" }, { kind: "directive", type: i5.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i5.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "component", type: i5.RemoveCommandDirective, selector: "[kendoGridRemoveCommand]" }, { kind: "component", type: i5.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i5.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i5.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i5.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "directive", type: i5.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i5.ExcelComponent, selector: "kendo-grid-excel", inputs: ["fileName", "filterable", "creator", "date", "forceProxy", "proxyURL", "fetchData", "paddingCellOptions", "headerPaddingCellOptions", "collapsible"] }, { kind: "directive", type: i6.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { 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.ConfirmDialogComponent, selector: "confirm-dialog" }, { kind: "component", type: i9.ExcelExportButtonComponent, selector: "excel-export-button" }, { kind: "directive", type: i10.RequirePermissionDirective, selector: "[requirePermission]", inputs: ["permissionType", "permissionCategory"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: EntityListComponent, deps: [{ token: i1.TranslateService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: EntityListComponent, selector: "entity-list", inputs: { service: "service", filters: "filters", fields: "fields", commands: "commands", rowClass: "rowClass", defaultSort: "defaultSort", mapItemFn: "mapItemFn", pageButtonsCount: "pageButtonsCount" }, outputs: { filterChange: "filterChange" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["confirmDialog"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-md-4\">\n <header class=\"header-page-bg\"></header>\n <div class=\"panel search-panel hero-unit\">\n <div class=\"header-selection-field\">\n <label for=\"searchinput\" class=\"title-field\" translate=\"Search\"></label>\n <input\n kendoTextBox\n class=\"quick-filter input input-field\"\n title=\"\"\n id=\"searchinput\"\n type=\"text\"\n appDebounce\n (debounceKeyup)=\"onSearch($event.target.value)\"\n [ngModel]=\"searchTerm\"\n [debounceTime]=\"600\"\n />\n </div>\n <ng-content></ng-content>\n <div class=\"divide-line\"></div>\n\n <kendo-grid\n [data]=\"page | async\"\n [pageSize]=\"gridState.take\"\n [skip]=\"gridState.skip\"\n [sort]=\"gridState.sort\"\n [pageable]=\"true\"\n [sortable]=\"true\"\n [style.maxHeight.px]=\"480\"\n (remove)=\"removeHandler($event)\"\n (dataStateChange)=\"dataStateChange($event)\"\n [loading]=\"loadings > 0\"\n (cellClick)=\"selectItem($event)\"\n culture\n class=\"rows-pointable\"\n kendoGridSelectBy=\"id\"\n [selectedKeys]=\"selected\"\n [rowClass]=\"getRowClass\"\n >\n <ng-template kendoGridToolbarTemplate>\n <excel-export-button></excel-export-button>\n </ng-template>\n <kendo-grid-excel [fetchData]=\"getAllData\"></kendo-grid-excel>\n <kendo-grid-command-column width=\"65\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button\n *ngIf=\"!dataItem.suppressDeletion\"\n kendoGridRemoveCommand\n requirePermission\n permissionType=\"Delete\"\n >\n <em class=\"k-icon glyphicon glyphicon-trash\"></em>\n </button>\n </ng-template>\n </kendo-grid-command-column>\n <kendo-grid-column\n *ngFor=\"let field of gridFields\"\n field=\"{{ field.name }}\"\n title=\"{{ field.label | translate }}\"\n [sortable]=\"field.sortable !== false\"\n >\n </kendo-grid-column>\n <kendo-grid-command-column width=\"65\" *ngIf=\"commands.length > 0\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button\n *ngFor=\"let command of commands\"\n (click)=\"command.handler(dataItem)\"\n title=\"{{ command.title | translate }}\"\n class=\"k-button\"\n >\n <em\n *ngIf=\"command.iconClass\"\n class=\"{{ command.iconClass }}\"\n ></em>\n {{ command.name | translate }}\n </button>\n </ng-template>\n </kendo-grid-command-column>\n <ng-template kendoGridNoRecordsTemplate>\n {{ \"Messages.NoRecords\" | translate }}\n </ng-template>\n <ng-template kendoPagerTemplate>\n <kendo-grid-spacer></kendo-grid-spacer>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons\n [buttonCount]=\"pageButtonsCount\"\n ></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n </ng-template>\n </kendo-grid>\n </div>\n </div>\n <router-outlet\n (activate)=\"onActivate($event)\"\n (deactivate)=\"onDeactivate($event)\"\n ></router-outlet>\n</div>\n<confirm-dialog #confirmDialog></confirm-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.DebounceDirective, selector: "[appDebounce]", inputs: ["debounceTime"], outputs: ["debounceKeyup"] }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i5.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "component", type: i5.GridSpacerComponent, selector: "kendo-grid-spacer, kendo-pager-spacer", inputs: ["width"] }, { kind: "directive", type: i5.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "directive", type: i5.GridToolbarFocusableDirective, selector: " [kendoGridToolbarFocusable], [kendoGridAddCommand], [kendoGridCancelCommand], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridExcelCommand], [kendoGridPDFCommand] " }, { kind: "component", type: i5.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i5.FocusableDirective, selector: "[kendoGridFocusable], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridCancelCommand], [kendoGridSelectionCheckbox] ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: i5.CommandColumnComponent, selector: "kendo-grid-command-column" }, { kind: "directive", type: i5.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i5.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "component", type: i5.RemoveCommandDirective, selector: "[kendoGridRemoveCommand]" }, { kind: "component", type: i5.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i5.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i5.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i5.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "directive", type: i5.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i5.ExcelComponent, selector: "kendo-grid-excel", inputs: ["fileName", "filterable", "creator", "date", "forceProxy", "proxyURL", "fetchData", "paddingCellOptions", "headerPaddingCellOptions", "collapsible"] }, { kind: "directive", type: i6.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { 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.ConfirmDialogComponent, selector: "confirm-dialog" }, { kind: "component", type: i9.ExcelExportButtonComponent, selector: "excel-export-button" }, { kind: "directive", type: i10.RequirePermissionDirective, selector: "[requirePermission]", inputs: ["permissionType", "permissionCategory"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
200
200
  }
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: EntityListComponent, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: EntityListComponent, decorators: [{
202
202
  type: Component,
203
203
  args: [{ selector: 'entity-list', template: "<div class=\"row\">\n <div class=\"col-md-4\">\n <header class=\"header-page-bg\"></header>\n <div class=\"panel search-panel hero-unit\">\n <div class=\"header-selection-field\">\n <label for=\"searchinput\" class=\"title-field\" translate=\"Search\"></label>\n <input\n kendoTextBox\n class=\"quick-filter input input-field\"\n title=\"\"\n id=\"searchinput\"\n type=\"text\"\n appDebounce\n (debounceKeyup)=\"onSearch($event.target.value)\"\n [ngModel]=\"searchTerm\"\n [debounceTime]=\"600\"\n />\n </div>\n <ng-content></ng-content>\n <div class=\"divide-line\"></div>\n\n <kendo-grid\n [data]=\"page | async\"\n [pageSize]=\"gridState.take\"\n [skip]=\"gridState.skip\"\n [sort]=\"gridState.sort\"\n [pageable]=\"true\"\n [sortable]=\"true\"\n [style.maxHeight.px]=\"480\"\n (remove)=\"removeHandler($event)\"\n (dataStateChange)=\"dataStateChange($event)\"\n [loading]=\"loadings > 0\"\n (cellClick)=\"selectItem($event)\"\n culture\n class=\"rows-pointable\"\n kendoGridSelectBy=\"id\"\n [selectedKeys]=\"selected\"\n [rowClass]=\"getRowClass\"\n >\n <ng-template kendoGridToolbarTemplate>\n <excel-export-button></excel-export-button>\n </ng-template>\n <kendo-grid-excel [fetchData]=\"getAllData\"></kendo-grid-excel>\n <kendo-grid-command-column width=\"65\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button\n *ngIf=\"!dataItem.suppressDeletion\"\n kendoGridRemoveCommand\n requirePermission\n permissionType=\"Delete\"\n >\n <em class=\"k-icon glyphicon glyphicon-trash\"></em>\n </button>\n </ng-template>\n </kendo-grid-command-column>\n <kendo-grid-column\n *ngFor=\"let field of gridFields\"\n field=\"{{ field.name }}\"\n title=\"{{ field.label | translate }}\"\n [sortable]=\"field.sortable !== false\"\n >\n </kendo-grid-column>\n <kendo-grid-command-column width=\"65\" *ngIf=\"commands.length > 0\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button\n *ngFor=\"let command of commands\"\n (click)=\"command.handler(dataItem)\"\n title=\"{{ command.title | translate }}\"\n class=\"k-button\"\n >\n <em\n *ngIf=\"command.iconClass\"\n class=\"{{ command.iconClass }}\"\n ></em>\n {{ command.name | translate }}\n </button>\n </ng-template>\n </kendo-grid-command-column>\n <ng-template kendoGridNoRecordsTemplate>\n {{ \"Messages.NoRecords\" | translate }}\n </ng-template>\n <ng-template kendoPagerTemplate>\n <kendo-grid-spacer></kendo-grid-spacer>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons\n [buttonCount]=\"pageButtonsCount\"\n ></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n </ng-template>\n </kendo-grid>\n </div>\n </div>\n <router-outlet\n (activate)=\"onActivate($event)\"\n (deactivate)=\"onDeactivate($event)\"\n ></router-outlet>\n</div>\n<confirm-dialog #confirmDialog></confirm-dialog>\n" }]
204
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.ActivatedRoute }, { type: i2.Router }]; }, propDecorators: { service: [{
204
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.ActivatedRoute }, { type: i2.Router }], propDecorators: { service: [{
205
205
  type: Input
206
206
  }], filters: [{
207
207
  type: Input
@@ -223,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
223
223
  type: ViewChild,
224
224
  args: ['confirmDialog', { static: true }]
225
225
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1saXN0L2VudGl0eS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktbGlzdC9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQWF2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFFL0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBT3pCLE1BQU0sT0FBTyxtQkFBbUI7SUFpQzlCLFlBQ1UsU0FBMkIsRUFDM0IsS0FBcUIsRUFDckIsTUFBYztRQUZkLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUF0QmpCLGNBQVMsR0FBa0QsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN6RSxJQUFJLENBQUM7UUFDRSxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFFL0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUc3RCxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLFNBQUksR0FBc0MsSUFBSSxlQUFlLENBRWxFLElBQUksQ0FBQyxDQUFDO1FBQ0QsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUVi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c2JDekNoQywrakhBbUdBOzs0RkQxRGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWE7eUpBTWhCLE9BQU87c0JBRGIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsTUFBTTtzQkFEWixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVDLFlBQVk7c0JBRGxCLE1BQU07Z0JBR0EsTUFBTTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFibGUgfSBmcm9tICcuLi8uLi9hbmd1bGFyL21vZGVscy9yZW1vdmFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBEYXRhU3RhdGVDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7XG4gIENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IsXG4gIEZpbHRlckRlc2NyaXB0b3IsXG4gIFNvcnREZXNjcmlwdG9yLFxuICBTdGF0ZSxcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJZGVudGlmaWVkTW9kZWwgfSBmcm9tICcuLi8uLi9hbmd1bGFyL21vZGVscy9JZGVudGlmaWVkTW9kZWwnO1xuaW1wb3J0IHsgTmFtZWRNb2RlbCB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL05hbWVkTW9kZWwnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJy4uLy4uL21vZGVscy9QYWdlJztcbmltcG9ydCB7IElFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvSUVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi9Db21tYW5kJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9GaWVsZCc7XG5pbXBvcnQgeyB1cmxEZXNlcmlhbGl6ZSwgdXJsU2VyaWFsaXplIH0gZnJvbSAnLi9VcmxTZXJpYWxpemVyJztcblxuY29uc3QgbmFtZUZpZWxkID0gJ25hbWUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbnRpdHktbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudGl0eS1saXN0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIHNlcnZpY2U6IElFbnRpdHlTZXJ2aWNlPE5hbWVkTW9kZWw+O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsdGVyczogKEZpbHRlckRlc2NyaXB0b3IgfCBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yKVtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmllbGRzPzogRmllbGRbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbW1hbmRzPzogQ29tbWFuZFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgcm93Q2xhc3M/OiAoZGF0YUl0ZW06IE5hbWVkTW9kZWwsIGluZGV4OiBudW1iZXIpID0+IHt9O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdFNvcnQ/OiBTb3J0RGVzY3JpcHRvcltdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFwSXRlbUZuPzogKGl0ZW06IE5hbWVkTW9kZWwpID0+IE5hbWVkTW9kZWwgJiBSZW1vdmFibGUgPSAoaXRlbSkgPT5cbiAgICBpdGVtO1xuICBASW5wdXQoKSBwYWdlQnV0dG9uc0NvdW50OiBudW1iZXIgPSA1O1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcj4oKTtcbiAgQFZpZXdDaGlsZCgnY29uZmlybURpYWxvZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBkaWFsb2c6IENvbmZpcm1EaWFsb2dDb21wb25lbnQ7XG4gIHB1YmxpYyBncmlkU3RhdGU6IFN0YXRlID0ge307XG4gIHB1YmxpYyBwYWdlOiBCZWhhdmlvclN1YmplY3Q8UGFnZTxOYW1lZE1vZGVsPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFBhZ2U8TmFtZWRNb2RlbD5cbiAgPihudWxsKTtcbiAgcHVibGljIGxvYWRpbmdzID0gMDtcbiAgcHVibGljIHNlYXJjaFRlcm06IHN0cmluZztcbiAgcHVibGljIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgZ3JpZEZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGRlZmF1bHRGaWVsZHM6IEZpZWxkW10gPSBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGxhYmVsOiAnTmFtZScsIHNvcnRhYmxlOiB0cnVlLCBwb3NpdGlvbjogMCB9LFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICAgIHRoaXMuZ2V0QWxsRGF0YSA9IHRoaXMuZ2V0QWxsRGF0YS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0Um93Q2xhc3MgPSB0aGlzLmdldFJvd0NsYXNzLmJpbmQodGhpcyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5maWx0ZXJzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXRGaWx0ZXJlZERhdGEoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JpZEZpZWxkcyA9ICh0aGlzLmZpZWxkcyB8fCBbXSlcbiAgICAgIC5jb25jYXQodGhpcy5kZWZhdWx0RmllbGRzKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiAobGVmdC5wb3NpdGlvbiB8fCAwKSAtIChyaWdodC5wb3NpdGlvbiB8fCAwKSk7XG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzID8gdGhpcy5maWx0ZXJzIDogW107XG4gICAgdGhpcy5jb21tYW5kcyA9IHRoaXMuY29tbWFuZHMgPyB0aGlzLmNvbW1hbmRzIDogW107XG4gICAgdGhpcy5yb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoYXN5bmMgKGZyYWdtZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucmVzdG9yZUdyaWRTdGF0ZShuZXcgVVJMU2VhcmNoUGFyYW1zKGZyYWdtZW50KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlLmZpcnN0Q2hpbGQucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFswXSA9IHBhcmFtcy5pZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQucG9wKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcih7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFxuICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQ29uZmlybWF0aW9uLkRlbGV0ZScpICtcbiAgICAgICAgJzogXCInICtcbiAgICAgICAgZGF0YUl0ZW0ubmFtZSArXG4gICAgICAgICdcIj8nLFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmUoZGF0YUl0ZW0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0SXRlbSh7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZGF0YUl0ZW0uaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25BY3RpdmF0ZShjaGlsZDogeyBzYXZlZDogRXZlbnRFbWl0dGVyPE5hbWVkTW9kZWw+IH0pIHtcbiAgICBpZiAoY2hpbGQuc2F2ZWQpIHtcbiAgICAgIGNoaWxkLnNhdmVkLnN1YnNjcmliZSgoZGF0YTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKGRhdGEpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25EZWFjdGl2YXRlKGNoaWxkOiB7IHNhdmVkOiBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbD4gfSkge1xuICAgIGlmIChjaGlsZC5zYXZlZCkge1xuICAgICAgY2hpbGQuc2F2ZWQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGF0YVN0YXRlQ2hhbmdlKHN0YXRlOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5ncmlkU3RhdGUuZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXIoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIGZyYWdtZW50OiB1cmxTZXJpYWxpemUodGhpcy5ncmlkU3RhdGUpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB2YWx1ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gMDtcbiAgICB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbERhdGEoKTogT2JzZXJ2YWJsZTxQYWdlPE5hbWVkTW9kZWwgJiBSZW1vdmFibGU+PiB7XG4gICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyaWRTdGF0ZSk7XG4gICAgZGVsZXRlIHN0YXRlLnNraXA7XG4gICAgZGVsZXRlIHN0YXRlLnRha2U7XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2Uoc3RhdGUpLnBpcGUoXG4gICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgcGFnZVJlc3VsdC5kYXRhID0gcGFnZVJlc3VsdC5kYXRhLm1hcCh0aGlzLm1hcEl0ZW1Gbik7XG5cbiAgICAgICAgcmV0dXJuIHBhZ2VSZXN1bHQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFJvd0NsYXNzKGNvbnRleHQ6IFJvd0NsYXNzQXJncyk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMucm93Q2xhc3MgJiYgY29udGV4dFxuICAgICAgPyB0aGlzLnJvd0NsYXNzKGNvbnRleHQuZGF0YUl0ZW0sIGNvbnRleHQuaW5kZXgpXG4gICAgICA6IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpbHRlcmVkRGF0YSgpIHtcbiAgICB0aGlzLmdyaWRTdGF0ZS5maWx0ZXIgPSB0aGlzLmdldEZpbHRlcigpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlR3JpZChkYXRhOiBOYW1lZE1vZGVsKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSB7IC4uLnRoaXMucGFnZS52YWx1ZSB9O1xuICAgIGNvbnN0IGV4aXN0cyA9IGN1cnJlbnRQYWdlLmRhdGEuZmlsdGVyKCh4KSA9PiB4LmlkID09PSBkYXRhLmlkKTtcbiAgICBpZiAoZXhpc3RzLmxlbmd0aCkge1xuICAgICAgY3VycmVudFBhZ2UuZGF0YVtjdXJyZW50UGFnZS5kYXRhLmluZGV4T2YoZXhpc3RzWzBdKV0gPSBkYXRhO1xuICAgICAgdGhpcy5wYWdlLm5leHQoY3VycmVudFBhZ2UpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3VycmVudFBhZ2UudG90YWwrKztcbiAgICBjdXJyZW50UGFnZS5kYXRhLnNwbGljZSgwLCAwLCBkYXRhKTtcbiAgICBpZiAoY3VycmVudFBhZ2UuZGF0YS5sZW5ndGggPiB0aGlzLmdyaWRTdGF0ZS50YWtlKSB7XG4gICAgICBjdXJyZW50UGFnZS5kYXRhLnNwbGljZSh0aGlzLnBhZ2UudmFsdWUuZGF0YS5sZW5ndGggLSAxLCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2UubmV4dChjdXJyZW50UGFnZSk7XG4gICAgdGhpcy5zZWxlY3RlZFswXSA9IGRhdGEuaWQ7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2RhdGEuaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhKCkge1xuICAgIHRoaXMubG9hZGluZ3MrKztcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAuZ2V0UGFnZSh0aGlzLmdyaWRTdGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgICBwYWdlUmVzdWx0LmRhdGEgPSBwYWdlUmVzdWx0LmRhdGEubWFwKHRoaXMubWFwSXRlbUZuKTtcblxuICAgICAgICAgIHJldHVybiBwYWdlUmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5wYWdlLm5leHQocGFnZSk7XG4gICAgICAgIHRoaXMubG9hZGluZ3MtLTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmUoZW50aXR5OiBJZGVudGlmaWVkTW9kZWwpIHtcbiAgICB0aGlzLmxvYWRpbmdzKys7XG4gICAgdGhpcy5zZXJ2aWNlXG4gICAgICAuZGVsZXRlKGVudGl0eS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkW3RoaXMuc2VsZWN0ZWQubGVuZ3RoIC0gMV0gPT09IGVudGl0eS5pZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8nXSwge1xuICAgICAgICAgICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0cnVlLFxuICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLmZpcnN0Q2hpbGQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2FkaW5ncy0tO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldERhdGEoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXIoKTogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgY29uc3QgZmlsdGVyOiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yID0ge1xuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgZmlsdGVyczogdGhpcy5zZWFyY2hUZXJtXG4gICAgICAgID8gW1xuICAgICAgICAgICAgeyBmaWVsZDogbmFtZUZpZWxkLCBvcGVyYXRvcjogJ2NvbnRhaW5zJywgdmFsdWU6IHRoaXMuc2VhcmNoVGVybSB9LFxuICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgICAgIF1cbiAgICAgICAgOiB0aGlzLmZpbHRlcnMsXG4gICAgfTtcblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsdGVyQ2hhbmdlKCkge1xuICAgIGNvbnN0IGZpbHRlcjogYW55ID0gdGhpcy5ncmlkU3RhdGUuZmlsdGVyPy5maWx0ZXJzLmZpbmQoXG4gICAgICAoeDogRmlsdGVyRGVzY3JpcHRvcikgPT4geC5maWVsZCA9PT0gbmFtZUZpZWxkLFxuICAgICk7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gZmlsdGVyPy52YWx1ZTtcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMuZ3JpZFN0YXRlLmZpbHRlcik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc3RvcmVHcmlkU3RhdGUocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZFN0YXRlOiBTdGF0ZSA9IHtcbiAgICAgIHNvcnQ6IHRoaXMuZGVmYXVsdFNvcnQgfHwgW3sgZmllbGQ6IG5hbWVGaWVsZCwgZGlyOiAnYXNjJyB9XSxcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMCxcbiAgICAgIGZpbHRlcjogdGhpcy5nZXRGaWx0ZXIoKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhdGUgPSB1cmxEZXNlcmlhbGl6ZShwYXJhbXMpO1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGUuaGFzT3duUHJvcGVydHkoJ3Rha2UnKSA/IHN0YXRlIDogZGVmYXVsdEdyaWRTdGF0ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gK3RoaXMuZ3JpZFN0YXRlLnNraXA7XG4gICAgdGhpcy5ncmlkU3RhdGUudGFrZSA9ICt0aGlzLmdyaWRTdGF0ZS50YWtlO1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UoKTtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLXBhZ2UtYmdcIj48L2hlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwgc2VhcmNoLXBhbmVsIGhlcm8tdW5pdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1zZWxlY3Rpb24tZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaGlucHV0XCIgY2xhc3M9XCJ0aXRsZS1maWVsZFwiIHRyYW5zbGF0ZT1cIlNlYXJjaFwiPjwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGtlbmRvVGV4dEJveFxuICAgICAgICAgIGNsYXNzPVwicXVpY2stZmlsdGVyIGlucHV0IGlucHV0LWZpZWxkXCJcbiAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgaWQ9XCJzZWFyY2hpbnB1dFwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGFwcERlYm91bmNlXG4gICAgICAgICAgKGRlYm91bmNlS2V5dXApPVwib25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiNjAwXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZS1saW5lXCI+PC9kaXY+XG5cbiAgICAgIDxrZW5kby1ncmlkXG4gICAgICAgIFtkYXRhXT1cInBhZ2UgfCBhc3luY1wiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJncmlkU3RhdGUudGFrZVwiXG4gICAgICAgIFtza2lwXT1cImdyaWRTdGF0ZS5za2lwXCJcbiAgICAgICAgW3NvcnRdPVwiZ3JpZFN0YXRlLnNvcnRcIlxuICAgICAgICBbcGFnZWFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW3N0eWxlLm1heEhlaWdodC5weF09XCI0ODBcIlxuICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgIChkYXRhU3RhdGVDaGFuZ2UpPVwiZGF0YVN0YXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5ncyA+IDBcIlxuICAgICAgICAoY2VsbENsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIGN1bHR1cmVcbiAgICAgICAgY2xhc3M9XCJyb3dzLXBvaW50YWJsZVwiXG4gICAgICAgIGtlbmRvR3JpZFNlbGVjdEJ5PVwiaWRcIlxuICAgICAgICBbc2VsZWN0ZWRLZXlzXT1cInNlbGVjdGVkXCJcbiAgICAgICAgW3Jvd0NsYXNzXT1cImdldFJvd0NsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZT5cbiAgICAgICAgICA8ZXhjZWwtZXhwb3J0LWJ1dHRvbj48L2V4Y2VsLWV4cG9ydC1idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxrZW5kby1ncmlkLWV4Y2VsIFtmZXRjaERhdGFdPVwiZ2V0QWxsRGF0YVwiPjwva2VuZG8tZ3JpZC1leGNlbD5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gd2lkdGg9XCI2NVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFkYXRhSXRlbS5zdXBwcmVzc0RlbGV0aW9uXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkUmVtb3ZlQ29tbWFuZFxuICAgICAgICAgICAgICByZXF1aXJlUGVybWlzc2lvblxuICAgICAgICAgICAgICBwZXJtaXNzaW9uVHlwZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxlbSBjbGFzcz1cImstaWNvbiBnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCI+PC9lbT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwva2VuZG8tZ3JpZC1jb21tYW5kLWNvbHVtbj5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29sdW1uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGdyaWRGaWVsZHNcIlxuICAgICAgICAgIGZpZWxkPVwie3sgZmllbGQubmFtZSB9fVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW3NvcnRhYmxlXT1cImZpZWxkLnNvcnRhYmxlICE9PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gd2lkdGg9XCI2NVwiICpuZ0lmPVwiY29tbWFuZHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tbWFuZCBvZiBjb21tYW5kc1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb21tYW5kLmhhbmRsZXIoZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBjb21tYW5kLnRpdGxlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJrLWJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tbWFuZC5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgY29tbWFuZC5pY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICA+PC9lbT5cbiAgICAgICAgICAgICAge3sgY29tbWFuZC5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2tlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgICAgICB7eyBcIk1lc3NhZ2VzLk5vUmVjb3Jkc1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGU+XG4gICAgICAgICAgPGtlbmRvLWdyaWQtc3BhY2VyPjwva2VuZG8tZ3JpZC1zcGFjZXI+XG4gICAgICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgICAgICA8a2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zXG4gICAgICAgICAgICBbYnV0dG9uQ291bnRdPVwicGFnZUJ1dHRvbnNDb3VudFwiXG4gICAgICAgICAgPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICAgICAgPGtlbmRvLXBhZ2VyLWluZm8+PC9rZW5kby1wYWdlci1pbmZvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHJvdXRlci1vdXRsZXRcbiAgICAoYWN0aXZhdGUpPVwib25BY3RpdmF0ZSgkZXZlbnQpXCJcbiAgICAoZGVhY3RpdmF0ZSk9XCJvbkRlYWN0aXZhdGUoJGV2ZW50KVwiXG4gID48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbjxjb25maXJtLWRpYWxvZyAjY29uZmlybURpYWxvZz48L2NvbmZpcm0tZGlhbG9nPlxuIl19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1saXN0L2VudGl0eS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktbGlzdC9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQWF2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFFL0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBT3pCLE1BQU0sT0FBTyxtQkFBbUI7SUFpQzlCLFlBQ1UsU0FBMkIsRUFDM0IsS0FBcUIsRUFDckIsTUFBYztRQUZkLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUF0QmpCLGNBQVMsR0FBa0QsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN6RSxJQUFJLENBQUM7UUFDRSxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFFL0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUc3RCxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLFNBQUksR0FBc0MsSUFBSSxlQUFlLENBRWxFLElBQUksQ0FBQyxDQUFDO1FBQ0QsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUVi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c2JDekNoQywrakhBbUdBOzsyRkQxRGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWE7dUlBTWhCLE9BQU87c0JBRGIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsTUFBTTtzQkFEWixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVDLFlBQVk7c0JBRGxCLE1BQU07Z0JBR0EsTUFBTTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFibGUgfSBmcm9tICcuLi8uLi9hbmd1bGFyL21vZGVscy9yZW1vdmFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBEYXRhU3RhdGVDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7XG4gIENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IsXG4gIEZpbHRlckRlc2NyaXB0b3IsXG4gIFNvcnREZXNjcmlwdG9yLFxuICBTdGF0ZSxcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJZGVudGlmaWVkTW9kZWwgfSBmcm9tICcuLi8uLi9hbmd1bGFyL21vZGVscy9JZGVudGlmaWVkTW9kZWwnO1xuaW1wb3J0IHsgTmFtZWRNb2RlbCB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL05hbWVkTW9kZWwnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJy4uLy4uL21vZGVscy9QYWdlJztcbmltcG9ydCB7IElFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvSUVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi9Db21tYW5kJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9GaWVsZCc7XG5pbXBvcnQgeyB1cmxEZXNlcmlhbGl6ZSwgdXJsU2VyaWFsaXplIH0gZnJvbSAnLi9VcmxTZXJpYWxpemVyJztcblxuY29uc3QgbmFtZUZpZWxkID0gJ25hbWUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbnRpdHktbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudGl0eS1saXN0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIHNlcnZpY2U6IElFbnRpdHlTZXJ2aWNlPE5hbWVkTW9kZWw+O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsdGVyczogKEZpbHRlckRlc2NyaXB0b3IgfCBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yKVtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmllbGRzPzogRmllbGRbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbW1hbmRzPzogQ29tbWFuZFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgcm93Q2xhc3M/OiAoZGF0YUl0ZW06IE5hbWVkTW9kZWwsIGluZGV4OiBudW1iZXIpID0+IHt9O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdFNvcnQ/OiBTb3J0RGVzY3JpcHRvcltdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFwSXRlbUZuPzogKGl0ZW06IE5hbWVkTW9kZWwpID0+IE5hbWVkTW9kZWwgJiBSZW1vdmFibGUgPSAoaXRlbSkgPT5cbiAgICBpdGVtO1xuICBASW5wdXQoKSBwYWdlQnV0dG9uc0NvdW50OiBudW1iZXIgPSA1O1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcj4oKTtcbiAgQFZpZXdDaGlsZCgnY29uZmlybURpYWxvZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBkaWFsb2c6IENvbmZpcm1EaWFsb2dDb21wb25lbnQ7XG4gIHB1YmxpYyBncmlkU3RhdGU6IFN0YXRlID0ge307XG4gIHB1YmxpYyBwYWdlOiBCZWhhdmlvclN1YmplY3Q8UGFnZTxOYW1lZE1vZGVsPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFBhZ2U8TmFtZWRNb2RlbD5cbiAgPihudWxsKTtcbiAgcHVibGljIGxvYWRpbmdzID0gMDtcbiAgcHVibGljIHNlYXJjaFRlcm06IHN0cmluZztcbiAgcHVibGljIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgZ3JpZEZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGRlZmF1bHRGaWVsZHM6IEZpZWxkW10gPSBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGxhYmVsOiAnTmFtZScsIHNvcnRhYmxlOiB0cnVlLCBwb3NpdGlvbjogMCB9LFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICAgIHRoaXMuZ2V0QWxsRGF0YSA9IHRoaXMuZ2V0QWxsRGF0YS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0Um93Q2xhc3MgPSB0aGlzLmdldFJvd0NsYXNzLmJpbmQodGhpcyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5maWx0ZXJzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXRGaWx0ZXJlZERhdGEoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JpZEZpZWxkcyA9ICh0aGlzLmZpZWxkcyB8fCBbXSlcbiAgICAgIC5jb25jYXQodGhpcy5kZWZhdWx0RmllbGRzKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiAobGVmdC5wb3NpdGlvbiB8fCAwKSAtIChyaWdodC5wb3NpdGlvbiB8fCAwKSk7XG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzID8gdGhpcy5maWx0ZXJzIDogW107XG4gICAgdGhpcy5jb21tYW5kcyA9IHRoaXMuY29tbWFuZHMgPyB0aGlzLmNvbW1hbmRzIDogW107XG4gICAgdGhpcy5yb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoYXN5bmMgKGZyYWdtZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucmVzdG9yZUdyaWRTdGF0ZShuZXcgVVJMU2VhcmNoUGFyYW1zKGZyYWdtZW50KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlLmZpcnN0Q2hpbGQucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFswXSA9IHBhcmFtcy5pZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQucG9wKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcih7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFxuICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQ29uZmlybWF0aW9uLkRlbGV0ZScpICtcbiAgICAgICAgJzogXCInICtcbiAgICAgICAgZGF0YUl0ZW0ubmFtZSArXG4gICAgICAgICdcIj8nLFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmUoZGF0YUl0ZW0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0SXRlbSh7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZGF0YUl0ZW0uaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25BY3RpdmF0ZShjaGlsZDogeyBzYXZlZDogRXZlbnRFbWl0dGVyPE5hbWVkTW9kZWw+IH0pIHtcbiAgICBpZiAoY2hpbGQuc2F2ZWQpIHtcbiAgICAgIGNoaWxkLnNhdmVkLnN1YnNjcmliZSgoZGF0YTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKGRhdGEpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25EZWFjdGl2YXRlKGNoaWxkOiB7IHNhdmVkOiBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbD4gfSkge1xuICAgIGlmIChjaGlsZC5zYXZlZCkge1xuICAgICAgY2hpbGQuc2F2ZWQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGF0YVN0YXRlQ2hhbmdlKHN0YXRlOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5ncmlkU3RhdGUuZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXIoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIGZyYWdtZW50OiB1cmxTZXJpYWxpemUodGhpcy5ncmlkU3RhdGUpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB2YWx1ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gMDtcbiAgICB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbERhdGEoKTogT2JzZXJ2YWJsZTxQYWdlPE5hbWVkTW9kZWwgJiBSZW1vdmFibGU+PiB7XG4gICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyaWRTdGF0ZSk7XG4gICAgZGVsZXRlIHN0YXRlLnNraXA7XG4gICAgZGVsZXRlIHN0YXRlLnRha2U7XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2Uoc3RhdGUpLnBpcGUoXG4gICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgcGFnZVJlc3VsdC5kYXRhID0gcGFnZVJlc3VsdC5kYXRhLm1hcCh0aGlzLm1hcEl0ZW1Gbik7XG5cbiAgICAgICAgcmV0dXJuIHBhZ2VSZXN1bHQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFJvd0NsYXNzKGNvbnRleHQ6IFJvd0NsYXNzQXJncyk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMucm93Q2xhc3MgJiYgY29udGV4dFxuICAgICAgPyB0aGlzLnJvd0NsYXNzKGNvbnRleHQuZGF0YUl0ZW0sIGNvbnRleHQuaW5kZXgpXG4gICAgICA6IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpbHRlcmVkRGF0YSgpIHtcbiAgICB0aGlzLmdyaWRTdGF0ZS5maWx0ZXIgPSB0aGlzLmdldEZpbHRlcigpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlR3JpZChkYXRhOiBOYW1lZE1vZGVsKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSB7IC4uLnRoaXMucGFnZS52YWx1ZSB9O1xuICAgIGNvbnN0IGV4aXN0cyA9IGN1cnJlbnRQYWdlLmRhdGEuZmlsdGVyKCh4KSA9PiB4LmlkID09PSBkYXRhLmlkKTtcbiAgICBpZiAoZXhpc3RzLmxlbmd0aCkge1xuICAgICAgY3VycmVudFBhZ2UuZGF0YVtjdXJyZW50UGFnZS5kYXRhLmluZGV4T2YoZXhpc3RzWzBdKV0gPSBkYXRhO1xuICAgICAgdGhpcy5wYWdlLm5leHQoY3VycmVudFBhZ2UpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3VycmVudFBhZ2UudG90YWwrKztcbiAgICBjdXJyZW50UGFnZS5kYXRhLnNwbGljZSgwLCAwLCBkYXRhKTtcbiAgICBpZiAoY3VycmVudFBhZ2UuZGF0YS5sZW5ndGggPiB0aGlzLmdyaWRTdGF0ZS50YWtlKSB7XG4gICAgICBjdXJyZW50UGFnZS5kYXRhLnNwbGljZSh0aGlzLnBhZ2UudmFsdWUuZGF0YS5sZW5ndGggLSAxLCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2UubmV4dChjdXJyZW50UGFnZSk7XG4gICAgdGhpcy5zZWxlY3RlZFswXSA9IGRhdGEuaWQ7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2RhdGEuaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhKCkge1xuICAgIHRoaXMubG9hZGluZ3MrKztcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAuZ2V0UGFnZSh0aGlzLmdyaWRTdGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgICBwYWdlUmVzdWx0LmRhdGEgPSBwYWdlUmVzdWx0LmRhdGEubWFwKHRoaXMubWFwSXRlbUZuKTtcblxuICAgICAgICAgIHJldHVybiBwYWdlUmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5wYWdlLm5leHQocGFnZSk7XG4gICAgICAgIHRoaXMubG9hZGluZ3MtLTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmUoZW50aXR5OiBJZGVudGlmaWVkTW9kZWwpIHtcbiAgICB0aGlzLmxvYWRpbmdzKys7XG4gICAgdGhpcy5zZXJ2aWNlXG4gICAgICAuZGVsZXRlKGVudGl0eS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkW3RoaXMuc2VsZWN0ZWQubGVuZ3RoIC0gMV0gPT09IGVudGl0eS5pZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8nXSwge1xuICAgICAgICAgICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0cnVlLFxuICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLmZpcnN0Q2hpbGQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2FkaW5ncy0tO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldERhdGEoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXIoKTogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgY29uc3QgZmlsdGVyOiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yID0ge1xuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgZmlsdGVyczogdGhpcy5zZWFyY2hUZXJtXG4gICAgICAgID8gW1xuICAgICAgICAgICAgeyBmaWVsZDogbmFtZUZpZWxkLCBvcGVyYXRvcjogJ2NvbnRhaW5zJywgdmFsdWU6IHRoaXMuc2VhcmNoVGVybSB9LFxuICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgICAgIF1cbiAgICAgICAgOiB0aGlzLmZpbHRlcnMsXG4gICAgfTtcblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsdGVyQ2hhbmdlKCkge1xuICAgIGNvbnN0IGZpbHRlcjogYW55ID0gdGhpcy5ncmlkU3RhdGUuZmlsdGVyPy5maWx0ZXJzLmZpbmQoXG4gICAgICAoeDogRmlsdGVyRGVzY3JpcHRvcikgPT4geC5maWVsZCA9PT0gbmFtZUZpZWxkLFxuICAgICk7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gZmlsdGVyPy52YWx1ZTtcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMuZ3JpZFN0YXRlLmZpbHRlcik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc3RvcmVHcmlkU3RhdGUocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZFN0YXRlOiBTdGF0ZSA9IHtcbiAgICAgIHNvcnQ6IHRoaXMuZGVmYXVsdFNvcnQgfHwgW3sgZmllbGQ6IG5hbWVGaWVsZCwgZGlyOiAnYXNjJyB9XSxcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMCxcbiAgICAgIGZpbHRlcjogdGhpcy5nZXRGaWx0ZXIoKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhdGUgPSB1cmxEZXNlcmlhbGl6ZShwYXJhbXMpO1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGUuaGFzT3duUHJvcGVydHkoJ3Rha2UnKSA/IHN0YXRlIDogZGVmYXVsdEdyaWRTdGF0ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gK3RoaXMuZ3JpZFN0YXRlLnNraXA7XG4gICAgdGhpcy5ncmlkU3RhdGUudGFrZSA9ICt0aGlzLmdyaWRTdGF0ZS50YWtlO1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UoKTtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLXBhZ2UtYmdcIj48L2hlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwgc2VhcmNoLXBhbmVsIGhlcm8tdW5pdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1zZWxlY3Rpb24tZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaGlucHV0XCIgY2xhc3M9XCJ0aXRsZS1maWVsZFwiIHRyYW5zbGF0ZT1cIlNlYXJjaFwiPjwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGtlbmRvVGV4dEJveFxuICAgICAgICAgIGNsYXNzPVwicXVpY2stZmlsdGVyIGlucHV0IGlucHV0LWZpZWxkXCJcbiAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgaWQ9XCJzZWFyY2hpbnB1dFwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGFwcERlYm91bmNlXG4gICAgICAgICAgKGRlYm91bmNlS2V5dXApPVwib25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiNjAwXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZS1saW5lXCI+PC9kaXY+XG5cbiAgICAgIDxrZW5kby1ncmlkXG4gICAgICAgIFtkYXRhXT1cInBhZ2UgfCBhc3luY1wiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJncmlkU3RhdGUudGFrZVwiXG4gICAgICAgIFtza2lwXT1cImdyaWRTdGF0ZS5za2lwXCJcbiAgICAgICAgW3NvcnRdPVwiZ3JpZFN0YXRlLnNvcnRcIlxuICAgICAgICBbcGFnZWFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW3N0eWxlLm1heEhlaWdodC5weF09XCI0ODBcIlxuICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgIChkYXRhU3RhdGVDaGFuZ2UpPVwiZGF0YVN0YXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5ncyA+IDBcIlxuICAgICAgICAoY2VsbENsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIGN1bHR1cmVcbiAgICAgICAgY2xhc3M9XCJyb3dzLXBvaW50YWJsZVwiXG4gICAgICAgIGtlbmRvR3JpZFNlbGVjdEJ5PVwiaWRcIlxuICAgICAgICBbc2VsZWN0ZWRLZXlzXT1cInNlbGVjdGVkXCJcbiAgICAgICAgW3Jvd0NsYXNzXT1cImdldFJvd0NsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZT5cbiAgICAgICAgICA8ZXhjZWwtZXhwb3J0LWJ1dHRvbj48L2V4Y2VsLWV4cG9ydC1idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxrZW5kby1ncmlkLWV4Y2VsIFtmZXRjaERhdGFdPVwiZ2V0QWxsRGF0YVwiPjwva2VuZG8tZ3JpZC1leGNlbD5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gd2lkdGg9XCI2NVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFkYXRhSXRlbS5zdXBwcmVzc0RlbGV0aW9uXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkUmVtb3ZlQ29tbWFuZFxuICAgICAgICAgICAgICByZXF1aXJlUGVybWlzc2lvblxuICAgICAgICAgICAgICBwZXJtaXNzaW9uVHlwZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxlbSBjbGFzcz1cImstaWNvbiBnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCI+PC9lbT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwva2VuZG8tZ3JpZC1jb21tYW5kLWNvbHVtbj5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29sdW1uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGdyaWRGaWVsZHNcIlxuICAgICAgICAgIGZpZWxkPVwie3sgZmllbGQubmFtZSB9fVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW3NvcnRhYmxlXT1cImZpZWxkLnNvcnRhYmxlICE9PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gd2lkdGg9XCI2NVwiICpuZ0lmPVwiY29tbWFuZHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tbWFuZCBvZiBjb21tYW5kc1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb21tYW5kLmhhbmRsZXIoZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBjb21tYW5kLnRpdGxlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJrLWJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tbWFuZC5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgY29tbWFuZC5pY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICA+PC9lbT5cbiAgICAgICAgICAgICAge3sgY29tbWFuZC5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2tlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgICAgICB7eyBcIk1lc3NhZ2VzLk5vUmVjb3Jkc1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGU+XG4gICAgICAgICAgPGtlbmRvLWdyaWQtc3BhY2VyPjwva2VuZG8tZ3JpZC1zcGFjZXI+XG4gICAgICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgICAgICA8a2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zXG4gICAgICAgICAgICBbYnV0dG9uQ291bnRdPVwicGFnZUJ1dHRvbnNDb3VudFwiXG4gICAgICAgICAgPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICAgICAgPGtlbmRvLXBhZ2VyLWluZm8+PC9rZW5kby1wYWdlci1pbmZvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHJvdXRlci1vdXRsZXRcbiAgICAoYWN0aXZhdGUpPVwib25BY3RpdmF0ZSgkZXZlbnQpXCJcbiAgICAoZGVhY3RpdmF0ZSk9XCJvbkRlYWN0aXZhdGUoJGV2ZW50KVwiXG4gID48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbjxjb25maXJtLWRpYWxvZyAjY29uZmlybURpYWxvZz48L2NvbmZpcm0tZGlhbG9nPlxuIl19