zent
Version:
一套前端设计语言和基于React的实现
66 lines (65 loc) • 2.62 kB
TypeScript
import { BehaviorSubject } from 'rxjs';
import { BasicModel } from './basic';
import { ValidateOption } from '../validate';
import { INormalizeBeforeSubmit } from './field';
import type { BasicBuilder } from '../builders/basic';
import { IModel } from './base';
import { FIELD_ARRAY_ID } from './is';
import type { FieldArrayBuilder } from '../builders';
declare class FieldArrayModel<Item, Child extends IModel<Item> = IModel<Item>> extends BasicModel<readonly Item[]> {
private readonly defaultValue;
[FIELD_ARRAY_ID]: boolean;
protected readonly _displayName = "FieldArrayModel";
readonly children$: BehaviorSubject<Child[]>;
owner: IModel<any> | null;
readonly builder?: FieldArrayBuilder<BasicBuilder<Item, Child>>;
private _valid$?;
private _value$?;
private readonly invalidModels;
private readonly mapModelToSubscriptions;
private readonly childFactory;
normalizeBeforeSubmit: INormalizeBeforeSubmit<Item[], any>;
constructor(childBuilder: BasicBuilder<Item, Child> | null, defaultValue: readonly Item[]);
get value(): readonly Item[];
get value$(): BehaviorSubject<readonly Item[]>;
get valid$(): BehaviorSubject<boolean>;
_getValue$(shouldWarn?: boolean): BehaviorSubject<readonly Item[]>;
_getValid$(shouldWarn?: boolean): BehaviorSubject<boolean>;
reset(): void;
clear(): void;
clearError(): void;
get children(): ReadonlyArray<Child>;
get(index: number): Child;
getRawValue(): Item[];
getSubmitValue(): any;
patchValue(value: Item[]): void;
initialize(values: Item[]): void;
push(...models: Child[]): number;
push(...values: Item[]): number;
pop(): Child;
shift(): Child;
unshift(...models: Child[]): number;
unshift(...values: Item[]): number;
splice(start: number, deleteCount: number, ...models: readonly Child[]): Child[];
splice(start: number, deleteCount: number, ...values: readonly Item[]): Child[];
filter(predicate: (item: Child, index: number, array: Child[]) => boolean): this;
sort(compareFn: (a: Child, b: Child) => number): this;
validate(option?: ValidateOption): Promise<any>;
pristine(): boolean;
dirty(): boolean;
touched(): boolean;
dispose(): void;
private _linkChild;
private _initValue$;
private _initValid$;
private _initUnsubscribeChild;
private _getValue;
private _subscribeChild;
private _subscribeChildModel;
private _subscribeObservable;
private _unsubscribeChild;
private _disposeChild;
private _buildChild;
private _unsubscribeModel;
}
export { FieldArrayModel };