UNPKG

@ohayojp/form

Version:
78 lines (77 loc) 3.06 kB
import { OhayoSFConfig } from '@ohayojp/util'; import { BehaviorSubject } from 'rxjs'; import { ErrorData } from '../errors'; import { SFFormValueChange, SFUpdateValueAndValidity, SFValue } from '../interface'; import { SFSchema, SFSchemaType } from '../schema'; import { SFUISchema, SFUISchemaItem, SFUISchemaItemRun } from '../schema/ui'; import { SchemaValidatorFactory } from '../validator.factory'; import { Widget } from '../widget'; export declare abstract class FormProperty { private _options; private _errors; private _valueChanges; private _errorsChanges; private _visible; private _visibilityChanges; private _root; private _parent; _objErrors: { [key: string]: ErrorData[]; }; schemaValidator: (value: SFValue) => ErrorData[]; schema: SFSchema; ui: SFUISchema | SFUISchemaItemRun; formData: {}; _value: SFValue; widget: Widget<FormProperty, SFUISchemaItem>; path: string; constructor(schemaValidatorFactory: SchemaValidatorFactory, schema: SFSchema, ui: SFUISchema | SFUISchemaItem, formData: {}, parent: PropertyGroup | null, path: string, _options: OhayoSFConfig); get valueChanges(): BehaviorSubject<SFFormValueChange>; get errorsChanges(): BehaviorSubject<ErrorData[] | null>; get type(): SFSchemaType; get parent(): PropertyGroup | null; get root(): PropertyGroup; get value(): SFValue; get errors(): ErrorData[] | null; get visible(): boolean; get valid(): boolean; get options(): OhayoSFConfig; /** * 设置值 * * @param onlySelf `true` 只对当前字段更新值和校验;`false` 包含上级字段 */ abstract setValue(value: SFValue, onlySelf: boolean): void; /** * 重置值,默认值为 `schema.default` * * @param onlySelf `true` 只对当前字段更新值和校验;`false` 包含上级字段 */ abstract resetValue(value: SFValue, onlySelf: boolean): void; /** * 更新值且校验数据 */ updateValueAndValidity(options?: SFUpdateValueAndValidity): void; /** 根据路径搜索表单属性 */ searchProperty(path: string): FormProperty | null; /** 查找根表单属性 */ findRoot(): PropertyGroup; private isEmptyData; private setCustomErrors; private mergeErrors; protected setErrors(errors: ErrorData[], emitFormat?: boolean): void; setParentAndPlatErrors(errors: ErrorData[], path: string): void; private setVisible; _bindVisibility(): void; } export declare abstract class PropertyGroup extends FormProperty { properties: { [key: string]: FormProperty; } | FormProperty[] | null; getProperty(path: string): FormProperty | undefined; forEachChild(fn: (formProperty: FormProperty, str: string) => void): void; forEachChildRecursive(fn: (formProperty: FormProperty) => void): void; _bindVisibility(): void; private _bindVisibilityRecursive; isRoot(): boolean; }