@rxap/forms
Version:
This package provides a set of tools and directives to simplify working with Angular forms, including reactive forms, custom validators, and form directives for handling loading, submitting, and error states. It offers decorators for defining forms and co
90 lines (89 loc) • 6.28 kB
TypeScript
import { Observable, Subscription } from 'rxjs';
import { UntypedFormGroup } from '@angular/forms';
import { AbstractControl, AsyncValidator, ControlEventOptions, ControlOptions, ControlState, EmitEvent, ExtractAbstractControl, ExtractStrings, KeyValueControls, OnlySelf, ValidationErrors, Validator } from './types';
import { FormDefinition, FormGroupOptions, FormType } from './model';
export declare class RxapFormGroup<T = any, E extends ValidationErrors = any> extends UntypedFormGroup {
controls: ExtractAbstractControl<KeyValueControls<T>, T>;
/**
* @internal
*/
get rxapFormDefinition(): (FormType<T> & FormDefinition<T>) | undefined;
private _readonly;
get readonly(): boolean;
set readonly(value: boolean);
/**
* @internal
*/
private _rxapFormDefinition?;
readonly value: T;
readonly errors: E | null;
readonly valueChanges: Observable<T>;
readonly status: ControlState;
readonly statusChanges: Observable<ControlState>;
private touchChanges;
private dirtyChanges;
touch$: Observable<boolean>;
dirty$: Observable<boolean>;
readonly value$: Observable<T>;
readonly disabled$: Observable<boolean>;
readonly enabled$: Observable<boolean>;
readonly status$: Observable<ControlState>;
readonly errors$: Observable<E | null>;
readonly controlId: string;
get controlPath(): string;
get fullControlPath(): string;
constructor(controls: ExtractAbstractControl<KeyValueControls<T>, T>, options: FormGroupOptions);
select<R>(mapFn: (state: T) => R): Observable<R>;
getRawValue(): T;
get<K1 extends keyof T>(path: [K1]): AbstractControl<T[K1]>;
get<K1 extends keyof T, K2 extends keyof T[K1]>(path: [K1, K2]): AbstractControl<T[K1][K2]>;
get<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(path: [K1, K2, K3]): AbstractControl<T[K1][K2][K3]>;
get(path: string): AbstractControl;
getControl<P1 extends keyof T>(prop1: P1): AbstractControl<T[P1]>;
getControl<P1 extends keyof T, P2 extends keyof T[P1]>(prop1: P1, prop2: P2): AbstractControl<T[P1][P2]>;
getControl<P1 extends keyof T, P2 extends keyof T[P1], P3 extends keyof T[P1][P2]>(prop1: P1, prop2: P2, prop3: P3): AbstractControl<T[P1][P2][P3]>;
getControl<P1 extends keyof T, P2 extends keyof T[P1], P3 extends keyof T[P1][P2], P4 extends keyof T[P1][P2][P3]>(prop1: P1, prop2: P2, prop3: P3, prop4: P4): AbstractControl<T[P1][P2][P3][P4]>;
addControl<K extends ExtractStrings<T>>(name: K, control: AbstractControl<T[K]>): void;
removeControl(name: ExtractStrings<T>): void;
contains(controlName: ExtractStrings<T>): boolean;
setControl<K extends ExtractStrings<T>>(name: K, control: AbstractControl<T[K]>): void;
setValue(valueOrObservable: Observable<T>, options?: ControlEventOptions): Subscription;
setValue(valueOrObservable: T, options?: ControlEventOptions): void;
private _patchValue;
patchValue(valueOrObservable: Observable<Partial<T>>, options?: ControlEventOptions): Subscription;
patchValue(valueOrObservable: Partial<T>, options?: ControlEventOptions): void;
disabledWhile(observable: Observable<boolean>, options?: ControlOptions): Subscription;
enabledWhile(observable: Observable<boolean>, options?: ControlOptions): Subscription;
mergeValidators(validators: Validator): void;
mergeAsyncValidators(validators: AsyncValidator): void;
markAsTouched(opts?: OnlySelf): void;
markAsUntouched(opts?: OnlySelf): void;
markAsPristine(opts?: OnlySelf): void;
markAsDirty(opts?: OnlySelf): void;
markAllAsDirty(): void;
markAllAsPristine(): void;
markAllAsUntouched(): void;
reset(formState?: Partial<T>, options?: ControlEventOptions): void;
setValidators(newValidator: Validator, updateValueAndValidity?: boolean): void;
setAsyncValidators(newValidator: AsyncValidator, updateValueAndValidity?: boolean): void;
validateOn(observableValidation: Observable<null | object>): Subscription;
hasError<K1 extends keyof T>(errorCode: ExtractStrings<E>, path?: [K1]): boolean;
hasError<K1 extends keyof T, K2 extends keyof T[K1]>(errorCode: ExtractStrings<E>, path?: [K1, K2]): boolean;
hasError<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(errorCode: ExtractStrings<E>, path?: [K1, K2, K3]): boolean;
hasError(errorCode: ExtractStrings<E>, path?: string): boolean;
setErrors(errors: Partial<E> | null, opts?: EmitEvent): void;
getError<K extends keyof E, K1 extends keyof T>(errorCode: K, path?: [K1]): E[K] | null;
getError<K extends keyof E, K1 extends keyof T, K2 extends keyof T[K1]>(errorCode: K, path?: [K1, K2]): E[K] | null;
getError<K extends keyof E, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(errorCode: K, path?: [K1, K2, K3]): E[K] | null;
getError<K extends keyof E>(errorCode: K, path?: string): E[K] | null;
hasErrorAndTouched<P1 extends keyof T>(error: ExtractStrings<E>, prop1?: P1): boolean;
hasErrorAndTouched<P1 extends keyof T, P2 extends keyof T[P1]>(error: ExtractStrings<E>, prop1?: P1, prop2?: P2): boolean;
hasErrorAndTouched<P1 extends keyof T, P2 extends keyof T[P1], P3 extends keyof T[P1][P2]>(error: ExtractStrings<E>, prop1?: P1, prop2?: P2, prop3?: P3): boolean;
hasErrorAndTouched<P1 extends keyof T, P2 extends keyof T[P1], P3 extends keyof T[P1][P2], P4 extends keyof T[P1][P2][P3]>(error: ExtractStrings<E>, prop1?: P1, prop2?: P2, prop3?: P3, prop4?: P4): boolean;
hasErrorAndDirty<P1 extends keyof T>(error: ExtractStrings<E>, prop1?: P1): boolean;
hasErrorAndDirty<P1 extends keyof T, P2 extends keyof T[P1]>(error: ExtractStrings<E>, prop1?: P1, prop2?: P2): boolean;
hasErrorAndDirty<P1 extends keyof T, P2 extends keyof T[P1], P3 extends keyof T[P1][P2]>(error: ExtractStrings<E>, prop1?: P1, prop2?: P2, prop3?: P3): boolean;
hasErrorAndDirty<P1 extends keyof T, P2 extends keyof T[P1], P3 extends keyof T[P1][P2], P4 extends keyof T[P1][P2][P3]>(error: ExtractStrings<E>, prop1?: P1, prop2?: P2, prop3?: P3, prop4?: P4): boolean;
setEnable(enable?: boolean, opts?: ControlEventOptions): void;
setDisable(disable?: boolean, opts?: ControlEventOptions): void;
}