AdaptTable for Taiga UI

Row grouping in Taiga UI

Compose groupingPanel(groupBy) and rows start nested by Team then Status. Drag a column header into the strip or add a level from its select, and reorder the levels by dragging a chip or with the arrow keys on its handle; every move is announced.

Each group header folds its rows and shows its row count and the totals its columns declare as aggregatable — Budget sums here, and the panel changes the operation. The grouping travels in the URL.

The code

import { Component, input } from "@angular/core";
import type { ColumnDef } from "@adapttable/angular";
import { AdaptDataTable } from "@adapttable/taiga-ui";
import { groupingPanel } from "@adapttable/taiga-ui/grouping-panel";

const columns: ColumnDef<Person>[] = [
  { key: "name" },
  { key: "team" },
  { key: "status" },
  { key: "budget", aggregatable: { operations: ["sum", "avg"] } },
];

@Component({
  selector: "app-people",
  imports: [AdaptDataTable],
  template: `
    <adapt-data-table
      [data]="rows()"
      [columns]="columns"
      [rowKey]="rowKey"
      urlKey="g"
      [features]="features"
    />
  `,
})
export class People {
  readonly rows = input.required<readonly Person[]>();
  readonly columns = columns;
  readonly rowKey = (row: Person) => row.id;
  readonly features = [groupingPanel(["team", "status"])];
}

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: row-grouping, pinned-summary-rows, row-reordering. More of this kit: AdaptTable for Taiga UI, or the live demo.