UNPKG

@ngneat/reactive-forms

Version:

(Angular Reactive) Forms with Benefits

22 lines (21 loc) 1.84 kB
import { AbstractControl, AbstractControlOptions, AsyncValidatorFn, UntypedFormBuilder, ValidatorFn } from '@angular/forms'; import { FormControl, FormGroup } from ".."; import { FormArray } from "./form-array"; import { BoxedValue, ControlsOf } from "./types"; import * as i0 from "@angular/core"; export declare class FormBuilder extends UntypedFormBuilder { control<T>(formState?: BoxedValue<T>, validatorOrOpts?: ConstructorParameters<typeof FormControl>[1], asyncValidator?: ConstructorParameters<typeof FormControl>[2]): FormControl<T>; array<T, Control extends AbstractControl = T extends Record<any, any> ? FormGroup<ControlsOf<T>> : FormControl<T>>(controlsConfig: Control[], validatorOrOpts?: ConstructorParameters<typeof FormArray>[1], asyncValidator?: ConstructorParameters<typeof FormArray>[2]): FormArray<T, Control>; group<T extends Record<string, any>>(controlsConfig: Controls<T>, options?: AbstractControlOptions): FormGroup<GroupResolverFormBuilder<T>>; static ɵfac: i0.ɵɵFactoryDeclaration<FormBuilder, never>; static ɵprov: i0.ɵɵInjectableDeclaration<FormBuilder>; } export declare type GroupResolverFormBuilder<T extends Record<string, any>> = { [K in keyof T]: T[K] extends AbstractControl ? T[K] : T[K] extends (infer U)[] ? FormControl<ResolveTypeArray<U>> : FormControl<T[K]>; }; declare type FormControlBuilderOptions<T> = [T, (ValidatorFn | ValidatorFn[] | null)?, (AsyncValidatorFn | AsyncValidatorFn[] | null)?]; declare type ResolveTypeArray<U> = Exclude<U, null | ValidatorFn | ValidatorFn[] | AsyncValidatorFn | AsyncValidatorFn[]>; declare type Controls<T> = { [K in keyof T]: T[K] extends AbstractControl ? T[K] : T[K] extends (infer U)[] ? FormControlBuilderOptions<ResolveTypeArray<U>> : T[K] extends Record<any, any> ? FormGroup<Controls<T[K]>> : T[K]; }; export {};