import { ReactNode } from "react"; import { CommonObject, NamePath, ValuesInT } from "./types"; export declare type TNameCollection = { nameList?: NamePath[]; groupName?: NamePath; getStoreAll?: boolean; }; export interface IKuFromInstance { validateFields: (validate?: T) => Promise; setFieldsValue: (values: ValuesInT, isReset?: boolean) => void; setInitValue: (values: ValuesInT) => void; getFieldsValue: (validate?: T) => undefined extends T ? Values : any; getFieldValue: (name: NamePath) => any; setFieldValue: (name: NamePath, value: any) => void; isFieldsTouched: (validate?: TNameCollection) => boolean; clearFieldsTouched: (validate?: TNameCollection) => void; resetFields: () => void; clearValidate: (validate?: TNameCollection) => void; } export declare type Trigger = "onChange" | "onValidate" | "onBlur" | string; export interface IKuFmCommonProps { /** 是否不可编辑优先级大于filed */ disabled?: boolean; /** 排列方式 */ layout?: "horizontal" | "vertical" | "inline" | "inline-horizontal"; /** label 为空也会占位只是不显示*/ labelAlign?: "left" | "right"; /** component size */ size?: "small" | "middle" | "large"; /** span offset */ labelCol?: { span: number; offset: number; }; /** line count normal 3 */ count?: number; /** 配合 label 属性使用,表示是否显示 label 后面的冒号 */ colon?: boolean; /** validate trigger */ validateTrigger?: Trigger | Trigger[]; } export interface IKuForm extends IKuFmCommonProps { /** * @description: value改变监听 * @params changedValues 改变的值 * @params allValues 所有的值 * @params formChange 是否来自组件自身onChange * @return {*} */ onValuesChange?: (changedValues: CommonObject, allValues: CommonObject) => void; /** 当前form实例 */ form: IKuFromInstance; /** 默认值 */ initialValues?: CommonObject; children?: ReactNode; } export declare type TOnValueChange = { /** 改变字段 */ name: NamePath; /** 改变的值 */ value?: any; /** 旧的数据集合(用来处理setFilesValue) */ oldValues?: any; /** 是否重置(包含初始化) */ isReset?: boolean; /** 来自控件自身调用onChange 或者 来自关联改变值(为true的情况才会触发onValuesChange) */ formChange?: boolean; /** 来自批量赋值(批量赋值的情况下 不需要再次set store value) */ fromSetFilesValue?: boolean; }; export declare type TGroupNames = { [key: string]: NamePath[]; };