UNPKG

@logicflow/extension

Version:
66 lines (65 loc) 2.75 kB
import LogicFlow, { BaseEdgeModel, BaseNodeModel, Model } from '@logicflow/core'; import GroupNode, { GroupNodeModel } from './GroupNode'; import EdgeConfig = LogicFlow.EdgeConfig; import NodeData = LogicFlow.NodeData; import BoxBoundsPoint = Model.BoxBoundsPoint; export declare class Group { static pluginName: string; private lf; topGroupZIndex: number; activeGroup: any; nodeGroupMap: Map<string, string>; constructor({ lf }: LogicFlow.IExtensionProps); /** * 创建一个Group类型节点内部的所有子节点的副本 * 并且在遍历所有nodes的过程中顺便拿到所有edges(只在Group范围的edges) */ createAllChildNodes(nodeIdMap: Record<string, string>, children: Set<string>, current: BaseNodeModel, distance: number): { nodesArray: BaseNodeModel<LogicFlow.PropertiesType>[]; edgesArray: LogicFlow.EdgeConfig<LogicFlow.PropertiesType>[]; }; createEdgeModel(edge: EdgeConfig, nodeIdMap: Record<string, string>, distance: number): BaseEdgeModel<LogicFlow.PropertiesType>; /** * 获取一个节点内部所有的子节点,包裹分组的子节点 */ getNodeAllChild(model: GroupNodeModel | BaseNodeModel): string[]; graphRendered: ({ data }: { data: LogicFlow.GraphData; }) => void; appendNodeToGroup: ({ data }: { data: NodeData; }) => void; deleteGroupChild: ({ data }: { data: NodeData; }) => void; setActiveGroup: ({ data }: { data: NodeData; }) => void; findNodeAndChildMaxZIndex: (nodeModel: BaseNodeModel) => number; checkAndCorrectTopGroupZIndex: (nodes: NodeData[]) => void; /** * 1. 分组节点默认在普通节点下面。 * 2. 分组节点被选中后,会将分组节点以及其内部的其他分组节点放到其余分组节点的上面。 * 3. 分组节点取消选中后,不会将分组节点重置为原来的高度。 * 4. 由于LogicFlow核心目标是支持用户手动绘制流程图,所以不考虑一张流程图超过1000个分组节点的情况。 */ nodeSelected: ({ data, isMultiple, isSelected, }: { data: NodeData; isMultiple: boolean; isSelected: boolean; }) => void; toFrontGroup: (model?: BaseNodeModel) => void; /** * 获取自定位置其所属分组 * 当分组重合时,优先返回最上层的分组 */ getGroup(bounds: BoxBoundsPoint, nodeData: NodeData): BaseNodeModel | undefined; /** * 获取某个节点所属的groupModel */ getNodeGroup(nodeId: string): BaseNodeModel<LogicFlow.PropertiesType> | undefined; render(): void; destroy(): void; } export * from './GroupNode'; export default GroupNode;