Skip to content

Table

te-table renders rows from items using headers, with optional search, pagination and per-column slots.

Basic

vue
<te-table
  :headers="[{ field: 'name', label: 'Name' }, { field: 'role', label: 'Role' }]"
  :items="[{ name: 'Ada', role: 'Engineer' }, { name: 'Alan', role: 'Researcher' }]"
/>

Styling

vue
<te-table
  striped hoverable bordered show-row-num compact header-type="dark"
  :headers="[{ field: 'name', label: 'Name' }, { field: 'role', label: 'Role' }]"
  :items="[{ name: 'Ada', role: 'Engineer' }, { name: 'Alan', role: 'Researcher' }]"
/>

Empty state

vue
<te-table :headers="[{ field: 'name', label: 'Name' }]" :items="[]" no-data-label="Nothing to show" />

TableHeader

ts
interface TableHeader {
  field?: string;      // key read from each row
  label?: string;      // column heading
  cellClass?: string;  // extra classes on that column's cells
}

Props

PropTypeDefaultDescription
itemsobject[]— (required)Rows.
headers`(TableHeaderstring)[]`— (required)
searchstring''Filters rows across every column. Resets to page 1.
itemPerPagenumber-1Rows per page. -1 disables pagination.
backendPaginationbooleanfalseThe server already paginates; use with totalItems.
totalItemsnumber0Row count on the server, for backendPagination.
paginationAlign'left' | 'center' | 'right''right'Where the pager sits.
headerType'normal' | 'light' | 'dark''normal'Header background.
striped hoverable bordered borderless centered compactbooleanfalseVisual variants.
responsivebooleantrueHorizontal scrolling on overflow.
showRowNumbooleanfalseAdds a row-number column.
rowNumLabelstring'#'Header of that column.
hasSubheadingbooleanfalseRenders the subheading slot as a first row.
noDataLabelstring'No Data'Text shown when there are no rows.
loadingbooleanfalseOverlays a spinner.

Events

EventPayloadDescription
page-changednumberThe page changed.

Slots

SlotPropsDescription
<field>{ value, row, index }Custom cell for that column.
no-dataReplaces the empty state.
subheadingExtra row under the header.

Released under the MIT License.