import { Subject } from 'rxjs'; import { BasicModel } from './basic'; import { IMaybeError, ValidateOption } from '../validate'; import { Maybe } from '../maybe'; import { IModel } from './base'; declare type $FieldSetValue>> = { [Key in keyof Children]: Children[Key]['phantomValue']; }; declare const SET_ID: unique symbol; declare class FieldSetModel> = Record>> extends BasicModel<$FieldSetValue> { /** * @internal */ [SET_ID]: boolean; /** @internal */ patchedValue: $FieldSetValue | null; childRegister$: Subject; childRemove$: Subject; readonly children: Children; owner: IModel | null; /** @internal */ constructor(children: Children, id?: string); /** * 初始化 `FieldSet` 的值,并设置 `initialValue` * @param values 待初始化的值 */ initialize(values: $FieldSetValue): void; /** * @internal */ getPatchedValue(name: string): Maybe; /** * 获取 `FieldSet` 的值 */ getRawValue(): $FieldSetValue; /** * 获取 `FieldSet` 用于表单提交的值 */ getSubmitValue(): any; /** * 在 `FieldSet` 上注册一个新的字段 * @param name 字段名 * @param model 字段对应的 model */ registerChild(name: string, model: BasicModel): void; /** * 在 `FieldSet` 上删除指定的字段 * @param name 字段名 */ removeChild(name: string): BasicModel; dispose(): void; /** * 是否 `FieldSet` 所有字段都通过了校验 */ valid(): boolean; /** * 更新 `FieldSet` 的值 * @param value 待更新的值 */ patchValue(value: Partial<$FieldSetValue>): void; /** * 清除 `FieldSet` 所有字段的值,同时清除 `initialValue` */ clear(): void; /** * 重置 `FieldValue` 所有字段的值,如果存在 `initialValue` 就是用初始值,否则使用默认值 */ reset(): void; /** * 执行 `FieldSet` 的校验 * @param option 校验的参数 */ validate(option?: ValidateOption): Promise | IMaybeError[]>; /** * 是否 `FieldSet` 上的所有字段都没有被修改过 */ pristine(): boolean; /** * 是否 `FieldSet` 上有任意字段被修改过 * * `dirty === !pristine` */ dirty(): boolean; /** * 是否 `FieldSet` 上有任意字段被 touch 过 * */ touched(): boolean; /** * 返回指定字段名对应的 model * @param name 字段名 */ get(name: Name): Children[Name] | undefined | null; } declare function isFieldSetModel> = Record>>(maybeModel: any): maybeModel is FieldSetModel; export { FieldSetModel, $FieldSetValue, isFieldSetModel }; //# sourceMappingURL=set.d.ts.map