UNPKG

@bimeister/pupakit.forms

Version:
36 lines (35 loc) 1.92 kB
import { OnDestroy, OnInit } from '@angular/core'; import { ControlValueAccessor, NgControl } from '@angular/forms'; import { Nullable } from '@bimeister/utilities'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { OnChangeCallback } from '../../types/on-change-callback.type'; import { OnTouchedCallback } from '../../types/on-touched-callback.type'; import * as i0 from "@angular/core"; export declare abstract class InputBaseControlValueAccessor<T> implements ControlValueAccessor, OnDestroy, OnInit { protected readonly ngControl: NgControl; protected readonly control$: BehaviorSubject<Nullable<NgControl>>; readonly value$: BehaviorSubject<T>; readonly isDisabled$: BehaviorSubject<Nullable<boolean>>; readonly isTouched$: BehaviorSubject<Nullable<boolean>>; readonly isFocused$: BehaviorSubject<Nullable<boolean>>; readonly isFilled$: BehaviorSubject<boolean>; readonly isValid$: Observable<boolean>; private readonly onChangeCallback$; private readonly onTouchedCallback$; protected readonly subscription: Subscription; constructor(ngControl: NgControl); protected abstract setValue(value: T): void; protected handleChangedValue(onChangeCallback: OnChangeCallback<any>, value: T): void; ngOnInit(): void; ngOnDestroy(): void; updateValue(updatedValue: T): void; writeValue(newValue: T): void; registerOnChange(onChange: OnChangeCallback<T>): void; registerOnTouched(onTouched: OnTouchedCallback): void; setDisabledState(isDisabled: boolean): void; private processSetDisabledState; private setControlRef; private processNgControlStatusChangesForHandleIsTouched; static ɵfac: i0.ɵɵFactoryDeclaration<InputBaseControlValueAccessor<any>, [{ optional: true; }]>; static ɵdir: i0.ɵɵDirectiveDeclaration<InputBaseControlValueAccessor<any>, never, never, {}, {}, never, never, false>; }