UNPKG

@al00x/forms

Version:

Angular Forms, the way it should be!

38 lines (37 loc) 1.96 kB
import { AbstractControl, FormControl, FormControlState, FormControlStatus, ValidatorFn } from '@angular/forms'; import { Observable } from 'rxjs'; export interface FormControlExtended<TValue = any, DATA = any> extends FormControl<TValue> { extended: true; status$: Observable<FormControlStatus>; invalid$: Observable<boolean>; valid$: Observable<boolean>; value$: Observable<TValue | undefined>; error$: Observable<string | undefined>; hasValue$: Observable<boolean>; empty$: Observable<boolean>; selectedItems$: Observable<any[] | undefined>; selectedItems: any[] | undefined; readonly$: Observable<boolean>; readonly: boolean; disabled$: Observable<boolean>; enabled$: Observable<boolean>; touched$: Observable<boolean>; dirty$: Observable<boolean>; showError$: Observable<boolean>; displayText$: Observable<string | undefined>; displayText: string | undefined; displayControl: FormControl<string | undefined | null>; data$: Observable<DATA | undefined>; data: DATA | undefined; customError?: string; setReadonly: (value: boolean) => FormControlExtended<TValue, DATA>; setDisplayText: (value: any | undefined) => FormControlExtended<TValue>; setSelectedItems: (value: any[] | undefined) => FormControlExtended<TValue, DATA>; setCustomError: (value: string | undefined) => FormControlExtended<TValue, DATA>; setDisabled: (value: boolean) => FormControlExtended<TValue, DATA>; getValue: () => TValue | null; setData: (value: DATA | undefined) => FormControlExtended<TValue, DATA>; emitStatus: () => void; } export declare function formControl<T, DATA = any>(value?: FormControlState<T> | T | null, validators?: ValidatorFn | ValidatorFn[], nullable?: boolean): FormControlExtended<T, DATA>; export declare function isFormControlExtended(control: AbstractControl | FormControl | FormControlExtended): control is FormControlExtended;