UNPKG

@ngneat/reactive-forms

Version:

(Angular Reactive) Forms with Benefits

20 lines (19 loc) 1.03 kB
import { FormGroup } from './form-group'; import { FormControl } from './form-control'; import { FormArray } from './form-array'; import { AbstractControl } from '@angular/forms'; declare type NonUndefined<T> = T extends undefined ? never : T; export declare type ControlsOf<T extends Record<string, any>> = { [K in keyof T]: NonUndefined<T[K]> extends AbstractControl ? T[K] : NonUndefined<T[K]> extends (infer R)[] ? FormArray<R> : NonUndefined<T[K]> extends Record<any, any> ? FormGroup<ControlsOf<T[K]>> : FormControl<T[K]>; }; export declare type ValuesOf<T extends ControlsOf<any>> = { [K in keyof T]: NonUndefined<T[K]> extends FormControl<infer R> ? R : NonUndefined<T[K]> extends FormGroup<infer R> ? ValuesOf<R> : NonUndefined<T[K]> extends FormArray<infer R, infer C> ? R[] : NonUndefined<T[K]>; }; export declare type DeepPartial<T> = { [K in keyof T]?: T[K] extends Record<any, any> ? DeepPartial<T[K]> : T[K]; }; export declare type BoxedValue<T> = T | { value: T; disabled?: boolean; }; export {};