UNPKG

mantine-react-table

Version:

A fully featured Mantine implementation of TanStack React Table V8, written from the ground up in TypeScript.

1,003 lines (994 loc) 77.7 kB
/// <reference types="react" /> import * as react_jsx_runtime from 'react/jsx-runtime'; import * as react from 'react'; import { HTMLProps, MutableRefObject, Dispatch, SetStateAction, ReactNode, RefObject, DragEventHandler, MouseEvent } from 'react'; import { PaginationProps, ActionIconProps, UnstyledButtonProps, MultiSelectProps, TextInputProps, AutocompleteProps, RangeSliderProps, SelectProps, BoxProps, ModalProps, CheckboxProps, HighlightProps, LoadingOverlayProps, ProgressProps, PaperProps, RadioProps, SwitchProps, SkeletonProps, TableProps, BadgeProps, AlertProps, MantineTheme } from '@mantine/core'; import { DateInputProps } from '@mantine/dates'; import * as _tanstack_react_table from '@tanstack/react-table'; import { Row, Table, TableState, ColumnDef, DeepKeys, Column, Header, HeaderGroup, Cell, AggregationFn, SortingFn, FilterFn, TableOptions, OnChangeFn, ColumnOrderState, GroupingState, Renderable } from '@tanstack/react-table'; export { ColumnFiltersState as MRT_ColumnFiltersState, ColumnOrderState as MRT_ColumnOrderState, ColumnPinningState as MRT_ColumnPinningState, ColumnSizingInfoState as MRT_ColumnSizingInfoState, ColumnSizingState as MRT_ColumnSizingState, ExpandedState as MRT_ExpandedState, GroupingState as MRT_GroupingState, PaginationState as MRT_PaginationState, RowSelectionState as MRT_RowSelectionState, SortingState as MRT_SortingState, Updater as MRT_Updater, VisibilityState as MRT_VisibilityState } from '@tanstack/react-table'; import { Virtualizer, VirtualizerOptions, VirtualItem } from '@tanstack/react-virtual'; export { VirtualItem as MRT_VirtualItem, Virtualizer as MRT_Virtualizer, VirtualizerOptions as MRT_VirtualizerOptions } from '@tanstack/react-virtual'; import * as _tanstack_match_sorter_utils from '@tanstack/match-sorter-utils'; import { RankingInfo } from '@tanstack/match-sorter-utils'; import * as _tabler_icons_react from '@tabler/icons-react'; declare const MRT_AggregationFns: { sum: _tanstack_react_table.AggregationFn<any>; min: _tanstack_react_table.AggregationFn<any>; max: _tanstack_react_table.AggregationFn<any>; extent: _tanstack_react_table.AggregationFn<any>; mean: _tanstack_react_table.AggregationFn<any>; median: _tanstack_react_table.AggregationFn<any>; unique: _tanstack_react_table.AggregationFn<any>; uniqueCount: _tanstack_react_table.AggregationFn<any>; count: _tanstack_react_table.AggregationFn<any>; }; declare const MRT_FilterFns: { between: { <TData extends Record<string, any> = {}>(row: Row<TData>, id: string, filterValues: [string | number, string | number]): boolean; autoRemove(val: any): boolean; }; betweenInclusive: { <TData_1 extends Record<string, any> = {}>(row: Row<TData_1>, id: string, filterValues: [string | number, string | number]): boolean; autoRemove(val: any): boolean; }; contains: { <TData_2 extends Record<string, any> = {}>(row: Row<TData_2>, id: string, filterValue: string | number): boolean; autoRemove(val: any): boolean; }; empty: { <TData_3 extends Record<string, any> = {}>(row: Row<TData_3>, id: string, _filterValue: string | number): boolean; autoRemove(val: any): boolean; }; endsWith: { <TData_4 extends Record<string, any> = {}>(row: Row<TData_4>, id: string, filterValue: string | number): boolean; autoRemove(val: any): boolean; }; equals: { <TData_5 extends Record<string, any> = {}>(row: Row<TData_5>, id: string, filterValue: string | number | null): boolean; autoRemove(val: any): boolean; }; fuzzy: { <TData_6 extends Record<string, any> = {}>(row: Row<TData_6>, columnId: string, filterValue: string | number, addMeta: (item: RankingInfo) => void): boolean; autoRemove(val: any): boolean; }; greaterThan: { <TData_7 extends Record<string, any> = {}>(row: Row<TData_7>, id: string, filterValue: string | number | null): boolean; autoRemove(val: any): boolean; }; greaterThanOrEqualTo: { <TData_8 extends Record<string, any> = {}>(row: Row<TData_8>, id: string, filterValue: string | number): boolean; autoRemove(val: any): boolean; }; lessThan: { <TData_9 extends Record<string, any> = {}>(row: Row<TData_9>, id: string, filterValue: string | number | null): boolean; autoRemove(val: any): boolean; }; lessThanOrEqualTo: { <TData_10 extends Record<string, any> = {}>(row: Row<TData_10>, id: string, filterValue: string | number): boolean; autoRemove(val: any): boolean; }; notEmpty: { <TData_11 extends Record<string, any> = {}>(row: Row<TData_11>, id: string, _filterValue: string | number): boolean; autoRemove(val: any): boolean; }; notEquals: { <TData_12 extends Record<string, any> = {}>(row: Row<TData_12>, id: string, filterValue: string | number): boolean; autoRemove(val: any): boolean; }; startsWith: { <TData_13 extends Record<string, any> = {}>(row: Row<TData_13>, id: string, filterValue: string | number): boolean; autoRemove(val: any): boolean; }; includesString: _tanstack_react_table.FilterFn<any>; includesStringSensitive: _tanstack_react_table.FilterFn<any>; equalsString: _tanstack_react_table.FilterFn<any>; arrIncludes: _tanstack_react_table.FilterFn<any>; arrIncludesAll: _tanstack_react_table.FilterFn<any>; arrIncludesSome: _tanstack_react_table.FilterFn<any>; weakEquals: _tanstack_react_table.FilterFn<any>; inNumberRange: _tanstack_react_table.FilterFn<any>; }; declare const MRT_SortingFns: { fuzzy: <TData extends Record<string, any> = {}>(rowA: Row<TData>, rowB: Row<TData>, columnId: string) => number; alphanumeric: _tanstack_react_table.SortingFn<any>; alphanumericCaseSensitive: _tanstack_react_table.SortingFn<any>; text: _tanstack_react_table.SortingFn<any>; textCaseSensitive: _tanstack_react_table.SortingFn<any>; datetime: _tanstack_react_table.SortingFn<any>; basic: _tanstack_react_table.SortingFn<any>; }; declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(rowA: MRT_Row<TData>, rowB: MRT_Row<TData>) => number; declare const MRT_Default_Icons: { readonly IconArrowAutofitContent: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconArrowsSort: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconBaselineDensityLarge: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconBaselineDensityMedium: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconBaselineDensitySmall: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconBoxMultiple: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconChevronDown: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconChevronLeft: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconChevronLeftPipe: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconChevronRight: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconChevronRightPipe: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconChevronsDown: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconCircleX: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconClearAll: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconColumns: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconDeviceFloppy: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconDots: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconDotsVertical: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconEdit: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconEyeOff: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconFilter: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconFilterCog: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconFilterOff: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconGripHorizontal: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconMaximize: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconMinimize: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconPinned: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconPinnedOff: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconSearch: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconSearchOff: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconSortAscending: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconSortDescending: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; readonly IconX: (props: _tabler_icons_react.TablerIconsProps) => JSX.Element; }; type MRT_Icons = Record<keyof typeof MRT_Default_Icons, any>; type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>); type Prettify<T> = { [K in keyof T]: T[K]; } & unknown; type Xor<A, B> = Prettify<A & { [k in keyof B]?: never; }> | Prettify<B & { [k in keyof A]?: never; }>; type HTMLPropsRef<T extends HTMLElement> = Omit<HTMLProps<T>, 'color' | 'size' | 'type' | 'ref' | 'data' | 'label'> & { ref?: MutableRefObject<T | null> | null; }; type MantineShade = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; type ColumnAlignment = { align?: 'left' | 'center' | 'right'; }; type MRT_PaginationProps = Partial<PaginationProps> & { rowsPerPageOptions?: string[]; showRowsPerPage?: boolean; }; type MRT_DensityState = 'xs' | 'md' | 'xl'; type MRT_ColumnFilterFnsState = Record<string, MRT_FilterOption>; interface MRT_Localization { actions: string; and: string; cancel: string; changeFilterMode: string; changeSearchMode: string; clearFilter: string; clearSearch: string; clearSort: string; clickToCopy: string; collapse: string; collapseAll: string; columnActions: string; copiedToClipboard: string; create?: string; dropToGroupBy: string; edit: string; expand: string; expandAll: string; filterArrIncludes: string; filterArrIncludesAll: string; filterArrIncludesSome: string; filterBetween: string; filterBetweenInclusive: string; filterByColumn: string; filterContains: string; filterEmpty: string; filterEndsWith: string; filterEquals: string; filterEqualsString: string; filterFuzzy: string; filterGreaterThan: string; filterGreaterThanOrEqualTo: string; filterInNumberRange: string; filterIncludesString: string; filterIncludesStringSensitive: string; filterLessThan: string; filterLessThanOrEqualTo: string; filterMode: string; filterNotEmpty: string; filterNotEquals: string; filterStartsWith: string; filterWeakEquals: string; filteringByColumn: string; goToFirstPage: string; goToLastPage: string; goToNextPage: string; goToPreviousPage: string; grab: string; groupByColumn: string; groupedBy: string; hideAll: string; hideColumn: string; max: string; min: string; move: string; noRecordsToDisplay: string; noResultsFound: string; of: string; or: string; pinToLeft: string; pinToRight: string; resetColumnSize: string; resetOrder: string; rowActions: string; rowNumber: string; rowNumbers: string; rowsPerPage: string; save: string; search: string; select: string; selectedCountOfRowCountRowsSelected: string; showAll: string; showAllColumns: string; showHideColumns: string; showHideFilters: string; showHideSearch: string; sortByColumnAsc: string; sortByColumnDesc: string; sortedByColumnAsc: string; sortedByColumnDesc: string; thenBy: string; toggleDensity: string; toggleFullScreen: string; toggleSelectAll: string; toggleSelectRow: string; toggleVisibility: string; ungroupByColumn: string; unpin: string; unpinAll: string; } interface MRT_RowModel<TData extends Record<string, any> = {}> { flatRows: MRT_Row<TData>[]; rows: MRT_Row<TData>[]; rowsById: { [key: string]: MRT_Row<TData>; }; } type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<Table<TData>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getHeaderGroups' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & { getAllColumns: () => MRT_Column<TData>[]; getAllFlatColumns: () => MRT_Column<TData>[]; getAllLeafColumns: () => MRT_Column<TData>[]; getCenterLeafColumns: () => MRT_Column<TData>[]; getColumn: (columnId: string) => MRT_Column<TData>; getExpandedRowModel: () => MRT_RowModel<TData>; getFlatHeaders: () => MRT_Header<TData>[]; getHeaderGroups: () => MRT_HeaderGroup<TData>[]; getLeftLeafColumns: () => MRT_Column<TData>[]; getPaginationRowModel: () => MRT_RowModel<TData>; getPreFilteredRowModel: () => MRT_RowModel<TData>; getPrePaginationRowModel: () => MRT_RowModel<TData>; getRightLeafColumns: () => MRT_Column<TData>[]; getRowModel: () => MRT_RowModel<TData>; getSelectedRowModel: () => MRT_RowModel<TData>; getState: () => MRT_TableState<TData>; options: MRT_DefinedTableOptions<TData>; refs: { bottomToolbarRef: MutableRefObject<HTMLDivElement>; editInputRefs: MutableRefObject<Record<string, HTMLInputElement>>; filterInputRefs: MutableRefObject<Record<string, HTMLInputElement>>; searchInputRef: MutableRefObject<HTMLInputElement>; tableContainerRef: MutableRefObject<HTMLDivElement>; tableHeadCellRefs: MutableRefObject<Record<string, HTMLTableCellElement>>; tablePaperRef: MutableRefObject<HTMLDivElement>; topToolbarRef: MutableRefObject<HTMLDivElement>; }; setCreatingRow: Dispatch<SetStateAction<MRT_Row<TData> | null | true>>; setColumnFilterFns: Dispatch<SetStateAction<MRT_ColumnFilterFnsState>>; setDensity: Dispatch<SetStateAction<MRT_DensityState>>; setDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>; setDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>; setEditingCell: Dispatch<SetStateAction<MRT_Cell<TData> | null>>; setEditingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>; setGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>; setHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | { id: string; } | null>>; setHoveredRow: Dispatch<SetStateAction<MRT_Row<TData> | { id: string; } | null>>; setIsFullScreen: Dispatch<SetStateAction<boolean>>; setShowAlertBanner: Dispatch<SetStateAction<boolean>>; setShowColumnFilters: Dispatch<SetStateAction<boolean>>; setShowGlobalFilter: Dispatch<SetStateAction<boolean>>; setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>; }; type MRT_DefinedTableOptions<TData extends Record<string, any> = {}> = MRT_TableOptions<TData> & { localization: MRT_Localization; icons: MRT_Icons; }; type MRT_TableState<TData extends Record<string, any> = {}> = Prettify<TableState & { columnFilterFns: MRT_ColumnFilterFnsState; creatingRow: MRT_Row<TData> | null; density: MRT_DensityState; draggingColumn: MRT_Column<TData> | null; draggingRow: MRT_Row<TData> | null; editingCell: MRT_Cell<TData> | null; editingRow: MRT_Row<TData> | null; globalFilterFn: MRT_FilterOption; hoveredColumn: MRT_Column<TData> | { id: string; } | null; hoveredRow: MRT_Row<TData> | { id: string; } | null; isFullScreen: boolean; isLoading: boolean; isSaving: boolean; showAlertBanner: boolean; showColumnFilters: boolean; showGlobalFilter: boolean; showLoadingOverlay: boolean; showProgressBars: boolean; showSkeletons: boolean; showToolbarDropZone: boolean; }>; type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & { AggregatedCell?: (props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; Cell?: (props: { cell: MRT_Cell<TData>; renderedCellValue: number | string | ReactNode; column: MRT_Column<TData>; row: MRT_Row<TData>; rowRef?: RefObject<HTMLTableRowElement>; table: MRT_TableInstance<TData>; }) => ReactNode; Edit?: (props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; Filter?: (props: { column: MRT_Column<TData>; header: MRT_Header<TData>; rangeFilterIndex?: number; table: MRT_TableInstance<TData>; }) => ReactNode; Footer?: ReactNode | ((props: { column: MRT_Column<TData>; footer: MRT_Header<TData>; table: MRT_TableInstance<TData>; }) => ReactNode); GroupedCell?: (props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; Header?: ReactNode | ((props: { column: MRT_Column<TData>; header: MRT_Header<TData>; table: MRT_TableInstance<TData>; }) => ReactNode); PlaceholderCell?: (props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; /** * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition. * Specify a function here to point to the correct property in the data object. * * @example accessorFn: (row) => row.username */ accessorFn?: (originalRow: TData) => any; /** * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition. * Specify which key in the row this column should use to access the correct data. * Also supports Deep Key Dot Notation. * * @example accessorKey: 'username' //simple * @example accessorKey: 'name.firstName' //deep key dot notation */ accessorKey?: (string & {}) | DeepKeys<TData>; aggregationFn?: MRT_AggregationFn<TData> | Array<MRT_AggregationFn<TData>>; /** * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`. * Leave this blank if you are just creating a normal data column. * * @default 'data' * * @example columnDefType: 'display' */ columnDefType?: 'data' | 'display' | 'group'; columnFilterModeOptions?: Array<LiteralUnion<string & MRT_FilterOption>> | null; columns?: MRT_ColumnDef<TData>[]; editVariant?: 'text' | 'select'; enableClickToCopy?: boolean; enableColumnActions?: boolean; enableColumnDragging?: boolean; enableColumnFilterModes?: boolean; enableColumnOrdering?: boolean; enableEditing?: boolean | ((row: MRT_Row<TData>) => boolean); enableFilterMatchHighlighting?: boolean; filterFn?: MRT_FilterFn<TData>; filterVariant?: 'autocomplete' | 'checkbox' | 'date' | 'date-range' | 'multi-select' | 'range' | 'range-slider' | 'select' | 'text'; /** * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F) */ footer?: string; /** * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H) */ header: string; /** * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition. * * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely. * * `id` defaults to the `accessorKey` or `header` if not specified. * * @default gets set to the same value as `accessorKey` by default */ id?: LiteralUnion<string & keyof TData>; mantineColumnActionsButtonProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineColumnDragHandleProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineCopyButtonProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<UnstyledButtonProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<UnstyledButtonProps>); mantineEditSelectProps?: (HTMLPropsRef<HTMLInputElement> & Partial<MultiSelectProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<MultiSelectProps>); mantineEditTextInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>); mantineFilterAutocompleteProps?: (HTMLPropsRef<HTMLInputElement> & Partial<AutocompleteProps>) | ((props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<AutocompleteProps>); mantineFilterCheckboxProps?: (HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>) | ((props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>); mantineFilterDateInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<DateInputProps>) | ((props: { column: MRT_Column<TData>; rangeFilterIndex?: number; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<DateInputProps>); mantineFilterMultiSelectProps?: (HTMLPropsRef<HTMLInputElement> & Partial<MultiSelectProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<MultiSelectProps>); mantineFilterRangeSliderProps?: (HTMLPropsRef<HTMLInputElement> & Partial<RangeSliderProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<RangeSliderProps>); mantineFilterSelectProps?: (HTMLPropsRef<HTMLInputElement> & Partial<SelectProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<SelectProps>); mantineFilterTextInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>); mantineTableBodyCellProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment); mantineTableFooterCellProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment); mantineTableHeadCellProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment); renderColumnActionsMenuItems?: (props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData>; internalColumnMenuItems: ReactNode; }) => ReactNode; renderColumnFilterModeMenuItems?: (props: { column: MRT_Column<TData>; internalFilterOptions: MRT_InternalFilterOption[]; onSelectFilterMode: (filterMode: MRT_FilterOption) => void; table: MRT_TableInstance<TData>; }) => ReactNode; sortingFn?: MRT_SortingFn<TData>; }; type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id' | 'defaultDisplayColumn'> & { defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>; id: string; cell: ColumnDef<TData, unknown>['cell']; header: ColumnDef<TData, unknown>['header']; _filterFn: MRT_FilterOption; }; type MRT_Column<TData extends Record<string, any> = {}> = Omit<Column<TData, unknown>, 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'> & { columnDef: MRT_DefinedColumnDef<TData>; columns?: MRT_Column<TData>[]; filterFn?: MRT_FilterFn<TData>; footer: string; header: string; }; type MRT_Header<TData extends Record<string, any> = {}> = Omit<Header<TData, unknown>, 'column'> & { column: MRT_Column<TData>; }; type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<HeaderGroup<TData>, 'headers'> & { headers: MRT_Header<TData>[]; }; type MRT_Row<TData extends Record<string, any> = {}> = Omit<Row<TData>, 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'> & { getAllCells: () => MRT_Cell<TData>[]; getVisibleCells: () => MRT_Cell<TData>[]; subRows?: MRT_Row<TData>[]; _valuesCache: Record<LiteralUnion<string & DeepKeys<TData>>, any>; }; type MRT_Cell<TData extends Record<string, any> = {}> = Omit<Cell<TData, unknown>, 'column' | 'row'> & { column: MRT_Column<TData>; row: MRT_Row<TData>; }; type MRT_AggregationOption = string & keyof typeof MRT_AggregationFns; type MRT_AggregationFn<TData extends Record<string, any> = {}> = AggregationFn<TData> | MRT_AggregationOption; type MRT_SortingOption = LiteralUnion<string & keyof typeof MRT_SortingFns>; type MRT_SortingFn<TData extends Record<string, any> = {}> = SortingFn<TData> | MRT_SortingOption; type MRT_FilterOption = LiteralUnion<string & keyof typeof MRT_FilterFns>; type MRT_FilterFn<TData extends Record<string, any> = {}> = FilterFn<TData> | MRT_FilterOption; type MRT_InternalFilterOption = { option: string; symbol: string; label: string; divider: boolean; }; type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select'; type MRT_CreateTableFeature<TData extends Record<string, any> = {}, TFeature = any> = (table: MRT_TableInstance<TData>) => TFeature; /** * `columns` and `data` props are the only required props, but there are over 150 other optional props. * * See more info on creating columns and data on the official docs site: * @link https://www.mantine-react-table.com/docs/getting-started/usage * * See the full props list on the official docs site: * @link https://www.mantine-react-table.com/docs/api/table-options */ type MRT_TableOptions<TData extends Record<string, any> = {}> = Omit<Partial<TableOptions<TData>>, 'columns' | 'data' | 'defaultColumn' | 'enableRowSelection' | 'expandRowsFn' | 'getRowId' | 'globalFilterFn' | 'initialState' | 'onStateChange' | 'state'> & { columnFilterModeOptions?: Array<LiteralUnion<string & MRT_FilterOption>> | null; /** * The columns to display in the table. `accessorKey`s or `accessorFn`s must match keys in the `data` prop. * * See more info on creating columns on the official docs site: * @link https://www.mantine-react-table.com/docs/guides/data-columns * @link https://www.mantine-react-table.com/docs/guides/display-columns * * See all Columns Options on the official docs site: * @link https://www.mantine-react-table.com/docs/api/column-options */ columns: MRT_ColumnDef<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: * @link https://www.mantine-react-table.com/docs/getting-started/usage */ columnVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableCellElement> | null>; columnVirtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>> | ((props: { table: MRT_TableInstance<TData>; }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>); data: TData[]; /** * Instead of specifying a bunch of the same options for each column, you can just change an option in the `defaultColumn` prop to change a default option for all columns. */ defaultColumn?: Partial<MRT_ColumnDef<TData>>; /** * Change the default options for display columns. */ defaultDisplayColumn?: Partial<MRT_ColumnDef<TData>>; displayColumnDefOptions?: Partial<{ [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef<TData>>; }>; createDisplayMode?: 'modal' | 'row' | 'custom'; editDisplayMode?: 'modal' | 'row' | 'cell' | 'table' | 'custom'; columnFilterDisplayMode?: 'subheader' | 'popover' | 'custom'; paginationDisplayMode?: 'default' | 'pages' | 'custom'; selectDisplayMode?: 'checkbox' | 'radio' | 'switch'; enableBottomToolbar?: boolean; enableClickToCopy?: boolean; enableColumnActions?: boolean; enableColumnDragging?: boolean; enableColumnFilterModes?: boolean; enableColumnOrdering?: boolean; enableColumnVirtualization?: boolean; enableDensityToggle?: boolean; enableEditing?: boolean | ((row: MRT_Row<TData>) => boolean); enableExpandAll?: boolean; enableFacetedValues?: boolean; enableFilterMatchHighlighting?: boolean; enableFullScreenToggle?: boolean; enableGlobalFilterModes?: boolean; enableGlobalFilterRankedResults?: boolean; enablePagination?: boolean; enableRowActions?: boolean; enableRowDragging?: boolean; enableRowNumbers?: boolean; enableRowOrdering?: boolean; enableRowSelection?: boolean | ((row: MRT_Row<TData>) => boolean); enableRowVirtualization?: boolean; enableSelectAll?: boolean; enableStickyFooter?: boolean; enableStickyHeader?: boolean; enableTableFooter?: boolean; enableTableHead?: boolean; enableToolbarInternalActions?: boolean; enableTopToolbar?: boolean; expandRowsFn?: (dataRow: TData) => TData[]; getRowId?: (originalRow: TData, index: number, parentRow: MRT_Row<TData>) => string | undefined; globalFilterFn?: MRT_FilterOption; globalFilterModeOptions?: MRT_FilterOption[] | null; icons?: Partial<MRT_Icons>; initialState?: Partial<MRT_TableState<TData>>; /** * 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 */ layoutMode?: 'semantic' | 'grid'; /** * Pass in either a locale imported from `mantine-react-table/locales/*` or a custom locale object. * * See the localization (i18n) guide for more info: * @link https://www.mantine-react-table.com/docs/guides/localization */ localization?: Partial<MRT_Localization>; mantineBottomToolbarProps?: (HTMLPropsRef<HTMLDivElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & BoxProps); mantineColumnActionsButtonProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineColumnDragHandleProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineCopyButtonProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<UnstyledButtonProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<UnstyledButtonProps>); mantineCreateRowModalProps?: (HTMLPropsRef<HTMLDivElement> & Partial<ModalProps>) | ((props: { table: MRT_TableInstance<TData>; row: MRT_Row<TData>; }) => HTMLPropsRef<HTMLDivElement> & Partial<ModalProps>); mantineDetailPanelProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; row: MRT_Row<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps); mantineEditRowModalProps?: (HTMLPropsRef<HTMLDivElement> & Partial<ModalProps>) | ((props: { table: MRT_TableInstance<TData>; row: MRT_Row<TData>; }) => HTMLPropsRef<HTMLDivElement> & Partial<ModalProps>); mantineEditSelectProps?: (HTMLPropsRef<HTMLInputElement> & Partial<SelectProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<SelectProps>); mantineEditTextInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>); mantineExpandAllButtonProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineExpandButtonProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; row: MRT_Row<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineFilterAutocompleteProps?: (HTMLPropsRef<HTMLInputElement> & Partial<AutocompleteProps>) | ((props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<AutocompleteProps>); mantineFilterCheckboxProps?: (HTMLPropsRef<HTMLInputElement> & Partial<CheckboxProps>) | ((props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<CheckboxProps>); mantineFilterDateInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<DateInputProps>) | ((props: { column: MRT_Column<TData>; rangeFilterIndex?: number; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<DateInputProps>); mantineFilterMultiSelectProps?: (HTMLPropsRef<HTMLInputElement> & Partial<MultiSelectProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<MultiSelectProps>); mantineFilterRangeSliderProps?: (HTMLPropsRef<HTMLInputElement> & Partial<RangeSliderProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<RangeSliderProps>); mantineFilterSelectProps?: (HTMLPropsRef<HTMLInputElement> & Partial<SelectProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<SelectProps>); mantineFilterTextInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; rangeFilterIndex?: number; }) => HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>); mantineHighlightProps?: (HTMLPropsRef<HTMLSpanElement> & Partial<HighlightProps>) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLSpanElement> & Partial<HighlightProps>); mantineLoadingOverlayProps?: (HTMLPropsRef<HTMLDivElement> & Partial<LoadingOverlayProps>) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & Partial<LoadingOverlayProps>); mantineProgressProps?: (HTMLPropsRef<HTMLDivElement> & ProgressProps) | ((props: { isTopToolbar: boolean; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & ProgressProps); mantinePaginationProps?: Partial<HTMLPropsRef<HTMLDivElement> & MRT_PaginationProps> | ((props: { table: MRT_TableInstance<TData>; }) => Partial<HTMLPropsRef<HTMLDivElement> & MRT_PaginationProps>); mantinePaperProps?: (HTMLPropsRef<HTMLDivElement> & PaperProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & PaperProps); mantineRowDragHandleProps?: (HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>) | ((props: { table: MRT_TableInstance<TData>; row: MRT_Row<TData>; }) => HTMLPropsRef<HTMLButtonElement> & Partial<ActionIconProps>); mantineSearchTextInputProps?: (HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & Partial<TextInputProps>); mantineSelectAllCheckboxProps?: (HTMLPropsRef<HTMLInputElement> & (CheckboxProps | RadioProps | SwitchProps)) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLInputElement> & (CheckboxProps | RadioProps | SwitchProps)); mantineSelectCheckboxProps?: (HTMLPropsRef<HTMLInputElement> & (CheckboxProps | RadioProps | SwitchProps)) | ((props: { table: MRT_TableInstance<TData>; row: MRT_Row<TData>; }) => HTMLPropsRef<HTMLInputElement> & (CheckboxProps | RadioProps | SwitchProps)); mantineSkeletonProps?: (HTMLPropsRef<HTMLDivElement> & SkeletonProps) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & SkeletonProps); mantineTableBodyCellProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment) | ((props: { cell: MRT_Cell<TData>; column: MRT_Column<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment); mantineTableBodyProps?: (HTMLPropsRef<HTMLTableSectionElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableSectionElement> & BoxProps); mantineTableBodyRowProps?: (HTMLPropsRef<HTMLTableRowElement> & BoxProps) | ((props: { isDetailPanel?: boolean; row: MRT_Row<TData>; staticRowIndex: number; table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableRowElement> & BoxProps); mantineTableContainerProps?: (HTMLPropsRef<HTMLDivElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & BoxProps); mantineTableFooterCellProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment); mantineTableFooterProps?: (HTMLPropsRef<HTMLTableSectionElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableSectionElement> & BoxProps); mantineTableFooterRowProps?: (HTMLPropsRef<HTMLTableRowElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; footerGroup: MRT_HeaderGroup<TData>; }) => HTMLPropsRef<HTMLTableRowElement> & BoxProps); mantineTableHeadCellProps?: (HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment) | ((props: { table: MRT_TableInstance<TData>; column: MRT_Column<TData>; }) => HTMLPropsRef<HTMLTableCellElement> & BoxProps & ColumnAlignment); mantineTableHeadProps?: (HTMLPropsRef<HTMLTableSectionElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableSectionElement> & BoxProps); mantineTableHeadRowProps?: (HTMLPropsRef<HTMLTableRowElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; headerGroup: MRT_HeaderGroup<TData>; }) => HTMLPropsRef<HTMLTableRowElement> & BoxProps); mantineTableProps?: (HTMLPropsRef<HTMLTableElement> & TableProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLTableElement> & TableProps); mantineToolbarAlertBannerBadgeProps?: (HTMLPropsRef<HTMLDivElement> & Partial<BadgeProps>) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & Partial<BadgeProps>); mantineToolbarAlertBannerProps?: (HTMLPropsRef<HTMLDivElement> & Partial<AlertProps>) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & Partial<AlertProps>); mantineTopToolbarProps?: (HTMLPropsRef<HTMLDivElement> & BoxProps) | ((props: { table: MRT_TableInstance<TData>; }) => HTMLPropsRef<HTMLDivElement> & BoxProps); /** * Memoize cells, rows, or the entire table body to potentially improve render performance. * * @warning This will break some dynamic rendering features. See the memoization guide for more info: * @link https://www.mantine-react-table.com/docs/guides/memoize-components */ memoMode?: 'cells' | 'rows' | 'table-body'; 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; onColumnFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption; }>; onDensityChange?: OnChangeFn<MRT_DensityState>; onDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>; onDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>; onEditingCellChange?: OnChangeFn<MRT_Cell<TData> | 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>; }) => Promise<void> | void; onGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>; onHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | { id: string; } | null>; onHoveredRowChange?: OnChangeFn<MRT_Row<TData> | { id: string; } | null>; onIsFullScreenChange?: OnChangeFn<boolean>; onShowAlertBannerChange?: OnChangeFn<boolean>; onShowColumnFiltersChange?: OnChangeFn<boolean>; onShowGlobalFilterChange?: OnChangeFn<boolean>; onShowToolbarDropZoneChange?: OnChangeFn<boolean>; positionActionsColumn?: 'first' | 'last'; positionExpandColumn?: 'first' | 'last'; positionGlobalFilter?: 'left' | 'right' | 'none'; positionPagination?: 'bottom' | 'top' | 'both' | 'none'; positionToolbarAlertBanner?: 'bottom' | 'top' | 'head-overlay' | 'none'; positionToolbarDropZone?: 'bottom' | 'top' | 'none' | 'both'; renderBottomToolbar?: ReactNode | ((props: { table: MRT_TableInstance<TData>; }) => ReactNode); renderBottomToolbarCustomActions?: (props: { table: MRT_TableInstance<TData>; }) => ReactNode; renderCreateRowModalContent?: (props: { internalEditComponents: ReactNode[]; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; renderColumnActionsMenuItems?: (props: { column: MRT_Column<TData>; table: MRT_TableInstance<TData>; internalColumnMenuItems: ReactNode; }) => ReactNode; renderColumnFilterModeMenuItems?: (props: { column: MRT_Column<TData>; internalFilterOptions: MRT_InternalFilterOption[]; onSelectFilterMode: (filterMode: MRT_FilterOption) => void; table: MRT_TableInstance<TData>; }) => ReactNode; renderDetailPanel?: (props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; renderEditRowModalContent?: (props: { internalEditComponents: ReactNode[]; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; renderGlobalFilterModeMenuItems?: (props: { internalFilterOptions: MRT_InternalFilterOption[]; onSelectFilterMode: (filterMode: MRT_FilterOption) => void; table: MRT_TableInstance<TData>; }) => ReactNode; renderEmptyRowsFallback?: (props: { table: MRT_TableInstance<TData>; }) => ReactNode; renderRowActionMenuItems?: (props: { row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; renderRowActions?: (props: { cell: MRT_Cell<TData>; row: MRT_Row<TData>; table: MRT_TableInstance<TData>; }) => ReactNode; renderToolbarAlertBannerContent?: (props: { groupedAlert: ReactNode | null; selectedAlert: ReactNode | null; 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; rowNumberMode?: 'original' | 'static'; rowVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableRowElement> | null>; rowVirtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | ((props: { table: MRT_TableInstance<TData>; }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>); selectAllMode?: 'all' | 'page'; /** * Manage state externally any way you want, then pass it back into MRT. */ state?: Partial<MRT_TableState<TData>>; }; type TableInstanceProp<TData extends Record<string, any> = {}> = { table: MRT_TableInstance<TData>; }; type Props$P<TData extends Record<string, any> = {}> = Xor<TableInstanceProp<TData>, MRT_TableOptions<TData>>; declare const MantineReactTable: <TData extends Record<string, any> = {}>(props: Props$P<TData>) => react_jsx_runtime.JSX.Element; interface Props$O<TData extends Record<string, any> = {}> { columnVirtualizer?: Virtualizer<HTMLDivElement, HTMLTableCellElement>; enableHover?: boolean; isStriped?: boolean; table: MRT_TableInstance<TData>; virtualColumns?: VirtualItem[]; virtualPaddingLeft?: number; virtualPaddingRight?: number; } declare const MRT_TableBody: <TData extends Record<string, any> = {}>({ columnVirtualizer, enableHover, isStriped, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, }: Props$O<TData>) => react_jsx_runtime.JSX.Element; declare const Memo_MRT_TableBody: <TData extends Record<string, any> = {}>({ columnVirtualizer, enableHover, isStriped, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, }: Props$O<TData>) => react_jsx_runtime.JSX.Element; interface Props$N<TData extends Record<string, any> = {}> { cell: MRT_Cell<TData>; isStriped?: boolean; measureElement?: (element: HTMLTableCellElement) => void; numRows?: number; rowIndex: number; rowRef: RefObject<HTMLTableRowElement>; table: MRT_TableInstance<TData>; virtualCell?: VirtualItem; } declare const MRT_TableBodyCell: <TData extends Record<string, any> = {}>({ cell, isStriped, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }: Props$N<TData>) => rea