@zarlex/ngx-accessor
Version:
This library provides an adapter to interact with Angular forms. It also provides an adapter to work with object signals and forms
24 lines (23 loc) • 1.2 kB
TypeScript
import { Signal } from '@angular/core';
import { Observable } from 'rxjs';
import { ArrayAccessors } from '../type-utils';
import { IndicesOf } from '../type-utils/array.types';
import { ValueValidation } from '../validation/value-validation';
export interface Accessor<TProperties, TValueType> {
readonly id: string;
readonly isRequired: Signal<boolean>;
readonly isDirty: Signal<boolean>;
readonly property: keyof TProperties;
readonly arrayAccessors: ArrayAccessors<TValueType>;
readonly validation: ValueValidation<TValueType>;
readonly get: Signal<TValueType>;
getValue<Type extends TProperties[Property], Property extends keyof TProperties>(): TValueType;
get$<Type extends TProperties[Property], Property extends keyof TProperties>(): Observable<TValueType>;
set<Property extends keyof TProperties>(value: TValueType): void;
access<Property extends keyof TValueType>(key: TValueType extends Array<any> ? IndicesOf<TValueType> : Property): Accessor<TValueType, TValueType[Property]>;
getAccessors(): ArrayAccessors<TValueType>;
getAccessKey(): string;
destroy(): void;
setDirty(isDirty: boolean): void;
setPristine(): void;
}