/** * FlowDesigner 组件 * * 流程设计器主组件(完整的拖拽版本,基于 ReactFlow) * * 原则: * - 所有数据从 props 传入 * - 不包含任何硬编码数据 * - 完全受控 */ import React from 'react'; import 'reactflow/dist/style.css'; import type { FlowConfig, NodeConfig, DataLoaders } from '@flow-designer/core'; import { NodeTypeDefinition } from './NodeToolbar'; /** * 流程设计器 Props */ export interface FlowDesignerProps { /** 流程配置(从外部传入) */ config: FlowConfig; /** 配置变化回调 */ onChange?: (config: FlowConfig) => void; /** 数据加载器(用于动态加载外部数据) */ loaders?: DataLoaders; /** 自定义节点组件映射 */ nodeComponents?: Record>; /** 自定义表单组件映射 */ formComponents?: Record>; /** 自定义验证器 */ validators?: Record boolean | Promise>; /** 主题 */ theme?: 'light' | 'dark' | Record; /** 自定义类名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; /** 节点点击事件 */ onNodeClick?: (node: NodeConfig) => void; /** 节点双击事件 */ onNodeDoubleClick?: (node: NodeConfig) => void; /** 节点添加事件 */ onNodeAdd?: (parentId: string, type: string) => void; /** 节点删除事件 */ onNodeDelete?: (nodeId: string) => void; /** 连线添加事件 */ onEdgeAdd?: (source: string, target: string) => void; /** 连线删除事件 */ onEdgeDelete?: (edgeId: string) => void; /** 配置保存前的钩子 */ beforeSave?: (config: FlowConfig) => FlowConfig | Promise; /** 配置保存后的钩子 */ afterSave?: (config: FlowConfig) => void | Promise; /** 是否显示节点工具栏 */ showToolbar?: boolean; /** 工具栏位置 */ toolbarPosition?: 'top' | 'left' | 'right'; /** 可添加的节点类型列表(如果不提供,使用默认类型) */ availableNodeTypes?: NodeTypeDefinition[]; } /** * 流程设计器组件(完整拖拽版本) */ export declare const FlowDesigner: React.FC; //# sourceMappingURL=FlowDesigner.d.ts.map