import { BehaviorSubject } from 'rxjs'; import { BasicModel } from './basic'; import { ValidateOption } from '../validate'; import { BasicBuilder } from '../builders/basic'; import { IModel } from './base'; declare const FIELD_ARRAY_ID: unique symbol; declare class FieldArrayModel = IModel> extends BasicModel { private readonly defaultValue; /** * @internal */ [FIELD_ARRAY_ID]: boolean; readonly children$: BehaviorSubject; private readonly childFactory; owner: IModel | null; /** @internal */ constructor(childBuilder: BasicBuilder | null, defaultValue: readonly Item[]); /** * 重置 `FieldArray` 为初始值,初始值通过 `initialize` 设置;如果初始值不存在就使用默认值 */ reset(): void; /** * 清除 `FieldArray` 的初始值,并将当前值设置为默认值 */ clear(): void; /** * 获取 `FieldArray` 内的所有 model */ get children(): Child[]; /** * `FieldArray` 内所有 model 是否都通过了校验 */ valid(): boolean; /** * 获取 `FieldArray` 内的原始值 */ getRawValue(): (Item | null)[]; /** * 获取 `FieldArray` 的用于表单提交的值,和原始值可能不一致 */ getSubmitValue(): (Item | null)[]; /** * 修改 `FieldArray` 的值 * @param value 要修改的值 */ patchValue(value: Item[]): void; /** * 初始化 `FieldArray` 的值,同时设置 `initialValue` * @param values 要设置为初始化值的值 */ initialize(values: Item[]): void; /** * 添加一批元素到 `FieldArray` 的末尾 * @param items 待添加的值 */ push(...items: Item[]): void; /** * 删除 `FieldArray` 最后的一个元素 */ pop(): Child | undefined; /** * 删除 `FieldArray` 第一个元素 */ shift(): Child | undefined; /** * 在 `FieldArray` 开头添加值 * @param items 待添加的值· */ unshift(...items: Item[]): void; /** * 在 `FieldArray` 的指定位置删除指定数量的元素,并添加指定的新元素 * @param start 开始删除的元素位置 * @param deleteCount 删除的元素个数 * @param items 待添加的元素值 */ splice(start: number, deleteCount?: number, ...items: readonly Item[]): Child[]; /** * 执行 `FieldArray` 的校验 * @param option 校验的参数 */ validate(option?: ValidateOption): Promise; /** * 是否 `FieldArray` 所有元素都没有修改过 */ pristine(): boolean; /** * 是否 `FieldArray` 中任意元素有过修改 * * `dirty === !pristine` */ dirty(): boolean; /** * 是否 `FieldArray` 任意元素被 touch 过 */ touched(): boolean; dispose(): void; } declare function isFieldArrayModel = IModel>(maybeModel: any): maybeModel is FieldArrayModel; export { FieldArrayModel, isFieldArrayModel }; //# sourceMappingURL=array.d.ts.map