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][]}
enableResizing
enableResizing?: boolean
Enables or disables column resizing for the column.
size
size?: number
The desired size for the column
minSize
minSize?: number
The minimum allowed size for the column
maxSize
maxSize?: number
The maximum allowed size for the column
getSize
getSize: () => number
Returns the current size of the column
getStart
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
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
Returns true
if the column can be resized.
getIsResizing
getIsResizing: () => boolean
Returns true
if the column is currently being resized.
resetSize
resetSize: () => void
Resets the column size to its initial size.
getSize
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
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
Returns an event handler function that can be used to resize the header. It can be used as an:
onMouseDown
handleronTouchStart
handlerThe dragging and release events are automatically handled for you.
enableColumnResizing
enableColumnResizing?: boolean
Enables/disables column resizing for *all columns**.
columnResizeMode
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'
Enables or disables right-to-left support for resizing the column. defaults to 'ltr'.
onColumnSizingChange
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>
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.
setColumnSizing
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
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
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
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
Returns the total size of the table by calculating the sum of the sizes of all leaf-columns.
getLeftTotalSize
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
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
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.
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.