@fundamental-ngx/platform 0.45.1-rc.8 → 0.45.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 (67) hide show
  1. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +6 -4
  2. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +6 -4
  3. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +6 -4
  4. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +8 -6
  5. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +6 -4
  6. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +5 -3
  7. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +6 -4
  8. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +6 -4
  9. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +6 -4
  10. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +4 -3
  11. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +4 -3
  12. package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
  13. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +23 -89
  14. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +130 -40
  15. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +20 -14
  16. package/esm2022/form/form-generator/form-generator.service.mjs +62 -19
  17. package/esm2022/form/form-generator/helpers.mjs +53 -0
  18. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  19. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +46 -0
  20. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +7 -3
  21. package/esm2022/form/form-generator/providers/providers.mjs +1 -1
  22. package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
  23. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
  24. package/esm2022/form/form-group/form-group.component.mjs +3 -2
  25. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +2 -2
  26. package/esm2022/form/form-helpers.mjs +2 -18
  27. package/esm2022/form/index.mjs +3 -1
  28. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +26 -5
  29. package/esm2022/form/models/field.model.mjs +18 -0
  30. package/esm2022/shared/form/base.input.mjs +9 -3
  31. package/fesm2022/fundamental-ngx-platform-form.mjs +4445 -4240
  32. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-platform-shared.mjs +9 -3
  34. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  35. package/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.d.ts +1 -1
  36. package/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.d.ts +1 -1
  37. package/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.d.ts +1 -1
  38. package/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.d.ts +1 -1
  39. package/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.d.ts +1 -1
  40. package/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.d.ts +1 -1
  41. package/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.d.ts +1 -1
  42. package/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.d.ts +1 -1
  43. package/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.d.ts +1 -1
  44. package/form/form-generator/dynamic-form-control-field.directive.d.ts +1 -1
  45. package/form/form-generator/dynamic-form-control.d.ts +3 -3
  46. package/form/form-generator/dynamic-form-control.directive.d.ts +1 -1
  47. package/form/form-generator/fdp-form-generator.module.d.ts +3 -20
  48. package/form/form-generator/form-generator/form-generator.component.d.ts +41 -13
  49. package/form/form-generator/form-generator-field/form-generator-field.component.d.ts +7 -2
  50. package/form/form-generator/form-generator.service.d.ts +17 -8
  51. package/form/form-generator/helpers.d.ts +23 -0
  52. package/form/form-generator/interfaces/dynamic-form-item.d.ts +18 -7
  53. package/form/form-generator/pipes/get-hint-options.pipe.d.ts +17 -0
  54. package/form/form-generator/pipes/get-ordered-form-controls.pipe.d.ts +1 -1
  55. package/form/form-generator/providers/providers.d.ts +3 -3
  56. package/form/form-group/form-group-header/form-group-header.component.d.ts +1 -1
  57. package/form/form-group/form-group.component.d.ts +1 -1
  58. package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
  59. package/form/form-helpers.d.ts +2 -20
  60. package/form/index.d.ts +2 -0
  61. package/form/input-message-group-with-template/input-message-group-with-template.component.d.ts +7 -1
  62. package/form/models/field.model.d.ts +20 -0
  63. package/fundamental-ngx-platform-v0.45.1.tgz +0 -0
  64. package/package.json +4 -4
  65. package/schematics/ng-add/index.js +1 -1
  66. package/shared/form/base.input.d.ts +13 -10
  67. package/fundamental-ngx-platform-v0.45.1-rc.8.tgz +0 -0
@@ -4,5 +4,5 @@ export declare class DynamicFormGeneratorSwitchComponent extends BaseDynamicForm
4
4
  /** @hidden */
5
5
  constructor();
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormGeneratorSwitchComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormGeneratorSwitchComponent, "fdp-dynamic-form-generator-switch", never, {}, {}, never, never, false, never, false>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormGeneratorSwitchComponent, "fdp-dynamic-form-generator-switch", never, {}, {}, never, never, true, never, false>;
8
8
  }
@@ -47,5 +47,5 @@ export declare class DynamicFormControlFieldDirective implements OnInit {
47
47
  /** @hidden */
48
48
  private _updateView;
49
49
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormControlFieldDirective, never>;
50
- static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicFormControlFieldDirective, "[fdpDynamicFormControlField]", never, { "fdpDynamicFormControlField": { "alias": "fdpDynamicFormControlField"; "required": false; }; "fdpDynamicFormControlFieldShow": { "alias": "fdpDynamicFormControlFieldShow"; "required": false; }; }, {}, never, never, false, never, false>;
50
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicFormControlFieldDirective, "[fdpDynamicFormControlField]", never, { "fdpDynamicFormControlField": { "alias": "fdpDynamicFormControlField"; "required": false; }; "fdpDynamicFormControlFieldShow": { "alias": "fdpDynamicFormControlFieldShow"; "required": false; }; }, {}, never, never, true, never, false>;
51
51
  }
@@ -1,19 +1,19 @@
1
1
  import { AbstractControlOptions, AsyncValidatorFn, FormControl, FormGroup, ValidatorFn } from '@angular/forms';
2
2
  import { DynamicAbstractControlOptions } from './interfaces/dynamic-abstract-control';
3
- import { DynamicFormFieldGroup, PreparedDynamicFormFieldItem } from './interfaces/dynamic-form-item';
3
+ import { DynamicFormFieldGroupMap, PreparedDynamicFormFieldItem } from './interfaces/dynamic-form-item';
4
4
  export type DynamicFormGroupControl = DynamicFormControl | DynamicFormControlGroup;
5
5
  export interface DynamicFormGroupControls {
6
6
  [key: string]: DynamicFormGroupControl;
7
7
  }
8
8
  export declare class DynamicFormControlGroup extends FormGroup {
9
9
  /** @hidden */
10
- formItem: DynamicFormFieldGroup;
10
+ formItem: DynamicFormFieldGroupMap;
11
11
  /** @hidden */
12
12
  type: string;
13
13
  /** @hidden */
14
14
  controls: DynamicFormGroupControls;
15
15
  /** @hidden */
16
- constructor(formItem: DynamicFormFieldGroup, controls: DynamicFormGroupControls, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);
16
+ constructor(formItem: DynamicFormFieldGroupMap, controls: DynamicFormGroupControls, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);
17
17
  }
18
18
  export declare class DynamicFormControl extends FormControl {
19
19
  /** @hidden */
@@ -46,5 +46,5 @@ export declare class DynamicFormControlDirective implements OnInit {
46
46
  /** @hidden */
47
47
  ngOnInit(): void;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormControlDirective, [null, null, null, { optional: true; }]>;
49
- static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicFormControlDirective, "[fdpDynamicFormControl]", never, { "formItem": { "alias": "formItem"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formGroupNamePath": { "alias": "formGroupNamePath"; "required": false; }; "formField": { "alias": "formField"; "required": false; }; }, {}, never, never, false, never, false>;
49
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicFormControlDirective, "[fdpDynamicFormControl]", never, { "formItem": { "alias": "formItem"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formGroupNamePath": { "alias": "formGroupNamePath"; "required": false; }; "formField": { "alias": "formField"; "required": false; }; }, {}, never, never, true, never, false>;
50
50
  }
@@ -15,25 +15,8 @@ import * as i11 from "./form-generator-field/form-generator-field.component";
15
15
  import * as i12 from "./controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component";
16
16
  import * as i13 from "./pipes/get-ordered-form-controls.pipe";
17
17
  import * as i14 from "./controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component";
18
- import * as i15 from "@angular/common";
19
- import * as i16 from "../form-group/fdp-form.module";
20
- import * as i17 from "../input/fdp-input.module";
21
- import * as i18 from "@angular/forms";
22
- import * as i19 from "@fundamental-ngx/platform/button";
23
- import * as i20 from "../checkbox-group/checkbox-group.module";
24
- import * as i21 from "../select/select.module";
25
- import * as i22 from "../radio-group/radio-group.module";
26
- import * as i23 from "../text-area/text-area.module";
27
- import * as i24 from "../date-picker/date-picker.module";
28
- import * as i25 from "../switch/switch.module";
29
- import * as i26 from "@fundamental-ngx/core/form";
30
- import * as i27 from "@fundamental-ngx/core/busy-indicator";
31
- import * as i28 from "../multi-combobox/multi-combobox.module";
32
- import * as i29 from "../multi-input/multi-input.module";
33
- import * as i30 from "@fundamental-ngx/core/content-density";
34
- import * as i31 from "@fundamental-ngx/core/skeleton";
35
- import * as i32 from "@fundamental-ngx/core/list";
36
- import * as i33 from "@fundamental-ngx/platform/object-status";
18
+ import * as i15 from "./pipes/get-hint-options.pipe";
19
+ import * as i16 from "@fundamental-ngx/core/content-density";
37
20
  /**
38
21
  * Adds Form Generator functionality to your application.
39
22
  *
@@ -48,6 +31,6 @@ export declare class PlatformFormGeneratorModule {
48
31
  */
49
32
  static withConfig(config: Partial<FormGeneratorModuleConfig>): ModuleWithProviders<PlatformFormGeneratorModule>;
50
33
  static ɵfac: i0.ɵɵFactoryDeclaration<PlatformFormGeneratorModule, never>;
51
- static ɵmod: i0.ɵɵNgModuleDeclaration<PlatformFormGeneratorModule, [typeof i1.FormGeneratorComponent, typeof i2.DynamicFormControlFieldDirective, typeof i3.DynamicFormControlDirective, typeof i4.DynamicFormGeneratorCheckboxComponent, typeof i5.DynamicFormGeneratorInputComponent, typeof i6.DynamicFormGeneratorEditorComponent, typeof i7.DynamicFormGeneratorSelectComponent, typeof i8.DynamicFormGeneratorRadioComponent, typeof i9.DynamicFormGeneratorDatepickerComponent, typeof i10.DynamicFormGeneratorSwitchComponent, typeof i11.FormGeneratorFieldComponent, typeof i12.DynamicFormGeneratorMultiInputComponent, typeof i13.GetOrderedFieldControlsPipe, typeof i14.DynamicFormGeneratorObjectStatusComponent], [typeof i15.CommonModule, typeof i16.FdpFormGroupModule, typeof i17.PlatformInputModule, typeof i18.FormsModule, typeof i18.ReactiveFormsModule, typeof i19.PlatformButtonModule, typeof i20.PlatformCheckboxGroupModule, typeof i21.PlatformSelectModule, typeof i22.PlatformRadioGroupModule, typeof i23.PlatformTextAreaModule, typeof i17.PlatformInputModule, typeof i24.PlatformDatePickerModule, typeof i25.PlatformSwitchModule, typeof i26.FormMessageModule, typeof i27.BusyIndicatorModule, typeof i28.PlatformMultiComboboxModule, typeof i29.PlatformMultiInputModule, typeof i30.ContentDensityModule, typeof i31.SkeletonModule, typeof i32.ListModule, typeof i33.PlatformObjectStatusModule], [typeof i1.FormGeneratorComponent, typeof i2.DynamicFormControlFieldDirective, typeof i3.DynamicFormControlDirective, typeof i4.DynamicFormGeneratorCheckboxComponent, typeof i5.DynamicFormGeneratorInputComponent, typeof i6.DynamicFormGeneratorEditorComponent, typeof i7.DynamicFormGeneratorSelectComponent, typeof i8.DynamicFormGeneratorRadioComponent, typeof i9.DynamicFormGeneratorDatepickerComponent, typeof i10.DynamicFormGeneratorSwitchComponent, typeof i11.FormGeneratorFieldComponent, typeof i30.ContentDensityModule, typeof i14.DynamicFormGeneratorObjectStatusComponent]>;
34
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PlatformFormGeneratorModule, never, [typeof i1.FormGeneratorComponent, typeof i2.DynamicFormControlFieldDirective, typeof i3.DynamicFormControlDirective, typeof i4.DynamicFormGeneratorCheckboxComponent, typeof i5.DynamicFormGeneratorInputComponent, typeof i6.DynamicFormGeneratorEditorComponent, typeof i7.DynamicFormGeneratorSelectComponent, typeof i8.DynamicFormGeneratorRadioComponent, typeof i9.DynamicFormGeneratorDatepickerComponent, typeof i10.DynamicFormGeneratorSwitchComponent, typeof i11.FormGeneratorFieldComponent, typeof i12.DynamicFormGeneratorMultiInputComponent, typeof i13.GetOrderedFieldControlsPipe, typeof i14.DynamicFormGeneratorObjectStatusComponent, typeof i15.GetHintOptionsPipe], [typeof i1.FormGeneratorComponent, typeof i2.DynamicFormControlFieldDirective, typeof i3.DynamicFormControlDirective, typeof i4.DynamicFormGeneratorCheckboxComponent, typeof i5.DynamicFormGeneratorInputComponent, typeof i6.DynamicFormGeneratorEditorComponent, typeof i7.DynamicFormGeneratorSelectComponent, typeof i8.DynamicFormGeneratorRadioComponent, typeof i9.DynamicFormGeneratorDatepickerComponent, typeof i10.DynamicFormGeneratorSwitchComponent, typeof i11.FormGeneratorFieldComponent, typeof i16.ContentDensityModule, typeof i14.DynamicFormGeneratorObjectStatusComponent, typeof i15.GetHintOptionsPipe]>;
52
35
  static ɵinj: i0.ɵɵInjectorDeclaration<PlatformFormGeneratorModule>;
53
36
  }
@@ -1,14 +1,15 @@
1
1
  import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges } from '@angular/core';
2
2
  import { FormControlStatus, FormGroupDirective, NgForm } from '@angular/forms';
3
- import { BehaviorSubject, Subject } from 'rxjs';
3
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
4
  import { ColumnLayout, FieldHintOptions, PlatformFormFieldControl, HintOptions, HintInput } from '@fundamental-ngx/platform/shared';
5
5
  import { Nullable } from '@fundamental-ngx/cdk/utils';
6
6
  import { FormGeneratorFieldComponent } from '../form-generator-field/form-generator-field.component';
7
7
  import { FormGeneratorService } from '../form-generator.service';
8
- import { BaseDynamicFormItemGuiOptions, DynamicFormItem, DynamicFormItemGuiOptions, DynamicFormItemValidationObject, DynamicFormValue } from '../interfaces/dynamic-form-item';
8
+ import { DynamicFormItem, DynamicFormItemValidationObject, DynamicFormValue } from '../interfaces/dynamic-form-item';
9
9
  import { DynamicFormGroupControl } from '../dynamic-form-control';
10
10
  import { DynamicFormGroup } from '../interfaces/dynamic-form-group';
11
11
  import * as i0 from "@angular/core";
12
+ export type FormGeneratorAcceptableItems = DynamicFormItem[] | Observable<DynamicFormItem[]>;
12
13
  export declare const FDP_FORM_IGNORED_STATUSES: FormControlStatus[];
13
14
  export interface SubmitFormEventResult {
14
15
  /**
@@ -33,8 +34,8 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
33
34
  * @description List of @see DynamicFormItem representing the list of items
34
35
  * to be rendered in the form.
35
36
  */
36
- set formItems(formItems: DynamicFormItem[]);
37
- get formItems(): DynamicFormItem[];
37
+ set formItems(formItems: FormGeneratorAcceptableItems);
38
+ get formItems(): FormGeneratorAcceptableItems;
38
39
  /**
39
40
  * @description Form main title.
40
41
  */
@@ -99,6 +100,8 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
99
100
  formGroup: FormGroupDirective;
100
101
  /** Inner form fields */
101
102
  fields: QueryList<FormGeneratorFieldComponent>;
103
+ /** @hidden */
104
+ doCheck$: Subject<void>;
102
105
  /** Array of form field controls. */
103
106
  get formFields(): PlatformFormFieldControl[];
104
107
  /**
@@ -131,7 +134,8 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
131
134
  * Stream of last form submission value.
132
135
  */
133
136
  formValue$: BehaviorSubject<DynamicFormValue>;
134
- /** @hidden
137
+ /**
138
+ * @hidden
135
139
  * To differentiate between first loading when skeletons be shown and subsequent loadings when busy indicator be shown
136
140
  */
137
141
  _firstLoadingDone: boolean;
@@ -152,6 +156,8 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
152
156
  * @hidden
153
157
  */
154
158
  private _formValueSubscription;
159
+ /** @hidden */
160
+ private _refresh$;
155
161
  /**
156
162
  * @hidden
157
163
  * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)
@@ -162,6 +168,8 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
162
168
  /** @hidden */
163
169
  private _ngSubmitSubscription;
164
170
  /** @hidden */
171
+ private _mappedFormitems;
172
+ /** @hidden */
165
173
  constructor(_fgService: FormGeneratorService, _cd: ChangeDetectorRef, _providedHintOptions: FieldHintOptions);
166
174
  /** @hidden */
167
175
  ngOnChanges(changes: SimpleChanges): void;
@@ -177,26 +185,38 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
177
185
  * @hidden
178
186
  */
179
187
  _onSubmit(): Promise<void>;
188
+ /**
189
+ * Adds new control to an existing form.
190
+ * @param control Control configuration to add.
191
+ * @param path Path of the control.
192
+ */
193
+ addControl(control: DynamicFormItem, path?: string[]): Promise<void>;
194
+ /**
195
+ * Removes the control with the given name by the given path.
196
+ * @param name Name of the control.
197
+ * @param path Path of the control.
198
+ */
199
+ removeControl(name: string, path: string[]): Promise<void>;
180
200
  /**
181
201
  *
182
202
  * @hidden
183
203
  */
184
204
  _trackFn(index: number, value: DynamicFormGroupControl): string;
205
+ /** @hidden */
206
+ _groupTrackFn(index: number, value: DynamicFormGroupControl): string;
185
207
  /**
186
208
  *
187
209
  * @description Programmatically submit form.
188
210
  * This method also calls validation for the form items.
189
211
  */
190
212
  submit(): void;
191
- /**
192
- * @description
193
- * Used for extracting hintOptions from GuiOptions. This will coerce string | HintOptions to FieldHintOptions,
194
- * will combine default value of hints for form generator with provided options.
195
- * @param guiOptions
196
- */
197
- getHintOptions(guiOptions?: BaseDynamicFormItemGuiOptions | DynamicFormItemGuiOptions): FieldHintOptions | undefined;
198
213
  /** @hidden */
199
214
  _isAdvancedError(error: any): error is DynamicFormItemValidationObject;
215
+ /** @hidden */
216
+ _errorsTrackBy(_: number, error: {
217
+ type: string;
218
+ value: any;
219
+ }): string;
200
220
  /**
201
221
  * @hidden
202
222
  */
@@ -207,6 +227,14 @@ export declare class FormGeneratorComponent implements OnDestroy, OnChanges {
207
227
  private _getErrors;
208
228
  /** @hidden */
209
229
  private _listenToSubmit;
230
+ /** @hidden */
231
+ private _onFormItemsChange;
232
+ /** @hidden */
233
+ private _applyRank;
234
+ /** @hidden */
235
+ private _addControlToFormItems;
236
+ /** @hidden */
237
+ private _removeControlFromItems;
210
238
  static ɵfac: i0.ɵɵFactoryDeclaration<FormGeneratorComponent, never>;
211
- static ɵcmp: i0.ɵɵComponentDeclaration<FormGeneratorComponent, "fdp-form-generator", never, { "formName": { "alias": "formName"; "required": false; }; "formItems": { "alias": "formItems"; "required": false; }; "mainTitle": { "alias": "mainTitle"; "required": false; }; "hideMainTItle": { "alias": "hideMainTItle"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "columnLayout": { "alias": "columnLayout"; "required": false; }; "labelColumnLayout": { "alias": "labelColumnLayout"; "required": false; }; "fieldColumnLayout": { "alias": "fieldColumnLayout"; "required": false; }; "gapColumnLayout": { "alias": "gapColumnLayout"; "required": false; }; "unifiedLayout": { "alias": "unifiedLayout"; "required": false; }; "inlineColumnLayout": { "alias": "inlineColumnLayout"; "required": false; }; "noAdditionalContent": { "alias": "noAdditionalContent"; "required": false; }; }, { "formCreated": "formCreated"; "formSubmitted": "formSubmitted"; "formSubmittedStatus": "formSubmittedStatus"; }, never, ["*"], false, never, false>;
239
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormGeneratorComponent, "fdp-form-generator", never, { "formName": { "alias": "formName"; "required": false; }; "formItems": { "alias": "formItems"; "required": false; }; "mainTitle": { "alias": "mainTitle"; "required": false; }; "hideMainTItle": { "alias": "hideMainTItle"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "columnLayout": { "alias": "columnLayout"; "required": false; }; "labelColumnLayout": { "alias": "labelColumnLayout"; "required": false; }; "fieldColumnLayout": { "alias": "fieldColumnLayout"; "required": false; }; "gapColumnLayout": { "alias": "gapColumnLayout"; "required": false; }; "unifiedLayout": { "alias": "unifiedLayout"; "required": false; }; "inlineColumnLayout": { "alias": "inlineColumnLayout"; "required": false; }; "noAdditionalContent": { "alias": "noAdditionalContent"; "required": false; }; }, { "formCreated": "formCreated"; "formSubmitted": "formSubmitted"; "formSubmittedStatus": "formSubmittedStatus"; }, never, ["*"], true, never, false>;
212
240
  }
@@ -57,9 +57,14 @@ export declare class FormGeneratorFieldComponent implements OnInit {
57
57
  /** @hidden */
58
58
  ngOnInit(): void;
59
59
  /** @hidden */
60
- private _getErrors;
60
+ _errorsTrackBy(_: number, error: {
61
+ type: string;
62
+ value: any;
63
+ }): string;
61
64
  /** @hidden */
62
65
  _isAdvancedError(error: any): error is DynamicFormItemValidationObject;
66
+ /** @hidden */
67
+ private _getErrors;
63
68
  static ɵfac: i0.ɵɵFactoryDeclaration<FormGeneratorFieldComponent, never>;
64
- static ɵcmp: i0.ɵɵComponentDeclaration<FormGeneratorFieldComponent, "fdp-form-generator-field", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "formFieldName": { "alias": "formFieldName"; "required": false; }; "formGroupNamePath": { "alias": "formGroupNamePath"; "required": false; }; "rank": { "alias": "rank"; "required": false; }; "shouldShow": { "alias": "shouldShow"; "required": false; }; "hintOptions": { "alias": "hintOptions"; "required": false; }; }, {}, never, never, false, never, false>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormGeneratorFieldComponent, "fdp-form-generator-field", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "formFieldName": { "alias": "formFieldName"; "required": false; }; "formGroupNamePath": { "alias": "formGroupNamePath"; "required": false; }; "rank": { "alias": "rank"; "required": false; }; "shouldShow": { "alias": "shouldShow"; "required": false; }; "hintOptions": { "alias": "hintOptions"; "required": false; }; }, {}, never, never, true, never, false>;
65
70
  }
@@ -2,7 +2,7 @@ import { OnDestroy, Type } from '@angular/core';
2
2
  import { FormBuilder } from '@angular/forms';
3
3
  import { DynamicFormControlGroup, DynamicFormGroupControl } from './dynamic-form-control';
4
4
  import { FormGeneratorComponentsAccessorService } from './form-generator-components-accessor.service';
5
- import { DynamicFormFieldItem, DynamicFormItem, DynamicFormValue } from './interfaces/dynamic-form-item';
5
+ import { DynamicFormFieldItem, DynamicFormItem, DynamicFormItemMap, DynamicFormValue } from './interfaces/dynamic-form-item';
6
6
  import { FormComponentDefinition } from './interfaces/form-component-definition';
7
7
  import { BaseDynamicFormGeneratorControl } from './base-dynamic-form-generator-control';
8
8
  import { DynamicFormGroup } from './interfaces/dynamic-form-group';
@@ -47,7 +47,20 @@ export declare class FormGeneratorService implements OnDestroy {
47
47
  * @param formItems the list of form items which used for form control generation.
48
48
  * @returns `FormGroup` class with the list of `DynamicFormControl` control classes.
49
49
  */
50
- generateForm(formName: string, formItems: DynamicFormItem[]): Promise<DynamicFormGroup>;
50
+ generateForm(formName: string, formItems: Map<string, DynamicFormItemMap>): Promise<DynamicFormGroup>;
51
+ /**
52
+ * Adds new control to a form.
53
+ * @param control Control to add
54
+ * @param form Form of the control to be added.
55
+ * @param path Group path.
56
+ */
57
+ addControl(control: DynamicFormItem, form: DynamicFormGroup, path?: string[]): Promise<void>;
58
+ /**
59
+ * Removes the control with given name from the form.
60
+ * @param controlName
61
+ * @param path
62
+ */
63
+ removeControl(controlName: string, form: DynamicFormGroup, path?: string[]): void;
51
64
  /**
52
65
  * @description Returns form value with applied filters and transformers.
53
66
  * @param form Form generator form
@@ -87,12 +100,6 @@ export declare class FormGeneratorService implements OnDestroy {
87
100
  checkVisibleFormItems(form: DynamicFormGroup): Promise<{
88
101
  [key: string]: boolean;
89
102
  }>;
90
- /**
91
- * Is current form item is a field item.
92
- * @param item form item.
93
- * @returns is current form item is a field.
94
- */
95
- isFormFieldItem(item: any): item is DynamicFormFieldItem;
96
103
  /**
97
104
  * Method for searching a form control inside form group. Can also search inside ungrouped form group.
98
105
  * @param form Form group.
@@ -142,6 +149,8 @@ export declare class FormGeneratorService implements OnDestroy {
142
149
  private _transformFormItems;
143
150
  /** @hidden */
144
151
  private _triggerFieldsOnchange;
152
+ /** @hidden */
153
+ private _cloneOldFormGroup;
145
154
  static ɵfac: i0.ɵɵFactoryDeclaration<FormGeneratorService, [null, null, { optional: true; skipSelf: true; }, { optional: true; skipSelf: true; }]>;
146
155
  static ɵprov: i0.ɵɵInjectableDeclaration<FormGeneratorService>;
147
156
  }
@@ -0,0 +1,23 @@
1
+ import { HintOptions } from '@fundamental-ngx/platform/shared';
2
+ import { DynamicFormFieldGroup, DynamicFormFieldGroupMap, DynamicFormFieldItem, DynamicFormItem, DynamicFormItemMap } from './interfaces/dynamic-form-item';
3
+ /** @hidden */
4
+ export declare function isHintOptions(opts: string | HintOptions): opts is HintOptions;
5
+ /** @hidden */
6
+ export declare function mapFormItems(formItems?: DynamicFormItem[]): Map<string, DynamicFormItemMap>;
7
+ /** @hidden */
8
+ export declare function transformFormItem(item: DynamicFormItem, index: number): DynamicFormFieldGroupMap | DynamicFormFieldItem;
9
+ /**
10
+ * Is current form item is a field item.
11
+ * @param item form item.
12
+ * @returns is current form item is a field.
13
+ */
14
+ export declare function isFormFieldItem(item: any): item is DynamicFormFieldItem;
15
+ /**
16
+ * Is current form item is a group item.
17
+ * @param item form item.
18
+ * @returns is current form item is a group.
19
+ */
20
+ /** @hidden */
21
+ export declare function isFormGroupItem(item: any): item is DynamicFormFieldGroup;
22
+ /** @hidden */
23
+ export declare function getParentItem(path: string[], rootItems: Map<string, DynamicFormItemMap>): DynamicFormItemMap | null;
@@ -30,7 +30,8 @@ export type DynamicFormItemValidationResult = null | boolean | string | DynamicF
30
30
  * `U` type represents additional `DynamicFormFieldItem` interface.
31
31
  */
32
32
  export type DynamicFormItem<T extends Record<string, any> = Record<string, any>, U extends BaseDynamicFormFieldItem = AnyDynamicFormFieldItem> = DynamicFormFieldGroup | DynamicFormFieldItem<T, U>;
33
- export interface DynamicFormFieldGroup {
33
+ export type DynamicFormItemMap<T extends Record<string, any> = Record<string, any>, U extends BaseDynamicFormFieldItem = AnyDynamicFormFieldItem> = DynamicFormFieldGroupMap | DynamicFormFieldItem<T, U>;
34
+ export interface BaseDynamicFormFieldGroup {
34
35
  /**
35
36
  * @description
36
37
  * ID of the form item, if not provided, name will be used instead
@@ -47,12 +48,6 @@ export interface DynamicFormFieldGroup {
47
48
  * @param formValue the form value hash.
48
49
  */
49
50
  message?: string;
50
- /**
51
- * @description
52
- * List of @see DynamicFormItem representing the list of items
53
- * to be rendered in the form.
54
- */
55
- items?: DynamicFormFieldItem[];
56
51
  /**
57
52
  * @description
58
53
  * Rank is used for ordering.
@@ -65,6 +60,22 @@ export interface DynamicFormFieldGroup {
65
60
  */
66
61
  guiOptions?: BaseDynamicFormItemGuiOptions;
67
62
  }
63
+ export interface DynamicFormFieldGroup extends BaseDynamicFormFieldGroup {
64
+ /**
65
+ * @description
66
+ * List of @see DynamicFormItem representing the list of items
67
+ * to be rendered in the form.
68
+ */
69
+ items?: DynamicFormFieldItem[];
70
+ }
71
+ export interface DynamicFormFieldGroupMap extends BaseDynamicFormFieldGroup {
72
+ /**
73
+ * @description
74
+ * Map of @see DynamicFormItem representing the list of items
75
+ * to be rendered in the form.
76
+ */
77
+ items?: Map<string, DynamicFormItemMap>;
78
+ }
68
79
  export type FdpFormGeneratorAsyncProperty<T = string> = T | Promise<T> | Observable<T>;
69
80
  export interface BaseDynamicFormFieldItem<T = any> {
70
81
  /**
@@ -0,0 +1,17 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { FieldHintOptions } from '@fundamental-ngx/platform/shared';
3
+ import { BaseDynamicFormItemGuiOptions, DynamicFormItemGuiOptions } from '../interfaces/dynamic-form-item';
4
+ import * as i0 from "@angular/core";
5
+ export declare class GetHintOptionsPipe implements PipeTransform {
6
+ /** @hidden */
7
+ private readonly _defaultHintOptions;
8
+ /** @hidden */
9
+ constructor(_providedHintOptions: FieldHintOptions);
10
+ /**
11
+ * Used for extracting hintOptions from GuiOptions. This will coerce string | HintOptions to FieldHintOptions,
12
+ * will combine default value of hints for form generator with provided options.
13
+ */
14
+ transform(hintOptions: BaseDynamicFormItemGuiOptions | DynamicFormItemGuiOptions | undefined): FieldHintOptions | undefined;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetHintOptionsPipe, never>;
16
+ static ɵpipe: i0.ɵɵPipeDeclaration<GetHintOptionsPipe, "getHintOptions", true>;
17
+ }
@@ -5,5 +5,5 @@ export declare class GetOrderedFieldControlsPipe implements PipeTransform {
5
5
  /** @hidden */
6
6
  transform(field: DynamicFormGroupControl): DynamicFormControl[];
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<GetOrderedFieldControlsPipe, never>;
8
- static ɵpipe: i0.ɵɵPipeDeclaration<GetOrderedFieldControlsPipe, "getOrderedFieldControls", false>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<GetOrderedFieldControlsPipe, "getOrderedFieldControls", true>;
9
9
  }
@@ -1,8 +1,8 @@
1
- import { InjectionToken, Provider } from '@angular/core';
1
+ import { InjectionToken, Provider, StaticProvider } from '@angular/core';
2
2
  import { DynamicFormFieldItem } from '../interfaces/dynamic-form-item';
3
3
  import { FormGeneratorConfig } from '../interfaces/form-generator-module-config';
4
- export declare const dynamicFormFieldProvider: Provider;
5
- export declare const dynamicFormGroupChildProvider: Provider;
4
+ export declare const dynamicFormFieldProvider: StaticProvider;
5
+ export declare const dynamicFormGroupChildProvider: StaticProvider;
6
6
  export declare const FORM_GENERATOR_ITEM_CONFIG: InjectionToken<DynamicFormFieldItem>;
7
7
  export declare const FORM_GENERATOR_CONFIG: InjectionToken<FormGeneratorConfig>;
8
8
  export declare const defaultFormGeneratorConfig: FormGeneratorConfig;
@@ -1,6 +1,6 @@
1
- import { FieldGroup } from '../../form-helpers';
2
1
  import { HintOptions } from '@fundamental-ngx/platform/shared';
3
2
  import { Nullable } from '@fundamental-ngx/cdk/utils';
3
+ import { FieldGroup } from '../../models/field.model';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FormGroupHeaderComponent {
6
6
  /** Fields Group */
@@ -22,9 +22,9 @@ import { BooleanInput } from '@angular/cdk/coercion';
22
22
  import { Subject } from 'rxjs';
23
23
  import { ColumnLayout, FieldHintOptions, FormFieldGroup, FormGroupContainer, HintInput, HintOptions, PlatformFormField } from '@fundamental-ngx/platform/shared';
24
24
  import { Nullable } from '@fundamental-ngx/cdk/utils';
25
- import { Field, FieldColumn, FieldGroup } from '../form-helpers';
26
25
  import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
27
26
  import { FormField } from '@fundamental-ngx/cdk/forms';
27
+ import { Field, FieldColumn, FieldGroup } from '../models/field.model';
28
28
  import * as i0 from "@angular/core";
29
29
  export declare const formGroupProvider: Provider;
30
30
  type FormGroupField = (FormField | FormFieldGroup) & {
@@ -1,6 +1,6 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import { KeyValue } from '@angular/common';
3
- import { FieldColumn, FieldGroup } from '../../form-helpers';
3
+ import { FieldColumn, FieldGroup } from '../../models/field.model';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FieldGroupRowValuePipe implements PipeTransform {
6
6
  /** @hidden */
@@ -1,10 +1,7 @@
1
- import { TemplateRef } from '@angular/core';
2
- import { PlatformFormField, HintOptions } from '@fundamental-ngx/platform/shared';
1
+ import { PlatformFormField } from '@fundamental-ngx/platform/shared';
3
2
  import { FormFieldGroupComponent } from './form-group/form-field-group/form-field-group.component';
4
3
  import { FormGeneratorFieldComponent } from './form-generator/form-generator-field/form-generator-field.component';
5
- export interface FieldColumn {
6
- [key: number]: Array<Field>;
7
- }
4
+ import { Field } from './models/field.model';
8
5
  /** @hidden */
9
6
  export declare function isFieldChild(child: unknown): child is PlatformFormField;
10
7
  /** @hidden */
@@ -15,18 +12,3 @@ export declare function isFieldGroupChild(child: unknown): child is FormFieldGro
15
12
  export declare function getFormField(field: PlatformFormField | FormGeneratorFieldComponent): PlatformFormField;
16
13
  /** @hidden */
17
14
  export declare function getField(field: PlatformFormField): Field;
18
- export declare class Field {
19
- name?: string | undefined;
20
- rank?: number | undefined;
21
- renderer?: TemplateRef<any> | undefined;
22
- column?: number | undefined;
23
- /** @hidden */
24
- constructor(name?: string | undefined, rank?: number | undefined, renderer?: TemplateRef<any> | undefined, column?: number | undefined);
25
- }
26
- export declare class FieldGroup {
27
- label: string;
28
- fields: FieldColumn;
29
- hintOptions?: HintOptions | undefined;
30
- /** @hidden */
31
- constructor(label: string, fields: FieldColumn, hintOptions?: HintOptions | undefined);
32
- }
package/form/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './form-helpers';
2
2
  export * from './helpers';
3
+ export * from './models/field.model';
3
4
  export * from './auto-complete/auto-complete.directive';
4
5
  export * from './auto-complete/auto-complete.module';
5
6
  export * from './checkbox/checkbox.component';
@@ -44,6 +45,7 @@ export * from './form-generator/interfaces/form-generator-module-config';
44
45
  export * from './form-generator/providers/providers';
45
46
  export * from './form-generator/form-generator-field/form-generator-field.component';
46
47
  export * from './form-generator/form-generator-components-accessor.service';
48
+ export * from './form-generator/pipes/get-hint-options.pipe';
47
49
  export * from './form-group/constants';
48
50
  export * from './form-group/config/default-form-field-hint-options';
49
51
  export * from './form-group/fdp-form.module';
@@ -1,5 +1,6 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { FormInputMessageGroupComponent } from '@fundamental-ngx/core/form';
3
+ import { TriggerConfig } from '@fundamental-ngx/core/popover';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
5
6
  * This extends core implementation to support richer extensibility and instead of relying
@@ -8,10 +9,15 @@ import * as i0 from "@angular/core";
8
9
  * Let's think of u
9
10
  */
10
11
  export declare class InputMessageGroupWithTemplate extends FormInputMessageGroupComponent {
12
+ /**
13
+ * To allow user to determine what event he wants to trigger the messages to show
14
+ * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).
15
+ */
16
+ triggers: (string | TriggerConfig)[];
11
17
  /**
12
18
  * Custom trigger element.
13
19
  */
14
20
  triggerItemTemplate: TemplateRef<any>;
15
21
  static ɵfac: i0.ɵɵFactoryDeclaration<InputMessageGroupWithTemplate, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<InputMessageGroupWithTemplate, "fdp-input-message-group", never, {}, {}, ["triggerItemTemplate"], ["*"], false, never, false>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputMessageGroupWithTemplate, "fdp-input-message-group", never, { "triggers": { "alias": "triggers"; "required": false; }; }, {}, ["triggerItemTemplate"], ["*"], false, never, false>;
17
23
  }
@@ -0,0 +1,20 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { HintOptions } from '@fundamental-ngx/platform/shared';
3
+ export interface FieldColumn {
4
+ [key: number]: Array<Field>;
5
+ }
6
+ export declare class Field {
7
+ name?: string | undefined;
8
+ rank?: number | undefined;
9
+ renderer?: TemplateRef<any> | undefined;
10
+ column?: number | undefined;
11
+ /** @hidden */
12
+ constructor(name?: string | undefined, rank?: number | undefined, renderer?: TemplateRef<any> | undefined, column?: number | undefined);
13
+ }
14
+ export declare class FieldGroup {
15
+ label: string;
16
+ fields: FieldColumn;
17
+ hintOptions?: HintOptions | undefined;
18
+ /** @hidden */
19
+ constructor(label: string, fields: FieldColumn, hintOptions?: HintOptions | undefined);
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/platform",
3
- "version": "0.45.1-rc.8",
3
+ "version": "0.45.1",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - platform",
6
6
  "license": "Apache-2.0",
@@ -13,11 +13,11 @@
13
13
  "node": ">= 10"
14
14
  },
15
15
  "peerDependencies": {
16
- "@fundamental-ngx/core": "0.45.1-rc.8"
16
+ "@fundamental-ngx/core": "0.45.1"
17
17
  },
18
18
  "dependencies": {
19
- "@fundamental-ngx/cdk": "0.45.1-rc.8",
20
- "@fundamental-ngx/i18n": "0.45.1-rc.8",
19
+ "@fundamental-ngx/cdk": "0.45.1",
20
+ "@fundamental-ngx/i18n": "0.45.1",
21
21
  "fast-deep-equal": "3.1.3",
22
22
  "focus-trap": "^7.1.0",
23
23
  "lodash-es": "^4.17.0",
@@ -32,7 +32,7 @@ function callCoreSchematic(options) {
32
32
  (0, dependencies_1.addPackageJsonDependency)(tree, {
33
33
  type: dependencies_1.NodeDependencyType.Default,
34
34
  // Will be replaced with the real version during sync-version script run
35
- version: `0.45.1-rc.8`,
35
+ version: `0.45.1`,
36
36
  name: '@fundamental-ngx/core'
37
37
  });
38
38
  const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask({
@@ -1,12 +1,13 @@
1
- import { AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, InjectionToken, OnDestroy, OnInit } from '@angular/core';
2
2
  import { ControlContainer, ControlValueAccessor, NgControl, NgForm } from '@angular/forms';
3
3
  import { BooleanInput } from '@angular/cdk/coercion';
4
- import { Subject } from 'rxjs';
4
+ import { Observable, Subject } from 'rxjs';
5
5
  import { Nullable } from '@fundamental-ngx/cdk/utils';
6
6
  import { BaseComponent } from '../base';
7
7
  import { FormStates } from '@fundamental-ngx/cdk/forms';
8
8
  import { PlatformFormField, PlatformFormFieldControl } from './form-field';
9
9
  import * as i0 from "@angular/core";
10
+ export declare const FDP_DO_CHECK: InjectionToken<Observable<void>>;
10
11
  /**
11
12
  * All form components share the same information (value, name, placeholder,.. ) as well as
12
13
  * the same behavior given by ControlValueAccessor.
@@ -75,16 +76,18 @@ export declare abstract class BaseInput extends BaseComponent implements Platfor
75
76
  */
76
77
  abstract get value(): any;
77
78
  abstract set value(value: any);
78
- /**
79
- * Reference to internal Input element
80
- */
81
- protected _elementRef: ElementRef;
82
79
  /**
83
80
  * See @FormFieldControl
84
81
  */
85
82
  focused: boolean;
83
+ /** set when input field is mandatory form field */
84
+ required: boolean;
86
85
  /** Whether control has errors */
87
86
  get controlInvalid(): boolean;
87
+ /**
88
+ * Reference to internal Input element
89
+ */
90
+ protected _elementRef: ElementRef;
88
91
  /**
89
92
  * @hidden
90
93
  */
@@ -95,15 +98,15 @@ export declare abstract class BaseInput extends BaseComponent implements Platfor
95
98
  readonly stateChanges: Subject<any>;
96
99
  /** @hidden */
97
100
  readonly formField: PlatformFormField | null;
98
- /** set when input field is mandatory form field */
99
- required: boolean;
101
+ /** @hidden */
102
+ readonly _doCheck$: Observable<void> | null;
103
+ /** @hidden */
104
+ protected constructor(cd: ChangeDetectorRef, elementRef: ElementRef, ngControl: NgControl, controlContainer: ControlContainer, ngForm: NgForm, formField: PlatformFormField, formControl: PlatformFormFieldControl);
100
105
  /** @hidden */
101
106
  onChange: (value: any) => void;
102
107
  /** @hidden */
103
108
  onTouched: () => void;
104
109
  /** @hidden */
105
- protected constructor(cd: ChangeDetectorRef, elementRef: ElementRef, ngControl: NgControl, controlContainer: ControlContainer, ngForm: NgForm, formField: PlatformFormField, formControl: PlatformFormFieldControl);
106
- /** @hidden */
107
110
  ngOnInit(): void;
108
111
  /**
109
112
  * Re-validate and emit event to parent container on every CD cycle as they are some errors