API / Plugins / Pro / Tree Data
TreeDataPlugin
The TreeDataPlugin from @omnigrid/tree-data-plugin is a Pro plugin that displays flat parent-ID or nested child-array data as an expandable tree row model. Configure exactly one hierarchy strategy: getParentId for flat data, or childrenField / getChildren for nested data. A treeColumn and getLabel are required.
Constructor
new TreeDataPlugin<T>(options: TreeDataPluginOptions<T>)Options
Properties accepted by TreeDataPluginOptions<T>.
| Property | Description |
|---|---|
treeColumn string | Column ID or field used to render tree controls. |
childrenField keyof T | string | Reads child rows from this property when data is already nested. |
defaultExpanded booleandefault: true | Initial expansion state for nodes without an explicit state. |
defaultExpandedLevel number | Number of tree levels to expand initially. Root nodes have level 0. When provided, this takes precedence over `defaultExpanded`. |
Callbacks
getParentId: (row: T) => RowId | null | undefinedResolves a row's parent ID in flat data; root rows return null or undefined.
getChildren: (row: T) => T[] | undefinedResolves child rows when data is already nested.
getLabel: (row: T) => string | numberResolves the text shown for a parent row in the tree column.
Instance methods
onRegister(api): () => voidRegisters the tree row model, expansion methods, and generic row hierarchy capability.
getTreeRows(): TreeRowNode<T>[]Returns the flattened tree rows currently visible in the grid.
toggleTreeNode(nodeId): voidToggles a parent node's expanded state.
setTreeExpanded(nodeId, expanded): voidSets a parent node's expanded state.
expandAllTreeNodes(): voidExpands every parent node, including nodes currently hidden by collapsed ancestors.
collapseAllTreeNodes(): voidCollapses every parent node, including nodes currently hidden by collapsed ancestors.