@alauda/ui
Version:
Angular UI components by Alauda Frontend Team.
37 lines (36 loc) • 1.71 kB
TypeScript
import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { ReplaySubject } from 'rxjs';
import * as i0 from "@angular/core";
/**
* form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定;
* 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。
*/
export declare class CommonFormControl<V, M = V> implements ControlValueAccessor {
protected cdr: ChangeDetectorRef;
get disabled(): boolean | "";
set disabled(val: boolean | '');
get readonly(): boolean;
set readonly(val: boolean);
get propValue(): V;
set propValue(val: V);
valueChange: EventEmitter<V>;
protected onChange: (_: V) => void;
protected onTouched: () => void;
private _propValue;
private _disabled;
private _readonly;
model: M;
model$: ReplaySubject<M>;
constructor(cdr: ChangeDetectorRef);
registerOnChange(fn: (_: V) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState(isDisabled: boolean): void;
writeValue(value: V): void;
emitModel(model: M): void;
emitValue(value: V): void;
protected valueIn(value: V): M;
protected modelOut(model: M): V;
static ɵfac: i0.ɵɵFactoryDeclaration<CommonFormControl<any, any>, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<CommonFormControl<any, any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "propValue": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}