@ngx-formly/material 6.3.12 → 7.0.0-alpha.1

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 (228) hide show
  1. package/README.md +1 -0
  2. package/checkbox/checkbox.config.d.ts +2 -0
  3. package/checkbox/checkbox.type.d.ts +1 -1
  4. package/checkbox/public_api.d.ts +1 -0
  5. package/datepicker/datepicker.config.d.ts +2 -0
  6. package/datepicker/datepicker.type.d.ts +1 -1
  7. package/datepicker/public_api.d.ts +1 -0
  8. package/esm2022/checkbox/checkbox.config.mjs +17 -0
  9. package/esm2022/checkbox/checkbox.module.mjs +36 -0
  10. package/esm2022/checkbox/checkbox.type.mjs +113 -0
  11. package/esm2022/checkbox/public_api.mjs +4 -0
  12. package/esm2022/datepicker/datepicker.config.mjs +13 -0
  13. package/esm2022/datepicker/datepicker.module.mjs +40 -0
  14. package/esm2022/datepicker/datepicker.type.mjs +153 -0
  15. package/esm2022/datepicker/public_api.mjs +4 -0
  16. package/esm2022/form-field/field.type.mjs +142 -0
  17. package/esm2022/form-field/form-field.config.mjs +12 -0
  18. package/esm2022/form-field/form-field.module.mjs +23 -0
  19. package/esm2022/form-field/form-field.wrapper.mjs +159 -0
  20. package/esm2022/form-field/public_api.mjs +4 -0
  21. package/esm2022/input/input.config.mjs +32 -0
  22. package/esm2022/input/input.module.mjs +36 -0
  23. package/{esm2020 → esm2022}/input/input.type.mjs +8 -8
  24. package/esm2022/input/public_api.mjs +4 -0
  25. package/esm2022/lib/material.config.mjs +19 -0
  26. package/esm2022/lib/ui-material.mjs +4 -0
  27. package/esm2022/lib/ui-material.module.mjs +41 -0
  28. package/esm2022/multicheckbox/multicheckbox.config.mjs +13 -0
  29. package/esm2022/multicheckbox/multicheckbox.module.mjs +40 -0
  30. package/esm2022/multicheckbox/multicheckbox.type.mjs +85 -0
  31. package/esm2022/multicheckbox/public_api.mjs +4 -0
  32. package/esm2022/native-select/native-select.config.mjs +13 -0
  33. package/esm2022/native-select/native-select.module.mjs +40 -0
  34. package/{esm2020 → esm2022}/native-select/native-select.type.mjs +11 -11
  35. package/esm2022/native-select/public_api.mjs +4 -0
  36. package/esm2022/radio/public_api.mjs +4 -0
  37. package/esm2022/radio/radio.config.mjs +13 -0
  38. package/esm2022/radio/radio.module.mjs +40 -0
  39. package/esm2022/radio/radio.type.mjs +89 -0
  40. package/esm2022/select/public_api.mjs +4 -0
  41. package/esm2022/select/select.config.mjs +14 -0
  42. package/esm2022/select/select.module.mjs +44 -0
  43. package/esm2022/select/select.type.mjs +164 -0
  44. package/esm2022/slider/public_api.mjs +4 -0
  45. package/esm2022/slider/slider.config.mjs +13 -0
  46. package/esm2022/slider/slider.module.mjs +43 -0
  47. package/esm2022/slider/slider.type.mjs +67 -0
  48. package/esm2022/textarea/public_api.mjs +4 -0
  49. package/esm2022/textarea/textarea.config.mjs +13 -0
  50. package/esm2022/textarea/textarea.module.mjs +36 -0
  51. package/{esm2020 → esm2022}/textarea/textarea.type.mjs +12 -12
  52. package/esm2022/toggle/public_api.mjs +4 -0
  53. package/esm2022/toggle/toggle.config.mjs +13 -0
  54. package/esm2022/toggle/toggle.module.mjs +36 -0
  55. package/{esm2020 → esm2022}/toggle/toggle.type.mjs +8 -8
  56. package/{fesm2015 → fesm2022}/ngx-formly-material-checkbox.mjs +41 -51
  57. package/fesm2022/ngx-formly-material-checkbox.mjs.map +1 -0
  58. package/{fesm2020 → fesm2022}/ngx-formly-material-datepicker.mjs +38 -44
  59. package/fesm2022/ngx-formly-material-datepicker.mjs.map +1 -0
  60. package/{fesm2020 → fesm2022}/ngx-formly-material-form-field.mjs +35 -50
  61. package/fesm2022/ngx-formly-material-form-field.mjs.map +1 -0
  62. package/fesm2022/ngx-formly-material-input.mjs +151 -0
  63. package/fesm2022/ngx-formly-material-input.mjs.map +1 -0
  64. package/{fesm2020 → fesm2022}/ngx-formly-material-multicheckbox.mjs +37 -43
  65. package/fesm2022/ngx-formly-material-multicheckbox.mjs.map +1 -0
  66. package/fesm2022/ngx-formly-material-native-select.mjs +128 -0
  67. package/fesm2022/ngx-formly-material-native-select.mjs.map +1 -0
  68. package/fesm2022/ngx-formly-material-radio.mjs +140 -0
  69. package/fesm2022/ngx-formly-material-radio.mjs.map +1 -0
  70. package/{fesm2020 → fesm2022}/ngx-formly-material-select.mjs +44 -51
  71. package/fesm2022/ngx-formly-material-select.mjs.map +1 -0
  72. package/fesm2022/ngx-formly-material-slider.mjs +123 -0
  73. package/fesm2022/ngx-formly-material-slider.mjs.map +1 -0
  74. package/fesm2022/ngx-formly-material-textarea.mjs +125 -0
  75. package/fesm2022/ngx-formly-material-textarea.mjs.map +1 -0
  76. package/fesm2022/ngx-formly-material-toggle.mjs +111 -0
  77. package/fesm2022/ngx-formly-material-toggle.mjs.map +1 -0
  78. package/fesm2022/ngx-formly-material.mjs +65 -0
  79. package/fesm2022/ngx-formly-material.mjs.map +1 -0
  80. package/form-field/field.type.d.ts +1 -1
  81. package/form-field/form-field.config.d.ts +2 -0
  82. package/form-field/form-field.wrapper.d.ts +1 -1
  83. package/form-field/public_api.d.ts +1 -0
  84. package/input/input.config.d.ts +2 -0
  85. package/input/input.type.d.ts +1 -1
  86. package/input/public_api.d.ts +1 -0
  87. package/lib/material.config.d.ts +1 -0
  88. package/lib/ui-material.d.ts +1 -0
  89. package/multicheckbox/multicheckbox.config.d.ts +2 -0
  90. package/multicheckbox/multicheckbox.type.d.ts +1 -1
  91. package/multicheckbox/public_api.d.ts +1 -0
  92. package/native-select/native-select.config.d.ts +2 -0
  93. package/native-select/native-select.type.d.ts +1 -1
  94. package/native-select/public_api.d.ts +1 -0
  95. package/package.json +53 -81
  96. package/radio/public_api.d.ts +1 -0
  97. package/radio/radio.config.d.ts +2 -0
  98. package/radio/radio.type.d.ts +1 -1
  99. package/select/public_api.d.ts +1 -0
  100. package/select/select.config.d.ts +2 -0
  101. package/select/select.type.d.ts +1 -1
  102. package/slider/public_api.d.ts +3 -4
  103. package/slider/slider.config.d.ts +2 -0
  104. package/slider/slider.module.d.ts +7 -9
  105. package/slider/slider.type.d.ts +5 -15
  106. package/textarea/public_api.d.ts +1 -0
  107. package/textarea/textarea.config.d.ts +2 -0
  108. package/textarea/textarea.type.d.ts +1 -1
  109. package/toggle/public_api.d.ts +1 -0
  110. package/toggle/toggle.config.d.ts +2 -0
  111. package/toggle/toggle.type.d.ts +1 -1
  112. package/checkbox/package.json +0 -10
  113. package/datepicker/package.json +0 -10
  114. package/esm2020/checkbox/checkbox.module.mjs +0 -61
  115. package/esm2020/checkbox/checkbox.type.mjs +0 -113
  116. package/esm2020/checkbox/public_api.mjs +0 -3
  117. package/esm2020/datepicker/datepicker.module.mjs +0 -57
  118. package/esm2020/datepicker/datepicker.type.mjs +0 -153
  119. package/esm2020/datepicker/public_api.mjs +0 -3
  120. package/esm2020/form-field/field.type.mjs +0 -142
  121. package/esm2020/form-field/form-field.module.mjs +0 -48
  122. package/esm2020/form-field/form-field.wrapper.mjs +0 -159
  123. package/esm2020/form-field/public_api.mjs +0 -3
  124. package/esm2020/input/input.module.mjs +0 -91
  125. package/esm2020/input/public_api.mjs +0 -3
  126. package/esm2020/lib/ui-material.mjs +0 -3
  127. package/esm2020/lib/ui-material.module.mjs +0 -43
  128. package/esm2020/multicheckbox/multicheckbox.module.mjs +0 -57
  129. package/esm2020/multicheckbox/multicheckbox.type.mjs +0 -85
  130. package/esm2020/multicheckbox/public_api.mjs +0 -3
  131. package/esm2020/native-select/native-select.module.mjs +0 -57
  132. package/esm2020/native-select/public_api.mjs +0 -3
  133. package/esm2020/radio/public_api.mjs +0 -3
  134. package/esm2020/radio/radio.module.mjs +0 -57
  135. package/esm2020/radio/radio.type.mjs +0 -89
  136. package/esm2020/select/public_api.mjs +0 -3
  137. package/esm2020/select/select.module.mjs +0 -63
  138. package/esm2020/select/select.type.mjs +0 -164
  139. package/esm2020/slider/public_api.mjs +0 -7
  140. package/esm2020/slider/slider-input.mjs +0 -466
  141. package/esm2020/slider/slider-interface.mjs +0 -15
  142. package/esm2020/slider/slider-mdc.type.mjs +0 -97
  143. package/esm2020/slider/slider.module.mjs +0 -65
  144. package/esm2020/slider/slider.type.mjs +0 -80
  145. package/esm2020/textarea/public_api.mjs +0 -3
  146. package/esm2020/textarea/textarea.module.mjs +0 -53
  147. package/esm2020/toggle/public_api.mjs +0 -3
  148. package/esm2020/toggle/toggle.module.mjs +0 -53
  149. package/fesm2015/ngx-formly-material-checkbox.mjs.map +0 -1
  150. package/fesm2015/ngx-formly-material-datepicker.mjs +0 -214
  151. package/fesm2015/ngx-formly-material-datepicker.mjs.map +0 -1
  152. package/fesm2015/ngx-formly-material-form-field.mjs +0 -351
  153. package/fesm2015/ngx-formly-material-form-field.mjs.map +0 -1
  154. package/fesm2015/ngx-formly-material-input.mjs +0 -176
  155. package/fesm2015/ngx-formly-material-input.mjs.map +0 -1
  156. package/fesm2015/ngx-formly-material-multicheckbox.mjs +0 -143
  157. package/fesm2015/ngx-formly-material-multicheckbox.mjs.map +0 -1
  158. package/fesm2015/ngx-formly-material-native-select.mjs +0 -134
  159. package/fesm2015/ngx-formly-material-native-select.mjs.map +0 -1
  160. package/fesm2015/ngx-formly-material-radio.mjs +0 -146
  161. package/fesm2015/ngx-formly-material-radio.mjs.map +0 -1
  162. package/fesm2015/ngx-formly-material-select.mjs +0 -230
  163. package/fesm2015/ngx-formly-material-select.mjs.map +0 -1
  164. package/fesm2015/ngx-formly-material-slider.mjs +0 -712
  165. package/fesm2015/ngx-formly-material-slider.mjs.map +0 -1
  166. package/fesm2015/ngx-formly-material-textarea.mjs +0 -131
  167. package/fesm2015/ngx-formly-material-textarea.mjs.map +0 -1
  168. package/fesm2015/ngx-formly-material-toggle.mjs +0 -117
  169. package/fesm2015/ngx-formly-material-toggle.mjs.map +0 -1
  170. package/fesm2015/ngx-formly-material.mjs +0 -55
  171. package/fesm2015/ngx-formly-material.mjs.map +0 -1
  172. package/fesm2020/ngx-formly-material-checkbox.mjs +0 -175
  173. package/fesm2020/ngx-formly-material-checkbox.mjs.map +0 -1
  174. package/fesm2020/ngx-formly-material-datepicker.mjs.map +0 -1
  175. package/fesm2020/ngx-formly-material-form-field.mjs.map +0 -1
  176. package/fesm2020/ngx-formly-material-input.mjs +0 -176
  177. package/fesm2020/ngx-formly-material-input.mjs.map +0 -1
  178. package/fesm2020/ngx-formly-material-multicheckbox.mjs.map +0 -1
  179. package/fesm2020/ngx-formly-material-native-select.mjs +0 -134
  180. package/fesm2020/ngx-formly-material-native-select.mjs.map +0 -1
  181. package/fesm2020/ngx-formly-material-radio.mjs +0 -146
  182. package/fesm2020/ngx-formly-material-radio.mjs.map +0 -1
  183. package/fesm2020/ngx-formly-material-select.mjs.map +0 -1
  184. package/fesm2020/ngx-formly-material-slider.mjs +0 -708
  185. package/fesm2020/ngx-formly-material-slider.mjs.map +0 -1
  186. package/fesm2020/ngx-formly-material-textarea.mjs +0 -131
  187. package/fesm2020/ngx-formly-material-textarea.mjs.map +0 -1
  188. package/fesm2020/ngx-formly-material-toggle.mjs +0 -117
  189. package/fesm2020/ngx-formly-material-toggle.mjs.map +0 -1
  190. package/fesm2020/ngx-formly-material.mjs +0 -55
  191. package/fesm2020/ngx-formly-material.mjs.map +0 -1
  192. package/form-field/package.json +0 -10
  193. package/input/package.json +0 -10
  194. package/multicheckbox/package.json +0 -10
  195. package/native-select/package.json +0 -10
  196. package/radio/package.json +0 -10
  197. package/select/package.json +0 -10
  198. package/slider/package.json +0 -10
  199. package/slider/slider-input.d.ts +0 -180
  200. package/slider/slider-interface.d.ts +0 -138
  201. package/slider/slider-mdc.type.d.ts +0 -13
  202. package/textarea/package.json +0 -10
  203. package/toggle/package.json +0 -10
  204. /package/checkbox/{ngx-formly-material-checkbox.d.ts → index.d.ts} +0 -0
  205. /package/datepicker/{ngx-formly-material-datepicker.d.ts → index.d.ts} +0 -0
  206. /package/{esm2020 → esm2022}/checkbox/ngx-formly-material-checkbox.mjs +0 -0
  207. /package/{esm2020 → esm2022}/datepicker/ngx-formly-material-datepicker.mjs +0 -0
  208. /package/{esm2020 → esm2022}/form-field/ngx-formly-material-form-field.mjs +0 -0
  209. /package/{esm2020 → esm2022}/input/ngx-formly-material-input.mjs +0 -0
  210. /package/{esm2020 → esm2022}/multicheckbox/ngx-formly-material-multicheckbox.mjs +0 -0
  211. /package/{esm2020 → esm2022}/native-select/ngx-formly-material-native-select.mjs +0 -0
  212. /package/{esm2020 → esm2022}/ngx-formly-material.mjs +0 -0
  213. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  214. /package/{esm2020 → esm2022}/radio/ngx-formly-material-radio.mjs +0 -0
  215. /package/{esm2020 → esm2022}/select/ngx-formly-material-select.mjs +0 -0
  216. /package/{esm2020 → esm2022}/slider/ngx-formly-material-slider.mjs +0 -0
  217. /package/{esm2020 → esm2022}/textarea/ngx-formly-material-textarea.mjs +0 -0
  218. /package/{esm2020 → esm2022}/toggle/ngx-formly-material-toggle.mjs +0 -0
  219. /package/form-field/{ngx-formly-material-form-field.d.ts → index.d.ts} +0 -0
  220. /package/{ngx-formly-material.d.ts → index.d.ts} +0 -0
  221. /package/input/{ngx-formly-material-input.d.ts → index.d.ts} +0 -0
  222. /package/multicheckbox/{ngx-formly-material-multicheckbox.d.ts → index.d.ts} +0 -0
  223. /package/native-select/{ngx-formly-material-native-select.d.ts → index.d.ts} +0 -0
  224. /package/radio/{ngx-formly-material-radio.d.ts → index.d.ts} +0 -0
  225. /package/select/{ngx-formly-material-select.d.ts → index.d.ts} +0 -0
  226. /package/slider/{ngx-formly-material-slider.d.ts → index.d.ts} +0 -0
  227. /package/textarea/{ngx-formly-material-textarea.d.ts → index.d.ts} +0 -0
  228. /package/toggle/{ngx-formly-material-toggle.d.ts → index.d.ts} +0 -0
@@ -1,230 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
3
- import * as i5 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i3 from '@angular/forms';
6
- import { ReactiveFormsModule } from '@angular/forms';
7
- import * as i4 from '@ngx-formly/core';
8
- import { ɵobserve, FormlyModule } from '@ngx-formly/core';
9
- import * as i6 from '@ngx-formly/core/select';
10
- import { FormlySelectModule } from '@ngx-formly/core/select';
11
- import { FieldType, FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';
12
- import * as i2 from '@angular/material/select';
13
- import { MatSelect, MatSelectModule } from '@angular/material/select';
14
- import * as i1 from '@angular/material/core';
15
- import { MatPseudoCheckboxModule } from '@angular/material/core';
16
-
17
- class FormlyFieldSelect extends FieldType {
18
- constructor() {
19
- super(...arguments);
20
- this.defaultOptions = {
21
- props: {
22
- compareWith(o1, o2) {
23
- return o1 === o2;
24
- },
25
- },
26
- };
27
- }
28
- set select(select) {
29
- ɵobserve(select, ['_parentFormField', '_textField'], ({ currentValue }) => {
30
- if (currentValue) {
31
- select._preferredOverlayOrigin = select._parentFormField.getConnectedOverlayOrigin();
32
- }
33
- });
34
- }
35
- getSelectAllState(options) {
36
- if (this.empty || this.value.length === 0) {
37
- return null;
38
- }
39
- return this.value.length !== this.getSelectAllValue(options).length ? 'indeterminate' : 'checked';
40
- }
41
- toggleSelectAll(options) {
42
- const selectAllValue = this.getSelectAllValue(options);
43
- this.formControl.markAsDirty();
44
- this.formControl.setValue(!this.value || this.value.length !== selectAllValue.length ? selectAllValue : []);
45
- }
46
- change($event) {
47
- var _a, _b;
48
- (_b = (_a = this.props).change) === null || _b === void 0 ? void 0 : _b.call(_a, this.field, $event);
49
- }
50
- _getAriaLabelledby() {
51
- var _a, _b;
52
- if ((_a = this.props.attributes) === null || _a === void 0 ? void 0 : _a['aria-labelledby']) {
53
- return this.props.attributes['aria-labelledby'];
54
- }
55
- return (_b = this.formField) === null || _b === void 0 ? void 0 : _b._labelId;
56
- }
57
- _getAriaLabel() {
58
- var _a;
59
- return (_a = this.props.attributes) === null || _a === void 0 ? void 0 : _a['aria-label'];
60
- }
61
- getSelectAllValue(options) {
62
- if (!this.selectAllValue || options !== this.selectAllValue.options) {
63
- const flatOptions = [];
64
- options.forEach((o) => (o.group ? flatOptions.push(...o.group) : flatOptions.push(o)));
65
- this.selectAllValue = {
66
- options,
67
- value: flatOptions.filter((o) => !o.disabled).map((o) => o.value),
68
- };
69
- }
70
- return this.selectAllValue.value;
71
- }
72
- }
73
- FormlyFieldSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyFieldSelect, deps: null, target: i0.ɵɵFactoryTarget.Component });
74
- FormlyFieldSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FormlyFieldSelect, selector: "formly-field-mat-select", viewQueries: [{ propertyName: "select", first: true, predicate: MatSelect, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
75
- <ng-template #selectAll let-selectOptions="selectOptions">
76
- <mat-option (click)="toggleSelectAll(selectOptions)">
77
- <mat-pseudo-checkbox class="mat-option-pseudo-checkbox" [state]="getSelectAllState(selectOptions)">
78
- </mat-pseudo-checkbox>
79
- {{ props.selectAllOption }}
80
- </mat-option>
81
- </ng-template>
82
-
83
- <mat-select
84
- [id]="id"
85
- [formControl]="formControl"
86
- [formlyAttributes]="field"
87
- [placeholder]="props.placeholder"
88
- [tabIndex]="props.tabindex"
89
- [required]="required"
90
- [compareWith]="props.compareWith"
91
- [multiple]="props.multiple"
92
- (selectionChange)="change($event)"
93
- [errorStateMatcher]="errorStateMatcher"
94
- [aria-label]="_getAriaLabel()"
95
- [aria-labelledby]="_getAriaLabelledby()"
96
- [disableOptionCentering]="props.disableOptionCentering"
97
- [typeaheadDebounceInterval]="props.typeaheadDebounceInterval"
98
- [panelClass]="props.panelClass"
99
- >
100
- <ng-container *ngIf="props.options | formlySelectOptions : field | async as selectOptions">
101
- <ng-container
102
- *ngIf="props.multiple && props.selectAllOption"
103
- [ngTemplateOutlet]="selectAll"
104
- [ngTemplateOutletContext]="{ selectOptions: selectOptions }"
105
- >
106
- </ng-container>
107
- <ng-container *ngFor="let item of selectOptions">
108
- <mat-optgroup *ngIf="item.group" [label]="item.label">
109
- <mat-option *ngFor="let child of item.group" [value]="child.value" [disabled]="child.disabled">
110
- {{ child.label }}
111
- </mat-option>
112
- </mat-optgroup>
113
- <mat-option *ngIf="!item.group" [value]="item.value" [disabled]="item.disabled">{{ item.label }}</mat-option>
114
- </ng-container>
115
- </ng-container>
116
- </mat-select>
117
- `, isInline: true, components: [{ type: i1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i1.MatPseudoCheckbox, selector: "mat-pseudo-checkbox", inputs: ["state", "disabled"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i1.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5.AsyncPipe, "formlySelectOptions": i6.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyFieldSelect, decorators: [{
119
- type: Component,
120
- args: [{
121
- selector: 'formly-field-mat-select',
122
- template: `
123
- <ng-template #selectAll let-selectOptions="selectOptions">
124
- <mat-option (click)="toggleSelectAll(selectOptions)">
125
- <mat-pseudo-checkbox class="mat-option-pseudo-checkbox" [state]="getSelectAllState(selectOptions)">
126
- </mat-pseudo-checkbox>
127
- {{ props.selectAllOption }}
128
- </mat-option>
129
- </ng-template>
130
-
131
- <mat-select
132
- [id]="id"
133
- [formControl]="formControl"
134
- [formlyAttributes]="field"
135
- [placeholder]="props.placeholder"
136
- [tabIndex]="props.tabindex"
137
- [required]="required"
138
- [compareWith]="props.compareWith"
139
- [multiple]="props.multiple"
140
- (selectionChange)="change($event)"
141
- [errorStateMatcher]="errorStateMatcher"
142
- [aria-label]="_getAriaLabel()"
143
- [aria-labelledby]="_getAriaLabelledby()"
144
- [disableOptionCentering]="props.disableOptionCentering"
145
- [typeaheadDebounceInterval]="props.typeaheadDebounceInterval"
146
- [panelClass]="props.panelClass"
147
- >
148
- <ng-container *ngIf="props.options | formlySelectOptions : field | async as selectOptions">
149
- <ng-container
150
- *ngIf="props.multiple && props.selectAllOption"
151
- [ngTemplateOutlet]="selectAll"
152
- [ngTemplateOutletContext]="{ selectOptions: selectOptions }"
153
- >
154
- </ng-container>
155
- <ng-container *ngFor="let item of selectOptions">
156
- <mat-optgroup *ngIf="item.group" [label]="item.label">
157
- <mat-option *ngFor="let child of item.group" [value]="child.value" [disabled]="child.disabled">
158
- {{ child.label }}
159
- </mat-option>
160
- </mat-optgroup>
161
- <mat-option *ngIf="!item.group" [value]="item.value" [disabled]="item.disabled">{{ item.label }}</mat-option>
162
- </ng-container>
163
- </ng-container>
164
- </mat-select>
165
- `,
166
- changeDetection: ChangeDetectionStrategy.OnPush,
167
- }]
168
- }], propDecorators: { select: [{
169
- type: ViewChild,
170
- args: [MatSelect, { static: true }]
171
- }] } });
172
-
173
- class FormlyMatSelectModule {
174
- }
175
- FormlyMatSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyMatSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
176
- FormlyMatSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyMatSelectModule, declarations: [FormlyFieldSelect], imports: [CommonModule,
177
- ReactiveFormsModule,
178
- MatSelectModule,
179
- MatPseudoCheckboxModule,
180
- FormlyMatFormFieldModule,
181
- FormlySelectModule, i4.FormlyModule] });
182
- FormlyMatSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyMatSelectModule, imports: [[
183
- CommonModule,
184
- ReactiveFormsModule,
185
- MatSelectModule,
186
- MatPseudoCheckboxModule,
187
- FormlyMatFormFieldModule,
188
- FormlySelectModule,
189
- FormlyModule.forChild({
190
- types: [
191
- {
192
- name: 'select',
193
- component: FormlyFieldSelect,
194
- wrappers: ['form-field'],
195
- },
196
- { name: 'enum', extends: 'select' },
197
- ],
198
- }),
199
- ]] });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyMatSelectModule, decorators: [{
201
- type: NgModule,
202
- args: [{
203
- declarations: [FormlyFieldSelect],
204
- imports: [
205
- CommonModule,
206
- ReactiveFormsModule,
207
- MatSelectModule,
208
- MatPseudoCheckboxModule,
209
- FormlyMatFormFieldModule,
210
- FormlySelectModule,
211
- FormlyModule.forChild({
212
- types: [
213
- {
214
- name: 'select',
215
- component: FormlyFieldSelect,
216
- wrappers: ['form-field'],
217
- },
218
- { name: 'enum', extends: 'select' },
219
- ],
220
- }),
221
- ],
222
- }]
223
- }] });
224
-
225
- /**
226
- * Generated bundle index. Do not edit.
227
- */
228
-
229
- export { FormlyFieldSelect, FormlyMatSelectModule };
230
- //# sourceMappingURL=ngx-formly-material-select.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-formly-material-select.mjs","sources":["../../../../src/ui/material/select/src/select.type.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 } from '@ngx-formly/core';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\nimport { ɵobserve as observe } from '@ngx-formly/core';\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}\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 >\n <ng-container *ngIf=\"props.options | formlySelectOptions : field | async as selectOptions\">\n <ng-container\n *ngIf=\"props.multiple && props.selectAllOption\"\n [ngTemplateOutlet]=\"selectAll\"\n [ngTemplateOutletContext]=\"{ selectOptions: selectOptions }\"\n >\n </ng-container>\n <ng-container *ngFor=\"let item of selectOptions\">\n <mat-optgroup *ngIf=\"item.group\" [label]=\"item.label\">\n <mat-option *ngFor=\"let child of item.group\" [value]=\"child.value\" [disabled]=\"child.disabled\">\n {{ child.label }}\n </mat-option>\n </mat-optgroup>\n <mat-option *ngIf=\"!item.group\" [value]=\"item.value\" [disabled]=\"item.disabled\">{{ item.label }}</mat-option>\n </ng-container>\n </ng-container>\n </mat-select>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\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 { 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';\n\n@NgModule({\n declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatPseudoCheckboxModule,\n\n FormlyMatFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n }),\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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"}