import { FormHTMLAttributes, ReactNode } from "react";
import { InputCurrencyType } from "../Input/interface";
import { DesignTypes } from "../typings";
import { Store } from "./StoreClass";
export interface RulesProps {
validateTrigger?: string | string[];
validateLevel?: 'error' | 'warning';
required?: boolean;
type?: string;
length?: number;
maxLength?: number;
minLength?: number;
includes?: boolean;
deepEqual?: any;
empty?: boolean;
min?: number;
max?: number;
equal?: number;
positive?: boolean;
negative?: boolean;
hasKeys?: string[];
match?: RegExp;
uppercase?: boolean;
lowercase?: boolean;
true?: boolean;
false?: boolean;
validator?: (value: FieldValue | undefined, callback: (error?: ReactNode) => void) => void;
message?: ReactNode;
}
export declare type FormItemBaseType = {
/**
* 是否显示标签后的一个冒号
*/
colon?: boolean | ReactNode;
/**
* 是否禁用,优先级高于 Form 的 disabled 属性
*/
disabled?: boolean;
/**
* 隐藏表单项. 表单字段值仍然会被获取
*/
hidden?: boolean;
/**
* 标签的文本对齐方式,优先级高于 Form
* 默认 right
*/
labelAlign?: 'left' | 'right';
labelWidth?: number | string;
width?: string | number;
label?: ReactNode | ((validateStatus: FormItemBaseType['validateStatus']) => ReactNode);
/**
* 是否在 required 的时候显示加重的红色星号,设置 position 可选择将星号置于 label 前/后
* 默认 true
*/
requiredSymbol?: boolean | {
position: 'start' | 'end';
};
/**
* 校验状态
*/
validateStatus?: 'success' | 'warning' | 'error' | 'validating';
/**
* 将Form内保存的当前控件对应的值进行一定的转换,再传递给控件
*/
formatter?: (value: FieldValue) => any;
/**
* 表单的布局,有三种布局,水平、垂直、多列。
* 默认 horizontal
*/
layout?: 'horizontal' | 'vertical' | 'inline';
/**
* 将控件的 value 进行一定的转换再保存到form中。
*/
name: string;
message?: ReactNode;
normalize?: (value: FieldValue, prevValue: FieldValue, allValues: Partial) => any;
children?: ReactNode | ((formData?: Partial) => ReactNode) | undefined;
} & Pick;
export declare type FormItemPropsType = FormItemBaseType;
export interface FormBaseType extends Pick {
width?: string | number;
initialValues?: Partial;
form?: FormInstance;
/**
* 表单为几列
* 默认为 1
*/
columns?: number;
/**
* 表单项值改变时候触发。和 onValuesChange 不同的是只会在用户操作表单项时触发
*/
onChange?: (value: FormData, values: FormData, oldValue: FormData) => void;
/**
* 任意表单项值改变时候触发。第一个参数是被改变表单项的值,第二个参数是所有的表单项值
*/
onValuesChange?: (value: FormData, values: FormData, oldValue: FormData) => void;
}
export interface FormPropsInterface extends FormBaseType, Omit, 'onChange' | 'onSubmit' | 'value' | 'children'> {
children?: ReactNode | ((formData?: Partial) => ReactNode) | undefined;
}
export declare type FormContextType = FormBaseType & {
/**
* 组件是否再From组件下
*/
inForm: boolean;
store?: FormInstance;
updataFieldsName: FieldKey[];
};
export declare type FormItemContextType = FormItemBaseType & InputCurrencyType & {
inFormItem: boolean;
value?: any;
};
export declare type FormInstance = Pick, 'getFields' | 'getOldFields' | 'getFieldsValue' | 'getFieldValue' | 'getOldFieldsValue' | 'getOldFieldValue' | 'setFieldValue' | 'setFieldsValue' | 'getOldStore' | 'getUpdateFieldsName'> & {
getInnerMethods: () => InnerMethodsReturnType;
};
export declare type InnerMethodsReturnType = Pick, 'setStore' | 'setInitialValues' | 'innerSetFieldValue' | 'updateCallBack' | 'setUpdateCallBack' | 'getUpdateFieldsName'>;