@ngx-formly/material 6.0.0-next.9 → 6.0.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 (108) hide show
  1. package/README.md +4 -3
  2. package/checkbox/checkbox.type.d.ts +13 -6
  3. package/checkbox/public_api.d.ts +1 -1
  4. package/datepicker/datepicker.type.d.ts +37 -8
  5. package/datepicker/public_api.d.ts +1 -1
  6. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  7. package/esm2020/checkbox/checkbox.type.mjs +19 -20
  8. package/esm2020/checkbox/public_api.mjs +1 -1
  9. package/esm2020/datepicker/datepicker.module.mjs +5 -5
  10. package/esm2020/datepicker/datepicker.type.mjs +68 -50
  11. package/esm2020/datepicker/public_api.mjs +1 -1
  12. package/esm2020/form-field/field.type.mjs +19 -21
  13. package/esm2020/form-field/form-field.module.mjs +5 -5
  14. package/esm2020/form-field/form-field.wrapper.mjs +29 -29
  15. package/esm2020/form-field/public_api.mjs +1 -1
  16. package/esm2020/input/input.module.mjs +9 -9
  17. package/esm2020/input/input.type.mjs +17 -17
  18. package/esm2020/input/public_api.mjs +1 -1
  19. package/esm2020/lib/ui-material.module.mjs +5 -5
  20. package/esm2020/multicheckbox/multicheckbox.module.mjs +5 -5
  21. package/esm2020/multicheckbox/multicheckbox.type.mjs +18 -17
  22. package/esm2020/multicheckbox/public_api.mjs +1 -1
  23. package/esm2020/native-select/native-select.module.mjs +5 -5
  24. package/esm2020/native-select/native-select.type.mjs +33 -49
  25. package/esm2020/native-select/public_api.mjs +1 -1
  26. package/esm2020/radio/public_api.mjs +1 -1
  27. package/esm2020/radio/radio.module.mjs +5 -5
  28. package/esm2020/radio/radio.type.mjs +15 -15
  29. package/esm2020/select/public_api.mjs +1 -1
  30. package/esm2020/select/select.module.mjs +5 -5
  31. package/esm2020/select/select.type.mjs +28 -28
  32. package/esm2020/slider/public_api.mjs +1 -1
  33. package/esm2020/slider/slider.module.mjs +5 -5
  34. package/esm2020/slider/slider.type.mjs +31 -31
  35. package/esm2020/textarea/public_api.mjs +1 -1
  36. package/esm2020/textarea/textarea.module.mjs +5 -5
  37. package/esm2020/textarea/textarea.type.mjs +23 -23
  38. package/esm2020/toggle/public_api.mjs +1 -1
  39. package/esm2020/toggle/toggle.module.mjs +5 -5
  40. package/esm2020/toggle/toggle.type.mjs +13 -13
  41. package/fesm2015/ngx-formly-material-checkbox.mjs +22 -23
  42. package/fesm2015/ngx-formly-material-checkbox.mjs.map +1 -1
  43. package/fesm2015/ngx-formly-material-datepicker.mjs +70 -52
  44. package/fesm2015/ngx-formly-material-datepicker.mjs.map +1 -1
  45. package/fesm2015/ngx-formly-material-form-field.mjs +51 -53
  46. package/fesm2015/ngx-formly-material-form-field.mjs.map +1 -1
  47. package/fesm2015/ngx-formly-material-input.mjs +24 -24
  48. package/fesm2015/ngx-formly-material-input.mjs.map +1 -1
  49. package/fesm2015/ngx-formly-material-multicheckbox.mjs +20 -19
  50. package/fesm2015/ngx-formly-material-multicheckbox.mjs.map +1 -1
  51. package/fesm2015/ngx-formly-material-native-select.mjs +36 -52
  52. package/fesm2015/ngx-formly-material-native-select.mjs.map +1 -1
  53. package/fesm2015/ngx-formly-material-radio.mjs +18 -18
  54. package/fesm2015/ngx-formly-material-radio.mjs.map +1 -1
  55. package/fesm2015/ngx-formly-material-select.mjs +31 -31
  56. package/fesm2015/ngx-formly-material-select.mjs.map +1 -1
  57. package/fesm2015/ngx-formly-material-slider.mjs +34 -34
  58. package/fesm2015/ngx-formly-material-slider.mjs.map +1 -1
  59. package/fesm2015/ngx-formly-material-textarea.mjs +26 -26
  60. package/fesm2015/ngx-formly-material-textarea.mjs.map +1 -1
  61. package/fesm2015/ngx-formly-material-toggle.mjs +16 -16
  62. package/fesm2015/ngx-formly-material-toggle.mjs.map +1 -1
  63. package/fesm2015/ngx-formly-material.mjs +4 -4
  64. package/fesm2015/ngx-formly-material.mjs.map +1 -1
  65. package/fesm2020/ngx-formly-material-checkbox.mjs +22 -23
  66. package/fesm2020/ngx-formly-material-checkbox.mjs.map +1 -1
  67. package/fesm2020/ngx-formly-material-datepicker.mjs +70 -52
  68. package/fesm2020/ngx-formly-material-datepicker.mjs.map +1 -1
  69. package/fesm2020/ngx-formly-material-form-field.mjs +50 -52
  70. package/fesm2020/ngx-formly-material-form-field.mjs.map +1 -1
  71. package/fesm2020/ngx-formly-material-input.mjs +24 -24
  72. package/fesm2020/ngx-formly-material-input.mjs.map +1 -1
  73. package/fesm2020/ngx-formly-material-multicheckbox.mjs +20 -19
  74. package/fesm2020/ngx-formly-material-multicheckbox.mjs.map +1 -1
  75. package/fesm2020/ngx-formly-material-native-select.mjs +36 -52
  76. package/fesm2020/ngx-formly-material-native-select.mjs.map +1 -1
  77. package/fesm2020/ngx-formly-material-radio.mjs +18 -18
  78. package/fesm2020/ngx-formly-material-radio.mjs.map +1 -1
  79. package/fesm2020/ngx-formly-material-select.mjs +31 -31
  80. package/fesm2020/ngx-formly-material-select.mjs.map +1 -1
  81. package/fesm2020/ngx-formly-material-slider.mjs +34 -34
  82. package/fesm2020/ngx-formly-material-slider.mjs.map +1 -1
  83. package/fesm2020/ngx-formly-material-textarea.mjs +26 -26
  84. package/fesm2020/ngx-formly-material-textarea.mjs.map +1 -1
  85. package/fesm2020/ngx-formly-material-toggle.mjs +16 -16
  86. package/fesm2020/ngx-formly-material-toggle.mjs.map +1 -1
  87. package/fesm2020/ngx-formly-material.mjs +4 -4
  88. package/fesm2020/ngx-formly-material.mjs.map +1 -1
  89. package/form-field/field.type.d.ts +6 -6
  90. package/form-field/form-field.wrapper.d.ts +4 -7
  91. package/form-field/public_api.d.ts +1 -1
  92. package/input/input.type.d.ts +10 -3
  93. package/input/public_api.d.ts +1 -1
  94. package/multicheckbox/multicheckbox.type.d.ts +12 -5
  95. package/multicheckbox/public_api.d.ts +1 -1
  96. package/native-select/native-select.type.d.ts +11 -3
  97. package/native-select/public_api.d.ts +1 -1
  98. package/package.json +2 -2
  99. package/radio/public_api.d.ts +1 -1
  100. package/radio/radio.type.d.ts +12 -5
  101. package/select/public_api.d.ts +1 -1
  102. package/select/select.type.d.ts +17 -4
  103. package/slider/public_api.d.ts +1 -1
  104. package/slider/slider.type.d.ts +20 -5
  105. package/textarea/public_api.d.ts +1 -1
  106. package/textarea/textarea.type.d.ts +14 -4
  107. package/toggle/public_api.d.ts +1 -1
  108. package/toggle/toggle.type.d.ts +12 -4
@@ -12,14 +12,17 @@ import * as i2 from '@angular/material/datepicker';
12
12
  import { MatDatepickerModule } from '@angular/material/datepicker';
13
13
 
14
14
  class FormlyFieldDatepicker extends FieldType {
15
- constructor(config) {
15
+ constructor(config, cdRef) {
16
16
  super();
17
17
  this.config = config;
18
+ this.cdRef = cdRef;
18
19
  this.defaultOptions = {
19
- templateOptions: {
20
+ props: {
20
21
  datepickerOptions: {
21
22
  startView: 'month',
22
23
  datepickerTogglePosition: 'suffix',
24
+ disabled: false,
25
+ opened: false,
23
26
  dateInput: () => { },
24
27
  dateChange: () => { },
25
28
  monthSelected: () => { },
@@ -32,11 +35,14 @@ class FormlyFieldDatepicker extends FieldType {
32
35
  this.options.detectChanges?.(this.field);
33
36
  }
34
37
  ngAfterViewInit() {
35
- this.to[this.to.datepickerOptions.datepickerTogglePosition] = this.datepickerToggle;
38
+ this.props[this.props.datepickerOptions.datepickerTogglePosition] = this.datepickerToggle;
39
+ ɵobserve(this.field, ['props', 'datepickerOptions', 'opened'], () => {
40
+ this.cdRef.detectChanges();
41
+ });
36
42
  // temporary fix for https://github.com/angular/components/issues/16761
37
43
  if (this.config.getValidatorMessage('matDatepickerParse')) {
38
44
  this.fieldErrorsObserver = ɵobserve(this.field, ['formControl', 'errors'], ({ currentValue }) => {
39
- if (currentValue.required && currentValue.matDatepickerParse) {
45
+ if (currentValue && currentValue.required && currentValue.matDatepickerParse) {
40
46
  const errors = Object.keys(currentValue)
41
47
  .sort((prop) => (prop === 'matDatepickerParse' ? -1 : 0))
42
48
  .reduce((errors, prop) => ({ ...errors, [prop]: currentValue[prop] }), {});
@@ -50,45 +56,51 @@ class FormlyFieldDatepicker extends FieldType {
50
56
  this.fieldErrorsObserver?.unsubscribe();
51
57
  }
52
58
  }
53
- FormlyFieldDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyFieldDatepicker, deps: [{ token: i1.FormlyConfig }], target: i0.ɵɵFactoryTarget.Component });
54
- FormlyFieldDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: FormlyFieldDatepicker, selector: "formly-field-mat-datepicker", viewQueries: [{ propertyName: "datepickerToggle", first: true, predicate: ["datepickerToggle"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
59
+ FormlyFieldDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyFieldDatepicker, deps: [{ token: i1.FormlyConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
60
+ FormlyFieldDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FormlyFieldDatepicker, selector: "formly-field-mat-datepicker", viewQueries: [{ propertyName: "datepickerToggle", first: true, predicate: ["datepickerToggle"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
55
61
  <input
56
62
  matInput
57
63
  [id]="id"
58
64
  [errorStateMatcher]="errorStateMatcher"
59
65
  [formControl]="formControl"
60
66
  [matDatepicker]="picker"
61
- [matDatepickerFilter]="to.datepickerOptions.filter"
62
- [max]="to.datepickerOptions.max"
63
- [min]="to.datepickerOptions.min"
67
+ [matDatepickerFilter]="props.datepickerOptions.filter"
68
+ [max]="props.datepickerOptions.max"
69
+ [min]="props.datepickerOptions.min"
64
70
  [formlyAttributes]="field"
65
- [placeholder]="to.placeholder"
66
- [tabindex]="to.tabindex"
67
- [readonly]="to.readonly"
71
+ [placeholder]="props.placeholder"
72
+ [tabindex]="props.tabindex"
73
+ [readonly]="props.readonly"
68
74
  [required]="required"
69
- (dateInput)="to.datepickerOptions.dateInput(field, $event)"
70
- (dateChange)="to.datepickerOptions.dateChange(field, $event)"
75
+ (dateInput)="props.datepickerOptions.dateInput(field, $event)"
76
+ (dateChange)="props.datepickerOptions.dateChange(field, $event)"
71
77
  />
72
78
  <ng-template #datepickerToggle>
73
- <mat-datepicker-toggle (click)="detectChanges()" [disabled]="to.disabled" [for]="picker"></mat-datepicker-toggle>
79
+ <mat-datepicker-toggle
80
+ (click)="detectChanges()"
81
+ [disabled]="props.disabled"
82
+ [for]="picker"
83
+ ></mat-datepicker-toggle>
74
84
  </ng-template>
75
85
  <mat-datepicker
76
86
  #picker
77
- [color]="to.color"
78
- [dateClass]="to.datepickerOptions.dateClass"
79
- [disabled]="to.datepickerOptions.disabled"
80
- [opened]="to.datepickerOptions.opened"
81
- [panelClass]="to.datepickerOptions.panelClass"
82
- [startAt]="to.datepickerOptions.startAt"
83
- [startView]="to.datepickerOptions.startView"
84
- [touchUi]="to.datepickerOptions.touchUi"
85
- [calendarHeaderComponent]="to.datepickerOptions.calendarHeaderComponent"
86
- (monthSelected)="to.datepickerOptions.monthSelected(field, $event, picker)"
87
- (yearSelected)="to.datepickerOptions.yearSelected(field, $event, picker)"
87
+ [color]="props.color"
88
+ [dateClass]="props.datepickerOptions.dateClass"
89
+ [disabled]="props.datepickerOptions.disabled"
90
+ [opened]="props.datepickerOptions.opened"
91
+ [panelClass]="props.datepickerOptions.panelClass"
92
+ [startAt]="props.datepickerOptions.startAt"
93
+ [startView]="props.datepickerOptions.startView"
94
+ [touchUi]="props.datepickerOptions.touchUi"
95
+ [calendarHeaderComponent]="props.datepickerOptions.calendarHeaderComponent"
96
+ (monthSelected)="props.datepickerOptions.monthSelected(field, $event, picker)"
97
+ (yearSelected)="props.datepickerOptions.yearSelected(field, $event, picker)"
98
+ (opened)="props.datepickerOptions.opened = true"
99
+ (closed)="props.datepickerOptions.opened = false"
88
100
  >
89
101
  </mat-datepicker>
90
102
  `, isInline: true, components: [{ type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyFieldDatepicker, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyFieldDatepicker, decorators: [{
92
104
  type: Component,
93
105
  args: [{
94
106
  selector: 'formly-field-mat-datepicker',
@@ -99,52 +111,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
99
111
  [errorStateMatcher]="errorStateMatcher"
100
112
  [formControl]="formControl"
101
113
  [matDatepicker]="picker"
102
- [matDatepickerFilter]="to.datepickerOptions.filter"
103
- [max]="to.datepickerOptions.max"
104
- [min]="to.datepickerOptions.min"
114
+ [matDatepickerFilter]="props.datepickerOptions.filter"
115
+ [max]="props.datepickerOptions.max"
116
+ [min]="props.datepickerOptions.min"
105
117
  [formlyAttributes]="field"
106
- [placeholder]="to.placeholder"
107
- [tabindex]="to.tabindex"
108
- [readonly]="to.readonly"
118
+ [placeholder]="props.placeholder"
119
+ [tabindex]="props.tabindex"
120
+ [readonly]="props.readonly"
109
121
  [required]="required"
110
- (dateInput)="to.datepickerOptions.dateInput(field, $event)"
111
- (dateChange)="to.datepickerOptions.dateChange(field, $event)"
122
+ (dateInput)="props.datepickerOptions.dateInput(field, $event)"
123
+ (dateChange)="props.datepickerOptions.dateChange(field, $event)"
112
124
  />
113
125
  <ng-template #datepickerToggle>
114
- <mat-datepicker-toggle (click)="detectChanges()" [disabled]="to.disabled" [for]="picker"></mat-datepicker-toggle>
126
+ <mat-datepicker-toggle
127
+ (click)="detectChanges()"
128
+ [disabled]="props.disabled"
129
+ [for]="picker"
130
+ ></mat-datepicker-toggle>
115
131
  </ng-template>
116
132
  <mat-datepicker
117
133
  #picker
118
- [color]="to.color"
119
- [dateClass]="to.datepickerOptions.dateClass"
120
- [disabled]="to.datepickerOptions.disabled"
121
- [opened]="to.datepickerOptions.opened"
122
- [panelClass]="to.datepickerOptions.panelClass"
123
- [startAt]="to.datepickerOptions.startAt"
124
- [startView]="to.datepickerOptions.startView"
125
- [touchUi]="to.datepickerOptions.touchUi"
126
- [calendarHeaderComponent]="to.datepickerOptions.calendarHeaderComponent"
127
- (monthSelected)="to.datepickerOptions.monthSelected(field, $event, picker)"
128
- (yearSelected)="to.datepickerOptions.yearSelected(field, $event, picker)"
134
+ [color]="props.color"
135
+ [dateClass]="props.datepickerOptions.dateClass"
136
+ [disabled]="props.datepickerOptions.disabled"
137
+ [opened]="props.datepickerOptions.opened"
138
+ [panelClass]="props.datepickerOptions.panelClass"
139
+ [startAt]="props.datepickerOptions.startAt"
140
+ [startView]="props.datepickerOptions.startView"
141
+ [touchUi]="props.datepickerOptions.touchUi"
142
+ [calendarHeaderComponent]="props.datepickerOptions.calendarHeaderComponent"
143
+ (monthSelected)="props.datepickerOptions.monthSelected(field, $event, picker)"
144
+ (yearSelected)="props.datepickerOptions.yearSelected(field, $event, picker)"
145
+ (opened)="props.datepickerOptions.opened = true"
146
+ (closed)="props.datepickerOptions.opened = false"
129
147
  >
130
148
  </mat-datepicker>
131
149
  `,
132
150
  changeDetection: ChangeDetectionStrategy.OnPush,
133
151
  }]
134
- }], ctorParameters: function () { return [{ type: i1.FormlyConfig }]; }, propDecorators: { datepickerToggle: [{
152
+ }], ctorParameters: function () { return [{ type: i1.FormlyConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { datepickerToggle: [{
135
153
  type: ViewChild,
136
154
  args: ['datepickerToggle', { static: true }]
137
155
  }] } });
138
156
 
139
157
  class FormlyMatDatepickerModule {
140
158
  }
141
- FormlyMatDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
142
- FormlyMatDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatDatepickerModule, declarations: [FormlyFieldDatepicker], imports: [CommonModule,
159
+ FormlyMatDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
160
+ FormlyMatDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatDatepickerModule, declarations: [FormlyFieldDatepicker], imports: [CommonModule,
143
161
  ReactiveFormsModule,
144
162
  MatInputModule,
145
163
  MatDatepickerModule,
146
164
  FormlyMatFormFieldModule, i1.FormlyModule] });
147
- FormlyMatDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatDatepickerModule, imports: [[
165
+ FormlyMatDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatDatepickerModule, imports: [[
148
166
  CommonModule,
149
167
  ReactiveFormsModule,
150
168
  MatInputModule,
@@ -160,7 +178,7 @@ FormlyMatDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0
160
178
  ],
161
179
  }),
162
180
  ]] });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatDatepickerModule, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatDatepickerModule, decorators: [{
164
182
  type: NgModule,
165
183
  args: [{
166
184
  declarations: [FormlyFieldDatepicker],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-material-datepicker.mjs","sources":["../../../../src/ui/material/datepicker/src/datepicker.type.ts","../../../../src/ui/material/datepicker/src/datepicker.module.ts","../../../../src/ui/material/datepicker/src/ngx-formly-material-datepicker.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewChild, AfterViewInit, OnDestroy, TemplateRef } from '@angular/core';\nimport { FieldTypeConfig, FormlyConfig, ɵobserve as observe } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material/form-field';\n\n@Component({\n selector: 'formly-field-mat-datepicker',\n template: `\n <input\n matInput\n [id]=\"id\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [formControl]=\"formControl\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"to.datepickerOptions.filter\"\n [max]=\"to.datepickerOptions.max\"\n [min]=\"to.datepickerOptions.min\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"to.placeholder\"\n [tabindex]=\"to.tabindex\"\n [readonly]=\"to.readonly\"\n [required]=\"required\"\n (dateInput)=\"to.datepickerOptions.dateInput(field, $event)\"\n (dateChange)=\"to.datepickerOptions.dateChange(field, $event)\"\n />\n <ng-template #datepickerToggle>\n <mat-datepicker-toggle (click)=\"detectChanges()\" [disabled]=\"to.disabled\" [for]=\"picker\"></mat-datepicker-toggle>\n </ng-template>\n <mat-datepicker\n #picker\n [color]=\"to.color\"\n [dateClass]=\"to.datepickerOptions.dateClass\"\n [disabled]=\"to.datepickerOptions.disabled\"\n [opened]=\"to.datepickerOptions.opened\"\n [panelClass]=\"to.datepickerOptions.panelClass\"\n [startAt]=\"to.datepickerOptions.startAt\"\n [startView]=\"to.datepickerOptions.startView\"\n [touchUi]=\"to.datepickerOptions.touchUi\"\n [calendarHeaderComponent]=\"to.datepickerOptions.calendarHeaderComponent\"\n (monthSelected)=\"to.datepickerOptions.monthSelected(field, $event, picker)\"\n (yearSelected)=\"to.datepickerOptions.yearSelected(field, $event, picker)\"\n >\n </mat-datepicker>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyFieldDatepicker extends FieldType<FieldTypeConfig> implements AfterViewInit, OnDestroy {\n @ViewChild('datepickerToggle', { static: true }) datepickerToggle!: TemplateRef<any>;\n\n override defaultOptions = {\n templateOptions: {\n datepickerOptions: {\n startView: 'month',\n datepickerTogglePosition: 'suffix',\n dateInput: () => {},\n dateChange: () => {},\n monthSelected: () => {},\n yearSelected: () => {},\n },\n },\n };\n private fieldErrorsObserver!: ReturnType<typeof observe>;\n\n constructor(private config: FormlyConfig) {\n super();\n }\n\n detectChanges() {\n this.options.detectChanges?.(this.field);\n }\n\n ngAfterViewInit() {\n this.to[this.to.datepickerOptions.datepickerTogglePosition] = this.datepickerToggle;\n\n // temporary fix for https://github.com/angular/components/issues/16761\n if (this.config.getValidatorMessage('matDatepickerParse')) {\n this.fieldErrorsObserver = observe<any>(this.field, ['formControl', 'errors'], ({ currentValue }) => {\n if (currentValue.required && currentValue.matDatepickerParse) {\n const errors = Object.keys(currentValue)\n .sort((prop) => (prop === 'matDatepickerParse' ? -1 : 0))\n .reduce((errors, prop) => ({ ...errors, [prop]: currentValue[prop] }), {});\n\n this.fieldErrorsObserver?.setValue(errors);\n }\n });\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.fieldErrorsObserver?.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nimport { FormlyFieldDatepicker } from './datepicker.type';\n\n@NgModule({\n declarations: [FormlyFieldDatepicker],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule,\n\n FormlyMatFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'datepicker',\n component: FormlyFieldDatepicker,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n})\nexport class FormlyMatDatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["observe"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-formly-material-datepicker.mjs","sources":["../../../../src/ui/material/datepicker/src/datepicker.type.ts","../../../../src/ui/material/datepicker/src/datepicker.module.ts","../../../../src/ui/material/datepicker/src/ngx-formly-material-datepicker.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewChild,\n AfterViewInit,\n OnDestroy,\n TemplateRef,\n ChangeDetectorRef,\n Type,\n} from '@angular/core';\nimport { FieldTypeConfig, FormlyConfig, FormlyFieldConfig, ɵobserve as observe } from '@ngx-formly/core';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { MatCalendarCellClassFunction, MatDatepicker } from '@angular/material/datepicker';\n\ninterface DatepickerProps extends FormlyFieldProps {\n datepickerOptions?: Partial<{\n touchUi: boolean;\n opened: boolean;\n disabled: boolean;\n startView: 'month' | 'year' | 'multi-year';\n datepickerTogglePosition: 'suffix' | 'prefix';\n calendarHeaderComponent: ComponentType<any>;\n filter: (date: any | null) => boolean;\n min: any;\n max: any;\n dateInput: (field: FieldTypeConfig<DatepickerProps>, event: any) => void;\n dateChange: (field: FieldTypeConfig<DatepickerProps>, event: any) => void;\n\n monthSelected: (field: FieldTypeConfig<DatepickerProps>, event: any, picker: MatDatepicker<any>) => void;\n yearSelected: (field: FieldTypeConfig<DatepickerProps>, event: any, picker: MatDatepicker<any>) => void;\n\n dateClass: MatCalendarCellClassFunction<any>;\n panelClass: string | string[];\n startAt: any | null;\n }>;\n}\n\nexport interface FormlyDatepickerFieldConfig extends FormlyFieldConfig<DatepickerProps> {\n type: 'datepicker' | Type<FormlyFieldDatepicker>;\n}\n\n@Component({\n selector: 'formly-field-mat-datepicker',\n template: `\n <input\n matInput\n [id]=\"id\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [formControl]=\"formControl\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"props.datepickerOptions.filter\"\n [max]=\"props.datepickerOptions.max\"\n [min]=\"props.datepickerOptions.min\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"props.placeholder\"\n [tabindex]=\"props.tabindex\"\n [readonly]=\"props.readonly\"\n [required]=\"required\"\n (dateInput)=\"props.datepickerOptions.dateInput(field, $event)\"\n (dateChange)=\"props.datepickerOptions.dateChange(field, $event)\"\n />\n <ng-template #datepickerToggle>\n <mat-datepicker-toggle\n (click)=\"detectChanges()\"\n [disabled]=\"props.disabled\"\n [for]=\"picker\"\n ></mat-datepicker-toggle>\n </ng-template>\n <mat-datepicker\n #picker\n [color]=\"props.color\"\n [dateClass]=\"props.datepickerOptions.dateClass\"\n [disabled]=\"props.datepickerOptions.disabled\"\n [opened]=\"props.datepickerOptions.opened\"\n [panelClass]=\"props.datepickerOptions.panelClass\"\n [startAt]=\"props.datepickerOptions.startAt\"\n [startView]=\"props.datepickerOptions.startView\"\n [touchUi]=\"props.datepickerOptions.touchUi\"\n [calendarHeaderComponent]=\"props.datepickerOptions.calendarHeaderComponent\"\n (monthSelected)=\"props.datepickerOptions.monthSelected(field, $event, picker)\"\n (yearSelected)=\"props.datepickerOptions.yearSelected(field, $event, picker)\"\n (opened)=\"props.datepickerOptions.opened = true\"\n (closed)=\"props.datepickerOptions.opened = false\"\n >\n </mat-datepicker>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyFieldDatepicker\n extends FieldType<FieldTypeConfig<DatepickerProps>>\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('datepickerToggle', { static: true }) datepickerToggle!: TemplateRef<any>;\n\n override defaultOptions = {\n props: {\n datepickerOptions: {\n startView: 'month' as const,\n datepickerTogglePosition: 'suffix' as const,\n disabled: false,\n opened: false,\n dateInput: () => {},\n dateChange: () => {},\n monthSelected: () => {},\n yearSelected: () => {},\n },\n },\n };\n private fieldErrorsObserver!: ReturnType<typeof observe>;\n\n constructor(private config: FormlyConfig, private cdRef: ChangeDetectorRef) {\n super();\n }\n\n detectChanges() {\n this.options.detectChanges?.(this.field);\n }\n\n ngAfterViewInit() {\n this.props[this.props.datepickerOptions.datepickerTogglePosition] = this.datepickerToggle;\n observe<boolean>(this.field, ['props', 'datepickerOptions', 'opened'], () => {\n this.cdRef.detectChanges();\n });\n\n // temporary fix for https://github.com/angular/components/issues/16761\n if (this.config.getValidatorMessage('matDatepickerParse')) {\n this.fieldErrorsObserver = observe<any>(this.field, ['formControl', 'errors'], ({ currentValue }) => {\n if (currentValue && currentValue.required && currentValue.matDatepickerParse) {\n const errors = Object.keys(currentValue)\n .sort((prop) => (prop === 'matDatepickerParse' ? -1 : 0))\n .reduce((errors, prop) => ({ ...errors, [prop]: currentValue[prop] }), {});\n\n this.fieldErrorsObserver?.setValue(errors);\n }\n });\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.fieldErrorsObserver?.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nimport { FormlyFieldDatepicker } from './datepicker.type';\n\n@NgModule({\n declarations: [FormlyFieldDatepicker],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule,\n\n FormlyMatFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'datepicker',\n component: FormlyFieldDatepicker,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n})\nexport class FormlyMatDatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["observe"],"mappings":"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"}
@@ -27,7 +27,7 @@ class FormlyWrapperFormField extends FieldWrapper {
27
27
  }
28
28
  ngAfterViewInit() {
29
29
  // temporary fix for https://github.com/angular/material2/issues/7891
30
- if (this.formField.appearance !== 'outline' && this.to.hideFieldUnderline === true) {
30
+ if (this.formField.appearance !== 'outline' && this.props.hideFieldUnderline === true) {
31
31
  const underlineElement = this.formField._elementRef.nativeElement.querySelector('.mat-form-field-underline');
32
32
  underlineElement && this.renderer.removeChild(underlineElement.parentNode, underlineElement);
33
33
  }
@@ -37,44 +37,44 @@ class FormlyWrapperFormField extends FieldWrapper {
37
37
  this.focusMonitor.stopMonitoring(this.elementRef);
38
38
  }
39
39
  }
40
- FormlyWrapperFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyWrapperFormField, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
41
- FormlyWrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: FormlyWrapperFormField, selector: "formly-wrapper-mat-form-field", viewQueries: [{ propertyName: "formField", first: true, predicate: MatFormField, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
40
+ FormlyWrapperFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyWrapperFormField, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
41
+ FormlyWrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FormlyWrapperFormField, selector: "formly-wrapper-mat-form-field", viewQueries: [{ propertyName: "formField", first: true, predicate: MatFormField, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
42
42
  <!-- fix https://github.com/angular/material2/pull/7083 by setting width to 100% -->
43
43
  <mat-form-field
44
44
  [hideRequiredMarker]="true"
45
- [floatLabel]="to.floatLabel"
46
- [appearance]="to.appearance"
47
- [color]="to.color"
45
+ [floatLabel]="props.floatLabel"
46
+ [appearance]="props.appearance"
47
+ [color]="props.color"
48
48
  >
49
49
  <ng-container #fieldComponent></ng-container>
50
- <mat-label *ngIf="to.label && to.hideLabel !== true">
51
- {{ to.label }}
50
+ <mat-label *ngIf="props.label && props.hideLabel !== true">
51
+ {{ props.label }}
52
52
  <span
53
- *ngIf="to.required && to.hideRequiredMarker !== true"
53
+ *ngIf="props.required && props.hideRequiredMarker !== true"
54
54
  aria-hidden="true"
55
55
  class="mat-form-field-required-marker"
56
56
  >*</span
57
57
  >
58
58
  </mat-label>
59
59
 
60
- <ng-container matPrefix *ngIf="to._matPrefix">
61
- <ng-container [ngTemplateOutlet]="to._matPrefix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
60
+ <ng-container matPrefix *ngIf="props.prefix">
61
+ <ng-container [ngTemplateOutlet]="props.prefix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
62
62
  </ng-container>
63
63
 
64
- <ng-container matSuffix *ngIf="to._matSuffix">
65
- <ng-container [ngTemplateOutlet]="to._matSuffix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
64
+ <ng-container matSuffix *ngIf="props.suffix">
65
+ <ng-container [ngTemplateOutlet]="props.suffix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
66
66
  </ng-container>
67
67
 
68
68
  <mat-error>
69
69
  <formly-validation-message [field]="field"></formly-validation-message>
70
70
  </mat-error>
71
71
 
72
- <mat-hint *ngIf="to.description || to.hintStart as hint">
72
+ <mat-hint *ngIf="props.description || props.hintStart as hint">
73
73
  <ng-container [ngTemplateOutlet]="stringOrTemplate" [ngTemplateOutletContext]="{ content: hint }">
74
74
  </ng-container>
75
75
  </mat-hint>
76
76
 
77
- <mat-hint *ngIf="to.hintEnd as hintEnd" align="end">
77
+ <mat-hint *ngIf="props.hintEnd as hintEnd" align="end">
78
78
  <ng-container [ngTemplateOutlet]="stringOrTemplate" [ngTemplateOutletContext]="{ content: hintEnd }">
79
79
  </ng-container>
80
80
  </mat-hint>
@@ -87,45 +87,45 @@ FormlyWrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
87
87
  </ng-template>
88
88
  </ng-template>
89
89
  `, isInline: true, styles: ["formly-wrapper-mat-form-field .mat-form-field{width:100%}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i2.MatPrefix, selector: "[matPrefix]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i2.MatError, selector: "mat-error", inputs: ["id"] }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], encapsulation: i0.ViewEncapsulation.None });
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyWrapperFormField, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyWrapperFormField, decorators: [{
91
91
  type: Component,
92
92
  args: [{ selector: 'formly-wrapper-mat-form-field', template: `
93
93
  <!-- fix https://github.com/angular/material2/pull/7083 by setting width to 100% -->
94
94
  <mat-form-field
95
95
  [hideRequiredMarker]="true"
96
- [floatLabel]="to.floatLabel"
97
- [appearance]="to.appearance"
98
- [color]="to.color"
96
+ [floatLabel]="props.floatLabel"
97
+ [appearance]="props.appearance"
98
+ [color]="props.color"
99
99
  >
100
100
  <ng-container #fieldComponent></ng-container>
101
- <mat-label *ngIf="to.label && to.hideLabel !== true">
102
- {{ to.label }}
101
+ <mat-label *ngIf="props.label && props.hideLabel !== true">
102
+ {{ props.label }}
103
103
  <span
104
- *ngIf="to.required && to.hideRequiredMarker !== true"
104
+ *ngIf="props.required && props.hideRequiredMarker !== true"
105
105
  aria-hidden="true"
106
106
  class="mat-form-field-required-marker"
107
107
  >*</span
108
108
  >
109
109
  </mat-label>
110
110
 
111
- <ng-container matPrefix *ngIf="to._matPrefix">
112
- <ng-container [ngTemplateOutlet]="to._matPrefix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
111
+ <ng-container matPrefix *ngIf="props.prefix">
112
+ <ng-container [ngTemplateOutlet]="props.prefix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
113
113
  </ng-container>
114
114
 
115
- <ng-container matSuffix *ngIf="to._matSuffix">
116
- <ng-container [ngTemplateOutlet]="to._matSuffix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
115
+ <ng-container matSuffix *ngIf="props.suffix">
116
+ <ng-container [ngTemplateOutlet]="props.suffix" [ngTemplateOutletContext]="{ field: field }"></ng-container>
117
117
  </ng-container>
118
118
 
119
119
  <mat-error>
120
120
  <formly-validation-message [field]="field"></formly-validation-message>
121
121
  </mat-error>
122
122
 
123
- <mat-hint *ngIf="to.description || to.hintStart as hint">
123
+ <mat-hint *ngIf="props.description || props.hintStart as hint">
124
124
  <ng-container [ngTemplateOutlet]="stringOrTemplate" [ngTemplateOutletContext]="{ content: hint }">
125
125
  </ng-container>
126
126
  </mat-hint>
127
127
 
128
- <mat-hint *ngIf="to.hintEnd as hintEnd" align="end">
128
+ <mat-hint *ngIf="props.hintEnd as hintEnd" align="end">
129
129
  <ng-container [ngTemplateOutlet]="stringOrTemplate" [ngTemplateOutletContext]="{ content: hintEnd }">
130
130
  </ng-container>
131
131
  </mat-hint>
@@ -145,11 +145,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
145
145
 
146
146
  class FormlyMatFormFieldModule {
147
147
  }
148
- FormlyMatFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
149
- FormlyMatFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatFormFieldModule, declarations: [FormlyWrapperFormField], imports: [CommonModule,
148
+ FormlyMatFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
149
+ FormlyMatFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatFormFieldModule, declarations: [FormlyWrapperFormField], imports: [CommonModule,
150
150
  ReactiveFormsModule,
151
151
  MatFormFieldModule, i3.FormlyModule] });
152
- FormlyMatFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatFormFieldModule, imports: [[
152
+ FormlyMatFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatFormFieldModule, imports: [[
153
153
  CommonModule,
154
154
  ReactiveFormsModule,
155
155
  MatFormFieldModule,
@@ -162,7 +162,7 @@ FormlyMatFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
162
162
  ],
163
163
  }),
164
164
  ]] });
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FormlyMatFormFieldModule, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormlyMatFormFieldModule, decorators: [{
166
166
  type: NgModule,
167
167
  args: [{
168
168
  declarations: [FormlyWrapperFormField],
@@ -191,12 +191,12 @@ class FieldType extends FieldType$1 {
191
191
  }
192
192
  set matPrefix(prefix) {
193
193
  if (prefix) {
194
- this.to.prefix = prefix;
194
+ this.props.prefix = prefix;
195
195
  }
196
196
  }
197
197
  set matSuffix(suffix) {
198
198
  if (suffix) {
199
- this.to.suffix = suffix;
199
+ this.props.suffix = suffix;
200
200
  }
201
201
  }
202
202
  set _controls(controls) {
@@ -206,8 +206,8 @@ class FieldType extends FieldType$1 {
206
206
  delete this.formField?._control;
207
207
  this.stateChanges.complete();
208
208
  }
209
- setDescribedByIds(ids) { }
210
- onContainerClick(event) {
209
+ setDescribedByIds(_ids) { }
210
+ onContainerClick(_event) {
211
211
  this.field.focus = true;
212
212
  this.stateChanges.next();
213
213
  }
@@ -220,25 +220,23 @@ class FieldType extends FieldType$1 {
220
220
  return showError;
221
221
  }
222
222
  get controlType() {
223
- if (this.to.type) {
224
- return this.to.type;
223
+ if (this.props.type) {
224
+ return this.props.type;
225
225
  }
226
- if (this.field.type instanceof Type) {
227
- return this.field.type.constructor.name;
228
- }
229
- return this.field.type;
226
+ const type = this.field.type;
227
+ return type instanceof Type ? type.prototype.constructor.name : type;
230
228
  }
231
229
  get focused() {
232
230
  return !!this.field.focus && !this.disabled;
233
231
  }
234
232
  get disabled() {
235
- return !!this.to.disabled;
233
+ return !!this.props.disabled;
236
234
  }
237
235
  get required() {
238
- return !!this.to.required;
236
+ return !!this.props.required;
239
237
  }
240
238
  get placeholder() {
241
- return this.to.placeholder || '';
239
+ return this.props.placeholder || '';
242
240
  }
243
241
  get shouldPlaceholderFloat() {
244
242
  return this.shouldLabelFloat;
@@ -265,12 +263,12 @@ class FieldType extends FieldType$1 {
265
263
  if (this.formField && control !== this.formField._control) {
266
264
  this.formField._control = control;
267
265
  // temporary fix for https://github.com/angular/material2/issues/6728
268
- if (control?.ngControl?.valueAccessor?.hasOwnProperty('_formField')) {
269
- control.ngControl.valueAccessor['_formField'] = this.formField;
266
+ const ngControl = control?.ngControl;
267
+ if (ngControl?.valueAccessor?.hasOwnProperty('_formField')) {
268
+ ngControl.valueAccessor['_formField'] = this.formField;
270
269
  }
271
- ['Prefix', 'Suffix'].forEach((type) => ɵobserve(this.field, ['templateOptions', type.toLowerCase()], ({ currentValue }) => currentValue &&
270
+ ['prefix', 'suffix'].forEach((type) => ɵobserve(this.field, ['props', type], ({ currentValue }) => currentValue &&
272
271
  Promise.resolve().then(() => {
273
- this.field.templateOptions[`_mat${type}`] = currentValue;
274
272
  this.options.detectChanges(this.field);
275
273
  })));
276
274
  // https://github.com/angular/components/issues/16209
@@ -281,9 +279,9 @@ class FieldType extends FieldType$1 {
281
279
  }
282
280
  }
283
281
  }
284
- FieldType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FieldType, deps: null, target: i0.ɵɵFactoryTarget.Directive });
285
- FieldType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FieldType, viewQueries: [{ propertyName: "matPrefix", first: true, predicate: ["matPrefix"], descendants: true }, { propertyName: "matSuffix", first: true, predicate: ["matSuffix"], descendants: true }, { propertyName: "_controls", predicate: MatFormFieldControl, descendants: true }], usesInheritance: true, ngImport: i0 });
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FieldType, decorators: [{
282
+ FieldType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FieldType, deps: null, target: i0.ɵɵFactoryTarget.Directive });
283
+ FieldType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: FieldType, viewQueries: [{ propertyName: "matPrefix", first: true, predicate: ["matPrefix"], descendants: true }, { propertyName: "matSuffix", first: true, predicate: ["matSuffix"], descendants: true }, { propertyName: "_controls", predicate: MatFormFieldControl, descendants: true }], usesInheritance: true, ngImport: i0 });
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FieldType, decorators: [{
287
285
  type: Directive
288
286
  }], propDecorators: { matPrefix: [{
289
287
  type: ViewChild,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-material-form-field.mjs","sources":["../../../../src/ui/material/form-field/src/form-field.wrapper.ts","../../../../src/ui/material/form-field/src/form-field.module.ts","../../../../src/ui/material/form-field/src/field.type.ts","../../../../src/ui/material/form-field/src/ngx-formly-material-form-field.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n OnDestroy,\n Renderer2,\n AfterViewInit,\n ElementRef,\n ViewEncapsulation,\n TemplateRef,\n} from '@angular/core';\nimport {\n ɵdefineHiddenProp as defineHiddenProp,\n FormlyFieldConfig as CoreFieldConfig,\n FormlyTemplateOptions,\n FieldWrapper,\n} from '@ngx-formly/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field/form-field';\nimport { ThemePalette } from '@angular/material/core';\n\ninterface MatFormlyFieldConfig extends FormlyFieldConfig {\n _formField?: FormlyWrapperFormField;\n}\n\nexport interface FormlyFieldConfig extends CoreFieldConfig {\n templateOptions?: MatFormlyTemplateOptions;\n}\n\ninterface MatFormlyTemplateOptions extends FormlyTemplateOptions {\n prefix?: TemplateRef<any>;\n suffix?: TemplateRef<any>;\n hideLabel?: boolean;\n hideRequiredMarker?: boolean;\n hideFieldUnderline?: boolean;\n floatLabel?: FloatLabelType;\n appearance?: MatFormFieldAppearance;\n color?: ThemePalette;\n hintStart?: TemplateRef<any> | string;\n hintEnd?: TemplateRef<any> | string;\n}\n\n@Component({\n selector: 'formly-wrapper-mat-form-field',\n template: `\n <!-- fix https://github.com/angular/material2/pull/7083 by setting width to 100% -->\n <mat-form-field\n [hideRequiredMarker]=\"true\"\n [floatLabel]=\"to.floatLabel\"\n [appearance]=\"to.appearance\"\n [color]=\"to.color\"\n >\n <ng-container #fieldComponent></ng-container>\n <mat-label *ngIf=\"to.label && to.hideLabel !== true\">\n {{ to.label }}\n <span\n *ngIf=\"to.required && to.hideRequiredMarker !== true\"\n aria-hidden=\"true\"\n class=\"mat-form-field-required-marker\"\n >*</span\n >\n </mat-label>\n\n <ng-container matPrefix *ngIf=\"to._matPrefix\">\n <ng-container [ngTemplateOutlet]=\"to._matPrefix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\n </ng-container>\n\n <ng-container matSuffix *ngIf=\"to._matSuffix\">\n <ng-container [ngTemplateOutlet]=\"to._matSuffix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\n </ng-container>\n\n <mat-error>\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </mat-error>\n\n <mat-hint *ngIf=\"to.description || to.hintStart as hint\">\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: hint }\">\n </ng-container>\n </mat-hint>\n\n <mat-hint *ngIf=\"to.hintEnd as hintEnd\" align=\"end\">\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: hintEnd }\">\n </ng-container>\n </mat-hint>\n </mat-form-field>\n\n <ng-template #stringOrTemplate let-content=\"content\">\n <ng-container *ngIf=\"!content.createEmbeddedView; else template\">{{ content }}</ng-container>\n <ng-template #template>\n <ng-container [ngTemplateOutlet]=\"content\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\n </ng-template>\n </ng-template>\n `,\n styleUrls: ['./form-field.wrapper.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class FormlyWrapperFormField\n extends FieldWrapper<MatFormlyFieldConfig>\n implements OnInit, OnDestroy, AfterViewInit\n{\n @ViewChild(MatFormField, { static: true }) formField!: MatFormField;\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef, private focusMonitor: FocusMonitor) {\n super();\n }\n\n ngOnInit() {\n defineHiddenProp(this.field, '_formField', this.formField);\n this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => {\n if (!origin && this.field.focus) {\n this.field.focus = false;\n }\n });\n }\n\n ngAfterViewInit() {\n // temporary fix for https://github.com/angular/material2/issues/7891\n if (this.formField.appearance !== 'outline' && this.to.hideFieldUnderline === true) {\n const underlineElement = this.formField._elementRef.nativeElement.querySelector('.mat-form-field-underline');\n underlineElement && this.renderer.removeChild(underlineElement.parentNode, underlineElement);\n }\n }\n\n ngOnDestroy() {\n delete this.field._formField;\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormlyWrapperFormField } from './form-field.wrapper';\n\n@NgModule({\n declarations: [FormlyWrapperFormField],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n ],\n }),\n ],\n})\nexport class FormlyMatFormFieldModule {}\n","import { OnDestroy, TemplateRef, ViewChild, Type, Directive, ViewChildren, QueryList } from '@angular/core';\nimport { FieldType as CoreFieldType, ɵobserve as observe } from '@ngx-formly/core';\nimport { Subject } from 'rxjs';\nimport { MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { FormlyFieldConfig } from './form-field.wrapper';\n\n@Directive()\nexport abstract class FieldType<F extends FormlyFieldConfig = FormlyFieldConfig>\n extends CoreFieldType<F>\n implements OnDestroy, MatFormFieldControl<any>\n{\n @ViewChild('matPrefix') set matPrefix(prefix: TemplateRef<any>) {\n if (prefix) {\n this.to.prefix = prefix;\n }\n }\n @ViewChild('matSuffix') set matSuffix(suffix: TemplateRef<any>) {\n if (suffix) {\n this.to.suffix = suffix;\n }\n }\n\n @ViewChildren(MatFormFieldControl) set _controls(controls: QueryList<MatFormFieldControl<any>>) {\n this.attachControl(controls.length === 1 ? controls.first : this);\n }\n\n errorStateMatcher: ErrorStateMatcher = { isErrorState: () => this.field && this.showError };\n stateChanges = new Subject<void>();\n _errorState = false;\n\n ngOnDestroy() {\n delete (this.formField as any)?._control;\n this.stateChanges.complete();\n }\n\n setDescribedByIds(ids: string[]): void {}\n onContainerClick(event: MouseEvent): void {\n this.field.focus = true;\n this.stateChanges.next();\n }\n\n get errorState() {\n const showError = this.options!.showError!(this);\n if (showError !== this._errorState) {\n this._errorState = showError;\n this.stateChanges.next();\n }\n\n return showError;\n }\n\n get controlType() {\n if (this.to.type) {\n return this.to.type;\n }\n\n if (<any>this.field.type instanceof Type) {\n return this.field.type!.constructor.name;\n }\n\n return this.field.type!;\n }\n get focused() {\n return !!this.field.focus && !this.disabled;\n }\n get disabled() {\n return !!this.to.disabled;\n }\n get required() {\n return !!this.to.required;\n }\n get placeholder() {\n return this.to.placeholder || '';\n }\n get shouldPlaceholderFloat() {\n return this.shouldLabelFloat;\n }\n get value() {\n return this.formControl?.value;\n }\n set value(value) {\n this.formControl?.patchValue(value);\n }\n get ngControl() {\n return this.formControl as any;\n }\n get empty() {\n return this.value == null || this.value === '';\n }\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n get formField(): MatFormField {\n return (this.field as any)?.['_formField'];\n }\n\n private attachControl(control: MatFormFieldControl<any>) {\n if (this.formField && control !== this.formField._control) {\n this.formField._control = control;\n\n // temporary fix for https://github.com/angular/material2/issues/6728\n if (control?.ngControl?.valueAccessor?.hasOwnProperty('_formField')) {\n (control.ngControl.valueAccessor as any)['_formField'] = this.formField;\n }\n\n ['Prefix', 'Suffix'].forEach((type) =>\n observe<TemplateRef<any>>(\n this.field,\n ['templateOptions', type.toLowerCase()],\n ({ currentValue }) =>\n currentValue &&\n Promise.resolve().then(() => {\n this.field.templateOptions![`_mat${type}`] = currentValue;\n this.options.detectChanges!(this.field);\n }),\n ),\n );\n\n // https://github.com/angular/components/issues/16209\n const setDescribedByIds = control.setDescribedByIds.bind(control);\n control.setDescribedByIds = (ids: string[]) => {\n setTimeout(() => setDescribedByIds(ids));\n };\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["defineHiddenProp","i1","CoreFieldType","observe"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-formly-material-form-field.mjs","sources":["../../../../src/ui/material/form-field/src/form-field.wrapper.ts","../../../../src/ui/material/form-field/src/form-field.module.ts","../../../../src/ui/material/form-field/src/field.type.ts","../../../../src/ui/material/form-field/src/ngx-formly-material-form-field.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n OnDestroy,\n Renderer2,\n AfterViewInit,\n ElementRef,\n ViewEncapsulation,\n TemplateRef,\n} from '@angular/core';\nimport {\n ɵdefineHiddenProp as defineHiddenProp,\n FormlyFieldConfig,\n FormlyFieldProps as CoreFormlyFieldProps,\n FieldWrapper,\n} from '@ngx-formly/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';\nimport { ThemePalette } from '@angular/material/core';\n\ninterface MatFormlyFieldConfig extends FormlyFieldConfig<FormlyFieldProps> {\n _formField?: FormlyWrapperFormField;\n}\n\nexport interface FormlyFieldProps extends CoreFormlyFieldProps {\n prefix?: TemplateRef<any>;\n suffix?: TemplateRef<any>;\n hideLabel?: boolean;\n hideRequiredMarker?: boolean;\n hideFieldUnderline?: boolean;\n floatLabel?: FloatLabelType;\n appearance?: MatFormFieldAppearance;\n color?: ThemePalette;\n hintStart?: TemplateRef<any> | string;\n hintEnd?: TemplateRef<any> | string;\n}\n\n@Component({\n selector: 'formly-wrapper-mat-form-field',\n template: `\n <!-- fix https://github.com/angular/material2/pull/7083 by setting width to 100% -->\n <mat-form-field\n [hideRequiredMarker]=\"true\"\n [floatLabel]=\"props.floatLabel\"\n [appearance]=\"props.appearance\"\n [color]=\"props.color\"\n >\n <ng-container #fieldComponent></ng-container>\n <mat-label *ngIf=\"props.label && props.hideLabel !== true\">\n {{ props.label }}\n <span\n *ngIf=\"props.required && props.hideRequiredMarker !== true\"\n aria-hidden=\"true\"\n class=\"mat-form-field-required-marker\"\n >*</span\n >\n </mat-label>\n\n <ng-container matPrefix *ngIf=\"props.prefix\">\n <ng-container [ngTemplateOutlet]=\"props.prefix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\n </ng-container>\n\n <ng-container matSuffix *ngIf=\"props.suffix\">\n <ng-container [ngTemplateOutlet]=\"props.suffix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\n </ng-container>\n\n <mat-error>\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </mat-error>\n\n <mat-hint *ngIf=\"props.description || props.hintStart as hint\">\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: hint }\">\n </ng-container>\n </mat-hint>\n\n <mat-hint *ngIf=\"props.hintEnd as hintEnd\" align=\"end\">\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: hintEnd }\">\n </ng-container>\n </mat-hint>\n </mat-form-field>\n\n <ng-template #stringOrTemplate let-content=\"content\">\n <ng-container *ngIf=\"!content.createEmbeddedView; else template\">{{ content }}</ng-container>\n <ng-template #template>\n <ng-container [ngTemplateOutlet]=\"content\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\n </ng-template>\n </ng-template>\n `,\n styleUrls: ['./form-field.wrapper.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class FormlyWrapperFormField\n extends FieldWrapper<MatFormlyFieldConfig>\n implements OnInit, OnDestroy, AfterViewInit\n{\n @ViewChild(MatFormField, { static: true }) formField!: MatFormField;\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef, private focusMonitor: FocusMonitor) {\n super();\n }\n\n ngOnInit() {\n defineHiddenProp(this.field, '_formField', this.formField);\n this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => {\n if (!origin && this.field.focus) {\n this.field.focus = false;\n }\n });\n }\n\n ngAfterViewInit() {\n // temporary fix for https://github.com/angular/material2/issues/7891\n if (this.formField.appearance !== 'outline' && this.props.hideFieldUnderline === true) {\n const underlineElement = this.formField._elementRef.nativeElement.querySelector('.mat-form-field-underline');\n underlineElement && this.renderer.removeChild(underlineElement.parentNode, underlineElement);\n }\n }\n\n ngOnDestroy() {\n delete this.field._formField;\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormlyWrapperFormField } from './form-field.wrapper';\n\n@NgModule({\n declarations: [FormlyWrapperFormField],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n ],\n }),\n ],\n})\nexport class FormlyMatFormFieldModule {}\n","import { OnDestroy, TemplateRef, ViewChild, Type, Directive, ViewChildren, QueryList } from '@angular/core';\nimport { FieldType as CoreFieldType, FormlyFieldConfig, ɵobserve as observe } from '@ngx-formly/core';\nimport { Subject } from 'rxjs';\nimport { MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { FormlyFieldProps } from './form-field.wrapper';\n\n@Directive()\nexport abstract class FieldType<F extends FormlyFieldConfig<FormlyFieldProps>>\n extends CoreFieldType<F>\n implements OnDestroy, MatFormFieldControl<any>\n{\n @ViewChild('matPrefix') set matPrefix(prefix: TemplateRef<any>) {\n if (prefix) {\n this.props.prefix = prefix;\n }\n }\n @ViewChild('matSuffix') set matSuffix(suffix: TemplateRef<any>) {\n if (suffix) {\n this.props.suffix = suffix;\n }\n }\n\n @ViewChildren(MatFormFieldControl) set _controls(controls: QueryList<MatFormFieldControl<any>>) {\n this.attachControl(controls.length === 1 ? controls.first : this);\n }\n\n errorStateMatcher: ErrorStateMatcher = { isErrorState: () => this.field && this.showError };\n stateChanges = new Subject<void>();\n _errorState = false;\n\n ngOnDestroy() {\n delete (this.formField as any)?._control;\n this.stateChanges.complete();\n }\n\n setDescribedByIds(_ids: string[]): void {}\n onContainerClick(_event: MouseEvent): void {\n this.field.focus = true;\n this.stateChanges.next();\n }\n\n get errorState() {\n const showError = this.options!.showError!(this);\n if (showError !== this._errorState) {\n this._errorState = showError;\n this.stateChanges.next();\n }\n\n return showError;\n }\n\n get controlType() {\n if (this.props.type) {\n return this.props.type;\n }\n\n const type = this.field.type!;\n return type instanceof Type ? type.prototype.constructor.name : type;\n }\n get focused() {\n return !!this.field.focus && !this.disabled;\n }\n get disabled() {\n return !!this.props.disabled;\n }\n get required() {\n return !!this.props.required;\n }\n get placeholder() {\n return this.props.placeholder || '';\n }\n get shouldPlaceholderFloat() {\n return this.shouldLabelFloat;\n }\n get value() {\n return this.formControl?.value;\n }\n set value(value) {\n this.formControl?.patchValue(value);\n }\n get ngControl() {\n return this.formControl as any;\n }\n get empty() {\n return this.value == null || this.value === '';\n }\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n get formField(): MatFormField {\n return (this.field as any)?.['_formField'];\n }\n\n private attachControl(control: MatFormFieldControl<any>) {\n if (this.formField && control !== this.formField._control) {\n this.formField._control = control;\n\n // temporary fix for https://github.com/angular/material2/issues/6728\n const ngControl = control?.ngControl as any;\n if (ngControl?.valueAccessor?.hasOwnProperty('_formField')) {\n ngControl.valueAccessor['_formField'] = this.formField;\n }\n\n ['prefix', 'suffix'].forEach((type) =>\n observe<TemplateRef<any>>(\n this.field,\n ['props', type],\n ({ currentValue }) =>\n currentValue &&\n Promise.resolve().then(() => {\n this.options.detectChanges!(this.field);\n }),\n ),\n );\n\n // https://github.com/angular/components/issues/16209\n const setDescribedByIds = control.setDescribedByIds.bind(control);\n control.setDescribedByIds = (ids: string[]) => {\n setTimeout(() => setDescribedByIds(ids));\n };\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["defineHiddenProp","i1","CoreFieldType","observe"],"mappings":"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"}