UNPKG

reactive-forms-typed

Version:
71 lines (70 loc) 3.23 kB
import { AbstractControl as NgAbstractControl, FormControl as NgFormControl, FormGroup as NgFormGroup, FormArray as NgFormArray } from "@angular/forms"; import { Observable } from "rxjs"; import { IFormGroupPrivates } from "./FormTypeBuilder.extensions"; interface AbstractControl<T = any> extends NgAbstractControl { readonly valueChanges: Observable<T>; readonly value: T; setValue(value: T, options?: Object): void; get<K extends keyof T>(path: K): AbstractControl<T[K]>; get<S>(path: (string | number)[]): AbstractControl<S>; get(path: (string | number)[]): AbstractControl<any>; } interface FormControl<T = any, TParent = any> extends NgFormControl { readonly parent: FormGroup<TParent> | FormArray<TParent>; readonly valueChanges: Observable<T>; readonly value: T; setValue(value: T, options?: Object): void; get<K extends keyof T>(path: K): AbstractControl<T[K]>; get<S>(path: (string | number)[]): AbstractControl<S>; get(path: (string | number)[]): AbstractControl<any>; } interface FormGroup<T = any> extends NgFormGroup, IFormGroupPrivates { readonly controls: { [P in keyof T]: AbstractControl<T[P]>; }; readonly valueChanges: Observable<T>; readonly value: T; get<K extends keyof T>(path: K): AbstractControl<T[K]>; get<S>(path: (string | number)[]): AbstractControl<S>; get(path: (string | number)[]): AbstractControl<any>; registerControl<K extends keyof T>(name: keyof K, control: AbstractControl<T[K]>): AbstractControl<T[K]>; addControl<K extends keyof T>(name: keyof K, control: AbstractControl<T[K]>): void; setValue(value: T, options?: Object): void; patchValue(value: T, options?: Object): void; getRawValue(): T; setErrors(config: any): any; setFormErrors(config: { [p in keyof T]: any; }): any; setFormControlErrors(string: keyof T, config: { [key: string]: any; }): any; markAsSubmitted(): void; onInit(): void; isSubmitted(): boolean; addFormControlValidityTracker(fromControl: keyof T, toControl: keyof T): any; } interface FormArray<T = any> extends NgFormArray { readonly valueChanges: Observable<T[]>; readonly value: T[]; push(control: AbstractControl<T>): void; insert(index: number, control: AbstractControl<T>): void; setValue(value: T[], options?: Object): void; patchValue(value: T[], options?: Object): void; getRawValue(): T[]; at(index: number): AbstractControl<T>; } interface FormControlForValidation<T = any, TParent = any> extends NgFormControl { readonly parent: FormGroup<TParent>; readonly valueChanges: Observable<T>; readonly value: T; setValue(value: T, options?: Object): void; get<K extends keyof T>(path: K): AbstractControl<T[K]>; get<S>(path: (string | number)[]): AbstractControl<S>; get(path: (string | number)[]): AbstractControl<any>; } export { AbstractControl as NgTypeAbstractControl }; export { FormControl as NgTypeFormControl }; export { FormControlForValidation as NgTypeFormControlValidator }; export { FormGroup as NgTypeFormGroup }; export { FormArray as NgTypeFormArray };