@logicflow/extension
Version:
LogicFlow Extensions
66 lines (65 loc) • 2.75 kB
TypeScript
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;