Tree Table component for Angular
A tree table component for Angular, based on Primeng treetable.
Getting Started
npm install --save ng-treetable
Demo
Live Demo
Configuration
Angular cli
After installation, no additional configuration is needed. Import the TreeTableModule
and define it as one of the imports of your application module:
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {TreeTableModule} from "ng-treetable";
import {AppComponent} from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
TreeTableModule
],
bootstrap: [
AppComponent
]
})
export class AppModule {}
Data type
{
"data":
[
{
"data":{
"name":"Andrew",
"gender":"Male"
},
"children":[
{
"data":{
"name":"Andrewson",
"gender":"Male"
},
"children":[
{
"data":{
"name":"Eric",
"gender":"Male"
}
}
]
}
]
}
]
}
Examples
Basic
<ay-treeTable [value]="data">
<ay-column field="name" header="Name"></ay-column>
<ay-column field="gender" header="Gender"></ay-column>
</ay-treeTable>
Paginator
<ay-treeTable [value]="data" [rows]="10" [paginator]="true" [pageLinks]="3" [rowsPerPageOptions]="[5,10,20]">
<ay-column field="name" header="Name"></ay-column>
<ay-column field="gender" header="Gender"></ay-column>
</ay-treeTable>
Filter
<input #gb type="text" pInputText size="50" placeholder="Global Filter">
<ay-treeTable [value]="data" [globalFilter]="gb" [rows]="10" [paginator]="true" [pageLinks]="3" [rowsPerPageOptions]="[5,10,20]">
<ay-column field="name" header="Name"></ay-column>
<ay-column field="gender" header="Gender"></ay-column>
</ay-treeTable>
Input properties
Name | Type | Default | Description |
---|
value | array | null | An array of treenodes. |
rows | number | null | Number of rows to display per page. |
paginator | boolean | false | When specified as true, enables the pagination. |
totalRecords | number | null | Number of total records, defaults to length of value when not defined. |
pageLinks | number | 5 | Number of page links to display in paginator. |
rowsPerPageOptions | array | null | Array of integer values to display inside rows per page dropdown of paginator |
immutable | boolean | false | Improves performance by avoiding diff checking, changes to value should be done in an immutable way on application side when immutable property is enabled. |
globalFilter | any | null | Reference of an input field to use as a global filter. |
filterDelay | number | 300 | Delay in milliseconds before filtering the data. |
labelExpand | string | Expand | Tooltip and screenreader text for expand icon. |
labelCollapse | string | Collapse | Tooltip and screenreader text for collapse icon. |
selectionMode | string | null | Defines the selection mode, valid values "single" and "multiple". |
selection | any | null | A single treenode instance or an array to refer to the selections. |
style | string | null | Inline style of the component. |
styleClass | string | null | Style class of the component. |
metaKeySelection | boolean | true | Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically. |
Events
Name | Parameters | Description |
---|
onNodeSelect | event.originalEvent: browser event event.node: Selected node instance. | Callback to invoke when a node is selected. |
onNodeUnselect | event.originalEvent: browser event event.node: Unselected node instance. | Callback to invoke when a node is unselected. |
onNodeExpand | event.originalEvent: browser event event.node: Expanded node instance. | Callback to invoke when a node is expanded. |
onNodeCollapse | event.originalEvent: browser event event.node: Collapsed node instance. | Callback to invoke when a node is collapsed. |
onContextMenuSelect | event.originalEvent: browser event event.node: Selected node instance. | Callback to invoke when a node is selected with right click. |