geoview-core
    Preparing search index...

    Interface MRT_TableOptions<TData>

    columns and data props are the only required props, but there are over 170 other optional props.

    See more info on creating columns and data on the official docs site:

    interface MRT_TableOptions<TData extends MRT_RowData> {
        _features?: TableFeature<any>[];
        aggregationFns?: Record<string, AggregationFn<any>>;
        autoResetAll?: boolean;
        autoResetExpanded?: boolean;
        autoResetPageIndex?: boolean;
        columnFilterDisplayMode?: "subheader" | "popover" | "custom";
        columnFilterModeOptions?:
            | LiteralUnion<string & MRT_FilterOption, string>[]
            | null;
        columnResizeDirection?: ColumnResizeDirection;
        columnResizeMode?: ColumnResizeMode;
        columns: MRT_ColumnDef<TData, any>[];
        columnVirtualizerInstanceRef?: RefObject<
            MRT_ColumnVirtualizer<HTMLDivElement, HTMLTableCellElement>
            | null,
        >;
        columnVirtualizerOptions?:
            | (
                (
                    props: { table: MRT_TableInstance<TData> },
                ) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>
            )
            | Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>;
        createDisplayMode?: "row" | "modal" | "custom";
        data: TData[];
        debugAll?: boolean;
        debugCells?: boolean;
        debugColumns?: boolean;
        debugHeaders?: boolean;
        debugRows?: boolean;
        debugTable?: boolean;
        defaultColumn?: Partial<MRT_ColumnDef<TData, unknown>>;
        defaultDisplayColumn?: Partial<MRT_DisplayColumnDef<TData, unknown>>;
        displayColumnDefOptions?: Partial<
            {
                "mrt-row-actions": Partial<MRT_DisplayColumnDef<TData, unknown>>;
                "mrt-row-drag": Partial<MRT_DisplayColumnDef<TData, unknown>>;
                "mrt-row-expand": Partial<MRT_DisplayColumnDef<TData, unknown>>;
                "mrt-row-numbers": Partial<MRT_DisplayColumnDef<TData, unknown>>;
                "mrt-row-pin": Partial<MRT_DisplayColumnDef<TData, unknown>>;
                "mrt-row-select": Partial<MRT_DisplayColumnDef<TData, unknown>>;
                "mrt-row-spacer": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            },
        >;
        editDisplayMode?: "table"
        | "cell"
        | "row"
        | "modal"
        | "custom";
        enableBatchRowSelection?: boolean;
        enableBottomToolbar?: boolean;
        enableCellActions?: boolean | ((cell: MRT_Cell<TData>) => boolean);
        enableClickToCopy?:
            | boolean
            | "context-menu"
            | ((cell: MRT_Cell<TData>) => boolean | "context-menu");
        enableColumnActions?: boolean;
        enableColumnDragging?: boolean;
        enableColumnFilterModes?: boolean;
        enableColumnFilters?: boolean;
        enableColumnOrdering?: boolean;
        enableColumnPinning?: boolean;
        enableColumnResizing?: boolean;
        enableColumnVirtualization?: boolean;
        enableDensityToggle?: boolean;
        enableEditing?: boolean | ((row: MRT_Row<TData>) => boolean);
        enableExpandAll?: boolean;
        enableExpanding?: boolean;
        enableFacetedValues?: boolean;
        enableFilterMatchHighlighting?: boolean;
        enableFilters?: boolean;
        enableFullScreenToggle?: boolean;
        enableGlobalFilter?: boolean;
        enableGlobalFilterModes?: boolean;
        enableGlobalFilterRankedResults?: boolean;
        enableGrouping?: boolean;
        enableHiding?: boolean;
        enableKeyboardShortcuts?: boolean;
        enableMultiRemove?: boolean;
        enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean);
        enableMultiSort?: boolean;
        enablePagination?: boolean;
        enablePinning?: boolean;
        enableRowActions?: boolean;
        enableRowDragging?: boolean;
        enableRowNumbers?: boolean;
        enableRowOrdering?: boolean;
        enableRowPinning?: boolean | ((row: Row<TData>) => boolean);
        enableRowSelection?: boolean | ((row: MRT_Row<TData>) => boolean);
        enableRowVirtualization?: boolean;
        enableSelectAll?: boolean;
        enableSorting?: boolean;
        enableSortingRemoval?: boolean;
        enableStickyFooter?: boolean;
        enableStickyHeader?: boolean;
        enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean);
        enableTableFooter?: boolean;
        enableTableHead?: boolean;
        enableToolbarInternalActions?: boolean;
        enableTopToolbar?: boolean;
        expandRowsFn?: (dataRow: TData) => TData[];
        filterFns?: Record<string, FilterFn<any>>;
        filterFromLeafRows?: boolean;
        getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean;
        getCoreRowModel?: (table: Table<any>) => () => RowModel<any>;
        getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>;
        getFacetedMinMaxValues?: (
            table: Table<TData>,
            columnId: string,
        ) => () => [number, number] | undefined;
        getFacetedRowModel?: (
            table: Table<TData>,
            columnId: string,
        ) => () => RowModel<TData>;
        getFacetedUniqueValues?: (
            table: Table<TData>,
            columnId: string,
        ) => () => Map<any, number>;
        getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>;
        getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>;
        getIsRowExpanded?: (row: Row<TData>) => boolean;
        getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>;
        getRowCanExpand?: (row: Row<TData>) => boolean;
        getRowId?: (
            originalRow: TData,
            index: number,
            parentRow: MRT_Row<TData>,
        ) => string;
        getSortedRowModel?: (table: Table<any>) => () => RowModel<any>;
        getSubRows?: (originalRow: TData, index: number) => TData[] | undefined;
        globalFilterFn?: MRT_FilterOption;
        globalFilterModeOptions?: MRT_FilterOption[] | null;
        groupedColumnMode?: false | "remove" | "reorder";
        icons?: Partial<MRT_Icons>;
        id?: string;
        initialState?: Partial<MRT_TableState<TData>>;
        isMultiSortEvent?: (e: unknown) => boolean;
        keepPinnedRows?: boolean;
        layoutMode?: "grid" | "grid-no-grow" | "semantic";
        localization?: Partial<MRT_Localization>;
        manualExpanding?: boolean;
        manualFiltering?: boolean;
        manualGrouping?: boolean;
        manualPagination?: boolean;
        manualSorting?: boolean;
        maxLeafRowFilterDepth?: number;
        maxMultiSortColCount?: number;
        memoMode?: "rows" | "cells" | "table-body";
        mergeOptions?: (
            defaultOptions: TableOptions<TData>,
            options: Partial<TableOptions<TData>>,
        ) => TableOptions<TData>;
        meta?: TableMeta<TData>;
        mrtTheme?: ((theme: Theme) => Partial<MRT_Theme>) | Partial<MRT_Theme>;
        muiBottomToolbarProps?:
            | ((props: { table: MRT_TableInstance<TData> }) => BoxProps)
            | BoxProps;
        muiCircularProgressProps?:
            | (
                (
                    props: { table: MRT_TableInstance<TData> },
                ) => CircularProgressProps & { Component?: ReactNode }
            )
            | CircularProgressProps & { Component?: ReactNode };
        muiColumnActionsButtonProps?:
            | IconButtonProps
            | (
                (
                    props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
                ) => IconButtonProps
            );
        muiColumnDragHandleProps?:
            | IconButtonProps
            | (
                (
                    props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
                ) => IconButtonProps
            );
        muiCopyButtonProps?:
            | ButtonProps
            | (
                (
                    props: {
                        cell: MRT_Cell<TData>;
                        column: MRT_Column<TData>;
                        row: MRT_Row<TData>;
                        table: MRT_TableInstance<TData>;
                    },
                ) => ButtonProps
            );
        muiCreateRowModalProps?: | DialogProps
        | (
            (
                props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
            ) => DialogProps
        );
        muiDetailPanelProps?:
            | (
                (
                    props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
                ) => TableCellProps
            )
            | TableCellProps;
        muiEditRowDialogProps?:
            | DialogProps
            | (
                (
                    props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
                ) => DialogProps
            );
        muiEditTextFieldProps?:
            | TextFieldProps
            | (
                (
                    props: {
                        cell: MRT_Cell<TData>;
                        column: MRT_Column<TData>;
                        row: MRT_Row<TData>;
                        table: MRT_TableInstance<TData>;
                    },
                ) => TextFieldProps
            );
        muiExpandAllButtonProps?: | IconButtonProps
        | ((props: { table: MRT_TableInstance<TData> }) => IconButtonProps);
        muiExpandButtonProps?:
            | IconButtonProps
            | (
                (
                    props: {
                        row: MRT_Row<TData>;
                        staticRowIndex?: number;
                        table: MRT_TableInstance<TData>;
                    },
                ) => IconButtonProps
            );
        muiFilterAutocompleteProps?: | AutocompleteProps<any, any, any, any, "div">
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => AutocompleteProps<any, any, any, any>
        );
        muiFilterCheckboxProps?:
            | CheckboxProps
            | (
                (
                    props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
                ) => CheckboxProps
            );
        muiFilterDatePickerProps?:
            | (
                (
                    props: {
                        column: MRT_Column<TData>;
                        rangeFilterIndex?: number;
                        table: MRT_TableInstance<TData>;
                    },
                ) => DatePickerProps<never>
            )
            | DatePickerProps<never, false>;
        muiFilterDateTimePickerProps?:
            | (
                (
                    props: {
                        column: MRT_Column<TData>;
                        rangeFilterIndex?: number;
                        table: MRT_TableInstance<TData>;
                    },
                ) => DateTimePickerProps<never>
            )
            | DateTimePickerProps<never, false>;
        muiFilterSliderProps?:
            | (
                (
                    props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
                ) => SliderProps
            )
            | SliderProps;
        muiFilterTextFieldProps?:
            | TextFieldProps
            | (
                (
                    props: {
                        column: MRT_Column<TData>;
                        rangeFilterIndex?: number;
                        table: MRT_TableInstance<TData>;
                    },
                ) => TextFieldProps
            );
        muiFilterTimePickerProps?: | (
            (
                props: {
                    column: MRT_Column<TData>;
                    rangeFilterIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => TimePickerProps<never>
        )
        | TimePickerProps<never, false>;
        muiLinearProgressProps?:
            | LinearProgressProps
            | (
                (
                    props: { isTopToolbar: boolean; table: MRT_TableInstance<TData> },
                ) => LinearProgressProps
            );
        muiPaginationProps?:
            | (
                (
                    props: { table: MRT_TableInstance<TData> },
                ) => Partial<
                    PaginationProps & {
                        disabled?: boolean;
                        rowsPerPageOptions?: { label: string; value: number }[]
                        | number[];
                        SelectProps?: Partial<SelectProps>;
                        showRowsPerPage?: boolean;
                    },
                >
            )
            | Partial<
                PaginationProps & {
                    disabled?: boolean;
                    rowsPerPageOptions?: number[]
                    | { label: string; value: number }[];
                    SelectProps?: Partial<SelectProps>;
                    showRowsPerPage?: boolean;
                },
            >;
        muiRowDragHandleProps?: | IconButtonProps
        | (
            (
                props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
            ) => IconButtonProps
        );
        muiSearchTextFieldProps?:
            | TextFieldProps
            | ((props: { table: MRT_TableInstance<TData> }) => TextFieldProps);
        muiSelectAllCheckboxProps?:
            | CheckboxProps
            | ((props: { table: MRT_TableInstance<TData> }) => CheckboxProps);
        muiSelectCheckboxProps?:
            | CheckboxProps
            | (
                (
                    props: {
                        row: MRT_Row<TData>;
                        staticRowIndex?: number;
                        table: MRT_TableInstance<TData>;
                    },
                ) => CheckboxProps
                | RadioProps
            )
            | RadioProps;
        muiSkeletonProps?:
            | SkeletonProps
            | (
                (
                    props: {
                        cell: MRT_Cell<TData>;
                        column: MRT_Column<TData>;
                        row: MRT_Row<TData>;
                        table: MRT_TableInstance<TData>;
                    },
                ) => SkeletonProps
            );
        muiTableBodyCellProps?: | TableCellProps
        | (
            (
                props: {
                    cell: MRT_Cell<TData>;
                    column: MRT_Column<TData>;
                    row: MRT_Row<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => TableCellProps
        );
        muiTableBodyProps?: | (
            (props: { table: MRT_TableInstance<TData> }) => TableBodyProps
        )
        | TableBodyProps;
        muiTableBodyRowProps?:
            | (
                (
                    props: {
                        isDetailPanel?: boolean;
                        row: MRT_Row<TData>;
                        staticRowIndex: number;
                        table: MRT_TableInstance<TData>;
                    },
                ) => TableRowProps
            )
            | TableRowProps;
        muiTableContainerProps?: | (
            (props: { table: MRT_TableInstance<TData> }) => TableContainerProps
        )
        | TableContainerProps;
        muiTableFooterCellProps?:
            | TableCellProps
            | (
                (
                    props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
                ) => TableCellProps
            );
        muiTableFooterProps?:
            | ((props: { table: MRT_TableInstance<TData> }) => TableFooterProps)
            | TableFooterProps;
        muiTableFooterRowProps?:
            | TableRowProps
            | (
                (
                    props: {
                        footerGroup: MRT_HeaderGroup<TData>;
                        table: MRT_TableInstance<TData>;
                    },
                ) => TableRowProps
            );
        muiTableHeadCellProps?: | TableCellProps
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => TableCellProps
        );
        muiTableHeadProps?:
            | ((props: { table: MRT_TableInstance<TData> }) => TableHeadProps)
            | TableHeadProps;
        muiTableHeadRowProps?:
            | TableRowProps
            | (
                (
                    props: {
                        headerGroup: MRT_HeaderGroup<TData>;
                        table: MRT_TableInstance<TData>;
                    },
                ) => TableRowProps
            );
        muiTablePaperProps?: | PaperProps
        | ((props: { table: MRT_TableInstance<TData> }) => PaperProps);
        muiTableProps?:
            | ((props: { table: MRT_TableInstance<TData> }) => TableProps)
            | TableProps;
        muiToolbarAlertBannerChipProps?:
            | ((props: { table: MRT_TableInstance<TData> }) => ChipProps)
            | ChipProps;
        muiToolbarAlertBannerProps?:
            | AlertProps
            | ((props: { table: MRT_TableInstance<TData> }) => AlertProps);
        muiTopToolbarProps?:
            | BoxProps
            | ((props: { table: MRT_TableInstance<TData> }) => BoxProps);
        onActionCellChange?: OnChangeFn<MRT_Cell<TData, unknown> | null>;
        onColumnFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;
        onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>;
        onColumnOrderChange?: OnChangeFn<ColumnOrderState>;
        onColumnPinningChange?: OnChangeFn<ColumnPinningState>;
        onColumnSizingChange?: OnChangeFn<ColumnSizingState>;
        onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>;
        onColumnVisibilityChange?: OnChangeFn<VisibilityState>;
        onCreatingRowCancel?: (
            props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
        ) => void;
        onCreatingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
        onCreatingRowSave?: (
            props: {
                exitCreatingMode: () => void;
                row: MRT_Row<TData>;
                table: MRT_TableInstance<TData>;
                values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
            },
        ) => void
        | Promise<void>;
        onDensityChange?: OnChangeFn<MRT_DensityState>;
        onDraggingColumnChange?: OnChangeFn<MRT_Column<TData, unknown> | null>;
        onDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
        onEditingCellChange?: OnChangeFn<MRT_Cell<TData, unknown> | null>;
        onEditingRowCancel?: (
            props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
        ) => void;
        onEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
        onEditingRowSave?: (
            props: {
                exitEditingMode: () => void;
                row: MRT_Row<TData>;
                table: MRT_TableInstance<TData>;
                values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
            },
        ) => void
        | Promise<void>;
        onExpandedChange?: OnChangeFn<ExpandedState>;
        onGlobalFilterChange?: OnChangeFn<any>;
        onGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;
        onGroupingChange?: OnChangeFn<GroupingState>;
        onHoveredColumnChange?: OnChangeFn<
            Partial<MRT_Column<TData, unknown>>
            | null,
        >;
        onHoveredRowChange?: OnChangeFn<Partial<MRT_Row<TData>> | null>;
        onIsFullScreenChange?: OnChangeFn<boolean>;
        onPaginationChange?: OnChangeFn<PaginationState>;
        onRowPinningChange?: OnChangeFn<RowPinningState>;
        onRowSelectionChange?: OnChangeFn<RowSelectionState>;
        onShowAlertBannerChange?: OnChangeFn<boolean>;
        onShowColumnFiltersChange?: OnChangeFn<boolean>;
        onShowGlobalFilterChange?: OnChangeFn<boolean>;
        onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
        onSortingChange?: OnChangeFn<SortingState>;
        pageCount?: number;
        paginateExpandedRows?: boolean;
        paginationDisplayMode?: "default" | "custom" | "pages";
        positionActionsColumn?: "first" | "last";
        positionCreatingRow?: number | "bottom" | "top";
        positionExpandColumn?: "first" | "last";
        positionGlobalFilter?: "none" | "left" | "right";
        positionPagination?: "none" | "bottom" | "top" | "both";
        positionToolbarAlertBanner?: "none" | "bottom" | "top" | "head-overlay";
        positionToolbarDropZone?: "none" | "bottom" | "top" | "both";
        renderBottomToolbar?:
            | ReactNode
            | ((props: { table: MRT_TableInstance<TData> }) => ReactNode);
        renderBottomToolbarCustomActions?: (
            props: { table: MRT_TableInstance<TData> },
        ) => ReactNode;
        renderCaption?:
            | ReactNode
            | ((props: { table: MRT_TableInstance<TData> }) => ReactNode);
        renderCellActionMenuItems?: (
            props: {
                cell: MRT_Cell<TData>;
                closeMenu: () => void;
                column: MRT_Column<TData>;
                internalMenuItems: ReactNode[];
                row: MRT_Row<TData>;
                staticColumnIndex?: number;
                staticRowIndex?: number;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode[];
        renderColumnActionsMenuItems?: (
            props: {
                closeMenu: () => void;
                column: MRT_Column<TData>;
                internalColumnMenuItems: ReactNode[];
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode[];
        renderColumnFilterModeMenuItems?: (
            props: {
                column: MRT_Column<TData>;
                internalFilterOptions: MRT_InternalFilterOption[];
                onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode[];
        renderCreateRowDialogContent?: (
            props: {
                internalEditComponents: ReactNode[];
                row: MRT_Row<TData>;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode;
        renderDetailPanel?: (
            props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
        ) => ReactNode;
        renderEditRowDialogContent?: (
            props: {
                internalEditComponents: ReactNode[];
                row: MRT_Row<TData>;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode;
        renderEmptyRowsFallback?: (
            props: { table: MRT_TableInstance<TData> },
        ) => ReactNode;
        renderFallbackValue?: any;
        renderGlobalFilterModeMenuItems?: (
            props: {
                internalFilterOptions: MRT_InternalFilterOption[];
                onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode[];
        renderRowActionMenuItems?: (
            props: {
                closeMenu: () => void;
                row: MRT_Row<TData>;
                staticRowIndex?: number;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode[]
        | undefined;
        renderRowActions?: (
            props: {
                cell: MRT_Cell<TData>;
                row: MRT_Row<TData>;
                staticRowIndex?: number;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode;
        renderToolbarAlertBannerContent?: (
            props: {
                groupedAlert: ReactNode;
                selectedAlert: ReactNode;
                table: MRT_TableInstance<TData>;
            },
        ) => ReactNode;
        renderToolbarInternalActions?: (
            props: { table: MRT_TableInstance<TData> },
        ) => ReactNode;
        renderTopToolbar?:
            | ReactNode
            | ((props: { table: MRT_TableInstance<TData> }) => ReactNode);
        renderTopToolbarCustomActions?: (
            props: { table: MRT_TableInstance<TData> },
        ) => ReactNode;
        rowCount?: number;
        rowNumberDisplayMode?: "static" | "original";
        rowPinningDisplayMode?:
            | "bottom"
            | "top"
            | "sticky"
            | "select-bottom"
            | "select-sticky"
            | "select-top"
            | "top-and-bottom";
        rowVirtualizerInstanceRef?: RefObject<
            MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>
            | null,
        >;
        rowVirtualizerOptions?:
            | (
                (
                    props: { table: MRT_TableInstance<TData> },
                ) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>
            )
            | Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>;
        selectAllMode?: "page" | "all";
        sortDescFirst?: boolean;
        sortingFns?: Record<string, SortingFn<any>>;
        state?: Partial<MRT_TableState<TData>>;
    }

    Type Parameters

    Hierarchy

    • Omit<
          Partial<TableOptions<TData>>,

              | "columns"
              | "data"
              | "defaultColumn"
              | "enableRowSelection"
              | "expandRowsFn"
              | "getRowId"
              | "globalFilterFn"
              | "initialState"
              | "onStateChange"
              | "state",
      >
      • MRT_TableOptions
    Index

    Properties

    _features? aggregationFns? autoResetAll? autoResetExpanded? autoResetPageIndex? columnFilterDisplayMode? columnFilterModeOptions? columnResizeDirection? columnResizeMode? columns columnVirtualizerInstanceRef? columnVirtualizerOptions? createDisplayMode? data debugAll? debugCells? debugColumns? debugHeaders? debugRows? debugTable? defaultColumn? defaultDisplayColumn? displayColumnDefOptions? editDisplayMode? enableBatchRowSelection? enableBottomToolbar? enableCellActions? enableClickToCopy? enableColumnActions? enableColumnDragging? enableColumnFilterModes? enableColumnFilters? enableColumnOrdering? enableColumnPinning? enableColumnResizing? enableColumnVirtualization? enableDensityToggle? enableEditing? enableExpandAll? enableExpanding? enableFacetedValues? enableFilterMatchHighlighting? enableFilters? enableFullScreenToggle? enableGlobalFilter? enableGlobalFilterModes? enableGlobalFilterRankedResults? enableGrouping? enableHiding? enableKeyboardShortcuts? enableMultiRemove? enableMultiRowSelection? enableMultiSort? enablePagination? enablePinning? enableRowActions? enableRowDragging? enableRowNumbers? enableRowOrdering? enableRowPinning? enableRowSelection? enableRowVirtualization? enableSelectAll? enableSorting? enableSortingRemoval? enableStickyFooter? enableStickyHeader? enableSubRowSelection? enableTableFooter? enableTableHead? enableToolbarInternalActions? enableTopToolbar? expandRowsFn? filterFns? filterFromLeafRows? getColumnCanGlobalFilter? getCoreRowModel? getExpandedRowModel? getFacetedMinMaxValues? getFacetedRowModel? getFacetedUniqueValues? getFilteredRowModel? getGroupedRowModel? getIsRowExpanded? getPaginationRowModel? getRowCanExpand? getRowId? getSortedRowModel? getSubRows? globalFilterFn? globalFilterModeOptions? groupedColumnMode? icons? id? initialState? isMultiSortEvent? keepPinnedRows? layoutMode? localization? manualExpanding? manualFiltering? manualGrouping? manualPagination? manualSorting? maxLeafRowFilterDepth? maxMultiSortColCount? memoMode? mergeOptions? meta? mrtTheme? muiBottomToolbarProps? muiCircularProgressProps? muiColumnActionsButtonProps? muiColumnDragHandleProps? muiCopyButtonProps? muiCreateRowModalProps? muiDetailPanelProps? muiEditRowDialogProps? muiEditTextFieldProps? muiExpandAllButtonProps? muiExpandButtonProps? muiFilterAutocompleteProps? muiFilterCheckboxProps? muiFilterDatePickerProps? muiFilterDateTimePickerProps? muiFilterSliderProps? muiFilterTextFieldProps? muiFilterTimePickerProps? muiLinearProgressProps? muiPaginationProps? muiRowDragHandleProps? muiSearchTextFieldProps? muiSelectAllCheckboxProps? muiSelectCheckboxProps? muiSkeletonProps? muiTableBodyCellProps? muiTableBodyProps? muiTableBodyRowProps? muiTableContainerProps? muiTableFooterCellProps? muiTableFooterProps? muiTableFooterRowProps? muiTableHeadCellProps? muiTableHeadProps? muiTableHeadRowProps? muiTablePaperProps? muiTableProps? muiToolbarAlertBannerChipProps? muiToolbarAlertBannerProps? muiTopToolbarProps? onActionCellChange? onColumnFilterFnsChange? onColumnFiltersChange? onColumnOrderChange? onColumnPinningChange? onColumnSizingChange? onColumnSizingInfoChange? onColumnVisibilityChange? onCreatingRowCancel? onCreatingRowChange? onCreatingRowSave? onDensityChange? onDraggingColumnChange? onDraggingRowChange? onEditingCellChange? onEditingRowCancel? onEditingRowChange? onEditingRowSave? onExpandedChange? onGlobalFilterChange? onGlobalFilterFnChange? onGroupingChange? onHoveredColumnChange? onHoveredRowChange? onIsFullScreenChange? onPaginationChange? onRowPinningChange? onRowSelectionChange? onShowAlertBannerChange? onShowColumnFiltersChange? onShowGlobalFilterChange? onShowToolbarDropZoneChange? onSortingChange? pageCount? paginateExpandedRows? paginationDisplayMode? positionActionsColumn? positionCreatingRow? positionExpandColumn? positionGlobalFilter? positionPagination? positionToolbarAlertBanner? positionToolbarDropZone? renderBottomToolbar? renderBottomToolbarCustomActions? renderCaption? renderCellActionMenuItems? renderColumnActionsMenuItems? renderColumnFilterModeMenuItems? renderCreateRowDialogContent? renderDetailPanel? renderEditRowDialogContent? renderEmptyRowsFallback? renderFallbackValue? renderGlobalFilterModeMenuItems? renderRowActionMenuItems? renderRowActions? renderToolbarAlertBannerContent? renderToolbarInternalActions? renderTopToolbar? renderTopToolbarCustomActions? rowCount? rowNumberDisplayMode? rowPinningDisplayMode? rowVirtualizerInstanceRef? rowVirtualizerOptions? selectAllMode? sortDescFirst? sortingFns? state?

    Properties

    _features?: TableFeature<any>[]

    An array of extra features that you can add to the table instance.

    aggregationFns?: Record<string, AggregationFn<any>>
    autoResetAll?: boolean

    Set this option to override any of the autoReset... feature options.

    autoResetExpanded?: boolean

    Enable this setting to automatically reset the expanded state of the table when expanding state changes.

    autoResetPageIndex?: boolean

    If set to true, pagination will be reset to the first page when page-altering state changes eg. data is updated, filters change, grouping changes, etc.

    columnFilterDisplayMode?: "subheader" | "popover" | "custom"
    columnFilterModeOptions?:
        | LiteralUnion<string & MRT_FilterOption, string>[]
        | null
    columnResizeDirection?: ColumnResizeDirection

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

    columnResizeMode?: ColumnResizeMode

    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.

    columns: MRT_ColumnDef<TData, any>[]

    The columns to display in the table. accessorKeys or accessorFns must match keys in the data table option.

    See more info on creating columns on the official docs site:

    columnVirtualizerInstanceRef?: RefObject<
        MRT_ColumnVirtualizer<HTMLDivElement, HTMLTableCellElement>
        | null,
    >
    columnVirtualizerOptions?:
        | (
            (
                props: { table: MRT_TableInstance<TData> },
            ) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>
        )
        | Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>
    createDisplayMode?: "row" | "modal" | "custom"
    data: TData[]

    Pass your data as an array of objects. Objects can theoretically be any shape, but it's best to keep them consistent.

    See the usage guide for more info on creating columns and data:

    debugAll?: boolean

    Set this option to true to output all debugging information to the console.

    debugCells?: boolean

    Set this option to true to output cell debugging information to the console.

    debugColumns?: boolean

    Set this option to true to output column debugging information to the console.

    debugHeaders?: boolean

    Set this option to true to output header debugging information to the console.

    debugRows?: boolean

    Set this option to true to output row debugging information to the console.

    debugTable?: boolean

    Set this option to true to output table debugging information to the console.

    defaultColumn?: Partial<MRT_ColumnDef<TData, unknown>>

    Instead of specifying a bunch of the same options for each column, you can just change an option in the defaultColumn table option to change a default option for all columns.

    defaultDisplayColumn?: Partial<MRT_DisplayColumnDef<TData, unknown>>

    Change the default options for display columns.

    displayColumnDefOptions?: Partial<
        {
            "mrt-row-actions": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            "mrt-row-drag": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            "mrt-row-expand": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            "mrt-row-numbers": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            "mrt-row-pin": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            "mrt-row-select": Partial<MRT_DisplayColumnDef<TData, unknown>>;
            "mrt-row-spacer": Partial<MRT_DisplayColumnDef<TData, unknown>>;
        },
    >
    editDisplayMode?: "table" | "cell" | "row" | "modal" | "custom"
    enableBatchRowSelection?: boolean
    enableBottomToolbar?: boolean
    enableCellActions?: boolean | ((cell: MRT_Cell<TData>) => boolean)
    enableClickToCopy?:
        | boolean
        | "context-menu"
        | ((cell: MRT_Cell<TData>) => boolean | "context-menu")
    enableColumnActions?: boolean
    enableColumnDragging?: boolean
    enableColumnFilterModes?: boolean
    enableColumnFilters?: boolean

    Enables/disables column filtering for all columns.

    enableColumnOrdering?: boolean
    enableColumnPinning?: boolean

    Enables/disables column pinning for the table. Defaults to true.

    enableColumnResizing?: boolean

    Enables or disables column resizing for the column.

    enableColumnVirtualization?: boolean
    enableDensityToggle?: boolean
    enableEditing?: boolean | ((row: MRT_Row<TData>) => boolean)
    enableExpandAll?: boolean
    enableExpanding?: boolean

    Enable/disable expanding for all rows.

    enableFacetedValues?: boolean
    enableFilterMatchHighlighting?: boolean
    enableFilters?: boolean

    Enables/disables all filtering for the table.

    enableFullScreenToggle?: boolean
    enableGlobalFilter?: boolean

    Enables/disables global filtering for all columns.

    enableGlobalFilterModes?: boolean
    enableGlobalFilterRankedResults?: boolean
    enableGrouping?: boolean

    Enables/disables grouping for the table.

    enableHiding?: boolean

    Whether to enable column hiding. Defaults to true.

    enableKeyboardShortcuts?: boolean
    enableMultiRemove?: boolean

    Enables/disables the ability to remove multi-sorts

    enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)
    • Enables/disables multiple row selection for all rows in the table OR
    • A function that given a row, returns whether to enable/disable multiple row selection for that row's children/grandchildren
    enableMultiSort?: boolean

    Enables/Disables multi-sorting for the table.

    enablePagination?: boolean
    enablePinning?: boolean

    Use enableColumnPinning or enableRowPinning instead. Enables/disables all pinning for the table. Defaults to true.

    enableRowActions?: boolean
    enableRowDragging?: boolean
    enableRowNumbers?: boolean
    enableRowOrdering?: boolean
    enableRowPinning?: boolean | ((row: Row<TData>) => boolean)

    Enables/disables row pinning for the table. Defaults to true.

    enableRowSelection?: boolean | ((row: MRT_Row<TData>) => boolean)
    enableRowVirtualization?: boolean
    enableSelectAll?: boolean
    enableSorting?: boolean

    Enables/Disables sorting for the table.

    enableSortingRemoval?: boolean

    Enables/Disables the ability to remove sorting for the table.

    • If true then changing sort order will circle like: 'none' -> 'desc' -> 'asc' -> 'none' -> ...
    • If false then changing sort order will circle like: 'none' -> 'desc' -> 'asc' -> 'desc' -> 'asc' -> ...
    enableStickyFooter?: boolean
    enableStickyHeader?: boolean
    enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)

    Enables/disables automatic sub-row selection when a parent row is selected, or a function that enables/disables automatic sub-row selection for each row. (Use in combination with expanding or grouping features)

    enableTableFooter?: boolean
    enableTableHead?: boolean
    enableToolbarInternalActions?: boolean
    enableTopToolbar?: boolean
    expandRowsFn?: (dataRow: TData) => TData[]
    filterFns?: Record<string, FilterFn<any>>
    filterFromLeafRows?: boolean

    By default, filtering is done from parent rows down (so if a parent row is filtered out, all of its children will be filtered out as well). Setting this option to true will cause filtering to be done from leaf rows up (which means parent rows will be included so long as one of their child or grand-child rows is also included).

    getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean

    If provided, this function will be called with the column and should return true or false to indicate whether this column should be used for global filtering.

    This is useful if the column can contain data that is not string or number (i.e. undefined).

    getCoreRowModel?: (table: Table<any>) => () => RowModel<any>

    This required option is a factory for a function that computes and returns the core row model for the table.

    getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>

    This function is responsible for returning the expanded row model. If this function is not provided, the table will not expand rows. You can use the default exported getExpandedRowModel function to get the expanded row model or implement your own.

    getFacetedMinMaxValues?: (
        table: Table<TData>,
        columnId: string,
    ) => () => [number, number] | undefined
    getFacetedRowModel?: (
        table: Table<TData>,
        columnId: string,
    ) => () => RowModel<TData>
    getFacetedUniqueValues?: (
        table: Table<TData>,
        columnId: string,
    ) => () => Map<any, number>
    getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>

    If provided, this function is called once per table and should return a new function which will calculate and return the row model for the table when it's filtered.

    • For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model.
    • For client-side filtering, this function is required. A default implementation is provided via any table adapter's { getFilteredRowModel } export.
    getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>

    Returns the row model after grouping has taken place, but no further.

    getIsRowExpanded?: (row: Row<TData>) => boolean

    If provided, allows you to override the default behavior of determining whether a row is currently expanded.

    getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>

    Returns the row model after pagination has taken place, but no further.

    Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.

    getRowCanExpand?: (row: Row<TData>) => boolean

    If provided, allows you to override the default behavior of determining whether a row can be expanded.

    getRowId?: (
        originalRow: TData,
        index: number,
        parentRow: MRT_Row<TData>,
    ) => string
    getSortedRowModel?: (table: Table<any>) => () => RowModel<any>

    This function is used to retrieve the sorted row model. If using server-side sorting, this function is not required. To use client-side sorting, pass the exported getSortedRowModel() from your adapter to your table or implement your own.

    getSubRows?: (originalRow: TData, index: number) => TData[] | undefined

    This optional function is used to access the sub rows for any given row. If you are using nested rows, you will need to use this function to return the sub rows object (or undefined) from the row.

    getSubRows: row => row.subRows
    
    globalFilterFn?: MRT_FilterOption
    globalFilterModeOptions?: MRT_FilterOption[] | null
    groupedColumnMode?: false | "remove" | "reorder"

    Grouping columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.

    icons?: Partial<MRT_Icons>
    id?: string
    initialState?: Partial<MRT_TableState<TData>>
    isMultiSortEvent?: (e: unknown) => boolean

    Pass a custom function that will be used to determine if a multi-sort event should be triggered. It is passed the event from the sort toggle handler and should return true if the event should trigger a multi-sort.

    keepPinnedRows?: boolean

    When false, pinned rows will not be visible if they are filtered or paginated out of the table. When true, pinned rows will always be visible regardless of filtering or pagination. Defaults to true.

    layoutMode?: "grid" | "grid-no-grow" | "semantic"

    Changes which kind of CSS layout is used to render the table. semantic uses default semantic HTML elements, while grid adds CSS grid and flexbox styles

    localization?: Partial<MRT_Localization>

    Pass in either a locale imported from material-react-table/locales/* or a custom locale object.

    See the localization (i18n) guide for more info:

    manualExpanding?: boolean

    Enables manual row expansion. If this is set to true, getExpandedRowModel will not be used to expand rows and you would be expected to perform the expansion in your own data model. This is useful if you are doing server-side expansion.

    manualFiltering?: boolean

    Disables the getFilteredRowModel from being used to filter data. This may be useful if your table needs to dynamically support both client-side and server-side filtering.

    manualGrouping?: boolean

    Enables manual grouping. If this option is set to true, the table will not automatically group rows using getGroupedRowModel() and instead will expect you to manually group the rows before passing them to the table. This is useful if you are doing server-side grouping and aggregation.

    manualPagination?: boolean

    Enables manual pagination. If this option is set to true, the table will not automatically paginate rows using getPaginationRowModel() and instead will expect you to manually paginate the rows before passing them to the table. This is useful if you are doing server-side pagination and aggregation.

    manualSorting?: boolean

    Enables manual sorting for the table. If this is true, you will be expected to sort your data before it is passed to the table. This is useful if you are doing server-side sorting.

    maxLeafRowFilterDepth?: number

    By default, filtering is done for all rows (max depth of 100), no matter if they are root level parent rows or the child leaf rows of a parent row. Setting this option to 0 will cause filtering to only be applied to the root level parent rows, with all sub-rows remaining unfiltered. Similarly, setting this option to 1 will cause filtering to only be applied to child leaf rows 1 level deep, and so on.

    This is useful for situations where you want a row's entire child hierarchy to be visible regardless of the applied filter. *

    maxMultiSortColCount?: number

    Set a maximum number of columns that can be multi-sorted.

    memoMode?: "rows" | "cells" | "table-body"

    Memoize cells, rows, or the entire table body to potentially improve render performance.

    This will break some dynamic rendering features. See the memoization guide for more info:

    mergeOptions?: (
        defaultOptions: TableOptions<TData>,
        options: Partial<TableOptions<TData>>,
    ) => TableOptions<TData>

    This option is used to optionally implement the merging of table options.

    meta?: TableMeta<TData>

    You can pass any object to options.meta and access it anywhere the table is available via table.options.meta.

    mrtTheme?: ((theme: Theme) => Partial<MRT_Theme>) | Partial<MRT_Theme>
    muiBottomToolbarProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => BoxProps)
        | BoxProps
    muiCircularProgressProps?:
        | (
            (
                props: { table: MRT_TableInstance<TData> },
            ) => CircularProgressProps & { Component?: ReactNode }
        )
        | CircularProgressProps & { Component?: ReactNode }
    muiColumnActionsButtonProps?:
        | IconButtonProps
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => IconButtonProps
        )
    muiColumnDragHandleProps?:
        | IconButtonProps
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => IconButtonProps
        )
    muiCopyButtonProps?:
        | ButtonProps
        | (
            (
                props: {
                    cell: MRT_Cell<TData>;
                    column: MRT_Column<TData>;
                    row: MRT_Row<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => ButtonProps
        )
    muiCreateRowModalProps?:
        | DialogProps
        | (
            (
                props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
            ) => DialogProps
        )
    muiDetailPanelProps?:
        | (
            (
                props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
            ) => TableCellProps
        )
        | TableCellProps
    muiEditRowDialogProps?:
        | DialogProps
        | (
            (
                props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
            ) => DialogProps
        )
    muiEditTextFieldProps?:
        | TextFieldProps
        | (
            (
                props: {
                    cell: MRT_Cell<TData>;
                    column: MRT_Column<TData>;
                    row: MRT_Row<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => TextFieldProps
        )
    muiExpandAllButtonProps?:
        | IconButtonProps
        | ((props: { table: MRT_TableInstance<TData> }) => IconButtonProps)
    muiExpandButtonProps?:
        | IconButtonProps
        | (
            (
                props: {
                    row: MRT_Row<TData>;
                    staticRowIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => IconButtonProps
        )
    muiFilterAutocompleteProps?:
        | AutocompleteProps<any, any, any, any, "div">
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => AutocompleteProps<any, any, any, any>
        )
    muiFilterCheckboxProps?:
        | CheckboxProps
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => CheckboxProps
        )
    muiFilterDatePickerProps?:
        | (
            (
                props: {
                    column: MRT_Column<TData>;
                    rangeFilterIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => DatePickerProps<never>
        )
        | DatePickerProps<never, false>
    muiFilterDateTimePickerProps?:
        | (
            (
                props: {
                    column: MRT_Column<TData>;
                    rangeFilterIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => DateTimePickerProps<never>
        )
        | DateTimePickerProps<never, false>
    muiFilterSliderProps?:
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => SliderProps
        )
        | SliderProps
    muiFilterTextFieldProps?:
        | TextFieldProps
        | (
            (
                props: {
                    column: MRT_Column<TData>;
                    rangeFilterIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => TextFieldProps
        )
    muiFilterTimePickerProps?:
        | (
            (
                props: {
                    column: MRT_Column<TData>;
                    rangeFilterIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => TimePickerProps<never>
        )
        | TimePickerProps<never, false>
    muiLinearProgressProps?:
        | LinearProgressProps
        | (
            (
                props: { isTopToolbar: boolean; table: MRT_TableInstance<TData> },
            ) => LinearProgressProps
        )
    muiPaginationProps?:
        | (
            (
                props: { table: MRT_TableInstance<TData> },
            ) => Partial<
                PaginationProps & {
                    disabled?: boolean;
                    rowsPerPageOptions?: { label: string; value: number }[]
                    | number[];
                    SelectProps?: Partial<SelectProps>;
                    showRowsPerPage?: boolean;
                },
            >
        )
        | Partial<
            PaginationProps & {
                disabled?: boolean;
                rowsPerPageOptions?: number[]
                | { label: string; value: number }[];
                SelectProps?: Partial<SelectProps>;
                showRowsPerPage?: boolean;
            },
        >
    muiRowDragHandleProps?:
        | IconButtonProps
        | (
            (
                props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
            ) => IconButtonProps
        )
    muiSearchTextFieldProps?:
        | TextFieldProps
        | ((props: { table: MRT_TableInstance<TData> }) => TextFieldProps)
    muiSelectAllCheckboxProps?:
        | CheckboxProps
        | ((props: { table: MRT_TableInstance<TData> }) => CheckboxProps)
    muiSelectCheckboxProps?:
        | CheckboxProps
        | (
            (
                props: {
                    row: MRT_Row<TData>;
                    staticRowIndex?: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => CheckboxProps
            | RadioProps
        )
        | RadioProps
    muiSkeletonProps?:
        | SkeletonProps
        | (
            (
                props: {
                    cell: MRT_Cell<TData>;
                    column: MRT_Column<TData>;
                    row: MRT_Row<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => SkeletonProps
        )
    muiTableBodyCellProps?:
        | TableCellProps
        | (
            (
                props: {
                    cell: MRT_Cell<TData>;
                    column: MRT_Column<TData>;
                    row: MRT_Row<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => TableCellProps
        )
    muiTableBodyProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => TableBodyProps)
        | TableBodyProps
    muiTableBodyRowProps?:
        | (
            (
                props: {
                    isDetailPanel?: boolean;
                    row: MRT_Row<TData>;
                    staticRowIndex: number;
                    table: MRT_TableInstance<TData>;
                },
            ) => TableRowProps
        )
        | TableRowProps
    muiTableContainerProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => TableContainerProps)
        | TableContainerProps
    muiTableFooterCellProps?:
        | TableCellProps
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => TableCellProps
        )
    muiTableFooterProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => TableFooterProps)
        | TableFooterProps
    muiTableFooterRowProps?:
        | TableRowProps
        | (
            (
                props: {
                    footerGroup: MRT_HeaderGroup<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => TableRowProps
        )
    muiTableHeadCellProps?:
        | TableCellProps
        | (
            (
                props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData> },
            ) => TableCellProps
        )
    muiTableHeadProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => TableHeadProps)
        | TableHeadProps
    muiTableHeadRowProps?:
        | TableRowProps
        | (
            (
                props: {
                    headerGroup: MRT_HeaderGroup<TData>;
                    table: MRT_TableInstance<TData>;
                },
            ) => TableRowProps
        )
    muiTablePaperProps?:
        | PaperProps
        | ((props: { table: MRT_TableInstance<TData> }) => PaperProps)
    muiTableProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => TableProps)
        | TableProps
    muiToolbarAlertBannerChipProps?:
        | ((props: { table: MRT_TableInstance<TData> }) => ChipProps)
        | ChipProps
    muiToolbarAlertBannerProps?:
        | AlertProps
        | ((props: { table: MRT_TableInstance<TData> }) => AlertProps)
    muiTopToolbarProps?:
        | BoxProps
        | ((props: { table: MRT_TableInstance<TData> }) => BoxProps)
    onActionCellChange?: OnChangeFn<MRT_Cell<TData, unknown> | null>
    onColumnFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>
    onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>

    If provided, this function will be called with an updaterFn when state.columnFilters changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.

    onColumnOrderChange?: OnChangeFn<ColumnOrderState>

    If provided, this function will be called with an updaterFn when state.columnOrder changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.

    onColumnPinningChange?: OnChangeFn<ColumnPinningState>

    If provided, this function will be called with an updaterFn when state.columnPinning changes. This overrides the default internal state management, so you will also need to supply state.columnPinning from your own managed state.

    onColumnSizingChange?: OnChangeFn<ColumnSizingState>

    If provided, this function will be called with an updaterFn when state.columnSizing changes. This overrides the default internal state management, so you will also need to supply state.columnSizing from your own managed state.

    onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>

    If provided, this function will be called with an updaterFn when state.columnSizingInfo changes. This overrides the default internal state management, so you will also need to supply state.columnSizingInfo from your own managed state.

    onColumnVisibilityChange?: OnChangeFn<VisibilityState>

    If provided, this function will be called with an updaterFn when state.columnVisibility changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.

    onCreatingRowCancel?: (
        props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
    ) => void
    onCreatingRowChange?: OnChangeFn<MRT_Row<TData> | null>
    onCreatingRowSave?: (
        props: {
            exitCreatingMode: () => void;
            row: MRT_Row<TData>;
            table: MRT_TableInstance<TData>;
            values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
        },
    ) => void
    | Promise<void>
    onDensityChange?: OnChangeFn<MRT_DensityState>
    onDraggingColumnChange?: OnChangeFn<MRT_Column<TData, unknown> | null>
    onDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>
    onEditingCellChange?: OnChangeFn<MRT_Cell<TData, unknown> | null>
    onEditingRowCancel?: (
        props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
    ) => void
    onEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>
    onEditingRowSave?: (
        props: {
            exitEditingMode: () => void;
            row: MRT_Row<TData>;
            table: MRT_TableInstance<TData>;
            values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
        },
    ) => void
    | Promise<void>
    onExpandedChange?: OnChangeFn<ExpandedState>

    This function is called when the expanded table state changes. If a function is provided, you will be responsible for managing this state on your own. To pass the managed state back to the table, use the tableOptions.state.expanded option.

    onGlobalFilterChange?: OnChangeFn<any>

    If provided, this function will be called with an updaterFn when state.globalFilter changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.

    onGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>
    onGroupingChange?: OnChangeFn<GroupingState>

    If this function is provided, it will be called when the grouping state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the tableOptions.state.grouping option.

    onHoveredColumnChange?: OnChangeFn<Partial<MRT_Column<TData, unknown>> | null>
    onHoveredRowChange?: OnChangeFn<Partial<MRT_Row<TData>> | null>
    onIsFullScreenChange?: OnChangeFn<boolean>
    onPaginationChange?: OnChangeFn<PaginationState>

    If this function is provided, it will be called when the pagination state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the tableOptions.state.pagination option.

    onRowPinningChange?: OnChangeFn<RowPinningState>

    If provided, this function will be called with an updaterFn when state.rowPinning changes. This overrides the default internal state management, so you will also need to supply state.rowPinning from your own managed state.

    onRowSelectionChange?: OnChangeFn<RowSelectionState>

    If provided, this function will be called with an updaterFn when state.rowSelection changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.

    onShowAlertBannerChange?: OnChangeFn<boolean>
    onShowColumnFiltersChange?: OnChangeFn<boolean>
    onShowGlobalFilterChange?: OnChangeFn<boolean>
    onShowToolbarDropZoneChange?: OnChangeFn<boolean>
    onSortingChange?: OnChangeFn<SortingState>

    If provided, this function will be called with an updaterFn when state.sorting changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.

    pageCount?: number

    When manually controlling pagination, you can supply a total pageCount value to the table if you know it (Or supply a rowCount and pageCount will be calculated). If you do not know how many pages there are, you can set this to -1.

    paginateExpandedRows?: boolean

    If true expanded rows will be paginated along with the rest of the table (which means expanded rows may span multiple pages). If false expanded rows will not be considered for pagination (which means expanded rows will always render on their parents page. This also means more rows will be rendered than the set page size)

    paginationDisplayMode?: "default" | "custom" | "pages"
    positionActionsColumn?: "first" | "last"
    positionCreatingRow?: number | "bottom" | "top"
    positionExpandColumn?: "first" | "last"
    positionGlobalFilter?: "none" | "left" | "right"
    positionPagination?: "none" | "bottom" | "top" | "both"
    positionToolbarAlertBanner?: "none" | "bottom" | "top" | "head-overlay"
    positionToolbarDropZone?: "none" | "bottom" | "top" | "both"
    renderBottomToolbar?:
        | ReactNode
        | ((props: { table: MRT_TableInstance<TData> }) => ReactNode)
    renderBottomToolbarCustomActions?: (
        props: { table: MRT_TableInstance<TData> },
    ) => ReactNode
    renderCaption?:
        | ReactNode
        | ((props: { table: MRT_TableInstance<TData> }) => ReactNode)
    renderCellActionMenuItems?: (
        props: {
            cell: MRT_Cell<TData>;
            closeMenu: () => void;
            column: MRT_Column<TData>;
            internalMenuItems: ReactNode[];
            row: MRT_Row<TData>;
            staticColumnIndex?: number;
            staticRowIndex?: number;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode[]
    renderColumnActionsMenuItems?: (
        props: {
            closeMenu: () => void;
            column: MRT_Column<TData>;
            internalColumnMenuItems: ReactNode[];
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode[]
    renderColumnFilterModeMenuItems?: (
        props: {
            column: MRT_Column<TData>;
            internalFilterOptions: MRT_InternalFilterOption[];
            onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode[]
    renderCreateRowDialogContent?: (
        props: {
            internalEditComponents: ReactNode[];
            row: MRT_Row<TData>;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode
    renderDetailPanel?: (
        props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData> },
    ) => ReactNode
    renderEditRowDialogContent?: (
        props: {
            internalEditComponents: ReactNode[];
            row: MRT_Row<TData>;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode
    renderEmptyRowsFallback?: (
        props: { table: MRT_TableInstance<TData> },
    ) => ReactNode
    renderFallbackValue?: any

    Value used when the desired value is not found in the data.

    renderGlobalFilterModeMenuItems?: (
        props: {
            internalFilterOptions: MRT_InternalFilterOption[];
            onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode[]
    renderRowActionMenuItems?: (
        props: {
            closeMenu: () => void;
            row: MRT_Row<TData>;
            staticRowIndex?: number;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode[]
    | undefined
    renderRowActions?: (
        props: {
            cell: MRT_Cell<TData>;
            row: MRT_Row<TData>;
            staticRowIndex?: number;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode
    renderToolbarAlertBannerContent?: (
        props: {
            groupedAlert: ReactNode;
            selectedAlert: ReactNode;
            table: MRT_TableInstance<TData>;
        },
    ) => ReactNode
    renderToolbarInternalActions?: (
        props: { table: MRT_TableInstance<TData> },
    ) => ReactNode
    renderTopToolbar?:
        | ReactNode
        | ((props: { table: MRT_TableInstance<TData> }) => ReactNode)
    renderTopToolbarCustomActions?: (
        props: { table: MRT_TableInstance<TData> },
    ) => ReactNode
    rowCount?: number

    When manually controlling pagination, you can supply a total rowCount value to the table if you know it. The pageCount can be calculated from this value and the pageSize.

    rowNumberDisplayMode?: "static" | "original"
    rowPinningDisplayMode?:
        | "bottom"
        | "top"
        | "sticky"
        | "select-bottom"
        | "select-sticky"
        | "select-top"
        | "top-and-bottom"
    rowVirtualizerInstanceRef?: RefObject<
        MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>
        | null,
    >
    rowVirtualizerOptions?:
        | (
            (
                props: { table: MRT_TableInstance<TData> },
            ) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>
        )
        | Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>
    selectAllMode?: "page" | "all"
    sortDescFirst?: boolean

    If true, all sorts will default to descending as their first toggle state.

    sortingFns?: Record<string, SortingFn<any>>
    state?: Partial<MRT_TableState<TData>>

    Manage state externally any way you want, then pass it back into MRT.