Skip to content

Auto Table

Komponen tabel yang berfitur lengkap dan dapat disesuaikan dengan dukungan untuk penyajian data sinkron dan asinkron. Mendukung pengurutan, pencarian, penomoran halaman, dan penyesuaian berbasis slot.

Skeleton

Slots and Templates

Slot NameRequiredDescriptionNotes
popupOptional notification above the card/tableUseful for displaying alert/info for the table context
customRowsRender rows manually instead of default renderingGrants full control over row layout
loadingReplace the default loading stateOverride built-in loading with your own template
errorReplace the default error stateSame as above, for error UX
emptyCustom empty-state UI when no dataShows when no rows match (either due to filtering or content is empty)
prependContent rendered before table (above)Can be used for filters, descriptions, etc.
appendContent rendered after table (below)Can be used for legends, summaries, etc.

Props

PropTypeDefaultRequiredDescription
headersArrayArray of column definitions. Can be array of strings or objects with keys: name, label, sortable, sortLogic, searchable, searchLogic, class.
contentArray[]Array of data to be displayed in the table. Required if not async.
withIndexBooleanfalseShow index column on the left side of the table.
withSearchBooleanfalseEnable global search field.
startPageNumber1Initial page to render.
totalDataNumber⚠️*Required when asyncTable is true to calculate pagination correctly.
perPageNumber/String20Number of items per page. "all" also accepted.
perPageOptionsArray<Number>[5, 10, 20, 25, 50, 100, 250]Available options for page size dropdown.
asyncTableBooleanfalseSet to true if data is fetched from API (server-side table).
isLoadingBooleanfalseShow loading state for async tables.
isErrorBooleanfalseShow error state for async tables.
onClickFilterFunctionFunction triggered when filter button is clicked.

Events

EventPayloadTriggerDescription
manipulateTable{ type, searchProps, sortProps, pageProps }on mount, page/sort/search changeEmitted when table needs external data (e.g., asyncTable). Payload contains the action type (search, sort, page-change, etc).
type – string: 'init', 'search', 'sort', 'page-change', 'per-page-change', 'refresh'Type of table interaction.
searchProps: { find: String, searchIn: String[] }Search keyword and which fields to search.
sortProps: { index: Number, label: String, asc: Boolean }Current sort configuration.
pageProps: { pos: Number, perPage: Number | 'all' }Current page and perPage settings.
clickFilteron filter button clickEmitted when user clicks the optional filter button.