UNPKG

@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
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; }