@indigina/kendo 1.2.67 → 1.2.68
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/dropdowns/field-dropdown/field-dropdown.component.mjs +25 -27
- package/esm2022/lib/widgets/entity-edit/dropdowns/object-dropdown/object-dropdown.component.mjs +3 -3
- package/fesm2022/indigina-kendo.mjs +26 -28
- package/fesm2022/indigina-kendo.mjs.map +1 -1
- package/lib/widgets/entity-edit/dropdowns/field-dropdown/field-dropdown.component.d.ts +3 -3
- package/package.json +1 -1
package/esm2022/lib/widgets/entity-edit/dropdowns/field-dropdown/field-dropdown.component.mjs
CHANGED
|
@@ -9,6 +9,7 @@ import * as i3 from "@progress/kendo-angular-dropdowns";
|
|
|
9
9
|
import * as i4 from "@angular/common";
|
|
10
10
|
const SelectValue = 'Select value';
|
|
11
11
|
const defaultFieldName = 'name';
|
|
12
|
+
const defaultValueField = 'id';
|
|
12
13
|
export class FieldDropdownComponent extends FieldComponent {
|
|
13
14
|
get control() {
|
|
14
15
|
return this.parent.form.get(this.fieldName);
|
|
@@ -19,6 +20,7 @@ export class FieldDropdownComponent extends FieldComponent {
|
|
|
19
20
|
this.eref = eref;
|
|
20
21
|
this.translate = translate;
|
|
21
22
|
this.textField = defaultFieldName;
|
|
23
|
+
this.valueField = defaultValueField;
|
|
22
24
|
this.selectedChange = new EventEmitter();
|
|
23
25
|
}
|
|
24
26
|
ngOnInit() {
|
|
@@ -33,7 +35,7 @@ export class FieldDropdownComponent extends FieldComponent {
|
|
|
33
35
|
onValueChange(event) {
|
|
34
36
|
let entity = undefined;
|
|
35
37
|
if (event !== null) {
|
|
36
|
-
entity = this.
|
|
38
|
+
entity = this.getEntityByValue(event);
|
|
37
39
|
}
|
|
38
40
|
this.emitSelectedEntity(entity || this.defaultItem);
|
|
39
41
|
}
|
|
@@ -46,41 +48,37 @@ export class FieldDropdownComponent extends FieldComponent {
|
|
|
46
48
|
else {
|
|
47
49
|
this.data$ = this.service
|
|
48
50
|
.getPage(this.filter ? { filter: this.filter } : {})
|
|
49
|
-
.pipe(tap((
|
|
50
|
-
this.items =
|
|
51
|
+
.pipe(tap((response) => {
|
|
52
|
+
this.items = response.data;
|
|
51
53
|
this.handleSelectedEntity();
|
|
52
|
-
}), map((
|
|
54
|
+
}), map((response) => response.data));
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
setDefaultItem() {
|
|
56
58
|
this.defaultItem = {
|
|
57
59
|
name: this.setDefaultName(),
|
|
58
60
|
id: null,
|
|
61
|
+
[this.textField]: this.setDefaultName(),
|
|
62
|
+
[this.valueField]: null,
|
|
59
63
|
};
|
|
60
|
-
if (this.textField !== defaultFieldName) {
|
|
61
|
-
this.setTextFieldForDefaultItem();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
setTextFieldForDefaultItem() {
|
|
65
|
-
this.defaultItem[this.textField] = this.setDefaultName();
|
|
66
64
|
}
|
|
67
65
|
setDefaultName() {
|
|
68
66
|
return this.translate.instant(this.defaultName || SelectValue);
|
|
69
67
|
}
|
|
70
68
|
handleSelectedEntity() {
|
|
71
69
|
if (this.selectedItem) {
|
|
72
|
-
const selectedEntity = this.updateControlValue(this.selectedItem.
|
|
73
|
-
if (selectedEntity
|
|
74
|
-
this.onValueChange(selectedEntity.
|
|
75
|
-
this.writeSelectedEntityValue(selectedEntity.
|
|
70
|
+
const selectedEntity = this.updateControlValue(this.selectedItem[this.valueField]);
|
|
71
|
+
if (selectedEntity && selectedEntity[this.valueField] !== null) {
|
|
72
|
+
this.onValueChange(selectedEntity[this.valueField]);
|
|
73
|
+
this.writeSelectedEntityValue(selectedEntity[this.valueField]);
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
else {
|
|
79
77
|
this.updateControlValue(this.control.value);
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
|
-
updateControlValue(
|
|
83
|
-
const entity = this.
|
|
80
|
+
updateControlValue(value) {
|
|
81
|
+
const entity = this.getEntityByValue(value);
|
|
84
82
|
if (entity) {
|
|
85
83
|
this.setControlValue(entity);
|
|
86
84
|
}
|
|
@@ -89,18 +87,16 @@ export class FieldDropdownComponent extends FieldComponent {
|
|
|
89
87
|
}
|
|
90
88
|
return entity;
|
|
91
89
|
}
|
|
92
|
-
|
|
93
|
-
let entity;
|
|
90
|
+
getEntityByValue(value) {
|
|
94
91
|
if (this.data) {
|
|
95
|
-
|
|
92
|
+
return this.data.find((x) => x[this.valueField] === value);
|
|
96
93
|
}
|
|
97
94
|
else {
|
|
98
|
-
|
|
95
|
+
return this.items.find((x) => x[this.valueField] === value);
|
|
99
96
|
}
|
|
100
|
-
return entity;
|
|
101
97
|
}
|
|
102
98
|
setControlValue(entity) {
|
|
103
|
-
this.control.setValue(entity.
|
|
99
|
+
this.control.setValue(entity[this.valueField]);
|
|
104
100
|
}
|
|
105
101
|
resetControlValue() {
|
|
106
102
|
this.control.reset();
|
|
@@ -108,11 +104,11 @@ export class FieldDropdownComponent extends FieldComponent {
|
|
|
108
104
|
emitSelectedEntity(entity) {
|
|
109
105
|
this.selectedChange.emit(entity);
|
|
110
106
|
}
|
|
111
|
-
writeSelectedEntityValue(
|
|
112
|
-
this.kendoDropDown?.writeValue(
|
|
107
|
+
writeSelectedEntityValue(value) {
|
|
108
|
+
this.kendoDropDown?.writeValue(value);
|
|
113
109
|
}
|
|
114
110
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FieldDropdownComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FieldDropdownComponent, selector: "field-dropdown", inputs: { service: "service", rebind: "rebind", filter: "filter", defaultName: "defaultName", selectedItem: "selectedItem", data: "data", textField: "textField" }, outputs: { selectedChange: "selectedChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label
|
|
111
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FieldDropdownComponent, selector: "field-dropdown", inputs: { service: "service", rebind: "rebind", filter: "filter", defaultName: "defaultName", selectedItem: "selectedItem", data: "data", textField: "textField", valueField: "valueField" }, outputs: { selectedChange: "selectedChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n #inputElement\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], viewProviders: [
|
|
116
112
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
117
113
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
114
|
}
|
|
@@ -120,7 +116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
120
116
|
type: Component,
|
|
121
117
|
args: [{ selector: 'field-dropdown', viewProviders: [
|
|
122
118
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
123
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label
|
|
119
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n #inputElement\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n" }]
|
|
124
120
|
}], ctorParameters: () => [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }, { type: i2.TranslateService }], propDecorators: { service: [{
|
|
125
121
|
type: Input
|
|
126
122
|
}], rebind: [{
|
|
@@ -135,10 +131,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
135
131
|
type: Input
|
|
136
132
|
}], textField: [{
|
|
137
133
|
type: Input
|
|
134
|
+
}], valueField: [{
|
|
135
|
+
type: Input
|
|
138
136
|
}], selectedChange: [{
|
|
139
137
|
type: Output
|
|
140
138
|
}], kendoDropDown: [{
|
|
141
139
|
type: ViewChild,
|
|
142
140
|
args: ['inputElement']
|
|
143
141
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2Ryb3Bkb3ducy9maWVsZC1kcm9wZG93bi9maWVsZC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZHJvcGRvd25zL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixFQUN2QixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7OztBQU16RixNQUFNLFdBQVcsR0FBVyxjQUFjLENBQUM7QUFDM0MsTUFBTSxnQkFBZ0IsR0FBVyxNQUFNLENBQUM7QUFVeEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQXNCO0lBZ0JoRSxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQ1MsTUFBMEIsRUFDMUIsSUFBZ0IsRUFDZixTQUEyQjtRQUVuQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUpuQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFoQjVCLGNBQVMsR0FBVyxnQkFBZ0IsQ0FBQztRQUNwQyxtQkFBYyxHQUN0QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBaUJyQixDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLE1BQU0sR0FBMkIsU0FBUyxDQUFDO1FBQy9DLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxXQUFXLEdBQWtDLElBQUksZUFBZSxDQUVsRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTztpQkFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNuRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDbkIsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMzQixFQUFFLEVBQUUsSUFBSTtTQUNULENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZ0JBQWdCLEVBQUU7WUFDdkMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRU8sY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxjQUFjLEdBQWUsSUFBSSxDQUFDLGtCQUFrQixDQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDckIsQ0FBQztZQUNGLElBQUksY0FBYyxFQUFFLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDbEQ7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBZ0I7UUFDekMsTUFBTSxNQUFNLEdBQWUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxRQUFnQjtRQUNwQyxJQUFJLE1BQWtCLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1NBQ25EO2FBQU07WUFDTCxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUM7U0FDcEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQWtCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQWtCO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxnQkFBd0I7UUFDdkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQXhJVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixvYUNqQ25DLGk2QkE4QkEsc3hDREZpQjtZQUNiLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtTQUMvRDs7MkZBR1Usc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLGdCQUFnQixpQkFFWDt3QkFDYixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUU7cUJBQy9ELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOytJQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFHQyxhQUFhO3NCQURwQixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIEFic3RyYWN0Q29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvciB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kYXRhLXF1ZXJ5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5ndWxhci9mb3Jtcy93aWRnZXRzL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYW1lZE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5ndWxhci9tb2RlbHMvTmFtZWRNb2RlbCc7XG5pbXBvcnQgeyBJR2V0UGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nZXQtcGFnZS5zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEcm9wRG93bkxpc3RDb21wb25lbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kcm9wZG93bnMnO1xuXG5jb25zdCBTZWxlY3RWYWx1ZTogc3RyaW5nID0gJ1NlbGVjdCB2YWx1ZSc7XG5jb25zdCBkZWZhdWx0RmllbGROYW1lOiBzdHJpbmcgPSAnbmFtZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpZWxkLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBGaWVsZENvbXBvbmVudDxzdHJpbmc+IHtcbiAgQElucHV0KCkgc2VydmljZTogSUdldFBhZ2VTZXJ2aWNlPE5hbWVkTW9kZWw+O1xuICBASW5wdXQoKSByZWJpbmQ6IHN0cmluZztcbiAgQElucHV0KCkgZmlsdGVyPzogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcjtcbiAgQElucHV0KCkgZGVmYXVsdE5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbT86IE5hbWVkTW9kZWw7XG4gIEBJbnB1dCgpIGRhdGE/OiBOYW1lZE1vZGVsW107XG4gIEBJbnB1dCgpIHRleHRGaWVsZDogc3RyaW5nID0gZGVmYXVsdEZpZWxkTmFtZTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TmFtZWRNb2RlbCB8IG51bWJlciB8IHN0cmluZz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcbiAgcHJpdmF0ZSBrZW5kb0Ryb3BEb3duOiBEcm9wRG93bkxpc3RDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBpdGVtczogTmFtZWRNb2RlbFtdO1xuICBwdWJsaWMgZGVmYXVsdEl0ZW06IE5hbWVkTW9kZWw7XG4gIHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxOYW1lZE1vZGVsW10+O1xuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5mb3JtLmdldCh0aGlzLmZpZWxkTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHVibGljIGVyZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgZXJlZiwgbnVsbCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2V0RGF0YSgpO1xuICAgIHRoaXMuc2V0RGVmYXVsdEl0ZW0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25DaGFuZ2VzKCk7XG4gICAgdGhpcy5zZXREYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGVudGl0eTogTmFtZWRNb2RlbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgIGVudGl0eSA9IHRoaXMuZ2V0RW50aXR5QnlJZChldmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0U2VsZWN0ZWRFbnRpdHkoZW50aXR5IHx8IHRoaXMuZGVmYXVsdEl0ZW0pO1xuICB9XG5cbiAgcHVibGljIHNldERhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgbGV0IGRhdGFTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8TmFtZWRNb2RlbFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgICAgIE5hbWVkTW9kZWxbXVxuICAgICAgPih0aGlzLmRhdGEpO1xuICAgICAgdGhpcy5kYXRhJCA9IGRhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgdGhpcy5oYW5kbGVTZWxlY3RlZEVudGl0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGEkID0gdGhpcy5zZXJ2aWNlXG4gICAgICAgIC5nZXRQYWdlKHRoaXMuZmlsdGVyID8geyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0gOiB7fSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0geC5kYXRhO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RlZEVudGl0eSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgoeCkgPT4geC5kYXRhKSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRJdGVtKCk6IHZvaWQge1xuICAgIHRoaXMuZGVmYXVsdEl0ZW0gPSB7XG4gICAgICBuYW1lOiB0aGlzLnNldERlZmF1bHROYW1lKCksXG4gICAgICBpZDogbnVsbCxcbiAgICB9O1xuICAgIGlmICh0aGlzLnRleHRGaWVsZCAhPT0gZGVmYXVsdEZpZWxkTmFtZSkge1xuICAgICAgdGhpcy5zZXRUZXh0RmllbGRGb3JEZWZhdWx0SXRlbSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VGV4dEZpZWxkRm9yRGVmYXVsdEl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0SXRlbVt0aGlzLnRleHRGaWVsZF0gPSB0aGlzLnNldERlZmF1bHROYW1lKCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5kZWZhdWx0TmFtZSB8fCBTZWxlY3RWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGVkRW50aXR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRFbnRpdHk6IE5hbWVkTW9kZWwgPSB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZShcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uaWQsXG4gICAgICApO1xuICAgICAgaWYgKHNlbGVjdGVkRW50aXR5Py5pZCkge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2Uoc2VsZWN0ZWRFbnRpdHkuaWQpO1xuICAgICAgICB0aGlzLndyaXRlU2VsZWN0ZWRFbnRpdHlWYWx1ZShzZWxlY3RlZEVudGl0eS5pZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQ29udHJvbFZhbHVlKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sVmFsdWUoZW50aXR5SWQ6IHN0cmluZyk6IE5hbWVkTW9kZWwge1xuICAgIGNvbnN0IGVudGl0eTogTmFtZWRNb2RlbCA9IHRoaXMuZ2V0RW50aXR5QnlJZChlbnRpdHlJZCk7XG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZW50aXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldENvbnRyb2xWYWx1ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUJ5SWQoZW50aXR5SWQ6IHN0cmluZyk6IE5hbWVkTW9kZWwge1xuICAgIGxldCBlbnRpdHk6IE5hbWVkTW9kZWw7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgZW50aXR5ID0gdGhpcy5kYXRhLmZpbmQoKHgpID0+IHguaWQgPT09IGVudGl0eUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW50aXR5ID0gdGhpcy5pdGVtcy5maW5kKCh4KSA9PiB4LmlkID09PSBlbnRpdHlJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29udHJvbFZhbHVlKGVudGl0eTogTmFtZWRNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShlbnRpdHkuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldENvbnRyb2xWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wucmVzZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFNlbGVjdGVkRW50aXR5KGVudGl0eTogTmFtZWRNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChlbnRpdHkpO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZVNlbGVjdGVkRW50aXR5VmFsdWUoc2VsZWN0ZWRFbnRpdHlJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5rZW5kb0Ryb3BEb3duPy53cml0ZVZhbHVlKHNlbGVjdGVkRW50aXR5SWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8bGFiZWxcbiAgICBmb3I9XCJ7eyAnXycgKyBmaWVsZE5hbWUgfX1cIlxuICAgIGNsYXNzPVwiY29sLW1kLTMgY29udHJvbC1sYWJlbFwiXG4gICAgdHJhbnNsYXRlPVwie3sgbGFiZWxLZXkgfX1cIlxuICA+PC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCIgKm5nSWY9XCJjb250cm9sXCI+XG4gICAgPGtlbmRvLWRyb3Bkb3dubGlzdFxuICAgICAgaWQ9XCJ7eyAnXycgKyBmaWVsZE5hbWUgfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgW2RhdGFdPVwiZGF0YSQgfCBhc3luY1wiXG4gICAgICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiXG4gICAgICB2YWx1ZUZpZWxkPVwiaWRcIlxuICAgICAgW3ZhbHVlUHJpbWl0aXZlXT1cInRydWVcIlxuICAgICAgW2RlZmF1bHRJdGVtXT1cImRlZmF1bHRJdGVtXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgI2lucHV0RWxlbWVudFxuICAgID5cbiAgICA8L2tlbmRvLWRyb3Bkb3dubGlzdD5cblxuICAgIDxkaXYgY2xhc3M9XCJiZy1kYW5nZXJcIiAqbmdJZj1cImNvbnRyb2wuaW52YWxpZCAmJiBjb250cm9sLnRvdWNoZWRcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbC5lcnJvcnNbJ3JlcXVpcmVkJ11cIj57e1xuICAgICAgICBcIlJlcXVpcmVkXCIgfCB0cmFuc2xhdGUgOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXCI+e3tcbiAgICAgICAgY29udHJvbC5lcnJvcnNbXCJzZXJ2ZXJFcnJvck1zZ1wiXVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2VuZG8vc3JjL2xpYi93aWRnZXRzL2VudGl0eS1lZGl0L2Ryb3Bkb3ducy9maWVsZC1kcm9wZG93bi9maWVsZC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZHJvcGRvd25zL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixFQUN2QixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7OztBQU16RixNQUFNLFdBQVcsR0FBVyxjQUFjLENBQUM7QUFDM0MsTUFBTSxnQkFBZ0IsR0FBVyxNQUFNLENBQUM7QUFDeEMsTUFBTSxpQkFBaUIsR0FBVyxJQUFJLENBQUM7QUFVdkMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQXNCO0lBaUJoRSxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQ1MsTUFBMEIsRUFDMUIsSUFBZ0IsRUFDZixTQUEyQjtRQUVuQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJ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LENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxLQUFhO1FBQzVDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBaklVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhiQ2xDbkMsNjVCQTRCQSwrb0NEQ2lCO1lBQ2IsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFO1NBQy9EOzsyRkFHVSxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUVYO3dCQUNiLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtxQkFDL0QsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07K0lBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0MsYUFBYTtzQkFEcEIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBBYnN0cmFjdENvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2FuZ3VsYXIvZm9ybXMvd2lkZ2V0cy9maWVsZC9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmFtZWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2FuZ3VsYXIvbW9kZWxzL05hbWVkTW9kZWwnO1xuaW1wb3J0IHsgSUdldFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZ2V0LXBhZ2Uuc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRHJvcERvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZHJvcGRvd25zJztcblxuY29uc3QgU2VsZWN0VmFsdWU6IHN0cmluZyA9ICdTZWxlY3QgdmFsdWUnO1xuY29uc3QgZGVmYXVsdEZpZWxkTmFtZTogc3RyaW5nID0gJ25hbWUnO1xuY29uc3QgZGVmYXVsdFZhbHVlRmllbGQ6IHN0cmluZyA9ICdpZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpZWxkLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBGaWVsZENvbXBvbmVudDxzdHJpbmc+IHtcbiAgQElucHV0KCkgc2VydmljZTogSUdldFBhZ2VTZXJ2aWNlPE5hbWVkTW9kZWw+O1xuICBASW5wdXQoKSByZWJpbmQ6IHN0cmluZztcbiAgQElucHV0KCkgZmlsdGVyPzogQ29tcG9zaXRlRmlsdGVyRGVzY3JpcHRvcjtcbiAgQElucHV0KCkgZGVmYXVsdE5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbT86IE5hbWVkTW9kZWw7XG4gIEBJbnB1dCgpIGRhdGE/OiBOYW1lZE1vZGVsW107XG4gIEBJbnB1dCgpIHRleHRGaWVsZDogc3RyaW5nID0gZGVmYXVsdEZpZWxkTmFtZTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nID0gZGVmYXVsdFZhbHVlRmllbGQ7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPE5hbWVkTW9kZWwgfCBudW1iZXIgfCBzdHJpbmc+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXG4gIHByaXZhdGUga2VuZG9Ecm9wRG93bjogRHJvcERvd25MaXN0Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgaXRlbXM6IE5hbWVkTW9kZWxbXTtcbiAgcHVibGljIGRlZmF1bHRJdGVtOiBOYW1lZE1vZGVsO1xuICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8TmFtZWRNb2RlbFtdPjtcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZm9ybS5nZXQodGhpcy5maWVsZE5hbWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIHB1YmxpYyBlcmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihwYXJlbnQsIGVyZWYsIG51bGwpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnNldERhdGEoKTtcbiAgICB0aGlzLnNldERlZmF1bHRJdGVtKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcygpO1xuICAgIHRoaXMuc2V0RGF0YSgpO1xuICB9XG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBlbnRpdHk6IE5hbWVkTW9kZWwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGV2ZW50ICE9PSBudWxsKSB7XG4gICAgICBlbnRpdHkgPSB0aGlzLmdldEVudGl0eUJ5VmFsdWUoZXZlbnQpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFNlbGVjdGVkRW50aXR5KGVudGl0eSB8fCB0aGlzLmRlZmF1bHRJdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIGxldCBkYXRhU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PE5hbWVkTW9kZWxbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgICAgICBOYW1lZE1vZGVsW11cbiAgICAgID4odGhpcy5kYXRhKTtcbiAgICAgIHRoaXMuZGF0YSQgPSBkYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgIHRoaXMuaGFuZGxlU2VsZWN0ZWRFbnRpdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuc2VydmljZVxuICAgICAgICAuZ2V0UGFnZSh0aGlzLmZpbHRlciA/IHsgZmlsdGVyOiB0aGlzLmZpbHRlciB9IDoge30pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RlZEVudGl0eSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlLmRhdGEpLFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0SXRlbSA9IHtcbiAgICAgIG5hbWU6IHRoaXMuc2V0RGVmYXVsdE5hbWUoKSxcbiAgICAgIGlkOiBudWxsLFxuICAgICAgW3RoaXMudGV4dEZpZWxkXTogdGhpcy5zZXREZWZhdWx0TmFtZSgpLFxuICAgICAgW3RoaXMudmFsdWVGaWVsZF06IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmRlZmF1bHROYW1lIHx8IFNlbGVjdFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0ZWRFbnRpdHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEVudGl0eTogTmFtZWRNb2RlbCA9IHRoaXMudXBkYXRlQ29udHJvbFZhbHVlKFxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgKTtcbiAgICAgIGlmIChzZWxlY3RlZEVudGl0eSAmJiBzZWxlY3RlZEVudGl0eVt0aGlzLnZhbHVlRmllbGRdICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZShzZWxlY3RlZEVudGl0eVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgICAgdGhpcy53cml0ZVNlbGVjdGVkRW50aXR5VmFsdWUoc2VsZWN0ZWRFbnRpdHlbdGhpcy52YWx1ZUZpZWxkXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQ29udHJvbFZhbHVlKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sVmFsdWUodmFsdWU6IHN0cmluZyk6IE5hbWVkTW9kZWwge1xuICAgIGNvbnN0IGVudGl0eTogTmFtZWRNb2RlbCA9IHRoaXMuZ2V0RW50aXR5QnlWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZW50aXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldENvbnRyb2xWYWx1ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUJ5VmFsdWUodmFsdWU6IHN0cmluZyk6IE5hbWVkTW9kZWwge1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmluZCgoeCkgPT4geFt0aGlzLnZhbHVlRmllbGRdID09PSB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKHgpID0+IHhbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29udHJvbFZhbHVlKGVudGl0eTogTmFtZWRNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShlbnRpdHlbdGhpcy52YWx1ZUZpZWxkXSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0ZWRFbnRpdHkoZW50aXR5OiBOYW1lZE1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KGVudGl0eSk7XG4gIH1cblxuICBwcml2YXRlIHdyaXRlU2VsZWN0ZWRFbnRpdHlWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5rZW5kb0Ryb3BEb3duPy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsIGZvcj1cInt7ICdfJyArIGZpZWxkTmFtZSB9fVwiIGNsYXNzPVwiY29sLW1kLTMgY29udHJvbC1sYWJlbFwiPnt7XG4gICAgbGFiZWxLZXkgfCB0cmFuc2xhdGVcbiAgfX08L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIiAqbmdJZj1cImNvbnRyb2xcIj5cbiAgICA8a2VuZG8tZHJvcGRvd25saXN0XG4gICAgICBpZD1cInt7ICdfJyArIGZpZWxkTmFtZSB9fVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbZGF0YV09XCJkYXRhJCB8IGFzeW5jXCJcbiAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICAgICAgW3ZhbHVlUHJpbWl0aXZlXT1cInRydWVcIlxuICAgICAgW2RlZmF1bHRJdGVtXT1cImRlZmF1bHRJdGVtXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgI2lucHV0RWxlbWVudFxuICAgID5cbiAgICA8L2tlbmRvLWRyb3Bkb3dubGlzdD5cblxuICAgIDxkaXYgY2xhc3M9XCJiZy1kYW5nZXJcIiAqbmdJZj1cImNvbnRyb2wuaW52YWxpZCAmJiBjb250cm9sLnRvdWNoZWRcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbC5lcnJvcnNbJ3JlcXVpcmVkJ11cIj57e1xuICAgICAgICBcIlJlcXVpcmVkXCIgfCB0cmFuc2xhdGUgOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXCI+e3tcbiAgICAgICAgY29udHJvbC5lcnJvcnNbXCJzZXJ2ZXJFcnJvck1zZ1wiXVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/widgets/entity-edit/dropdowns/object-dropdown/object-dropdown.component.mjs
CHANGED
|
@@ -64,7 +64,7 @@ export class ObjectDropdownComponent extends FieldComponent {
|
|
|
64
64
|
this.control.setValue(value);
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ObjectDropdownComponent, deps: [{ token: i1.FormGroupDirective }, { token: i0.ElementRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ObjectDropdownComponent, selector: "object-dropdown", inputs: { fieldName: "fieldName", labelKey: "labelKey", data: "data", selectedItem: "selectedItem", defaultName: "defaultName", rebind: "rebind" }, outputs: { selectedChange: "selectedChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ObjectDropdownComponent, selector: "object-dropdown", inputs: { fieldName: "fieldName", labelKey: "labelKey", data: "data", selectedItem: "selectedItem", defaultName: "defaultName", rebind: "rebind" }, outputs: { selectedChange: "selectedChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"'description'\"\n [valueField]=\"'value'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], viewProviders: [
|
|
68
68
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
69
69
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
70
|
}
|
|
@@ -72,7 +72,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
72
72
|
type: Component,
|
|
73
73
|
args: [{ selector: 'object-dropdown', viewProviders: [
|
|
74
74
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
75
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label
|
|
75
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"'description'\"\n [valueField]=\"'value'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n" }]
|
|
76
76
|
}], ctorParameters: () => [{ type: i1.FormGroupDirective }, { type: i0.ElementRef }, { type: i2.TranslateService }], propDecorators: { fieldName: [{
|
|
77
77
|
type: Input
|
|
78
78
|
}], labelKey: [{
|
|
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
88
88
|
}], selectedChange: [{
|
|
89
89
|
type: Output
|
|
90
90
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlbmRvL3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktZWRpdC9kcm9wZG93bnMvb2JqZWN0LWRyb3Bkb3duL29iamVjdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZW5kby9zcmMvbGliL3dpZGdldHMvZW50aXR5LWVkaXQvZHJvcGRvd25zL29iamVjdC1kcm9wZG93bi9vYmplY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBRW5ELE1BQU0sV0FBVyxHQUFXLGNBQWMsQ0FBQztBQVUzQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBMEI7SUFrQnJFLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsWUFDUyxNQUEwQixFQUMxQixJQUFnQixFQUNmLFNBQTJCO1FBRW5DLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBSm5CLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVozQixtQkFBYyxHQUN0QixJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQWNuQyxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQztTQUNyRSxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxXQUFXLEdBQW9DLElBQUksZUFBZSxDQUVwRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBaUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFvQjtRQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8seUJBQXlCLENBQUMsWUFBd0I7UUFDeEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWlCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBbEZVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHNTQzVCcEMseTRCQTJCQSwrb0NESmlCO1lBQ2IsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFO1NBQy9EOzsyRkFHVSx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUVaO3dCQUNiLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtxQkFDL0QsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07K0lBSS9DLFNBQVM7c0JBRFIsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9hbmd1bGFyL2Zvcm1zL3dpZGdldHMvZmllbGQvZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTaW1wbGVPYmplY3QsIHZhbHVlVHlwZXMgfSBmcm9tICcuLi9zaW1wbGUtb2JqZWN0Lm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBTZWxlY3RWYWx1ZTogc3RyaW5nID0gJ1NlbGVjdCB2YWx1ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29iamVjdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3REcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEZpZWxkQ29tcG9uZW50PHZhbHVlVHlwZXM+IHtcbiAgQElucHV0KClcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGxhYmVsS2V5OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGRhdGE6IFNpbXBsZU9iamVjdFtdO1xuICBASW5wdXQoKVxuICBzZWxlY3RlZEl0ZW0/OiB2YWx1ZVR5cGVzO1xuICBASW5wdXQoKVxuICBkZWZhdWx0TmFtZT86IHN0cmluZztcbiAgQElucHV0KClcbiAgcmViaW5kOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPFNpbXBsZU9iamVjdD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8U2ltcGxlT2JqZWN0PigpO1xuXG4gIHB1YmxpYyBkZWZhdWx0SXRlbTogU2ltcGxlT2JqZWN0O1xuICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8U2ltcGxlT2JqZWN0W10+O1xuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5mb3JtLmdldCh0aGlzLmZpZWxkTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGFyZW50OiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHVibGljIGVyZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgZXJlZiwgbnVsbCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2V0SW5wdXREYXRhKCk7XG4gICAgdGhpcy53cml0ZVNlbGVjdGVkSXRlbUlmRXhpc3RzKHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICB0aGlzLnNldERlZmF1bHRJdGVtKCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRJdGVtKCk6IHZvaWQge1xuICAgIHRoaXMuZGVmYXVsdEl0ZW0gPSB7XG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuZGVmYXVsdE5hbWUgfHwgU2VsZWN0VmFsdWUpLFxuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcygpO1xuICAgIHRoaXMuc2V0SW5wdXREYXRhKCk7XG4gICAgdGhpcy53cml0ZVNlbGVjdGVkSXRlbUlmRXhpc3RzKHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXREYXRhKCk6IHZvaWQge1xuICAgIGxldCBkYXRhU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFNpbXBsZU9iamVjdFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgICBTaW1wbGVPYmplY3RbXVxuICAgID4odGhpcy5kYXRhKTtcbiAgICB0aGlzLmRhdGEkID0gZGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZShldmVudDogdmFsdWVUeXBlcyk6IHZvaWQge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZW50aXR5OiBTaW1wbGVPYmplY3QgPSB0aGlzLmdldEVudGl0eUJ5VmFsdWUoZXZlbnQpO1xuICAgICAgdGhpcy5lbWl0U2VsZWN0ZWRFbnRpdHkoZW50aXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U2VsZWN0ZWRFbnRpdHkodGhpcy5kZWZhdWx0SXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnRpdHlCeVZhbHVlKGV2ZW50OiB2YWx1ZVR5cGVzKTogU2ltcGxlT2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U2VsZWN0ZWRFbnRpdHkoZW50aXR5OiBTaW1wbGVPYmplY3QpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoZW50aXR5KTtcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVTZWxlY3RlZEl0ZW1JZkV4aXN0cyhzZWxlY3RlZEl0ZW06IHZhbHVlVHlwZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250cm9sVmFsdWUodmFsdWU6IHZhbHVlVHlwZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8bGFiZWwgZm9yPVwie3sgJ18nICsgZmllbGROYW1lIH19XCIgY2xhc3M9XCJjb2wtbWQtMyBjb250cm9sLWxhYmVsXCI+e3tcbiAgICBsYWJlbEtleSB8IHRyYW5zbGF0ZVxuICB9fTwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiICpuZ0lmPVwiY29udHJvbFwiPlxuICAgIDxrZW5kby1kcm9wZG93bmxpc3RcbiAgICAgIGlkPVwie3sgJ18nICsgZmllbGROYW1lIH19XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFtkYXRhXT1cImRhdGEkIHwgYXN5bmNcIlxuICAgICAgW3RleHRGaWVsZF09XCInZGVzY3JpcHRpb24nXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cIid2YWx1ZSdcIlxuICAgICAgW3ZhbHVlUHJpbWl0aXZlXT1cInRydWVcIlxuICAgICAgW2RlZmF1bHRJdGVtXT1cImRlZmF1bHRJdGVtXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICA8L2tlbmRvLWRyb3Bkb3dubGlzdD5cblxuICAgIDxkaXYgY2xhc3M9XCJiZy1kYW5nZXJcIiAqbmdJZj1cImNvbnRyb2wuaW52YWxpZCAmJiBjb250cm9sLnRvdWNoZWRcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbC5lcnJvcnNbJ3JlcXVpcmVkJ11cIj57e1xuICAgICAgICBcIlJlcXVpcmVkXCIgfCB0cmFuc2xhdGUgOiB7IHBhcmFtMDogbGFiZWxLZXkgfCB0cmFuc2xhdGUgfVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuZXJyb3JzWydzZXJ2ZXJFcnJvck1zZyddXCI+e3tcbiAgICAgICAgY29udHJvbC5lcnJvcnNbXCJzZXJ2ZXJFcnJvck1zZ1wiXVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -2944,6 +2944,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
2944
2944
|
|
|
2945
2945
|
const SelectValue$1 = 'Select value';
|
|
2946
2946
|
const defaultFieldName = 'name';
|
|
2947
|
+
const defaultValueField$1 = 'id';
|
|
2947
2948
|
class FieldDropdownComponent extends FieldComponent {
|
|
2948
2949
|
get control() {
|
|
2949
2950
|
return this.parent.form.get(this.fieldName);
|
|
@@ -2954,6 +2955,7 @@ class FieldDropdownComponent extends FieldComponent {
|
|
|
2954
2955
|
this.eref = eref;
|
|
2955
2956
|
this.translate = translate;
|
|
2956
2957
|
this.textField = defaultFieldName;
|
|
2958
|
+
this.valueField = defaultValueField$1;
|
|
2957
2959
|
this.selectedChange = new EventEmitter();
|
|
2958
2960
|
}
|
|
2959
2961
|
ngOnInit() {
|
|
@@ -2968,7 +2970,7 @@ class FieldDropdownComponent extends FieldComponent {
|
|
|
2968
2970
|
onValueChange(event) {
|
|
2969
2971
|
let entity = undefined;
|
|
2970
2972
|
if (event !== null) {
|
|
2971
|
-
entity = this.
|
|
2973
|
+
entity = this.getEntityByValue(event);
|
|
2972
2974
|
}
|
|
2973
2975
|
this.emitSelectedEntity(entity || this.defaultItem);
|
|
2974
2976
|
}
|
|
@@ -2981,41 +2983,37 @@ class FieldDropdownComponent extends FieldComponent {
|
|
|
2981
2983
|
else {
|
|
2982
2984
|
this.data$ = this.service
|
|
2983
2985
|
.getPage(this.filter ? { filter: this.filter } : {})
|
|
2984
|
-
.pipe(tap$1((
|
|
2985
|
-
this.items =
|
|
2986
|
+
.pipe(tap$1((response) => {
|
|
2987
|
+
this.items = response.data;
|
|
2986
2988
|
this.handleSelectedEntity();
|
|
2987
|
-
}), map$1((
|
|
2989
|
+
}), map$1((response) => response.data));
|
|
2988
2990
|
}
|
|
2989
2991
|
}
|
|
2990
2992
|
setDefaultItem() {
|
|
2991
2993
|
this.defaultItem = {
|
|
2992
2994
|
name: this.setDefaultName(),
|
|
2993
2995
|
id: null,
|
|
2996
|
+
[this.textField]: this.setDefaultName(),
|
|
2997
|
+
[this.valueField]: null,
|
|
2994
2998
|
};
|
|
2995
|
-
if (this.textField !== defaultFieldName) {
|
|
2996
|
-
this.setTextFieldForDefaultItem();
|
|
2997
|
-
}
|
|
2998
|
-
}
|
|
2999
|
-
setTextFieldForDefaultItem() {
|
|
3000
|
-
this.defaultItem[this.textField] = this.setDefaultName();
|
|
3001
2999
|
}
|
|
3002
3000
|
setDefaultName() {
|
|
3003
3001
|
return this.translate.instant(this.defaultName || SelectValue$1);
|
|
3004
3002
|
}
|
|
3005
3003
|
handleSelectedEntity() {
|
|
3006
3004
|
if (this.selectedItem) {
|
|
3007
|
-
const selectedEntity = this.updateControlValue(this.selectedItem.
|
|
3008
|
-
if (selectedEntity
|
|
3009
|
-
this.onValueChange(selectedEntity.
|
|
3010
|
-
this.writeSelectedEntityValue(selectedEntity.
|
|
3005
|
+
const selectedEntity = this.updateControlValue(this.selectedItem[this.valueField]);
|
|
3006
|
+
if (selectedEntity && selectedEntity[this.valueField] !== null) {
|
|
3007
|
+
this.onValueChange(selectedEntity[this.valueField]);
|
|
3008
|
+
this.writeSelectedEntityValue(selectedEntity[this.valueField]);
|
|
3011
3009
|
}
|
|
3012
3010
|
}
|
|
3013
3011
|
else {
|
|
3014
3012
|
this.updateControlValue(this.control.value);
|
|
3015
3013
|
}
|
|
3016
3014
|
}
|
|
3017
|
-
updateControlValue(
|
|
3018
|
-
const entity = this.
|
|
3015
|
+
updateControlValue(value) {
|
|
3016
|
+
const entity = this.getEntityByValue(value);
|
|
3019
3017
|
if (entity) {
|
|
3020
3018
|
this.setControlValue(entity);
|
|
3021
3019
|
}
|
|
@@ -3024,18 +3022,16 @@ class FieldDropdownComponent extends FieldComponent {
|
|
|
3024
3022
|
}
|
|
3025
3023
|
return entity;
|
|
3026
3024
|
}
|
|
3027
|
-
|
|
3028
|
-
let entity;
|
|
3025
|
+
getEntityByValue(value) {
|
|
3029
3026
|
if (this.data) {
|
|
3030
|
-
|
|
3027
|
+
return this.data.find((x) => x[this.valueField] === value);
|
|
3031
3028
|
}
|
|
3032
3029
|
else {
|
|
3033
|
-
|
|
3030
|
+
return this.items.find((x) => x[this.valueField] === value);
|
|
3034
3031
|
}
|
|
3035
|
-
return entity;
|
|
3036
3032
|
}
|
|
3037
3033
|
setControlValue(entity) {
|
|
3038
|
-
this.control.setValue(entity.
|
|
3034
|
+
this.control.setValue(entity[this.valueField]);
|
|
3039
3035
|
}
|
|
3040
3036
|
resetControlValue() {
|
|
3041
3037
|
this.control.reset();
|
|
@@ -3043,11 +3039,11 @@ class FieldDropdownComponent extends FieldComponent {
|
|
|
3043
3039
|
emitSelectedEntity(entity) {
|
|
3044
3040
|
this.selectedChange.emit(entity);
|
|
3045
3041
|
}
|
|
3046
|
-
writeSelectedEntityValue(
|
|
3047
|
-
this.kendoDropDown?.writeValue(
|
|
3042
|
+
writeSelectedEntityValue(value) {
|
|
3043
|
+
this.kendoDropDown?.writeValue(value);
|
|
3048
3044
|
}
|
|
3049
3045
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FieldDropdownComponent, deps: [{ token: i1$3.FormGroupDirective }, { token: i0.ElementRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3050
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FieldDropdownComponent, selector: "field-dropdown", inputs: { service: "service", rebind: "rebind", filter: "filter", defaultName: "defaultName", selectedItem: "selectedItem", data: "data", textField: "textField" }, outputs: { selectedChange: "selectedChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label
|
|
3046
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FieldDropdownComponent, selector: "field-dropdown", inputs: { service: "service", rebind: "rebind", filter: "filter", defaultName: "defaultName", selectedItem: "selectedItem", data: "data", textField: "textField", valueField: "valueField" }, outputs: { selectedChange: "selectedChange" }, viewQueries: [{ propertyName: "kendoDropDown", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n #inputElement\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i5.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: [
|
|
3051
3047
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
3052
3048
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3053
3049
|
}
|
|
@@ -3055,7 +3051,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
3055
3051
|
type: Component,
|
|
3056
3052
|
args: [{ selector: 'field-dropdown', viewProviders: [
|
|
3057
3053
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
3058
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label
|
|
3054
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n #inputElement\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n" }]
|
|
3059
3055
|
}], ctorParameters: () => [{ type: i1$3.FormGroupDirective }, { type: i0.ElementRef }, { type: i2.TranslateService }], propDecorators: { service: [{
|
|
3060
3056
|
type: Input
|
|
3061
3057
|
}], rebind: [{
|
|
@@ -3070,6 +3066,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
3070
3066
|
type: Input
|
|
3071
3067
|
}], textField: [{
|
|
3072
3068
|
type: Input
|
|
3069
|
+
}], valueField: [{
|
|
3070
|
+
type: Input
|
|
3073
3071
|
}], selectedChange: [{
|
|
3074
3072
|
type: Output
|
|
3075
3073
|
}], kendoDropDown: [{
|
|
@@ -4247,7 +4245,7 @@ class ObjectDropdownComponent extends FieldComponent {
|
|
|
4247
4245
|
this.control.setValue(value);
|
|
4248
4246
|
}
|
|
4249
4247
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ObjectDropdownComponent, deps: [{ token: i1$3.FormGroupDirective }, { token: i0.ElementRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4250
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ObjectDropdownComponent, selector: "object-dropdown", inputs: { fieldName: "fieldName", labelKey: "labelKey", data: "data", selectedItem: "selectedItem", defaultName: "defaultName", rebind: "rebind" }, outputs: { selectedChange: "selectedChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label
|
|
4248
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ObjectDropdownComponent, selector: "object-dropdown", inputs: { fieldName: "fieldName", labelKey: "labelKey", data: "data", selectedItem: "selectedItem", defaultName: "defaultName", rebind: "rebind" }, outputs: { selectedChange: "selectedChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"'description'\"\n [valueField]=\"'value'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], viewProviders: [
|
|
4251
4249
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
4252
4250
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4253
4251
|
}
|
|
@@ -4255,7 +4253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
4255
4253
|
type: Component,
|
|
4256
4254
|
args: [{ selector: 'object-dropdown', viewProviders: [
|
|
4257
4255
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
4258
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label
|
|
4256
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label for=\"{{ '_' + fieldName }}\" class=\"col-md-3 control-label\">{{\n labelKey | translate\n }}</label>\n <div class=\"col-md-9\" *ngIf=\"control\">\n <kendo-dropdownlist\n id=\"{{ '_' + fieldName }}\"\n [formControl]=\"control\"\n [data]=\"data$ | async\"\n [textField]=\"'description'\"\n [valueField]=\"'value'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"defaultItem\"\n (valueChange)=\"onValueChange($event)\"\n >\n </kendo-dropdownlist>\n\n <div class=\"bg-danger\" *ngIf=\"control.invalid && control.touched\">\n <span *ngIf=\"control.errors['required']\">{{\n \"Required\" | translate : { param0: labelKey | translate }\n }}</span>\n <span *ngIf=\"control.errors['serverErrorMsg']\">{{\n control.errors[\"serverErrorMsg\"]\n }}</span>\n </div>\n </div>\n</div>\n" }]
|
|
4259
4257
|
}], ctorParameters: () => [{ type: i1$3.FormGroupDirective }, { type: i0.ElementRef }, { type: i2.TranslateService }], propDecorators: { fieldName: [{
|
|
4260
4258
|
type: Input
|
|
4261
4259
|
}], labelKey: [{
|