Components / Data Table

Data Table

Typed tabular data with controlled filtering, sorting, selection, pagination and loading states.

4 results
Recent invoices
Select row Status Amount
INV-001Olivia MartinPaid$240.00
INV-002Noah WilliamsPending$190.00
INV-003Emma WilsonPaid$320.00
INV-004Liam BrownDraft$90.00
example.component.html
html
<aevko-data-table caption="Invoices" [rows]="invoices" [columns]="columns" [rowKey]="invoiceKey" [selectable]="true" />

Installation

npx aevko-ui@latest add data-table --yes

Source ownership

Customization

Keep domain formatting in typed column accessors, use controlled state for remote datasets and edit the local template when a product needs custom cells.

Edit locallyThe installed template and stylesheet are application code, not a black box.
Theme semanticallyOverride --aevko-* tokens or ordinary classes without !important.

API reference

Property or slotTypeDefaultDescription
rows / columnsreadonly T[] / readonly Column<T>[]requiredTyped records and visible column definitions.
rowKey(row: T) => stringrequiredStable identity for tracking and selection.
filter / sortmodel<string> / model<Sort | null>'' / nullControlled query and sorting state.
selectable / selectedKeysboolean / model<readonly string[]>false / []Optional labelled row selection.
page / pageSizemodel<number> / number1 / 10Current page and local page size.
manual / totalRowsboolean / number | nullfalse / nullDelegates sorting/filter/paging to remote application state.
loading / emptyMessageboolean / stringfalse / 'No results found'Data-region loading and empty feedback.

Accessibility contract

Accessibility

Included behavior

  • A native table retains caption/header/cell relationships; sort state, row selection and loading remain explicitly labelled.

Your responsibility

Use stable row keys, meaningful captions and formatted text values; announce remote loading and preserve selection intentionally across pages.

Back to all components