Infinite Table Props

In the API Reference below we'll use DATA_TYPE to refer to the TypeScript type that represents the data the component is bound to.

activeCellIndex

[number,number] | null

Specifies the active cell for keyboard navigation. This is a controlled prop. See the Keyboard Navigation page for more details.

activeRowIndex

number | null

Specifies the active row for keyboard navigation. This is a controlled prop. See the Keyboard Navigation page for more details.

autoSizeColumnsKey

number|string|{key,includeHeader,columnsToSkip,columnsToResize}

Controls auto-sizing of columns.

columnDefaultDraggable

boolean

Specifies whether columns are draggable by default (for reordering columns).

columnDefaultEditable

boolean

Specifies whether columns are editable by default.

columnDefaultSortable

Default: true
boolean

Specifies whether columns are sortable by default.

columnDefaultWidth

Default: 200
number

Specifies the a default width for all columns.

columnGroupVisibility

Record<string, boolean>

Controls the visibility of column groups. By default, column groups are visible.

columnHeaderHeight

number

The height of the column header.

columnMaxWidth

Default: 2000
number

Specifies the maximum width for all columns.

columnMinWidth

Default: 30
number

Specifies the minimum width for all columns.

columnOrder

string[]|true

Defines the order in which columns are displayed in the component

columns

Record<string, InfiniteTableColumn<DATA_TYPE>>

Describes the columns available in the component.

columns.align

'start' | 'center' | 'end'

Controls the alignment of text in column cells and also the alignment of the column header. To only apply alignment to the column header, use columns.headerAlign. For vertical alignment, see columns.verticalAlign.

columns.className

string | (param: InfiniteTableColumnStyleFnParams) => string

Controls styling via CSS classes for the column. Can be a string or a function returning a string (a valid className).

columns.components

Specifies custom React components to use for column cells or header

columns.components.ColumnCell

Specifies a custom React component to use for column cells

columns.components.Editor

Specifies a custom React component to use for the editor, when editing is enabled for the column.

columns.components.HeaderCell

Specifies a custom React component to use for column headers

columns.contentFocusable

boolean|(params) => boolean

Specifies if the column (or cell, if a function is used) renders content that will/should be focusable (via tab-navigation)

columns.cssEllipsis

Default: true
boolean

Specifies if the column should show ellipsis for content that is too long and does not fit the column width.

columns.dataType

string

Specifies the type of the data for the column. For now, it's better to simply use columns.type.

columns.defaultDraggable

boolean

Specifies whether the column is draggable by default (for reordering columns).

columns.defaultEditable

boolean|(param)=>boolean|Promise<boolean>

Controls if the column is editable or not.

columns.defaultFlex

number

Specifies a default flex for the column

columns.defaultHiddenWhenGroupedBy

'*'| true | keyof DATA_TYPE | { [keyof DATA_TYPE]: true }

Controls default column visibility when groupBy is used.

columns.defaultWidth

number

Specifies a default width for the column

columns.field

keyof DATA_TYPE

Binds the column to the specified data field. It should be a keyof DATA_TYPE.

columns.filterType

string

Use this to configure the filter type for the column, when the filterType needs to be different from the column type.

columns.getValueToEdit

(params) => any|Promise<any>

Allows customizing the value that will be passed to the cell editor when it is displayed (when editing starts).

columns.getValueToPersist

(params) => any|Promise<any>

Allows customizing the value that will be persisted when an edit has been accepted.

columns.header

React.ReactNode|({column, columnSortInfo, columnApi})=>React.ReactNode

Specifies the column header. Can be a static value or a function that returns a React node.

columns.headerAlign

'start' | 'center' | 'end'

Controls the alignment of the column header. See related columns.align and columns.headerCssEllipsis.

columns.headerClassName

string | (args) => string

Controls the css class name for the column header. Can be a string or a function returning a string.

columns.headerCssEllipsis

Default: true
boolean

Specifies if the column should show ellipsis in the column header if the header is too long and does not fit the column width.

columns.headerStyle

CSSProperties | (args) => CSSProperties

Controls styling for the column header. Can be a style object or a function returning a style object.

columns.maxWidth

number

Configures the maximum width for the column.

columns.minWidth

number

Configures the minimum width for the column.

columns.render

(cellContext) => Renderable

Customizes the rendering of the column. The argument passed to the function is an object of type InfiniteTableColumnCellContextType

columns.renderFilterIcon

Customizes the rendering of the filter icon for the column.

columns.renderGroupIcon

(cellContext) => Renderable

Customizes the rendering of the collapse/expand group icon for group rows. The argument passed to the function is an object of type InfiniteTableColumnCellContextType

columns.renderGroupValue

({ data, rowInfo, column, renderBag, rowIndex, ... })

Customizes the rendering of a group column content, but only for group rows.

columns.renderHeader

(param: InfiniteTableColumnHeaderParam) => ReactNode

A custom rendering function for the column header. Called with an object of type InfiniteTableColumnHeaderParam.

columns.renderLeafValue

({ data, rowInfo, column, renderBag, rowIndex, ... })

Customizes the rendering of the group column content, but only for non-group rows.

columns.renderMenuIcon

boolean|(cellContext)=> ReactNode

Allows customization of the context menu icon.

columns.renderRowDetailIcon

boolean|(cellContext) => ReactNode

Renders the row detail expand/collapse icon in the column cell. Only used when master-detail is enabled.

columns.renderSelectionCheckBox

boolean | ({ data, rowSelected: boolean | null, selectRow, deselectRow, ... })

Specifies that the current column will have a selection checkbox - if a function is provided, will be used to customizes the rendering of the checkbox rendered for selection.

columns.renderTreeIcon

boolean|(cellContext) => ReactNode

Renders the tree expand/collapse icon in the column cells. If you want default behavior, specify true and the default icon will be used.

columns.renderValue

(cellContext) => Renderable

Customizes the rendering of the column content. The argument passed to the function is an object of type InfiniteTableColumnCellContextType

columns.resizable

boolean

Specifies if the current column is resizable or not.

columns.rowspan

({ rowInfo, data, rowIndex, column }) => number

Specifies the rowspan for cells on the current column.

columns.shouldAcceptEdit

(params) => boolean|Error|Promise<boolean|Error>

Function specified for the column, that determines whether to accept an edit or not.

columns.sortable

boolean

Specifies the sorting behavior for the current column. Overrides the global sortable prop.

columns.sortType

Default: 'string'
string | string[]

Specifies the sort type for the column. See related sortTypes

columns.style

CSSProperties | (param: InfiniteTableColumnStyleFnParams) => CSSProperties

Controls styling for the column. Can be a style object or a function returning a style object.

columns.type

Default: 'default'
string | string[]

Specifies the column type - a column type is a set of properties that describes the column. Column types allow to easily apply the same properties to multiple columns.

columns.valueFormatter

({ data?, isGroupRow, rowInfo, field?, rowSelected, rowActive, isGroupRow }) => Renderable

Customizes the value that will be rendered

columns.valueGetter

({ data, field? }) => string | number | boolean | null | undefined

Customizes the value that will be rendered

columns.verticalAlign

'start' | 'center' | 'end'

Controls the vertical alignment of text in column cells. For horizontal alignment, see columns.align.

columnSizing

Record<string,{width,flex,...}>

Defines the sizing of columns in the grid.

columnSizing.flex

number

Specifies the flex value for the column.

columnSizing.maxWidth

number

Specifies the maximum width for a column. Especially useful for flexible columns.

columnSizing.minWidth

number

Specifies the minimum width for a column. Especially useful for flexible columns.

columnSizing.width

number

Specifies the fixed width for the column.

columnsTypes.sortable

boolean

Specifies the sorting behavior for columns of this type.

columnTypes

Record<string,InfiniteTableColumnType>

Specifies an object that maps column type ids to column types. Column types are used to apply the same configuration/properties to multiple columns. See related columns.type

columnTypes.components

See related columns.components.

columnTypes.defaultFlex

number

Specifies a default flex value for the column type. Will be overriden in any column that already specifies a defaultFlex property.

columnTypes.defaultSortable

boolean

Specifies whether columns of this type are sortable.

columnTypes.defaultWidth

number

Specifies a default fixed width for the column type. Will be overriden in any column that already specifies a defaultWidth property.

columnTypes.headerClassName

string | (args) => string

Controls styling for the column header for columns with this column type. Can be a string or a function returning a string.

columnTypes.headerStyle

CSSProperties | (args) => CSSProperties

Controls styling for the column header for columns with this column type. Can be a style object or a function returning a style object.

columnTypes.maxWidth

number

Specifies a default maximum width for the column type. Will be overriden in any column that already specifies a maxWidth property.

columnTypes.minWidth

number

Specifies a default minimum width for the column type. Will be overriden in any column that already specifies a minWidth property.

components

Components to override the default ones used by the DataGrid.

components.LoadMask

Allows customising the LoadMask displayed over the DataGrid when it's loading data.

components.RowDetail

Component to use for rendering the row details section in the master-detail DataGrid. When specified, it makes InfiniteTable be a master-detail DataGrid. For configuring the height of row details, see rowDetailHeight

defaultActiveCellIndex

[number,number]

Specifies the active cell for keyboard navigation. This is an uncontrolled prop. See the Keyboard Navigation page for more details.

defaultActiveRowIndex

number

Specifies the active row for keyboard navigation. This is an uncontrolled prop. See the Keyboard Navigation page for more details.

defaultColumnOrder

Default: true
string[]|true

Defines the order in which columns are displayed in the component.

defaultColumnSizing

Record<string,{width,flex,...}>

Defines a default sizing of columns in the grid.

defaultColumnSizing.flex

number

Specifies the flex value for the column.

defaultColumnSizing.maxWidth

number

Specifies the maximum width for a column. Especially useful for flexible columns.

defaultColumnSizing.minWidth

number

Specifies the minimum width for a column. Especially useful for flexible columns.

defaultColumnSizing.width

number

Specifies the fixed width for the column.

defaultRowDetailState

RowDetailState

Specifies the default expanded/collapsed state of row details.

domProps

React.HTMLProps<HTMLDivElement>

DOM properties to be applied to the component root element.

draggableColumns

boolean

Specifies whether columns are draggable (for reordering columns).

editable

(param) => boolean | Promise<boolean>

Controls whether columns are editable or not.

focusedClassName

string

CSS class name to be applied to the component root element when it has focus.

focusedStyle

Specifies the style to be applied to the component root element when it has focus.

focusedWithinClassName

string

CSS class name to be applied to the component root element when there is focus within (inside) the component.

focusedWithinStyle

Specifies the style to be applied to the component root element when there is focus within (inside) the component.

getCellContextMenuItems

({data, column, rowInfo}) => MenuItem[] | null | { items: MenuItem[], columns: [{name}] }

Customises the context menu items for a cell.

getColumnMenuItems

(items, context) => MenuItem[]

Allows customization of the context menu items for a column.

getContextMenuItems

({event, data?, column?, rowInfo}, {api, dataSourceApi}) => MenuItem[] | null | { items: MenuItem[], columns: [{name}] }

Customises the context menu items for the whole table.

groupColumn

InfiniteTableColumn|(colInfo, toggleGroupRow) => InfiniteTableColumn

Allows you to define a custom configuration for one or multiple group columns. When this prop is defined, it gets merged onto any values specified in the groupBy.column property.

groupRenderStrategy

'single-column'|'multi-column'

Determines how grouping is rendered - whether a single or multiple columns are generated.

headerOptions

{alwaysReserveSpaceForSortIcon: boolean}

Various header configurations for the DataGrid.

headerOptions.alwaysReserveSpaceForSortIcon

Default: true
boolean

Whether to reserve space in the column header for the sort icon or not.

hideColumnWhenGrouped

Default: false
boolean

Allows you to hide group columns bound to fields that are grouped by (fields mentioned in groupBy.field).

hideEmptyGroupColumns

Default: false
boolean

Allows you to hide group columns which don't render any information (this happens when all previous groups are collapsed).

isRowDetailEnabled

(rowInfo: InfiniteTableRowInfo<DATA_TYPE>) => boolean

Decides on a per-row basis if the row details are enabled or not. See Master Detail for more information.

isRowDetailExpanded

(rowInfo: InfiniteTableRowInfo) => boolean

This function ultimately decides if a row detail is expanded or not.

keyboardNavigation

Default: 'cell'
'cell'|'row'|false

Determines whether keyboard navigation is enabled.

keyboardSelection

Default: true
boolean

Determines whether the keyboard can be used for selecting/deselecting rows/cells.

keyboardShortcuts

{key,handler,when}[]

An array that specifies the keyboard shortcuts for the DataGrid.

loadingText

Default: 'Loading'
ReactNode

The text inside the load mask - displayed when loading=true.

multiSortBehavior

'append'|'replace'

Specifies the behavior of the DataGrid when multiple sorting is configured. Defaults to 'replace'.

onActiveCellIndexChange

(activeCellIndex:[number,number])=>void

Callback triggered by cell navigation. See the Keyboard Navigation page for more details.

onActiveRowIndexChange

(activeRowIndex:number)=>void

Callback triggered by row navigation. See the Keyboard Navigation page for more details.

onBlurWithin

(event)=> void

Function that is called when a focused element is blurred within the component.

onCellClick

({ colIndex, rowIndex, column, columnApi, api, dataSourceApi }, event) => void

Callback function called when a cell has been clicked.

onColumnOrderChange

(columnOrder: string[])=>void

Called as a result of user changing the column order

onColumnSizingChange

(columnSizing)=>void

Called as a result of user doing a column resize.

onEditAccepted

({value, initialValue, column, rowInfo, ...}) => void

Callback prop called when an edit is accepted

onEditPersistSuccess

({value, initialValue, column, rowInfo, ...})=>void

Callback prop called when an edit is persisted successfully

onEditRejected

({ value, initialValue, column, rowInfo, ... }) => void

Callback prop called when an edit is rejected

onFocusWithin

(event)=> void

Function that is called when the table receives focus within the component.

onKeyDown

({ api, dataSourceApi }, event) => void

Callback function called when the keydown event occurs on the table.

onReady

({api, dataSourceApi}) => void}

Callback prop that is being called when the table is ready.

onRenderRangeChange

(range)=>void

Called whenever the render range changes, that is, additional rows or columns come into view.

onRowDetailStateChange

(rowDetailState: RowDetailState, {expandRow, collapseRow}) => void

Called when the expand/collapse state of row details changes.

onScrollStop

({renderRange, viewportSize, scrollTop, scrollLeft})=>void

Triggered when the user has stopped scrolling (after scrollStopDelay milliseconds).

onScrollToBottom

()=>void

Triggered when the user has scrolled to the bottom of the component. Also see onScrollToTop and onScrollStop.

onViewportReservedWidthChange

(reserved: number) => void

Callback to be notified of changes to viewportReservedWidth

persistEdit

(params) => any|Error|Promise<any|Error>

Custom function to persist an edit

pivotGrandTotalColumnPosition

Default: false
"start"|"end"|false

Controls the position and visibility of pivot grand-total columns

pivotTotalColumnPosition

Default: "end"
"start"|"end"|false

Controls the position and visibility of pivot total columns

repeatWrappedGroupRows

Default: true
boolean|(rowInfo: InfiniteTableRowInfo<DATA_TYPE>) => boolean

When enabled, and wrapRowsHorizontally is also enabled, if there is grouping configured or if you're using tree data, the group/tree rows will be repeated at the top of each column set if the group/parent starts in the previous column set.

resizableColumns

Default: true
boolean

Controls if by default all columns are resizable or not.

rowClassName

string|(params:InfiniteTableStylingFnParams) => string

Specifies the className to be applied to all rows or conditionally to certain rows.

rowDetailCache

boolean|number

Controls the caching of detail DataGrids. By default, caching is disabled.

rowDetailHeight

Default: 300
number|CSSVar|(rowInfo)=>number

Controls the height of the row details section, in master-detail DataGrids.

rowDetailRenderer

(rowInfo: InfiniteTableRowInfo<DATA_TYPE>) => ReactNode

When specified, it makes InfiniteTable be a master-detail DataGrid. For configuring the height of row details, see rowDetailHeight. See related components.RowDetail.

rowDetailState

RowDetailState

Specifies the expanded/collapsed state of row details.

rowHeight

Default: 40
number|string

Specifies the height for rows. If a string is passed, it should be the name of a CSS variable, eg --row-height

rowStyle

CSSProperties|(params:InfiniteTableStylingFnParams) => CSSProperties

Specifies the style object to be applied to all rows or conditionally to certain rows.

scrollStopDelay

Default: 250
number

The delay in milliseconds that the DataGrid waits until it considers scrolling to be stopped. Also used when lazy loading is to fetch the next batch of data.

scrollTopKey

number|string

Determines scrolling the table to the top.

shouldAcceptEdit

(params) => boolean|Error|Promise<boolean|Error>

Function used to validate edits for all columns.

showColumnFilters

Default: true
boolean

Whether to show the column filters or not (only applicable when the <DataSource> is configured with filtering - either with defaultFilterValue or filterValue).

sortable

boolean | ({column, columns, api, columnApi}) => boolean

This prop is the ultimate source of truth on whether (and which) columns are sortable.

viewportReservedWidth

Default: 0
number

Specifies the width of the space to be kept as blank - useful when there are flex columns. This number can even be negative.

virtualizeColumns

Default: true
boolean

Configures whether columns are virtualized or not

wrapRowsHorizontally

Default: false
boolean

Whether to wrap rows horizontally or not. Horizontal Layout is a very different approach to the normal grid layout and only useful in very advanced scenarios.