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.

Live demo|NPM

Constructor

new TreeDataPlugin<T>(options: TreeDataPluginOptions<T>)

Options

Properties accepted by TreeDataPluginOptions<T>.

PropertyDescription

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 | undefined

Resolves a row's parent ID in flat data; root rows return null or undefined.

getChildren: (row: T) => T[] | undefined

Resolves child rows when data is already nested.

getLabel: (row: T) => string | number

Resolves the text shown for a parent row in the tree column.

Instance methods

onRegister(api): () => void

Registers 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): void

Toggles a parent node's expanded state.

setTreeExpanded(nodeId, expanded): void

Sets a parent node's expanded state.

expandAllTreeNodes(): void

Expands every parent node, including nodes currently hidden by collapsed ancestors.

collapseAllTreeNodes(): void

Collapses every parent node, including nodes currently hidden by collapsed ancestors.