TableOptions

The configuration object passed to createTable() or useTable().

Required

OptionTypeDescription
dataTData[]The data array to display
columnsColumnDef<TData, any>[]Column definitions

State Management

OptionTypeDescription
statePartial<TableState>Controlled state (merged with internal state)
onStateChangeOnChangeFn<TableState>Called when any state changes
initialStatePartial<TableState>Initial state values

Row Identity

OptionTypeDefaultDescription
getRowId(row, index, parent?) => stringString(index)Custom row ID generator

Sorting Options

OptionTypeDefaultDescription
enableSortingbooleantrueEnable sorting globally
enableMultiSortbooleantrueAllow multi-column sorting
enableSortingRemovalbooleantrueAllow removing sort on third click
maxMultiSortColCountnumberInfinityMax simultaneous sort columns
manualSortingbooleanfalseDisable client-side sorting (for server-side)
sortingFnsRecord<string, SortingFn>--Additional named sorting functions
onSortingChangeOnChangeFn<SortingState>--Sorting state change callback
isMultiSortEvent(e) => booleanShift keyMulti-sort modifier key test

Filtering Options

OptionTypeDefaultDescription
enableFiltersbooleantrueEnable all filtering
enableColumnFiltersbooleantrueEnable per-column filters
enableGlobalFilterbooleantrueEnable global search
manualFilteringbooleanfalseDisable client-side filtering
filterFnsRecord<string, FilterFn>--Additional named filter functions
globalFilterFnFilterFnOption--Custom global filter function
onColumnFiltersChangeOnChangeFn<ColumnFiltersState>--Column filters change callback
onGlobalFilterChangeOnChangeFn<string>--Global filter change callback
getColumnCanGlobalFilter(column) => boolean--Per-column global filter opt-out

Pagination Options

OptionTypeDefaultDescription
manualPaginationbooleanfalseDisable client-side pagination
pageCountnumber--Total page count (server-side)
rowCountnumber--Total row count (server-side)
autoResetPageIndexbooleantrueReset to page 0 on data change
onPaginationChangeOnChangeFn<PaginationState>--Pagination change callback

Selection Options

OptionTypeDefaultDescription
enableRowSelectionboolean | (row) => booleantrueEnable row selection
enableMultiRowSelectionboolean | (row) => booleantrueAllow selecting multiple rows
enableSubRowSelectionboolean | (row) => booleantrueAuto-select sub-rows
onRowSelectionChangeOnChangeFn<RowSelectionState>--Selection change callback

Visibility Options

OptionTypeDefaultDescription
enableHidingbooleantrueEnable column visibility toggling
onColumnVisibilityChangeOnChangeFn<VisibilityState>--Visibility change callback

Column Ordering

OptionTypeDescription
onColumnOrderChangeOnChangeFn<ColumnOrderState>Column order change callback

Column Pinning

OptionTypeDefaultDescription
enableColumnPinningboolean--Enable column pinning
onColumnPinningChangeOnChangeFn<ColumnPinningState>--Pinning change callback

Column Sizing

OptionTypeDefaultDescription
enableColumnResizingbooleantrueEnable column drag-to-resize
columnResizeMode'onChange' | 'onEnd''onChange'When to update widths
columnResizeDirection'ltr' | 'rtl''ltr'Resize direction
onColumnSizingChangeOnChangeFn<ColumnSizingState>--Sizing change callback
onColumnSizingInfoChangeOnChangeFn<ColumnSizingInfoState>--Resize info change callback

Expanding Options

OptionTypeDefaultDescription
enableExpandingbooleantrueEnable row expanding
getSubRows(row, index) => TData[] | undefined--Return child rows for tree data
getRowCanExpand(row) => boolean--Custom expand-ability check
manualExpandingbooleanfalseDisable client-side expansion
paginateExpandedRowsboolean--Include expanded rows in pagination
renderDetailPanel(row) => unknown--Detail panel renderer
onExpandedChangeOnChangeFn<ExpandedState>--Expanded state change callback

Row Pinning Options

OptionTypeDefaultDescription
enableRowPinningboolean | (row) => booleanfalseEnable row pinning
keepPinnedRowsboolean--Keep pinned rows when filtering
onRowPinningChangeOnChangeFn<RowPinningState>--Row pinning change callback

Grouping Options

OptionTypeDefaultDescription
enableGroupingbooleanfalseEnable row grouping
manualGroupingbooleanfalseDisable client-side grouping
onGroupingChangeOnChangeFn<GroupingState>--Grouping change callback

Cell Editing Options

OptionTypeDefaultDescription
enableCellEditingboolean--Enable cell editing globally
onEditingChangeOnChangeFn<EditingState>--Editing state change callback
onEditCommit(changes: Record<string, Partial<TData>>) => void--Called when edits are committed

Event Handlers

OptionTypeDescription
onCellClick(event: CellClickEvent) => voidCell click handler
onCellDoubleClick(event: CellClickEvent) => voidCell double-click handler
onCellContextMenu(event: CellClickEvent) => voidCell right-click handler
onRowClick(event: RowClickEvent) => voidRow click handler
onRowDoubleClick(event: RowClickEvent) => voidRow double-click handler
onRowContextMenu(event: RowClickEvent) => voidRow right-click handler
onHeaderClick(event: HeaderClickEvent) => voidHeader click handler
onHeaderContextMenu(event: HeaderClickEvent) => voidHeader right-click handler

Export Options

OptionTypeDefaultDescription
enableExportboolean--Enable export functionality

Styling

OptionTypeDescription
rowClassNamestring | (row) => string | undefinedCSS class for rows
rowStyleCSSProperties | (row) => CSSPropertiesInline style for rows