///
import React from 'react';
import hoistNonReactStatic from 'hoist-non-react-statics';
import { IFormItemStore, IFormStore } from '../store/form';
import { RendererProps, TestFunc, RendererConfig } from '../factory';
import { FormHorizontal, FormSchemaBase } from './Form';
import { ActionObject, BaseApi, BaseApiObject, BaseSchemaWithoutType, ClassName, DataChangeReason, Schema } from '../types';
import { IScopedContext } from '../Scoped';
export type LabelAlign = 'right' | 'left' | 'top' | 'inherit';
export interface FormBaseControlWithoutSize {
/**
* 描述标题, 当值为 false 时不展示
*/
label?: string | false;
/**
* 描述标题
*/
labelAlign?: LabelAlign;
/**
* label自定义宽度,默认单位为px
*/
labelWidth?: number | string;
/**
* label展示形式
*/
labelOverflow?: 'default' | 'ellipsis';
/**
* 配置 label className
*/
labelClassName?: string;
/**
* 字段名,表单提交时的 key,支持多层级,用.连接,如: a.b.c
*/
name?: string;
/**
* 额外的字段名,当为范围组件时可以用来将另外一个值打平出来
*/
extraName?: string;
/**
* 显示一个小图标, 鼠标放上去的时候显示提示内容
*/
remark?: any;
/**
* 显示一个小图标, 鼠标放上去的时候显示提示内容, 这个小图标跟 label 在一起
*/
labelRemark?: any;
/**
* 输入提示,聚焦的时候显示
*/
hint?: string;
/**
* 当修改完的时候是否提交表单。
*/
submitOnChange?: boolean;
/**
* 是否只读
*/
readOnly?: boolean;
/**
* 只读条件
*/
readOnlyOn?: string;
/**
* 不设置时,当表单提交过后表单项每次修改都会触发重新验证,
* 如果设置了,则由此配置项来决定要不要每次修改都触发验证。
*/
validateOnChange?: boolean;
/**
* 描述内容,支持 Html 片段。
*/
description?: string;
/**
* @deprecated 用 description 代替
*/
desc?: string;
/**
* 配置描述上的 className
*/
descriptionClassName?: ClassName;
/**
* 配置当前表单项展示模式
*/
mode?: 'normal' | 'inline' | 'horizontal';
/**
* 当配置为水平布局的时候,用来配置具体的左右分配。
*/
horizontal?: FormHorizontal;
/**
* 表单 control 是否为 inline 模式。
*/
inline?: boolean;
/**
* 配置 input className
*/
inputClassName?: ClassName;
/**
* 占位符
*/
placeholder?: string | {
[propName: string]: string;
};
/**
* 是否为必填
*/
required?: boolean;
/**
* 验证失败的提示信息
*/
validationErrors?: {
isAlpha?: string;
isAlphanumeric?: string;
isEmail?: string;
isFloat?: string;
isInt?: string;
isJson?: string;
isLength?: string;
isNumeric?: string;
isRequired?: string;
isUrl?: string;
matchRegexp?: string;
matchRegexp2?: string;
matchRegexp3?: string;
matchRegexp4?: string;
matchRegexp5?: string;
maxLength?: string;
maximum?: string;
minLength?: string;
minimum?: string;
isDateTimeSame?: string;
isDateTimeBefore?: string;
isDateTimeAfter?: string;
isDateTimeSameOrBefore?: string;
isDateTimeSameOrAfter?: string;
isDateTimeBetween?: string;
isTimeSame?: string;
isTimeBefore?: string;
isTimeAfter?: string;
isTimeSameOrBefore?: string;
isTimeSameOrAfter?: string;
isTimeBetween?: string;
[propName: string]: any;
};
validations?: string | {
/**
* 是否是字母
*/
isAlpha?: boolean;
/**
* 是否为字母数字
*/
isAlphanumeric?: boolean;
/**
* 是否为邮箱地址
*/
isEmail?: boolean;
/**
* 是否为浮点型
*/
isFloat?: boolean;
/**
* 是否为整型
*/
isInt?: boolean;
/**
* 是否为 json
*/
isJson?: boolean;
/**
* 长度等于指定值
*/
isLength?: number;
/**
* 是否为数字
*/
isNumeric?: boolean;
/**
* 是否为必填
*/
isRequired?: boolean;
/**
* 是否为 URL 地址
*/
isUrl?: boolean;
/**
* 内容命中指定正则
*/
matchRegexp?: string;
/**
* 内容命中指定正则
*/
matchRegexp1?: string;
/**
* 内容命中指定正则
*/
matchRegexp2?: string;
/**
* 内容命中指定正则
*/
matchRegexp3?: string;
/**
* 内容命中指定正则
*/
matchRegexp4?: string;
/**
* 内容命中指定正则
*/
matchRegexp5?: string;
/**
* 最大长度为指定值
*/
maxLength?: number;
/**
* 最大值为指定值
*/
maximum?: number;
/**
* 最小长度为指定值
*/
minLength?: number;
/**
* 最小值为指定值
*/
minimum?: number;
/**
* 和目标日期相同,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isDateTimeSame?: string | string[];
/**
* 早于目标日期,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isDateTimeBefore?: string | string[];
/**
* 晚于目标日期,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isDateTimeAfter?: string | string[];
/**
* 早于目标日期或和目标日期相同,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isDateTimeSameOrBefore?: string | string[];
/**
* 晚于目标日期或和目标日期相同,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isDateTimeSameOrAfter?: string | string[];
/**
* 日期处于目标日期范围,支持指定粒度和区间的开闭形式,默认到毫秒, 左右开区间
* @version 2.2.0
*/
isDateTimeBetween?: string | string[];
/**
* 和目标时间相同,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isTimeSame?: string | string[];
/**
* 早于目标时间,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isTimeBefore?: string | string[];
/**
* 晚于目标时间,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isTimeAfter?: string | string[];
/**
* 早于目标时间或和目标时间相同,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isTimeSameOrBefore?: string | string[];
/**
* 晚于目标时间或和目标时间相同,支持指定粒度,默认到毫秒
* @version 2.2.0
*/
isTimeSameOrAfter?: string | string[];
/**
* 时间处于目标时间范围,支持指定粒度和区间的开闭形式,默认到毫秒, 左右开区间
* @version 2.2.0
*/
isTimeBetween?: string | string[];
[propName: string]: any;
};
/**
* 默认值,切记只能是静态值,不支持取变量,跟数据关联是通过设置 name 属性来实现的。
*/
value?: any;
/**
* 表单项隐藏时,是否在当前 Form 中删除掉该表单项值。注意同名的未隐藏的表单项值也会删掉
*/
clearValueOnHidden?: boolean;
/**
* 远端校验表单项接口
*/
validateApi?: string | BaseApiObject;
/**
* 自动填充,当选项被选择的时候,将选项中的其他值同步设置到表单内。
*
*/
autoFill?: {
[propName: string]: string;
} | {
/**
* 是否为参照录入模式,参照录入会展示候选值供用户选择,而不是直接填充。
*/
showSuggestion?: boolean;
/**
* 参照录入时,默认选中的值
*/
defaultSelection?: any;
/**
* 自动填充 api
*/
api?: BaseApi;
/**
* 是否展示数据格式错误提示,默认为不展示
* @default true
*/
silent?: boolean;
/**
* 填充时的数据映射
*/
fillMappinng?: {
[propName: string]: any;
};
/**
* 触发条件,默认为 change
*/
trigger?: 'change' | 'focus' | 'blur';
/**
* 弹窗方式,当为参照录入时用可以配置
*/
mode?: 'popOver' | 'dialog' | 'drawer';
/**
* 当参照录入为抽屉时可以配置弹出位置
*/
position?: string;
/**
* 当为参照录入时可以配置弹出容器的大小
*/
size?: string;
/**
* 参照录入展示的项
*/
columns?: Array;
/**
* 参照录入时的过滤条件
*/
filter?: any;
};
/**
* @default fillIfNotSet
* 初始化时是否把其他字段同步到表单内部。
*/
initAutoFill?: boolean | 'fillIfNotSet';
row?: number;
}
export interface FormBaseControl extends BaseSchemaWithoutType, FormBaseControlWithoutSize {
/**
* 表单项大小
*/
size?: 'xs' | 'sm' | 'md' | 'lg' | 'full';
}
export interface FormItemBasicConfig extends Partial {
type?: string;
wrap?: boolean;
renderLabel?: boolean;
renderDescription?: boolean;
test?: RegExp | TestFunc;
storeType?: string;
formItemStoreType?: string;
validations?: string;
strictMode?: boolean;
/**
* 是否是瘦子
*/
thin?: boolean;
/**
* schema变化使视图更新的属性白名单
*/
detectProps?: Array;
shouldComponentUpdate?: (props: any, prevProps: any) => boolean;
descriptionClassName?: string;
storeExtendsData?: boolean;
sizeMutable?: boolean;
weight?: number;
extendsData?: boolean;
showErrorMsg?: boolean;
validate?: (values: any, value: any) => string | boolean;
}
export interface FormItemProps extends RendererProps {
name?: string;
formStore?: IFormStore;
formItem?: IFormItemStore;
formInited: boolean;
formMode: 'normal' | 'horizontal' | 'inline' | 'row' | 'default';
formHorizontal: FormHorizontal;
formLabelAlign: LabelAlign;
formLabelWidth?: number | string;
defaultSize?: 'xs' | 'sm' | 'md' | 'lg' | 'full';
size?: 'xs' | 'sm' | 'md' | 'lg' | 'full';
labelAlign?: LabelAlign;
labelWidth?: number | string;
formLabelOverflow?: string;
labelOverflow?: 'default' | 'ellipsis';
disabled?: boolean;
btnDisabled: boolean;
defaultValue: any;
value?: any;
prinstine: any;
setPrinstineValue: (value: any) => void;
onChange: (value: any, submitOnChange?: boolean, changeImmediately?: boolean) => void;
onBulkChange?: (values: {
[propName: string]: any;
}, submitOnChange?: boolean, changeReason?: DataChangeReason) => void;
addHook: (fn: Function, mode?: 'validate' | 'init' | 'flush', enforce?: 'prev' | 'post') => () => void;
removeHook: (fn: Function, mode?: 'validate' | 'init' | 'flush') => void;
renderFormItems: (schema: Partial, region: string, props: any) => JSX.Element;
onFocus: (e: any) => void;
onBlur: (e: any) => void;
formItemValue: any;
getValue: () => any;
setValue: (value: any, key: string) => void;
inputClassName?: string;
renderControl?: (props: FormControlProps) => JSX.Element;
inputOnly?: boolean;
renderLabel?: boolean;
renderDescription?: boolean;
sizeMutable?: boolean;
wrap?: boolean;
hint?: string;
description?: string;
descriptionClassName?: string;
errors?: {
[propName: string]: string;
};
error?: string;
showErrorMsg?: boolean;
}
export type FormControlProps = RendererProps & {
onOpenDialog: (schema: Schema, data: any) => Promise;
} & Exclude;
export type FormItemComponent = React.ComponentType;
export type FormControlComponent = React.ComponentType;
export interface FormItemConfig extends FormItemBasicConfig {
component: FormControlComponent;
}
export declare class FormItemWrap extends React.Component {
lastSearchTerm: any;
target: HTMLElement;
mounted: boolean;
initedOptionFilled: boolean;
initedApiFilled: boolean;
toDispose: Array<() => void>;
constructor(props: FormItemProps);
componentDidMount(): void;
componentDidUpdate(prevProps: FormItemProps): void;
componentWillUnmount(): void;
handleFocus(e: any): void;
handleBlur(e: any): void;
handleAutoFill(type: string): void;
updateAutoFillData(context: any): void;
syncApiAutoFill: import("lodash").DebouncedFunc<(term: any, forceLoad?: boolean, skipIfExits?: any) => Promise>;
syncOptionAutoFill(selectedOptions: Array, skipIfExits?: boolean): void;
/**
* 应用映射函数,根据给定的映射关系,更新数据对象
*
* @param mapping 映射关系,类型为任意类型
* @param ctx 上下文对象,类型为任意类型
* @param skipIfExits 是否跳过已存在的属性,默认为 false
*/
applyMapping(mapping: any, ctx: any, skipIfExits?: boolean): void;
buildAutoFillSchema(): {
popOverContainer: any;
popOverClassName: any;
placement: any;
offset: any;
body: {
type: string;
title: string;
className: string;
body: {
type: string;
embed: boolean;
joinValues: boolean;
strictMode: boolean;
label: boolean;
labelField: any;
valueField: any;
multiple: any;
name: string;
value: any;
options: never[];
required: boolean;
source: any;
pickerSchema: {
type: string;
bodyClassName: string;
affixHeader: boolean;
alwaysShowPagination: boolean;
keepItemSelectionOnPageChange: boolean;
headerToolbar: never[];
footerToolbar: ({
type: string;
align: string;
className?: undefined;
} | {
type: string;
align: string;
className: string;
})[];
multiple: any;
filter: any;
columns: any;
};
}[];
actions: ({
type: string;
actionType: string;
label: any;
level?: undefined;
} | {
type: string;
actionType: string;
level: string;
label: any;
})[];
};
type?: undefined;
className?: undefined;
title?: undefined;
size?: undefined;
actions?: undefined;
} | {
type: any;
className: string;
title: any;
size: any;
body: {
wrapWithPanel: boolean;
type: string;
title: string;
className: string;
body: {
type: string;
embed: boolean;
joinValues: boolean;
strictMode: boolean;
label: boolean;
labelField: any;
valueField: any;
multiple: any;
name: string;
value: any;
options: never[];
required: boolean;
source: any;
pickerSchema: {
type: string;
bodyClassName: string;
affixHeader: boolean;
alwaysShowPagination: boolean;
keepItemSelectionOnPageChange: boolean;
headerToolbar: never[];
footerToolbar: ({
type: string;
align: string;
className?: undefined;
} | {
type: string;
align: string;
className: string;
})[];
multiple: any;
filter: any;
columns: any;
};
}[];
actions: ({
type: string;
actionType: string;
label: any;
level?: undefined;
} | {
type: string;
actionType: string;
level: string;
label: any;
})[];
};
actions: ({
type: string;
actionType: string;
label: any;
level?: undefined;
} | {
type: string;
actionType: string;
level: string;
label: any;
})[];
popOverContainer?: undefined;
popOverClassName?: undefined;
placement?: undefined;
offset?: undefined;
} | undefined;
handlePopOverConfirm(values: any): void;
handlePopOverAction(e: React.UIEvent, action: ActionObject, data: object, throwErrors?: boolean, delegate?: IScopedContext): any;
closePopOver(): void;
handleOpenDialog(schema: Schema, data: any): Promise;
handleDialogConfirm([values]: Array): void;
handleDialogClose(confirmed?: boolean): void;
renderControl(): JSX.Element | null;
/**
* 布局扩充点,可以自己扩充表单项的布局方式
*/
static layoutRenderers: {
[propsName: string]: (props: FormItemProps, renderControl: () => JSX.Element | null) => JSX.Element;
};
render(): React.JSX.Element | null;
}
export declare const detectProps: string[];
export declare function asFormItem(config: Omit): (Control: FormControlComponent) => {
new (props: Omit): {
ref: any;
getWrappedInstance(): any;
refFn(ref: any): void;
render(): React.JSX.Element;
context: unknown;
setState(state: {} | ((prevState: Readonly<{}>, props: Readonly>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly>;
state: Readonly<{}>;
refs: {
[key: string]: React.ReactInstance;
};
componentDidMount?(): void;
shouldComponentUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): boolean;
componentWillUnmount?(): void;
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly>, prevState: Readonly<{}>): any;
componentDidUpdate?(prevProps: Readonly>, prevState: Readonly<{}>, snapshot?: any): void;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): void;
};
displayName: string;
contextType: React.Context<{
storeType: string;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly fetcher: any;
readonly notify: any;
readonly isCancel: (value: any) => boolean;
readonly __: import("..").TranslateFn;
getStoreById(id: string): {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
readonly stores: {
[propName: string]: {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
};
} & {
addStore(store: {
[propName: string]: any;
storeType: string;
id: string;
path: string;
parentId?: string | undefined;
}): {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
removeStore(store: {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void; /**
* 当配置为水平布局的时候,用来配置具体的左右分配。
*/
} & import("mobx-state-tree").IStateTreeNode;
}, {
readonly fetcher: any;
readonly notify: any;
readonly isCancel: (value: any) => boolean;
readonly __: import("..").TranslateFn;
getStoreById(id: string): {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
readonly stores: {
[propName: string]: {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
};
} & {
addStore(store: {
[propName: string]: any;
storeType: string;
id: string;
path: string;
parentId?: string | undefined;
}): {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
removeStore(store: {
id: string;
path: string;
storeType: string;
disposed: boolean;
parentId: string;
childrenIds: import("mobx-state-tree").IMSTArray> & import("mobx-state-tree").IStateTreeNode>, [undefined]>>;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
} & import("mobx-state-tree").IStateTreeNode;
path: import("mobx-state-tree").IType;
storeType: import("mobx-state-tree").ISimpleType;
disposed: import("mobx-state-tree").IType;
parentId: import("mobx-state-tree").IType;
childrenIds: import("mobx-state-tree").IOptionalIType>, [undefined]>;
}, {
readonly parentStore: any;
readonly __: any;
readonly hasChildren: boolean;
readonly children: any[];
} & {
onChildStoreDispose(child: any): void;
syncProps(props: any, prevProps: any, list?: string[]): void;
dispose: (callback?: (() => void) | undefined) => void;
addChildId: (id: string) => void;
removeChildId: (id: string) => void; /**
* 是否只读
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void; /**
* 当配置为水平布局的时候,用来配置具体的左右分配。
*/
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
ComposedComponent: React.ComponentType;
} & hoistNonReactStatic.NonReactStatics & {
ComposedComponent: any;
} & {
ComposedComponent: any;
};
export declare function registerFormItem(config: FormItemConfig): RendererConfig;
export declare function FormItem(config: FormItemBasicConfig): (component: FormControlComponent) => any;
export declare function getFormItemByName(name: string): boolean;
export default FormItem;