material-react-table 0.23.5 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ table }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ table })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ table, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = table;\n const { currentFilterFns, currentGlobalFilterFn, density } = getState();\n const { column } = header ?? {};\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n [\n {\n option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\n },\n ].filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ) as Array<{\n option: MRT_FilterOption;\n label: string;\n divider: boolean;\n fn: Function;\n }>,\n [],\n );\n\n const handleSelectFilterType = (option: MRT_FilterOption) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: any }) => ({\n ...prev,\n [header.id]: option,\n }));\n if (['empty', 'notEmpty'].includes(option)) {\n column.setFilterValue(' ');\n } else if (option === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(option);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={commonMenuItemStyles}\n value={option}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, table }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = table;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, Tooltip } from '@mui/material';\nimport React, { DragEventHandler, FC } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n handleDragStart: DragEventHandler<HTMLButtonElement>;\n handleDragEnd: DragEventHandler<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = ({\n handleDragStart,\n handleDragEnd,\n table,\n}) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = table;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.grab}\n >\n <IconButton\n disableRipple\n draggable=\"true\"\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n size=\"small\"\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { filterFns, Row } from '@tanstack/react-table';\n\nexport const fuzzy = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n columnId: string,\n filterValue: string | number,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue as string, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) >= +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) <= +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue<string | number>(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue<string | number>(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport { MRT_Row } from '.';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n rowA: Row<TData>,\n rowB: Row<TData>,\n columnId: string,\n) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n ...sortingFns,\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(\n rowA: MRT_Row<TData>,\n rowB: MRT_Row<TData>,\n) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import { ColumnOrderState } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_DefinedColumnDef,\n MRT_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <TData extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<TData>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<TData>[],\n): MRT_ColumnDef<TData>[] => {\n let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;\n let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<TData>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<TData>[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const prepareColumns = <TData extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<TData>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<TData>[] =>\n columnDefs.map((columnDef) => {\n if (!columnDef.id) columnDef.id = getColumnId(columnDef);\n if (process.env.NODE_ENV !== 'production' && !columnDef.id) {\n console.error(\n 'Column definitions must have a valid `accessorKey` or `id` property',\n );\n }\n if (!columnDef.columnDefType) columnDef.columnDefType = 'data';\n if (!!columnDef.columns?.length) {\n columnDef.columnDefType = 'group';\n columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);\n } else if (columnDef.columnDefType === 'data') {\n if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {\n columnDef.filterFn =\n MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;\n }\n if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {\n // @ts-ignore\n columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];\n }\n }\n return columnDef;\n }) as MRT_DefinedColumnDef<TData>[];\n\nexport const reorderColumn = <TData extends Record<string, any> = {}>(\n movingColumn: MRT_Column<TData>,\n receivingColumn: MRT_Column<TData>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (movingColumn.getCanPin()) {\n movingColumn.pin(receivingColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(receivingColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-expand',\n props.enableRowSelection && 'mrt-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns).map((columnDef) =>\n getColumnId(columnDef),\n ),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, {\n Dispatch,\n DragEvent,\n FC,\n SetStateAction,\n useState,\n} from 'react';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n currentHoveredColumn: MRT_Column | null;\n isSubMenu?: boolean;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column | null>>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n currentHoveredColumn,\n setCurrentHoveredColumn,\n column,\n isSubMenu,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = table;\n const { columnOrder } = getState();\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n const menuItemRef = React.useRef<HTMLElement>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n e.dataTransfer.setDragImage(menuItemRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n setCurrentHoveredColumn(null);\n if (currentHoveredColumn) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (!isDragging) {\n setCurrentHoveredColumn(column);\n }\n };\n\n return (\n <>\n <MenuItem\n disableRipple={enableColumnOrdering}\n ref={menuItemRef as any}\n onDragEnter={handleDragEnter}\n sx={(theme) => ({\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n opacity: isDragging ? 0.5 : 1,\n outline: isDragging\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : 'none',\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n })}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {!isSubMenu &&\n columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n handleDragEnd={handleDragEnd}\n handleDragStart={handleDragStart}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {!isSubMenu &&\n enablePinning &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} table={table} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={c}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${i}-${c.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n table,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = table;\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDef.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column | null>(null);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n table.setColumnOrder(\n getDefaultColumnOrderIds(table.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => table.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n table={table}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n table={table}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = table;\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n table,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = table;\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, table });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = table;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, table })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} table={table} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = table;\n const { density } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n table.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n table.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_Row, table })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = table;\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ table, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = table;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = table;\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = table;\n const { showColumnFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showColumnFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showColumnFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = table;\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = table;\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = table;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n table,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton table={table} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton table={table} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton table={table} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton table={table} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton table={table} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ table, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = table;\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ table })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={{\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n table,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = table;\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ table })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={table.getColumn(columnId).columnDef.header}\n onDelete={() => table.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n isTopToolbar: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ isTopToolbar, table }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = table;\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ isTopToolbar, table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: isTopToolbar ? 0 : undefined,\n position: 'absolute',\n top: !isTopToolbar ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = table;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ table })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!renderToolbarTopCustomActions || showGlobalFilter));\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...toolbarProps?.sx,\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n table={table}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n\n {renderToolbarTopCustomActions?.({ table }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons table={table} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"top\" />\n )}\n <MRT_LinearProgressBar isTopToolbar table={table} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ table })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarBottomCustomActions);\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar isTopToolbar={false} table={table} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner table={table} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ table })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, table })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, table })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const currentFilterOption = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)\n ? //@ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...textFieldProps?.sx,\n }}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} table={table} />\n <MRT_FilterTextField header={header} inputIndex={1} table={table} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n table,\n}) => {\n const { getState } = table;\n const { currentFilterFns, showColumnFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showColumnFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} table={table} />\n ) : (\n <MRT_FilterTextField header={header} table={table} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = table;\n const { currentFilterFns } = getState();\n const { column } = header;\n const { columnDef } = column;\n\n const currentFilterOption = currentFilterFns?.[header.id];\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && currentFilterOption !== 'between') ||\n (currentFilterOption === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: { columnResizeMode },\n } = table;\n const { density, showColumnFilters } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${\n (getState().columnSizingInfo.deltaOffset ?? 0) /\n (columnResizeMode === 'onChange' ? 16 : 1)\n }px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {\n const {\n options: { localization },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n table,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, table })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...iconButtonProps.sx,\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { DragEvent, FC, ReactNode } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten, useTheme } from '@mui/material';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n setColumnOrder,\n setCurrentDraggingColumn,\n setCurrentHoveredColumn,\n } = table;\n const { columnOrder, density, currentDraggingColumn, currentHoveredColumn } =\n getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, table })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, table })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const tableHeadCellRef = React.useRef<HTMLElement>(null);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(column);\n e.dataTransfer.setDragImage(tableHeadCellRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(null);\n setCurrentHoveredColumn(null);\n if (\n currentHoveredColumn &&\n currentHoveredColumn?.id !== currentDraggingColumn?.id\n ) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (currentDraggingColumn) {\n setCurrentHoveredColumn(columnDefType === 'data' ? column : null);\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderTop: draggingBorder,\n }\n : undefined;\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n onDragEnter={handleDragEnter}\n ref={tableHeadCellRef}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType === 'group'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,\n verticalAlign: 'text-top',\n zIndex:\n column.getIsResizing() || currentDraggingColumn?.id === column.id\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_GrabHandleButton\n handleDragStart={handleDragStart}\n handleDragEnd={handleDragEnd}\n table={table}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {\n const {\n options: { muiTableHeadRowProps },\n } = table;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, table })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ table }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = table;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ table })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n table={table}\n />\n ))}\n </TableHead>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = table;\n const { column, row } = cell;\n const { columnDef } = column;\n\n const [value, setValue] = useState(cell.getValue<string>());\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, table });\n onCellEditChange?.({ event, cell, table });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, table });\n onCellEditBlur?.({ event, cell, table });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, table })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, table })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n table: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, table }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = table;\n const { column } = cell;\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, table })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...buttonProps?.sx,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, MouseEvent, useMemo } from 'react';\nimport {\n alpha,\n darken,\n lighten,\n Skeleton,\n TableCell,\n useTheme,\n} from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n table,\n}) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setCurrentEditingCell,\n setCurrentHoveredColumn,\n } = table;\n const {\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentHoveredColumn,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, table })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, table })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (currentDraggingColumn) {\n setCurrentHoveredColumn(columnDefType === 'data' ? column : null);\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n }\n : undefined;\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n onDragEnter={handleDragEnter}\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex:\n currentDraggingColumn?.id === column.id\n ? 2\n : column.getIsPinned()\n ? 1\n : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, table })\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} table={table} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} table={table}>\n <>{columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}</>\n </MRT_CopyButton>\n {cell.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}\n {cell.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, table })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={{\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${table.getTotalSize()}px`,\n ...tableCellProps?.sx,\n }}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, table })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { darken, lighten, TableRow } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, table }) => {\n const {\n getIsSomeColumnsPinned,\n options: { muiTableBodyRowProps, renderDetailPanel },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n })}\n >\n {row?.getVisibleCells()?.map?.((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n table={table}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} table={table} />\n )}\n </>\n );\n};\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { rankGlobalFuzzy } from '../sortingFns';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ table, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = table;\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ table })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n // estimateSize: () => (density === 'compact' ? 25 : 50),\n overscan: density === 'compact' ? 30 : 10,\n parentRef: tableContainerRef,\n size: rows.length,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const virtualRows = enableRowVirtualization\n ? rowVirtualizer.virtualItems\n : [];\n\n let paddingTop = 0;\n let paddingBottom = 0;\n if (enableRowVirtualization) {\n paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n }\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n table={table}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = table;\n const { density } = getState();\n const { column } = footer;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, table })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, table })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n table,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {\n const {\n options: { muiTableFooterRowProps },\n } = table;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, table })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ table }) => {\n const {\n getFooterGroups,\n options: { muiTableFooterProps },\n } = table;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ table })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n table={table}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, table }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ table })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\n }}\n >\n {enableTableHead && <MRT_TableHead table={table} />}\n <MRT_TableBody tableContainerRef={tableContainerRef} table={table} />\n {enableTableFooter && <MRT_TableFooter table={table} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ table })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n ref={tableContainerRef}\n {...tableContainerProps}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} table={table} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ table }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = table;\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ table })\n : muiTablePaperProps;\n\n return (\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop table={table} />}\n <MRT_TableContainer table={table} />\n {enableToolbarBottom && <MRT_ToolbarBottom table={table} />}\n </Paper>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n TableState,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\n\nexport const MRT_TableRoot = <TData extends Record<string, any> = {}>(\n props: MaterialReactTableProps<TData>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<TData> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] =\n useState<MRT_Row<TData> | null>(initialState?.currentEditingRow ?? null);\n const [currentDraggingColumn, setCurrentDraggingColumn] =\n useState<MRT_Column<TData> | null>(null);\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column<TData> | null>(null);\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showColumnFilters, setShowFilters] = useState(\n initialState?.showColumnFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(\n (col) => ({\n [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:\n col.filterFn instanceof Function\n ? col.filterFn.name ?? 'custom'\n : col.filterFn ??\n initialState?.currentFilterFns?.[\n col.id?.toString() ?? col.accessorKey?.toString() ?? ''\n ] ??\n (!!col.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n }),\n ),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] =\n useState<MRT_FilterOption>(\n props.globalFilterFn instanceof String\n ? (props.globalFilterFn as MRT_FilterOption)\n : 'fuzzy',\n );\n\n const displayColumns = useMemo(\n () =>\n (\n [\n columnOrder.includes('mrt-row-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n columnDefType: 'display',\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n },\n columnOrder.includes('mrt-expand') && {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton table={table} />\n ) : null,\n columnDefType: 'display',\n header: props.localization?.expand,\n id: 'mrt-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-select') && {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll table={table} />\n ) : null,\n columnDefType: 'display',\n header: props.localization?.select,\n id: 'mrt-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n columnDefType: 'display',\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n ] as MRT_ColumnDef<TData>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n ],\n );\n\n const columnDefs = useMemo(\n () =>\n prepareColumns([...displayColumns, ...props.columns], currentFilterFns),\n [currentFilterFns, displayColumns, props.columns],\n );\n\n const data: TData[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (col) => ({\n [col.id ?? col.accessorKey ?? '']: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const table = {\n ...useReactTable({\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns: columnDefs,\n data,\n getSubRows: (row) => row?.subRows,\n //@ts-ignore\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n currentHoveredColumn,\n density,\n isFullScreen,\n showAlertBanner,\n showColumnFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentDraggingColumn:\n props.onCurrentDraggingColumnChange ?? setCurrentDraggingColumn,\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setCurrentHoveredColumn:\n props.onCurrentHoveredColumnChange ?? setCurrentHoveredColumn,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper table={table} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper table={table} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n Header,\n HeaderGroup,\n OnChangeFn,\n Row,\n SortingFn,\n Table,\n TableOptions,\n TableState,\n} from '@tanstack/react-table';\nimport { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\ntype LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);\n\nexport type MRT_TableOptions<TData extends Record<string, any> = {}> = Partial<\n Omit<\n TableOptions<TData>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<TData>[];\n data: TData[];\n expandRowsFn?: (dataRow: TData) => TData[];\n initialState?: Partial<MRT_TableState<TData>>;\n state?: Partial<MRT_TableState<TData>>;\n};\n\nexport interface MRT_RowModel<TData extends Record<string, any> = {}> {\n flatRows: MRT_Row<TData>[];\n rows: MRT_Row<TData>[];\n rowsById: { [key: string]: MRT_Row<TData> };\n}\n\nexport type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<\n Table<TData>,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<TData>[];\n getAllFlatColumns: () => MRT_Column<TData>[];\n getAllLeafColumns: () => MRT_Column<TData>[];\n getCenterLeafColumns: () => MRT_Column<TData>[];\n getColumn: (columnId: string) => MRT_Column<TData>;\n getExpandedRowModel: () => MRT_RowModel<TData>;\n getFlatHeaders: () => MRT_Header<TData>[];\n getLeftLeafColumns: () => MRT_Column<TData>[];\n getPaginationRowModel: () => MRT_RowModel<TData>;\n getPreFilteredRowModel: () => MRT_RowModel<TData>;\n getPrePaginationRowModel: () => MRT_RowModel<TData>;\n getRightLeafColumns: () => MRT_Column<TData>[];\n getRowModel: () => MRT_RowModel<TData>;\n getSelectedRowModel: () => MRT_RowModel<TData>;\n getState: () => MRT_TableState<TData>;\n options: MaterialReactTableProps<TData> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterOption;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<TData extends Record<string, any> = {}> =\n TableState & {\n currentDraggingColumn: MRT_Column<TData> | null;\n currentEditingCell: MRT_Cell<TData> | null;\n currentEditingRow: MRT_Row<TData> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n currentHoveredColumn: MRT_Column<TData> | null;\n density: 'comfortable' | 'compact' | 'spacious';\n isFullScreen: boolean;\n isLoading: boolean;\n showAlertBanner: boolean;\n showColumnFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n };\n\nexport type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<\n ColumnDef<TData>,\n | 'accessorFn'\n | 'accessorKey'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'id'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify a function here to point to the correct property in the data object.\n *\n * @example accessorFn: (row) => row.username\n */\n accessorFn?: (row: TData) => any;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify which key in the row this column should use to access the correct data.\n *\n * @example accessorKey: 'username'\n */\n accessorKey?: LiteralUnion<string & keyof TData>;\n /**\n * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.\n * Leave this blank if you are just creating a normal data column.\n *\n * @default 'data'\n *\n * @example columnDefType: 'display'\n */\n columnDefType?: 'data' | 'display' | 'group';\n columns?: MRT_ColumnDef<TData>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: MRT_FilterOption[] | null;\n filterFn?: MRT_FilterFn<TData>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n /**\n * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F)\n */\n footer?: string;\n /**\n * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H)\n */\n header: string;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n *\n * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely.\n *\n * `id` defaults to the `accessorKey` or `header` if not specified.\n *\n * @default gets set to the same value as `accessorKey` by default\n */\n id?: LiteralUnion<string & keyof TData>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<TData>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<TData extends Record<string, any> = {}> = Omit<\n Column<TData, unknown>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<TData>;\n columns?: MRT_Column<TData>[];\n filterFn?: MRT_FilterFn<TData>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<TData extends Record<string, any> = {}> = Omit<\n Header<TData, unknown>,\n 'column'\n> & {\n column: MRT_Column<TData>;\n};\n\nexport type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<\n HeaderGroup<TData>,\n 'headers'\n> & {\n headers: MRT_Header<TData>[];\n};\n\nexport type MRT_Row<TData extends Record<string, any> = {}> = Omit<\n Row<TData>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | 'original' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<TData>[];\n getVisibleCells: () => MRT_Cell<TData>[];\n subRows?: MRT_Row<TData>[];\n original: TData;\n _valuesCache?: TData;\n};\n\nexport type MRT_Cell<TData extends Record<string, any> = {}> = Omit<\n Cell<TData, unknown>,\n 'column' | 'row'\n> & {\n column: MRT_Column<TData>;\n row: MRT_Row<TData>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<TData extends Record<string, any> = {}> =\n | SortingFn<TData>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<TData extends Record<string, any> = {}> =\n | FilterFn<TData>\n | MRT_FilterOption;\n\nexport type MaterialReactTableProps<TData extends Record<string, any> = {}> =\n MRT_TableOptions<TData> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowNumbers?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;\n icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n isTopToolbar,\n table,\n }: {\n isTopToolbar: boolean;\n table: MRT_TableInstance<TData>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n footerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n headerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => Promise<void> | void;\n onDensityChange?: OnChangeFn<boolean>;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n table,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n table: MRT_TableInstance<TData>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\n/**\n * `columns` and `data` props are the only required props, but there are over 150 other optional props.\n *\n * See more info on creating columns and data on the official docs site:\n * @link https://www.material-react-table.com/docs/usage\n *\n * See the full props list on the official docs site:\n * @link https://www.material-react-table.com/docs/api/props\n */\nexport default <TData extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<TData>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","table","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","getState","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","getCanExpand","toggleExpanded","getIsExpanded","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","filter","filterType","undefined","includes","filterOption","id","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","handleSelectFilterType","selected","value","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","placement","disableRipple","draggable","onDragStart","handleDragStart","onDragEnd","handleDragEnd","cursor","m","opacity","p","&:hover","backgroundColor","&:active","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toString","toLowerCase","trim","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","MRT_SortingFns","sortingFns","rowA","rowB","dir","columnFiltersMeta","compareItems","alphanumeric","getColumnId","accessorKey","_columnDef$accessorKe","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","_currentCols","length","some","col","nextCols","flat","every","reorderColumn","movingColumn","receivingColumn","columnOrder","getCanPin","splice","indexOf","getDefaultColumnOrderIds","props","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","Boolean","getLeadingDisplayColumnIds","getTrailingDisplayColumnIds","MRT_ShowHideColumnsMenuItems","allColumns","currentHoveredColumn","setCurrentHoveredColumn","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","switchChecked","getIsVisible","getLeafColumns","menuItemRef","useRef","useState","isDragging","setIsDragging","ref","onDragEnter","_e","theme","justifyContent","outline","palette","primary","main","pl","depth","display","flexWrap","gap","e","dataTransfer","setDragImage","current","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","forEach","childColumn","handleToggleColumnHidden","Typography","alignSelf","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","Array","from","Set","colId","find","columnPinning","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","showFilterModeSubMenu","filterSelectOptions","getCanSort","getIsSorted","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","onMouseEnter","getCanGroup","toggleGrouping","old","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","_localization$showAll","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","_valuesCache","original","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","preventDefault","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","getToggleSelectedHandler","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","setDensity","MRT_ToggleFiltersButton","showColumnFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","searchValue","setSearchValue","handleChangeDebounced","useCallback","debounce","target","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","TablePagination","SelectProps","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","left","right","top","AlertTitle","children","MRT_LinearProgressBar","isTopToolbar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","lighten","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","common","black","MRT_FilterTextField","inputIndex","_column$getFilterValu2","newFilterValues","Filter","filterId","currentFilterOption","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","&\t.MuiSelect-icon","mr","_columnDef$filterSele","text","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","isArray","join","Grow","_column$getFilterValu","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","MRT_TableHeadCell","useTheme","enableColumnActions","enableMultiSort","muiTableHeadCellProps","setCurrentDraggingColumn","currentDraggingColumn","tableCellProps","headerElement","Header","tableHeadCellRef","draggingBorder","draggingBorders","borderLeft","borderRight","borderTop","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","_columnDef$header","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","type","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","_row$subRows","_row$subRows2","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","borderBottom","getTotalSize","MRT_TableBodyRow","hover","&:hover td","getVisibleCells","_row$getVisibleCells","MRT_TableBody","tableContainerRef","getRowModel","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","rankedRows","sort","a","b","v","rank","rowVirtualizer","useVirtual","overscan","parentRef","virtualRows","virtualItems","paddingTop","paddingBottom","start","totalSize","end","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initialState","initState","_props$initialState2","setShowAlertBanner","assign","_col$id","_col$accessorKey","filterFn","name","_initialState$current3","_col$id2","_col$accessorKey2","_col$filterSelectOpti","globalFilterFn","displayColumns","_props$localization","enableExpandAll","_props$localization2","enableSelectAll","_props$localization3","_props$localization4","_props$localization5","columnDefs","prepareColumns","_columnDef$columns","keys","sortingFn","data","state","_props$state2","fill","_props$state3","_props$state4","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentDraggingColumnChange","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onCurrentHoveredColumnChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}
1
+ {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellGrabHandle.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyRowGrabHandle.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n move: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n move: 'Move',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ table }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ table })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ table, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = table;\n const { currentFilterFns, currentGlobalFilterFn, density } = getState();\n const { column } = header ?? {};\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n [\n {\n option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\n },\n ].filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ) as Array<{\n option: MRT_FilterOption;\n label: string;\n divider: boolean;\n fn: Function;\n }>,\n [],\n );\n\n const handleSelectFilterType = (option: MRT_FilterOption) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: any }) => ({\n ...prev,\n [header.id]: option,\n }));\n if (['empty', 'notEmpty'].includes(option)) {\n column.setFilterValue(' ');\n } else if (option === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(option);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={commonMenuItemStyles}\n value={option}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, table }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = table;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport React, { DragEventHandler, FC } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n iconButtonProps?: IconButtonProps;\n onDragStart: DragEventHandler<HTMLButtonElement>;\n onDragEnd: DragEventHandler<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = ({\n iconButtonProps,\n onDragEnd,\n onDragStart,\n table,\n}) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = table;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.move}\n >\n <IconButton\n disableRipple\n draggable=\"true\"\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n ...iconButtonProps?.sx,\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { filterFns, Row } from '@tanstack/react-table';\n\nexport const fuzzy = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n columnId: string,\n filterValue: string | number,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue as string, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) >= +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) <= +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue<string | number>(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue<string | number>(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport { MRT_Row } from '.';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n rowA: Row<TData>,\n rowB: Row<TData>,\n columnId: string,\n) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n ...sortingFns,\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(\n rowA: MRT_Row<TData>,\n rowB: MRT_Row<TData>,\n) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import { ColumnOrderState } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_DefinedColumnDef,\n MRT_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <TData extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<TData>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<TData>[],\n): MRT_ColumnDef<TData>[] => {\n let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;\n let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<TData>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<TData>[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const prepareColumns = <TData extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<TData>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<TData>[] =>\n columnDefs.map((columnDef) => {\n if (!columnDef.id) columnDef.id = getColumnId(columnDef);\n if (process.env.NODE_ENV !== 'production' && !columnDef.id) {\n console.error(\n 'Column definitions must have a valid `accessorKey` or `id` property',\n );\n }\n if (!columnDef.columnDefType) columnDef.columnDefType = 'data';\n if (!!columnDef.columns?.length) {\n columnDef.columnDefType = 'group';\n columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);\n } else if (columnDef.columnDefType === 'data') {\n if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {\n columnDef.filterFn =\n MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;\n }\n if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {\n // @ts-ignore\n columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];\n }\n }\n return columnDef;\n }) as MRT_DefinedColumnDef<TData>[];\n\nexport const reorderColumn = <TData extends Record<string, any> = {}>(\n draggedColumn: MRT_Column<TData>,\n targetColumn: MRT_Column<TData>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (draggedColumn.getCanPin()) {\n draggedColumn.pin(targetColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(targetColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(draggedColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n props.enableRowSelection && 'mrt-row-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns).map((columnDef) =>\n getColumnId(columnDef),\n ),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, {\n Dispatch,\n DragEvent,\n FC,\n SetStateAction,\n useState,\n} from 'react';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n currentHoveredColumn: MRT_Column | null;\n isSubMenu?: boolean;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column | null>>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n currentHoveredColumn,\n setCurrentHoveredColumn,\n column,\n isSubMenu,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = table;\n const { columnOrder } = getState();\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n const menuItemRef = React.useRef<HTMLElement>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n e.dataTransfer.setDragImage(menuItemRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n setCurrentHoveredColumn(null);\n if (currentHoveredColumn) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (!isDragging) {\n setCurrentHoveredColumn(column);\n }\n };\n\n return (\n <>\n <MenuItem\n disableRipple\n ref={menuItemRef as any}\n onDragEnter={handleDragEnter}\n sx={(theme) => ({\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n opacity: isDragging ? 0.5 : 1,\n outline: isDragging\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : 'none',\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n })}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {!isSubMenu &&\n columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {!isSubMenu &&\n enablePinning &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} table={table} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={c}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${i}-${c.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n table,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = table;\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDef.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column | null>(null);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n table.setColumnOrder(\n getDefaultColumnOrderIds(table.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => table.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-row-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n table={table}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n table={table}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = table;\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n table,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = table;\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, table });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = table;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, table })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} table={table} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = table;\n const { density } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n table.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n table.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_Row, table })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = table;\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ table, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = table;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = table;\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = table;\n const { showColumnFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showColumnFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showColumnFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = table;\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = table;\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = table;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n table,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton table={table} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton table={table} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton table={table} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton table={table} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton table={table} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ table, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = table;\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ table })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={{\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n table,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = table;\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ table })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={table.getColumn(columnId).columnDef.header}\n onDelete={() => table.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n isTopToolbar: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ isTopToolbar, table }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = table;\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ isTopToolbar, table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: isTopToolbar ? 0 : undefined,\n position: 'absolute',\n top: !isTopToolbar ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = table;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ table })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!renderToolbarTopCustomActions || showGlobalFilter));\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...toolbarProps?.sx,\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n table={table}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n\n {renderToolbarTopCustomActions?.({ table }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons table={table} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"top\" />\n )}\n <MRT_LinearProgressBar isTopToolbar table={table} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ table })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarBottomCustomActions);\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar isTopToolbar={false} table={table} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner table={table} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ table })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n table,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, table })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...iconButtonProps.sx,\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, table })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, table })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const currentFilterOption = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)\n ? //@ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...textFieldProps?.sx,\n }}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} table={table} />\n <MRT_FilterTextField header={header} inputIndex={1} table={table} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n table,\n}) => {\n const { getState } = table;\n const { currentFilterFns, showColumnFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showColumnFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} table={table} />\n ) : (\n <MRT_FilterTextField header={header} table={table} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = table;\n const { currentFilterFns } = getState();\n const { column } = header;\n const { columnDef } = column;\n\n const currentFilterOption = currentFilterFns?.[header.id];\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && currentFilterOption !== 'between') ||\n (currentFilterOption === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n tableHeadCellRef: RefObject<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCellGrabHandle: FC<Props> = ({\n column,\n table,\n tableHeadCellRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n muiTableHeadCellDragHandleProps,\n onColumnDrop,\n },\n setColumnOrder,\n setCurrentDraggingColumn,\n setCurrentHoveredColumn,\n } = table;\n const { columnDef } = column;\n const { currentHoveredColumn, currentDraggingColumn, columnOrder } =\n getState();\n\n const mIconButtonProps =\n muiTableHeadCellDragHandleProps instanceof Function\n ? muiTableHeadCellDragHandleProps({ column, table })\n : muiTableHeadCellDragHandleProps;\n\n const mcIconButtonProps =\n columnDef.muiTableHeadCellDragHandleProps instanceof Function\n ? columnDef.muiTableHeadCellDragHandleProps({ column, table })\n : columnDef.muiTableHeadCellDragHandleProps;\n\n const iconButtonProps = {\n ...mIconButtonProps,\n ...mcIconButtonProps,\n };\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(column);\n e.dataTransfer.setDragImage(tableHeadCellRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onColumnDrop?.({\n event,\n draggedColumn: column,\n targetColumn: currentHoveredColumn,\n });\n if (\n enableColumnOrdering &&\n currentHoveredColumn &&\n currentHoveredColumn?.id !== currentDraggingColumn?.id\n ) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n setCurrentDraggingColumn(null);\n setCurrentHoveredColumn(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: { columnResizeMode },\n } = table;\n const { density, showColumnFilters } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${\n (getState().columnSizingInfo.deltaOffset ?? 0) /\n (columnResizeMode === 'onChange' ? 16 : 1)\n }px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {\n const {\n options: { localization },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, ReactNode } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten, useTheme } from '@mui/material';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnDragging,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n setCurrentHoveredColumn,\n } = table;\n const { density, currentDraggingColumn, currentHoveredColumn } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, table })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, table })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(columnDefType === 'data' ? column : null);\n }\n };\n\n const tableHeadCellRef = React.useRef<HTMLTableCellElement>(null);\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderTop: draggingBorder,\n }\n : undefined;\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n onDragEnter={handleDragEnter}\n ref={tableHeadCellRef}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType === 'group'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,\n verticalAlign: 'text-top',\n zIndex:\n column.getIsResizing() || currentDraggingColumn?.id === column.id\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnDragging &&\n columnDef.enableColumnDragging !== false) ||\n (enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_TableHeadCellGrabHandle\n column={column}\n table={table}\n tableHeadCellRef={tableHeadCellRef}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {\n const {\n options: { muiTableHeadRowProps },\n } = table;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, table })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ table }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = table;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ table })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n table={table}\n />\n ))}\n </TableHead>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = table;\n const { column, row } = cell;\n const { columnDef } = column;\n\n const [value, setValue] = useState(cell.getValue<string>());\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, table });\n onCellEditChange?.({ event, cell, table });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, table });\n onCellEditBlur?.({ event, cell, table });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, table })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, table })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n table: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, table }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = table;\n const { column } = cell;\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, table })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...buttonProps?.sx,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\n\ninterface Props {\n cell: MRT_Cell;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRowGrabHandle: FC<Props> = ({\n cell,\n rowRef,\n table,\n}) => {\n const {\n options: { muiTableBodyRowDragHandleProps, onRowDrop },\n } = table;\n\n const iconButtonProps =\n muiTableBodyRowDragHandleProps instanceof Function\n ? muiTableBodyRowDragHandleProps({ row: cell.row, table })\n : muiTableBodyRowDragHandleProps;\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n e.dataTransfer.setDragImage(rowRef.current as HTMLElement, 0, 0);\n table.setCurrentDraggingRow(cell.row as any);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onRowDrop?.({\n event,\n draggedRow: table.getState().currentDraggingRow as any,\n targetRow: table.getState().currentHoveredRow as any,\n });\n table.setCurrentDraggingRow(null);\n table.setCurrentHoveredRow(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { DragEvent, FC, MouseEvent, RefObject, useMemo } from 'react';\nimport {\n alpha,\n darken,\n lighten,\n Skeleton,\n TableCell,\n useTheme,\n} from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n rowRef,\n table,\n}) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setCurrentEditingCell,\n setCurrentHoveredColumn,\n } = table;\n const {\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentHoveredColumn,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, table })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, table })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(columnDefType === 'data' ? column : null);\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderBottom:\n row.index === table.getRowModel().rows.length - 1\n ? draggingBorder\n : undefined,\n }\n : undefined;\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n onDragEnter={handleDragEnter}\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-row-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex:\n currentDraggingColumn?.id === column.id\n ? 2\n : column.getIsPinned()\n ? 1\n : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : column.id === 'mrt-row-drag' ? (\n <MRT_TableBodyRowGrabHandle\n cell={cell}\n rowRef={rowRef}\n table={table}\n />\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, table })\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} table={table} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} table={table}>\n <>{columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}</>\n </MRT_CopyButton>\n {cell.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}\n {cell.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, table })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={{\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${table.getTotalSize()}px`,\n ...tableCellProps?.sx,\n }}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, table })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { DragEvent, FC, useRef } from 'react';\nimport { darken, lighten, TableRow, useTheme } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, table }) => {\n const theme = useTheme();\n const {\n getIsSomeColumnsPinned,\n getState,\n options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel },\n setCurrentHoveredRow,\n } = table;\n const { currentDraggingRow, currentHoveredRow } = getState();\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableRowOrdering && currentDraggingRow) {\n setCurrentHoveredRow(row);\n }\n };\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n\n const draggingBorder =\n currentDraggingRow?.id === row.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredRow?.id === row.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n border: draggingBorder,\n }\n : undefined;\n\n return (\n <>\n <TableRow\n onDragEnter={handleDragEnter}\n hover\n selected={row.getIsSelected()}\n ref={rowRef}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n opacity:\n currentDraggingRow?.id === row.id ||\n currentHoveredRow?.id === row.id\n ? 0.5\n : 1,\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n ...draggingBorders,\n })}\n >\n {row?.getVisibleCells()?.map?.((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n rowRef={rowRef}\n table={table}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} table={table} />\n )}\n </>\n );\n};\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { rankGlobalFuzzy } from '../sortingFns';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ table, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = table;\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ table })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n // estimateSize: () => (density === 'compact' ? 25 : 50),\n overscan: density === 'compact' ? 30 : 10,\n parentRef: tableContainerRef,\n size: rows.length,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const virtualRows = enableRowVirtualization\n ? rowVirtualizer.virtualItems\n : [];\n\n let paddingTop = 0;\n let paddingBottom = 0;\n if (enableRowVirtualization) {\n paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n }\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n table={table}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = table;\n const { density } = getState();\n const { column } = footer;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, table })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, table })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n table,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {\n const {\n options: { muiTableFooterRowProps },\n } = table;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, table })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ table }) => {\n const {\n getFooterGroups,\n options: { muiTableFooterProps },\n } = table;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ table })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n table={table}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, table }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ table })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\n }}\n >\n {enableTableHead && <MRT_TableHead table={table} />}\n <MRT_TableBody tableContainerRef={tableContainerRef} table={table} />\n {enableTableFooter && <MRT_TableFooter table={table} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ table })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n ref={tableContainerRef}\n {...tableContainerProps}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} table={table} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ table }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = table;\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ table })\n : muiTablePaperProps;\n\n return (\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop table={table} />}\n <MRT_TableContainer table={table} />\n {enableToolbarBottom && <MRT_ToolbarBottom table={table} />}\n </Paper>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n TableState,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\n\nexport const MRT_TableRoot = <TData extends Record<string, any> = {}>(\n props: MaterialReactTableProps<TData>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentDraggingColumn, setCurrentDraggingColumn] =\n useState<MRT_Column<TData> | null>(null);\n const [currentDraggingRow, setCurrentDraggingRow] =\n useState<MRT_Row<TData> | null>(null);\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<TData> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] =\n useState<MRT_Row<TData> | null>(initialState?.currentEditingRow ?? null);\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column<TData> | null>(null);\n const [currentHoveredRow, setCurrentHoveredRow] =\n useState<MRT_Row<TData> | null>(null);\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showColumnFilters, setShowFilters] = useState(\n initialState?.showColumnFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(\n (col) => ({\n [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:\n col.filterFn instanceof Function\n ? col.filterFn.name ?? 'custom'\n : col.filterFn ??\n initialState?.currentFilterFns?.[\n col.id?.toString() ?? col.accessorKey?.toString() ?? ''\n ] ??\n (!!col.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n }),\n ),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] =\n useState<MRT_FilterOption>(\n props.globalFilterFn instanceof String\n ? (props.globalFilterFn as MRT_FilterOption)\n : 'fuzzy',\n );\n\n const displayColumns = useMemo(\n () =>\n (\n [\n columnOrder.includes('mrt-row-drag') && {\n columnDefType: 'display',\n header: props.localization?.move,\n id: 'mrt-row-drag',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n columnDefType: 'display',\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n },\n columnOrder.includes('mrt-row-expand') && {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton table={table} />\n ) : null,\n columnDefType: 'display',\n header: props.localization?.expand,\n id: 'mrt-row-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-select') && {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll table={table} />\n ) : null,\n columnDefType: 'display',\n header: props.localization?.select,\n id: 'mrt-row-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n columnDefType: 'display',\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n ] as MRT_ColumnDef<TData>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowOrdering,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n ],\n );\n\n const columnDefs = useMemo(\n () =>\n prepareColumns([...displayColumns, ...props.columns], currentFilterFns),\n [currentFilterFns, displayColumns, props.columns],\n );\n\n const data: TData[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (col) => ({\n [col.id ?? col.accessorKey ?? '']: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const table = {\n ...useReactTable({\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns: columnDefs,\n data,\n getSubRows: (row) => row?.subRows,\n //@ts-ignore\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentDraggingColumn,\n currentDraggingRow,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n currentHoveredColumn,\n currentHoveredRow,\n density,\n isFullScreen,\n showAlertBanner,\n showColumnFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentDraggingColumn:\n props.onCurrentDraggingColumnChange ?? setCurrentDraggingColumn,\n setCurrentDraggingRow:\n props.onCurrentDraggingRowChange ?? setCurrentDraggingRow,\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setCurrentHoveredColumn:\n props.onCurrentHoveredColumnChange ?? setCurrentHoveredColumn,\n setCurrentHoveredRow:\n props.onCurrentHoveredRowChange ?? setCurrentHoveredRow,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper table={table} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper table={table} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n DragEvent,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport type {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport type {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n Header,\n HeaderGroup,\n OnChangeFn,\n Row,\n SortingFn,\n Table,\n TableOptions,\n TableState,\n} from '@tanstack/react-table';\nimport type { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\ntype LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);\n\nexport type MRT_TableOptions<TData extends Record<string, any> = {}> = Partial<\n Omit<\n TableOptions<TData>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<TData>[];\n data: TData[];\n expandRowsFn?: (dataRow: TData) => TData[];\n initialState?: Partial<MRT_TableState<TData>>;\n state?: Partial<MRT_TableState<TData>>;\n};\n\nexport interface MRT_RowModel<TData extends Record<string, any> = {}> {\n flatRows: MRT_Row<TData>[];\n rows: MRT_Row<TData>[];\n rowsById: { [key: string]: MRT_Row<TData> };\n}\n\nexport type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<\n Table<TData>,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<TData>[];\n getAllFlatColumns: () => MRT_Column<TData>[];\n getAllLeafColumns: () => MRT_Column<TData>[];\n getCenterLeafColumns: () => MRT_Column<TData>[];\n getColumn: (columnId: string) => MRT_Column<TData>;\n getExpandedRowModel: () => MRT_RowModel<TData>;\n getFlatHeaders: () => MRT_Header<TData>[];\n getLeftLeafColumns: () => MRT_Column<TData>[];\n getPaginationRowModel: () => MRT_RowModel<TData>;\n getPreFilteredRowModel: () => MRT_RowModel<TData>;\n getPrePaginationRowModel: () => MRT_RowModel<TData>;\n getRightLeafColumns: () => MRT_Column<TData>[];\n getRowModel: () => MRT_RowModel<TData>;\n getSelectedRowModel: () => MRT_RowModel<TData>;\n getState: () => MRT_TableState<TData>;\n options: MaterialReactTableProps<TData> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterOption;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<TData extends Record<string, any> = {}> =\n TableState & {\n currentDraggingColumn: MRT_Column<TData> | null;\n currentDraggingRow: MRT_Row<TData> | null;\n currentEditingCell: MRT_Cell<TData> | null;\n currentEditingRow: MRT_Row<TData> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n currentHoveredColumn: MRT_Column<TData> | null;\n currentHoveredRow: MRT_Row<TData> | null;\n density: 'comfortable' | 'compact' | 'spacious';\n isFullScreen: boolean;\n isLoading: boolean;\n showAlertBanner: boolean;\n showColumnFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n };\n\nexport type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<\n ColumnDef<TData>,\n | 'accessorFn'\n | 'accessorKey'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'id'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify a function here to point to the correct property in the data object.\n *\n * @example accessorFn: (row) => row.username\n */\n accessorFn?: (row: TData) => any;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify which key in the row this column should use to access the correct data.\n *\n * @example accessorKey: 'username'\n */\n accessorKey?: LiteralUnion<string & keyof TData>;\n /**\n * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.\n * Leave this blank if you are just creating a normal data column.\n *\n * @default 'data'\n *\n * @example columnDefType: 'display'\n */\n columnDefType?: 'data' | 'display' | 'group';\n columns?: MRT_ColumnDef<TData>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: MRT_FilterOption[] | null;\n filterFn?: MRT_FilterFn<TData>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n /**\n * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F)\n */\n footer?: string;\n /**\n * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H)\n */\n header: string;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n *\n * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely.\n *\n * `id` defaults to the `accessorKey` or `header` if not specified.\n *\n * @default gets set to the same value as `accessorKey` by default\n */\n id?: LiteralUnion<string & keyof TData>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<TData>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<TData extends Record<string, any> = {}> = Omit<\n Column<TData, unknown>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<TData>;\n columns?: MRT_Column<TData>[];\n filterFn?: MRT_FilterFn<TData>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<TData extends Record<string, any> = {}> = Omit<\n Header<TData, unknown>,\n 'column'\n> & {\n column: MRT_Column<TData>;\n};\n\nexport type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<\n HeaderGroup<TData>,\n 'headers'\n> & {\n headers: MRT_Header<TData>[];\n};\n\nexport type MRT_Row<TData extends Record<string, any> = {}> = Omit<\n Row<TData>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<TData>[];\n getVisibleCells: () => MRT_Cell<TData>[];\n subRows?: MRT_Row<TData>[];\n _valuesCache?: TData;\n};\n\nexport type MRT_Cell<TData extends Record<string, any> = {}> = Omit<\n Cell<TData, unknown>,\n 'column' | 'row'\n> & {\n column: MRT_Column<TData>;\n row: MRT_Row<TData>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<TData extends Record<string, any> = {}> =\n | SortingFn<TData>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<TData extends Record<string, any> = {}> =\n | FilterFn<TData>\n | MRT_FilterOption;\n\n/**\n * `columns` and `data` props are the only required props, but there are over 150 other optional props.\n *\n * See more info on creating columns and data on the official docs site:\n * @link https://www.material-react-table.com/docs/usage\n *\n * See the full props list on the official docs site:\n * @link https://www.material-react-table.com/docs/api/props\n */\nexport type MaterialReactTableProps<TData extends Record<string, any> = {}> =\n MRT_TableOptions<TData> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowDragging?: boolean;\n enableRowNumbers?: boolean;\n enableRowOrdering?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;\n icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n isTopToolbar,\n table,\n }: {\n isTopToolbar: boolean;\n table: MRT_TableInstance<TData>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => SkeletonProps);\n muiTableBodyRowDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n footerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n headerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onColumnDrop?: ({\n event,\n draggedColumn,\n targetColumn,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedColumn: MRT_Column<TData>;\n targetColumn: MRT_Column<TData> | null;\n }) => void;\n onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => Promise<void> | void;\n onDensityChange?: OnChangeFn<boolean>;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onRowDrop?: ({\n event,\n draggedRow,\n targetRow,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedRow: MRT_Row<TData>;\n targetRow: MRT_Row<TData> | null;\n }) => void;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n table,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n table: MRT_TableInstance<TData>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <TData extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<TData>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","move","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","table","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","getState","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","getCanExpand","toggleExpanded","getIsExpanded","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","filter","filterType","undefined","includes","filterOption","id","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","handleSelectFilterType","selected","value","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","placement","disableRipple","draggable","onDragStart","onDragEnd","cursor","m","opacity","p","&:hover","backgroundColor","&:active","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toString","toLowerCase","trim","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","MRT_SortingFns","sortingFns","rowA","rowB","dir","columnFiltersMeta","compareItems","alphanumeric","getColumnId","accessorKey","_columnDef$accessorKe","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","_currentCols","length","some","col","nextCols","flat","every","reorderColumn","draggedColumn","targetColumn","columnOrder","getCanPin","splice","indexOf","getDefaultColumnOrderIds","props","enableRowDragging","enableRowOrdering","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","Boolean","getLeadingDisplayColumnIds","getTrailingDisplayColumnIds","MRT_ShowHideColumnsMenuItems","allColumns","currentHoveredColumn","setCurrentHoveredColumn","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","switchChecked","getIsVisible","getLeafColumns","menuItemRef","useRef","useState","isDragging","setIsDragging","ref","onDragEnter","_e","theme","justifyContent","outline","palette","primary","main","pl","depth","display","flexWrap","gap","e","dataTransfer","setDragImage","current","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","forEach","childColumn","handleToggleColumnHidden","Typography","alignSelf","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","Array","from","Set","colId","find","columnPinning","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","showFilterModeSubMenu","filterSelectOptions","getCanSort","getIsSorted","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","onMouseEnter","getCanGroup","toggleGrouping","old","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","_localization$showAll","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","_valuesCache","original","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","preventDefault","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","getToggleSelectedHandler","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","setDensity","MRT_ToggleFiltersButton","showColumnFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","searchValue","setSearchValue","handleChangeDebounced","useCallback","debounce","target","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","TablePagination","SelectProps","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","left","right","top","AlertTitle","children","MRT_LinearProgressBar","isTopToolbar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","lighten","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","common","black","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","MRT_FilterTextField","inputIndex","_column$getFilterValu2","newFilterValues","Filter","filterId","currentFilterOption","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","&\t.MuiSelect-icon","mr","_columnDef$filterSele","text","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","isArray","join","Grow","_column$getFilterValu","MRT_TableHeadCellGrabHandle","tableHeadCellRef","muiTableHeadCellDragHandleProps","onColumnDrop","setCurrentDraggingColumn","currentDraggingColumn","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCell","useTheme","enableColumnActions","enableColumnDragging","enableMultiSort","muiTableHeadCellProps","tableCellProps","headerElement","Header","draggingBorder","draggingBorders","borderLeft","borderRight","borderTop","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","_columnDef$header","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","type","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyRowGrabHandle","rowRef","muiTableBodyRowDragHandleProps","onRowDrop","setCurrentDraggingRow","draggedRow","currentDraggingRow","targetRow","currentHoveredRow","setCurrentHoveredRow","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","borderBottom","getRowModel","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","_row$subRows","_row$subRows2","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","getTotalSize","MRT_TableBodyRow","hover","&:hover td","getVisibleCells","_row$getVisibleCells","MRT_TableBody","tableContainerRef","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","rankedRows","sort","a","b","v","rank","rowVirtualizer","useVirtual","overscan","parentRef","virtualRows","virtualItems","paddingTop","paddingBottom","start","totalSize","end","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initialState","initState","_props$initialState2","setShowAlertBanner","assign","_col$id","_col$accessorKey","filterFn","name","_initialState$current3","_col$id2","_col$accessorKey2","_col$filterSelectOpti","globalFilterFn","displayColumns","_props$localization","_props$localization2","enableExpandAll","_props$localization3","enableSelectAll","_props$localization4","_props$localization5","_props$localization6","columnDefs","prepareColumns","_columnDef$columns","keys","sortingFn","data","state","_props$state2","fill","_props$state3","_props$state4","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentDraggingColumnChange","onCurrentDraggingRowChange","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onCurrentHoveredColumnChange","onCurrentHoveredRowChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}