import React from 'react'; import { IFieldType } from '@/common/types'; /** key- 函数组件 */ export declare type IComponentFCObject = { [propsName: string]: React.FC; }; /** key-类组件 */ export declare type IComponentClassObject = { [propsName: string]: React.ComponentClass; }; /** 组件类型 */ export declare type IComponentFCWithClass

= React.FC

| React.ComponentClass | React.ForwardRefExoticComponent

; /** key--组件 */ export declare type IComponentFCWithClassObject = { [propsName: string]: IComponentFCWithClass | any; }; /** 获取组件props 并分配到组件对应key */ export declare type IComponentFCWithClassObjectProps = { [P in keyof T]: React.ComponentProps; }; /** 获取组件props 并分配到对应code */ export declare type ICodeDistributeProps = K extends string ? { code: K; fieldType?: IFieldType; props?: React.ComponentProps; } : never; /** 获取组件props 分配到对应fieldType */ export declare type IFieldTypeDistributeProps = K extends IFieldType ? { code?: string; fieldType: K; props?: React.ComponentProps; } : never; export declare type IFieldSystemComponentConfig = ICodeDistributeProps; export declare type IFieldCustomComponentConfig = IFieldTypeDistributeProps; export declare type IFieldComponentConfig = IFieldSystemComponentConfig | IFieldCustomComponentConfig; export declare type IFieldConfigOutputType = 'element' | 'config' | 'function'; export interface IFieldRequiredConfig { outputs: Array; } export interface IFieldPartialConfig { /** 渲染函数 暂时未处理使用 */ render?: ((text: any, props: any, dom: JSX.Element) => JSX.Element); /** 是否展示字段 @default true */ display?: boolean; /** 归档后的字段,不可进行操作 用以展示 * 因此在 最终确定配置 `getProcessFieldConfig` 处 会进行处理 * 为兼容过往已保存筛选 * * @default false */ archive?: boolean; } export declare type IFieldSystemConfig = (IFieldRequiredConfig & IFieldPartialConfig & IFieldSystemComponentConfig); export declare type IFieldCustomConfig = (IFieldRequiredConfig & IFieldPartialConfig & IFieldCustomComponentConfig); export declare type IFieldConfig = IFieldSystemConfig | IFieldCustomConfig; declare type IFieldProcessConfig = IFieldRequiredConfig & IFieldPartialConfig & Required> & IFieldComponentConfig; export declare type IFieldOutputFunction = (config: IFieldProcessConfig, element?: React.ReactElement) => React.ReactElement; export declare type IFieldOutput = React.ReactElement | IFieldProcessConfig | IFieldOutputFunction; export declare type ISingleOrArray = T | Array; interface IClassComponentType extends Function { new (...args: any[]): T; } export type { IFieldProcessConfig, IClassComponentType };