@tetacom/ng-components 1.4.5 → 1.4.7
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/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +11 -17
- package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +18 -19
- package/component/property-grid/property-grid/property-grid.component.d.ts +10 -15
- package/component/property-grid/public-api.d.ts +0 -1
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +3 -3
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +15 -49
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +42 -55
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +23 -40
- package/esm2022/component/property-grid/public-api.mjs +1 -2
- package/esm2022/util/forms-util.mjs +4 -11
- package/fesm2022/tetacom-ng-components.mjs +123 -236
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
- package/style/list.scss +2 -1
- package/util/forms-util.d.ts +1 -2
- package/component/property-grid/property-grid.module.d.ts +0 -13
- package/esm2022/component/property-grid/property-grid.module.mjs +0 -57
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, computed, inject, input, output, } from '@angular/core';
|
|
2
2
|
import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { TranslocoService } from '@ngneat/transloco';
|
|
4
4
|
import { takeWhile } from 'rxjs/operators';
|
|
@@ -6,7 +6,6 @@ import { Align } from '../../../../common/enum/align.enum';
|
|
|
6
6
|
import { boolOrFuncCallback } from '../../../../util/bool-or-func';
|
|
7
7
|
import { FormsUtil } from '../../../../util/forms-util';
|
|
8
8
|
import { FilterType } from '../../../filter/enum/filter-type.enum';
|
|
9
|
-
import { TableColumn } from '../../../table/contract/table-column';
|
|
10
9
|
import { TextFieldComponent } from '../../../input/text-field/text-field.component';
|
|
11
10
|
import { ToggleComponent } from '../../../toggle/toggle/toggle.component';
|
|
12
11
|
import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
|
|
@@ -15,12 +14,8 @@ import { NgTemplateOutlet } from '@angular/common';
|
|
|
15
14
|
import { InputComponent } from '../../../input/input/input.component';
|
|
16
15
|
import { DisableControlDirective } from '../../../../directive/disable-control/disable-control.directive';
|
|
17
16
|
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "@
|
|
19
|
-
import * as i2 from "@angular/forms";
|
|
17
|
+
import * as i1 from "@angular/forms";
|
|
20
18
|
export class PropertyGridItemComponent {
|
|
21
|
-
get template() {
|
|
22
|
-
return this.itemTemplates.find((item) => item.name === this.column.name);
|
|
23
|
-
}
|
|
24
19
|
get formGroup() {
|
|
25
20
|
if (this._formGroup instanceof FormGroup) {
|
|
26
21
|
return this._formGroup;
|
|
@@ -30,30 +25,40 @@ export class PropertyGridItemComponent {
|
|
|
30
25
|
}
|
|
31
26
|
return null;
|
|
32
27
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
constructor() {
|
|
29
|
+
this.transloco = inject(TranslocoService);
|
|
30
|
+
this._formGroup = inject(ControlContainer);
|
|
31
|
+
this.column = input();
|
|
32
|
+
this.hideNonEditable = input();
|
|
33
|
+
this.dict = input();
|
|
34
|
+
this.decimalPart = input();
|
|
35
|
+
this.item = input();
|
|
36
|
+
this.itemTemplates = input();
|
|
37
|
+
this.template = computed(() => {
|
|
38
|
+
return this.itemTemplates().find((item) => item.name === this.column().name);
|
|
37
39
|
});
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this._transloco = _transloco;
|
|
47
|
-
this._formGroup = _formGroup;
|
|
48
|
-
this.controlValueChange = new EventEmitter();
|
|
40
|
+
this.editable = computed(() => {
|
|
41
|
+
return boolOrFuncCallback(this.column().editable)({
|
|
42
|
+
column: this.column(),
|
|
43
|
+
row: this.formGroup?.getRawValue(),
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
this.horizontal = input();
|
|
47
|
+
this.controlValueChange = output();
|
|
49
48
|
this.align = Align;
|
|
50
49
|
this.filterTypeEnum = FilterType;
|
|
50
|
+
this.caption = computed(() => {
|
|
51
|
+
if (this.column().filterType === FilterType.boolean) {
|
|
52
|
+
return '';
|
|
53
|
+
}
|
|
54
|
+
return `${this.column().caption}${this.column().unit ? `, ${this.column().unit}` : ''}`;
|
|
55
|
+
});
|
|
51
56
|
this._alive = true;
|
|
52
57
|
}
|
|
53
58
|
getDict() {
|
|
54
59
|
const dict = this.dict ? this.dict[this.column.name] : [];
|
|
55
|
-
if (this.column.parentName?.length > 0) {
|
|
56
|
-
return dict?.filter((dictItem) => dictItem.parentId === this.formGroup?.getRawValue()[this.column.parentName]);
|
|
60
|
+
if (this.column().parentName?.length > 0) {
|
|
61
|
+
return dict?.filter((dictItem) => dictItem.parentId === this.formGroup?.getRawValue()[this.column().parentName]);
|
|
57
62
|
}
|
|
58
63
|
return dict;
|
|
59
64
|
}
|
|
@@ -63,20 +68,20 @@ export class PropertyGridItemComponent {
|
|
|
63
68
|
getError(column) {
|
|
64
69
|
const control = this.formGroup?.get(column.name);
|
|
65
70
|
if (control?.hasError('required')) {
|
|
66
|
-
return this.
|
|
71
|
+
return this.transloco.translate('errors.field_is_required');
|
|
67
72
|
}
|
|
68
73
|
if (control?.hasError('min')) {
|
|
69
|
-
return this.
|
|
74
|
+
return this.transloco.translate('errors.min_value', {
|
|
70
75
|
value: column.minValue,
|
|
71
76
|
});
|
|
72
77
|
}
|
|
73
78
|
if (control?.hasError('max')) {
|
|
74
|
-
return this.
|
|
79
|
+
return this.transloco.translate('errors.max_value', {
|
|
75
80
|
value: column.maxValue,
|
|
76
81
|
});
|
|
77
82
|
}
|
|
78
83
|
if (control?.hasError('maxlength')) {
|
|
79
|
-
return this.
|
|
84
|
+
return this.transloco.translate('errors.max_length', {
|
|
80
85
|
value: column.maxLength,
|
|
81
86
|
});
|
|
82
87
|
}
|
|
@@ -87,21 +92,21 @@ export class PropertyGridItemComponent {
|
|
|
87
92
|
this._formSub?.unsubscribe();
|
|
88
93
|
}
|
|
89
94
|
ngOnChanges(changes) {
|
|
90
|
-
if (this.column && this.item) {
|
|
91
|
-
this.formGroup.
|
|
95
|
+
if (this.column() && this.item()) {
|
|
96
|
+
this.formGroup.setControl(this.column().name, FormsUtil.initControlFromColumn(this.column(), this.item()));
|
|
92
97
|
this._formSub?.unsubscribe();
|
|
93
|
-
this._formSub = this.formGroup?.controls[this.column.name]?.valueChanges
|
|
98
|
+
this._formSub = this.formGroup?.controls[this.column().name]?.valueChanges
|
|
94
99
|
.pipe(takeWhile(() => this._alive))
|
|
95
100
|
.subscribe((_) => {
|
|
96
101
|
this.controlValueChange.emit({
|
|
97
102
|
id: _,
|
|
98
|
-
name: this.column.name,
|
|
103
|
+
name: this.column().name,
|
|
99
104
|
});
|
|
100
105
|
});
|
|
101
106
|
}
|
|
102
107
|
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable || !hideNonEditable) {\n<teta-input\n
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\">\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"></ng-container>\n } @else {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n }\n }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
105
110
|
}
|
|
106
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
|
|
107
112
|
type: Component,
|
|
@@ -115,24 +120,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
115
120
|
ToggleComponent,
|
|
116
121
|
TextFieldComponent,
|
|
117
122
|
DisableControlDirective,
|
|
118
|
-
], template: "@if (editable || !hideNonEditable) {\n<teta-input\n
|
|
119
|
-
}], ctorParameters: () => [
|
|
120
|
-
type: Optional
|
|
121
|
-
}] }], propDecorators: { column: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], hideNonEditable: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], dict: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], decimalPart: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], item: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], itemTemplates: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], horizontal: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], controlValueChange: [{
|
|
136
|
-
type: Output
|
|
137
|
-
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENB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O3dCQUNsQix1QkFBdUI7cUJBQ3hCOzswQkErQ2tELFFBQVE7eUNBNUNsRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkF1QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0sIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgSUlkTmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7IGJvb2xPckZ1bmNDYWxsYmFjayB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwvYm9vbC1vci1mdW5jJztcbmltcG9ydCB7IEZvcm1zVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwvZm9ybXMtdXRpbCc7XG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL2VudW0vZmlsdGVyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uLy4uL3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2lucHV0L3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VsZWN0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnB1dC9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzYWJsZUNvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmUvZGlzYWJsZS1jb250cm9sL2Rpc2FibGUtY29udHJvbC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgIFRvZ2dsZUNvbXBvbmVudCxcbiAgICBUZXh0RmllbGRDb21wb25lbnQsXG4gICAgRGlzYWJsZUNvbnRyb2xEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIGhpZGVOb25FZGl0YWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGljdDogSURpY3Rpb25hcnk8SUlkTmFtZTxhbnk+W10+O1xuICBASW5wdXQoKSBkZWNpbWFsUGFydDogbnVtYmVyO1xuICBASW5wdXQoKSBpdGVtOiBUO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcblxuICBnZXQgdGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRlbXBsYXRlcy5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuY29sdW1uLm5hbWUpO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXAuZm9ybTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZWRpdGFibGUoKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayh0aGlzLmNvbHVtbi5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgIHJvdzogdGhpcy5mb3JtR3JvdXA/LmdldFJhd1ZhbHVlKCksXG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBob3Jpem9udGFsOiBib29sZWFuO1xuICBAT3V0cHV0KCkgY29udHJvbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJSWROYW1lPGFueT4+KCk7XG4gIGFsaWduID0gQWxpZ247XG4gIGZpbHRlclR5cGVFbnVtID0gRmlsdGVyVHlwZTtcblxuICBwcml2YXRlIF9mb3JtU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGNhcHRpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbi5jYXB0aW9ufSR7dGhpcy5jb2x1bW4udW5pdCA/IGAsICR7dGhpcy5jb2x1bW4udW5pdH1gIDogJyd9YDtcbiAgfVxuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2xvY286IFRyYW5zbG9jb1NlcnZpY2UsIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cDogQ29udHJvbENvbnRhaW5lcikge31cblxuICBnZXREaWN0KCkge1xuICAgIGNvbnN0IGRpY3QgPSB0aGlzLmRpY3QgPyB0aGlzLmRpY3RbdGhpcy5jb2x1bW4ubmFtZV0gOiBbXTtcbiAgICBpZiAodGhpcy5jb2x1bW4ucGFyZW50TmFtZT8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRpY3Q/LmZpbHRlcihcbiAgICAgICAgKGRpY3RJdGVtOiBJSWROYW1lPGFueT4pID0+IGRpY3RJdGVtLnBhcmVudElkID09PSB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKVt0aGlzLmNvbHVtbi5wYXJlbnROYW1lXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cblxuICBjb250cm9sSXNJbnZhbGlkKGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQodGhpcy5mb3JtR3JvdXAsIGNvbnRyb2xOYW1lKTtcbiAgfVxuXG4gIGdldEVycm9yKGNvbHVtbjogVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtR3JvdXA/LmdldChjb2x1bW4ubmFtZSk7XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLmZpZWxkX2lzX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWluJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWluX3ZhbHVlJywge1xuICAgICAgICB2YWx1ZTogY29sdW1uLm1pblZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWF4JykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWF4X3ZhbHVlJywge1xuICAgICAgICB2YWx1ZTogY29sdW1uLm1heFZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWF4X2xlbmd0aCcsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhMZW5ndGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uICYmIHRoaXMuaXRlbSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVnaXN0ZXJDb250cm9sKHRoaXMuY29sdW1uLm5hbWUsIEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuaXRlbSkpO1xuICAgICAgdGhpcy5fZm9ybVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2Zvcm1TdWIgPSB0aGlzLmZvcm1Hcm91cD8uY29udHJvbHNbdGhpcy5jb2x1bW4ubmFtZV0/LnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250cm9sVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBpZDogXyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuY29sdW1uLm5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChlZGl0YWJsZSB8fCAhaGlkZU5vbkVkaXRhYmxlKSB7XG48dGV0YS1pbnB1dFxuICBbbGFiZWxdPVwiY2FwdGlvblwiXG4gIFtoaW50XT1cImNvbHVtbi5oaW50XCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXG4+XG4gIEBpZiAodGVtcGxhdGUpIHtcbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGUudGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmb3JtR3JvdXA/LmdldChjb2x1bW4ubmFtZSkgfVwiXG4gID48L25nLWNvbnRhaW5lcj5cbiAgfSBAZWxzZSB7IEBpZiAoZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpKSB7IEBzd2l0Y2ggKGNvbHVtbi5maWx0ZXJUeXBlKSB7IEBjYXNlIChmaWx0ZXJUeXBlRW51bS5saXN0KSB7XG4gIDx0ZXRhLXNlbGVjdFxuICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgIFt0ZXRhRGlzYWJsZUNvbnRyb2xdPVwiIWVkaXRhYmxlXCJcbiAgICBbc2VhcmNoUmVmXT1cImdldERpY3QoKT8ubGVuZ3RoID4gMTAgPyAnbmFtZScgOiAnJ1wiXG4gICAgW2FsbG93TnVsbF09XCIhY29sdW1uLnJlcXVpcmVkXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgIFt2YWx1ZVJlZl09XCInaWQnXCJcbiAgICBbdGV4dFJlZl09XCInbmFtZSdcIlxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gID48L3RldGEtc2VsZWN0PlxuICB9IEBjYXNlIChmaWx0ZXJUeXBlRW51bS5kYXRlKSB7XG4gIDx0ZXRhLWRhdGUtcGlja2VyXG4gICAgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZVwiXG4gICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSlcIlxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICA+PC90ZXRhLWRhdGUtcGlja2VyPlxuICB9IEBjYXNlIChmaWx0ZXJUeXBlRW51bS5ib29sZWFuKSB7XG4gIDx0ZXRhLXRvZ2dsZSBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj5cbiAgICB7eyBjb2x1bW4uY2FwdGlvbiB9fVxuICA8L3RldGEtdG9nZ2xlPlxuICB9IEBkZWZhdWx0IHtcbiAgPHRldGEtdGV4dC1maWVsZFxuICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgIFt0ZXRhRGlzYWJsZUNvbnRyb2xdPVwiIWVkaXRhYmxlXCJcbiAgICBbZGVjaW1hbFBhcnRdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlciA/IGRlY2ltYWxQYXJ0IDogbnVsbFwiXG4gICAgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImNvbHVtbi5jYXB0aW9uXCJcbiAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiXG4gID48L3RldGEtdGV4dC1maWVsZD5cbiAgfSB9IH0gfVxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHQ+XG4gICAgQGlmIChmb3JtR3JvdXA/LmdldChjb2x1bW4ubmFtZSkpIHsgQHN3aXRjaCAoY29sdW1uLmZpbHRlclR5cGUpIHsgQGNhc2UgKGZpbHRlclR5cGVFbnVtLmxpc3QpIHtcbiAgICA8dGV0YS1zZWxlY3RcbiAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIlxuICAgICAgW3NlYXJjaFJlZl09XCJnZXREaWN0KCk/Lmxlbmd0aCA+IDEwID8gJ25hbWUnIDogJydcIlxuICAgICAgW2FsbG93TnVsbF09XCIhY29sdW1uLnJlcXVpcmVkXCJcbiAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgIFtvcHRpb25zXT1cImdldERpY3QoKVwiXG4gICAgICBbdmFsdWVSZWZdPVwiJ2lkJ1wiXG4gICAgICBbdGV4dFJlZl09XCInbmFtZSdcIlxuICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICA+PC90ZXRhLXNlbGVjdD5cbiAgICB9IEBjYXNlIChmaWx0ZXJUeXBlRW51bS5kYXRlKSB7XG4gICAgPHRldGEtZGF0ZS1waWNrZXJcbiAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgIFt0ZXRhRGlzYWJsZUNvbnRyb2xdPVwiIWVkaXRhYmxlXCJcbiAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgID48L3RldGEtZGF0ZS1waWNrZXI+XG4gICAgfSBAY2FzZSAoZmlsdGVyVHlwZUVudW0uYm9vbGVhbikge1xuICAgIDx0ZXRhLXRvZ2dsZSBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj5cbiAgICAgIHt7IGNvbHVtbi5jYXB0aW9uIH19XG4gICAgPC90ZXRhLXRvZ2dsZT5cbiAgICB9IEBkZWZhdWx0IHtcbiAgICA8dGV0YS10ZXh0LWZpZWxkXG4gICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4uZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZUVudW0ubnVtYmVyID8gZGVjaW1hbFBhcnQgOiBudWxsXCJcbiAgICAgIFtvbmx5TnVtYmVyXT1cImNvbHVtbi5maWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlRW51bS5udW1iZXJcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbHVtbi5jYXB0aW9uXCJcbiAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgIFt0ZXRhRGlzYWJsZUNvbnRyb2xdPVwiIWVkaXRhYmxlXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgID48L3RldGEtdGV4dC1maWVsZD5cbiAgICB9IH0gfVxuICA8L25nLXRlbXBsYXRlPlxuICBAaWYgKGNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpKSB7XG4gIDxkaXYgbmdQcm9qZWN0QXM9XCJtZXNzYWdlXCIgY2xhc3M9XCJjb2xvci1yZWQtNTBcIj5cbiAgICB7eyBnZXRFcnJvcihjb2x1bW4pIH19XG4gIDwvZGl2PlxuICB9XG48L3RldGEtaW5wdXQ+XG59XG4iXX0=
|
|
123
|
+
], template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\">\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"></ng-container>\n } @else {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n }\n }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n" }]
|
|
124
|
+
}], ctorParameters: () => [] });
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFFBQVEsRUFDbkIsTUFBTSxFQUFFLEtBQUssRUFHYixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSXpDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBR2pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMz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QUF5Qix1a0NDaER0Qyw2MEVBNkRBLDBERHhCSSxjQUFjLHVIQUNkLFdBQVcsa1NBQ1gsbUJBQW1CLGdWQUNuQixnQkFBZ0Isb0pBQ2hCLGVBQWUscVRBQ2YsbUJBQW1CLG9WQUNuQixlQUFlLG9HQUNmLGtCQUFrQix5SkFDbEIsdUJBQXVCLHNGQVhWLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7MkZBYzVCLHlCQUF5QjtrQkFsQnJDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FDM0IsSUFBSSxXQUNQO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQix1QkFBdUI7cUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBjb21wdXRlZCxcbiAgaW5qZWN0LCBpbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIG91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0sIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbG9jb1NlcnZpY2V9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7SURpY3Rpb25hcnl9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHtJSWROYW1lfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtib29sT3JGdW5jQ2FsbGJhY2t9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwvYm9vbC1vci1mdW5jJztcbmltcG9ydCB7Rm9ybXNVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHtGaWx0ZXJUeXBlfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uLy4uL3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge1Byb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RleHRGaWVsZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1RvZ2dsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7RGF0ZVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7U2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7RGlzYWJsZUNvbnRyb2xEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZS9kaXNhYmxlLWNvbnRyb2wvZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtcHJvcGVydHktZ3JpZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbRm9ybXNVdGlsLmZvcm1Qcm92aWRlcl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgVG9nZ2xlQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBEaXNhYmxlQ29udHJvbERpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSB0cmFuc2xvY28gPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSlcbiAgcHJpdmF0ZSBfZm9ybUdyb3VwID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpO1xuXG4gIGNvbHVtbiA9IGlucHV0PFRhYmxlQ29sdW1uPigpO1xuICBoaWRlTm9uRWRpdGFibGUgPSBpbnB1dDxib29sZWFuPigpXG4gIGRpY3QgPSBpbnB1dDxJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT4+KClcbiAgZGVjaW1hbFBhcnQgPSBpbnB1dDxudW1iZXI+KClcbiAgaXRlbSA9IGlucHV0PFQ+KClcbiAgaXRlbVRlbXBsYXRlcyA9IGlucHV0PFF1ZXJ5TGlzdDxQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmU+PigpXG5cbiAgdGVtcGxhdGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRlbXBsYXRlcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gdGhpcy5jb2x1bW4oKS5uYW1lKTtcbiAgfSlcblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBib29sT3JGdW5jQ2FsbGJhY2sodGhpcy5jb2x1bW4oKS5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbigpLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KVxuICB9KVxuXG4gIGhvcml6b250YWwgPSBpbnB1dDxib29sZWFuPigpO1xuICBjb250cm9sVmFsdWVDaGFuZ2UgPSBvdXRwdXQ8SUlkTmFtZTxhbnk+PigpO1xuICBhbGlnbiA9IEFsaWduO1xuICBmaWx0ZXJUeXBlRW51bSA9IEZpbHRlclR5cGU7XG5cbiAgcHJpdmF0ZSBfZm9ybVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNhcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbigpLmNhcHRpb259JHt0aGlzLmNvbHVtbigpLnVuaXQgPyBgLCAke3RoaXMuY29sdW1uKCkudW5pdH1gIDogJyd9YDtcbiAgfSlcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBnZXREaWN0KCkge1xuICAgIGNvbnN0IGRpY3QgPSB0aGlzLmRpY3QgPyB0aGlzLmRpY3RbdGhpcy5jb2x1bW4ubmFtZV0gOiBbXTtcbiAgICBpZiAodGhpcy5jb2x1bW4oKS5wYXJlbnROYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGljdD8uZmlsdGVyKFxuICAgICAgICAoZGljdEl0ZW06IElJZE5hbWU8YW55PikgPT4gZGljdEl0ZW0ucGFyZW50SWQgPT09IHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpW3RoaXMuY29sdW1uKCkucGFyZW50TmFtZV1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgY29udHJvbElzSW52YWxpZChjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKHRoaXMuZm9ybUdyb3VwLCBjb250cm9sTmFtZSk7XG4gIH1cblxuICBnZXRFcnJvcihjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpO1xuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLmZpZWxkX2lzX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWluJykpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5taW5fdmFsdWUnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWluVmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWF4X2xlbmd0aCcsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhMZW5ndGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uKCkgJiYgdGhpcy5pdGVtKCkpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnNldENvbnRyb2wodGhpcy5jb2x1bW4oKS5uYW1lLCBGb3Jtc1V0aWwuaW5pdENvbnRyb2xGcm9tQ29sdW1uKHRoaXMuY29sdW1uKCksIHRoaXMuaXRlbSgpKSk7XG4gICAgICB0aGlzLl9mb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fZm9ybVN1YiA9IHRoaXMuZm9ybUdyb3VwPy5jb250cm9sc1t0aGlzLmNvbHVtbigpLm5hbWVdPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgIHRoaXMuY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgaWQ6IF8sXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmNvbHVtbigpLm5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChlZGl0YWJsZSgpIHx8ICFoaWRlTm9uRWRpdGFibGUoKSkge1xuICA8dGV0YS1pbnB1dFxuICAgIFtsYWJlbF09XCJjYXB0aW9uKClcIlxuICAgIFtoaW50XT1cImNvbHVtbigpLmhpbnRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsKClcIlxuICAgIFtyZXF1aXJlZF09XCJjb2x1bW4oKS5yZXF1aXJlZFwiPlxuICAgIEBpZiAodGVtcGxhdGUoKSkge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlKCkudGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmb3JtR3JvdXA/LmdldChjb2x1bW4oKS5uYW1lKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKGZvcm1Hcm91cD8uZ2V0KGNvbHVtbigpLm5hbWUpKSB7XG4gICAgICAgIEBzd2l0Y2ggKGNvbHVtbigpLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0ubGlzdCkge1xuICAgICAgICAgICAgPHRldGEtc2VsZWN0XG4gICAgICAgICAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFJlZl09XCJnZXREaWN0KCk/Lmxlbmd0aCA+IDEwID8gJ25hbWUnIDogJydcIlxuICAgICAgICAgICAgICBbYWxsb3dOdWxsXT1cIiFjb2x1bW4oKS5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uKCkubmFtZSlcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgICAgICAgICAgICBbdmFsdWVSZWZdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgIFt0ZXh0UmVmXT1cIiduYW1lJ1wiXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPjwvdGV0YS1zZWxlY3Q+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5kYXRlKSB7XG4gICAgICAgICAgICA8dGV0YS1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uKCkubmFtZSlcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIj48L3RldGEtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5ib29sZWFuKSB7XG4gICAgICAgICAgICA8dGV0YS10b2dnbGUgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgY29sdW1uKCkuY2FwdGlvbiB9fVxuICAgICAgICAgICAgPC90ZXRhLXRvZ2dsZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPHRldGEtdGV4dC1maWVsZFxuICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4oKS5maWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlRW51bS5udW1iZXIgPyBkZWNpbWFsUGFydCgpIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtvbmx5TnVtYmVyXT1cImNvbHVtbigpLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb2x1bW4oKS5jYXB0aW9uXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uKCkubmFtZVwiXG4gICAgICAgICAgICA+PC90ZXRhLXRleHQtZmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAoY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKSkge1xuICAgICAgPGRpdiBuZ1Byb2plY3RBcz1cIm1lc3NhZ2VcIiBjbGFzcz1cImNvbG9yLXJlZC01MFwiPlxuICAgICAgICB7eyBnZXRFcnJvcihjb2x1bW4oKSkgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC90ZXRhLWlucHV0PlxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Component, ContentChildren,
|
|
2
|
-
import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
1
|
+
import { Component, ContentChildren, effect, HostBinding, input, Optional, output, QueryList, } from '@angular/core';
|
|
2
|
+
import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
|
3
3
|
import { boolOrFuncCallback } from '../../../util/bool-or-func';
|
|
4
4
|
import { FormsUtil } from '../../../util/forms-util';
|
|
5
5
|
import { PropertyGridItemDescriptionDirective } from './property-grid-item-description.directive';
|
|
@@ -8,17 +8,6 @@ import { PropertyGridItemComponent } from './property-grid-item/property-grid-it
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/forms";
|
|
10
10
|
export class PropertyGridComponent {
|
|
11
|
-
set item(item) {
|
|
12
|
-
this._item = item;
|
|
13
|
-
if (this.formGroup) {
|
|
14
|
-
this.formGroup.patchValue(item, {
|
|
15
|
-
emitEvent: false,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
get item() {
|
|
20
|
-
return this._item;
|
|
21
|
-
}
|
|
22
11
|
get formGroup() {
|
|
23
12
|
if (this._formGroup instanceof FormGroup) {
|
|
24
13
|
return this._formGroup;
|
|
@@ -31,8 +20,22 @@ export class PropertyGridComponent {
|
|
|
31
20
|
constructor(_formGroup) {
|
|
32
21
|
this._formGroup = _formGroup;
|
|
33
22
|
this.formClass = true;
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
23
|
+
this.hideNonEditable = input();
|
|
24
|
+
this.columns = input();
|
|
25
|
+
this.dict = input();
|
|
26
|
+
this.item = input();
|
|
27
|
+
this.horizontal = input();
|
|
28
|
+
this.decimalPart = input();
|
|
29
|
+
this.controlValueChange = output();
|
|
30
|
+
effect(() => {
|
|
31
|
+
if (this.item() && this.formGroup) {
|
|
32
|
+
for (const key in this.item()) {
|
|
33
|
+
if (this.item().hasOwnProperty(key)) {
|
|
34
|
+
this.formGroup.setControl(key, new UntypedFormControl(this.item()[key]));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
36
39
|
}
|
|
37
40
|
getEditable(column) {
|
|
38
41
|
return boolOrFuncCallback(column.editable)({
|
|
@@ -41,7 +44,7 @@ export class PropertyGridComponent {
|
|
|
41
44
|
});
|
|
42
45
|
}
|
|
43
46
|
onControlValueChange(event) {
|
|
44
|
-
const affected = this.columns.filter((_) => _.parentName === event.name);
|
|
47
|
+
const affected = this.columns().filter((_) => _.parentName === event.name);
|
|
45
48
|
if (affected?.length) {
|
|
46
49
|
affected.forEach((item) => {
|
|
47
50
|
const value = this.formGroup.getRawValue()[item.name];
|
|
@@ -57,21 +60,15 @@ export class PropertyGridComponent {
|
|
|
57
60
|
}
|
|
58
61
|
this.controlValueChange.emit(event);
|
|
59
62
|
}
|
|
60
|
-
ngOnDestroy() {
|
|
61
|
-
this._alive = false;
|
|
62
|
-
}
|
|
63
|
-
trackColumns(index, column) {
|
|
64
|
-
return column.name;
|
|
65
|
-
}
|
|
66
63
|
getDictValue(value, name) {
|
|
67
|
-
return this.dict[name]?.find((_) => _.id === value);
|
|
64
|
+
return this.dict()[name]?.find((_) => _.id === value);
|
|
68
65
|
}
|
|
69
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns().length) {\n @for (column of columns(); track column.name) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-item\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
71
68
|
}
|
|
72
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
|
|
73
70
|
type: Component,
|
|
74
|
-
args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], template: "@if (columns
|
|
71
|
+
args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], template: "@if (columns().length) {\n @for (column of columns(); track column.name) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-item\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"] }]
|
|
75
72
|
}], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
|
|
76
73
|
type: Optional
|
|
77
74
|
}] }], propDecorators: { formClass: [{
|
|
@@ -80,19 +77,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
80
77
|
}], itemTemplates: [{
|
|
81
78
|
type: ContentChildren,
|
|
82
79
|
args: [PropertyGridItemDescriptionDirective]
|
|
83
|
-
}], hideNonEditable: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], columns: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], dict: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], item: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], horizontal: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], decimalPart: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], controlValueChange: [{
|
|
96
|
-
type: Output
|
|
97
80
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7QUFVOUYsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxJQUFhLElBQUksQ0FBQyxJQUFPO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFD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QUNFLG9CQUFvQixpQkFHZixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FDM0IsSUFBSSxXQUNQLENBQUMseUJBQXlCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixDQUFDOzswQkFzQ3JGLFFBQVE7eUNBbkNnQixTQUFTO3NCQUE3QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFFbkMsYUFBYTtzQkFEWixlQUFlO3VCQUFDLG9DQUFvQztnQkFFNUMsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUs7Z0JBV0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0sIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgSUlkTmFtZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHsgYm9vbE9yRnVuY0NhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9ib29sLW9yLWZ1bmMnO1xuaW1wb3J0IHsgRm9ybXNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtcHJvcGVydHktZ3JpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHktZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbRm9ybXNVdGlsLmZvcm1Qcm92aWRlcl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgUHJvcGVydHlHcmlkR3JvdXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY29udGFpbmVyJykgZm9ybUNsYXNzID0gdHJ1ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmUpXG4gIGl0ZW1UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmU+O1xuICBASW5wdXQoKSBoaWRlTm9uRWRpdGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1uW107XG4gIEBJbnB1dCgpIGRpY3Q6IElEaWN0aW9uYXJ5PElJZE5hbWU8YW55PltdPjtcbiAgQElucHV0KCkgc2V0IGl0ZW0oaXRlbTogVCkge1xuICAgIHRoaXMuX2l0ZW0gPSBpdGVtO1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShpdGVtLCB7XG4gICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZ2V0IGl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW07XG4gIH1cbiAgQElucHV0KCkgaG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVjaW1hbFBhcnQ6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgY29udHJvbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJSWROYW1lPGFueT4+KCk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9pdGVtOiBUO1xuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgTmdGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwLmZvcm07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybUdyb3VwOiBDb250cm9sQ29udGFpbmVyKSB7fVxuXG4gIGdldEVkaXRhYmxlKGNvbHVtbjogVGFibGVDb2x1bW4pIHtcbiAgICByZXR1cm4gYm9vbE9yRnVuY0NhbGxiYWNrKGNvbHVtbi5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICByb3c6IHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpLFxuICAgIH0pO1xuICB9XG5cbiAgb25Db250cm9sVmFsdWVDaGFuZ2UoZXZlbnQ6IElJZE5hbWU8YW55Pikge1xuICAgIGNvbnN0IGFmZmVjdGVkID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoXykgPT4gXy5wYXJlbnROYW1lID09PSBldmVudC5uYW1lKTtcbiAgICBpZiAoYWZmZWN0ZWQ/Lmxlbmd0aCkge1xuICAgICAgYWZmZWN0ZWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICB0cmFja0NvbHVtbnMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IGFueSB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaWN0VmFsdWUodmFsdWU6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZGljdFtuYW1lXT8uZmluZCgoXykgPT4gXy5pZCA9PT0gdmFsdWUpO1xuICB9XG59XG4iLCJAaWYgKGNvbHVtbnM/Lmxlbmd0aCkgeyBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgdHJhY2tDb2x1bW5zKCRpbmRleCwgY29sdW1uKSkgeyBAaWYgKGNvbHVtbi5jb2x1bW5zPy5sZW5ndGggPCAxXG4mJiAoZ2V0RWRpdGFibGUoY29sdW1uKSB8fCAhaGlkZU5vbkVkaXRhYmxlKSkge1xuPHRldGEtcHJvcGVydHktZ3JpZC1pdGVtXG4gIFtkaWN0XT1cImRpY3RcIlxuICBbY29sdW1uXT1cImNvbHVtblwiXG4gIFtpdGVtXT1cIml0ZW1cIlxuICBbaWRdPVwiY29sdW1uLm5hbWVcIlxuICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzXCJcbiAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0XCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9XCJvbkNvbnRyb2xWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgW2hpZGVOb25FZGl0YWJsZV09XCJoaWRlTm9uRWRpdGFibGVcIlxuPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0+XG59IEBpZiAoY29sdW1uLmNvbHVtbnM/Lmxlbmd0aCA+IDAgJiYgKGdldEVkaXRhYmxlKGNvbHVtbikgfHwgIWhpZGVOb25FZGl0YWJsZSkpIHtcbjx0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXBcbiAgW2lkXT1cImNvbHVtbi5uYW1lXCJcbiAgW2RpY3RdPVwiZGljdFwiXG4gIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgW2l0ZW1dPVwiaXRlbVwiXG4gIFtpdGVtVGVtcGxhdGVzXT1cIml0ZW1UZW1wbGF0ZXNcIlxuICBbZGVjaW1hbFBhcnRdPVwiZGVjaW1hbFBhcnRcIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gIFtob3Jpem9udGFsXT1cImhvcml6b250YWxcIlxuICAoY29udHJvbFZhbHVlQ2hhbmdlKT1cIm9uQ29udHJvbFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICBbaGlkZU5vbkVkaXRhYmxlXT1cImhpZGVOb25FZGl0YWJsZVwiXG4+PC90ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXA+XG59IH0gfVxuIl19
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQUUsTUFBTSxFQUN2QixXQUFXLEVBQUUsS0FBSyxFQUNsQixRQUFRLEVBQUUsTUFBTSxFQUVoQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDOzs7QUFVNUYsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksU0FBUyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJ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RCxDQUFDOzhHQS9EVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixrZ0NBRWYsb0NBQW9DLDZCQ3BDdkQscXBDQWdDQSxtRkRBWSx5QkFBeUIseU1BQUUsV0FBVywwTEFBRSxtQkFBbUIsZ0xBQUUsMEJBQTBCLGdNQUZsRixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7OzJGQUk1QixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUdmLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUMzQixJQUFJLFdBQ1AsQ0FBQyx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLENBQUM7OzBCQTBCckYsUUFBUTt5Q0F2QmdCLFNBQVM7c0JBQTdDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUVuQyxhQUFhO3NCQURaLGVBQWU7dUJBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sIGVmZmVjdCxcbiAgSG9zdEJpbmRpbmcsIGlucHV0LFxuICBPcHRpb25hbCwgb3V0cHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBGb3JtR3JvdXAsXG4gIE5nRm9ybSxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7SURpY3Rpb25hcnl9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHtJSWROYW1lfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7Ym9vbE9yRnVuY0NhbGxiYWNrfSBmcm9tICcuLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQge0Zvcm1zVXRpbH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uL3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge1Byb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7UHJvcGVydHlHcmlkR3JvdXBDb21wb25lbnR9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQge1Byb3BlcnR5R3JpZEl0ZW1Db21wb25lbnR9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFByb3BlcnR5R3JpZEdyb3VwQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50PFQ+IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLWNvbnRhaW5lcicpIGZvcm1DbGFzcyA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlKVxuICBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcbiAgaGlkZU5vbkVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgY29sdW1ucyA9IGlucHV0PFRhYmxlQ29sdW1uW10+KCk7XG4gIGRpY3QgPSBpbnB1dDxJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT4+KCk7XG4gIGl0ZW0gPSBpbnB1dDxUPigpO1xuXG4gIGhvcml6b250YWwgPSBpbnB1dDxib29sZWFuPigpO1xuICBkZWNpbWFsUGFydCA9IGlucHV0PG51bWJlcj4oKTtcblxuICBjb250cm9sVmFsdWVDaGFuZ2UgPSBvdXRwdXQ8SUlkTmFtZTxhbnk+PigpO1xuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgTmdGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwLmZvcm07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybUdyb3VwOiBDb250cm9sQ29udGFpbmVyKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLml0ZW0oKSAmJiB0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLml0ZW0oKSkge1xuICAgICAgICAgIGlmICh0aGlzLml0ZW0oKS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5zZXRDb250cm9sKGtleSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLml0ZW0oKVtrZXldKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRFZGl0YWJsZShjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayhjb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbFZhbHVlQ2hhbmdlKGV2ZW50OiBJSWROYW1lPGFueT4pIHtcbiAgICBjb25zdCBhZmZlY3RlZCA9IHRoaXMuY29sdW1ucygpLmZpbHRlcigoXykgPT4gXy5wYXJlbnROYW1lID09PSBldmVudC5uYW1lKTtcbiAgICBpZiAoYWZmZWN0ZWQ/Lmxlbmd0aCkge1xuICAgICAgYWZmZWN0ZWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGljdFZhbHVlKHZhbHVlOiBhbnksIG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmRpY3QoKVtuYW1lXT8uZmluZCgoXykgPT4gXy5pZCA9PT0gdmFsdWUpO1xuICB9XG59XG4iLCJAaWYgKGNvbHVtbnMoKS5sZW5ndGgpIHtcbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgY29sdW1uLm5hbWUpIHtcbiAgICBAaWYgKGNvbHVtbi5jb2x1bW5zPy5sZW5ndGggPCAxICYmIChnZXRFZGl0YWJsZShjb2x1bW4pIHx8ICFoaWRlTm9uRWRpdGFibGUpKSB7XG4gICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW1cbiAgICAgICAgW2RpY3RdPVwiZGljdCgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgICBbaWRdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzXCJcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0KClcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImhvcml6b250YWwoKVwiXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwib25Db250cm9sVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlKClcIlxuICAgICAgPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0+XG4gICAgfVxuICAgIEBpZiAoY29sdW1uLmNvbHVtbnM/Lmxlbmd0aCA+IDAgJiYgKGdldEVkaXRhYmxlKGNvbHVtbikgfHwgIWhpZGVOb25FZGl0YWJsZSkpIHtcbiAgICAgIDx0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXBcbiAgICAgICAgW2lkXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgW2RpY3RdPVwiZGljdCgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzXCJcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0KClcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImhvcml6b250YWwoKVwiXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwib25Db250cm9sVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlKClcIlxuICAgICAgPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWdyb3VwPlxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export * from './property-grid.module';
|
|
2
1
|
export * from './property-grid/property-grid.component';
|
|
3
2
|
export * from './property-grid/property-grid-item/property-grid-item.component';
|
|
4
3
|
export * from './property-grid/property-grid-item-description.directive';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDBEQUEwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWl0ZW0vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ControlContainer,
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { ControlContainer, UntypedFormControl, UntypedFormGroup, Validators, } from '@angular/forms';
|
|
3
3
|
import { ArrayUtil } from '../common/util/array-util';
|
|
4
4
|
import { FilterType } from '../component/filter/enum/filter-type.enum';
|
|
5
5
|
export class FormsUtil {
|
|
@@ -79,14 +79,7 @@ export class FormsUtil {
|
|
|
79
79
|
}
|
|
80
80
|
static { this.formProvider = {
|
|
81
81
|
provide: ControlContainer,
|
|
82
|
-
useFactory:
|
|
83
|
-
deps: [
|
|
84
|
-
[new Optional(), NgForm],
|
|
85
|
-
[new Optional(), NgModelGroup],
|
|
86
|
-
],
|
|
82
|
+
useFactory: () => inject(ControlContainer, { skipSelf: true })
|
|
87
83
|
}; }
|
|
88
|
-
static formFactory(ngForm, ngModelGroup) {
|
|
89
|
-
return ngModelGroup || ngForm || null;
|
|
90
|
-
}
|
|
91
84
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3ZFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUEyQjtRQUN0RCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FB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LEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDakMsSUFBSSxFQUFFO1lBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQztZQUN4QixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDO1NBQy9CO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYyxFQUFFLFlBQTBCO1FBQzNELE9BQU8sWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sQ29udGFpbmVyLFxuICBOZ0Zvcm0sXG4gIE5nTW9kZWxHcm91cCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFycmF5VXRpbCB9IGZyb20gJy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudC9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1V0aWwge1xuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY29udHJvbElzSW52YWxpZChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uaW52YWxpZCAmJiBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb250cm9sRXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQoZm9ybUdyb3VwLCBjb250cm9sTmFtZSkpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5lcnJvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzdGF0aWMgbWF0Y2hWYWx1ZXNWYWxpZGF0b3IobWF0Y2hUbzogc3RyaW5nKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiYgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJiBjb250cm9sLnZhbHVlID09PSBjb250cm9sLnBhcmVudC5jb250cm9sc1ttYXRjaFRvXS52YWx1ZVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7IGlzTWF0Y2hpbmc6IGZhbHNlIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRJZih2YWx1ZTogYm9vbGVhbik6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICAhIWNvbnRyb2wucGFyZW50ICYmICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiYgY29udHJvbC52YWx1ZSAhPSBudWxsICYmIHZhbHVlID8gbnVsbCA6IHsgaXNNYXRjaGluZzogZmFsc2UgfTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Rm9ybUZyb21Db2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIGNvbnN0IGZsYXQgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycpO1xuICAgIGZsYXQuZm9yRWFjaCgoY29sdW1uOiBUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uLCBkYXRhSXRlbSk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgaW5pdENvbnRyb2xGcm9tQ29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGRhdGFJdGVtID8gZGF0YUl0ZW1bY29sdW1uLm5hbWVdIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogIWNvbHVtbi5lZGl0YWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbiksXG4gICAgICAgIHVwZGF0ZU9uOlxuICAgICAgICAgIGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLm51bWJlciB8fCBjb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5zdHJpbmcgPyAnYmx1cicgOiAnY2hhbmdlJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbGlkYXRvcnMoY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybXNVdGlsLnZhbGlkYXRvck5vdEVtcHR5KTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLnZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5jb2x1bW4udmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRvck5vdEVtcHR5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZvcm1Qcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICB1c2VGYWN0b3J5OiBGb3Jtc1V0aWwuZm9ybUZhY3RvcnksXG4gICAgZGVwczogW1xuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dLFxuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ01vZGVsR3JvdXBdLFxuICAgIF0sXG4gIH07XG5cbiAgc3RhdGljIGZvcm1GYWN0b3J5KG5nRm9ybTogTmdGb3JtLCBuZ01vZGVsR3JvdXA6IE5nTW9kZWxHcm91cCkge1xuICAgIHJldHVybiBuZ01vZGVsR3JvdXAgfHwgbmdGb3JtIHx8IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFFaEIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUd2RSxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMscUJBQXFCLENBQUMsU0FBMkI7UUFDdEQsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sWUFBWSxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDO2lCQUFNLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQTJCLEVBQUUsV0FBbUI7UUFDdEUs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LE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztLQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFycmF5VXRpbCB9IGZyb20gJy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudC9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1V0aWwge1xuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY29udHJvbElzSW52YWxpZChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uaW52YWxpZCAmJiBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb250cm9sRXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQoZm9ybUdyb3VwLCBjb250cm9sTmFtZSkpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5lcnJvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzdGF0aWMgbWF0Y2hWYWx1ZXNWYWxpZGF0b3IobWF0Y2hUbzogc3RyaW5nKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiYgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJiBjb250cm9sLnZhbHVlID09PSBjb250cm9sLnBhcmVudC5jb250cm9sc1ttYXRjaFRvXS52YWx1ZVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7IGlzTWF0Y2hpbmc6IGZhbHNlIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRJZih2YWx1ZTogYm9vbGVhbik6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICAhIWNvbnRyb2wucGFyZW50ICYmICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiYgY29udHJvbC52YWx1ZSAhPSBudWxsICYmIHZhbHVlID8gbnVsbCA6IHsgaXNNYXRjaGluZzogZmFsc2UgfTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Rm9ybUZyb21Db2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIGNvbnN0IGZsYXQgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycpO1xuICAgIGZsYXQuZm9yRWFjaCgoY29sdW1uOiBUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uLCBkYXRhSXRlbSk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgaW5pdENvbnRyb2xGcm9tQ29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGRhdGFJdGVtID8gZGF0YUl0ZW1bY29sdW1uLm5hbWVdIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogIWNvbHVtbi5lZGl0YWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbiksXG4gICAgICAgIHVwZGF0ZU9uOlxuICAgICAgICAgIGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLm51bWJlciB8fCBjb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5zdHJpbmcgPyAnYmx1cicgOiAnY2hhbmdlJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbGlkYXRvcnMoY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybXNVdGlsLnZhbGlkYXRvck5vdEVtcHR5KTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLnZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5jb2x1bW4udmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRvck5vdEVtcHR5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZvcm1Qcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBpbmplY3QoQ29udHJvbENvbnRhaW5lciwge3NraXBTZWxmOiB0cnVlfSlcbiAgfTtcbn1cbiJdfQ==
|