Компоненты PrimeNG
TreeTable
Lazy

Lazy

col.header rowData[col.field]

<p-treeTable
[value]="files"
[columns]="cols"
[paginator]="true"
[rows]="10"
[lazy]="true"
(onLazyLoad)="loadNodes($event)"
[totalRecords]="1000"
[loading]="loading"
(onNodeExpand)="onNodeExpand($event)"
>
<ng-template pTemplate="header" let-columns>
  <tr>
    <th *ngFor="let col of columns">
      { { col.header } }
    </th>
  </tr>
</ng-template>
<ng-template pTemplate="body" let-rowNode let-rowData="rowData" let-columns="columns">
  <tr>
    <td *ngFor="let col of columns; let i = index">
      <p-treeTableToggler [rowNode]="rowNode" *ngIf="i == 0"></p-treeTableToggler>
      { { rowData[col.field] } }
    </td>
  </tr>
</ng-template>
</p-treeTable>