@al00x/forms
Version:
Angular Forms, the way it should be!
21 lines (20 loc) • 1.03 kB
TypeScript
import { AbstractControl, FormControlStatus, FormGroup } from '@angular/forms';
import { Observable } from 'rxjs';
export interface FormGroupExtended<TValue extends {
[K in keyof TValue]: AbstractControl<any, any>;
} = any, DATA = any> extends FormGroup<TValue> {
extended: true;
status$: Observable<FormControlStatus>;
invalid$: Observable<boolean>;
valid$: Observable<boolean>;
data$: Observable<DATA | undefined>;
data: DATA | undefined;
markAllAsDirty: () => void;
setReadonly: (value: boolean, ...keys: (keyof TValue)[]) => FormGroupExtended<TValue, DATA>;
setDisabled: (value: boolean, ...keys: (keyof TValue)[]) => FormGroupExtended<TValue, DATA>;
setData: (value: DATA | undefined) => FormGroupExtended<TValue, DATA>;
}
export declare function formGroup<T extends {
[K in keyof T]: AbstractControl<any, any>;
}, DATA = any>(inputs: T): FormGroupExtended<T, any>;
export declare function isFormGroupExtended(group: FormGroup | FormGroupExtended): group is FormGroupExtended;