zent
Version:
一套前端设计语言和基于React的实现
57 lines (56 loc) • 2.58 kB
TypeScript
import { BehaviorSubject, Subject } from 'rxjs';
import type { FieldSetBuilder } from '../builders/set';
import { Maybe } from '../maybe';
import type { UnknownFieldSetBuilderChildren, UnknownFieldSetModelChildren } from '../utils';
import { IMaybeError, ValidateOption } from '../validate';
import { IModel } from './base';
import { BasicModel } from './basic';
import { INormalizeBeforeSubmit } from './field';
import { SET_ID } from './is';
declare type $FieldSetValue<Children extends UnknownFieldSetModelChildren> = {
[Key in keyof Children]: Children[Key] extends IModel<infer V> ? V : never;
};
declare class FieldSetModel<Children extends UnknownFieldSetModelChildren = UnknownFieldSetModelChildren> extends BasicModel<$FieldSetValue<Children>> {
[SET_ID]: boolean;
protected readonly _displayName: string;
patchedValue: Partial<$FieldSetValue<Children>> | null;
readonly childRegister$: Subject<string>;
readonly childRemove$: Subject<string>;
readonly children: Children;
owner: IModel<any> | null;
readonly builder?: FieldSetBuilder<UnknownFieldSetBuilderChildren>;
private _valid$?;
private _value$?;
private readonly invalidModels;
private readonly mapModelToSubscriptions;
normalizeBeforeSubmit: INormalizeBeforeSubmit<$FieldSetValue<Children>, any>;
constructor(children: Children, id?: string);
get value(): $FieldSetValue<Children>;
get value$(): BehaviorSubject<$FieldSetValue<Children>>;
get valid$(): BehaviorSubject<boolean>;
_getValid$(shouldWarn?: boolean): BehaviorSubject<boolean>;
_getValue$(shouldWarn?: boolean): BehaviorSubject<$FieldSetValue<Children>>;
initialize(values: $FieldSetValue<Children>): void;
getPatchedValue<T>(name: string): Maybe<T>;
getRawValue(): $FieldSetValue<Children>;
getSubmitValue(): any;
registerChild(name: string, model: BasicModel<any>): void;
removeChild<T extends keyof Children>(name: T): Children[T] | null;
dispose(): void;
patchValue(value: Partial<$FieldSetValue<Children>>): void;
clear(): void;
clearError(): void;
reset(): void;
validate(option?: ValidateOption): Promise<IMaybeError<any> | IMaybeError<any>[]>;
pristine(): boolean;
dirty(): boolean;
touched(): boolean;
get<Name extends keyof Children>(name: Name): Children[Name] | undefined | null;
private _setValid;
private _initValue$;
private _initValid$;
private _subscribeChild;
private _unsubscribeChild;
private _subscribeObservable;
}
export { FieldSetModel, $FieldSetValue };