@indigina/kendo 1.2.74 → 1.2.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.mjs +28 -12
- package/esm2022/lib/widgets/entity-list/entity-list.component.mjs +6 -4
- package/fesm2022/indigina-kendo.mjs +27 -10
- package/fesm2022/indigina-kendo.mjs.map +1 -1
- package/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.d.ts +10 -5
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ControlContainer, FormGroupDirective } from '@angular/forms';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { ControlContainer, FormGroupDirective, } from '@angular/forms';
|
|
3
3
|
import { FieldComponent } from '../../../angular/forms/widgets/field/field.component';
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/forms";
|
|
6
7
|
import * as i2 from "@progress/kendo-angular-dropdowns";
|
|
7
|
-
import * as i3 from "@
|
|
8
|
-
import * as i4 from "@
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@ngx-translate/core";
|
|
9
10
|
export class FieldMultiSelectComponent extends FieldComponent {
|
|
10
11
|
get control() {
|
|
11
12
|
return this.parent.form.get(this.fieldName);
|
|
@@ -17,15 +18,23 @@ export class FieldMultiSelectComponent extends FieldComponent {
|
|
|
17
18
|
this.singleMode = false;
|
|
18
19
|
this.autoClose = false;
|
|
19
20
|
this.changed = new EventEmitter();
|
|
20
|
-
this.data = [];
|
|
21
21
|
this.textField = this.textField ?? 'name';
|
|
22
22
|
this.valueField = this.valueField ?? 'id';
|
|
23
23
|
}
|
|
24
24
|
ngOnChanges() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
}
|
|
25
|
+
super.ngOnChanges();
|
|
26
|
+
if (this.data) {
|
|
27
|
+
this.updateData(this.data);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.getDataSubscription = this.getData().subscribe((data) => {
|
|
31
|
+
this.updateData(data.data);
|
|
32
|
+
this.control.setValue(this.control.value.filter((x) => this.data.some((d) => d.id === x)));
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ngOnDestroy() {
|
|
37
|
+
this.getDataSubscription?.unsubscribe();
|
|
29
38
|
}
|
|
30
39
|
onPopupOpen(event) {
|
|
31
40
|
if (!this.singleMode) {
|
|
@@ -39,8 +48,13 @@ export class FieldMultiSelectComponent extends FieldComponent {
|
|
|
39
48
|
getData() {
|
|
40
49
|
return this.service.getPage(this.filter ? { filter: this.filter } : {});
|
|
41
50
|
}
|
|
51
|
+
updateData(data) {
|
|
52
|
+
this.data = data;
|
|
53
|
+
this.dataSubject = new BehaviorSubject(data);
|
|
54
|
+
this.data$ = this.dataSubject.asObservable();
|
|
55
|
+
}
|
|
42
56
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FieldMultiSelectComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", 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 class=\"col-md-3 control-label\"
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField", data: "data", singleMode: "singleMode", autoClose: "autoClose" }, outputs: { changed: "changed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label class=\"col-md-3 control-label\" [for]=\"'_' + fieldName\">{{\n labelKey | translate\n }}</label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n [id]=\"'_' + fieldName\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n (valueChange)=\"onValueChange($event)\"\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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.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", "inputFocus", "inputBlur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], viewProviders: [
|
|
44
58
|
{
|
|
45
59
|
provide: ControlContainer,
|
|
46
60
|
useExisting: FormGroupDirective,
|
|
@@ -54,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
54
68
|
provide: ControlContainer,
|
|
55
69
|
useExisting: FormGroupDirective,
|
|
56
70
|
},
|
|
57
|
-
], template: "<div class=\"form-group\">\n <label class=\"col-md-3 control-label\"
|
|
71
|
+
], template: "<div class=\"form-group\">\n <label class=\"col-md-3 control-label\" [for]=\"'_' + fieldName\">{{\n labelKey | translate\n }}</label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n [id]=\"'_' + fieldName\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n (valueChange)=\"onValueChange($event)\"\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" }]
|
|
58
72
|
}], ctorParameters: () => [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }], propDecorators: { service: [{
|
|
59
73
|
type: Input
|
|
60
74
|
}], rebind: [{
|
|
@@ -65,6 +79,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
65
79
|
type: Input
|
|
66
80
|
}], valueField: [{
|
|
67
81
|
type: Input
|
|
82
|
+
}], data: [{
|
|
83
|
+
type: Input
|
|
68
84
|
}], singleMode: [{
|
|
69
85
|
type: Input
|
|
70
86
|
}], autoClose: [{
|
|
@@ -72,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
72
88
|
}], changed: [{
|
|
73
89
|
type: Output
|
|
74
90
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2ZpZWxkLW11bHRpc2VsZWN0L2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktZWRpdC9maWVsZC1tdWx0aXNlbGVjdC9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUl0RixPQUFPLEVBQUUsZUFBZSxFQUE0QixNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBZWpFLE1BQU0sT0FBTyx5QkFDWCxTQUFRLGNBQXdCO0lBZ0JoQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQW1CLE1BQTBCLEVBQVMsSUFBZ0I7UUFDcEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFEUCxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFYN0QsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FB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b25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyL2Zvcm1zL3dpZGdldHMvZmllbGQvZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IE5hbWVkTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9hbmd1bGFyL21vZGVscy9OYW1lZE1vZGVsJztcbmltcG9ydCB7IElFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvSUVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgUHJldmVudGFibGVFdmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWRyb3Bkb3ducyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3Byb2plY3RzL2tlbmRvL3NyYy9saWIvbW9kZWxzL1BhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWVsZC1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLW11bHRpc2VsZWN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZE11bHRpU2VsZWN0Q29tcG9uZW50PFQ+XG4gIGV4dGVuZHMgRmllbGRDb21wb25lbnQ8c3RyaW5nW10+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgc2VydmljZTogSUVudGl0eVNlcnZpY2U8TmFtZWRNb2RlbD47XG4gIEBJbnB1dCgpIHJlYmluZDogc3RyaW5nO1xuICBASW5wdXQoKSBmaWx0ZXI/OiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yO1xuICBASW5wdXQoKSB0ZXh0RmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRhdGE6IE5hbWVkTW9kZWxbXTtcbiAgQElucHV0KCkgc2luZ2xlTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8TmFtZWRNb2RlbFtdPjtcbiAgcHJpdmF0ZSBkYXRhU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PE5hbWVkTW9kZWxbXT47XG4gIHByaXZhdGUgZ2V0RGF0YVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5mb3JtLmdldCh0aGlzLmZpZWxkTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsIHB1YmxpYyBlcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIocGFyZW50LCBlcmVmLCBbXSk7XG4gICAgdGhpcy50ZXh0RmllbGQgPSB0aGlzLnRleHRGaWVsZCA/PyAnbmFtZSc7XG4gICAgdGhpcy52YWx1ZUZpZWxkID0gdGhpcy52YWx1ZUZpZWxkID8/ICdpZCc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcygpO1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0YSh0aGlzLmRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldERhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmdldERhdGEoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKGRhdGEuZGF0YSk7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWUuZmlsdGVyKCh4OiBzdHJpbmcpID0+XG4gICAgICAgICAgICB0aGlzLmRhdGEuc29tZSgoZCkgPT4gZC5pZCA9PT0geCksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0RGF0YVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvcHVwT3BlbihldmVudDogUHJldmVudGFibGVFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaW5nbGVNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA+IDAgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRhKCk6IE9ic2VydmFibGU8UGFnZTxOYW1lZE1vZGVsPj4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0UGFnZSh0aGlzLmZpbHRlciA/IHsgZmlsdGVyOiB0aGlzLmZpbHRlciB9IDoge30pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRhKGRhdGE6IE5hbWVkTW9kZWxbXSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5kYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmFtZWRNb2RlbFtdPihkYXRhKTtcbiAgICB0aGlzLmRhdGEkID0gdGhpcy5kYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTMgY29udHJvbC1sYWJlbFwiIFtmb3JdPVwiJ18nICsgZmllbGROYW1lXCI+e3tcbiAgICBsYWJlbEtleSB8IHRyYW5zbGF0ZVxuICB9fTwvbGFiZWw+XG4gIDxkaXYgKm5nSWY9XCJjb250cm9sXCIgY2xhc3M9XCJjb2wtbWQtOVwiPlxuICAgIDxrZW5kby1tdWx0aXNlbGVjdFxuICAgICAgW2lkXT1cIidfJyArIGZpZWxkTmFtZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbZGF0YV09XCJkYXRhJCB8IGFzeW5jXCJcbiAgICAgIFthdXRvQ2xvc2VdPVwiYXV0b0Nsb3NlXCJcbiAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICAgICAgW3ZhbHVlUHJpbWl0aXZlXT1cInRydWVcIlxuICAgICAgKG9wZW4pPVwib25Qb3B1cE9wZW4oJGV2ZW50KVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9rZW5kby1tdWx0aXNlbGVjdD5cblxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sLmludmFsaWQgJiYgY29udHJvbC50b3VjaGVkXCIgY2xhc3M9XCJiZy1kYW5nZXJcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbC5lcnJvcnNbJ3JlcXVpcmVkJ11cIj5cbiAgICAgICAge3sgXCJSZXF1aXJlZFwiIHwgdHJhbnNsYXRlIDogeyBwYXJhbTA6IGxhYmVsS2V5IHwgdHJhbnNsYXRlIH0gfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbC5lcnJvcnNbJ3NlcnZlckVycm9yTXNnJ11cIj5cbiAgICAgICAge3sgY29udHJvbC5lcnJvcnNbXCJzZXJ2ZXJFcnJvck1zZ1wiXSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -49,7 +49,7 @@ export class EntityListComponent {
|
|
|
49
49
|
});
|
|
50
50
|
this.route.firstChild.params.subscribe((params) => {
|
|
51
51
|
if (params.id) {
|
|
52
|
-
this.selected[0] = params.id;
|
|
52
|
+
this.selected[0] = params.id.toString();
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
55
|
this.selected.pop();
|
|
@@ -66,6 +66,7 @@ export class EntityListComponent {
|
|
|
66
66
|
'"?', () => this.remove(dataItem));
|
|
67
67
|
}
|
|
68
68
|
selectItem({ dataItem }) {
|
|
69
|
+
this.selected[0] = dataItem.id.toString();
|
|
69
70
|
this.router.navigate([dataItem.id], {
|
|
70
71
|
relativeTo: this.route,
|
|
71
72
|
fragment: urlSerialize(this.gridState),
|
|
@@ -130,7 +131,7 @@ export class EntityListComponent {
|
|
|
130
131
|
currentPage.data.splice(this.page.value.data.length - 1, 1);
|
|
131
132
|
}
|
|
132
133
|
this.page.next(currentPage);
|
|
133
|
-
this.selected[0] = data.id;
|
|
134
|
+
this.selected[0] = data.id.toString();
|
|
134
135
|
this.router.navigate([data.id], {
|
|
135
136
|
relativeTo: this.route,
|
|
136
137
|
preserveFragment: true,
|
|
@@ -155,11 +156,12 @@ export class EntityListComponent {
|
|
|
155
156
|
.delete(entity.id)
|
|
156
157
|
.pipe(map(() => {
|
|
157
158
|
if (this.selected.length &&
|
|
158
|
-
this.selected[this.selected.length - 1] === entity.id) {
|
|
159
|
+
this.selected[this.selected.length - 1] === entity.id.toString()) {
|
|
159
160
|
this.router.navigate(['../'], {
|
|
160
161
|
preserveFragment: true,
|
|
161
162
|
relativeTo: this.route.firstChild,
|
|
162
163
|
});
|
|
164
|
+
this.selected.pop();
|
|
163
165
|
}
|
|
164
166
|
this.loadings--;
|
|
165
167
|
}))
|
|
@@ -226,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
226
228
|
type: ViewChild,
|
|
227
229
|
args: ['confirmDialog', { static: true }]
|
|
228
230
|
}] } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1saXN0L2VudGl0eS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktbGlzdC9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQWF2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQUUvRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFPekIsTUFBTSxPQUFPLG1CQUFtQjtJQWlDOUIsWUFDVSxTQUEyQixFQUMzQixLQUFxQixFQUNyQixNQUFjO1FBRmQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXRCakIsY0FBUyxHQUFrRCxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3pFLElBQUksQ0FBQztRQUNFLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUUvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBRzdELGNBQVMsR0FBVSxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFzQyxJQUFJLGVBQWUsQ0FFbEUsSUFBSSxDQUFDLENBQUM7UUFDRCxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWIs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QUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDOzhHQXhQVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzYkN6Q2hDLDJ1SEEwR0E7OzJGRGpFYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTt1SUFNaEIsT0FBTztzQkFEYixLQUFLO2dCQUdDLE9BQU87c0JBRGIsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxXQUFXO3NCQURqQixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUMsWUFBWTtzQkFEbEIsTUFBTTtnQkFHQSxNQUFNO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWJsZSB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL3JlbW92YWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIERhdGFTdGF0ZUNoYW5nZUV2ZW50LFxuICBSb3dDbGFzc0FyZ3MsXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xuaW1wb3J0IHtcbiAgQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcixcbiAgRmlsdGVyRGVzY3JpcHRvcixcbiAgU29ydERlc2NyaXB0b3IsXG4gIFN0YXRlLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElkZW50aWZpZWRNb2RlbCB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL0lkZW50aWZpZWRNb2RlbCc7XG5pbXBvcnQgeyBOYW1lZE1vZGVsIH0gZnJvbSAnLi4vLi4vYW5ndWxhci9tb2RlbHMvTmFtZWRNb2RlbCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1BhZ2UnO1xuaW1wb3J0IHsgSUVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9JRW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuL0NvbW1hbmQnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL0ZpZWxkJztcbmltcG9ydCB7IHVybERlc2VyaWFsaXplLCB1cmxTZXJpYWxpemUgfSBmcm9tICcuL1VybFNlcmlhbGl6ZXInO1xuXG5jb25zdCBuYW1lRmllbGQgPSAnbmFtZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudGl0eS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LWxpc3QuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VydmljZTogSUVudGl0eVNlcnZpY2U8TmFtZWRNb2RlbD47XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWx0ZXJzOiAoRmlsdGVyRGVzY3JpcHRvciB8IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IpW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWVsZHM/OiBGaWVsZFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29tbWFuZHM/OiBDb21tYW5kW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dDbGFzcz86IChkYXRhSXRlbTogTmFtZWRNb2RlbCwgaW5kZXg6IG51bWJlcikgPT4ge307XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0U29ydD86IFNvcnREZXNjcmlwdG9yW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXBJdGVtRm4/OiAoaXRlbTogTmFtZWRNb2RlbCkgPT4gTmFtZWRNb2RlbCAmIFJlbW92YWJsZSA9IChpdGVtKSA9PlxuICAgIGl0ZW07XG4gIEBJbnB1dCgpIHBhZ2VCdXR0b25zQ291bnQ6IG51bWJlciA9IDU7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yPigpO1xuICBAVmlld0NoaWxkKCdjb25maXJtRGlhbG9nJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGRpYWxvZzogQ29uZmlybURpYWxvZ0NvbXBvbmVudDtcbiAgcHVibGljIGdyaWRTdGF0ZTogU3RhdGUgPSB7fTtcbiAgcHVibGljIHBhZ2U6IEJlaGF2aW9yU3ViamVjdDxQYWdlPE5hbWVkTW9kZWw+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgUGFnZTxOYW1lZE1vZGVsPlxuICA+KG51bGwpO1xuICBwdWJsaWMgbG9hZGluZ3MgPSAwO1xuICBwdWJsaWMgc2VhcmNoVGVybTogc3RyaW5nO1xuICBwdWJsaWMgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBncmlkRmllbGRzOiBGaWVsZFtdID0gW107XG4gIHByaXZhdGUgZGVmYXVsdEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7IG5hbWU6ICduYW1lJywgbGFiZWw6ICdOYW1lJywgc29ydGFibGU6IHRydWUsIHBvc2l0aW9uOiAwIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgdGhpcy5nZXRBbGxEYXRhID0gdGhpcy5nZXRBbGxEYXRhLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSb3dDbGFzcyA9IHRoaXMuZ2V0Um93Q2xhc3MuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoIWNoYW5nZXMuZmlsdGVycyB8fCBjaGFuZ2VzLmZpbHRlcnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncmlkRmllbGRzID0gKHRoaXMuZmllbGRzIHx8IFtdKVxuICAgICAgLmNvbmNhdCh0aGlzLmRlZmF1bHRGaWVsZHMpXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IChsZWZ0LnBvc2l0aW9uIHx8IDApIC0gKHJpZ2h0LnBvc2l0aW9uIHx8IDApKTtcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnMgPyB0aGlzLmZpbHRlcnMgOiBbXTtcbiAgICB0aGlzLmNvbW1hbmRzID0gdGhpcy5jb21tYW5kcyA/IHRoaXMuY29tbWFuZHMgOiBbXTtcbiAgICB0aGlzLnJvdXRlLmZyYWdtZW50LnN1YnNjcmliZShhc3luYyAoZnJhZ21lbnQ6IHN0cmluZykgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5yZXN0b3JlR3JpZFN0YXRlKG5ldyBVUkxTZWFyY2hQYXJhbXMoZnJhZ21lbnQpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGUuZmlyc3RDaGlsZC5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xuICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkWzBdID0gcGFyYW1zLmlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5wb3AoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZURhdGVCYXNlZEV4Y2VsRmlsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEV4cG9ydC0ke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKX0ueGxzeGA7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcih7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFxuICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQ29uZmlybWF0aW9uLkRlbGV0ZScpICtcbiAgICAgICAgJzogXCInICtcbiAgICAgICAgZGF0YUl0ZW0ubmFtZSArXG4gICAgICAgICdcIj8nLFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmUoZGF0YUl0ZW0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0SXRlbSh7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZGF0YUl0ZW0uaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25BY3RpdmF0ZShjaGlsZDogeyBzYXZlZDogRXZlbnRFbWl0dGVyPE5hbWVkTW9kZWw+IH0pIHtcbiAgICBpZiAoY2hpbGQuc2F2ZWQpIHtcbiAgICAgIGNoaWxkLnNhdmVkLnN1YnNjcmliZSgoZGF0YTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKGRhdGEpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25EZWFjdGl2YXRlKGNoaWxkOiB7IHNhdmVkOiBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbD4gfSkge1xuICAgIGlmIChjaGlsZC5zYXZlZCkge1xuICAgICAgY2hpbGQuc2F2ZWQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGF0YVN0YXRlQ2hhbmdlKHN0YXRlOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5ncmlkU3RhdGUuZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXIoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIGZyYWdtZW50OiB1cmxTZXJpYWxpemUodGhpcy5ncmlkU3RhdGUpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB2YWx1ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gMDtcbiAgICB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbERhdGEoKTogT2JzZXJ2YWJsZTxQYWdlPE5hbWVkTW9kZWwgJiBSZW1vdmFibGU+PiB7XG4gICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyaWRTdGF0ZSk7XG4gICAgZGVsZXRlIHN0YXRlLnNraXA7XG4gICAgZGVsZXRlIHN0YXRlLnRha2U7XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2Uoc3RhdGUpLnBpcGUoXG4gICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgcGFnZVJlc3VsdC5kYXRhID0gcGFnZVJlc3VsdC5kYXRhLm1hcCh0aGlzLm1hcEl0ZW1Gbik7XG5cbiAgICAgICAgcmV0dXJuIHBhZ2VSZXN1bHQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFJvd0NsYXNzKGNvbnRleHQ6IFJvd0NsYXNzQXJncyk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMucm93Q2xhc3MgJiYgY29udGV4dFxuICAgICAgPyB0aGlzLnJvd0NsYXNzKGNvbnRleHQuZGF0YUl0ZW0sIGNvbnRleHQuaW5kZXgpXG4gICAgICA6IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpbHRlcmVkRGF0YSgpIHtcbiAgICB0aGlzLmdyaWRTdGF0ZS5maWx0ZXIgPSB0aGlzLmdldEZpbHRlcigpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlR3JpZChkYXRhOiBOYW1lZE1vZGVsKSB7XG4gICAgY29uc3QgbmV3SXRlbSA9IHRoaXMubWFwSXRlbUZuKGRhdGEpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0geyAuLi50aGlzLnBhZ2UudmFsdWUgfTtcbiAgICBjb25zdCBleGlzdHMgPSBjdXJyZW50UGFnZS5kYXRhLmZpbHRlcigoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCk7XG4gICAgaWYgKGV4aXN0cy5sZW5ndGgpIHtcbiAgICAgIGN1cnJlbnRQYWdlLmRhdGFbY3VycmVudFBhZ2UuZGF0YS5pbmRleE9mKGV4aXN0c1swXSldID0gbmV3SXRlbTtcbiAgICAgIHRoaXMucGFnZS5uZXh0KGN1cnJlbnRQYWdlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnRQYWdlLnRvdGFsKys7XG4gICAgY3VycmVudFBhZ2UuZGF0YS5zcGxpY2UoMCwgMCwgZGF0YSk7XG4gICAgaWYgKGN1cnJlbnRQYWdlLmRhdGEubGVuZ3RoID4gdGhpcy5ncmlkU3RhdGUudGFrZSkge1xuICAgICAgY3VycmVudFBhZ2UuZGF0YS5zcGxpY2UodGhpcy5wYWdlLnZhbHVlLmRhdGEubGVuZ3RoIC0gMSwgMSk7XG4gICAgfVxuXG4gICAgdGhpcy5wYWdlLm5leHQoY3VycmVudFBhZ2UpO1xuICAgIHRoaXMuc2VsZWN0ZWRbMF0gPSBkYXRhLmlkO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtkYXRhLmlkXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIHByZXNlcnZlRnJhZ21lbnQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGF0YSgpIHtcbiAgICB0aGlzLmxvYWRpbmdzKys7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgLmdldFBhZ2UodGhpcy5ncmlkU3RhdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChwYWdlUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcGFnZVJlc3VsdC5kYXRhID0gcGFnZVJlc3VsdC5kYXRhLm1hcCh0aGlzLm1hcEl0ZW1Gbik7XG5cbiAgICAgICAgICByZXR1cm4gcGFnZVJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwYWdlKSA9PiB7XG4gICAgICAgIHRoaXMucGFnZS5uZXh0KHBhZ2UpO1xuICAgICAgICB0aGlzLmxvYWRpbmdzLS07XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlKGVudGl0eTogSWRlbnRpZmllZE1vZGVsKSB7XG4gICAgdGhpcy5sb2FkaW5ncysrO1xuICAgIHRoaXMuc2VydmljZVxuICAgICAgLmRlbGV0ZShlbnRpdHkuaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFt0aGlzLnNlbGVjdGVkLmxlbmd0aCAtIDFdID09PSBlbnRpdHkuaWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vJ10sIHtcbiAgICAgICAgICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZS5maXJzdENoaWxkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubG9hZGluZ3MtLTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyKCk6IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3Ige1xuICAgIGNvbnN0IGZpbHRlcjogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvciA9IHtcbiAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgIGZpbHRlcnM6IHRoaXMuc2VhcmNoVGVybVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHsgZmllbGQ6IG5hbWVGaWVsZCwgb3BlcmF0b3I6ICdjb250YWlucycsIHZhbHVlOiB0aGlzLnNlYXJjaFRlcm0gfSxcbiAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICAgICAgICBdXG4gICAgICAgIDogdGhpcy5maWx0ZXJzLFxuICAgIH07XG5cbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbHRlckNoYW5nZSgpIHtcbiAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHRoaXMuZ3JpZFN0YXRlLmZpbHRlcj8uZmlsdGVycy5maW5kKFxuICAgICAgKHg6IEZpbHRlckRlc2NyaXB0b3IpID0+IHguZmllbGQgPT09IG5hbWVGaWVsZCxcbiAgICApO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9IGZpbHRlcj8udmFsdWU7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLmdyaWRTdGF0ZS5maWx0ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXN0b3JlR3JpZFN0YXRlKHBhcmFtczogVVJMU2VhcmNoUGFyYW1zKSB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRTdGF0ZTogU3RhdGUgPSB7XG4gICAgICBzb3J0OiB0aGlzLmRlZmF1bHRTb3J0IHx8IFt7IGZpZWxkOiBuYW1lRmllbGQsIGRpcjogJ2FzYycgfV0sXG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAsXG4gICAgICBmaWx0ZXI6IHRoaXMuZ2V0RmlsdGVyKCksXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXRlID0gdXJsRGVzZXJpYWxpemUocGFyYW1zKTtcbiAgICB0aGlzLmdyaWRTdGF0ZSA9IHN0YXRlLmhhc093blByb3BlcnR5KCd0YWtlJykgPyBzdGF0ZSA6IGRlZmF1bHRHcmlkU3RhdGU7XG4gICAgdGhpcy5ncmlkU3RhdGUuc2tpcCA9ICt0aGlzLmdyaWRTdGF0ZS5za2lwO1xuICAgIHRoaXMuZ3JpZFN0YXRlLnRha2UgPSArdGhpcy5ncmlkU3RhdGUudGFrZTtcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlKCk7XG4gICAgdGhpcy5nZXREYXRhKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImhlYWRlci1wYWdlLWJnXCI+PC9oZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cInBhbmVsIHNlYXJjaC1wYW5lbCBoZXJvLXVuaXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItc2VsZWN0aW9uLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJzZWFyY2hpbnB1dFwiIGNsYXNzPVwidGl0bGUtZmllbGRcIj57e1xuICAgICAgICAgIFwiU2VhcmNoXCIgfCB0cmFuc2xhdGVcbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBrZW5kb1RleHRCb3hcbiAgICAgICAgICBjbGFzcz1cInF1aWNrLWZpbHRlciBpbnB1dCBpbnB1dC1maWVsZFwiXG4gICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgIGlkPVwic2VhcmNoaW5wdXRcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBhcHBEZWJvdW5jZVxuICAgICAgICAgIChkZWJvdW5jZUtleXVwKT1cIm9uU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICBbZGVib3VuY2VUaW1lXT1cIjYwMFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGUtbGluZVwiPjwvZGl2PlxuXG4gICAgICA8a2VuZG8tZ3JpZFxuICAgICAgICBbZGF0YV09XCJwYWdlIHwgYXN5bmNcIlxuICAgICAgICBbcGFnZVNpemVdPVwiZ3JpZFN0YXRlLnRha2VcIlxuICAgICAgICBbc2tpcF09XCJncmlkU3RhdGUuc2tpcFwiXG4gICAgICAgIFtzb3J0XT1cImdyaWRTdGF0ZS5zb3J0XCJcbiAgICAgICAgW3BhZ2VhYmxlXT1cInRydWVcIlxuICAgICAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtzdHlsZS5tYXhIZWlnaHQucHhdPVwiNDgwXCJcbiAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAoZGF0YVN0YXRlQ2hhbmdlKT1cImRhdGFTdGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ3MgPiAwXCJcbiAgICAgICAgKGNlbGxDbGljayk9XCJzZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICBjdWx0dXJlXG4gICAgICAgIGNsYXNzPVwicm93cy1wb2ludGFibGVcIlxuICAgICAgICBrZW5kb0dyaWRTZWxlY3RCeT1cImlkXCJcbiAgICAgICAgW3NlbGVjdGVkS2V5c109XCJzZWxlY3RlZFwiXG4gICAgICAgIFtyb3dDbGFzc109XCJnZXRSb3dDbGFzc1wiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgICAgICAgPGV4Y2VsLWV4cG9ydC1idXR0b24+PC9leGNlbC1leHBvcnQtYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8a2VuZG8tZ3JpZC1leGNlbFxuICAgICAgICAgIFtmaWxlTmFtZV09XCJnZW5lcmF0ZURhdGVCYXNlZEV4Y2VsRmlsZU5hbWUoKVwiXG4gICAgICAgICAgW2ZldGNoRGF0YV09XCJnZXRBbGxEYXRhXCJcbiAgICAgICAgPjwva2VuZG8tZ3JpZC1leGNlbD5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gd2lkdGg9XCI2NVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFkYXRhSXRlbS5zdXBwcmVzc0RlbGV0aW9uXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkUmVtb3ZlQ29tbWFuZFxuICAgICAgICAgICAgICByZXF1aXJlUGVybWlzc2lvblxuICAgICAgICAgICAgICBwZXJtaXNzaW9uVHlwZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxlbSBjbGFzcz1cImstaWNvbiBnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCI+PC9lbT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwva2VuZG8tZ3JpZC1jb21tYW5kLWNvbHVtbj5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29sdW1uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGdyaWRGaWVsZHNcIlxuICAgICAgICAgIGZpZWxkPVwie3sgZmllbGQubmFtZSB9fVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW3NvcnRhYmxlXT1cImZpZWxkLnNvcnRhYmxlICE9PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gd2lkdGg9XCI2NVwiICpuZ0lmPVwiY29tbWFuZHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tbWFuZCBvZiBjb21tYW5kc1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb21tYW5kLmhhbmRsZXIoZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBjb21tYW5kLnRpdGxlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJrLWJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tbWFuZC5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgY29tbWFuZC5pY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICA+PC9lbT5cbiAgICAgICAgICAgICAge3sgY29tbWFuZC5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2tlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgICAgICB7eyBcIk1lc3NhZ2VzLk5vUmVjb3Jkc1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2VyXCI+XG4gICAgICAgICAgICA8a2VuZG8tZ3JpZC1zcGFjZXI+PC9rZW5kby1ncmlkLXNwYWNlcj5cbiAgICAgICAgICAgIDxrZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICAgICAgICA8a2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zXG4gICAgICAgICAgICAgIFtidXR0b25Db3VudF09XCJwYWdlQnV0dG9uc0NvdW50XCJcbiAgICAgICAgICAgID48L2tlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucz5cbiAgICAgICAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICAgICAgICA8a2VuZG8tcGFnZXItaW5mbz48L2tlbmRvLXBhZ2VyLWluZm8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8cm91dGVyLW91dGxldFxuICAgIChhY3RpdmF0ZSk9XCJvbkFjdGl2YXRlKCRldmVudClcIlxuICAgIChkZWFjdGl2YXRlKT1cIm9uRGVhY3RpdmF0ZSgkZXZlbnQpXCJcbiAgPjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuPGNvbmZpcm0tZGlhbG9nICNjb25maXJtRGlhbG9nPjwvY29uZmlybS1kaWFsb2c+XG4iXX0=
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1saXN0L2VudGl0eS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktbGlzdC9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQWF2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQUUvRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFPekIsTUFBTSxPQUFPLG1CQUFtQjtJQWlDOUIsWUFDVSxTQUEyQixFQUMzQixLQUFxQixFQUNyQixNQUFjO1FBRmQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXRCakIsY0FBUyxHQUFrRCxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3pFLElBQUksQ0FBQztRQUNFLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUUvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBRzdELGNBQVMsR0FBVSxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFzQyxJQUFJLGVBQWUsQ0FFbEUsSUFBSSxDQUFDLENBQUM7UUFDRCxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWIs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TSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0ExUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsc2JDekNoQywydUhBMEdBOzsyRkRqRWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWE7dUlBTWhCLE9BQU87c0JBRGIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsTUFBTTtzQkFEWixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVDLFlBQVk7c0JBRGxCLE1BQU07Z0JBR0EsTUFBTTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFibGUgfSBmcm9tICcuLi8uLi9hbmd1bGFyL21vZGVscy9yZW1vdmFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBEYXRhU3RhdGVDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7XG4gIENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IsXG4gIEZpbHRlckRlc2NyaXB0b3IsXG4gIFNvcnREZXNjcmlwdG9yLFxuICBTdGF0ZSxcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJZGVudGlmaWVkTW9kZWwgfSBmcm9tICcuLi8uLi9hbmd1bGFyL21vZGVscy9JZGVudGlmaWVkTW9kZWwnO1xuaW1wb3J0IHsgTmFtZWRNb2RlbCB9IGZyb20gJy4uLy4uL2FuZ3VsYXIvbW9kZWxzL05hbWVkTW9kZWwnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJy4uLy4uL21vZGVscy9QYWdlJztcbmltcG9ydCB7IElFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvSUVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi9Db21tYW5kJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9GaWVsZCc7XG5pbXBvcnQgeyB1cmxEZXNlcmlhbGl6ZSwgdXJsU2VyaWFsaXplIH0gZnJvbSAnLi9VcmxTZXJpYWxpemVyJztcblxuY29uc3QgbmFtZUZpZWxkID0gJ25hbWUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbnRpdHktbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudGl0eS1saXN0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIHNlcnZpY2U6IElFbnRpdHlTZXJ2aWNlPE5hbWVkTW9kZWw+O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsdGVyczogKEZpbHRlckRlc2NyaXB0b3IgfCBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yKVtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmllbGRzPzogRmllbGRbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbW1hbmRzPzogQ29tbWFuZFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgcm93Q2xhc3M/OiAoZGF0YUl0ZW06IE5hbWVkTW9kZWwsIGluZGV4OiBudW1iZXIpID0+IHt9O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdFNvcnQ/OiBTb3J0RGVzY3JpcHRvcltdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFwSXRlbUZuPzogKGl0ZW06IE5hbWVkTW9kZWwpID0+IE5hbWVkTW9kZWwgJiBSZW1vdmFibGUgPSAoaXRlbSkgPT5cbiAgICBpdGVtO1xuICBASW5wdXQoKSBwYWdlQnV0dG9uc0NvdW50OiBudW1iZXIgPSA1O1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcj4oKTtcbiAgQFZpZXdDaGlsZCgnY29uZmlybURpYWxvZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBkaWFsb2c6IENvbmZpcm1EaWFsb2dDb21wb25lbnQ7XG4gIHB1YmxpYyBncmlkU3RhdGU6IFN0YXRlID0ge307XG4gIHB1YmxpYyBwYWdlOiBCZWhhdmlvclN1YmplY3Q8UGFnZTxOYW1lZE1vZGVsPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFBhZ2U8TmFtZWRNb2RlbD5cbiAgPihudWxsKTtcbiAgcHVibGljIGxvYWRpbmdzID0gMDtcbiAgcHVibGljIHNlYXJjaFRlcm06IHN0cmluZztcbiAgcHVibGljIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgZ3JpZEZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGRlZmF1bHRGaWVsZHM6IEZpZWxkW10gPSBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGxhYmVsOiAnTmFtZScsIHNvcnRhYmxlOiB0cnVlLCBwb3NpdGlvbjogMCB9LFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICAgIHRoaXMuZ2V0QWxsRGF0YSA9IHRoaXMuZ2V0QWxsRGF0YS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0Um93Q2xhc3MgPSB0aGlzLmdldFJvd0NsYXNzLmJpbmQodGhpcyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5maWx0ZXJzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXRGaWx0ZXJlZERhdGEoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JpZEZpZWxkcyA9ICh0aGlzLmZpZWxkcyB8fCBbXSlcbiAgICAgIC5jb25jYXQodGhpcy5kZWZhdWx0RmllbGRzKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiAobGVmdC5wb3NpdGlvbiB8fCAwKSAtIChyaWdodC5wb3NpdGlvbiB8fCAwKSk7XG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzID8gdGhpcy5maWx0ZXJzIDogW107XG4gICAgdGhpcy5jb21tYW5kcyA9IHRoaXMuY29tbWFuZHMgPyB0aGlzLmNvbW1hbmRzIDogW107XG4gICAgdGhpcy5yb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoYXN5bmMgKGZyYWdtZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucmVzdG9yZUdyaWRTdGF0ZShuZXcgVVJMU2VhcmNoUGFyYW1zKGZyYWdtZW50KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlLmZpcnN0Q2hpbGQucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFswXSA9IHBhcmFtcy5pZC50b1N0cmluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5wb3AoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZURhdGVCYXNlZEV4Y2VsRmlsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEV4cG9ydC0ke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKX0ueGxzeGA7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcih7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFxuICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQ29uZmlybWF0aW9uLkRlbGV0ZScpICtcbiAgICAgICAgJzogXCInICtcbiAgICAgICAgZGF0YUl0ZW0ubmFtZSArXG4gICAgICAgICdcIj8nLFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmUoZGF0YUl0ZW0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0SXRlbSh7IGRhdGFJdGVtIH0pIHtcbiAgICB0aGlzLnNlbGVjdGVkWzBdID0gZGF0YUl0ZW0uaWQudG9TdHJpbmcoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZGF0YUl0ZW0uaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25BY3RpdmF0ZShjaGlsZDogeyBzYXZlZDogRXZlbnRFbWl0dGVyPE5hbWVkTW9kZWw+IH0pIHtcbiAgICBpZiAoY2hpbGQuc2F2ZWQpIHtcbiAgICAgIGNoaWxkLnNhdmVkLnN1YnNjcmliZSgoZGF0YTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKGRhdGEpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25EZWFjdGl2YXRlKGNoaWxkOiB7IHNhdmVkOiBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbD4gfSkge1xuICAgIGlmIChjaGlsZC5zYXZlZCkge1xuICAgICAgY2hpbGQuc2F2ZWQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGF0YVN0YXRlQ2hhbmdlKHN0YXRlOiBEYXRhU3RhdGVDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5ncmlkU3RhdGUuZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXIoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIGZyYWdtZW50OiB1cmxTZXJpYWxpemUodGhpcy5ncmlkU3RhdGUpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB2YWx1ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gMDtcbiAgICB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbERhdGEoKTogT2JzZXJ2YWJsZTxQYWdlPE5hbWVkTW9kZWwgJiBSZW1vdmFibGU+PiB7XG4gICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyaWRTdGF0ZSk7XG4gICAgZGVsZXRlIHN0YXRlLnNraXA7XG4gICAgZGVsZXRlIHN0YXRlLnRha2U7XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2Uoc3RhdGUpLnBpcGUoXG4gICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgcGFnZVJlc3VsdC5kYXRhID0gcGFnZVJlc3VsdC5kYXRhLm1hcCh0aGlzLm1hcEl0ZW1Gbik7XG5cbiAgICAgICAgcmV0dXJuIHBhZ2VSZXN1bHQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFJvd0NsYXNzKGNvbnRleHQ6IFJvd0NsYXNzQXJncyk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMucm93Q2xhc3MgJiYgY29udGV4dFxuICAgICAgPyB0aGlzLnJvd0NsYXNzKGNvbnRleHQuZGF0YUl0ZW0sIGNvbnRleHQuaW5kZXgpXG4gICAgICA6IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpbHRlcmVkRGF0YSgpIHtcbiAgICB0aGlzLmdyaWRTdGF0ZS5maWx0ZXIgPSB0aGlzLmdldEZpbHRlcigpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgZnJhZ21lbnQ6IHVybFNlcmlhbGl6ZSh0aGlzLmdyaWRTdGF0ZSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlR3JpZChkYXRhOiBOYW1lZE1vZGVsKSB7XG4gICAgY29uc3QgbmV3SXRlbSA9IHRoaXMubWFwSXRlbUZuKGRhdGEpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0geyAuLi50aGlzLnBhZ2UudmFsdWUgfTtcbiAgICBjb25zdCBleGlzdHMgPSBjdXJyZW50UGFnZS5kYXRhLmZpbHRlcigoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCk7XG4gICAgaWYgKGV4aXN0cy5sZW5ndGgpIHtcbiAgICAgIGN1cnJlbnRQYWdlLmRhdGFbY3VycmVudFBhZ2UuZGF0YS5pbmRleE9mKGV4aXN0c1swXSldID0gbmV3SXRlbTtcbiAgICAgIHRoaXMucGFnZS5uZXh0KGN1cnJlbnRQYWdlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnRQYWdlLnRvdGFsKys7XG4gICAgY3VycmVudFBhZ2UuZGF0YS5zcGxpY2UoMCwgMCwgZGF0YSk7XG4gICAgaWYgKGN1cnJlbnRQYWdlLmRhdGEubGVuZ3RoID4gdGhpcy5ncmlkU3RhdGUudGFrZSkge1xuICAgICAgY3VycmVudFBhZ2UuZGF0YS5zcGxpY2UodGhpcy5wYWdlLnZhbHVlLmRhdGEubGVuZ3RoIC0gMSwgMSk7XG4gICAgfVxuXG4gICAgdGhpcy5wYWdlLm5leHQoY3VycmVudFBhZ2UpO1xuICAgIHRoaXMuc2VsZWN0ZWRbMF0gPSBkYXRhLmlkLnRvU3RyaW5nKCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2RhdGEuaWRdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhKCkge1xuICAgIHRoaXMubG9hZGluZ3MrKztcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAuZ2V0UGFnZSh0aGlzLmdyaWRTdGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBhZ2VSZXN1bHQpID0+IHtcbiAgICAgICAgICBwYWdlUmVzdWx0LmRhdGEgPSBwYWdlUmVzdWx0LmRhdGEubWFwKHRoaXMubWFwSXRlbUZuKTtcblxuICAgICAgICAgIHJldHVybiBwYWdlUmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5wYWdlLm5leHQocGFnZSk7XG4gICAgICAgIHRoaXMubG9hZGluZ3MtLTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmUoZW50aXR5OiBJZGVudGlmaWVkTW9kZWwpIHtcbiAgICB0aGlzLmxvYWRpbmdzKys7XG4gICAgdGhpcy5zZXJ2aWNlXG4gICAgICAuZGVsZXRlKGVudGl0eS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkW3RoaXMuc2VsZWN0ZWQubGVuZ3RoIC0gMV0gPT09IGVudGl0eS5pZC50b1N0cmluZygpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLyddLCB7XG4gICAgICAgICAgICAgIHByZXNlcnZlRnJhZ21lbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUuZmlyc3RDaGlsZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2FkaW5ncy0tO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldERhdGEoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXIoKTogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgY29uc3QgZmlsdGVyOiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yID0ge1xuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgZmlsdGVyczogdGhpcy5zZWFyY2hUZXJtXG4gICAgICAgID8gW1xuICAgICAgICAgICAgeyBmaWVsZDogbmFtZUZpZWxkLCBvcGVyYXRvcjogJ2NvbnRhaW5zJywgdmFsdWU6IHRoaXMuc2VhcmNoVGVybSB9LFxuICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgICAgIF1cbiAgICAgICAgOiB0aGlzLmZpbHRlcnMsXG4gICAgfTtcblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsdGVyQ2hhbmdlKCkge1xuICAgIGNvbnN0IGZpbHRlcjogYW55ID0gdGhpcy5ncmlkU3RhdGUuZmlsdGVyPy5maWx0ZXJzLmZpbmQoXG4gICAgICAoeDogRmlsdGVyRGVzY3JpcHRvcikgPT4geC5maWVsZCA9PT0gbmFtZUZpZWxkLFxuICAgICk7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gZmlsdGVyPy52YWx1ZTtcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMuZ3JpZFN0YXRlLmZpbHRlcik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc3RvcmVHcmlkU3RhdGUocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZFN0YXRlOiBTdGF0ZSA9IHtcbiAgICAgIHNvcnQ6IHRoaXMuZGVmYXVsdFNvcnQgfHwgW3sgZmllbGQ6IG5hbWVGaWVsZCwgZGlyOiAnYXNjJyB9XSxcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMCxcbiAgICAgIGZpbHRlcjogdGhpcy5nZXRGaWx0ZXIoKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhdGUgPSB1cmxEZXNlcmlhbGl6ZShwYXJhbXMpO1xuICAgIHRoaXMuZ3JpZFN0YXRlID0gc3RhdGUuaGFzT3duUHJvcGVydHkoJ3Rha2UnKSA/IHN0YXRlIDogZGVmYXVsdEdyaWRTdGF0ZTtcbiAgICB0aGlzLmdyaWRTdGF0ZS5za2lwID0gK3RoaXMuZ3JpZFN0YXRlLnNraXA7XG4gICAgdGhpcy5ncmlkU3RhdGUudGFrZSA9ICt0aGlzLmdyaWRTdGF0ZS50YWtlO1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UoKTtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLXBhZ2UtYmdcIj48L2hlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwgc2VhcmNoLXBhbmVsIGhlcm8tdW5pdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1zZWxlY3Rpb24tZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaGlucHV0XCIgY2xhc3M9XCJ0aXRsZS1maWVsZFwiPnt7XG4gICAgICAgICAgXCJTZWFyY2hcIiB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGtlbmRvVGV4dEJveFxuICAgICAgICAgIGNsYXNzPVwicXVpY2stZmlsdGVyIGlucHV0IGlucHV0LWZpZWxkXCJcbiAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgaWQ9XCJzZWFyY2hpbnB1dFwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGFwcERlYm91bmNlXG4gICAgICAgICAgKGRlYm91bmNlS2V5dXApPVwib25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiNjAwXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZS1saW5lXCI+PC9kaXY+XG5cbiAgICAgIDxrZW5kby1ncmlkXG4gICAgICAgIFtkYXRhXT1cInBhZ2UgfCBhc3luY1wiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJncmlkU3RhdGUudGFrZVwiXG4gICAgICAgIFtza2lwXT1cImdyaWRTdGF0ZS5za2lwXCJcbiAgICAgICAgW3NvcnRdPVwiZ3JpZFN0YXRlLnNvcnRcIlxuICAgICAgICBbcGFnZWFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW3N0eWxlLm1heEhlaWdodC5weF09XCI0ODBcIlxuICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgIChkYXRhU3RhdGVDaGFuZ2UpPVwiZGF0YVN0YXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5ncyA+IDBcIlxuICAgICAgICAoY2VsbENsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIGN1bHR1cmVcbiAgICAgICAgY2xhc3M9XCJyb3dzLXBvaW50YWJsZVwiXG4gICAgICAgIGtlbmRvR3JpZFNlbGVjdEJ5PVwiaWRcIlxuICAgICAgICBbc2VsZWN0ZWRLZXlzXT1cInNlbGVjdGVkXCJcbiAgICAgICAgW3Jvd0NsYXNzXT1cImdldFJvd0NsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZT5cbiAgICAgICAgICA8ZXhjZWwtZXhwb3J0LWJ1dHRvbj48L2V4Y2VsLWV4cG9ydC1idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxrZW5kby1ncmlkLWV4Y2VsXG4gICAgICAgICAgW2ZpbGVOYW1lXT1cImdlbmVyYXRlRGF0ZUJhc2VkRXhjZWxGaWxlTmFtZSgpXCJcbiAgICAgICAgICBbZmV0Y2hEYXRhXT1cImdldEFsbERhdGFcIlxuICAgICAgICA+PC9rZW5kby1ncmlkLWV4Y2VsPlxuICAgICAgICA8a2VuZG8tZ3JpZC1jb21tYW5kLWNvbHVtbiB3aWR0aD1cIjY1XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWRhdGFJdGVtLnN1cHByZXNzRGVsZXRpb25cIlxuICAgICAgICAgICAgICBrZW5kb0dyaWRSZW1vdmVDb21tYW5kXG4gICAgICAgICAgICAgIHJlcXVpcmVQZXJtaXNzaW9uXG4gICAgICAgICAgICAgIHBlcm1pc3Npb25UeXBlPVwiRGVsZXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGVtIGNsYXNzPVwiay1pY29uIGdseXBoaWNvbiBnbHlwaGljb24tdHJhc2hcIj48L2VtPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9rZW5kby1ncmlkLWNvbW1hbmQtY29sdW1uPlxuICAgICAgICA8a2VuZG8tZ3JpZC1jb2x1bW5cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZ3JpZEZpZWxkc1wiXG4gICAgICAgICAgZmllbGQ9XCJ7eyBmaWVsZC5uYW1lIH19XCJcbiAgICAgICAgICB0aXRsZT1cInt7IGZpZWxkLmxhYmVsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbc29ydGFibGVdPVwiZmllbGQuc29ydGFibGUgIT09IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuICAgICAgICA8a2VuZG8tZ3JpZC1jb21tYW5kLWNvbHVtbiB3aWR0aD1cIjY1XCIgKm5nSWY9XCJjb21tYW5kcy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb21tYW5kIG9mIGNvbW1hbmRzXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbW1hbmQuaGFuZGxlcihkYXRhSXRlbSlcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7IGNvbW1hbmQudGl0bGUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBjbGFzcz1cImstYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb21tYW5kLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBjb21tYW5kLmljb25DbGFzcyB9fVwiXG4gICAgICAgICAgICAgID48L2VtPlxuICAgICAgICAgICAgICB7eyBjb21tYW5kLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwva2VuZG8tZ3JpZC1jb21tYW5kLWNvbHVtbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZE5vUmVjb3Jkc1RlbXBsYXRlPlxuICAgICAgICAgIHt7IFwiTWVzc2FnZXMuTm9SZWNvcmRzXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvUGFnZXJUZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZXJcIj5cbiAgICAgICAgICAgIDxrZW5kby1ncmlkLXNwYWNlcj48L2tlbmRvLWdyaWQtc3BhY2VyPlxuICAgICAgICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgICAgICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnNcbiAgICAgICAgICAgICAgW2J1dHRvbkNvdW50XT1cInBhZ2VCdXR0b25zQ291bnRcIlxuICAgICAgICAgICAgPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgICAgICAgPGtlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgICAgICAgIDxrZW5kby1wYWdlci1pbmZvPjwva2VuZG8tcGFnZXItaW5mbz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxyb3V0ZXItb3V0bGV0XG4gICAgKGFjdGl2YXRlKT1cIm9uQWN0aXZhdGUoJGV2ZW50KVwiXG4gICAgKGRlYWN0aXZhdGUpPVwib25EZWFjdGl2YXRlKCRldmVudClcIlxuICA+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG48Y29uZmlybS1kaWFsb2cgI2NvbmZpcm1EaWFsb2c+PC9jb25maXJtLWRpYWxvZz5cbiJdfQ==
|
|
@@ -2546,7 +2546,7 @@ class EntityListComponent {
|
|
|
2546
2546
|
});
|
|
2547
2547
|
this.route.firstChild.params.subscribe((params) => {
|
|
2548
2548
|
if (params.id) {
|
|
2549
|
-
this.selected[0] = params.id;
|
|
2549
|
+
this.selected[0] = params.id.toString();
|
|
2550
2550
|
}
|
|
2551
2551
|
else {
|
|
2552
2552
|
this.selected.pop();
|
|
@@ -2563,6 +2563,7 @@ class EntityListComponent {
|
|
|
2563
2563
|
'"?', () => this.remove(dataItem));
|
|
2564
2564
|
}
|
|
2565
2565
|
selectItem({ dataItem }) {
|
|
2566
|
+
this.selected[0] = dataItem.id.toString();
|
|
2566
2567
|
this.router.navigate([dataItem.id], {
|
|
2567
2568
|
relativeTo: this.route,
|
|
2568
2569
|
fragment: urlSerialize(this.gridState),
|
|
@@ -2627,7 +2628,7 @@ class EntityListComponent {
|
|
|
2627
2628
|
currentPage.data.splice(this.page.value.data.length - 1, 1);
|
|
2628
2629
|
}
|
|
2629
2630
|
this.page.next(currentPage);
|
|
2630
|
-
this.selected[0] = data.id;
|
|
2631
|
+
this.selected[0] = data.id.toString();
|
|
2631
2632
|
this.router.navigate([data.id], {
|
|
2632
2633
|
relativeTo: this.route,
|
|
2633
2634
|
preserveFragment: true,
|
|
@@ -2652,11 +2653,12 @@ class EntityListComponent {
|
|
|
2652
2653
|
.delete(entity.id)
|
|
2653
2654
|
.pipe(map(() => {
|
|
2654
2655
|
if (this.selected.length &&
|
|
2655
|
-
this.selected[this.selected.length - 1] === entity.id) {
|
|
2656
|
+
this.selected[this.selected.length - 1] === entity.id.toString()) {
|
|
2656
2657
|
this.router.navigate(['../'], {
|
|
2657
2658
|
preserveFragment: true,
|
|
2658
2659
|
relativeTo: this.route.firstChild,
|
|
2659
2660
|
});
|
|
2661
|
+
this.selected.pop();
|
|
2660
2662
|
}
|
|
2661
2663
|
this.loadings--;
|
|
2662
2664
|
}))
|
|
@@ -3351,15 +3353,23 @@ class FieldMultiSelectComponent extends FieldComponent {
|
|
|
3351
3353
|
this.singleMode = false;
|
|
3352
3354
|
this.autoClose = false;
|
|
3353
3355
|
this.changed = new EventEmitter();
|
|
3354
|
-
this.data = [];
|
|
3355
3356
|
this.textField = this.textField ?? 'name';
|
|
3356
3357
|
this.valueField = this.valueField ?? 'id';
|
|
3357
3358
|
}
|
|
3358
3359
|
ngOnChanges() {
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
this.
|
|
3362
|
-
}
|
|
3360
|
+
super.ngOnChanges();
|
|
3361
|
+
if (this.data) {
|
|
3362
|
+
this.updateData(this.data);
|
|
3363
|
+
}
|
|
3364
|
+
else {
|
|
3365
|
+
this.getDataSubscription = this.getData().subscribe((data) => {
|
|
3366
|
+
this.updateData(data.data);
|
|
3367
|
+
this.control.setValue(this.control.value.filter((x) => this.data.some((d) => d.id === x)));
|
|
3368
|
+
});
|
|
3369
|
+
}
|
|
3370
|
+
}
|
|
3371
|
+
ngOnDestroy() {
|
|
3372
|
+
this.getDataSubscription?.unsubscribe();
|
|
3363
3373
|
}
|
|
3364
3374
|
onPopupOpen(event) {
|
|
3365
3375
|
if (!this.singleMode) {
|
|
@@ -3373,8 +3383,13 @@ class FieldMultiSelectComponent extends FieldComponent {
|
|
|
3373
3383
|
getData() {
|
|
3374
3384
|
return this.service.getPage(this.filter ? { filter: this.filter } : {});
|
|
3375
3385
|
}
|
|
3386
|
+
updateData(data) {
|
|
3387
|
+
this.data = data;
|
|
3388
|
+
this.dataSubject = new BehaviorSubject(data);
|
|
3389
|
+
this.data$ = this.dataSubject.asObservable();
|
|
3390
|
+
}
|
|
3376
3391
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FieldMultiSelectComponent, deps: [{ token: i1$3.FormGroupDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3377
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", 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 class=\"col-md-3 control-label\"
|
|
3392
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FieldMultiSelectComponent, selector: "field-multiselect", inputs: { service: "service", rebind: "rebind", filter: "filter", textField: "textField", valueField: "valueField", data: "data", singleMode: "singleMode", autoClose: "autoClose" }, outputs: { changed: "changed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label class=\"col-md-3 control-label\" [for]=\"'_' + fieldName\">{{\n labelKey | translate\n }}</label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n [id]=\"'_' + fieldName\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n (valueChange)=\"onValueChange($event)\"\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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.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", "inputFocus", "inputBlur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
3378
3393
|
{
|
|
3379
3394
|
provide: ControlContainer,
|
|
3380
3395
|
useExisting: FormGroupDirective,
|
|
@@ -3388,7 +3403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
3388
3403
|
provide: ControlContainer,
|
|
3389
3404
|
useExisting: FormGroupDirective,
|
|
3390
3405
|
},
|
|
3391
|
-
], template: "<div class=\"form-group\">\n <label class=\"col-md-3 control-label\"
|
|
3406
|
+
], template: "<div class=\"form-group\">\n <label class=\"col-md-3 control-label\" [for]=\"'_' + fieldName\">{{\n labelKey | translate\n }}</label>\n <div *ngIf=\"control\" class=\"col-md-9\">\n <kendo-multiselect\n [id]=\"'_' + fieldName\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [autoClose]=\"autoClose\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n (open)=\"onPopupOpen($event)\"\n (valueChange)=\"onValueChange($event)\"\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" }]
|
|
3392
3407
|
}], ctorParameters: () => [{ type: i1$3.FormGroupDirective }, { type: i0.ElementRef }], propDecorators: { service: [{
|
|
3393
3408
|
type: Input
|
|
3394
3409
|
}], rebind: [{
|
|
@@ -3399,6 +3414,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
3399
3414
|
type: Input
|
|
3400
3415
|
}], valueField: [{
|
|
3401
3416
|
type: Input
|
|
3417
|
+
}], data: [{
|
|
3418
|
+
type: Input
|
|
3402
3419
|
}], singleMode: [{
|
|
3403
3420
|
type: Input
|
|
3404
3421
|
}], autoClose: [{
|