AdaptTable for Taiga UI

Nested tables in Taiga UI

Open a row and the panel holds another Taiga UI table — the same component, not a hand-built list. Each person has recent orders; the inner table has its own columns and row keys.

nestedTable() mounts the kit's DataTable with defaults that keep the two tables from fighting over the URL. Rows with no nested table can still use rowDetail().

The expand chevron and both tables are Taiga UI.

The code

import { Component, input } from "@angular/core";
import type { ColumnDef, NestedTableDefaults } from "@adapttable/angular";
import { AdaptDataTable } from "@adapttable/taiga-ui";
import { nestedTable } from "@adapttable/taiga-ui/nested-table";

interface Order {
  id: string;
  item: string;
}

interface Customer {
  id: string;
  name: string;
  orders: Order[];
}

@Component({
  selector: "app-orders",
  imports: [AdaptDataTable],
  template: `
    <adapt-data-table
      [data]="row().orders"
      [columns]="columns"
      [rowKey]="rowKey"
      [urlSync]="defaults().urlSync"
      [searchable]="defaults().searchable"
      [tableLabel]="defaults().tableLabel"
    />
  `,
})
export class Orders {
  readonly row = input.required<Customer>();
  readonly defaults = input.required<NestedTableDefaults>();
  readonly columns: ColumnDef<Order>[] = [{ key: "item" }];
  readonly rowKey = (order: Order) => order.id;
}

@Component({
  selector: "app-customers",
  imports: [AdaptDataTable],
  template: `
    <adapt-data-table
      [data]="rows()"
      [columns]="columns"
      [rowKey]="rowKey"
      [features]="features"
    />
  `,
})
export class Customers {
  readonly rows = input.required<readonly Customer[]>();
  readonly columns: ColumnDef<Customer>[] = [{ key: "name" }];
  readonly rowKey = (row: Customer) => row.id;
  readonly features = [
    nestedTable<Customer>((row) => ({
      label: `Orders for ${row.name}`,
      table: Orders,
    })),
  ];
}

Install

# Follow the kit setup guide for compatible peers
pnpm add @adapttable/taiga-ui @adapttable/angular @taiga-ui/core@5.26.0 @taiga-ui/kit@5.26.0 @taiga-ui/cdk@5.26.0 @taiga-ui/i18n@5.26.0 @taiga-ui/styles@5.26.0 @taiga-ui/icons@5.26.0 @taiga-ui/event-plugins@^5 @taiga-ui/design-tokens@~0.320.0 @angular/cdk@^22 @angular/forms@^22 @angular/router@^22 rxjs@^7.8.2

The same feature in the other kits

More Taiga UI features

Reference: tree-data, row-expansion. More of this kit: AdaptTable for Taiga UI, or the live demo.