Import it from @grafloria/engine.
SelectionManager provides advanced selection operations
Implements 12 selection patterns from industry research:
- Hierarchical: children, descendants, ancestors, siblings, tree
- Graph: connected, connected component, path
- Group: group members, groups containing
- Filter: by type, by filter, in rectangle
- Bulk: select all, invert selection
tsclass SelectionManager
Methods
constructor( diagram: DiagramModel | null, private store?: DiagramStore, private eventBus?: EventBus )setDiagram(diagram: DiagramModel | null): void— Update diagram referenceselectChildren(nodeId: string, options: SelectionOptions = {}): string[]— Select immediate children of a nodeselectDescendants(nodeId: string, options: SelectionOptions = {}): string[]— Select all descendants of a node (recursive)selectAncestors(nodeId: string, options: SelectionOptions = {}): string[]— Select all ancestors of a node (recursive)selectSiblings(nodeId: string, options: SelectionOptions = {}): string[]— Select all siblings of a node (nodes with same parent)selectTree(nodeId: string, options: SelectionOptions = {}): string[]— Select entire tree starting from a node (node + all descendants)selectConnected(nodeId: string, options: ConnectedSelectionOptions = {}): string[]— Select nodes directly connected to a node via linksselectConnectedComponent(nodeId: string, options: SelectionOptions = {}): string[]— Select entire connected component (all nodes reachable from a node)selectPath(fromNodeId: string, toNodeId: string, options: SelectionOptions = {}): string[]— Select shortest path between two nodesselectGroupMembers(groupId: string, options: SelectionOptions = {}): string[]— Select all members of a groupselectGroupsContaining(nodeId: string, options: SelectionOptions = {}): string[]— Select all groups that contain a specific nodeselectByType(type: string, options: TypeSelectionOptions = {}): string[]— Select all nodes of a specific typeselectByFilter( predicate: (node: NodeModel) => boolean, options: FilterSelectionOptions = {} ): string[]— Select nodes matching a predicate functionselectInRectangle(rect: BoundingBox, options: RectSelectionOptions = {}): string[]— Select all nodes within or intersecting a rectangleselectAll(options: BulkSelectionOptions = {}): { nodes: string[]; links: string[]; groups: string[] }— Select all entities in the diagraminvertSelection(options: BulkSelectionOptions = {}): { nodes: string[]; links: string[]; groups: string[] }— Invert current selection
Was this page helpful?