Angular Material TreeTable Component
A simple, customisable, and easy to use Angular Material TreeTable component.
Table of Contents
Installation
Simply install the package through npm
npm i ng-material-treetable --save
Make sure you have the angular material packages installed
npm i @angular/material @angular/cdk @angular/animations --save
import the main module
;
and use the component in your template
Finally, make sure you import the required material icons font in your styles.css
;
Data Format
The tree object that's rendered by the component can either be a Node<T>
or a Node<T>[]
where Node<T>
is the following interface
;
Here's a simple example.
value: name: 'Reports' owner: 'Eric' protected: true backup: true children: value: name: 'Charts' owner: 'Stephanie' protected: false backup: true children: value: name: 'Sales' owner: 'Virginia' protected: false backup: true children: value: name: 'US' owner: 'Alison' protected: true backup: false children: value: name: 'California' owner: 'Claire' protected: false backup: false children: value: name: 'Washington' owner: 'Colin' protected: false backup: true children: value: name: 'Domestic' owner: 'Oliver' protected: true backup: false children: value: name: 'International' owner: 'Oliver' protected: true backup: true children:
Options
Work in Progress...
An option
input property can be used to customise the component
;
Name | Description | Type | Default |
---|---|---|---|
verticalSeparator |
If true , separates table columns with vertical lines. |
boolean |
true |
capitalisedHeader |
If true , capitalise the first letter of each column header. |
boolean |
- |
highlightRowOnHover |
If true , hovering the mouse over a row highlights its background. |
boolean |
true |
customColumnOrder |
By default, the columns are ordered following the array generated by calling Object.keys() on the nodes of the tree object; this option can be used to specify a custom order. Note that customColumnOrder needs to be an array containing all the keys present in the node object. |
Array |
- |
elevation |
Sets the elevation of the card element wrapping the tree component. | number |
5 |
customColumnOrder
Given a tree data type like
a custom column order can be specified with the following options
object
an incomplete or incorrect customColumnOrder
value will result in an error
customColumnOrder: // 'name' missingcustomColumnOrder: // 'surname' is not a valid key
Events
Work in Progress...
Name | Description | Type |
---|---|---|
nodeClicked |
Whenever a node is expanded or collapsed, emits an event with the new status of the node | Node<T> |
nodeClicked
logToggledNodenode: Node<SomeNodeType>: void