import { ProColumnType, ProFieldValueType } from "@ant-design/pro-components"; import { ComponentType } from "react"; import { DataList, DataSourceParams } from "./components"; export interface PropertyEditorProps { value?: T; onChange?: (value?: T) => void; key?: string; label?: string; group?: string; description?: string; propertyName?: string; defaultValue?: T; /** * 显示模式: * - inner:在组件面板内显示; * - normal:使用弹出框显示。 * @obsolete 由 MultiVariantEditorProps.displayMode 替代 */ mode?: string; /** * 显示模式: * - inner:在组件面板内显示; * - normal:使用弹出框显示。 */ displayMode?: "inner" | "normal"; } export type ComponentEditors = Record>; export type PropertyEditors = Record>>; /** @deprecated 使用 ComponentEditors 或 PropertyEditors 替代 */ export type Editors = Partial>>; export interface InputControlProps extends PropertyEditorProps { record?: DataItem; rowIndex?: number; id?: string; } export interface DataItem { id: string; children?: DataItem[]; parentId?: string; key?: string; _rowMode?: RowMode; } export interface TreeItem extends DataItem { rootId?: string; } export type RowMode = "edit" | "read"; export {} from "./data/"; export type LibraryImport = { importName?: string; moduleName?: string; path: string; }; /** 组件库面板展示的组件信息(参考 node-shop-v2 store-design 的 ComponentInfo) */ export interface ComponentInfo { /** 组件类型名,添加组件时作为 ComponentData 的 type */ typeName: string; /** 显示名,缺省用 typeName */ displayName?: string; /** 分类,组件库面板按此分组页签 */ category?: string; description?: string; /** 图标(emoji 或字符) */ icon?: string; /** 添加该组件时合并进 props 的默认值(id 始终重新生成) */ defaultProps?: Record; } export type ComponentTypes = Record | string>; export type ModuleTypes = Record; export type FieldValueType = ProFieldValueType | "likeSearch" | "tag"; export interface Column extends ProColumnType { controls?: React.ReactElement[]; dataSource?: DataSourceParams; dataList?: DataList; valueType?: FieldValueType; } export type ColumnTypes = Record>) => Column>; export declare class ColumnContext { private _column; private _dataList; constructor(column: Column, dataList: DataList); get column(): Column; get dataItems(): any[]; get dataList(): DataList; } export type DataSourceProp = (DataSourceParams & { type?: "database" | "url"; }) | any[]; export type DesignerPart = "ComponentView" | "EditorPanel";