UNPKG

@logicflow/extension

Version:
124 lines (123 loc) 3.73 kB
import LogicFlow, { h, BaseEdgeModel } from '@logicflow/core'; import { RectResizeModel, RectResizeView } from '../../NodeResize'; import Point = LogicFlow.Point; import NodeData = LogicFlow.NodeData; export declare class GroupNodeModel extends RectResizeModel { readonly isGroup = true; /** * 此分组的子节点Id */ children: Set<string>; /** * 其子节点是否被禁止通过拖拽移出分组。 默认false,允许拖拽移除分组。 */ isRestrict?: boolean; /** * 分组节点是否允许折叠 */ foldable?: boolean; /** * 折叠后的宽度 */ foldedWidth: number; /** * 折叠后的高度 */ foldedHeight: number; /** * 分组折叠状态 */ isFolded: boolean; unfoldedWidth: number; unfoldedHeight: number; /** * children元素上一次折叠的状态缓存 */ childrenLastFoldStatus: Record<string, boolean>; initNodeData(data: any): void; getResizeOutlineStyle(): { fill: string; stroke: string; strokeWidth: number; strokeDasharray: string; }; /** * 折叠分组 * 1. 折叠分组的宽高 * 2. 处理分组子节点 * 3. 处理连线 */ foldGroup(isFolded: boolean): void; getAnchorStyle(anchorInfo?: Point): LogicFlow.AnchorTheme; /** * 折叠分组的时候,处理分组自身的连线和分组内部子节点上的连线 * 边的分类: * - 虚拟边:分组被收起时,表示分组本身与外部节点关系的边。 * - 真实边:分组本身或者分组内部节点与外部节点节点(非收起分组)关系的边。 * 如果一个分组,本身与外部节点有M条连线,且内部N个子节点与外部节点有连线,那么这个分组收起时会生成M+N条连线。 * 折叠分组时: * - 原有的虚拟边删除; * - 创建一个虚拟边; * - 真实边则隐藏; * 展开分组是: * - 原有的虚拟边删除; * - 如果目外部点是收起的分组,则创建虚拟边; * - 如果外部节点是普通节点,则显示真实边; */ foldEdge(isFolded: boolean, allEdges: BaseEdgeModel[]): void; createVirtualEdge(edgeData: any): void; isInRange({ minX, minY, maxX, maxY }: { minX: any; minY: any; maxX: any; maxY: any; }): boolean; isAllowMoveTo({ minX, minY, maxX, maxY }: { minX: any; minY: any; maxX: any; maxY: any; }): { x: boolean; y: boolean; }; setAllowAppendChild(isAllow: any): void; /** * 添加分组子节点 * @param id 节点id */ addChild(id: string): void; /** * 删除分组子节点 * @param id 节点id */ removeChild(id: string): void; getAddableOutlineStyle(): { stroke: string; strokeWidth: number; strokeDasharray: string; fill: string; }; getData(): LogicFlow.NodeData; getHistoryData(): LogicFlow.NodeData; /** * 是否允许此节点添加到此分组中 */ isAllowAppendIn(_nodeData: NodeData): boolean; /** * 当groupA被添加到groupB中时,将groupB及groupB所属的group的zIndex减1 */ toBack(): void; } export declare class GroupNode extends RectResizeView { getControlGroup(): h.JSX.Element | null; getAddableShape(): h.JSX.Element | null; getFoldIcon(): h.JSX.Element | null; getResizeShape(): h.JSX.Element; } declare const _default: { type: string; view: typeof GroupNode; model: typeof GroupNodeModel; }; export default _default;