Documentation
Framework
Version
Enterprise

Column Sizing APIs

State

Column sizing state is stored on the table using the following shape:

export type ColumnSizingTableState = { columnSizing: ColumnSizing columnSizingInfo: ColumnSizingInfoState } export type ColumnSizing = Record<string, number> export type ColumnSizingInfoState = { startOffset: null | number startSize: null | number deltaOffset: null | number deltaPercentage: null | number isResizingColumn: false | string columnSizingStart: [string, number][] } 
export type ColumnSizingTableState = { columnSizing: ColumnSizing columnSizingInfo: ColumnSizingInfoState } export type ColumnSizing = Record<string, number> export type ColumnSizingInfoState = { startOffset: null | number startSize: null | number deltaOffset: null | number deltaPercentage: null | number isResizingColumn: false | string columnSizingStart: [string, number][] } 

Column Def Options

enableResizing

enableResizing?: boolean 
enableResizing?: boolean 

Enables or disables column resizing for the column.

size

size?: number 
size?: number 

The desired size for the column

minSize

minSize?: number 
minSize?: number 

The minimum allowed size for the column

maxSize

maxSize?: number 
maxSize?: number 

The maximum allowed size for the column

Column API

getSize

getSize: () => number 
getSize: () => number 

Returns the current size of the column

getStart

getStart: (position?: ColumnPinningPosition) => number 
getStart: (position?: ColumnPinningPosition) => number 

Returns the offset measurement along the row-axis (usually the x-axis for standard tables) for the column, measuring the size of all preceding columns.

Useful for sticky or absolute positioning of columns. (e.g. left or transform)

getAfter

getAfter: (position?: ColumnPinningPosition) => number 
getAfter: (position?: ColumnPinningPosition) => number 

Returns the offset measurement along the row-axis (usually the x-axis for standard tables) for the column, measuring the size of all succeeding columns.

Useful for sticky or absolute positioning of columns. (e.g. right or transform)

getCanResize

getCanResize: () => boolean 
getCanResize: () => boolean 

Returns true if the column can be resized.

getIsResizing

getIsResizing: () => boolean 
getIsResizing: () => boolean 

Returns true if the column is currently being resized.

resetSize

resetSize: () => void 
resetSize: () => void 

Resets the column size to its initial size.

Header API

getSize

getSize: () => number 
getSize: () => number 

Returns the size for the header, calculated by summing the size of all leaf-columns that belong to it.

getStart

getStart: (position?: ColumnPinningPosition) => number 
getStart: (position?: ColumnPinningPosition) => number 

Returns the offset measurement along the row-axis (usually the x-axis for standard tables) for the header. This is effectively a sum of the offset measurements of all preceding headers.

getResizeHandler

getResizeHandler: () => (event: unknown) => void 
getResizeHandler: () => (event: unknown) => void 

Returns an event handler function that can be used to resize the header. It can be used as an:

  • onMouseDown handler
  • onTouchStart handler

The dragging and release events are automatically handled for you.

Table Options

enableColumnResizing

enableColumnResizing?: boolean 
enableColumnResizing?: boolean 

Enables/disables column resizing for *all columns**.

columnResizeMode

columnResizeMode?: 'onChange' | 'onEnd' 
columnResizeMode?: 'onChange' | 'onEnd' 

Determines when the columnSizing state is updated. onChange updates the state when the user is dragging the resize handle. onEnd updates the state when the user releases the resize handle.

columnResizeDirection

columnResizeDirection?: 'ltr' | 'rtl' 
columnResizeDirection?: 'ltr' | 'rtl' 

Enables or disables right-to-left support for resizing the column. defaults to 'ltr'.

onColumnSizingChange

onColumnSizingChange?: OnChangeFn<ColumnSizingState> 
onColumnSizingChange?: OnChangeFn<ColumnSizingState> 

This optional function will be called when the columnSizing state changes. If you provide this function, you will be responsible for maintaining its state yourself. You can pass this state back to the table via the state.columnSizing table option.

onColumnSizingInfoChange

onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState> 
onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState> 

This optional function will be called when the columnSizingInfo state changes. If you provide this function, you will be responsible for maintaining its state yourself. You can pass this state back to the table via the state.columnSizingInfo table option.

Table API

setColumnSizing

setColumnSizing: (updater: Updater<ColumnSizingState>) => void 
setColumnSizing: (updater: Updater<ColumnSizingState>) => void 

Sets the column sizing state using an updater function or a value. This will trigger the underlying onColumnSizingChange function if one is passed to the table options, otherwise the state will be managed automatically by the table.

setColumnSizingInfo

setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void 
setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void 

Sets the column sizing info state using an updater function or a value. This will trigger the underlying onColumnSizingInfoChange function if one is passed to the table options, otherwise the state will be managed automatically by the table.

resetColumnSizing

resetColumnSizing: (defaultState?: boolean) => void 
resetColumnSizing: (defaultState?: boolean) => void 

Resets column sizing to its initial state. If defaultState is true, the default state for the table will be used instead of the initialValue provided to the table.

resetHeaderSizeInfo

resetHeaderSizeInfo: (defaultState?: boolean) => void 
resetHeaderSizeInfo: (defaultState?: boolean) => void 

Resets column sizing info to its initial state. If defaultState is true, the default state for the table will be used instead of the initialValue provided to the table.

getTotalSize

getTotalSize: () => number 
getTotalSize: () => number 

Returns the total size of the table by calculating the sum of the sizes of all leaf-columns.

getLeftTotalSize

getLeftTotalSize: () => number 
getLeftTotalSize: () => number 

If pinning, returns the total size of the left portion of the table by calculating the sum of the sizes of all left leaf-columns.

getCenterTotalSize

getCenterTotalSize: () => number 
getCenterTotalSize: () => number 

If pinning, returns the total size of the center portion of the table by calculating the sum of the sizes of all unpinned/center leaf-columns.

getRightTotalSize

getRightTotalSize: () => number 
getRightTotalSize: () => number 

If pinning, returns the total size of the right portion of the table by calculating the sum of the sizes of all right leaf-columns.

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.