import { CommonProps, KeyType } from '@wakeadmin/element-adapter'; import { Ref } from '@wakeadmin/demi'; import { DefineOurComponent } from '../utils'; import { FatFormItemProps, FatFormGroupProps, FatFormSectionProps, FatFormMethods, FatFormProps, FatFormSlots, FatFormEvents } from './types'; import { FatFormTableColumn, FatFormTableProps } from './fat-form-table'; export declare const FAT_FORM_CHILD_TYPE: unique symbol; export type FatFormChild = any; export interface CommonDefinitionProps extends CommonProps { key?: KeyType; } /** * fat-item */ export interface FatFormItemDefinition extends FatFormItemProps, CommonDefinitionProps { [FAT_FORM_CHILD_TYPE]: 'item'; } /** * fat-section 分节 */ export interface FatFormSectionDefinition extends FatFormSectionProps, CommonDefinitionProps { [FAT_FORM_CHILD_TYPE]: 'section'; children?: FatFormChild[] | FatFormChild; } /** * fat-form 分组 */ export interface FatFormGroupDefinition extends FatFormGroupProps, CommonDefinitionProps { [FAT_FORM_CHILD_TYPE]: 'group'; children?: FatFormChild[] | FatFormChild; } export interface FatFormTableColumnDefinition extends FatFormTableColumn, CommonDefinitionProps { [FAT_FORM_CHILD_TYPE]: 'tableColumn'; } export interface FatFormTableDefinition extends Omit, 'columns'>, CommonDefinitionProps { [FAT_FORM_CHILD_TYPE]: 'table'; columns: any[]; } /** * fat-consumer */ export interface FatFormConsumerDefinition { [FAT_FORM_CHILD_TYPE]: 'consumer'; render?: (form: FatFormMethods) => any | FatFormChild[]; } export interface FatFormDefinition extends FatFormProps, CommonDefinitionProps { children?: FatFormChild[] | FatFormChild; } export type OmitType = Omit; export interface FatFormDefineHelpers { /** * 支持简单的 prop 类型安全验证 */ p: (key: keyof Store) => string; /** * 分组, FatFormGroup */ group: (g: OmitType>) => FatFormGroupDefinition; /** * 表单项, FatFormItem */ item: (g: OmitType>) => FatFormItemDefinition; /** * 表格列表, FatFormTable */ table: (g: OmitType>) => FatFormTableDefinition; /** * 表格项, FatFormTable#columns */ tableColumn: (g: OmitType>) => FatFormTableColumnDefinition; /** * 分节, FatFormSection */ section: (g: OmitType>) => FatFormSectionDefinition; /** * 联动, 如果要获取 form 对象,做一些联动, 推荐使用这个,而不是直接用 define 函数的 form.value, consumer 可以实现更精确的渲染 */ consumer: (render: (form: FatFormMethods) => any) => FatFormConsumerDefinition; renderChild: (child: FatFormChild) => any; renderChildren: (children: FatFormChild[] | FatFormChild) => any; } export type FatFormDefineProps = Partial & { extra: Extra; }>; export type FatFormDefine = (context: { form: Ref | undefined>; props: FatFormDefineProps; emit: (key: string, ...args: any[]) => void; } & FatFormDefineHelpers) => () => FatFormDefinition; export declare function useFatFormDefineUtils(customRender?: (child: any, renderChildren: (children: any) => any) => any): { item: (val: any) => any; group: (val: any) => any; section: (val: any) => any; consumer: (render: any) => any; table: (val: any) => any; tableColumn: (val: any) => any; renderChild: (child: any) => any; renderChildren: (children: any) => any; }; export declare function defineFatForm(define: FatFormDefine, options?: { name: string; }): DefineOurComponent, FatFormSlots, FatFormEvents, FatFormMethods>; //# sourceMappingURL=define-fat-form.d.ts.map