UNPKG

1.74 kBTypeScriptView Raw
1import { FormArray, FormControl, FormGroup } from '@angular/forms';
2import { EclatFormArrayConfig, EclatFormControlConfig, EclatFormGroupConfig } from './contracts/form-config';
3import { AbstractEclatFormControl } from './abstract-control';
4export declare type EclatFormChild<T> = T extends any[] ? EclatFormArray<T> : T extends Date | String | RegExp ? EclatFormControl<T> : T extends object ? EclatFormGroup<T> : EclatFormControl<T>;
5export declare function getEclatControl(config: any, data?: any): AbstractEclatFormControl<any> | null;
6export 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}
11export 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}
22export 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}