@bimeister/pupakit.forms
Version:
PupaKit Forms
36 lines (35 loc) • 1.92 kB
TypeScript
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>;
}