Treetable
Angular Bootstrap 5 Treetable plugin
The Treetable plugin can render your data with a simple HTML. You simply create a HTML markup for your table nested within a div tag with a "treetable" class.
Note: Read the API tab to find all available options and advanced customization
Basic example
      Create default Treetable by appending a table element into a
      div with a .treetable class. Add MdbTreeTable
       directive to table element and MdbTreeTableRow
      directive to tr element. Use dataSource input to set
      up the table. Adding children property to dataSource
      will create a nested row structure.
    
| Name | Size | Type | 
|---|---|---|
| Personal | 15mb | Folder | 
| index | 5mb | html | 
| index | 5mb | html | 
| my-cat | 0mb | webp | 
| Documents | 350mb | Folder | 
| Bill | 200mb | |
| Newspapers mentions | 50mb | |
| Ebooks | 100mb | zip | 
| Songs | 30mb | Folder | 
| Ode to JS | 10mb | mp3 | 
| One more style | 10mb | mp3 | 
| Bjork-Its-Oh-So-Quiet | 10mb | mp3 | 
| Images | 1,5gb | Folder | 
| Album-cover | 500mb | jpeg | 
| Naruto-background | 500mb | png | 
| Sasuke-background | 500mb | webp | 
        
            
        <div class="treetable d-flex w-100">
          <table class="table" mdbTreeTable #treeTable="mdbTreeTable" [dataSource]="dataSource">
            <thead>
              <tr>
                <th scope="col" *ngFor="let header of headers">{{ header | titlecase }}</th>
              </tr>
            </thead>
            <tbody>
              <tr *ngFor="let rowData of treeTable.data" scope="row" [mdbTreeTableRow]="rowData">
                <td>
                  {{ rowData.name }}
                </td>
                <td>
                  {{ rowData.size }}
                </td>
                <td>
                  {{ rowData.type }}
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        
        
    
        
            
        import { Component } from '@angular/core';
        interface FileType {
          name: string;
          size: string;
          type: string;
          children?: FileType[];
        }
        @Component({
          selector: 'app-root',
          templateUrl: './app.component.html',
        })
        export class AppComponent {
          headers = ['Name', 'Size', 'Type'];
          dataSource: FileType[] = [
            {
              name: 'Personal',
              size: '15mb',
              type: 'Folder',
              children: [
                {
                  name: 'index',
                  size: '5mb',
                  type: 'html',
                },
                {
                  name: 'index',
                  size: '5mb',
                  type: 'html',
                },
                {
                  name: 'my-cat',
                  size: '0mb',
                  type: 'webp',
                },
                {
                  name: 'Documents',
                  size: '350mb',
                  type: 'Folder',
                  children: [
                    {
                      name: 'Bill',
                      size: '200mb',
                      type: 'pdf',
                    },
                    {
                      name: 'Newspapers mentions',
                      size: '50mb',
                      type: 'PDF',
                    },
                    {
                      name: 'Ebooks',
                      size: '100mb',
                      type: 'zip',
                    },
                  ],
                },
                {
                  name: 'Songs',
                  size: '30mb',
                  type: 'Folder',
                  children: [
                    {
                      name: 'Ode to JS',
                      size: '10mb',
                      type: 'mp3',
                    },
                    {
                      name: 'One more style',
                      size: '10mb',
                      type: 'mp3',
                    },
                    {
                      name: 'Bjork-Its-Oh-So-Quiet',
                      size: '10mb',
                      type: 'mp3',
                    },
                  ],
                },
              ],
            },
            {
              name: 'Images',
              size: '1,5gb',
              type: 'Folder',
              children: [
                {
                  name: 'Album-cover',
                  size: '5mb',
                  type: 'html',
                },
                {
                  name: 'Naruto-background',
                  size: '500mb',
                  type: 'jpeg',
                },
                {
                  name: 'Sasuke-background',
                  size: '500mb',
                  type: 'png',
                },
              ],
            },
          ];
        };
      
        
    
TreeTable - API
Installation
To install and configure the plugin follow our Plugins Installation Guide. Please remember to update all the plugin names and import paths. You can find all the necessary information in the Import section.
        
            
     npm i git+https://oauth2:ACCESS_TOKEN@git.mdbootstrap.com/mdb/angular/mdb5/plugins/prd/treetable
     
        
    
Import
        
            
          import { MdbTreeTableModule } from 'mdb-angular-treetable';
          …
          @NgModule ({
            ...
            imports: [MdbTreeTableModule],
            ...
          })
        
        
    
        
            
        @import 'mdb-angular-treetable/scss/treetable.scss';
      
        
    
Inputs
MdbTreeTableDirective
| Name | Type | Default | Description | 
|---|---|---|---|
              dataSource
             | 
            T[] | [] | 
            Data for treeTable construction. | 
Outputs
MdbTreeTableDirective
| Name | Description | 
|---|---|
              collapse
             | 
            This event fires when a user collapses a row. You can access the data of collapsed row. | 
              expand
             | 
            This event fires when a user expands a row. You can access the data of expanded row. | 
Methods
MdbTreeTableDirective
| Name | Description | 
|---|---|
              collapseAll
             | 
            Collapses all rows | 
              expandAll
             | 
            Expands all rows |