Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Angular Tree Component

Angular Tree Grid to show hierarchical data. Basically if data has Parent-Child relationship. It also supports sub-grid/nested-grid. If data needs to be grouped by fields then check out this ngtreegrid Package. If header needs to be fixed/freezed and body needs to be scrollable then check out this Fix Header Grid Package.

Demo

Click here for demo. This readme is the documentation. Visit my Website to know other packages.

Loading

Donate ♥️

Please consider a donation if it is useful to you.

Version

Choose the correct version for your application.

Angularangular-tree-grid
<= 82.8.76
>= 9 and <= 125.0.2
>= 127.0.0

Installation

 npm i angular-tree-grid

Usage

Import

Import AngularTreeGridModule Module in your application module.

import{AngularTreeGridModule}from"angular-tree-grid";

Add it to your imports array.

 @NgModule({imports: [AngularTreeGridModule]})

Data

Data should look like below. Data should have Unique field(id) and Parent field(parent) which is foreign key of the id. Ofcourse these fields are configurable. See below.

 data= [
{ id: 1, name: 'Ashok', age: 60, parent: 0},
{ id: 2, name: 'Sam', age: 40, parent: 1},
{ id: 3, name: 'Sriya', age: 36, parent: 1},
{ id: 4, name: 'Prakash', age: 20, parent: 2},
{ id: 5, name: 'Sneha', age: 21, parent: 3},
{ id: 6, name: 'Pritam', age: 60, parent: 34},
{ id: 7, name: 'Roshan', age: 40, parent: 6},
{ id: 8, name: 'Suraj', age: 36, parent: 6},
{ id: 9, name: 'Swarup', age: 20, parent: 8},
{ id: 10, name: 'Aditya', age: 21, parent: 8},
];

Configs

Below are configs that can be set

Grid Configurations

FieldTypeDefaultDescription
*id_fieldstringn/aIt's a mandatory field. It is the primary key.
*parent_id_fieldstringn/aIt's a mandatory field. It is the foreign key.
*parent_display_fieldstringn/aIt's a mandatory field. It is the display field of the row that will be expanded.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is empty.
filterbooleanfalseIt enables filter toolbar. Filter is customizable at column level.
multi_selectbooleanfalseIt enables checkbox selection.
rtl_directionbooleanfalseIt is for right to left drawing.
cascade_selectionbooleanfalseIt enables selection of children on selection of Parent and viceversa.
paginationbooleanfalseIt enables Pagination.
per_pagenumber10Number of rows per page.
row_draggablebooleanfalseIt enables dragging and dropping of a row over another. See Example for more information.
show_summary_rowbooleanfalseIt enables summary or footer row. Use summary_renderer at the column level
load_children_on_expandbooleanfalseIt enables dynamic children loading. It means children will be loaded on row-expand. See Example for more information.
subgridbooleanfalseIt enables subgrid feature. parent_id_field is not mandatory for subgrid. Add feature is disabled when it is true. See this Example for more information
subgrid_configObjectn/aConfigs for subgrid. See below table for this.
show_parent_on_editbooleantrueShow Parent column On Edit. It is true by default.
row_class_functionFunctionn/aCallback function for row class. A custom class can be returned which will be added to the row.
row_edit_functionFunctionn/aCallback function for edit feature. Based on the return type(Boolean) of this function, edit can be enabled/disabled for a specific row. See Example for more information.
row_delete_functionFunctionn/aCallback function for delete feature. Based on the return type(Boolean) of this function, delete can be enabled/disabled for a specific row. See Example for more information.
actionsObjectn/aSettings for Action column. See Below
cssObjectn/aCss class for icons. See Below
columnsArrayn/aIt is an Array. If not provided all keys of the data Array will be used as Column Headers. Please find the description below
actions
FieldTypeDefaultDescription
addbooleanfalseIt enables add feature.
editbooleanfalseIt enables edit feature.
deletebooleanfalseIt enables delete feature.
resolve_addbooleanfalseManually resolve add(after making call to server). It defaults to false. See example for more information.
resolve_editbooleanfalseManually resolve edit.
resolve_deletebooleanfalseManually resolve delete feature.
css
FieldTypeDefaultDescription
expand_iconstringplusIcon for Expand icon. Font Awesome class can be given. See example for more information.
collapse_iconstringminusIcon for Collapse icon. Font Awesome class can be given.
add_iconstringplusIcon for Add icon. Font Awesome class can be given.
edit_iconstringeditIcon for Edit icon. Font Awesome class can be given.
delete_iconstringdeleteIcon for Delete icon. Font Awesome class can be given.
save_iconstringsaveIcon for Save icon. Font Awesome class can be given.
cancel_iconstringcancelIcon for Cancel icon. Font Awesome class can be given.
row_selection_classstringn/aCSS Class for selected row.
header_classstringn/aCSS Class for header.
table_classstringn/aCSS Class for Table.
columns
FieldTypeDefaultDescription
namestringn/akey of the column.
headerstringn/aHeader of the column that will be displayed in the table.
widthstringn/aWidth of the column with unit(px/rem).
css_classstringn/aCustom css class for the column.
hiddenbooleanfalseShow/Hide column.
filterbooleantrueEnable/Disable filter.
filter_functionFunctionn/aCustom filter function. filter must be enabled for this. See this Example for more information.
case_sensitive_filterbooleanfalseCase Sensitive/Insensitive Filter.
editablebooleanfalseTo make a specific column editable. By default columns are not editable. edit option needs to be true at grid level.
rendererFunctionn/aIt is a method to render customized value for the column. See this Example.
header_rendererFunctionn/aIt is a method to customize column header.
typestring''Set to 'custom' to have custom component for the column. Otherwise leave blank.
componentObjectn/aCustom View Component. Mandatory if type is custom.See this Example.
editorObjectn/aCustom Editor Component. If given custom editor component will be used instead of default editor. See this Example.
on_component_initFunctionn/aCallback function for the column on component init.
summary_rendererFunctionn/aRenderer for summary. See this Example for more information.
sortablebooleanfalseSort Column. Only available for subgrid feature.
subgrid_config
FieldTypeDefaultDescription
*id_fieldstringn/aIt’s a mandatory field. It is the primary key of child data.
data_loading_textstring'Loading...'Loading place holder. This will be displayed when data is getting loaded.
show_summary_rowbooleanfalseTo show summary row. It defaults to false. Use summary_renderer at the column level.
columnsArrayn/aSee above columns table.

Example

 configs: any = {
id_field: 'id',
parent_id_field: 'parent',
columns: [
{
name: 'name',
header: 'Name',
},
{
name: 'age',
header: 'Age',
renderer: function(value) {
return value + ' years';
}
}
]
};

Events

EventArgumentsDescription
expandrow_data: Expanded Row
For Subgrid and Dynamic-Children-Loading:
event Consist of:
  • data: Selected Row
  • resolve: Promise Object
Event fires when parent is expanded. For Subgrid, see this Example. For Dynamic-Children-Loading, see this Example
collapserow_data: Collapsed RowEvent fires when parent is collapsed.
cellclickevent Consist of:
  • row: Selected Row
  • column: Selected Column
  • event: Selected Column
Event fires when a child cell is clicked.
rowselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is selected.
rowdeselectevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deselected.
rowselectallevent: Event ObjectEvent fires when select-all checkbox is checked.
rowdeselectallevent: Event ObjectEvent fires when select-all checkbox is unchecked.
rowsaveevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is saved.
rowdeleteevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is deleted.
rowaddevent Consist of:
  • data: Selected Row
  • event: Event Object
Event fires when a row is added.

HTML

Add below node to your html.

 <db-angular-tree-grid [data]="data" [configs]="configs"></db-angular-tree-grid>

Functions

AngularTreeGridComponent has some very useful functions. Below is an example how to call.

 @Component({
selector: 'app-basic-tree-grid',
template: `
<button (click)="collapseAll()">Collapse All</button><button (click)="expandAll()">Expand All</button>
<p></p>
<db-angular-tree-grid #angularGrid [data]="data" [configs]="configs"></db-angular-tree-grid>
`
})
export class BasicTreeGridComponent {
@ViewChild('angularGrid') angularGrid: AngularTreeGridComponent;
expandAll() {
this.angularGrid.expandAll();
}
collapseAll() {
this.angularGrid.collapseAll();
}
}
FunctionArgumentsDescription
expandAllNoneExpands all rows
collapseAllNoneCollapses all rows
selectAllNoneSelects all rows
deSelectAllNoneDeSelects all rows
expandRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Expands a specific row. see this Example.
collapseRow
  • id: Row id(Primary Key)
  • suppress_event: Suppress expand event. It defaults to false.
Collapses a specific row. see this Example.
disableRowSelectionid: Row id(Primary Key)Disables Row Selection for the specific Row id.
enableRowSelectionid: Row id(Primary Key)Enables Row Selection for the specific Row id.
disableRowExpandid: Row id(Primary Key)Disables Row Expand for the specific Row id.
enableRowExpandid: Row id(Primary Key)Enables Row Expand for the specific Row id.
exportname: StringExports table content to csv.

Can I hire you guys?

Yes. Please contact us at debabratapatra12@gmail.com for any professional support. We will be happy to work with you!

License

This project is licensed under the MIT license.