@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.
Files changed (38) hide show
  1. package/README.md +107 -177
  2. package/fesm2022/ngx-formly-material-checkbox.mjs +234 -127
  3. package/fesm2022/ngx-formly-material-checkbox.mjs.map +1 -1
  4. package/fesm2022/ngx-formly-material-datepicker.mjs +264 -118
  5. package/fesm2022/ngx-formly-material-datepicker.mjs.map +1 -1
  6. package/fesm2022/ngx-formly-material-form-field.mjs +440 -226
  7. package/fesm2022/ngx-formly-material-form-field.mjs.map +1 -1
  8. package/fesm2022/ngx-formly-material-input.mjs +199 -89
  9. package/fesm2022/ngx-formly-material-input.mjs.map +1 -1
  10. package/fesm2022/ngx-formly-material-multicheckbox.mjs +203 -106
  11. package/fesm2022/ngx-formly-material-multicheckbox.mjs.map +1 -1
  12. package/fesm2022/ngx-formly-material-native-select.mjs +204 -73
  13. package/fesm2022/ngx-formly-material-native-select.mjs.map +1 -1
  14. package/fesm2022/ngx-formly-material-radio.mjs +247 -104
  15. package/fesm2022/ngx-formly-material-radio.mjs.map +1 -1
  16. package/fesm2022/ngx-formly-material-select.mjs +318 -133
  17. package/fesm2022/ngx-formly-material-select.mjs.map +1 -1
  18. package/fesm2022/ngx-formly-material-slider.mjs +195 -85
  19. package/fesm2022/ngx-formly-material-slider.mjs.map +1 -1
  20. package/fesm2022/ngx-formly-material-textarea.mjs +203 -86
  21. package/fesm2022/ngx-formly-material-textarea.mjs.map +1 -1
  22. package/fesm2022/ngx-formly-material-toggle.mjs +208 -86
  23. package/fesm2022/ngx-formly-material-toggle.mjs.map +1 -1
  24. package/fesm2022/ngx-formly-material.mjs +84 -62
  25. package/fesm2022/ngx-formly-material.mjs.map +1 -1
  26. package/package.json +3 -3
  27. package/types/ngx-formly-material-checkbox.d.ts +41 -46
  28. package/types/ngx-formly-material-datepicker.d.ts +62 -67
  29. package/types/ngx-formly-material-form-field.d.ts +71 -77
  30. package/types/ngx-formly-material-input.d.ts +22 -28
  31. package/types/ngx-formly-material-multicheckbox.d.ts +33 -38
  32. package/types/ngx-formly-material-native-select.d.ts +23 -29
  33. package/types/ngx-formly-material-radio.d.ts +34 -39
  34. package/types/ngx-formly-material-select.d.ts +45 -48
  35. package/types/ngx-formly-material-slider.d.ts +32 -37
  36. package/types/ngx-formly-material-textarea.d.ts +28 -33
  37. package/types/ngx-formly-material-toggle.d.ts +30 -35
  38. package/types/ngx-formly-material.d.ts +16 -19
@@ -1,47 +1,64 @@
1
- import * as i0 from '@angular/core';
2
- import { ViewChildren, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/material/checkbox';
4
- import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
5
- import { FieldType, FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';
6
- import * as i2 from '@ngx-formly/core';
7
- import { FormlyModule } from '@ngx-formly/core';
8
- import * as i3 from '@angular/common';
9
- import { CommonModule } from '@angular/common';
10
- import * as i4 from '@ngx-formly/core/select';
11
- import { FormlySelectModule } from '@ngx-formly/core/select';
12
- import { ReactiveFormsModule } from '@angular/forms';
13
-
14
- class FormlyFieldMultiCheckbox extends FieldType {
15
- constructor() {
16
- super(...arguments);
17
- this.defaultOptions = {
18
- props: {
19
- hideFieldUnderline: true,
20
- floatLabel: 'always',
21
- color: 'accent', // workaround for https://github.com/angular/components/issues/18465
22
- },
23
- };
24
- }
25
- onChange(value, checked) {
26
- this.formControl.markAsDirty();
27
- if (this.props.type === 'array') {
28
- this.formControl.patchValue(checked
29
- ? [...(this.formControl.value || []), value]
30
- : [...(this.formControl.value || [])].filter((o) => o !== value));
31
- }
32
- else {
33
- this.formControl.patchValue({ ...this.formControl.value, [value]: checked });
34
- }
35
- this.formControl.markAsTouched();
36
- }
37
- // TODO: find a solution to prevent scroll on focus
38
- onContainerClick() { }
39
- isChecked(option) {
40
- const value = this.formControl.value;
41
- return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyFieldMultiCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: FormlyFieldMultiCheckbox, isStandalone: false, selector: "formly-field-mat-multicheckbox", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "checkboxes", predicate: MatCheckbox, descendants: true }], usesInheritance: true, ngImport: i0, template: `
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, NgModule, ViewChildren } from "@angular/core";
3
+ import * as i1 from "@angular/material/checkbox";
4
+ import { MatCheckbox, MatCheckboxModule } from "@angular/material/checkbox";
5
+ import { FieldType, FormlyMatFormFieldModule } from "@ngx-formly/material/form-field";
6
+ import * as i2 from "@ngx-formly/core";
7
+ import { FormlyModule } from "@ngx-formly/core";
8
+ import * as i3 from "@angular/common";
9
+ import { CommonModule } from "@angular/common";
10
+ import * as i4 from "@ngx-formly/core/select";
11
+ import { FormlySelectModule } from "@ngx-formly/core/select";
12
+ import { ReactiveFormsModule } from "@angular/forms";
13
+ var FormlyFieldMultiCheckbox = class FormlyFieldMultiCheckbox extends FieldType {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.defaultOptions = { props: {
17
+ hideFieldUnderline: true,
18
+ floatLabel: "always",
19
+ color: "accent"
20
+ } };
21
+ }
22
+ onChange(value, checked) {
23
+ this.formControl.markAsDirty();
24
+ if (this.props.type === "array") this.formControl.patchValue(checked ? [...this.formControl.value || [], value] : [...this.formControl.value || []].filter((o) => o !== value));
25
+ else this.formControl.patchValue({
26
+ ...this.formControl.value,
27
+ [value]: checked
28
+ });
29
+ this.formControl.markAsTouched();
30
+ }
31
+ onContainerClick() {}
32
+ isChecked(option) {
33
+ const value = this.formControl.value;
34
+ return value && (this.props.type === "array" ? value.indexOf(option.value) !== -1 : value[option.value]);
35
+ }
36
+ static {
37
+ this.ɵfac = i0.ɵɵngDeclareFactory({
38
+ minVersion: "12.0.0",
39
+ version: "22.2.2",
40
+ ngImport: i0,
41
+ type: FormlyFieldMultiCheckbox,
42
+ deps: null,
43
+ target: i0.ɵɵFactoryTarget.Component
44
+ });
45
+ }
46
+ static {
47
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
48
+ minVersion: "17.0.0",
49
+ version: "22.2.2",
50
+ type: FormlyFieldMultiCheckbox,
51
+ isStandalone: false,
52
+ selector: "formly-field-mat-multicheckbox",
53
+ host: { properties: { "id": "id" } },
54
+ viewQueries: [{
55
+ propertyName: "checkboxes",
56
+ predicate: MatCheckbox,
57
+ descendants: true
58
+ }],
59
+ usesInheritance: true,
60
+ ngImport: i0,
61
+ template: `
45
62
  @for (option of props.options | formlySelectOptions: field | async; track $index; let i = $index) {
46
63
  <mat-checkbox
47
64
  [id]="id + '_' + i"
@@ -56,13 +73,66 @@ class FormlyFieldMultiCheckbox extends FieldType {
56
73
  {{ option.label }}
57
74
  </mat-checkbox>
58
75
  }
59
- `, isInline: true, dependencies: [{ kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2.LegacyFormlyAttributes, selector: "[formlyAttributes]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.LegacyFormlySelectOptionsPipe, name: "formlySelectOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
- }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyFieldMultiCheckbox, decorators: [{
62
- type: Component,
63
- args: [{
64
- selector: 'formly-field-mat-multicheckbox',
65
- template: `
76
+ `,
77
+ isInline: true,
78
+ dependencies: [
79
+ {
80
+ kind: "component",
81
+ type: i1.MatCheckbox,
82
+ selector: "mat-checkbox",
83
+ inputs: [
84
+ "aria-label",
85
+ "aria-labelledby",
86
+ "aria-describedby",
87
+ "aria-expanded",
88
+ "aria-controls",
89
+ "aria-owns",
90
+ "id",
91
+ "required",
92
+ "labelPosition",
93
+ "name",
94
+ "value",
95
+ "disableRipple",
96
+ "tabIndex",
97
+ "color",
98
+ "disabledInteractive",
99
+ "checked",
100
+ "disabled",
101
+ "indeterminate"
102
+ ],
103
+ outputs: ["change", "indeterminateChange"],
104
+ exportAs: ["matCheckbox"]
105
+ },
106
+ {
107
+ kind: "directive",
108
+ type: i2.LegacyFormlyAttributes,
109
+ selector: "[formlyAttributes]"
110
+ },
111
+ {
112
+ kind: "pipe",
113
+ type: i3.AsyncPipe,
114
+ name: "async"
115
+ },
116
+ {
117
+ kind: "pipe",
118
+ type: i4.LegacyFormlySelectOptionsPipe,
119
+ name: "formlySelectOptions"
120
+ }
121
+ ],
122
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
123
+ });
124
+ }
125
+ };
126
+ i0.ɵɵngDeclareClassMetadata({
127
+ minVersion: "12.0.0",
128
+ version: "22.2.2",
129
+ ngImport: i0,
130
+ type: FormlyFieldMultiCheckbox,
131
+ decorators: [{
132
+ type: Component,
133
+ args: [{
134
+ selector: "formly-field-mat-multicheckbox",
135
+ template: `
66
136
  @for (option of props.options | formlySelectOptions: field | async; track $index; let i = $index) {
67
137
  <mat-checkbox
68
138
  [id]="id + '_' + i"
@@ -78,61 +148,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImpo
78
148
  </mat-checkbox>
79
149
  }
80
150
  `,
81
- changeDetection: ChangeDetectionStrategy.OnPush,
82
- host: {
83
- '[id]': 'id',
84
- },
85
- standalone: false,
86
- }]
87
- }], propDecorators: { checkboxes: [{
88
- type: ViewChildren,
89
- args: [MatCheckbox]
90
- }] } });
91
-
151
+ changeDetection: ChangeDetectionStrategy.OnPush,
152
+ host: { "[id]": "id" },
153
+ standalone: false
154
+ }]
155
+ }],
156
+ propDecorators: { checkboxes: [{
157
+ type: ViewChildren,
158
+ args: [MatCheckbox]
159
+ }] }
160
+ });
92
161
  function withFormlyFieldMultiCheckbox() {
93
- return {
94
- types: [
95
- {
96
- name: 'multicheckbox',
97
- component: FormlyFieldMultiCheckbox,
98
- wrappers: ['form-field'],
99
- },
100
- ],
101
- };
102
- }
103
-
104
- class FormlyMatMultiCheckboxModule {
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatMultiCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
106
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatMultiCheckboxModule, declarations: [FormlyFieldMultiCheckbox], imports: [CommonModule,
107
- ReactiveFormsModule,
108
- MatCheckboxModule,
109
- FormlyMatFormFieldModule,
110
- FormlySelectModule, i2.FormlyModule] }); }
111
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatMultiCheckboxModule, imports: [CommonModule,
112
- ReactiveFormsModule,
113
- MatCheckboxModule,
114
- FormlyMatFormFieldModule,
115
- FormlySelectModule,
116
- FormlyModule.forChild(withFormlyFieldMultiCheckbox())] }); }
162
+ return { types: [{
163
+ name: "multicheckbox",
164
+ component: FormlyFieldMultiCheckbox,
165
+ wrappers: ["form-field"]
166
+ }] };
117
167
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyMatMultiCheckboxModule, decorators: [{
119
- type: NgModule,
120
- args: [{
121
- declarations: [FormlyFieldMultiCheckbox],
122
- imports: [
123
- CommonModule,
124
- ReactiveFormsModule,
125
- MatCheckboxModule,
126
- FormlyMatFormFieldModule,
127
- FormlySelectModule,
128
- FormlyModule.forChild(withFormlyFieldMultiCheckbox()),
129
- ],
130
- }]
131
- }] });
132
-
133
- /**
134
- * Generated bundle index. Do not edit.
135
- */
136
-
168
+ var FormlyMatMultiCheckboxModule = class FormlyMatMultiCheckboxModule {
169
+ static {
170
+ this.ɵfac = i0.ɵɵngDeclareFactory({
171
+ minVersion: "12.0.0",
172
+ version: "22.2.2",
173
+ ngImport: i0,
174
+ type: FormlyMatMultiCheckboxModule,
175
+ deps: [],
176
+ target: i0.ɵɵFactoryTarget.NgModule
177
+ });
178
+ }
179
+ static {
180
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
181
+ minVersion: "14.0.0",
182
+ version: "22.2.2",
183
+ ngImport: i0,
184
+ type: FormlyMatMultiCheckboxModule,
185
+ declarations: [FormlyFieldMultiCheckbox],
186
+ imports: [
187
+ CommonModule,
188
+ ReactiveFormsModule,
189
+ MatCheckboxModule,
190
+ FormlyMatFormFieldModule,
191
+ FormlySelectModule,
192
+ i2.FormlyModule
193
+ ]
194
+ });
195
+ }
196
+ static {
197
+ this.ɵinj = i0.ɵɵngDeclareInjector({
198
+ minVersion: "12.0.0",
199
+ version: "22.2.2",
200
+ ngImport: i0,
201
+ type: FormlyMatMultiCheckboxModule,
202
+ imports: [
203
+ CommonModule,
204
+ ReactiveFormsModule,
205
+ MatCheckboxModule,
206
+ FormlyMatFormFieldModule,
207
+ FormlySelectModule,
208
+ FormlyModule.forChild(withFormlyFieldMultiCheckbox())
209
+ ]
210
+ });
211
+ }
212
+ };
213
+ i0.ɵɵngDeclareClassMetadata({
214
+ minVersion: "12.0.0",
215
+ version: "22.2.2",
216
+ ngImport: i0,
217
+ type: FormlyMatMultiCheckboxModule,
218
+ decorators: [{
219
+ type: NgModule,
220
+ args: [{
221
+ declarations: [FormlyFieldMultiCheckbox],
222
+ imports: [
223
+ CommonModule,
224
+ ReactiveFormsModule,
225
+ MatCheckboxModule,
226
+ FormlyMatFormFieldModule,
227
+ FormlySelectModule,
228
+ FormlyModule.forChild(withFormlyFieldMultiCheckbox())
229
+ ]
230
+ }]
231
+ }]
232
+ });
137
233
  export { FormlyFieldMultiCheckbox, FormlyMatMultiCheckboxModule, withFormlyFieldMultiCheckbox };
138
- //# sourceMappingURL=ngx-formly-material-multicheckbox.mjs.map
234
+
235
+ //# sourceMappingURL=ngx-formly-material-multicheckbox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-material-multicheckbox.mjs","sources":["../../../../src/ui/material/multicheckbox/src/multicheckbox.type.ts","../../../../src/ui/material/multicheckbox/src/multicheckbox.config.ts","../../../../src/ui/material/multicheckbox/src/multicheckbox.module.ts","../../../../src/ui/material/multicheckbox/src/ngx-formly-material-multicheckbox.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewChildren, QueryList, Type } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\n\ninterface MultiCheckboxProps extends FormlyFieldProps {\n labelPosition?: 'before' | 'after';\n}\n\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\n type: 'multicheckbox' | Type<FormlyFieldMultiCheckbox>;\n}\n\n@Component({\n selector: 'formly-field-mat-multicheckbox',\n template: `\n @for (option of props.options | formlySelectOptions: field | async; track $index; let i = $index) {\n <mat-checkbox\n [id]=\"id + '_' + i\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [color]=\"props.color\"\n [labelPosition]=\"props.labelPosition\"\n [checked]=\"isChecked(option)\"\n [disabled]=\"formControl.disabled || option.disabled\"\n (change)=\"onChange(option.value, $event.checked)\"\n >\n {{ option.label }}\n </mat-checkbox>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n },\n standalone: false,\n})\nexport class FormlyFieldMultiCheckbox extends FieldType<FieldTypeConfig<MultiCheckboxProps>> {\n @ViewChildren(MatCheckbox) checkboxes!: QueryList<MatCheckbox>;\n\n override defaultOptions = {\n props: {\n hideFieldUnderline: true,\n floatLabel: 'always' as const,\n color: 'accent' as const, // workaround for https://github.com/angular/components/issues/18465\n },\n };\n\n onChange(value: any, checked: boolean) {\n this.formControl.markAsDirty();\n if (this.props.type === 'array') {\n this.formControl.patchValue(\n checked\n ? [...(this.formControl.value || []), value]\n : [...(this.formControl.value || [])].filter((o) => o !== value),\n );\n } else {\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\n }\n this.formControl.markAsTouched();\n }\n\n // TODO: find a solution to prevent scroll on focus\n override onContainerClick() {}\n\n isChecked(option: any) {\n const value = this.formControl.value;\n\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\n }\n}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldMultiCheckbox } from './multicheckbox.type';\n\nexport function withFormlyFieldMultiCheckbox(): ConfigOption {\n return {\n types: [\n {\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field'],\n },\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';\nimport { FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { FormlyFieldMultiCheckbox } from './multicheckbox.type';\nimport { withFormlyFieldMultiCheckbox } from './multicheckbox.config';\n\n@NgModule({\n declarations: [FormlyFieldMultiCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n\n MatCheckboxModule,\n\n FormlyMatFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldMultiCheckbox()),\n ],\n})\nexport class FormlyMatMultiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-formly-material-multicheckbox.mjs","names":[],"sources":["../../../../src/ui/material/multicheckbox/src/multicheckbox.type.ts","../../../../src/ui/material/multicheckbox/src/multicheckbox.config.ts","../../../../src/ui/material/multicheckbox/src/multicheckbox.module.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewChildren, QueryList, Type } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\n\ninterface MultiCheckboxProps extends FormlyFieldProps {\n labelPosition?: 'before' | 'after';\n}\n\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\n type: 'multicheckbox' | Type<FormlyFieldMultiCheckbox>;\n}\n\n@Component({\n selector: 'formly-field-mat-multicheckbox',\n template: `\n @for (option of props.options | formlySelectOptions: field | async; track $index; let i = $index) {\n <mat-checkbox\n [id]=\"id + '_' + i\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [color]=\"props.color\"\n [labelPosition]=\"props.labelPosition\"\n [checked]=\"isChecked(option)\"\n [disabled]=\"formControl.disabled || option.disabled\"\n (change)=\"onChange(option.value, $event.checked)\"\n >\n {{ option.label }}\n </mat-checkbox>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n },\n standalone: false,\n})\nexport class FormlyFieldMultiCheckbox extends FieldType<FieldTypeConfig<MultiCheckboxProps>> {\n @ViewChildren(MatCheckbox) checkboxes!: QueryList<MatCheckbox>;\n\n override defaultOptions = {\n props: {\n hideFieldUnderline: true,\n floatLabel: 'always' as const,\n color: 'accent' as const, // workaround for https://github.com/angular/components/issues/18465\n },\n };\n\n onChange(value: any, checked: boolean) {\n this.formControl.markAsDirty();\n if (this.props.type === 'array') {\n this.formControl.patchValue(\n checked\n ? [...(this.formControl.value || []), value]\n : [...(this.formControl.value || [])].filter((o) => o !== value),\n );\n } else {\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\n }\n this.formControl.markAsTouched();\n }\n\n // TODO: find a solution to prevent scroll on focus\n override onContainerClick() {}\n\n isChecked(option: any) {\n const value = this.formControl.value;\n\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\n }\n}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldMultiCheckbox } from './multicheckbox.type';\n\nexport function withFormlyFieldMultiCheckbox(): ConfigOption {\n return {\n types: [\n {\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field'],\n },\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';\nimport { FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { FormlyFieldMultiCheckbox } from './multicheckbox.type';\nimport { withFormlyFieldMultiCheckbox } from './multicheckbox.config';\n\n@NgModule({\n declarations: [FormlyFieldMultiCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n\n MatCheckboxModule,\n\n FormlyMatFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldMultiCheckbox()),\n ],\n})\nexport class FormlyMatMultiCheckboxModule {}\n"],"mappings":"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"}