import { BehaviorSubject } from 'rxjs'; import { BasicModel } from './basic'; import { ValidateOption } from '../validate'; declare const FIELD_ID: unique symbol; export interface INormalizeBeforeSubmit { (a: A): B; } declare class FieldModel extends BasicModel { private readonly defaultValue; /** * @internal */ [FIELD_ID]: boolean; readonly value$: BehaviorSubject; isTouched: boolean; /** * 输入法的 composition 状态 */ isCompositing: boolean; /** * 用于表单提交前格式化 `Field` 值的回调函数 */ normalizeBeforeSubmit: INormalizeBeforeSubmit; owner: BasicModel | null; /** @internal */ constructor(defaultValue: Value); /** * 获取 `Field` 当前的值 */ get value(): Value; /** * 设置 `Field` 的值 */ set value(value: Value); /** * 重置 `Field` 为初始值,初始值通过 `initialize` 设置;如果初始值不存在就使用默认值 */ reset(): void; /** * 清除 `Field` 的初始值,并将当前值设置为默认值 */ clear(): void; /** * 设置 `Field` 为指定的值,同时会设置初始值 * @param value 要设置的值 */ initialize(value: Value): void; getRawValue(): Value; /** * 获取用于表单提交的值 */ getSubmitValue(): any; /** * `Field` 是否所有校验都通过了 */ valid(): boolean; /** * 执行 `Field` 的校验规则 * @param option 执行校验规则的参数 */ validate(option?: ValidateOption): Promise>; /** * 更新 `Field` 的值 * @param value 要设置的值 */ patchValue(value: Value): void; /** * `Field` 的值是否没有改变过,如果存在初始值会和初始值比较,否则和默认值比较 */ pristine(): boolean; /** * `Field` 的值是否改变过,如果存在初始值会和初始值比较,否则和默认值比较 * * `dirty === !pristine` */ dirty(): boolean; /** * 用户是否操作过 `Field`,一般是在 `blur` 事件后设置,部分 `Field` 没有 `blur` 事件可能会在 `change` 的时候设置这个状态 */ touched(): boolean; } declare function isFieldModel(maybeModel: any): maybeModel is FieldModel; export { FieldModel, isFieldModel }; //# sourceMappingURL=field.d.ts.map