imm-element-ui 2.6.3 → 2.6.4
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/grid/cell-edit/cell-edit-async-selectField.component.mjs +377 -0
- package/esm2022/lib/grid/cell-edit/index.mjs +3 -2
- package/esm2022/lib/grid/cell-render/async-select-label-renderer.mjs +100 -0
- package/esm2022/lib/grid/cell-utils/async-select-options.mjs +81 -0
- package/esm2022/lib/grid/mock-data.mjs +6 -3
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/imm-element-ui.mjs +550 -2
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/grid/cell-edit/cell-edit-async-selectField.component.d.ts +21 -0
- package/lib/grid/cell-edit/index.d.ts +2 -1
- package/lib/grid/cell-render/async-select-label-renderer.d.ts +18 -0
- package/lib/grid/cell-utils/async-select-options.d.ts +10 -0
- package/lib/grid/grid/grid.component.d.ts +2 -0
- package/lib/grid/mock-data.d.ts +4 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import { Component, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { SelectModule } from 'primeng/select';
|
|
4
|
+
import { MultiSelect } from 'primeng/multiselect';
|
|
5
|
+
import { resolveAsyncSelectOptions } from '../cell-utils/async-select-options';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "primeng/select";
|
|
9
|
+
export class CellEditAsyncSelectFieldComponent {
|
|
10
|
+
async agInit(params) {
|
|
11
|
+
this.params = params;
|
|
12
|
+
this.params.optionLabel = this.params.optionLabel || 'label';
|
|
13
|
+
this.params.optionValue = this.params.optionValue || 'value';
|
|
14
|
+
const rowValue = this.params.data?.[this.params.colDef.field];
|
|
15
|
+
this.value = this.params.multiple ? this.toValueArray(params.value ?? rowValue) : (params.value ?? rowValue);
|
|
16
|
+
this.setEditorSize(params);
|
|
17
|
+
await this.loadOptions();
|
|
18
|
+
}
|
|
19
|
+
getValue() {
|
|
20
|
+
if (this.params.multiple) {
|
|
21
|
+
return this.toValueString(this.value);
|
|
22
|
+
}
|
|
23
|
+
const value = this.value;
|
|
24
|
+
return value === '' || value == null ? null : value;
|
|
25
|
+
}
|
|
26
|
+
onChange(event) {
|
|
27
|
+
const nameFields = this.params.nameFields || [];
|
|
28
|
+
nameFields.forEach((nameField) => {
|
|
29
|
+
this.updateNameField(nameField, event);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async loadOptions() {
|
|
33
|
+
const context = this.createContext();
|
|
34
|
+
try {
|
|
35
|
+
this.params.loading = true;
|
|
36
|
+
this.params.options = await resolveAsyncSelectOptions(this.params, context);
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
this.params.loading = false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
createContext() {
|
|
43
|
+
return {
|
|
44
|
+
data: this.params.data,
|
|
45
|
+
value: this.params.multiple ? this.toValueString(this.value) : this.value,
|
|
46
|
+
params: this.params,
|
|
47
|
+
field: this.params.colDef.field,
|
|
48
|
+
colDef: this.params.colDef,
|
|
49
|
+
rowIndex: this.params.node?.rowIndex,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
setEditorSize(params) {
|
|
53
|
+
const cellWidth = params.column.getActualWidth();
|
|
54
|
+
this.params.style = {
|
|
55
|
+
border: 'none',
|
|
56
|
+
boxShadow: 'none',
|
|
57
|
+
width: `${cellWidth}px`,
|
|
58
|
+
background: 'var(--ag-background-color)',
|
|
59
|
+
height: '40px',
|
|
60
|
+
alignItems: 'center',
|
|
61
|
+
...(this.params.style || {}),
|
|
62
|
+
};
|
|
63
|
+
this.params.panelStyle = {
|
|
64
|
+
width: `${cellWidth}px`,
|
|
65
|
+
...(this.params.panelStyle || {}),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
updateNameField(nameField, event) {
|
|
69
|
+
const oldValue = this.params.data[nameField.field];
|
|
70
|
+
const newValue = this.resolveNameFieldValue(nameField, event.value);
|
|
71
|
+
const grid = this.params.grid();
|
|
72
|
+
const e = {
|
|
73
|
+
colDef: nameField,
|
|
74
|
+
oldValue,
|
|
75
|
+
newValue,
|
|
76
|
+
rowIndex: this.params.node.rowIndex,
|
|
77
|
+
data: { id: this.params.data.id },
|
|
78
|
+
};
|
|
79
|
+
grid.cellValueChanged(e);
|
|
80
|
+
this.params.data[nameField.field] = newValue;
|
|
81
|
+
}
|
|
82
|
+
resolveNameFieldValue(nameField, value) {
|
|
83
|
+
const valueField = this.params.optionValue || 'value';
|
|
84
|
+
if (this.params.multiple) {
|
|
85
|
+
const values = this.toValueArray(value);
|
|
86
|
+
return (this.params.options || [])
|
|
87
|
+
.filter((op) => values.some((selectedValue) => selectedValue == op?.[valueField]))
|
|
88
|
+
.map((op) => op?.[nameField.key])
|
|
89
|
+
.filter((item) => item !== undefined && item !== null && item !== '')
|
|
90
|
+
.join(',');
|
|
91
|
+
}
|
|
92
|
+
const item = (this.params.options || []).find((op) => op?.[valueField] === value);
|
|
93
|
+
return item ? item[nameField.key] : null;
|
|
94
|
+
}
|
|
95
|
+
toValueArray(value) {
|
|
96
|
+
if (Array.isArray(value)) {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
if (value === '' || value == null) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return String(value).split(',').filter((item) => item !== '');
|
|
103
|
+
}
|
|
104
|
+
toValueString(value) {
|
|
105
|
+
if (Array.isArray(value)) {
|
|
106
|
+
return value.filter((item) => item !== '' && item != null).join(',');
|
|
107
|
+
}
|
|
108
|
+
if (value === '' || value == null) {
|
|
109
|
+
return '';
|
|
110
|
+
}
|
|
111
|
+
return String(value);
|
|
112
|
+
}
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditAsyncSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CellEditAsyncSelectFieldComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
|
|
115
|
+
@if (params.multiple) {
|
|
116
|
+
<p-multiselect
|
|
117
|
+
[(ngModel)]="value"
|
|
118
|
+
[scrollHeight]="params.scrollHeight || '200px'"
|
|
119
|
+
[filter]="params.filter"
|
|
120
|
+
[name]="params.name"
|
|
121
|
+
[options]="params.options"
|
|
122
|
+
[placeholder]="params.placeholder"
|
|
123
|
+
[class]="params.class"
|
|
124
|
+
[style]="params.style"
|
|
125
|
+
[panelStyle]="params.panelStyle"
|
|
126
|
+
[panelStyleClass]="params.panelStyleClass"
|
|
127
|
+
[readonly]="params.readonly"
|
|
128
|
+
[appendTo]="params.appendTo || 'body'"
|
|
129
|
+
[tabindex]="params.tabindex"
|
|
130
|
+
[loadingIcon]="params.loadingIcon"
|
|
131
|
+
[filterPlaceHolder]="params.filterPlaceHolder || params.filterPlaceholder"
|
|
132
|
+
[filterLocale]="params.filterLocale"
|
|
133
|
+
[variant]="params.variant"
|
|
134
|
+
[inputId]="params.inputId"
|
|
135
|
+
[dataKey]="params.dataKey"
|
|
136
|
+
[filterBy]="params.filterBy"
|
|
137
|
+
[filterFields]="params.filterFields"
|
|
138
|
+
[autofocus]="params.autofocus ?? true"
|
|
139
|
+
[resetFilterOnHide]="params.resetFilterOnHide"
|
|
140
|
+
[dropdownIcon]="params.dropdownIcon"
|
|
141
|
+
[loading]="params.loading"
|
|
142
|
+
[optionLabel]="params.optionLabel"
|
|
143
|
+
[optionValue]="params.optionValue"
|
|
144
|
+
[optionDisabled]="params.optionDisabled"
|
|
145
|
+
[optionGroupLabel]="params.optionGroupLabel"
|
|
146
|
+
[optionGroupChildren]="params.optionGroupChildren || 'items'"
|
|
147
|
+
[group]="params.group"
|
|
148
|
+
[showClear]="params.showClear"
|
|
149
|
+
[emptyFilterMessage]="params.emptyFilterMessage"
|
|
150
|
+
[emptyMessage]="params.emptyMessage"
|
|
151
|
+
[lazy]="params.lazy"
|
|
152
|
+
[virtualScroll]="params.virtualScroll"
|
|
153
|
+
[virtualScrollItemSize]="params.virtualScrollItemSize"
|
|
154
|
+
[virtualScrollOptions]="params.virtualScrollOptions"
|
|
155
|
+
[overlayOptions]="params.overlayOptions"
|
|
156
|
+
[size]="params.size"
|
|
157
|
+
[ariaFilterLabel]="params.ariaFilterLabel"
|
|
158
|
+
[ariaLabel]="params.ariaLabel"
|
|
159
|
+
[ariaLabelledBy]="params.ariaLabelledBy"
|
|
160
|
+
[filterMatchMode]="params.filterMatchMode"
|
|
161
|
+
[maxlength]="params.maxlength"
|
|
162
|
+
[tooltip]="params.tooltip"
|
|
163
|
+
[tooltipPosition]="params.tooltipPosition || 'right'"
|
|
164
|
+
[tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
|
|
165
|
+
[tooltipStyleClass]="params.tooltipStyleClass"
|
|
166
|
+
[focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
|
|
167
|
+
[fluid]="params.fluid == undefined ? true : params.fluid"
|
|
168
|
+
[filterValue]="params.filterValue"
|
|
169
|
+
[display]="params.display ?? 'comma'"
|
|
170
|
+
[displaySelectedLabel]="params.displaySelectedLabel ?? true"
|
|
171
|
+
[maxSelectedLabels]="params.maxSelectedLabels"
|
|
172
|
+
[selectionLimit]="params.selectionLimit"
|
|
173
|
+
[selectedItemsLabel]="params.selectedItemsLabel"
|
|
174
|
+
[showToggleAll]="params.showToggleAll ?? true"
|
|
175
|
+
[showHeader]="params.showHeader ?? true"
|
|
176
|
+
[autofocusFilter]="params.autofocusFilter"
|
|
177
|
+
[selectAll]="params.selectAll ?? null"
|
|
178
|
+
[selectOnFocus]="params.selectOnFocus"
|
|
179
|
+
[autoOptionFocus]="params.autoOptionFocus"
|
|
180
|
+
(onChange)="onChange($event)" />
|
|
181
|
+
} @else {
|
|
182
|
+
<p-select
|
|
183
|
+
[(ngModel)]="value"
|
|
184
|
+
[scrollHeight]="params.scrollHeight || '200px'"
|
|
185
|
+
[filter]="params.filter"
|
|
186
|
+
[name]="params.name"
|
|
187
|
+
[options]="params.options"
|
|
188
|
+
[placeholder]="params.placeholder"
|
|
189
|
+
[class]="params.class"
|
|
190
|
+
[style]="params.style"
|
|
191
|
+
[panelStyle]="params.panelStyle"
|
|
192
|
+
[panelStyleClass]="params.panelStyleClass"
|
|
193
|
+
[readonly]="params.readonly"
|
|
194
|
+
[editable]="params.editable"
|
|
195
|
+
[appendTo]="params.appendTo || 'body'"
|
|
196
|
+
[tabindex]="params.tabindex"
|
|
197
|
+
[loadingIcon]="params.loadingIcon"
|
|
198
|
+
[filterPlaceholder]="params.filterPlaceholder"
|
|
199
|
+
[filterLocale]="params.filterLocale"
|
|
200
|
+
[variant]="params.variant"
|
|
201
|
+
[inputId]="params.inputId"
|
|
202
|
+
[dataKey]="params.dataKey"
|
|
203
|
+
[filterBy]="params.filterBy"
|
|
204
|
+
[filterFields]="params.filterFields"
|
|
205
|
+
[autofocus]="params.autofocus ?? true"
|
|
206
|
+
[resetFilterOnHide]="params.resetFilterOnHide"
|
|
207
|
+
[checkmark]="params.checkmark"
|
|
208
|
+
[dropdownIcon]="params.dropdownIcon"
|
|
209
|
+
[loading]="params.loading"
|
|
210
|
+
[optionLabel]="params.optionLabel"
|
|
211
|
+
[optionValue]="params.optionValue"
|
|
212
|
+
[optionDisabled]="params.optionDisabled"
|
|
213
|
+
[optionGroupLabel]="params.optionGroupLabel"
|
|
214
|
+
[optionGroupChildren]="params.optionGroupChildren || 'items'"
|
|
215
|
+
[group]="params.group"
|
|
216
|
+
[showClear]="params.showClear"
|
|
217
|
+
[emptyFilterMessage]="params.emptyFilterMessage"
|
|
218
|
+
[emptyMessage]="params.emptyMessage"
|
|
219
|
+
[lazy]="params.lazy"
|
|
220
|
+
[virtualScroll]="params.virtualScroll"
|
|
221
|
+
[virtualScrollItemSize]="params.virtualScrollItemSize"
|
|
222
|
+
[virtualScrollOptions]="params.virtualScrollOptions"
|
|
223
|
+
[overlayOptions]="params.overlayOptions"
|
|
224
|
+
[size]="params.size"
|
|
225
|
+
[ariaFilterLabel]="params.ariaFilterLabel"
|
|
226
|
+
[ariaLabel]="params.ariaLabel"
|
|
227
|
+
[ariaLabelledBy]="params.ariaLabelledBy"
|
|
228
|
+
[filterMatchMode]="params.filterMatchMode"
|
|
229
|
+
[maxlength]="params.maxlength"
|
|
230
|
+
[tooltip]="params.tooltip"
|
|
231
|
+
[tooltipPosition]="params.tooltipPosition || 'right'"
|
|
232
|
+
[tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
|
|
233
|
+
[tooltipStyleClass]="params.tooltipStyleClass"
|
|
234
|
+
[focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
|
|
235
|
+
[fluid]="params.fluid == undefined ? true : params.fluid"
|
|
236
|
+
[filterValue]="params.filterValue"
|
|
237
|
+
(onChange)="onChange($event)" />
|
|
238
|
+
}
|
|
239
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
240
|
+
}
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditAsyncSelectFieldComponent, decorators: [{
|
|
242
|
+
type: Component,
|
|
243
|
+
args: [{
|
|
244
|
+
standalone: true,
|
|
245
|
+
template: `
|
|
246
|
+
@if (params.multiple) {
|
|
247
|
+
<p-multiselect
|
|
248
|
+
[(ngModel)]="value"
|
|
249
|
+
[scrollHeight]="params.scrollHeight || '200px'"
|
|
250
|
+
[filter]="params.filter"
|
|
251
|
+
[name]="params.name"
|
|
252
|
+
[options]="params.options"
|
|
253
|
+
[placeholder]="params.placeholder"
|
|
254
|
+
[class]="params.class"
|
|
255
|
+
[style]="params.style"
|
|
256
|
+
[panelStyle]="params.panelStyle"
|
|
257
|
+
[panelStyleClass]="params.panelStyleClass"
|
|
258
|
+
[readonly]="params.readonly"
|
|
259
|
+
[appendTo]="params.appendTo || 'body'"
|
|
260
|
+
[tabindex]="params.tabindex"
|
|
261
|
+
[loadingIcon]="params.loadingIcon"
|
|
262
|
+
[filterPlaceHolder]="params.filterPlaceHolder || params.filterPlaceholder"
|
|
263
|
+
[filterLocale]="params.filterLocale"
|
|
264
|
+
[variant]="params.variant"
|
|
265
|
+
[inputId]="params.inputId"
|
|
266
|
+
[dataKey]="params.dataKey"
|
|
267
|
+
[filterBy]="params.filterBy"
|
|
268
|
+
[filterFields]="params.filterFields"
|
|
269
|
+
[autofocus]="params.autofocus ?? true"
|
|
270
|
+
[resetFilterOnHide]="params.resetFilterOnHide"
|
|
271
|
+
[dropdownIcon]="params.dropdownIcon"
|
|
272
|
+
[loading]="params.loading"
|
|
273
|
+
[optionLabel]="params.optionLabel"
|
|
274
|
+
[optionValue]="params.optionValue"
|
|
275
|
+
[optionDisabled]="params.optionDisabled"
|
|
276
|
+
[optionGroupLabel]="params.optionGroupLabel"
|
|
277
|
+
[optionGroupChildren]="params.optionGroupChildren || 'items'"
|
|
278
|
+
[group]="params.group"
|
|
279
|
+
[showClear]="params.showClear"
|
|
280
|
+
[emptyFilterMessage]="params.emptyFilterMessage"
|
|
281
|
+
[emptyMessage]="params.emptyMessage"
|
|
282
|
+
[lazy]="params.lazy"
|
|
283
|
+
[virtualScroll]="params.virtualScroll"
|
|
284
|
+
[virtualScrollItemSize]="params.virtualScrollItemSize"
|
|
285
|
+
[virtualScrollOptions]="params.virtualScrollOptions"
|
|
286
|
+
[overlayOptions]="params.overlayOptions"
|
|
287
|
+
[size]="params.size"
|
|
288
|
+
[ariaFilterLabel]="params.ariaFilterLabel"
|
|
289
|
+
[ariaLabel]="params.ariaLabel"
|
|
290
|
+
[ariaLabelledBy]="params.ariaLabelledBy"
|
|
291
|
+
[filterMatchMode]="params.filterMatchMode"
|
|
292
|
+
[maxlength]="params.maxlength"
|
|
293
|
+
[tooltip]="params.tooltip"
|
|
294
|
+
[tooltipPosition]="params.tooltipPosition || 'right'"
|
|
295
|
+
[tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
|
|
296
|
+
[tooltipStyleClass]="params.tooltipStyleClass"
|
|
297
|
+
[focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
|
|
298
|
+
[fluid]="params.fluid == undefined ? true : params.fluid"
|
|
299
|
+
[filterValue]="params.filterValue"
|
|
300
|
+
[display]="params.display ?? 'comma'"
|
|
301
|
+
[displaySelectedLabel]="params.displaySelectedLabel ?? true"
|
|
302
|
+
[maxSelectedLabels]="params.maxSelectedLabels"
|
|
303
|
+
[selectionLimit]="params.selectionLimit"
|
|
304
|
+
[selectedItemsLabel]="params.selectedItemsLabel"
|
|
305
|
+
[showToggleAll]="params.showToggleAll ?? true"
|
|
306
|
+
[showHeader]="params.showHeader ?? true"
|
|
307
|
+
[autofocusFilter]="params.autofocusFilter"
|
|
308
|
+
[selectAll]="params.selectAll ?? null"
|
|
309
|
+
[selectOnFocus]="params.selectOnFocus"
|
|
310
|
+
[autoOptionFocus]="params.autoOptionFocus"
|
|
311
|
+
(onChange)="onChange($event)" />
|
|
312
|
+
} @else {
|
|
313
|
+
<p-select
|
|
314
|
+
[(ngModel)]="value"
|
|
315
|
+
[scrollHeight]="params.scrollHeight || '200px'"
|
|
316
|
+
[filter]="params.filter"
|
|
317
|
+
[name]="params.name"
|
|
318
|
+
[options]="params.options"
|
|
319
|
+
[placeholder]="params.placeholder"
|
|
320
|
+
[class]="params.class"
|
|
321
|
+
[style]="params.style"
|
|
322
|
+
[panelStyle]="params.panelStyle"
|
|
323
|
+
[panelStyleClass]="params.panelStyleClass"
|
|
324
|
+
[readonly]="params.readonly"
|
|
325
|
+
[editable]="params.editable"
|
|
326
|
+
[appendTo]="params.appendTo || 'body'"
|
|
327
|
+
[tabindex]="params.tabindex"
|
|
328
|
+
[loadingIcon]="params.loadingIcon"
|
|
329
|
+
[filterPlaceholder]="params.filterPlaceholder"
|
|
330
|
+
[filterLocale]="params.filterLocale"
|
|
331
|
+
[variant]="params.variant"
|
|
332
|
+
[inputId]="params.inputId"
|
|
333
|
+
[dataKey]="params.dataKey"
|
|
334
|
+
[filterBy]="params.filterBy"
|
|
335
|
+
[filterFields]="params.filterFields"
|
|
336
|
+
[autofocus]="params.autofocus ?? true"
|
|
337
|
+
[resetFilterOnHide]="params.resetFilterOnHide"
|
|
338
|
+
[checkmark]="params.checkmark"
|
|
339
|
+
[dropdownIcon]="params.dropdownIcon"
|
|
340
|
+
[loading]="params.loading"
|
|
341
|
+
[optionLabel]="params.optionLabel"
|
|
342
|
+
[optionValue]="params.optionValue"
|
|
343
|
+
[optionDisabled]="params.optionDisabled"
|
|
344
|
+
[optionGroupLabel]="params.optionGroupLabel"
|
|
345
|
+
[optionGroupChildren]="params.optionGroupChildren || 'items'"
|
|
346
|
+
[group]="params.group"
|
|
347
|
+
[showClear]="params.showClear"
|
|
348
|
+
[emptyFilterMessage]="params.emptyFilterMessage"
|
|
349
|
+
[emptyMessage]="params.emptyMessage"
|
|
350
|
+
[lazy]="params.lazy"
|
|
351
|
+
[virtualScroll]="params.virtualScroll"
|
|
352
|
+
[virtualScrollItemSize]="params.virtualScrollItemSize"
|
|
353
|
+
[virtualScrollOptions]="params.virtualScrollOptions"
|
|
354
|
+
[overlayOptions]="params.overlayOptions"
|
|
355
|
+
[size]="params.size"
|
|
356
|
+
[ariaFilterLabel]="params.ariaFilterLabel"
|
|
357
|
+
[ariaLabel]="params.ariaLabel"
|
|
358
|
+
[ariaLabelledBy]="params.ariaLabelledBy"
|
|
359
|
+
[filterMatchMode]="params.filterMatchMode"
|
|
360
|
+
[maxlength]="params.maxlength"
|
|
361
|
+
[tooltip]="params.tooltip"
|
|
362
|
+
[tooltipPosition]="params.tooltipPosition || 'right'"
|
|
363
|
+
[tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
|
|
364
|
+
[tooltipStyleClass]="params.tooltipStyleClass"
|
|
365
|
+
[focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
|
|
366
|
+
[fluid]="params.fluid == undefined ? true : params.fluid"
|
|
367
|
+
[filterValue]="params.filterValue"
|
|
368
|
+
(onChange)="onChange($event)" />
|
|
369
|
+
}
|
|
370
|
+
`,
|
|
371
|
+
imports: [FormsModule, ReactiveFormsModule, SelectModule, MultiSelect],
|
|
372
|
+
}]
|
|
373
|
+
}], propDecorators: { input: [{
|
|
374
|
+
type: ViewChild,
|
|
375
|
+
args: ['input', { read: ViewContainerRef }]
|
|
376
|
+
}] } });
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0LWFzeW5jLXNlbGVjdEZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9jZWxsLWVkaXQvY2VsbC1lZGl0LWFzeW5jLXNlbGVjdEZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQXNCLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFvSW5HLE1BQU0sT0FBTyxpQ0FBaUM7SUFNN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUF5QjtRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDO1FBQzdELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBTSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVks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O1lBQzFCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLE9BQU8sRUFBRSxDQUFDO1FBQ1gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7K0dBdEhXLGlDQUFpQzttR0FBakMsaUNBQWlDLG1KQUlqQixnQkFBZ0IsNkJBcElsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2SFQsMkRBQ1MsV0FBVyxpZ0JBQUUsbUJBQW1CLDhCQUFFLFlBQVkseXJDQUFFLFdBQVc7OzRGQUV6RCxpQ0FBaUM7a0JBbEk3QyxTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkhUO29CQUNELE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO2lCQUN0RTs4QkFLdUQsS0FBSztzQkFBM0QsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2VsZWN0JztcbmltcG9ydCB7IE11bHRpU2VsZWN0IH0gZnJvbSAncHJpbWVuZy9tdWx0aXNlbGVjdCc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3luY1NlbGVjdENvbnRleHQsIHJlc29sdmVBc3luY1NlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi9jZWxsLXV0aWxzL2FzeW5jLXNlbGVjdC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChwYXJhbXMubXVsdGlwbGUpIHtcblx0XHRcdDxwLW11bHRpc2VsZWN0XG5cdFx0XHRcdFsobmdNb2RlbCldPVwidmFsdWVcIlxuXHRcdFx0XHRbc2Nyb2xsSGVpZ2h0XT1cInBhcmFtcy5zY3JvbGxIZWlnaHQgfHwgJzIwMHB4J1wiXG5cdFx0XHRcdFtmaWx0ZXJdPVwicGFyYW1zLmZpbHRlclwiXG5cdFx0XHRcdFtuYW1lXT1cInBhcmFtcy5uYW1lXCJcblx0XHRcdFx0W29wdGlvbnNdPVwicGFyYW1zLm9wdGlvbnNcIlxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwicGFyYW1zLnBsYWNlaG9sZGVyXCJcblx0XHRcdFx0W2NsYXNzXT1cInBhcmFtcy5jbGFzc1wiXG5cdFx0XHRcdFtzdHlsZV09XCJwYXJhbXMuc3R5bGVcIlxuXHRcdFx0XHRbcGFuZWxTdHlsZV09XCJwYXJhbXMucGFuZWxTdHlsZVwiXG5cdFx0XHRcdFtwYW5lbFN0eWxlQ2xhc3NdPVwicGFyYW1zLnBhbmVsU3R5bGVDbGFzc1wiXG5cdFx0XHRcdFtyZWFkb25seV09XCJwYXJhbXMucmVhZG9ubHlcIlxuXHRcdFx0XHRbYXBwZW5kVG9dPVwicGFyYW1zLmFwcGVuZFRvIHx8ICdib2R5J1wiXG5cdFx0XHRcdFt0YWJpbmRleF09XCJwYXJhbXMudGFiaW5kZXhcIlxuXHRcdFx0XHRbbG9hZGluZ0ljb25dPVwicGFyYW1zLmxvYWRpbmdJY29uXCJcblx0XHRcdFx0W2ZpbHRlclBsYWNlSG9sZGVyXT1cInBhcmFtcy5maWx0ZXJQbGFjZUhvbGRlciB8fCBwYXJhbXMuZmlsdGVyUGxhY2Vob2xkZXJcIlxuXHRcdFx0XHRbZmlsdGVyTG9jYWxlXT1cInBhcmFtcy5maWx0ZXJMb2NhbGVcIlxuXHRcdFx0XHRbdmFyaWFudF09XCJwYXJhbXMudmFyaWFudFwiXG5cdFx0XHRcdFtpbnB1dElkXT1cInBhcmFtcy5pbnB1dElkXCJcblx0XHRcdFx0W2RhdGFLZXldPVwicGFyYW1zLmRhdGFLZXlcIlxuXHRcdFx0XHRbZmlsdGVyQnldPVwicGFyYW1zLmZpbHRlckJ5XCJcblx0XHRcdFx0W2ZpbHRlckZpZWxkc109XCJwYXJhbXMuZmlsdGVyRmllbGRzXCJcblx0XHRcdFx0W2F1dG9mb2N1c109XCJwYXJhbXMuYXV0b2ZvY3VzID8/IHRydWVcIlxuXHRcdFx0XHRbcmVzZXRGaWx0ZXJPbkhpZGVdPVwicGFyYW1zLnJlc2V0RmlsdGVyT25IaWRlXCJcblx0XHRcdFx0W2Ryb3Bkb3duSWNvbl09XCJwYXJhbXMuZHJvcGRvd25JY29uXCJcblx0XHRcdFx0W2xvYWRpbmddPVwicGFyYW1zLmxvYWRpbmdcIlxuXHRcdFx0XHRbb3B0aW9uTGFiZWxdPVwicGFyYW1zLm9wdGlvbkxhYmVsXCJcblx0XHRcdFx0W29wdGlvblZhbHVlXT1cInBhcmFtcy5vcHRpb25WYWx1ZVwiXG5cdFx0XHRcdFtvcHRpb25EaXNhYmxlZF09XCJwYXJhbXMub3B0aW9uRGlzYWJsZWRcIlxuXHRcdFx0XHRbb3B0aW9uR3JvdXBMYWJlbF09XCJwYXJhbXMub3B0aW9uR3JvdXBMYWJlbFwiXG5cdFx0XHRcdFtvcHRpb25Hcm91cENoaWxkcmVuXT1cInBhcmFtcy5vcHRpb25Hcm91cENoaWxkcmVuIHx8ICdpdGVtcydcIlxuXHRcdFx0XHRbZ3JvdXBdPVwicGFyYW1zLmdyb3VwXCJcblx0XHRcdFx0W3Nob3dDbGVhcl09XCJwYXJhbXMuc2hvd0NsZWFyXCJcblx0XHRcdFx0W2VtcHR5RmlsdGVyTWVzc2FnZV09XCJwYXJhbXMuZW1wdHlGaWx0ZXJNZXNzYWdlXCJcblx0XHRcdFx0W2VtcHR5TWVzc2FnZV09XCJwYXJhbXMuZW1wdHlNZXNzYWdlXCJcblx0XHRcdFx0W2xhenldPVwicGFyYW1zLmxhenlcIlxuXHRcdFx0XHRbdmlydHVhbFNjcm9sbF09XCJwYXJhbXMudmlydHVhbFNjcm9sbFwiXG5cdFx0XHRcdFt2aXJ0dWFsU2Nyb2xsSXRlbVNpemVdPVwicGFyYW1zLnZpcnR1YWxTY3JvbGxJdGVtU2l6ZVwiXG5cdFx0XHRcdFt2aXJ0dWFsU2Nyb2xsT3B0aW9uc109XCJwYXJhbXMudmlydHVhbFNjcm9sbE9wdGlvbnNcIlxuXHRcdFx0XHRbb3ZlcmxheU9wdGlvbnNdPVwicGFyYW1zLm92ZXJsYXlPcHRpb25zXCJcblx0XHRcdFx0W3NpemVdPVwicGFyYW1zLnNpemVcIlxuXHRcdFx0XHRbYXJpYUZpbHRlckxhYmVsXT1cInBhcmFtcy5hcmlhRmlsdGVyTGFiZWxcIlxuXHRcdFx0XHRbYXJpYUxhYmVsXT1cInBhcmFtcy5hcmlhTGFiZWxcIlxuXHRcdFx0XHRbYXJpYUxhYmVsbGVkQnldPVwicGFyYW1zLmFyaWFMYWJlbGxlZEJ5XCJcblx0XHRcdFx0W2ZpbHRlck1hdGNoTW9kZV09XCJwYXJhbXMuZmlsdGVyTWF0Y2hNb2RlXCJcblx0XHRcdFx0W21heGxlbmd0aF09XCJwYXJhbXMubWF4bGVuZ3RoXCJcblx0XHRcdFx0W3Rvb2x0aXBdPVwicGFyYW1zLnRvb2x0aXBcIlxuXHRcdFx0XHRbdG9vbHRpcFBvc2l0aW9uXT1cInBhcmFtcy50b29sdGlwUG9zaXRpb24gfHwgJ3JpZ2h0J1wiXG5cdFx0XHRcdFt0b29sdGlwUG9zaXRpb25TdHlsZV09XCJwYXJhbXMudG9vbHRpcFBvc2l0aW9uU3R5bGUgfHwgJ2Fic29sdXRlJ1wiXG5cdFx0XHRcdFt0b29sdGlwU3R5bGVDbGFzc109XCJwYXJhbXMudG9vbHRpcFN0eWxlQ2xhc3NcIlxuXHRcdFx0XHRbZm9jdXNPbkhvdmVyXT1cInBhcmFtcy5mb2N1c09uSG92ZXIgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHBhcmFtcy5mb2N1c09uSG92ZXJcIlxuXHRcdFx0XHRbZmx1aWRdPVwicGFyYW1zLmZsdWlkID09IHVuZGVmaW5lZCA/IHRydWUgOiBwYXJhbXMuZmx1aWRcIlxuXHRcdFx0XHRbZmlsdGVyVmFsdWVdPVwicGFyYW1zLmZpbHRlclZhbHVlXCJcblx0XHRcdFx0W2Rpc3BsYXldPVwicGFyYW1zLmRpc3BsYXkgPz8gJ2NvbW1hJ1wiXG5cdFx0XHRcdFtkaXNwbGF5U2VsZWN0ZWRMYWJlbF09XCJwYXJhbXMuZGlzcGxheVNlbGVjdGVkTGFiZWwgPz8gdHJ1ZVwiXG5cdFx0XHRcdFttYXhTZWxlY3RlZExhYmVsc109XCJwYXJhbXMubWF4U2VsZWN0ZWRMYWJlbHNcIlxuXHRcdFx0XHRbc2VsZWN0aW9uTGltaXRdPVwicGFyYW1zLnNlbGVjdGlvbkxpbWl0XCJcblx0XHRcdFx0W3NlbGVjdGVkSXRlbXNMYWJlbF09XCJwYXJhbXMuc2VsZWN0ZWRJdGVtc0xhYmVsXCJcblx0XHRcdFx0W3Nob3dUb2dnbGVBbGxdPVwicGFyYW1zLnNob3dUb2dnbGVBbGwgPz8gdHJ1ZVwiXG5cdFx0XHRcdFtzaG93SGVhZGVyXT1cInBhcmFtcy5zaG93SGVhZGVyID8/IHRydWVcIlxuXHRcdFx0XHRbYXV0b2ZvY3VzRmlsdGVyXT1cInBhcmFtcy5hdXRvZm9jdXNGaWx0ZXJcIlxuXHRcdFx0XHRbc2VsZWN0QWxsXT1cInBhcmFtcy5zZWxlY3RBbGwgPz8gbnVsbFwiXG5cdFx0XHRcdFtzZWxlY3RPbkZvY3VzXT1cInBhcmFtcy5zZWxlY3RPbkZvY3VzXCJcblx0XHRcdFx0W2F1dG9PcHRpb25Gb2N1c109XCJwYXJhbXMuYXV0b09wdGlvbkZvY3VzXCJcblx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAvPlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0PHAtc2VsZWN0XG5cdFx0XHRcdFsobmdNb2RlbCldPVwidmFsdWVcIlxuXHRcdFx0XHRbc2Nyb2xsSGVpZ2h0XT1cInBhcmFtcy5zY3JvbGxIZWlnaHQgfHwgJzIwMHB4J1wiXG5cdFx0XHRcdFtmaWx0ZXJdPVwicGFyYW1zLmZpbHRlclwiXG5cdFx0XHRcdFtuYW1lXT1cInBhcmFtcy5uYW1lXCJcblx0XHRcdFx0W29wdGlvbnNdPVwicGFyYW1zLm9wdGlvbnNcIlxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwicGFyYW1zLnBsYWNlaG9sZGVyXCJcblx0XHRcdFx0W2NsYXNzXT1cInBhcmFtcy5jbGFzc1wiXG5cdFx0XHRcdFtzdHlsZV09XCJwYXJhbXMuc3R5bGVcIlxuXHRcdFx0XHRbcGFuZWxTdHlsZV09XCJwYXJhbXMucGFuZWxTdHlsZVwiXG5cdFx0XHRcdFtwYW5lbFN0eWxlQ2xhc3NdPVwicGFyYW1zLnBhbmVsU3R5bGVDbGFzc1wiXG5cdFx0XHRcdFtyZWFkb25seV09XCJwYXJhbXMucmVhZG9ubHlcIlxuXHRcdFx0XHRbZWRpdGFibGVdPVwicGFyYW1zLmVkaXRhYmxlXCJcblx0XHRcdFx0W2FwcGVuZFRvXT1cInBhcmFtcy5hcHBlbmRUbyB8fCAnYm9keSdcIlxuXHRcdFx0XHRbdGFiaW5kZXhdPVwicGFyYW1zLnRhYmluZGV4XCJcblx0XHRcdFx0W2xvYWRpbmdJY29uXT1cInBhcmFtcy5sb2FkaW5nSWNvblwiXG5cdFx0XHRcdFtmaWx0ZXJQbGFjZWhvbGRlcl09XCJwYXJhbXMuZmlsdGVyUGxhY2Vob2xkZXJcIlxuXHRcdFx0XHRbZmlsdGVyTG9jYWxlXT1cInBhcmFtcy5maWx0ZXJMb2NhbGVcIlxuXHRcdFx0XHRbdmFyaWFudF09XCJwYXJhbXMudmFyaWFudFwiXG5cdFx0XHRcdFtpbnB1dElkXT1cInBhcmFtcy5pbnB1dElkXCJcblx0XHRcdFx0W2RhdGFLZXldPVwicGFyYW1zLmRhdGFLZXlcIlxuXHRcdFx0XHRbZmlsdGVyQnldPVwicGFyYW1zLmZpbHRlckJ5XCJcblx0XHRcdFx0W2ZpbHRlckZpZWxkc109XCJwYXJhbXMuZmlsdGVyRmllbGRzXCJcblx0XHRcdFx0W2F1dG9mb2N1c109XCJwYXJhbXMuYXV0b2ZvY3VzID8/IHRydWVcIlxuXHRcdFx0XHRbcmVzZXRGaWx0ZXJPbkhpZGVdPVwicGFyYW1zLnJlc2V0RmlsdGVyT25IaWRlXCJcblx0XHRcdFx0W2NoZWNrbWFya109XCJwYXJhbXMuY2hlY2ttYXJrXCJcblx0XHRcdFx0W2Ryb3Bkb3duSWNvbl09XCJwYXJhbXMuZHJvcGRvd25JY29uXCJcblx0XHRcdFx0W2xvYWRpbmddPVwicGFyYW1zLmxvYWRpbmdcIlxuXHRcdFx0XHRbb3B0aW9uTGFiZWxdPVwicGFyYW1zLm9wdGlvbkxhYmVsXCJcblx0XHRcdFx0W29wdGlvblZhbHVlXT1cInBhcmFtcy5vcHRpb25WYWx1ZVwiXG5cdFx0XHRcdFtvcHRpb25EaXNhYmxlZF09XCJwYXJhbXMub3B0aW9uRGlzYWJsZWRcIlxuXHRcdFx0XHRbb3B0aW9uR3JvdXBMYWJlbF09XCJwYXJhbXMub3B0aW9uR3JvdXBMYWJlbFwiXG5cdFx0XHRcdFtvcHRpb25Hcm91cENoaWxkcmVuXT1cInBhcmFtcy5vcHRpb25Hcm91cENoaWxkcmVuIHx8ICdpdGVtcydcIlxuXHRcdFx0XHRbZ3JvdXBdPVwicGFyYW1zLmdyb3VwXCJcblx0XHRcdFx0W3Nob3dDbGVhcl09XCJwYXJhbXMuc2hvd0NsZWFyXCJcblx0XHRcdFx0W2VtcHR5RmlsdGVyTWVzc2FnZV09XCJwYXJhbXMuZW1wdHlGaWx0ZXJNZXNzYWdlXCJcblx0XHRcdFx0W2VtcHR5TWVzc2FnZV09XCJwYXJhbXMuZW1wdHlNZXNzYWdlXCJcblx0XHRcdFx0W2xhenldPVwicGFyYW1zLmxhenlcIlxuXHRcdFx0XHRbdmlydHVhbFNjcm9sbF09XCJwYXJhbXMudmlydHVhbFNjcm9sbFwiXG5cdFx0XHRcdFt2aXJ0dWFsU2Nyb2xsSXRlbVNpemVdPVwicGFyYW1zLnZpcnR1YWxTY3JvbGxJdGVtU2l6ZVwiXG5cdFx0XHRcdFt2aXJ0dWFsU2Nyb2xsT3B0aW9uc109XCJwYXJhbXMudmlydHVhbFNjcm9sbE9wdGlvbnNcIlxuXHRcdFx0XHRbb3ZlcmxheU9wdGlvbnNdPVwicGFyYW1zLm92ZXJsYXlPcHRpb25zXCJcblx0XHRcdFx0W3NpemVdPVwicGFyYW1zLnNpemVcIlxuXHRcdFx0XHRbYXJpYUZpbHRlckxhYmVsXT1cInBhcmFtcy5hcmlhRmlsdGVyTGFiZWxcIlxuXHRcdFx0XHRbYXJpYUxhYmVsXT1cInBhcmFtcy5hcmlhTGFiZWxcIlxuXHRcdFx0XHRbYXJpYUxhYmVsbGVkQnldPVwicGFyYW1zLmFyaWFMYWJlbGxlZEJ5XCJcblx0XHRcdFx0W2ZpbHRlck1hdGNoTW9kZV09XCJwYXJhbXMuZmlsdGVyTWF0Y2hNb2RlXCJcblx0XHRcdFx0W21heGxlbmd0aF09XCJwYXJhbXMubWF4bGVuZ3RoXCJcblx0XHRcdFx0W3Rvb2x0aXBdPVwicGFyYW1zLnRvb2x0aXBcIlxuXHRcdFx0XHRbdG9vbHRpcFBvc2l0aW9uXT1cInBhcmFtcy50b29sdGlwUG9zaXRpb24gfHwgJ3JpZ2h0J1wiXG5cdFx0XHRcdFt0b29sdGlwUG9zaXRpb25TdHlsZV09XCJwYXJhbXMudG9vbHRpcFBvc2l0aW9uU3R5bGUgfHwgJ2Fic29sdXRlJ1wiXG5cdFx0XHRcdFt0b29sdGlwU3R5bGVDbGFzc109XCJwYXJhbXMudG9vbHRpcFN0eWxlQ2xhc3NcIlxuXHRcdFx0XHRbZm9jdXNPbkhvdmVyXT1cInBhcmFtcy5mb2N1c09uSG92ZXIgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHBhcmFtcy5mb2N1c09uSG92ZXJcIlxuXHRcdFx0XHRbZmx1aWRdPVwicGFyYW1zLmZsdWlkID09IHVuZGVmaW5lZCA/IHRydWUgOiBwYXJhbXMuZmx1aWRcIlxuXHRcdFx0XHRbZmlsdGVyVmFsdWVdPVwicGFyYW1zLmZpbHRlclZhbHVlXCJcblx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAvPlxuXHRcdH1cblx0YCxcblx0aW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTZWxlY3RNb2R1bGUsIE11bHRpU2VsZWN0XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbEVkaXRBc3luY1NlbGVjdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB7XG5cdHBhcmFtcyE6IGFueTtcblx0dmFsdWU6IGFueTtcblxuXHRAVmlld0NoaWxkKCdpbnB1dCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBwdWJsaWMgaW5wdXQhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdGFzeW5jIGFnSW5pdChwYXJhbXM6IElDZWxsRWRpdG9yUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dGhpcy5wYXJhbXMgPSBwYXJhbXM7XG5cdFx0dGhpcy5wYXJhbXMub3B0aW9uTGFiZWwgPSB0aGlzLnBhcmFtcy5vcHRpb25MYWJlbCB8fCAnbGFiZWwnO1xuXHRcdHRoaXMucGFyYW1zLm9wdGlvblZhbHVlID0gdGhpcy5wYXJhbXMub3B0aW9uVmFsdWUgfHwgJ3ZhbHVlJztcblx0XHRjb25zdCByb3dWYWx1ZSA9IHRoaXMucGFyYW1zLmRhdGE/Llt0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGQhXTtcblx0XHR0aGlzLnZhbHVlID0gdGhpcy5wYXJhbXMubXVsdGlwbGUgPyB0aGlzLnRvVmFsdWVBcnJheShwYXJhbXMudmFsdWUgPz8gcm93VmFsdWUpIDogKHBhcmFtcy52YWx1ZSA/PyByb3dWYWx1ZSk7XG5cblx0XHR0aGlzLnNldEVkaXRvclNpemUocGFyYW1zKTtcblx0XHRhd2FpdCB0aGlzLmxvYWRPcHRpb25zKCk7XG5cdH1cblxuXHRnZXRWYWx1ZSgpOiBhbnkge1xuXHRcdGlmICh0aGlzLnBhcmFtcy5tdWx0aXBsZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMudG9WYWx1ZVN0cmluZyh0aGlzLnZhbHVlKTtcblx0XHR9XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuXHRcdHJldHVybiB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCA/IG51bGwgOiB2YWx1ZTtcblx0fVxuXG5cdG9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcblx0XHRjb25zdCBuYW1lRmllbGRzID0gdGhpcy5wYXJhbXMubmFtZUZpZWxkcyB8fCBbXTtcblx0XHRuYW1lRmllbGRzLmZvckVhY2goKG5hbWVGaWVsZDogYW55KSA9PiB7XG5cdFx0XHR0aGlzLnVwZGF0ZU5hbWVGaWVsZChuYW1lRmllbGQsIGV2ZW50KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgbG9hZE9wdGlvbnMoKSB7XG5cdFx0Y29uc3QgY29udGV4dCA9IHRoaXMuY3JlYXRlQ29udGV4dCgpO1xuXG5cdFx0dHJ5IHtcblx0XHRcdHRoaXMucGFyYW1zLmxvYWRpbmcgPSB0cnVlO1xuXHRcdFx0dGhpcy5wYXJhbXMub3B0aW9ucyA9IGF3YWl0IHJlc29sdmVBc3luY1NlbGVjdE9wdGlvbnModGhpcy5wYXJhbXMsIGNvbnRleHQpO1xuXHRcdH0gZmluYWxseSB7XG5cdFx0XHR0aGlzLnBhcmFtcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjcmVhdGVDb250ZXh0KCk6IEFzeW5jU2VsZWN0Q29udGV4dCB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGRhdGE6IHRoaXMucGFyYW1zLmRhdGEsXG5cdFx0XHR2YWx1ZTogdGhpcy5wYXJhbXMubXVsdGlwbGUgPyB0aGlzLnRvVmFsdWVTdHJpbmcodGhpcy52YWx1ZSkgOiB0aGlzLnZhbHVlLFxuXHRcdFx0cGFyYW1zOiB0aGlzLnBhcmFtcyxcblx0XHRcdGZpZWxkOiB0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGQsXG5cdFx0XHRjb2xEZWY6IHRoaXMucGFyYW1zLmNvbERlZixcblx0XHRcdHJvd0luZGV4OiB0aGlzLnBhcmFtcy5ub2RlPy5yb3dJbmRleCxcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRFZGl0b3JTaXplKHBhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMpIHtcblx0XHRjb25zdCBjZWxsV2lkdGggPSBwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG5cdFx0dGhpcy5wYXJhbXMuc3R5bGUgPSB7XG5cdFx0XHRib3JkZXI6ICdub25lJyxcblx0XHRcdGJveFNoYWRvdzogJ25vbmUnLFxuXHRcdFx0d2lkdGg6IGAke2NlbGxXaWR0aH1weGAsXG5cdFx0XHRiYWNrZ3JvdW5kOiAndmFyKC0tYWctYmFja2dyb3VuZC1jb2xvciknLFxuXHRcdFx0aGVpZ2h0OiAnNDBweCcsXG5cdFx0XHRhbGlnbkl0ZW1zOiAnY2VudGVyJyxcblx0XHRcdC4uLih0aGlzLnBhcmFtcy5zdHlsZSB8fCB7fSksXG5cdFx0fTtcblx0XHR0aGlzLnBhcmFtcy5wYW5lbFN0eWxlID0ge1xuXHRcdFx0d2lkdGg6IGAke2NlbGxXaWR0aH1weGAsXG5cdFx0XHQuLi4odGhpcy5wYXJhbXMucGFuZWxTdHlsZSB8fCB7fSksXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlTmFtZUZpZWxkKG5hbWVGaWVsZDogYW55LCBldmVudDogYW55KSB7XG5cdFx0Y29uc3Qgb2xkVmFsdWUgPSB0aGlzLnBhcmFtcy5kYXRhW25hbWVGaWVsZC5maWVsZF07XG5cdFx0Y29uc3QgbmV3VmFsdWUgPSB0aGlzLnJlc29sdmVOYW1lRmllbGRWYWx1ZShuYW1lRmllbGQsIGV2ZW50LnZhbHVlKTtcblx0XHRjb25zdCBncmlkOiBHcmlkQ29tcG9uZW50ID0gdGhpcy5wYXJhbXMuZ3JpZCgpO1xuXHRcdGNvbnN0IGU6IGFueSA9IHtcblx0XHRcdGNvbERlZjogbmFtZUZpZWxkLFxuXHRcdFx0b2xkVmFsdWUsXG5cdFx0XHRuZXdWYWx1ZSxcblx0XHRcdHJvd0luZGV4OiB0aGlzLnBhcmFtcy5ub2RlLnJvd0luZGV4LFxuXHRcdFx0ZGF0YTogeyBpZDogdGhpcy5wYXJhbXMuZGF0YS5pZCB9LFxuXHRcdH07XG5cdFx0Z3JpZC5jZWxsVmFsdWVDaGFuZ2VkKGUpO1xuXHRcdHRoaXMucGFyYW1zLmRhdGFbbmFtZUZpZWxkLmZpZWxkXSA9IG5ld1ZhbHVlO1xuXHR9XG5cblx0cHJpdmF0ZSByZXNvbHZlTmFtZUZpZWxkVmFsdWUobmFtZUZpZWxkOiBhbnksIHZhbHVlOiBhbnkpIHtcblx0XHRjb25zdCB2YWx1ZUZpZWxkID0gdGhpcy5wYXJhbXMub3B0aW9uVmFsdWUgfHwgJ3ZhbHVlJztcblx0XHRpZiAodGhpcy5wYXJhbXMubXVsdGlwbGUpIHtcblx0XHRcdGNvbnN0IHZhbHVlcyA9IHRoaXMudG9WYWx1ZUFycmF5KHZhbHVlKTtcblx0XHRcdHJldHVybiAodGhpcy5wYXJhbXMub3B0aW9ucyB8fCBbXSlcblx0XHRcdFx0LmZpbHRlcigob3A6IGFueSkgPT4gdmFsdWVzLnNvbWUoKHNlbGVjdGVkVmFsdWU6IGFueSkgPT4gc2VsZWN0ZWRWYWx1ZSA9PSBvcD8uW3ZhbHVlRmllbGRdKSlcblx0XHRcdFx0Lm1hcCgob3A6IGFueSkgPT4gb3A/LltuYW1lRmllbGQua2V5XSlcblx0XHRcdFx0LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSAnJylcblx0XHRcdFx0LmpvaW4oJywnKTtcblx0XHR9XG5cdFx0Y29uc3QgaXRlbSA9ICh0aGlzLnBhcmFtcy5vcHRpb25zIHx8IFtdKS5maW5kKChvcDogYW55KSA9PiBvcD8uW3ZhbHVlRmllbGRdID09PSB2YWx1ZSk7XG5cdFx0cmV0dXJuIGl0ZW0gPyBpdGVtW25hbWVGaWVsZC5rZXldIDogbnVsbDtcblx0fVxuXG5cdHByaXZhdGUgdG9WYWx1ZUFycmF5KHZhbHVlOiBhbnkpOiBhbnlbXSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRyZXR1cm4gU3RyaW5nKHZhbHVlKS5zcGxpdCgnLCcpLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJycpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1ZhbHVlU3RyaW5nKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0cmV0dXJuIHZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJycgJiYgaXRlbSAhPSBudWxsKS5qb2luKCcsJyk7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblx0XHRyZXR1cm4gU3RyaW5nKHZhbHVlKTtcblx0fVxufVxuIl19
|
|
@@ -2,8 +2,9 @@ import { CellEditInputTextCompoent } from './cell-edit-inputText.compoent';
|
|
|
2
2
|
import { CellEditInputNumberCompoent } from './cell-edit-inputNumber.component';
|
|
3
3
|
import { CellEditDatePickerComponent } from './cell-edit-datePicker.compoent';
|
|
4
4
|
import { CellEditSelectFieldComponent } from './cell-edit-selectField.component';
|
|
5
|
+
import { CellEditAsyncSelectFieldComponent } from './cell-edit-async-selectField.component';
|
|
5
6
|
import { CellEditAutoCompleteComponent } from './cell-edit-autoComplete.component';
|
|
6
7
|
import { CellEditInputDateComponent } from './cell-edit-inputDate.component';
|
|
7
8
|
import { CellEditSelectComponent } from './cell-edit-select.component';
|
|
8
|
-
export { CellEditInputTextCompoent, CellEditInputNumberCompoent, CellEditDatePickerComponent, CellEditSelectComponent, CellEditAutoCompleteComponent, CellEditInputDateComponent, CellEditSelectFieldComponent };
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
export { CellEditInputTextCompoent, CellEditInputNumberCompoent, CellEditDatePickerComponent, CellEditSelectComponent, CellEditAutoCompleteComponent, CellEditInputDateComponent, CellEditSelectFieldComponent, CellEditAsyncSelectFieldComponent };
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvY2VsbC1lZGl0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzNGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ3RFLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsaUNBQWlDLEVBQ2xDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZWxsRWRpdElucHV0VGV4dENvbXBvZW50IH0gZnJvbSAnLi9jZWxsLWVkaXQtaW5wdXRUZXh0LmNvbXBvZW50J1xuaW1wb3J0IHsgQ2VsbEVkaXRJbnB1dE51bWJlckNvbXBvZW50IH0gZnJvbSAnLi9jZWxsLWVkaXQtaW5wdXROdW1iZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQ2VsbEVkaXREYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXQtZGF0ZVBpY2tlci5jb21wb2VudCdcbmltcG9ydCB7IENlbGxFZGl0U2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdC1zZWxlY3RGaWVsZC5jb21wb25lbnQnXG5pbXBvcnQgeyBDZWxsRWRpdEFzeW5jU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdC1hc3luYy1zZWxlY3RGaWVsZC5jb21wb25lbnQnXG5pbXBvcnQgeyBDZWxsRWRpdEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0LWF1dG9Db21wbGV0ZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDZWxsRWRpdElucHV0RGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0LWlucHV0RGF0ZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDZWxsRWRpdFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0LXNlbGVjdC5jb21wb25lbnQnXG5leHBvcnQgeyBcbiAgQ2VsbEVkaXRJbnB1dFRleHRDb21wb2VudCxcbiAgQ2VsbEVkaXRJbnB1dE51bWJlckNvbXBvZW50LFxuICBDZWxsRWRpdERhdGVQaWNrZXJDb21wb25lbnQsXG4gIENlbGxFZGl0U2VsZWN0Q29tcG9uZW50LFxuICBDZWxsRWRpdEF1dG9Db21wbGV0ZUNvbXBvbmVudCxcbiAgQ2VsbEVkaXRJbnB1dERhdGVDb21wb25lbnQsXG4gIENlbGxFZGl0U2VsZWN0RmllbGRDb21wb25lbnQsXG4gIENlbGxFZGl0QXN5bmNTZWxlY3RGaWVsZENvbXBvbmVudFxufVxuIl19
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { resolveAsyncSelectOptions } from '../cell-utils/async-select-options';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AsyncSelectLabelRenderer {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.label = '';
|
|
7
|
+
this.loadId = 0;
|
|
8
|
+
}
|
|
9
|
+
agInit(params) {
|
|
10
|
+
this.refresh(params);
|
|
11
|
+
}
|
|
12
|
+
refresh(params) {
|
|
13
|
+
this.params = this.mergeParams(params);
|
|
14
|
+
void this.loadLabel();
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
async loadLabel() {
|
|
18
|
+
const loadId = ++this.loadId;
|
|
19
|
+
const value = this.params.value ?? this.params.data?.[this.params.colDef.field];
|
|
20
|
+
if (value === '' || value == null) {
|
|
21
|
+
this.label = '';
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const context = this.createContext(value);
|
|
25
|
+
try {
|
|
26
|
+
const options = await resolveAsyncSelectOptions(this.params, context);
|
|
27
|
+
if (loadId !== this.loadId) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.label = this.formatLabel(value, options);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
if (loadId === this.loadId) {
|
|
34
|
+
this.label = String(value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
mergeParams(params) {
|
|
39
|
+
const cellEditorParams = params.colDef?.cellEditorParams || {};
|
|
40
|
+
return {
|
|
41
|
+
...cellEditorParams,
|
|
42
|
+
...params,
|
|
43
|
+
optionLabel: params.optionLabel || cellEditorParams.optionLabel || 'label',
|
|
44
|
+
optionValue: params.optionValue || cellEditorParams.optionValue || 'value',
|
|
45
|
+
multiple: params.multiple ?? cellEditorParams.multiple,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
createContext(value) {
|
|
49
|
+
return {
|
|
50
|
+
data: this.params.data,
|
|
51
|
+
value: this.params.multiple ? this.toValueString(value) : value,
|
|
52
|
+
params: this.params,
|
|
53
|
+
field: this.params.colDef.field,
|
|
54
|
+
colDef: this.params.colDef,
|
|
55
|
+
rowIndex: this.params.node?.rowIndex,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
formatLabel(value, options) {
|
|
59
|
+
const valueField = this.params.optionValue || 'value';
|
|
60
|
+
const labelField = this.params.optionLabel || 'label';
|
|
61
|
+
if (this.params.multiple) {
|
|
62
|
+
const values = this.toValueArray(value);
|
|
63
|
+
const labels = values.map((item) => {
|
|
64
|
+
const option = options.find((opt) => opt?.[valueField] == item);
|
|
65
|
+
return option ? option?.[labelField] : item;
|
|
66
|
+
});
|
|
67
|
+
return labels.filter((item) => item !== undefined && item !== null && item !== '').join(',');
|
|
68
|
+
}
|
|
69
|
+
const option = options.find((opt) => opt?.[valueField] == value);
|
|
70
|
+
return option ? option?.[labelField] : String(value);
|
|
71
|
+
}
|
|
72
|
+
toValueArray(value) {
|
|
73
|
+
if (Array.isArray(value)) {
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
if (value === '' || value == null) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return String(value).split(',').filter((item) => item !== '');
|
|
80
|
+
}
|
|
81
|
+
toValueString(value) {
|
|
82
|
+
if (Array.isArray(value)) {
|
|
83
|
+
return value.filter((item) => item !== '' && item != null).join(',');
|
|
84
|
+
}
|
|
85
|
+
if (value === '' || value == null) {
|
|
86
|
+
return '';
|
|
87
|
+
}
|
|
88
|
+
return String(value);
|
|
89
|
+
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectLabelRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AsyncSelectLabelRenderer, isStandalone: true, selector: "ng-component", ngImport: i0, template: `{{ label }}`, isInline: true }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectLabelRenderer, decorators: [{
|
|
94
|
+
type: Component,
|
|
95
|
+
args: [{
|
|
96
|
+
standalone: true,
|
|
97
|
+
template: `{{ label }}`,
|
|
98
|
+
}]
|
|
99
|
+
}] });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc2VsZWN0LWxhYmVsLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9ncmlkL2NlbGwtcmVuZGVyL2FzeW5jLXNlbGVjdC1sYWJlbC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBc0IseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFNbkcsTUFBTSxPQUFPLHdCQUF3QjtJQUpyQztRQUtDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFSCxXQUFNLEdBQUcsQ0FBQyxDQUFDO0tBMEZuQjtJQXhGQSxNQUFNLENBQUMsTUFBMkI7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQTJCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUztRQUN0QixNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87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dEIsQ0FBQzsrR0E1Rlcsd0JBQXdCO21HQUF4Qix3QkFBd0Isd0VBRjFCLGFBQWE7OzRGQUVYLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGFBQWE7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgdHlwZSB7IElDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBBc3luY1NlbGVjdENvbnRleHQsIHJlc29sdmVBc3luY1NlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi9jZWxsLXV0aWxzL2FzeW5jLXNlbGVjdC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBge3sgbGFiZWwgfX1gLFxufSlcbmV4cG9ydCBjbGFzcyBBc3luY1NlbGVjdExhYmVsUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuXHRsYWJlbCA9ICcnO1xuXHRwYXJhbXMhOiBhbnk7XG5cdHByaXZhdGUgbG9hZElkID0gMDtcblxuXHRhZ0luaXQocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XG5cdFx0dGhpcy5yZWZyZXNoKHBhcmFtcyk7XG5cdH1cblxuXHRyZWZyZXNoKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xuXHRcdHRoaXMucGFyYW1zID0gdGhpcy5tZXJnZVBhcmFtcyhwYXJhbXMpO1xuXHRcdHZvaWQgdGhpcy5sb2FkTGFiZWwoKTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgbG9hZExhYmVsKCkge1xuXHRcdGNvbnN0IGxvYWRJZCA9ICsrdGhpcy5sb2FkSWQ7XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnBhcmFtcy52YWx1ZSA/PyB0aGlzLnBhcmFtcy5kYXRhPy5bdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkXTtcblx0XHRpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09IG51bGwpIHtcblx0XHRcdHRoaXMubGFiZWwgPSAnJztcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBjb250ZXh0ID0gdGhpcy5jcmVhdGVDb250ZXh0KHZhbHVlKTtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3Qgb3B0aW9ucyA9IGF3YWl0IHJlc29sdmVBc3luY1NlbGVjdE9wdGlvbnModGhpcy5wYXJhbXMsIGNvbnRleHQpO1xuXHRcdFx0aWYgKGxvYWRJZCAhPT0gdGhpcy5sb2FkSWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5sYWJlbCA9IHRoaXMuZm9ybWF0TGFiZWwodmFsdWUsIG9wdGlvbnMpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0aWYgKGxvYWRJZCA9PT0gdGhpcy5sb2FkSWQpIHtcblx0XHRcdFx0dGhpcy5sYWJlbCA9IFN0cmluZyh2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBtZXJnZVBhcmFtcyhwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpIHtcblx0XHRjb25zdCBjZWxsRWRpdG9yUGFyYW1zID0gKHBhcmFtcy5jb2xEZWYgYXMgYW55KT8uY2VsbEVkaXRvclBhcmFtcyB8fCB7fTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uY2VsbEVkaXRvclBhcmFtcyxcblx0XHRcdC4uLnBhcmFtcyxcblx0XHRcdG9wdGlvbkxhYmVsOiAocGFyYW1zIGFzIGFueSkub3B0aW9uTGFiZWwgfHwgY2VsbEVkaXRvclBhcmFtcy5vcHRpb25MYWJlbCB8fCAnbGFiZWwnLFxuXHRcdFx0b3B0aW9uVmFsdWU6IChwYXJhbXMgYXMgYW55KS5vcHRpb25WYWx1ZSB8fCBjZWxsRWRpdG9yUGFyYW1zLm9wdGlvblZhbHVlIHx8ICd2YWx1ZScsXG5cdFx0XHRtdWx0aXBsZTogKHBhcmFtcyBhcyBhbnkpLm11bHRpcGxlID8/IGNlbGxFZGl0b3JQYXJhbXMubXVsdGlwbGUsXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgY3JlYXRlQ29udGV4dCh2YWx1ZTogYW55KTogQXN5bmNTZWxlY3RDb250ZXh0IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGF0YTogdGhpcy5wYXJhbXMuZGF0YSxcblx0XHRcdHZhbHVlOiB0aGlzLnBhcmFtcy5tdWx0aXBsZSA/IHRoaXMudG9WYWx1ZVN0cmluZyh2YWx1ZSkgOiB2YWx1ZSxcblx0XHRcdHBhcmFtczogdGhpcy5wYXJhbXMsXG5cdFx0XHRmaWVsZDogdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkLFxuXHRcdFx0Y29sRGVmOiB0aGlzLnBhcmFtcy5jb2xEZWYsXG5cdFx0XHRyb3dJbmRleDogdGhpcy5wYXJhbXMubm9kZT8ucm93SW5kZXgsXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgZm9ybWF0TGFiZWwodmFsdWU6IGFueSwgb3B0aW9uczogYW55W10pIHtcblx0XHRjb25zdCB2YWx1ZUZpZWxkID0gdGhpcy5wYXJhbXMub3B0aW9uVmFsdWUgfHwgJ3ZhbHVlJztcblx0XHRjb25zdCBsYWJlbEZpZWxkID0gdGhpcy5wYXJhbXMub3B0aW9uTGFiZWwgfHwgJ2xhYmVsJztcblx0XHRpZiAodGhpcy5wYXJhbXMubXVsdGlwbGUpIHtcblx0XHRcdGNvbnN0IHZhbHVlcyA9IHRoaXMudG9WYWx1ZUFycmF5KHZhbHVlKTtcblx0XHRcdGNvbnN0IGxhYmVscyA9IHZhbHVlcy5tYXAoKGl0ZW0pID0+IHtcblx0XHRcdFx0Y29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQ6IGFueSkgPT4gb3B0Py5bdmFsdWVGaWVsZF0gPT0gaXRlbSk7XG5cdFx0XHRcdHJldHVybiBvcHRpb24gPyBvcHRpb24/LltsYWJlbEZpZWxkXSA6IGl0ZW07XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBsYWJlbHMuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSAnJykuam9pbignLCcpO1xuXHRcdH1cblx0XHRjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQoKG9wdDogYW55KSA9PiBvcHQ/Llt2YWx1ZUZpZWxkXSA9PSB2YWx1ZSk7XG5cdFx0cmV0dXJuIG9wdGlvbiA/IG9wdGlvbj8uW2xhYmVsRmllbGRdIDogU3RyaW5nKHZhbHVlKTtcblx0fVxuXG5cdHByaXZhdGUgdG9WYWx1ZUFycmF5KHZhbHVlOiBhbnkpOiBhbnlbXSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRyZXR1cm4gU3RyaW5nKHZhbHVlKS5zcGxpdCgnLCcpLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJycpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1ZhbHVlU3RyaW5nKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0cmV0dXJuIHZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJycgJiYgaXRlbSAhPSBudWxsKS5qb2luKCcsJyk7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblx0XHRyZXR1cm4gU3RyaW5nKHZhbHVlKTtcblx0fVxufVxuIl19
|