1 | import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
2 | import { EclatFormArrayConfig, EclatFormControlConfig, EclatFormGroupConfig } from './contracts/form-config';
|
3 | import { AbstractEclatFormControl } from './abstract-control';
|
4 | export declare type EclatFormChild<T> = T extends any[] ? EclatFormArray<T> : T extends Date | String | RegExp ? EclatFormControl<T> : T extends object ? EclatFormGroup<T> : EclatFormControl<T>;
|
5 | export declare function getEclatControl(config: any, data?: any): AbstractEclatFormControl<any> | null;
|
6 | export declare class EclatFormControl<T> extends AbstractEclatFormControl<T, FormControl> {
|
7 | constructor(config: EclatFormControlConfig<T>, initialData?: T);
|
8 | patchState(data: T, emitEvent?: boolean): void;
|
9 | resetState(data: T, emitEvent?: boolean): void;
|
10 | }
|
11 | export declare class EclatFormGroup<T> extends AbstractEclatFormControl<T, FormGroup> {
|
12 | children: {
|
13 | [P in keyof T]: EclatFormChild<T[P]>;
|
14 | };
|
15 | constructor(dfg: EclatFormGroupConfig<T>, initialData?: T);
|
16 | patchState(data: T, emitEvent?: boolean): void;
|
17 | resetState(data: T, emitEvent?: boolean): void;
|
18 | getChild<P extends keyof T>(key: P): EclatFormChild<T[P]>;
|
19 | private addChild;
|
20 | private removeChild;
|
21 | }
|
22 | export declare class EclatFormArray<T extends any[]> extends AbstractEclatFormControl<T, FormArray> {
|
23 | children: EclatFormChild<T[0]>[];
|
24 | private childConfig;
|
25 | constructor(dfa: EclatFormArrayConfig<T>, initialData?: T);
|
26 | addChild(data?: Partial<T[0]>): void;
|
27 | removeChild(index: number): void;
|
28 | patchState(data: T, emitEvent?: boolean): void;
|
29 | resetState(data: T, emitEvent?: boolean): void;
|
30 | getChild(index: number): EclatFormChild<T[0]>;
|
31 | }
|