@ngx-formly/material 10.0.1 → 11.1.0-rc.0
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/README.md +107 -177
- package/fesm2022/ngx-formly-material-checkbox.mjs +234 -127
- package/fesm2022/ngx-formly-material-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-datepicker.mjs +264 -118
- package/fesm2022/ngx-formly-material-datepicker.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-form-field.mjs +440 -226
- package/fesm2022/ngx-formly-material-form-field.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-input.mjs +199 -89
- package/fesm2022/ngx-formly-material-input.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-multicheckbox.mjs +203 -106
- package/fesm2022/ngx-formly-material-multicheckbox.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-native-select.mjs +204 -73
- package/fesm2022/ngx-formly-material-native-select.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-radio.mjs +247 -104
- package/fesm2022/ngx-formly-material-radio.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-select.mjs +318 -133
- package/fesm2022/ngx-formly-material-select.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-slider.mjs +195 -85
- package/fesm2022/ngx-formly-material-slider.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-textarea.mjs +203 -86
- package/fesm2022/ngx-formly-material-textarea.mjs.map +1 -1
- package/fesm2022/ngx-formly-material-toggle.mjs +208 -86
- package/fesm2022/ngx-formly-material-toggle.mjs.map +1 -1
- package/fesm2022/ngx-formly-material.mjs +84 -62
- package/fesm2022/ngx-formly-material.mjs.map +1 -1
- package/package.json +3 -3
- package/types/ngx-formly-material-checkbox.d.ts +41 -46
- package/types/ngx-formly-material-datepicker.d.ts +62 -67
- package/types/ngx-formly-material-form-field.d.ts +71 -77
- package/types/ngx-formly-material-input.d.ts +22 -28
- package/types/ngx-formly-material-multicheckbox.d.ts +33 -38
- package/types/ngx-formly-material-native-select.d.ts +23 -29
- package/types/ngx-formly-material-radio.d.ts +34 -39
- package/types/ngx-formly-material-select.d.ts +45 -48
- package/types/ngx-formly-material-slider.d.ts +32 -37
- package/types/ngx-formly-material-textarea.d.ts +28 -33
- package/types/ngx-formly-material-toggle.d.ts +30 -35
- package/types/ngx-formly-material.d.ts +16 -19
|
@@ -1,73 +1,93 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import {
|
|
3
|
-
import * as i3 from
|
|
4
|
-
import { MatSelect, MatSelectModule } from
|
|
5
|
-
import * as i5 from
|
|
6
|
-
import {
|
|
7
|
-
import { FieldType, FormlyMatFormFieldModule } from
|
|
8
|
-
import * as i1 from
|
|
9
|
-
import { CommonModule } from
|
|
10
|
-
import * as i2 from
|
|
11
|
-
import { ReactiveFormsModule } from
|
|
12
|
-
import * as i4 from
|
|
13
|
-
import { MatPseudoCheckboxModule } from
|
|
14
|
-
import * as i6 from
|
|
15
|
-
import { FormlySelectModule } from
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, NgModule, ViewChild } from "@angular/core";
|
|
3
|
+
import * as i3 from "@angular/material/select";
|
|
4
|
+
import { MatSelect, MatSelectModule } from "@angular/material/select";
|
|
5
|
+
import * as i5 from "@ngx-formly/core";
|
|
6
|
+
import { FormlyModule, ɵobserve } from "@ngx-formly/core";
|
|
7
|
+
import { FieldType, FormlyMatFormFieldModule } from "@ngx-formly/material/form-field";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import { CommonModule } from "@angular/common";
|
|
10
|
+
import * as i2 from "@angular/forms";
|
|
11
|
+
import { ReactiveFormsModule } from "@angular/forms";
|
|
12
|
+
import * as i4 from "@angular/material/core";
|
|
13
|
+
import { MatPseudoCheckboxModule } from "@angular/material/core";
|
|
14
|
+
import * as i6 from "@ngx-formly/core/select";
|
|
15
|
+
import { FormlySelectModule } from "@ngx-formly/core/select";
|
|
16
|
+
var FormlyFieldSelect = class FormlyFieldSelect extends FieldType {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.defaultOptions = { props: { compareWith(o1, o2) {
|
|
20
|
+
return o1 === o2;
|
|
21
|
+
} } };
|
|
22
|
+
}
|
|
23
|
+
set select(select) {
|
|
24
|
+
ɵobserve(select, ["_parentFormField", "_textField"], ({ currentValue }) => {
|
|
25
|
+
if (currentValue) select._preferredOverlayOrigin = select._parentFormField.getConnectedOverlayOrigin();
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
get triggerLabel() {
|
|
29
|
+
const { triggerLabel, multiple } = this.props;
|
|
30
|
+
if (this.empty || multiple && this.value.length === 0) return "";
|
|
31
|
+
if (typeof triggerLabel === "function") return triggerLabel(this.value);
|
|
32
|
+
return multiple ? this.value.map((value) => value?.[triggerLabel]).join(", ") : this.value?.[triggerLabel];
|
|
33
|
+
}
|
|
34
|
+
getSelectAllState(options) {
|
|
35
|
+
if (this.empty || this.value.length === 0) return null;
|
|
36
|
+
return this.value.length !== this.getSelectAllValue(options).length ? "indeterminate" : "checked";
|
|
37
|
+
}
|
|
38
|
+
toggleSelectAll(options) {
|
|
39
|
+
const selectAllValue = this.getSelectAllValue(options);
|
|
40
|
+
this.formControl.markAsDirty();
|
|
41
|
+
this.formControl.setValue(!this.value || this.value.length !== selectAllValue.length ? selectAllValue : []);
|
|
42
|
+
}
|
|
43
|
+
change($event) {
|
|
44
|
+
this.props.change?.(this.field, $event);
|
|
45
|
+
}
|
|
46
|
+
_getAriaLabelledby() {
|
|
47
|
+
if (this.props.attributes?.["aria-labelledby"]) return this.props.attributes["aria-labelledby"];
|
|
48
|
+
return this.formField?._labelId;
|
|
49
|
+
}
|
|
50
|
+
_getAriaLabel() {
|
|
51
|
+
return this.props.attributes?.["aria-label"];
|
|
52
|
+
}
|
|
53
|
+
getSelectAllValue(options) {
|
|
54
|
+
if (!this.selectAllValue || options !== this.selectAllValue.options) {
|
|
55
|
+
const flatOptions = [];
|
|
56
|
+
options.forEach((o) => o.group ? flatOptions.push(...o.group) : flatOptions.push(o));
|
|
57
|
+
this.selectAllValue = {
|
|
58
|
+
options,
|
|
59
|
+
value: flatOptions.filter((o) => !o.disabled).map((o) => o.value)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return this.selectAllValue.value;
|
|
63
|
+
}
|
|
64
|
+
static {
|
|
65
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
66
|
+
minVersion: "12.0.0",
|
|
67
|
+
version: "22.2.2",
|
|
68
|
+
ngImport: i0,
|
|
69
|
+
type: FormlyFieldSelect,
|
|
70
|
+
deps: null,
|
|
71
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
static {
|
|
75
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
76
|
+
minVersion: "17.0.0",
|
|
77
|
+
version: "22.2.2",
|
|
78
|
+
type: FormlyFieldSelect,
|
|
79
|
+
isStandalone: false,
|
|
80
|
+
selector: "formly-field-mat-select",
|
|
81
|
+
viewQueries: [{
|
|
82
|
+
propertyName: "select",
|
|
83
|
+
first: true,
|
|
84
|
+
predicate: MatSelect,
|
|
85
|
+
descendants: true,
|
|
86
|
+
static: true
|
|
87
|
+
}],
|
|
88
|
+
usesInheritance: true,
|
|
89
|
+
ngImport: i0,
|
|
90
|
+
template: `
|
|
71
91
|
<ng-template #selectAll let-selectOptions="selectOptions">
|
|
72
92
|
<mat-option (click)="toggleSelectAll(selectOptions)">
|
|
73
93
|
<mat-pseudo-checkbox class="mat-option-pseudo-checkbox" [state]="getSelectAllState(selectOptions)">
|
|
@@ -94,6 +114,9 @@ class FormlyFieldSelect extends FieldType {
|
|
|
94
114
|
[panelClass]="props.panelClass"
|
|
95
115
|
[panelWidth]="props.panelWidth"
|
|
96
116
|
>
|
|
117
|
+
@if (props.triggerLabel != null) {
|
|
118
|
+
<mat-select-trigger>{{ triggerLabel }}</mat-select-trigger>
|
|
119
|
+
}
|
|
97
120
|
@if (props.options | formlySelectOptions: field | async; as selectOptions) {
|
|
98
121
|
@if (props.multiple && props.selectAllOption) {
|
|
99
122
|
<ng-container [ngTemplateOutlet]="selectAll" [ngTemplateOutletContext]="{ selectOptions: selectOptions }">
|
|
@@ -114,13 +137,141 @@ class FormlyFieldSelect extends FieldType {
|
|
|
114
137
|
}
|
|
115
138
|
}
|
|
116
139
|
</mat-select>
|
|
117
|
-
`,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
140
|
+
`,
|
|
141
|
+
isInline: true,
|
|
142
|
+
dependencies: [
|
|
143
|
+
{
|
|
144
|
+
kind: "directive",
|
|
145
|
+
type: i1.NgTemplateOutlet,
|
|
146
|
+
selector: "[ngTemplateOutlet]",
|
|
147
|
+
inputs: [
|
|
148
|
+
"ngTemplateOutletContext",
|
|
149
|
+
"ngTemplateOutlet",
|
|
150
|
+
"ngTemplateOutletInjector"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
kind: "directive",
|
|
155
|
+
type: i2.NgControlStatus,
|
|
156
|
+
selector: "[formControlName],[ngModel],[formControl]"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
kind: "directive",
|
|
160
|
+
type: i2.RequiredValidator,
|
|
161
|
+
selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",
|
|
162
|
+
inputs: ["required"]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
kind: "directive",
|
|
166
|
+
type: i2.FormControlDirective,
|
|
167
|
+
selector: "[formControl]",
|
|
168
|
+
inputs: [
|
|
169
|
+
"formControl",
|
|
170
|
+
"disabled",
|
|
171
|
+
"ngModel"
|
|
172
|
+
],
|
|
173
|
+
outputs: ["ngModelChange"],
|
|
174
|
+
exportAs: ["ngForm"]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
kind: "component",
|
|
178
|
+
type: i3.MatSelect,
|
|
179
|
+
selector: "mat-select",
|
|
180
|
+
inputs: [
|
|
181
|
+
"aria-describedby",
|
|
182
|
+
"panelClass",
|
|
183
|
+
"disabled",
|
|
184
|
+
"disableRipple",
|
|
185
|
+
"tabIndex",
|
|
186
|
+
"hideSingleSelectionIndicator",
|
|
187
|
+
"placeholder",
|
|
188
|
+
"required",
|
|
189
|
+
"multiple",
|
|
190
|
+
"disableOptionCentering",
|
|
191
|
+
"compareWith",
|
|
192
|
+
"value",
|
|
193
|
+
"aria-label",
|
|
194
|
+
"aria-labelledby",
|
|
195
|
+
"errorStateMatcher",
|
|
196
|
+
"typeaheadDebounceInterval",
|
|
197
|
+
"sortComparator",
|
|
198
|
+
"id",
|
|
199
|
+
"panelWidth",
|
|
200
|
+
"canSelectNullableOptions"
|
|
201
|
+
],
|
|
202
|
+
outputs: [
|
|
203
|
+
"openedChange",
|
|
204
|
+
"opened",
|
|
205
|
+
"closed",
|
|
206
|
+
"selectionChange",
|
|
207
|
+
"valueChange"
|
|
208
|
+
],
|
|
209
|
+
exportAs: ["matSelect"]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
kind: "directive",
|
|
213
|
+
type: i3.MatSelectTrigger,
|
|
214
|
+
selector: "mat-select-trigger"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
kind: "component",
|
|
218
|
+
type: i3.MatOption,
|
|
219
|
+
selector: "mat-option",
|
|
220
|
+
inputs: [
|
|
221
|
+
"value",
|
|
222
|
+
"id",
|
|
223
|
+
"disabled"
|
|
224
|
+
],
|
|
225
|
+
outputs: ["onSelectionChange"],
|
|
226
|
+
exportAs: ["matOption"]
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
kind: "component",
|
|
230
|
+
type: i3.MatOptgroup,
|
|
231
|
+
selector: "mat-optgroup",
|
|
232
|
+
inputs: ["label", "disabled"],
|
|
233
|
+
exportAs: ["matOptgroup"]
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
kind: "component",
|
|
237
|
+
type: i4.MatPseudoCheckbox,
|
|
238
|
+
selector: "mat-pseudo-checkbox",
|
|
239
|
+
inputs: [
|
|
240
|
+
"state",
|
|
241
|
+
"disabled",
|
|
242
|
+
"appearance"
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
kind: "directive",
|
|
247
|
+
type: i5.LegacyFormlyAttributes,
|
|
248
|
+
selector: "[formlyAttributes]"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
kind: "pipe",
|
|
252
|
+
type: i1.AsyncPipe,
|
|
253
|
+
name: "async"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
kind: "pipe",
|
|
257
|
+
type: i6.LegacyFormlySelectOptionsPipe,
|
|
258
|
+
name: "formlySelectOptions"
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
266
|
+
minVersion: "12.0.0",
|
|
267
|
+
version: "22.2.2",
|
|
268
|
+
ngImport: i0,
|
|
269
|
+
type: FormlyFieldSelect,
|
|
270
|
+
decorators: [{
|
|
271
|
+
type: Component,
|
|
272
|
+
args: [{
|
|
273
|
+
selector: "formly-field-mat-select",
|
|
274
|
+
template: `
|
|
124
275
|
<ng-template #selectAll let-selectOptions="selectOptions">
|
|
125
276
|
<mat-option (click)="toggleSelectAll(selectOptions)">
|
|
126
277
|
<mat-pseudo-checkbox class="mat-option-pseudo-checkbox" [state]="getSelectAllState(selectOptions)">
|
|
@@ -147,6 +298,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImpo
|
|
|
147
298
|
[panelClass]="props.panelClass"
|
|
148
299
|
[panelWidth]="props.panelWidth"
|
|
149
300
|
>
|
|
301
|
+
@if (props.triggerLabel != null) {
|
|
302
|
+
<mat-select-trigger>{{ triggerLabel }}</mat-select-trigger>
|
|
303
|
+
}
|
|
150
304
|
@if (props.options | formlySelectOptions: field | async; as selectOptions) {
|
|
151
305
|
@if (props.multiple && props.selectAllOption) {
|
|
152
306
|
<ng-container [ngTemplateOutlet]="selectAll" [ngTemplateOutletContext]="{ selectOptions: selectOptions }">
|
|
@@ -168,62 +322,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImpo
|
|
|
168
322
|
}
|
|
169
323
|
</mat-select>
|
|
170
324
|
`,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
325
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
326
|
+
standalone: false
|
|
327
|
+
}]
|
|
328
|
+
}],
|
|
329
|
+
propDecorators: { select: [{
|
|
330
|
+
type: ViewChild,
|
|
331
|
+
args: [MatSelect, { static: true }]
|
|
332
|
+
}] }
|
|
333
|
+
});
|
|
179
334
|
function withFormlyFieldSelect() {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
],
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
class FormlyMatSelectModule {
|
|
193
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
194
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatSelectModule, declarations: [FormlyFieldSelect], imports: [CommonModule,
|
|
195
|
-
ReactiveFormsModule,
|
|
196
|
-
MatSelectModule,
|
|
197
|
-
MatPseudoCheckboxModule,
|
|
198
|
-
FormlyMatFormFieldModule,
|
|
199
|
-
FormlySelectModule, i5.FormlyModule] }); }
|
|
200
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatSelectModule, imports: [CommonModule,
|
|
201
|
-
ReactiveFormsModule,
|
|
202
|
-
MatSelectModule,
|
|
203
|
-
MatPseudoCheckboxModule,
|
|
204
|
-
FormlyMatFormFieldModule,
|
|
205
|
-
FormlySelectModule,
|
|
206
|
-
FormlyModule.forChild(withFormlyFieldSelect())] }); }
|
|
335
|
+
return { types: [{
|
|
336
|
+
name: "select",
|
|
337
|
+
component: FormlyFieldSelect,
|
|
338
|
+
wrappers: ["form-field"]
|
|
339
|
+
}, {
|
|
340
|
+
name: "enum",
|
|
341
|
+
extends: "select"
|
|
342
|
+
}] };
|
|
207
343
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
344
|
+
var FormlyMatSelectModule = class FormlyMatSelectModule {
|
|
345
|
+
static {
|
|
346
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
347
|
+
minVersion: "12.0.0",
|
|
348
|
+
version: "22.2.2",
|
|
349
|
+
ngImport: i0,
|
|
350
|
+
type: FormlyMatSelectModule,
|
|
351
|
+
deps: [],
|
|
352
|
+
target: i0.ɵɵFactoryTarget.NgModule
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
static {
|
|
356
|
+
this.ɵmod = i0.ɵɵngDeclareNgModule({
|
|
357
|
+
minVersion: "14.0.0",
|
|
358
|
+
version: "22.2.2",
|
|
359
|
+
ngImport: i0,
|
|
360
|
+
type: FormlyMatSelectModule,
|
|
361
|
+
declarations: [FormlyFieldSelect],
|
|
362
|
+
imports: [
|
|
363
|
+
CommonModule,
|
|
364
|
+
ReactiveFormsModule,
|
|
365
|
+
MatSelectModule,
|
|
366
|
+
MatPseudoCheckboxModule,
|
|
367
|
+
FormlyMatFormFieldModule,
|
|
368
|
+
FormlySelectModule,
|
|
369
|
+
i5.FormlyModule
|
|
370
|
+
]
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
static {
|
|
374
|
+
this.ɵinj = i0.ɵɵngDeclareInjector({
|
|
375
|
+
minVersion: "12.0.0",
|
|
376
|
+
version: "22.2.2",
|
|
377
|
+
ngImport: i0,
|
|
378
|
+
type: FormlyMatSelectModule,
|
|
379
|
+
imports: [
|
|
380
|
+
CommonModule,
|
|
381
|
+
ReactiveFormsModule,
|
|
382
|
+
MatSelectModule,
|
|
383
|
+
MatPseudoCheckboxModule,
|
|
384
|
+
FormlyMatFormFieldModule,
|
|
385
|
+
FormlySelectModule,
|
|
386
|
+
FormlyModule.forChild(withFormlyFieldSelect())
|
|
387
|
+
]
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
392
|
+
minVersion: "12.0.0",
|
|
393
|
+
version: "22.2.2",
|
|
394
|
+
ngImport: i0,
|
|
395
|
+
type: FormlyMatSelectModule,
|
|
396
|
+
decorators: [{
|
|
397
|
+
type: NgModule,
|
|
398
|
+
args: [{
|
|
399
|
+
declarations: [FormlyFieldSelect],
|
|
400
|
+
imports: [
|
|
401
|
+
CommonModule,
|
|
402
|
+
ReactiveFormsModule,
|
|
403
|
+
MatSelectModule,
|
|
404
|
+
MatPseudoCheckboxModule,
|
|
405
|
+
FormlyMatFormFieldModule,
|
|
406
|
+
FormlySelectModule,
|
|
407
|
+
FormlyModule.forChild(withFormlyFieldSelect())
|
|
408
|
+
]
|
|
409
|
+
}]
|
|
410
|
+
}]
|
|
411
|
+
});
|
|
228
412
|
export { FormlyFieldSelect, FormlyMatSelectModule, withFormlyFieldSelect };
|
|
229
|
-
|
|
413
|
+
|
|
414
|
+
//# sourceMappingURL=ngx-formly-material-select.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-formly-material-select.mjs","sources":["../../../../src/ui/material/select/src/select.type.ts","../../../../src/ui/material/select/src/select.config.ts","../../../../src/ui/material/select/src/select.module.ts","../../../../src/ui/material/select/src/ngx-formly-material-select.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Type, ViewChild } from '@angular/core';\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\nimport { FieldTypeConfig, FormlyFieldConfig, ɵobserve as observe } from '@ngx-formly/core';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\n\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\n multiple?: boolean;\n selectAllOption?: string;\n disableOptionCentering?: boolean;\n typeaheadDebounceInterval?: number;\n compareWith?: (o1: any, o2: any) => boolean;\n panelClass?: string;\n panelWidth?: string | number | null;\n}\n\nexport interface FormlySelectFieldConfig extends FormlyFieldConfig<SelectProps> {\n type: 'select' | Type<FormlyFieldSelect>;\n}\n\n@Component({\n selector: 'formly-field-mat-select',\n template: `\n <ng-template #selectAll let-selectOptions=\"selectOptions\">\n <mat-option (click)=\"toggleSelectAll(selectOptions)\">\n <mat-pseudo-checkbox class=\"mat-option-pseudo-checkbox\" [state]=\"getSelectAllState(selectOptions)\">\n </mat-pseudo-checkbox>\n {{ props.selectAllOption }}\n </mat-option>\n </ng-template>\n\n <mat-select\n [id]=\"id\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"props.placeholder\"\n [tabIndex]=\"props.tabindex\"\n [required]=\"required\"\n [compareWith]=\"props.compareWith\"\n [multiple]=\"props.multiple\"\n (selectionChange)=\"change($event)\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [aria-label]=\"_getAriaLabel()\"\n [aria-labelledby]=\"_getAriaLabelledby()\"\n [disableOptionCentering]=\"props.disableOptionCentering\"\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\n [panelClass]=\"props.panelClass\"\n [panelWidth]=\"props.panelWidth\"\n >\n @if (props.options | formlySelectOptions: field | async; as selectOptions) {\n @if (props.multiple && props.selectAllOption) {\n <ng-container [ngTemplateOutlet]=\"selectAll\" [ngTemplateOutletContext]=\"{ selectOptions: selectOptions }\">\n </ng-container>\n }\n @for (item of selectOptions; track $index) {\n @if (item.group) {\n <mat-optgroup [label]=\"item.label\">\n @for (child of item.group; track $index) {\n <mat-option [value]=\"child.value\" [disabled]=\"child.disabled\">\n {{ child.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option [value]=\"item.value\" [disabled]=\"item.disabled\">{{ item.label }}</mat-option>\n }\n }\n }\n </mat-select>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormlyFieldSelect extends FieldType<FieldTypeConfig<SelectProps>> {\n @ViewChild(MatSelect, { static: true }) set select(select: any) {\n observe(select, ['_parentFormField', '_textField'], ({ currentValue }) => {\n if (currentValue) {\n select._preferredOverlayOrigin = select._parentFormField.getConnectedOverlayOrigin();\n }\n });\n }\n override defaultOptions = {\n props: {\n compareWith(o1: any, o2: any) {\n return o1 === o2;\n },\n },\n };\n\n private selectAllValue!: { options: any; value: any[] };\n\n getSelectAllState(options: any[]) {\n if (this.empty || this.value.length === 0) {\n return null;\n }\n\n return this.value.length !== this.getSelectAllValue(options).length ? 'indeterminate' : 'checked';\n }\n\n toggleSelectAll(options: any[]) {\n const selectAllValue = this.getSelectAllValue(options);\n this.formControl.markAsDirty();\n this.formControl.setValue(!this.value || this.value.length !== selectAllValue.length ? selectAllValue : []);\n }\n\n change($event: MatSelectChange) {\n this.props.change?.(this.field, $event);\n }\n\n _getAriaLabelledby() {\n if (this.props.attributes?.['aria-labelledby']) {\n return this.props.attributes['aria-labelledby'] as string;\n }\n\n return this.formField?._labelId;\n }\n\n _getAriaLabel() {\n return this.props.attributes?.['aria-label'] as string;\n }\n\n private getSelectAllValue(options: any[]) {\n if (!this.selectAllValue || options !== this.selectAllValue.options) {\n const flatOptions: any[] = [];\n options.forEach((o) => (o.group ? flatOptions.push(...o.group) : flatOptions.push(o)));\n\n this.selectAllValue = {\n options,\n value: flatOptions.filter((o) => !o.disabled).map((o) => o.value),\n };\n }\n\n return this.selectAllValue.value;\n }\n}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldSelect } from './select.type';\n\nexport function withFormlyFieldSelect(): ConfigOption {\n return {\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\n\nimport { FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { FormlyFieldSelect } from './select.type';\nimport { MatPseudoCheckboxModule } from '@angular/material/core';\nimport { withFormlyFieldSelect } from './select.config';\n\n@NgModule({\n declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatPseudoCheckboxModule,\n\n FormlyMatFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldSelect()),\n ],\n})\nexport class FormlyMatSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["observe","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-formly-material-select.mjs","names":[],"sources":["../../../../src/ui/material/select/src/select.type.ts","../../../../src/ui/material/select/src/select.config.ts","../../../../src/ui/material/select/src/select.module.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Type, ViewChild } from '@angular/core';\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\nimport { FieldTypeConfig, FormlyFieldConfig, ɵobserve as observe } from '@ngx-formly/core';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\n\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\n multiple?: boolean;\n selectAllOption?: string;\n triggerLabel?: string | ((formValue: any) => string);\n disableOptionCentering?: boolean;\n typeaheadDebounceInterval?: number;\n compareWith?: (o1: any, o2: any) => boolean;\n panelClass?: string;\n panelWidth?: string | number | null;\n}\n\nexport interface FormlySelectFieldConfig extends FormlyFieldConfig<SelectProps> {\n type: 'select' | Type<FormlyFieldSelect>;\n}\n\n@Component({\n selector: 'formly-field-mat-select',\n template: `\n <ng-template #selectAll let-selectOptions=\"selectOptions\">\n <mat-option (click)=\"toggleSelectAll(selectOptions)\">\n <mat-pseudo-checkbox class=\"mat-option-pseudo-checkbox\" [state]=\"getSelectAllState(selectOptions)\">\n </mat-pseudo-checkbox>\n {{ props.selectAllOption }}\n </mat-option>\n </ng-template>\n\n <mat-select\n [id]=\"id\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"props.placeholder\"\n [tabIndex]=\"props.tabindex\"\n [required]=\"required\"\n [compareWith]=\"props.compareWith\"\n [multiple]=\"props.multiple\"\n (selectionChange)=\"change($event)\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [aria-label]=\"_getAriaLabel()\"\n [aria-labelledby]=\"_getAriaLabelledby()\"\n [disableOptionCentering]=\"props.disableOptionCentering\"\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\n [panelClass]=\"props.panelClass\"\n [panelWidth]=\"props.panelWidth\"\n >\n @if (props.triggerLabel != null) {\n <mat-select-trigger>{{ triggerLabel }}</mat-select-trigger>\n }\n @if (props.options | formlySelectOptions: field | async; as selectOptions) {\n @if (props.multiple && props.selectAllOption) {\n <ng-container [ngTemplateOutlet]=\"selectAll\" [ngTemplateOutletContext]=\"{ selectOptions: selectOptions }\">\n </ng-container>\n }\n @for (item of selectOptions; track $index) {\n @if (item.group) {\n <mat-optgroup [label]=\"item.label\">\n @for (child of item.group; track $index) {\n <mat-option [value]=\"child.value\" [disabled]=\"child.disabled\">\n {{ child.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option [value]=\"item.value\" [disabled]=\"item.disabled\">{{ item.label }}</mat-option>\n }\n }\n }\n </mat-select>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormlyFieldSelect extends FieldType<FieldTypeConfig<SelectProps>> {\n @ViewChild(MatSelect, { static: true }) set select(select: any) {\n observe(select, ['_parentFormField', '_textField'], ({ currentValue }) => {\n if (currentValue) {\n select._preferredOverlayOrigin = select._parentFormField.getConnectedOverlayOrigin();\n }\n });\n }\n override defaultOptions = {\n props: {\n compareWith(o1: any, o2: any) {\n return o1 === o2;\n },\n },\n };\n\n private selectAllValue!: { options: any; value: any[] };\n\n get triggerLabel() {\n const { triggerLabel, multiple } = this.props;\n if (this.empty || (multiple && this.value.length === 0)) {\n return '';\n }\n\n if (typeof triggerLabel === 'function') {\n return triggerLabel(this.value);\n }\n\n return multiple ? this.value.map((value: any) => value?.[triggerLabel]).join(', ') : this.value?.[triggerLabel];\n }\n\n getSelectAllState(options: any[]) {\n if (this.empty || this.value.length === 0) {\n return null;\n }\n\n return this.value.length !== this.getSelectAllValue(options).length ? 'indeterminate' : 'checked';\n }\n\n toggleSelectAll(options: any[]) {\n const selectAllValue = this.getSelectAllValue(options);\n this.formControl.markAsDirty();\n this.formControl.setValue(!this.value || this.value.length !== selectAllValue.length ? selectAllValue : []);\n }\n\n change($event: MatSelectChange) {\n this.props.change?.(this.field, $event);\n }\n\n _getAriaLabelledby() {\n if (this.props.attributes?.['aria-labelledby']) {\n return this.props.attributes['aria-labelledby'] as string;\n }\n\n return this.formField?._labelId;\n }\n\n _getAriaLabel() {\n return this.props.attributes?.['aria-label'] as string;\n }\n\n private getSelectAllValue(options: any[]) {\n if (!this.selectAllValue || options !== this.selectAllValue.options) {\n const flatOptions: any[] = [];\n options.forEach((o) => (o.group ? flatOptions.push(...o.group) : flatOptions.push(o)));\n\n this.selectAllValue = {\n options,\n value: flatOptions.filter((o) => !o.disabled).map((o) => o.value),\n };\n }\n\n return this.selectAllValue.value;\n }\n}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldSelect } from './select.type';\n\nexport function withFormlyFieldSelect(): ConfigOption {\n return {\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\n\nimport { FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { FormlyFieldSelect } from './select.type';\nimport { MatPseudoCheckboxModule } from '@angular/material/core';\nimport { withFormlyFieldSelect } from './select.config';\n\n@NgModule({\n declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatPseudoCheckboxModule,\n\n FormlyMatFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldSelect()),\n ],\n})\nexport class FormlyMatSelectModule {}\n"],"mappings":";;;;;;;;;;;;;;;AA6EA,IAAa,oBAAb,MAAa,0BAA0B,UAAuC;CAxD9E,cAAA;;EAgEW,KAAA,iBAAiB,EACxB,OAAO,EACL,YAAY,IAAS,IAAO;GAC1B,OAAO,OAAO;EAChB,EACD,EACF;CA4DF;CAzEC,IAA4C,OAAO,QAAW;EAC5D,SAAQ,QAAQ,CAAC,oBAAoB,YAAY,IAAI,EAAE,mBAAkB;GACvE,IAAI,cACF,OAAO,0BAA0B,OAAO,iBAAiB,0BAAyB;EAEtF,CAAC;CACH;CAWA,IAAI,eAAY;EACd,MAAM,EAAE,cAAc,aAAa,KAAK;EACxC,IAAI,KAAK,SAAU,YAAY,KAAK,MAAM,WAAW,GACnD,OAAO;EAGT,IAAI,OAAO,iBAAiB,YAC1B,OAAO,aAAa,KAAK,KAAK;EAGhC,OAAO,WAAW,KAAK,MAAM,KAAK,UAAe,QAAQ,aAAa,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,QAAQ;CACpG;CAEA,kBAAkB,SAAc;EAC9B,IAAI,KAAK,SAAS,KAAK,MAAM,WAAW,GACtC,OAAO;EAGT,OAAO,KAAK,MAAM,WAAW,KAAK,kBAAkB,OAAO,CAAC,CAAC,SAAS,kBAAkB;CAC1F;CAEA,gBAAgB,SAAc;EAC5B,MAAM,iBAAiB,KAAK,kBAAkB,OAAO;EACrD,KAAK,YAAY,YAAW;EAC5B,KAAK,YAAY,SAAS,CAAC,KAAK,SAAS,KAAK,MAAM,WAAW,eAAe,SAAS,iBAAiB,CAAA,CAAE;CAC5G;CAEA,OAAO,QAAuB;EAC5B,KAAK,MAAM,SAAS,KAAK,OAAO,MAAM;CACxC;CAEA,qBAAkB;EAChB,IAAI,KAAK,MAAM,aAAa,oBAC1B,OAAO,KAAK,MAAM,WAAW;EAG/B,OAAO,KAAK,WAAW;CACzB;CAEA,gBAAa;EACX,OAAO,KAAK,MAAM,aAAa;CACjC;CAEQ,kBAAkB,SAAc;EACtC,IAAI,CAAC,KAAK,kBAAkB,YAAY,KAAK,eAAe,SAAS;GACnE,MAAM,cAAqB,CAAA;GAC3B,QAAQ,SAAS,MAAO,EAAE,QAAQ,YAAY,KAAK,GAAG,EAAE,KAAK,IAAI,YAAY,KAAK,CAAC,CAAE;GAErF,KAAK,iBAAiB;IACpB;IACA,OAAO,YAAY,QAAQ,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,MAAM,EAAE,KAAK;GACjE;EACH;EAEA,OAAO,KAAK,eAAe;CAC7B;CAzEW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAiB,MAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAjB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAiB,cAAA;GAAA,UAAA;GAAA,aAAA,CAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WACjB;IAAS,aAAA;IAAA,QAAA;GAAA,CAAA;GAAA,iBAAA;GAAA,UAAA;GAAA,UAvDV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDT,UAAA;GAAA,cAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA,CAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;KAAA;KAAA,SAAA,CAAA,eAAA;KAAA,UAAA,CAAA,QAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;KAAA,SAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;KAAA,UAAA,CAAA,WAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;KAAA;KAAA,SAAA,CAAA,mBAAA;KAAA,UAAA,CAAA,WAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA,CAAA,SAAA,UAAA;KAAA,UAAA,CAAA,aAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,MAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,MAAA;IAAA;GAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAIU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EAxD7B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDV,iBAAiB,wBAAwB;GACzC,YAAY;EACb,CAAA;;;EAEE,MAAA;EAAU,MAAA,CAAA,WAAW,EAAE,QAAQ,KAAI,CAAE;;;AC3ExC,SAAgB,wBAAqB;CACnC,OAAO,EACL,OAAO,CACL;EACE,MAAM;EACN,WAAW;EACX,UAAU,CAAC,YAAY;CACxB,GACD;EAAE,MAAM;EAAQ,SAAS;CAAQ,CAClC,EACF;AACH;ACYA,IAAa,wBAAb,MAAa,sBAAqB;CAArB;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAArB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,cAAA,CAZjB,iBAAiB;GAAA,SAAA;IAE9B;IACA;IACA;IACA;IAEA;IACA;IAAkB,GAAA;GAAA;EAAA,CAAA;CAAA;CAIT;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,SAAA;IAV9B;IACA;IACA;IACA;IAEA;IACA;IACA,aAAa,SAAS,sBAAqB,CAAE;GAAC;EAAA,CAAA;CAAA;;AAGrC,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EAbjC,MAAA;EAAS,MAAA,CAAA;GACR,cAAc,CAAC,iBAAiB;GAChC,SAAS;IACP;IACA;IACA;IACA;IAEA;IACA;IACA,aAAa,SAAS,sBAAqB,CAAE;GAC9C;EACF,CAAA"}
|