material-react-table 0.7.3 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/enums.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/filtersFNs.ts","../src/menus/MRT_FilterTypeMenu.tsx","../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/inputs/MRT_SearchTextField.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/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/buttons/MRT_ToggleColumnActionMenuButton.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/utils.ts","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: 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 filterBestMatch: string;\n filterBestMatchFirst: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: 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 toggleDensePadding: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n ungroupByColumn: string;\n unpin: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\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 filterBestMatch: 'Best Match',\n filterBestMatchFirst: 'Best Match First',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\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 groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\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 toggleDensePadding: 'Toggle dense padding',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unsorted: 'Unsorted',\n};\n","export enum MRT_FILTER_TYPE {\n BEST_MATCH = 'bestMatch',\n BEST_MATCH_FIRST = 'bestMatchFirst',\n CONTAINS = 'contains',\n EMPTY = 'empty',\n ENDS_WITH = 'endsWith',\n EQUALS = 'equals',\n GREATER_THAN = 'greaterThan',\n LESS_THAN = 'lessThan',\n NOT_EMPTY = 'notEmpty',\n NOT_EQUALS = 'notEquals',\n STARTS_WITH = 'startsWith',\n}\n","import ArrowRightIcon from '@mui/icons-material/ArrowRight';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport ClearAllIcon from '@mui/icons-material/ClearAll';\nimport CloseIcon from '@mui/icons-material/Close';\nimport DensityMediumIcon from '@mui/icons-material/DensityMedium';\nimport DensitySmallIcon from '@mui/icons-material/DensitySmall';\nimport DoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';\nimport DynamicFeedIcon from '@mui/icons-material/DynamicFeed';\nimport EditIcon from '@mui/icons-material/Edit';\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport FilterAltIcon from '@mui/icons-material/FilterAlt';\nimport FilterAltOff from '@mui/icons-material/FilterAltOff';\nimport FilterListIcon from '@mui/icons-material/FilterList';\nimport FilterListOffIcon from '@mui/icons-material/FilterListOff';\nimport FullscreenExitIcon from '@mui/icons-material/FullscreenExit';\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\nimport MoreHorizIcon from '@mui/icons-material/MoreHoriz';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport PushPinIcon from '@mui/icons-material/PushPin';\nimport RestartAltIcon from '@mui/icons-material/RestartAlt';\nimport SaveIcon from '@mui/icons-material/Save';\nimport SearchIcon from '@mui/icons-material/Search';\nimport SearchOffIcon from '@mui/icons-material/SearchOff';\nimport SortIcon from '@mui/icons-material/Sort';\nimport ViewColumnIcon from '@mui/icons-material/ViewColumn';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n DoubleArrowDownIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOff: 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,\n CancelIcon,\n CheckBoxIcon,\n ClearAllIcon,\n CloseIcon,\n DensityMediumIcon,\n DensitySmallIcon,\n DoubleArrowDownIcon,\n DynamicFeedIcon,\n EditIcon,\n ExpandLessIcon,\n ExpandMoreIcon,\n FilterAltIcon,\n FilterAltOff,\n FilterListIcon,\n FilterListOffIcon,\n FullscreenExitIcon,\n FullscreenIcon,\n MoreHorizIcon,\n MoreVertIcon,\n PushPinIcon,\n RestartAltIcon,\n SaveIcon,\n SearchIcon,\n SearchOffIcon,\n SortIcon,\n ViewColumnIcon,\n VisibilityOffIcon,\n};\n","import React, { FC } from 'react';\nimport { IconButton } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ tableInstance }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getState,\n options: {\n icons: { DoubleArrowDownIcon },\n isLoading,\n localization,\n },\n toggleAllRowsExpanded,\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n return (\n <IconButton\n aria-label={localization.expandAll}\n disabled={isLoading}\n title={localization.expandAll}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\n }}\n >\n <DoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, tableInstance }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n onRowExpandChange,\n renderDetailPanel,\n },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const handleToggleExpand = (event: MouseEvent<HTMLButtonElement>) => {\n row.toggleExpanded();\n onRowExpandChange?.({ event, row, tableInstance });\n };\n\n return (\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n title={localization.expand}\n onClick={handleToggleExpand}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\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 );\n};\n","import { matchSorter } from 'match-sorter';\nimport { MRT_Row } from '.';\n\nexport const bestMatchFirst = (\n rows: MRT_Row[],\n columnIds: string[] | string,\n filterValue: string | number,\n) =>\n matchSorter(rows, filterValue.toString().trim(), {\n keys: Array.isArray(columnIds)\n ? columnIds.map((c) => `values.${c}`)\n : [`values.${columnIds}`],\n });\n\nbestMatchFirst.autoRemove = (val: any) => !val;\n\nexport const bestMatch = (\n rows: MRT_Row[],\n columnIds: string[] | string,\n filterValue: string | number,\n) =>\n matchSorter(rows, filterValue.toString().trim(), {\n keys: Array.isArray(columnIds)\n ? columnIds.map((c) => `values.${c}`)\n : [`values.${columnIds}`],\n sorter: (rankedItems) => rankedItems,\n });\n\nbestMatch.autoRemove = (val: any) => !val;\n\nexport const contains = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n row.values[id]\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim()),\n );\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n row.values[id]\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim()),\n );\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n row.values[id]\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim()),\n );\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter(\n (row) =>\n row.values[id].toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim(),\n );\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter(\n (row) =>\n row.values[id].toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim(),\n );\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n !isNaN(+filterValue) && !isNaN(+row.values[id])\n ? +row.values[id] > +filterValue\n : row.values[id].toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim(),\n );\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n !isNaN(+filterValue) && !isNaN(+row.values[id])\n ? +row.values[id] < +filterValue\n : row.values[id].toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim(),\n );\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const empty = (\n rows: MRT_Row[],\n id: string,\n _filterValue: string | number,\n) => rows.filter((row) => !row.values[id].toString().toLowerCase().trim());\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n rows: MRT_Row[],\n id: string,\n _filterValue: string | number,\n) => rows.filter((row) => !!row.values[id].toString().toLowerCase().trim());\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const defaultFilterFNs = {\n bestMatch,\n bestMatchFirst,\n contains,\n empty,\n endsWith,\n equals,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterType, MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FILTER_TYPE } from '../enums';\nimport {\n bestMatch,\n bestMatchFirst,\n contains,\n empty,\n endsWith,\n equals,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n} from '../filtersFNs';\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTypeMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getState,\n options: { enabledGlobalFilterTypes, localization },\n setCurrentFilterTypes,\n setCurrentGlobalFilterType,\n } = tableInstance;\n\n const { isDensePadding, currentFilterTypes, currentGlobalFilterType } =\n getState();\n\n const filterTypes: {\n type: MRT_FILTER_TYPE;\n label: string;\n divider: boolean;\n fn: Function;\n }[] = useMemo(\n () =>\n [\n {\n type: MRT_FILTER_TYPE.BEST_MATCH_FIRST,\n label: localization.filterBestMatchFirst,\n divider: false,\n fn: bestMatchFirst,\n },\n {\n type: MRT_FILTER_TYPE.BEST_MATCH,\n label: localization.filterBestMatch,\n divider: !!header,\n fn: bestMatch,\n },\n {\n type: MRT_FILTER_TYPE.CONTAINS,\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n type: MRT_FILTER_TYPE.STARTS_WITH,\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n type: MRT_FILTER_TYPE.ENDS_WITH,\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n type: MRT_FILTER_TYPE.EQUALS,\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n type: MRT_FILTER_TYPE.NOT_EQUALS,\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n type: MRT_FILTER_TYPE.GREATER_THAN,\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n type: MRT_FILTER_TYPE.LESS_THAN,\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n type: MRT_FILTER_TYPE.EMPTY,\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n type: MRT_FILTER_TYPE.NOT_EMPTY,\n label: localization.filterNotEmpty,\n divider: false,\n fn: notEmpty,\n },\n ].filter((filterType) =>\n header\n ? !header.column.enabledColumnFilterTypes ||\n header.column.enabledColumnFilterTypes.includes(filterType.type)\n : (!enabledGlobalFilterTypes ||\n enabledGlobalFilterTypes.includes(filterType.type)) &&\n [\n MRT_FILTER_TYPE.BEST_MATCH_FIRST,\n MRT_FILTER_TYPE.BEST_MATCH,\n ].includes(filterType.type),\n ),\n [],\n );\n\n const handleSelectFilterType = (value: MRT_FILTER_TYPE) => {\n if (header) {\n setCurrentFilterTypes((prev: { [key: string]: MRT_FilterType }) => ({\n ...prev,\n [header.id]: value,\n }));\n if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {\n header.column.setColumnFilterValue(' ');\n }\n } else {\n setCurrentGlobalFilterType(value);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterType = !!header\n ? currentFilterTypes[header.id]\n : currentGlobalFilterType;\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: isDensePadding,\n }}\n >\n {filterTypes.map(({ type, label, divider, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(type)}\n selected={type === filterType || fn === filterType}\n sx={commonMenuItemStyles}\n value={type}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { FormControlLabel, MenuItem, Switch } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { commonMenuItemStyles } from './MRT_ColumnActionMenu';\n\ninterface Props {\n column: MRT_Column;\n isSubMenu?: boolean;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n column,\n isSubMenu,\n tableInstance,\n}) => {\n const {\n getState,\n options: { onToggleColumnVisibility },\n } = tableInstance;\n\n const { columnVisibility } = getState();\n\n const switchChecked =\n (column.columnDefType !== 'group' && column.getIsVisible()) ||\n (column.columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (column.columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n onToggleColumnVisibility?.({\n column,\n columnVisibility,\n tableInstance,\n });\n };\n\n return (\n <>\n <MenuItem\n sx={{ ...commonMenuItemStyles, pl: `${(column.depth + 0.5) * 2}rem` }}\n >\n <FormControlLabel\n componentsProps={{ typography: { sx: { marginBottom: 0 } } }}\n checked={switchChecked}\n control={<Switch />}\n disabled={\n (isSubMenu && switchChecked) || column.enableHiding === false\n }\n label={column.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n key={`${i}-${c.id}`}\n column={c}\n isSubMenu={isSubMenu}\n tableInstance={tableInstance}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getAllColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsVisible,\n getIsSomeColumnsPinned,\n getState,\n toggleAllColumnsVisible,\n getAllLeafColumns,\n options: { localization },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allDisplayColumns = useMemo(\n () => getAllColumns().filter((col) => col.columnDefType === 'display'),\n [getAllColumns()],\n );\n\n const allDataColumns = useMemo(() => {\n const dataColumns = getAllColumns().filter(\n (col) => col.columnDefType !== 'display',\n );\n return getIsSomeColumnsPinned()\n ? [\n ...dataColumns.filter((c) => c.getIsPinned() === 'left'),\n ...dataColumns.filter((c) => c.getIsPinned() === false),\n ...dataColumns.filter((c) => c.getIsPinned() === 'right'),\n ]\n : dataColumns;\n }, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: isDensePadding,\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 <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allDisplayColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n column={column}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n tableInstance={tableInstance}\n />\n ))}\n <Divider />\n {allDataColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n column={column}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n tableInstance={tableInstance}\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_FilterTypeMenu } from './MRT_FilterTypeMenu';\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n idPrefix,\n localization,\n },\n setShowFilters,\n } = tableInstance;\n\n const { column } = header;\n\n const { columnSizing, columnVisibility, isDensePadding } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.resetSorting();\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 };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setColumnFilterValue('');\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-${idPrefix}-${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 return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: isDensePadding,\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(column.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(column.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanColumnFilter() && [\n <MenuItem\n disabled={!column.getColumnFilterValue()}\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(column.header),\n )}\n </Box>\n {!column.filterSelectOptions && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n <MRT_FilterTypeMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n tableInstance={tableInstance}\n />,\n ]}\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(column.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={0}\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={0}\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={column.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(column.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(column.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 tableInstance={tableInstance}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: isDensePadding,\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 tableInstance,\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 '..';\nimport { RowValues } from '@tanstack/react-table';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, tableInstance }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditSubmit,\n },\n setCurrentEditingRow,\n } = tableInstance;\n\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row.values = (row.original as RowValues) ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditSubmit?.({ row: currentEditingRow ?? row, tableInstance });\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({\n row,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = tableInstance;\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, tableInstance })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} tableInstance={tableInstance} />\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 tableInstance={tableInstance}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({\n row,\n selectAll,\n tableInstance,\n}) => {\n const {\n getRowModel,\n getSelectedRowModel,\n getState,\n getToggleAllRowsSelectedProps,\n options: {\n isLoading,\n localization,\n muiSelectCheckboxProps,\n onSelectChange,\n onSelectAllChange,\n },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n getToggleAllRowsSelectedProps?.()?.onChange?.(event as any);\n onSelectAllChange?.({\n event,\n selectedRows: event.target.checked ? getRowModel().flatRows : [],\n tableInstance,\n });\n } else if (row) {\n row?.getToggleSelectedProps()?.onChange?.(event as any);\n onSelectChange?.({\n event,\n row,\n selectedRows: event.target.checked\n ? [...getSelectedRowModel().flatRows, row]\n : getSelectedRowModel().flatRows.filter(\n (selectedRow) => selectedRow.id !== row.id,\n ),\n tableInstance,\n });\n }\n };\n\n const mTableBodyRowSelectCheckboxProps =\n muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ isSelectAll: !!selectAll, row, tableInstance })\n : muiSelectCheckboxProps;\n\n const rtSelectCheckboxProps = selectAll\n ? getToggleAllRowsSelectedProps()\n : row?.getToggleSelectedProps();\n\n const checkboxProps = {\n ...rtSelectCheckboxProps,\n ...mTableBodyRowSelectCheckboxProps,\n };\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 disabled={isLoading}\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n size={isDensePadding ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\n }}\n onChange={handleSelectChange}\n title={undefined}\n />\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_FilterTypeMenu } from '../menus/MRT_FilterTypeMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_SearchTextField: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n icons: { SearchIcon, CloseIcon },\n idPrefix,\n localization,\n muiSearchTextFieldProps,\n onGlobalSearchFilterChange,\n },\n } = tableInstance;\n\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n onGlobalSearchFilterChange?.({ event, tableInstance });\n }, 200),\n [],\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({ tableInstance })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${idPrefix}-search-text-field`}\n placeholder={localization.search}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChange(event);\n }}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <span>\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 </span>\n </Tooltip>\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={localization.clearSearch}\n disabled={searchValue?.length === 0}\n onClick={handleClear}\n size=\"small\"\n title={localization.clearSearch}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{ justifySelf: 'end', ...textFieldProps?.sx }}\n />\n <MRT_FilterTypeMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n tableInstance={tableInstance}\n />\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n onToggleFullScreen,\n },\n setIsFullScreen,\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleFullScreen?.({\n event,\n isFullScreen: !isFullScreen,\n tableInstance,\n });\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = tableInstance;\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 tableInstance={tableInstance}\n />\n </>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { DensityMediumIcon, DensitySmallIcon },\n localization,\n onToggleDensePadding,\n },\n setIsDensePadding,\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const handleToggleDensePadding = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleDensePadding?.({\n event,\n isDensePadding: !isDensePadding,\n tableInstance,\n });\n setIsDensePadding(!isDensePadding);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensePadding}>\n <IconButton\n aria-label={localization.toggleDensePadding}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {isDensePadding ? <DensitySmallIcon /> : <DensityMediumIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n onToggleShowFilters,\n },\n setShowFilters,\n } = tableInstance;\n\n const { showFilters } = getState();\n\n const handleToggleShowFilters = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleShowFilters?.({\n event,\n showFilters: !showFilters,\n tableInstance,\n });\n setShowFilters(!showFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n idPrefix,\n localization,\n muiSearchTextFieldProps,\n onToggleShowGlobalFilter,\n },\n setShowGlobalFilter,\n } = tableInstance;\n\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ tableInstance })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleShowGlobalFilter?.({\n event,\n showGlobalFilter: !showGlobalFilter,\n tableInstance,\n });\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${idPrefix}-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, { 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 '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ tableInstance }) => {\n const {\n options: {\n enableColumnFilters,\n enableDensePaddingToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n renderToolbarInternalActions,\n },\n } = tableInstance;\n\n if (renderToolbarInternalActions) {\n return (\n <>\n {renderToolbarInternalActions({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n tableInstance,\n })}\n </>\n );\n }\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton tableInstance={tableInstance} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton tableInstance={tableInstance} />\n )}\n {enableHiding && (\n <MRT_ShowHideColumnsButton tableInstance={tableInstance} />\n )}\n {enableDensePaddingToggle && (\n <MRT_ToggleDensePaddingButton tableInstance={tableInstance} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton tableInstance={tableInstance} />\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ tableInstance }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: { muiTablePaginationProps },\n } = tableInstance;\n\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n } = getState();\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ tableInstance })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n const showFirstLastPageButtons =\n getPrePaginationRowModel().rows.length / pageSize > 2;\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={getPrePaginationRowModel().rows.length}\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 position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, Box, Chip, Collapse, useMediaQuery } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({ tableInstance }) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n toggleColumnGrouping,\n options: {\n localization,\n muiTableToolbarAlertBannerProps,\n positionToolbarActions,\n positionToolbarAlertBanner,\n renderToolbarCustomActions,\n },\n } = tableInstance;\n\n const { grouping } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ tableInstance })\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={\n tableInstance\n .getAllColumns()\n .find((column) => column.id === columnId)?.header\n }\n onDelete={() => toggleColumnGrouping(columnId)}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n const displayAbsolute = !(\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n positionToolbarActions === 'bottom') ||\n (positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions)\n );\n\n return (\n <Collapse\n in={!!selectMessage || !!groupedByMessage}\n timeout={displayAbsolute ? 0 : 200}\n >\n <Alert\n color=\"info\"\n icon={false}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: displayAbsolute ? 'absolute' : 'relative',\n right: 0,\n minHeight: '3.5rem',\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n {...alertProps}\n >\n <Box sx={{ p: '0.5rem 1rem' }}>\n {selectMessage}\n <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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ tableInstance }) => {\n const {\n options: { muiLinearProgressProps, isReloading, isLoading },\n } = tableInstance;\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ tableInstance })\n : muiLinearProgressProps;\n\n return (\n <Collapse in={isReloading || isLoading} unmountOnExit>\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Theme, Toolbar } from '@mui/material';\nimport { MRT_SearchTextField } from '../inputs/MRT_SearchTextField';\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 '..';\n\nexport const commonToolbarStyles = ({ theme }: { theme: 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 display: 'grid',\n p: '0 !important',\n width: '100%',\n zIndex: 1,\n});\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n idPrefix,\n muiTableToolbarTopProps,\n positionPagination,\n positionToolbarActions,\n positionToolbarAlertBanner,\n renderToolbarCustomActions,\n },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ tableInstance })\n : muiTableToolbarTopProps;\n\n return (\n <Toolbar\n id={`mrt-${idPrefix}-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 tableInstance={tableInstance} />\n )}\n <Box\n sx={{\n p: '0.5rem',\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n {renderToolbarCustomActions?.({ tableInstance }) ?? <span />}\n <Box\n sx={{\n display: 'flex',\n gap: '0.5rem',\n position: 'relative',\n zIndex: 3,\n }}\n >\n {enableGlobalFilter && (\n <MRT_SearchTextField tableInstance={tableInstance} />\n )}\n {enableToolbarInternalActions && positionToolbarActions === 'top' && (\n <MRT_ToolbarInternalButtons tableInstance={tableInstance} />\n )}\n </Box>\n </Box>\n <div>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination tableInstance={tableInstance} />\n )}\n </div>\n <MRT_LinearProgressBar tableInstance={tableInstance} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: {\n enableToolbarInternalActions,\n idPrefix,\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarActions,\n positionToolbarAlertBanner,\n },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ tableInstance })\n : muiTableToolbarBottomProps;\n\n return (\n <Toolbar\n id={`mrt-${idPrefix}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n position: isFullScreen ? 'fixed' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar tableInstance={tableInstance} />\n <Box\n sx={{ display: 'flex', justifyContent: 'space-between', width: '100%' }}\n >\n {enableToolbarInternalActions && positionToolbarActions === 'bottom' ? (\n <MRT_ToolbarInternalButtons tableInstance={tableInstance} />\n ) : (\n <span />\n )}\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner tableInstance={tableInstance} />\n )}\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination tableInstance={tableInstance} />\n )}\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 type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterTypeMenu } from '../menus/MRT_FilterTypeMenu';\nimport { MRT_FILTER_TYPE } from '../enums';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({ header, tableInstance }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, CloseIcon },\n idPrefix,\n localization,\n muiTableHeadCellFilterTextFieldProps,\n },\n setCurrentFilterTypes,\n } = tableInstance;\n\n const { column } = header;\n\n const { currentFilterTypes } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, tableInstance })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n column.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? column.muiTableHeadCellFilterTextFieldProps({ column, tableInstance })\n : column.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(\n (column.getColumnFilterValue() ?? '') as string,\n );\n\n const handleChange = useCallback(\n debounce(\n (event: ChangeEvent<HTMLInputElement>) =>\n column.setColumnFilterValue(event.target.value ?? undefined),\n 150,\n ),\n [],\n );\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n column.setColumnFilterValue(undefined);\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setColumnFilterValue(undefined);\n setCurrentFilterTypes((prev) => ({\n ...prev,\n [header.id]: MRT_FILTER_TYPE.BEST_MATCH,\n }));\n };\n\n if (column.Filter) {\n return <>{column.Filter?.({ header, tableInstance })}</>;\n }\n\n const filterId = `mrt-${idPrefix}-${header.id}-filter-text-field`;\n const filterType = currentFilterTypes?.[header.id];\n const isSelectFilter = !!column.filterSelectOptions;\n const filterChipLabel =\n !(filterType instanceof Function) &&\n [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(\n filterType as MRT_FILTER_TYPE,\n )\n ? //@ts-ignore\n localization[\n `filter${filterType.charAt(0).toUpperCase() + filterType.slice(1)}`\n ]\n : '';\n const filterPlaceholder = localization.filterByColumn?.replace(\n '{column}',\n String(column.header),\n );\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 <label htmlFor={filterId}>\n {filterType instanceof Function\n ? localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterType.name.charAt(0).toUpperCase() +\n filterType.name.slice(1)\n }`\n ] ?? '',\n ) ?? ''\n : localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterType.charAt(0).toUpperCase() + filterType.slice(1)\n }`\n ],\n )}\n </label>\n }\n FormHelperTextProps={{\n sx: { fontSize: '0.6rem', lineHeight: '0.8rem' },\n }}\n label={isSelectFilter && !filterValue ? filterPlaceholder : undefined}\n margin=\"none\"\n placeholder={\n filterPlaceholder\n // filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChange(event);\n }}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: !isSelectFilter && (\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 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 ? '5rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n mt: isSelectFilter && !filterValue ? '-1rem' : undefined,\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 {column?.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_FilterTypeMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n tableInstance={tableInstance}\n />\n </>\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleColumnActionMenuButton: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = tableInstance;\n\n const { column } = header;\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, tableInstance })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n column.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? column.muiTableHeadCellColumnActionsButtonProps({\n column,\n tableInstance,\n })\n : column.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 mr: '2px',\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 tableInstance={tableInstance}\n />\n </>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport {\n TableCell,\n TableSortLabel,\n Divider,\n Collapse,\n Tooltip,\n Box,\n IconButton,\n alpha,\n Theme,\n} from '@mui/material';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_ToggleColumnActionMenuButton } from '../buttons/MRT_ToggleColumnActionMenuButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { ColumnResizerProps } from '@tanstack/react-table';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, tableInstance }) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnFilters,\n enableColumnResizing,\n icons: { FilterAltIcon, FilterAltOff },\n localization,\n muiTableHeadCellProps,\n },\n setShowFilters,\n } = tableInstance;\n\n const { isDensePadding, showFilters } = getState();\n\n const { column } = header;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, tableInstance })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n column.muiTableHeadCellProps instanceof Function\n ? column.muiTableHeadCellProps({ column, tableInstance })\n : column.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...header.getHeaderProps(),\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', column.header)\n : localization.sortedByColumnAsc.replace('{column}', column.header)\n : localization.unsorted;\n\n const filterType = getState()?.currentFilterTypes?.[header.id];\n\n const filterTooltip = !!column.getColumnFilterValue()\n ? localization.filteringByColumn\n .replace('{column}', String(column.header))\n .replace(\n '{filterType}',\n filterType instanceof Function\n ? ''\n : // @ts-ignore\n localization[\n `filter${\n filterType.charAt(0).toUpperCase() + filterType.slice(1)\n }`\n ],\n )\n .replace('{filterValue}', column.getColumnFilterValue() as string)\n .replace('\" \"', '')\n : localization.showHideFilters;\n\n const headerElement =\n column?.Header?.({\n header,\n tableInstance,\n }) ?? column.header;\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n {...tableCellProps}\n //@ts-ignore\n sx={(theme: 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 height: '100%',\n maxWidth: `min(${column.getWidth()}px, ${column.maxWidth}px)`,\n minWidth: `max(${column.getWidth()}px, ${column.minWidth}px)`,\n p: isDensePadding\n ? column.columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : column.columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem',\n pt:\n column.columnDefType === 'display'\n ? 0\n : isDensePadding\n ? '0.75rem'\n : '1.25rem',\n pb: column.columnDefType === 'display' ? 0 : undefined,\n overflow: 'visible',\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n verticalAlign: 'text-top',\n width: header.getWidth(),\n zIndex: column.getIsResizing() ? 2 : 1,\n //@ts-ignore\n ...tableCellProps?.sx,\n })}\n >\n {header.isPlaceholder ? null : column.columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n column.columnDefType === 'group' ? 'center' : 'space-between',\n width: '100%',\n }}\n >\n <Box\n onClick={() => column.toggleSorting()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && column.columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace: column.header.length < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {column.columnDefType === 'data' && column.getCanSort() && (\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 />\n </Tooltip>\n )}\n {column.columnDefType === 'data' &&\n enableColumnFilters &&\n !!column.getCanColumnFilter() && (\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setShowFilters(!showFilters);\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: !!column.getColumnFilterValue() ? 0.8 : 0,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 0.8,\n },\n }}\n >\n {showFilters && !column.getColumnFilterValue() ? (\n <FilterAltOff />\n ) : (\n <FilterAltIcon />\n )}\n </IconButton>\n </Tooltip>\n )}\n </Box>\n {(enableColumnActions || column.enableColumnActions) &&\n column.enableColumnActions !== false &&\n column.columnDefType !== 'group' && (\n <MRT_ToggleColumnActionMenuButton\n header={header}\n tableInstance={tableInstance}\n />\n )}\n {column.getCanResize() && (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => header.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height:\n showFilters && column.columnDefType === 'data'\n ? '4rem'\n : '2rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 2000,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n {...(header.getResizerProps((props: ColumnResizerProps) => ({\n ...props,\n style: {\n transform: column.getIsResizing()\n ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`\n : '',\n },\n })) as any)}\n />\n )}\n </Box>\n )}\n {column.columnDefType === 'data' && column.getCanColumnFilter() && (\n <Collapse in={showFilters}>\n <MRT_FilterTextField header={header} tableInstance={tableInstance} />\n </Collapse>\n )}\n </TableCell>\n );\n};\n","import React, { CSSProperties, FC } from 'react';\nimport { alpha, 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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, tableInstance }) => {\n const {\n options: { muiTableHeadRowProps },\n } = tableInstance;\n\n const mTableHeadRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, tableInstance })\n : muiTableHeadRowProps;\n\n const tableRowProps = {\n ...headerGroup?.getHeaderGroupProps(),\n ...mTableHeadRowProps,\n };\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) =>\n ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n //@ts-ignore\n ...tableRowProps?.sx,\n } as CSSProperties)\n }\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n tableInstance={tableInstance}\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_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getCenterHeaderGroups,\n getHeaderGroups,\n getLeftHeaderGroups,\n getRightHeaderGroups,\n options: { muiTableHeadProps },\n } = tableInstance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ tableInstance })\n : muiTableHeadProps;\n\n const getHeaderGroupsMap = {\n center: getCenterHeaderGroups,\n left: getLeftHeaderGroups,\n none: getHeaderGroups,\n right: getRightHeaderGroups,\n };\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroupsMap[pinned]().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as MRT_HeaderGroup}\n key={headerGroup.getHeaderGroupProps().key}\n tableInstance={tableInstance}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, tableInstance }) => {\n const {\n getState,\n options: {\n idPrefix,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = tableInstance;\n\n const [value, setValue] = useState(cell.value);\n\n const { column, row } = cell;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n column.onCellEditChange?.({ event, cell, tableInstance });\n onCellEditChange?.({ event, cell, tableInstance });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n row.values[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n column.onCellEditBlur?.({ event, cell, tableInstance });\n onCellEditBlur?.({ event, cell, tableInstance });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, tableInstance })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n column.muiTableBodyCellEditTextFieldProps instanceof Function\n ? column.muiTableBodyCellEditTextFieldProps({ cell, tableInstance })\n : column.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && column.enableEditing !== false && column.Edit) {\n return <>{column.Edit?.({ cell, tableInstance })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${idPrefix}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={column.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({\n cell,\n children,\n tableInstance,\n}) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = tableInstance;\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, tableInstance })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n cell.column.muiTableBodyCellCopyButtonProps instanceof Function\n ? cell.column.muiTableBodyCellCopyButtonProps({ cell, tableInstance })\n : cell.column.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 aria-label={localization.clickToCopy}\n onClick={() => handleCopy(cell.value)}\n size=\"small\"\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 variant=\"text\"\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { Skeleton, TableCell } from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\n\ninterface Props {\n cell: MRT_Cell;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({ cell, tableInstance }) => {\n const {\n getIsSomeColumnsPinned,\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableEditing,\n enablePinning,\n idPrefix,\n isLoading,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n onCellClick,\n },\n setCurrentEditingCell,\n } = tableInstance;\n\n const { currentEditingCell, currentEditingRow, isDensePadding } = getState();\n\n const { column, row } = cell;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, tableInstance })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n column.muiTableBodyCellProps instanceof Function\n ? column.muiTableBodyCellProps({ cell, tableInstance })\n : column.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...cell.getCellProps(),\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n column.columnDefType === 'display'\n ? column.getWidth() / 2\n : Math.random() * (column.getWidth() - column.getWidth() / 3) +\n column.getWidth() / 3,\n [column.columnDefType, column.getWidth()],\n );\n\n const isEditable =\n (enableEditing || column.enableEditing) && column.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 || column.enableEditing) &&\n column.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${idPrefix}-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 return (\n <TableCell\n onClick={(event: MouseEvent<HTMLTableCellElement>) =>\n onCellClick?.({ event, cell, tableInstance })\n }\n onDoubleClick={handleDoubleClick}\n {...tableCellProps}\n sx={{\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n maxWidth: `min(${column.getWidth()}px, fit-content)`,\n minWidth: `max(${column.getWidth()}px, ${column.minWidth}px)`,\n p: isDensePadding\n ? column.columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : column.columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem',\n pl:\n column.id === 'mrt-expand'\n ? `${row.depth + (isDensePadding ? 0.5 : 0.75)}rem`\n : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace:\n isDensePadding || (enablePinning && getIsSomeColumnsPinned())\n ? 'nowrap'\n : 'normal',\n width: column.getWidth(),\n //@ts-ignore\n ...tableCellProps?.sx,\n }}\n >\n {isLoading ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : column.columnDefType === 'display' ? (\n column.Cell?.({ cell, tableInstance })\n ) : cell.getIsPlaceholder() ||\n (row.getIsGrouped() &&\n column.id !==\n row.groupingColumnId) ? null : cell.getIsAggregated() ? (\n cell.renderAggregatedCell()\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} tableInstance={tableInstance} />\n ) : (enableClickToCopy || column.enableClickToCopy) &&\n column.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} tableInstance={tableInstance}>\n {cell.column?.Cell?.({ cell, tableInstance }) ?? cell.renderCell()}\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {cell.column?.Cell?.({ cell, tableInstance }) ?? cell.renderCell()}\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n )}\n </TableCell>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, tableInstance }) => {\n const {\n getVisibleFlatColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n onDetailPanelClick,\n renderDetailPanel,\n },\n } = tableInstance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, tableInstance })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, tableInstance })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleFlatColumns().length + 10}\n onClick={(event: MouseEvent<HTMLTableCellElement>) =>\n onDetailPanelClick?.({ event, row, tableInstance })\n }\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 ...tableCellProps?.sx,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel?.({ row, tableInstance })}\n </Collapse>\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { 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 pinned: 'left' | 'center' | 'right' | 'none';\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ pinned, row, tableInstance }) => {\n const {\n options: { muiTableBodyRowProps, onRowClick, renderDetailPanel },\n } = tableInstance;\n\n const {\n getCenterVisibleCells,\n getIsGrouped,\n getIsSelected,\n getLeftVisibleCells,\n getRightVisibleCells,\n getRowProps,\n getVisibleCells,\n } = row;\n\n const mTableBodyRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, tableInstance })\n : muiTableBodyRowProps;\n\n const tableRowProps = {\n ...getRowProps(),\n ...mTableBodyRowProps,\n };\n\n const getVisibleCellsMap = {\n center: getCenterVisibleCells,\n left: getLeftVisibleCells,\n none: getVisibleCells,\n right: getRightVisibleCells,\n };\n\n return (\n <>\n <TableRow\n hover\n onClick={(event: MouseEvent<HTMLTableRowElement>) =>\n onRowClick?.({ event, row, tableInstance })\n }\n selected={getIsSelected()}\n {...tableRowProps}\n >\n {getVisibleCellsMap[pinned]().map((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.getCellProps().key}\n tableInstance={tableInstance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !getIsGrouped() && (\n <MRT_TableDetailPanel row={row} tableInstance={tableInstance} />\n )}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getPaginationRowModel,\n getPrePaginationRowModel,\n getTableBodyProps,\n options: { enablePagination, muiTableBodyProps },\n } = tableInstance;\n\n const rows = enablePagination\n ? getPaginationRowModel().rows\n : getPrePaginationRowModel().rows;\n\n const mTableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ tableInstance })\n : muiTableBodyProps;\n\n const tableBodyProps = {\n ...getTableBodyProps(),\n ...mTableBodyProps,\n };\n\n return (\n <TableBody {...tableBodyProps}>\n {rows.map((row) => (\n <MRT_TableBodyRow\n key={row.getRowProps().key}\n pinned={pinned}\n row={row}\n tableInstance={tableInstance}\n />\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, tableInstance }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const { column } = footer;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, tableInstance })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n column.muiTableFooterCellProps instanceof Function\n ? column.muiTableFooterCellProps({ column, tableInstance })\n : column.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...footer.getFooterProps(),\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n variant=\"head\"\n {...tableCellProps}\n //@ts-ignore\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: `min(${column.getWidth()}px, ${column.maxWidth}px)`,\n minWidth: `max(${column.getWidth()}px, ${column.minWidth}px)`,\n p: isDensePadding ? '0.5rem' : '1rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getWidth(),\n verticalAlign: 'text-top',\n //@ts-ignore\n ...tableCellProps?.sx,\n })}\n >\n {footer.isPlaceholder\n ? null\n : column.Footer?.({\n footer,\n tableInstance,\n }) ??\n column.footer ??\n null}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({\n footerGroup,\n tableInstance,\n}) => {\n const {\n options: { muiTableFooterRowProps },\n } = tableInstance;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (h) => h.column.columnDef.footer || h.column.Footer,\n )\n )\n return null;\n\n const mTableFooterRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, tableInstance })\n : muiTableFooterRowProps;\n\n const tableRowProps = {\n ...footerGroup.getFooterGroupProps(),\n ...mTableFooterRowProps,\n };\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.getFooterProps().key}\n tableInstance={tableInstance}\n />\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_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getCenterFooterGroups,\n getFooterGroups,\n getLeftFooterGroups,\n getRightFooterGroups,\n options: { muiTableFooterProps },\n } = tableInstance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ tableInstance })\n : muiTableFooterProps;\n\n const getFooterGroupsMap = {\n center: getCenterFooterGroups,\n left: getLeftFooterGroups,\n none: getFooterGroups,\n right: getRightFooterGroups,\n };\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroupsMap[pinned]().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as MRT_HeaderGroup}\n key={footerGroup.getFooterGroupProps().key}\n tableInstance={tableInstance}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC } 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 pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getTableProps,\n options: {\n muiTableProps,\n enableTableHead,\n enableTableFooter,\n enableStickyHeader,\n },\n } = tableInstance;\n\n const mTableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ tableInstance })\n : muiTableProps;\n\n const tableProps = {\n ...getTableProps(),\n ...mTableProps,\n };\n\n return (\n <Table stickyHeader={enableStickyHeader} {...tableProps}>\n {enableTableHead && (\n <MRT_TableHead pinned={pinned} tableInstance={tableInstance} />\n )}\n <MRT_TableBody pinned={pinned} tableInstance={tableInstance} />\n {enableTableFooter && (\n <MRT_TableFooter pinned={pinned} tableInstance={tableInstance} />\n )}\n </Table>\n );\n};\n","import React, { CSSProperties, FC, useEffect, useState } from 'react';\nimport { alpha, Box, TableContainer, Theme } from '@mui/material';\nimport { MRT_TableInstance } from '..';\nimport { MRT_Table } from './MRT_Table';\n\nconst commonBoxStyles = ({\n pinned,\n theme,\n visible,\n}: {\n pinned?: 'left' | 'right';\n theme: Theme;\n visible?: boolean;\n}): CSSProperties => ({\n display: 'grid',\n minWidth: visible ? '200px' : 0,\n overflowX: pinned ? 'scroll' : 'auto',\n boxShadow:\n pinned === 'left'\n ? `0 1px 12px ${alpha(theme.palette.common.black, 0.5)}`\n : pinned === 'right'\n ? `0 -1px 12px ${alpha(theme.palette.common.black, 0.5)}`\n : 'none',\n});\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {\n const {\n getCenterTableWidth,\n getIsSomeColumnsPinned,\n getLeftTableWidth,\n getRightTableWidth,\n getState,\n options: {\n enablePinning,\n enableStickyHeader,\n idPrefix,\n muiTableContainerProps,\n },\n } = tableInstance;\n\n const { isFullScreen, columnPinning } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ tableInstance })\n : muiTableContainerProps;\n\n useEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${idPrefix}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${idPrefix}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n return (\n <TableContainer\n {...tableContainerProps}\n sx={{\n maxWidth: '100%',\n maxHeight: enableStickyHeader\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 2000px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n }}\n >\n {enablePinning && getIsSomeColumnsPinned() ? (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: `${getLeftTableWidth()}fr ${getCenterTableWidth()}fr ${getRightTableWidth()}fr`,\n }}\n >\n <Box\n sx={(theme: Theme) =>\n commonBoxStyles({\n pinned: 'left',\n theme,\n visible: !!columnPinning.left?.length,\n })\n }\n >\n <MRT_Table pinned=\"left\" tableInstance={tableInstance} />\n </Box>\n <Box sx={(theme: Theme) => commonBoxStyles({ theme })}>\n <MRT_Table pinned=\"center\" tableInstance={tableInstance} />\n </Box>\n <Box\n sx={(theme: Theme) =>\n commonBoxStyles({\n pinned: 'right',\n theme,\n visible: !!columnPinning.right?.length,\n })\n }\n >\n <MRT_Table pinned=\"right\" tableInstance={tableInstance} />\n </Box>\n </Box>\n ) : (\n <MRT_Table pinned=\"none\" tableInstance={tableInstance} />\n )}\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 { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.overflow = 'hidden';\n document.body.style.height = '100vh';\n } else {\n document.body.style.overflow = 'auto';\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ tableInstance })\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 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 tableInstance={tableInstance} />}\n <MRT_TableContainer tableInstance={tableInstance} />\n {enableToolbarBottom && (\n <MRT_ToolbarBottom tableInstance={tableInstance} />\n )}\n </Paper>\n );\n};\n","import { ColumnDef, Table } from '@tanstack/react-table';\nimport { MRT_ColumnDef, MRT_FilterType } from '.';\nimport { MRT_FILTER_TYPE } from './enums';\nimport { defaultFilterFNs } from './filtersFNs';\n\nexport const getAllLeafColumnDefs = (\n columns: MRT_ColumnDef[],\n): MRT_ColumnDef[] => {\n let lowestLevelColumns: MRT_ColumnDef[] = columns;\n let currentCols: MRT_ColumnDef[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef[];\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 createGroup = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterTypes: { [key: string]: MRT_FilterType },\n): ColumnDef<D> =>\n table.createGroup({\n ...column,\n columns: column?.columns?.map?.((col) =>\n col.columns\n ? createGroup<D>(table, col, currentFilterTypes)\n : createDataColumn(table, col, currentFilterTypes),\n ),\n } as any);\n\nexport const createDataColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterTypes: { [key: string]: MRT_FilterType },\n): ColumnDef<D> => // @ts-ignore\n table.createDataColumn(column.id, {\n filterFn:\n currentFilterTypes[column.id] instanceof Function\n ? currentFilterTypes[column.id]\n : defaultFilterFNs[currentFilterTypes[column.id] as MRT_FILTER_TYPE],\n ...column,\n }) as any;\n\nexport const createDisplayColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },\n): ColumnDef<D> => table.createDisplayColumn(column);\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n PaginationState,\n Table,\n createTable,\n functionalUpdate,\n getColumnFilteredRowModelSync,\n getExpandedRowModel,\n getGlobalFilteredRowModelSync,\n getGroupedRowModelSync,\n getPaginationRowModel,\n getSortedRowModelSync,\n useTableInstance,\n getCoreRowModelSync,\n ColumnDef,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_ColumnDef,\n MRT_FilterType,\n MRT_Row,\n MRT_TableInstance,\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 {\n createDataColumn,\n createDisplayColumn,\n createGroup,\n getAllLeafColumnDefs,\n} from '../utils';\nimport { defaultFilterFNs } from '../filtersFNs';\nimport { MRT_FILTER_TYPE } from '../enums';\nimport { Box, Dialog, Grow } from '@mui/material';\n\nexport const MRT_TableRoot = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\n) => {\n const [idPrefix, setIdPrefix] = useState(props.idPrefix);\n useEffect(\n () =>\n setIdPrefix(props.idPrefix ?? Math.random().toString(36).substring(2, 9)),\n [props.idPrefix],\n );\n\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<D> | null>(\n props.initialState?.currentEditingCell ?? null,\n );\n const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(\n props.initialState?.currentEditingRow ?? null,\n );\n const [isDensePadding, setIsDensePadding] = useState(\n props.initialState?.isDensePadding ?? false,\n );\n const [isFullScreen, setIsFullScreen] = useState(\n props.initialState?.isFullScreen ?? false,\n );\n const [showFilters, setShowFilters] = useState(\n props.initialState?.showFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n props.initialState?.showGlobalFilter ?? false,\n );\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: props.initialState?.pagination?.pageIndex ?? 0,\n pageSize: props.initialState?.pagination?.pageSize ?? 10,\n pageCount: props.initialState?.pagination?.pageCount ?? -1,\n });\n\n const [currentFilterTypes, setCurrentFilterTypes] = useState<{\n [key: string]: MRT_FilterType;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => ({\n [c.id as string]:\n c.filter ??\n props?.initialState?.columnFilters?.find((cf) => cf.id === c.id) ??\n (!!c.filterSelectOptions?.length\n ? MRT_FILTER_TYPE.EQUALS\n : MRT_FILTER_TYPE.BEST_MATCH),\n })),\n ),\n );\n\n const [currentGlobalFilterType, setCurrentGlobalFilterType] = useState(\n props.globalFilterType ?? MRT_FILTER_TYPE.BEST_MATCH_FIRST,\n );\n\n const table = useMemo(() => createTable() as unknown as Table<D>, []);\n\n const displayColumns = useMemo(\n () =>\n [\n (props.enableRowActions ||\n (props.enableEditing && props.editingMode === 'row')) &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as MRT_Row}\n tableInstance={tableInstance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n maxWidth: 60,\n width: 60,\n }),\n (props.enableExpanded || props.enableGrouping) &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton\n row={cell.row as MRT_Row}\n tableInstance={tableInstance}\n />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton tableInstance={tableInstance} />\n ) : null,\n header: props.localization?.expand,\n id: 'mrt-expand',\n maxWidth: 40,\n width: 40,\n }),\n props.enableRowSelection &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox\n row={cell.row as MRT_Row}\n tableInstance={tableInstance}\n />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll tableInstance={tableInstance} />\n ) : null,\n header: props.localization?.select,\n id: 'mrt-select',\n maxWidth: 40,\n width: 40,\n }),\n props.enableRowNumbers &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n maxWidth: 40,\n width: 40,\n minWidth: 40,\n }),\n ].filter(Boolean),\n [\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanded,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n table,\n ],\n );\n\n const columns = useMemo(\n () =>\n table.createColumns([\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column, currentFilterTypes)\n : createDataColumn(table, column, currentFilterTypes),\n ),\n ] as ColumnDef<D>[]),\n [table, props.columns, currentFilterTypes],\n );\n\n const data: D['Row'][] = useMemo(\n () =>\n props.isLoading && !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.isLoading],\n );\n\n //@ts-ignore\n const tableInstance: MRT_TableInstance<{}> = {\n ...useTableInstance(table, {\n //@ts-ignore\n filterTypes: defaultFilterFNs,\n getColumnFilteredRowModel: getColumnFilteredRowModelSync(),\n getCoreRowModel: getCoreRowModelSync(),\n getExpandedRowModel: getExpandedRowModel(),\n getGlobalFilteredRowModel: getGlobalFilteredRowModelSync(),\n getGroupedRowModel: getGroupedRowModelSync(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModelSync(),\n getSubRows: (originalRow: D) => originalRow.subRows,\n globalFilterType: currentGlobalFilterType,\n idPrefix,\n onPaginationChange: (updater: any) =>\n setPagination((old) => functionalUpdate(updater, old)),\n ...props,\n columns,\n data,\n state: {\n currentEditingCell,\n currentEditingRow,\n currentFilterTypes,\n currentGlobalFilterType,\n isDensePadding,\n isFullScreen,\n //@ts-ignore\n pagination,\n showFilters,\n showGlobalFilter,\n ...props.state,\n },\n }),\n //@ts-ignore\n setCurrentEditingCell,\n //@ts-ignore\n setCurrentEditingRow,\n setCurrentFilterTypes,\n setCurrentGlobalFilterType,\n setIsDensePadding,\n setIsFullScreen,\n setShowFilters,\n setShowGlobalFilter,\n };\n\n return (\n <>\n <Dialog\n TransitionComponent={Grow}\n PaperComponent={Box}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => tableInstance.setIsFullScreen(false)}\n open={tableInstance.getState().isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper tableInstance={tableInstance} />\n </Dialog>\n {!tableInstance.getState().isFullScreen && (\n <MRT_TablePaper tableInstance={tableInstance} />\n )}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n FC,\n FocusEvent,\n MouseEvent,\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 DefaultGenerics,\n FilterType,\n Header,\n HeaderGroup,\n Options,\n Overwrite,\n PaginationState,\n Row,\n TableInstance,\n TableState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_FILTER_TYPE } from './enums';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\n\nexport type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<\n Omit<\n Options<D>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<D>[];\n data: D[];\n initialState?: Partial<MRT_TableState<D>>;\n state?: Partial<MRT_TableState<D>>;\n expandRowsFn?: (dataRow: D) => D[];\n};\n\nexport interface MRT_RowModel<D extends Record<string, any> = {}> {\n flatRows: MRT_Row<D>[];\n rows: MRT_Row<D>[];\n rowsById: { [key: string]: MRT_Row<D> };\n}\n\nexport type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<\n TableInstance<\n Overwrite<\n Partial<DefaultGenerics>,\n {\n Row: D;\n }\n >\n >,\n | 'getAllColumns'\n | 'getAllLeafColumns'\n | 'getExpandedRowModel'\n | 'getPaginationRowModel'\n | 'getPrePaginationRowModel'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<D>[];\n getAllLeafColumns: () => MRT_Column<D>[];\n getExpandedRowModel: () => MRT_RowModel<D>;\n getPaginationRowModel: () => MRT_RowModel<D>;\n getPrePaginationRowModel: () => MRT_RowModel<D>;\n getRowModel: () => MRT_RowModel<D>;\n getSelectedRowModel: () => MRT_RowModel<D>;\n getState: () => MRT_TableState<D>;\n options: MaterialReactTableProps<D> & {\n icons: MRT_Icons;\n idPrefix: string;\n filterTypes: { [key in MRT_FILTER_TYPE]: any };\n localization: MRT_Localization;\n };\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell<D> | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row<D> | null>>;\n setCurrentFilterTypes: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterType;\n }>\n >;\n setCurrentGlobalFilterType: Dispatch<SetStateAction<MRT_FILTER_TYPE>>;\n setIsDensePadding: Dispatch<SetStateAction<boolean>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<D extends Record<string, any> = {}> = Omit<\n TableState,\n 'pagination'\n> & {\n currentEditingCell: MRT_Cell<D> | null;\n currentEditingRow: MRT_Row<D> | null;\n currentFilterTypes: Record<string, string | Function>;\n currentGlobalFilterType: Record<string, string | Function>;\n isDensePadding: boolean;\n isFullScreen: boolean;\n showFilters: boolean;\n showGlobalFilter: boolean;\n pagination: Partial<PaginationState>;\n};\n\nexport type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<\n ColumnDef<D>,\n 'header' | 'footer' | 'columns'\n> & {\n Edit?: ({\n cell,\n tableInstance,\n }: // onChange,\n {\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n // onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n }) => ReactNode;\n Filter?: ({\n // onChange,\n header,\n tableInstance,\n }: {\n // onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n header: MRT_Header<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Footer?: ({\n footer,\n tableInstance,\n }: {\n footer: MRT_Header<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Header?: ({\n header,\n tableInstance,\n }: {\n header: MRT_Header<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Cell?: ({\n cell,\n tableInstance,\n }: {\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n id: keyof D | string;\n columns?: MRT_ColumnDef<D>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterTypes?: (MRT_FILTER_TYPE | string)[];\n filter?: MRT_FilterType | string | FilterType<D>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n footer?: string;\n header: string;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChange?: ({\n column,\n event,\n filterValue,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n }) => void;\n};\n\nexport type MRT_Column<D extends Record<string, any> = {}> = Omit<\n Column<D>,\n 'header' | 'footer' | 'columns'\n> &\n MRT_ColumnDef<D> & {\n columns?: MRT_Column<D>[];\n };\n\nexport type MRT_Header<D extends Record<string, any> = {}> = Omit<\n Header<D>,\n 'column'\n> & {\n column: MRT_Column<D>;\n};\n\nexport type MRT_HeaderGroup<D extends Record<string, any> = {}> = Omit<\n HeaderGroup<D>,\n 'headers'\n> & {\n headers: MRT_Header<D>[];\n};\n\nexport type MRT_Row<D extends Record<string, any> = {}> = Omit<\n Row<D>,\n | 'getVisibleCells'\n | 'getAllCells'\n | 'subRows'\n | 'original'\n | 'getLeftVisibleCells'\n | 'getRightVisibleCells'\n | 'getCenterVisibleCells'\n> & {\n getAllCells: () => MRT_Cell<D>[];\n getCenterVisibleCells: () => MRT_Cell<D>[];\n getLeftVisibleCells: () => MRT_Cell<D>[];\n getRightVisibleCells: () => MRT_Cell<D>[];\n getVisibleCells: () => MRT_Cell<D>[];\n subRows?: MRT_Row<D>[];\n original: D;\n};\n\nexport type MRT_Cell<D extends Record<string, any> = {}> = Omit<\n Cell<D>,\n 'column' | 'row'\n> & {\n column: MRT_Column<D>;\n row: MRT_Row<D>;\n};\n\nexport type MRT_FilterType = MRT_FILTER_TYPE | Function;\n\nexport type MaterialReactTableProps<D extends Record<string, any> = {}> =\n MRT_TableOptions<D> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableDensePaddingToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowNumbers?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledGlobalFilterTypes?: (MRT_FILTER_TYPE | string)[];\n filterTypes?: { [key in MRT_FILTER_TYPE]: any };\n icons?: Partial<MRT_Icons>;\n idPrefix?: string;\n isLoading?: boolean;\n isReloading?: boolean;\n localization?: Partial<MRT_Localization>;\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TextFieldProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n tableInstance,\n isSelectAll,\n row,\n }: {\n tableInstance: MRT_TableInstance;\n isSelectAll: boolean;\n row?: MRT_Row<D>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n tableInstance,\n row,\n }: {\n tableInstance: MRT_TableInstance;\n row: MRT_Row<D>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n tableInstance,\n row,\n }: {\n tableInstance: MRT_TableInstance;\n row: MRT_Row<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n tableInstance,\n footerGroup,\n }: {\n tableInstance: MRT_TableInstance;\n footerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n tableInstance,\n headerGroup,\n }: {\n tableInstance: MRT_TableInstance;\n headerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTablePaperProps?:\n | PaperProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => PaperProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => Partial<TablePaginationProps>);\n muiTableProps?:\n | TableProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => ToolbarProps);\n onCellClick?: ({\n cell,\n event,\n tableInstance,\n }: {\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n event: MouseEvent<HTMLTableCellElement>;\n }) => void;\n onCellEditBlur?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChange?: ({\n column,\n event,\n filterValue,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n }) => void;\n onDetailPanelClick?: ({\n event,\n row,\n tableInstance,\n }: {\n event: MouseEvent<HTMLTableCellElement>;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onGlobalSearchFilterChange?: ({\n event,\n tableInstance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onRowClick?: ({\n event,\n row,\n tableInstance,\n }: {\n event: MouseEvent<HTMLTableRowElement>;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onEditSubmit?: ({\n row,\n tableInstance,\n }: {\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => Promise<void> | void;\n onRowExpandChange?: ({\n event,\n row,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onSelectAllChange?: ({\n event,\n selectedRows,\n tableInstance,\n }: {\n event: ChangeEvent;\n selectedRows: MRT_Row<D>[];\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onSelectChange?: ({\n event,\n row,\n selectedRows,\n tableInstance,\n }: {\n event: ChangeEvent;\n row: MRT_Row<D>;\n selectedRows: MRT_Row<D>[];\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleColumnVisibility?: ({\n column,\n columnVisibility,\n tableInstance,\n }: {\n column: MRT_Column<D>;\n columnVisibility: VisibilityState;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleDensePadding?: ({\n event,\n isDensePadding,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n isDensePadding: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleFullScreen?: ({\n event,\n isFullScreen,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n isFullScreen: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleShowFilters?: ({\n event,\n showFilters,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n showFilters: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleShowGlobalFilter?: ({\n event,\n showGlobalFilter,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n showGlobalFilter: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n positionActionsColumn?: 'first' | 'last';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarActions?: 'bottom' | 'top';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n tableInstance,\n }: {\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n tableInstance,\n }: {\n closeMenu: () => void;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n tableInstance,\n }: {\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarCustomActions?: ({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n tableInstance,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n tableInstance: MRT_TableInstance<D>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n }) => ReactNode;\n };\n\nexport default <D extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilters = true,\n enableColumnResizing = false,\n enableDensePaddingToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableHiding = true,\n enableMultiRowSelection = true,\n enablePagination = true,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = true,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionPagination = 'bottom',\n positionToolbarActions = 'top',\n positionToolbarAlertBanner = 'top',\n ...rest\n}: MaterialReactTableProps<D>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnResizing={enableColumnResizing}\n enableColumnFilters={enableColumnFilters}\n enableDensePaddingToggle={enableDensePaddingToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enablePagination={enablePagination}\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 positionPagination={positionPagination}\n positionToolbarActions={positionToolbarActions}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n {...rest}\n />\n);\n"],"names":["MRT_FILTER_TYPE","MRT_DefaultLocalization_EN","actions","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBestMatch","filterBestMatchFirst","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","groupByColumn","groupedBy","hideAll","hideColumn","pinToLeft","pinToRight","resetColumnSize","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensePadding","toggleFullScreen","toggleSelectAll","toggleSelectRow","ungroupByColumn","unpin","unsorted","MRT_Default_Icons","ArrowRightIcon","CancelIcon","CheckBoxIcon","ClearAllIcon","CloseIcon","DensityMediumIcon","DensitySmallIcon","DoubleArrowDownIcon","DynamicFeedIcon","EditIcon","ExpandLessIcon","ExpandMoreIcon","FilterAltIcon","FilterAltOff","FilterListIcon","FilterListOffIcon","FullscreenExitIcon","FullscreenIcon","MoreHorizIcon","MoreVertIcon","PushPinIcon","RestartAltIcon","SaveIcon","SearchIcon","SearchOffIcon","SortIcon","ViewColumnIcon","VisibilityOffIcon","MRT_ExpandAllButton","tableInstance","getIsAllRowsExpanded","getIsSomeRowsExpanded","options","icons","isLoading","localization","toggleAllRowsExpanded","isDensePadding","getState","React","IconButton","disabled","title","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","onRowExpandChange","renderDetailPanel","getCanExpand","event","toggleExpanded","getIsExpanded","bestMatchFirst","rows","columnIds","filterValue","matchSorter","toString","trim","keys","Array","isArray","map","c","autoRemove","val","bestMatch","sorter","rankedItems","contains","id","filter","values","toLowerCase","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","empty","_filterValue","notEmpty","defaultFilterFNs","commonMenuItemStyles","py","my","alignItems","MRT_FilterTypeMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterTypes","setCurrentFilterTypes","setCurrentGlobalFilterType","currentFilterTypes","currentGlobalFilterType","filterTypes","useMemo","type","BEST_MATCH_FIRST","label","divider","fn","BEST_MATCH","CONTAINS","STARTS_WITH","ENDS_WITH","EQUALS","NOT_EQUALS","GREATER_THAN","LESS_THAN","EMPTY","NOT_EMPTY","filterType","column","enabledColumnFilterTypes","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","index","MenuItem","key","value","prev","setColumnFilterValue","selected","MRT_ShowHideColumnsMenuItems","isSubMenu","onToggleColumnVisibility","columnVisibility","switchChecked","columnDefType","getIsVisible","getLeafColumns","some","col","pl","depth","FormControlLabel","componentsProps","typography","marginBottom","checked","control","Switch","enableHiding","onChange","columns","forEach","childColumn","toggleVisibility","handleToggleColumnHidden","_column$columns2","i","MRT_ShowHideColumnsMenu","getAllColumns","getIsAllColumnsVisible","getIsSomeColumnsVisible","getIsSomeColumnsPinned","toggleAllColumnsVisible","getAllLeafColumns","allDisplayColumns","allDataColumns","dataColumns","getIsPinned","columnPinning","Box","display","justifyContent","p","pt","Button","Divider","commonListItemStyles","MRT_ColumnActionMenu","setColumnOrder","enableColumnFilters","enableColumnResizing","enableGrouping","enablePinning","enableSorting","idPrefix","setShowFilters","columnSizing","useState","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handlePinColumn","pinDirection","pin","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","getCanSort","getIsSorted","resetSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanColumnFilter","getColumnFilterValue","_localization$filterB","filterSelectOptions","onMouseEnter","size","getCanGroup","toggleGrouping","old","getIsGrouped","_localization","getCanPin","getCanResize","resetSize","_localization$hideCol","Object","visible","length","_localization$showAll","MRT_RowActionMenu","handleEdit","enableEditing","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditSubmit","setCurrentEditingRow","currentEditingRow","gap","Tooltip","arrow","original","color","commonIconButtonStyles","ml","opacity","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","placement","enterDelay","enterNextDelay","preventDefault","MRT_SelectCheckbox","selectAll","getRowModel","getSelectedRowModel","getToggleAllRowsSelectedProps","muiSelectCheckboxProps","onSelectChange","onSelectAllChange","mTableBodyRowSelectCheckboxProps","Function","isSelectAll","checkboxProps","getToggleSelectedProps","Checkbox","inputProps","selectedRows","target","flatRows","selectedRow","undefined","MRT_SearchTextField","setGlobalFilter","muiSearchTextFieldProps","onGlobalSearchFilterChange","globalFilter","showGlobalFilter","searchValue","setSearchValue","handleChange","useCallback","debounce","textFieldProps","Collapse","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","justifySelf","MRT_FullScreenToggleButton","rest","onToggleFullScreen","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","onToggleDensePadding","setIsDensePadding","MRT_ToggleFiltersButton","onToggleShowFilters","showFilters","MRT_ToggleGlobalFilterButton","onToggleShowGlobalFilter","setShowGlobalFilter","MRT_ToolbarInternalButtons","enableDensePaddingToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","renderToolbarInternalActions","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","pagination","pageSize","pageIndex","tablePaginationProps","showFirstLastPageButtons","TablePagination","SelectProps","m","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","zIndex","MRT_ToolbarAlertBanner","toggleColumnGrouping","muiTableToolbarAlertBannerProps","positionToolbarActions","positionToolbarAlertBanner","renderToolbarCustomActions","grouping","isMobile","useMediaQuery","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","columnId","Fragment","Chip","find","_tableInstance$getAll","onDelete","displayAbsolute","timeout","Alert","icon","borderRadius","fontSize","left","right","minHeight","top","MRT_LinearProgressBar","muiLinearProgressProps","isReloading","linearProgressProps","unmountOnExit","LinearProgress","commonToolbarStyles","theme","backgroundColor","palette","background","backgroundImage","alpha","common","white","MRT_ToolbarTop","enablePagination","enableToolbarInternalActions","muiTableToolbarTopProps","positionPagination","toolbarProps","Toolbar","MRT_ToolbarBottom","muiTableToolbarBottomProps","bottom","boxShadow","black","MRT_FilterTextField","setFilterValue","Filter","filterId","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","fullWidth","textOverflow","helperText","htmlFor","name","FormHelperTextProps","lineHeight","margin","e","disableHoverListener","minWidth","mt","mr","_column$filterSelectO","option","text","MRT_ToggleColumnActionMenuButton","muiTableHeadCellColumnActionsButtonProps","iconButtonProps","MRT_TableHeadCell","enableColumnActions","muiTableHeadCellProps","mTableHeadCellProps","mcTableHeadCellProps","tableCellProps","getHeaderProps","sortTooltip","_getState2","_getState2$currentFil","filterTooltip","headerElement","Header","TableCell","align","fontWeight","maxWidth","getWidth","pb","overflow","verticalAlign","getIsResizing","isPlaceholder","cursor","flexWrap","whiteSpace","TableSortLabel","active","direction","disableRipple","flexItem","onDoubleClick","borderRightWidth","touchAction","userSelect","info","main","getResizerProps","props","columnSizingInfo","deltaOffset","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","mTableHeadRowProps","tableRowProps","getHeaderGroupProps","TableRow","headers","MRT_TableHead","pinned","getCenterHeaderGroups","getHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","muiTableHeadProps","tableHeadProps","getHeaderGroupsMap","center","none","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","Edit","onBlur","MRT_CopyButton","children","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textAlign","textTransform","MRT_TableBodyCell","editingMode","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","onCellClick","currentEditingCell","mTableCellBodyProps","mcTableCellBodyProps","getCellProps","skeletonWidth","Math","random","isEditable","isEditing","_event","textField","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","renderAggregatedCell","_cell$column","renderCell","subRows","_row$subRows","_cell$column2","_row$subRows2","MRT_TableDetailPanel","getVisibleFlatColumns","muiTableBodyRowProps","muiTableDetailPanelProps","onDetailPanelClick","colSpan","borderBottom","MRT_TableBodyRow","onRowClick","getCenterVisibleCells","getIsSelected","getLeftVisibleCells","getRightVisibleCells","getRowProps","getVisibleCells","mTableBodyRowProps","getVisibleCellsMap","hover","MRT_TableBody","getTableBodyProps","muiTableBodyProps","getPaginationRowModel","mTableBodyProps","tableBodyProps","TableBody","MRT_TableFooterCell","footer","muiTableFooterCellProps","mTableFooterCellProps","mcTableFooterCellProps","getFooterProps","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","h","columnDef","mTableFooterRowProps","getFooterGroupProps","MRT_TableFooter","getCenterFooterGroups","getFooterGroups","getLeftFooterGroups","getRightFooterGroups","muiTableFooterProps","tableFooterProps","getFooterGroupsMap","TableFooter","MRT_Table","getTableProps","muiTableProps","enableTableHead","enableTableFooter","enableStickyHeader","mTableProps","tableProps","Table","stickyHeader","commonBoxStyles","overflowX","MRT_TableContainer","getCenterTableWidth","getLeftTableWidth","getRightTableWidth","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","useEffect","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","gridTemplateColumns","_columnPinning$left","_columnPinning$right","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","window","body","tablePaperProps","Paper","elevation","padding","getAllLeafColumnDefs","lowestLevelColumns","currentCols","_currentCols","nextCols","flat","every","createDataColumn","table","filterFn","createDisplayColumn","MRT_TableRoot","setIdPrefix","substring","initialState","_props$initialState","_props$initialState2","_props$initialState3","_props$initialState4","_props$initialState5","_props$initialState6","_props$initialState7","_props$initialState7$","_props$initialState8","_props$initialState8$","pageCount","_props$initialState9","_props$initialState9$","setPagination","assign","_props$initialState10","columnFilters","_props$initialState11","cf","_c$filterSelectOption","globalFilterType","createTable","displayColumns","enableRowActions","_props$localization","enableExpanded","enableExpandAll","_props$localization2","enableRowSelection","enableSelectAll","_props$localization3","enableRowNumbers","_props$localization4","_props$localization5","Boolean","createColumns","createGroup","_column$columns","data","fill","useTableInstance","getColumnFilteredRowModel","getColumnFilteredRowModelSync","getCoreRowModel","getCoreRowModelSync","getExpandedRowModel","getGlobalFilteredRowModel","getGlobalFilteredRowModelSync","getGroupedRowModel","getGroupedRowModelSync","getSortedRowModel","getSortedRowModelSync","getSubRows","originalRow","onPaginationChange","updater","functionalUpdate","state","Dialog","TransitionComponent","Grow","PaperComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","columnResizeMode","enableMultiRowSelection","positionActionsColumn"],"mappings":"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"}
1
+ {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/enums.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/filtersFNs.ts","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../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/inputs/MRT_SearchTextField.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/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/buttons/MRT_ToggleColumnActionMenuButton.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/utils.ts","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: 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 filterBestMatch: string;\n filterBestMatchFirst: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: 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 toggleDensePadding: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: 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 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 filterBestMatch: 'Best Match',\n filterBestMatchFirst: 'Best Match First',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\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 groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\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 toggleDensePadding: 'Toggle dense padding',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","export enum MRT_FILTER_OPTION {\n BEST_MATCH = 'bestMatch',\n BEST_MATCH_FIRST = 'bestMatchFirst',\n CONTAINS = 'contains',\n EMPTY = 'empty',\n ENDS_WITH = 'endsWith',\n EQUALS = 'equals',\n GREATER_THAN = 'greaterThan',\n LESS_THAN = 'lessThan',\n NOT_EMPTY = 'notEmpty',\n NOT_EQUALS = 'notEquals',\n STARTS_WITH = 'startsWith',\n}\n","import ArrowRightIcon from '@mui/icons-material/ArrowRight';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport ClearAllIcon from '@mui/icons-material/ClearAll';\nimport CloseIcon from '@mui/icons-material/Close';\nimport DensityMediumIcon from '@mui/icons-material/DensityMedium';\nimport DensitySmallIcon from '@mui/icons-material/DensitySmall';\nimport DoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';\nimport DynamicFeedIcon from '@mui/icons-material/DynamicFeed';\nimport EditIcon from '@mui/icons-material/Edit';\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport FilterAltIcon from '@mui/icons-material/FilterAlt';\nimport FilterAltOff from '@mui/icons-material/FilterAltOff';\nimport FilterListIcon from '@mui/icons-material/FilterList';\nimport FilterListOffIcon from '@mui/icons-material/FilterListOff';\nimport FullscreenExitIcon from '@mui/icons-material/FullscreenExit';\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\nimport MoreHorizIcon from '@mui/icons-material/MoreHoriz';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport PushPinIcon from '@mui/icons-material/PushPin';\nimport RestartAltIcon from '@mui/icons-material/RestartAlt';\nimport SaveIcon from '@mui/icons-material/Save';\nimport SearchIcon from '@mui/icons-material/Search';\nimport SearchOffIcon from '@mui/icons-material/SearchOff';\nimport SortIcon from '@mui/icons-material/Sort';\nimport ViewColumnIcon from '@mui/icons-material/ViewColumn';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n DoubleArrowDownIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOff: 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,\n CancelIcon,\n CheckBoxIcon,\n ClearAllIcon,\n CloseIcon,\n DensityMediumIcon,\n DensitySmallIcon,\n DoubleArrowDownIcon,\n DynamicFeedIcon,\n EditIcon,\n ExpandLessIcon,\n ExpandMoreIcon,\n FilterAltIcon,\n FilterAltOff,\n FilterListIcon,\n FilterListOffIcon,\n FullscreenExitIcon,\n FullscreenIcon,\n MoreHorizIcon,\n MoreVertIcon,\n PushPinIcon,\n RestartAltIcon,\n SaveIcon,\n SearchIcon,\n SearchOffIcon,\n SortIcon,\n ViewColumnIcon,\n VisibilityOffIcon,\n};\n","import React, { FC } from 'react';\nimport { IconButton } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ tableInstance }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getState,\n options: {\n icons: { DoubleArrowDownIcon },\n isLoading,\n localization,\n },\n toggleAllRowsExpanded,\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n return (\n <IconButton\n aria-label={localization.expandAll}\n disabled={isLoading}\n title={localization.expandAll}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\n }}\n >\n <DoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, tableInstance }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n onRowExpandChange,\n renderDetailPanel,\n },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const handleToggleExpand = (event: MouseEvent<HTMLButtonElement>) => {\n row.toggleExpanded();\n onRowExpandChange?.({ event, row, tableInstance });\n };\n\n return (\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n title={localization.expand}\n onClick={handleToggleExpand}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\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 );\n};\n","import { matchSorter } from 'match-sorter';\nimport { MRT_Row } from '.';\n\nexport const bestMatchFirst = (\n rows: MRT_Row[],\n columnIds: string[] | string,\n filterValue: string | number,\n) =>\n matchSorter(rows, filterValue.toString().trim(), {\n keys: Array.isArray(columnIds)\n ? columnIds.map((c) => `values.${c}`)\n : [`values.${columnIds}`],\n });\n\nbestMatchFirst.autoRemove = (val: any) => !val;\n\nexport const bestMatch = (\n rows: MRT_Row[],\n columnIds: string[] | string,\n filterValue: string | number,\n) =>\n matchSorter(rows, filterValue.toString().trim(), {\n keys: Array.isArray(columnIds)\n ? columnIds.map((c) => `values.${c}`)\n : [`values.${columnIds}`],\n sorter: (rankedItems) => rankedItems,\n });\n\nbestMatch.autoRemove = (val: any) => !val;\n\nexport const contains = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n row.values[id]\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim()),\n );\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n row.values[id]\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim()),\n );\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n row.values[id]\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim()),\n );\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter(\n (row) =>\n row.values[id].toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim(),\n );\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter(\n (row) =>\n row.values[id].toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim(),\n );\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n !isNaN(+filterValue) && !isNaN(+row.values[id])\n ? +row.values[id] > +filterValue\n : row.values[id].toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim(),\n );\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n rows: MRT_Row[],\n id: string,\n filterValue: string | number,\n) =>\n rows.filter((row) =>\n !isNaN(+filterValue) && !isNaN(+row.values[id])\n ? +row.values[id] < +filterValue\n : row.values[id].toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim(),\n );\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const empty = (\n rows: MRT_Row[],\n id: string,\n _filterValue: string | number,\n) => rows.filter((row) => !row.values[id].toString().toLowerCase().trim());\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n rows: MRT_Row[],\n id: string,\n _filterValue: string | number,\n) => rows.filter((row) => !!row.values[id].toString().toLowerCase().trim());\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const defaultFilterFNs = {\n bestMatch,\n bestMatchFirst,\n contains,\n empty,\n endsWith,\n equals,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterFn, MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FILTER_OPTION } from '../enums';\nimport {\n bestMatch,\n bestMatchFirst,\n contains,\n empty,\n endsWith,\n equals,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n} from '../filtersFNs';\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getState,\n options: { enabledGlobalFilterOptions, localization },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = tableInstance;\n\n const { isDensePadding, currentFilterFns, currentGlobalFilterFn } =\n getState();\n\n const filterOptions: {\n type: MRT_FILTER_OPTION;\n label: string;\n divider: boolean;\n fn: Function;\n }[] = useMemo(\n () =>\n [\n {\n type: MRT_FILTER_OPTION.BEST_MATCH_FIRST,\n label: localization.filterBestMatchFirst,\n divider: false,\n fn: bestMatchFirst,\n },\n {\n type: MRT_FILTER_OPTION.BEST_MATCH,\n label: localization.filterBestMatch,\n divider: !!header,\n fn: bestMatch,\n },\n {\n type: MRT_FILTER_OPTION.CONTAINS,\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n type: MRT_FILTER_OPTION.STARTS_WITH,\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n type: MRT_FILTER_OPTION.ENDS_WITH,\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n type: MRT_FILTER_OPTION.EQUALS,\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n type: MRT_FILTER_OPTION.NOT_EQUALS,\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n type: MRT_FILTER_OPTION.GREATER_THAN,\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n type: MRT_FILTER_OPTION.LESS_THAN,\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n type: MRT_FILTER_OPTION.EMPTY,\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n type: MRT_FILTER_OPTION.NOT_EMPTY,\n label: localization.filterNotEmpty,\n divider: false,\n fn: notEmpty,\n },\n ].filter((filterType) =>\n header\n ? !header.column.enabledColumnFilterOptions ||\n header.column.enabledColumnFilterOptions.includes(filterType.type)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.type)) &&\n [\n MRT_FILTER_OPTION.BEST_MATCH_FIRST,\n MRT_FILTER_OPTION.BEST_MATCH,\n ].includes(filterType.type),\n ),\n [],\n );\n\n const handleSelectFilterType = (value: MRT_FILTER_OPTION) => {\n if (header) {\n setCurrentFilterFns((prev: { [key: string]: MRT_FilterFn }) => ({\n ...prev,\n [header.id]: value,\n }));\n if (\n [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(value)\n ) {\n header.column.setColumnFilterValue(' ');\n }\n } else {\n setCurrentGlobalFilterFn(value);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterType = !!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: isDensePadding,\n }}\n >\n {filterOptions.map(({ type, label, divider, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(type)}\n selected={type === filterType || fn === filterType}\n sx={commonMenuItemStyles}\n value={type}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({\n column,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = tableInstance;\n\n const { columnOrder } = getState();\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n if (column.columnDefType === 'display') {\n tableInstance.setColumnOrder([column.id, ...columnOrder]);\n }\n };\n\n const pinned = column.getIsPinned();\n\n return (\n <Box sx={{ mr: '8px' }}>\n <Tooltip\n arrow\n title={pinned === 'left' ? localization.unpin : localization.pinToLeft}\n >\n <IconButton\n onClick={() => handlePinColumn(pinned === 'left' ? false : 'left')}\n size=\"small\"\n >\n <PushPinIcon\n style={{\n transform: pinned === 'left' ? 'rotate(0)' : 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip\n arrow\n title={\n pinned === 'right' ? localization.unpin : localization.pinToRight\n }\n >\n <IconButton\n onClick={() => handlePinColumn(pinned === 'right' ? false : 'right')}\n size=\"small\"\n >\n <PushPinIcon\n style={{\n transform: pinned === 'right' ? 'rotate(0)' : 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { FormControlLabel, MenuItem, Switch } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\n\ninterface Props {\n column: MRT_Column;\n isSubMenu?: boolean;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n column,\n isSubMenu,\n tableInstance,\n}) => {\n const {\n getState,\n options: { onToggleColumnVisibility, enablePinning },\n } = tableInstance;\n\n const { columnVisibility } = getState();\n\n const switchChecked =\n (column.columnDefType !== 'group' && column.getIsVisible()) ||\n (column.columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (column.columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n onToggleColumnVisibility?.({\n column,\n columnVisibility,\n tableInstance,\n });\n };\n\n return (\n <>\n <MenuItem\n sx={{\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n }}\n >\n {!isSubMenu && enablePinning && (\n <MRT_ColumnPinningButtons\n column={column}\n tableInstance={tableInstance}\n />\n )}\n <FormControlLabel\n componentsProps={{ typography: { sx: { marginBottom: 0 } } }}\n checked={switchChecked}\n control={<Switch />}\n disabled={\n (isSubMenu && switchChecked) || column.enableHiding === false\n }\n label={column.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n key={`${i}-${c.id}`}\n column={c}\n isSubMenu={isSubMenu}\n tableInstance={tableInstance}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getAllColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsVisible,\n getIsSomeColumnsPinned,\n getState,\n toggleAllColumnsVisible,\n getAllLeafColumns,\n options: { localization, enablePinning },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allDisplayColumns = useMemo(\n () => getAllColumns().filter((col) => col.columnDefType === 'display'),\n [getAllColumns()],\n );\n\n const allDataColumns: (MRT_Column | null)[] = useMemo(() => {\n const dataColumns = getAllColumns().filter(\n (col) => col.columnDefType !== 'display',\n );\n return getIsSomeColumnsPinned()\n ? [\n ...dataColumns.filter((c) => c.getIsPinned() === 'left'),\n null,\n ...dataColumns.filter((c) => c.getIsPinned() === false),\n null,\n ...dataColumns.filter((c) => c.getIsPinned() === 'right'),\n ]\n : dataColumns;\n }, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: isDensePadding,\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 && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => tableInstance.setColumnPinning({})}\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 {allDisplayColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n column={column}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n tableInstance={tableInstance}\n />\n ))}\n <Divider />\n {allDataColumns.map((column, index) =>\n column ? (\n <MRT_ShowHideColumnsMenuItems\n column={column}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n tableInstance={tableInstance}\n />\n ) : (\n <Divider key={`${index}-divider`} />\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n idPrefix,\n localization,\n },\n setShowFilters,\n } = tableInstance;\n\n const { column } = header;\n\n const { columnSizing, columnVisibility, isDensePadding } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.resetSorting();\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 };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setColumnFilterValue('');\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-${idPrefix}-${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 return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: isDensePadding,\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(column.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(column.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanColumnFilter() && [\n <MenuItem\n disabled={!column.getColumnFilterValue()}\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(column.header),\n )}\n </Box>\n {!column.filterSelectOptions && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n tableInstance={tableInstance}\n />,\n ]}\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(column.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={0}\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={0}\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={column.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(column.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(column.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 tableInstance={tableInstance}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: isDensePadding,\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 tableInstance,\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 '..';\nimport { RowValues } from '@tanstack/react-table';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, tableInstance }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditSubmit,\n },\n setCurrentEditingRow,\n } = tableInstance;\n\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row.values = (row.original as RowValues) ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditSubmit?.({ row: currentEditingRow ?? row, tableInstance });\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({\n row,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = tableInstance;\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, tableInstance })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} tableInstance={tableInstance} />\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 tableInstance={tableInstance}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({\n row,\n selectAll,\n tableInstance,\n}) => {\n const {\n getRowModel,\n getSelectedRowModel,\n getState,\n getToggleAllRowsSelectedProps,\n options: {\n isLoading,\n localization,\n muiSelectCheckboxProps,\n onSelectChange,\n onSelectAllChange,\n },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n getToggleAllRowsSelectedProps?.()?.onChange?.(event as any);\n onSelectAllChange?.({\n event,\n selectedRows: event.target.checked ? getRowModel().flatRows : [],\n tableInstance,\n });\n } else if (row) {\n row?.getToggleSelectedProps()?.onChange?.(event as any);\n onSelectChange?.({\n event,\n row,\n selectedRows: event.target.checked\n ? [...getSelectedRowModel().flatRows, row]\n : getSelectedRowModel().flatRows.filter(\n (selectedRow) => selectedRow.id !== row.id,\n ),\n tableInstance,\n });\n }\n };\n\n const mTableBodyRowSelectCheckboxProps =\n muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ isSelectAll: !!selectAll, row, tableInstance })\n : muiSelectCheckboxProps;\n\n const rtSelectCheckboxProps = selectAll\n ? getToggleAllRowsSelectedProps()\n : row?.getToggleSelectedProps();\n\n const checkboxProps = {\n ...rtSelectCheckboxProps,\n ...mTableBodyRowSelectCheckboxProps,\n };\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 disabled={isLoading}\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n size={isDensePadding ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\n }}\n onChange={handleSelectChange}\n title={undefined}\n />\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_SearchTextField: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n icons: { SearchIcon, CloseIcon },\n idPrefix,\n localization,\n muiSearchTextFieldProps,\n onGlobalSearchFilterChange,\n },\n } = tableInstance;\n\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n onGlobalSearchFilterChange?.({ event, tableInstance });\n }, 200),\n [],\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({ tableInstance })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${idPrefix}-search-text-field`}\n placeholder={localization.search}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChange(event);\n }}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <span>\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 </span>\n </Tooltip>\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={localization.clearSearch}\n disabled={searchValue?.length === 0}\n onClick={handleClear}\n size=\"small\"\n title={localization.clearSearch}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{ justifySelf: 'end', ...textFieldProps?.sx }}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n tableInstance={tableInstance}\n />\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n onToggleFullScreen,\n },\n setIsFullScreen,\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleFullScreen?.({\n event,\n isFullScreen: !isFullScreen,\n tableInstance,\n });\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = tableInstance;\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 tableInstance={tableInstance}\n />\n </>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { DensityMediumIcon, DensitySmallIcon },\n localization,\n onToggleDensePadding,\n },\n setIsDensePadding,\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const handleToggleDensePadding = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleDensePadding?.({\n event,\n isDensePadding: !isDensePadding,\n tableInstance,\n });\n setIsDensePadding(!isDensePadding);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensePadding}>\n <IconButton\n aria-label={localization.toggleDensePadding}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {isDensePadding ? <DensitySmallIcon /> : <DensityMediumIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n onToggleShowFilters,\n },\n setShowFilters,\n } = tableInstance;\n\n const { showFilters } = getState();\n\n const handleToggleShowFilters = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleShowFilters?.({\n event,\n showFilters: !showFilters,\n tableInstance,\n });\n setShowFilters(!showFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({\n tableInstance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n idPrefix,\n localization,\n muiSearchTextFieldProps,\n onToggleShowGlobalFilter,\n },\n setShowGlobalFilter,\n } = tableInstance;\n\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ tableInstance })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = (event: MouseEvent<HTMLButtonElement>) => {\n onToggleShowGlobalFilter?.({\n event,\n showGlobalFilter: !showGlobalFilter,\n tableInstance,\n });\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${idPrefix}-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, { 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 '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ tableInstance }) => {\n const {\n options: {\n enableColumnFilters,\n enableDensePaddingToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n renderToolbarInternalActions,\n },\n } = tableInstance;\n\n if (renderToolbarInternalActions) {\n return (\n <>\n {renderToolbarInternalActions({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n tableInstance,\n })}\n </>\n );\n }\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton tableInstance={tableInstance} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton tableInstance={tableInstance} />\n )}\n {enableHiding && (\n <MRT_ShowHideColumnsButton tableInstance={tableInstance} />\n )}\n {enableDensePaddingToggle && (\n <MRT_ToggleDensePaddingButton tableInstance={tableInstance} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton tableInstance={tableInstance} />\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ tableInstance }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: { muiTablePaginationProps },\n } = tableInstance;\n\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n } = getState();\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ tableInstance })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n const showFirstLastPageButtons =\n getPrePaginationRowModel().rows.length / pageSize > 2;\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={getPrePaginationRowModel().rows.length}\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 position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, Box, Chip, Collapse, useMediaQuery } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({ tableInstance }) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n toggleColumnGrouping,\n options: {\n localization,\n muiTableToolbarAlertBannerProps,\n positionToolbarActions,\n positionToolbarAlertBanner,\n renderToolbarCustomActions,\n },\n } = tableInstance;\n\n const { grouping } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ tableInstance })\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={\n tableInstance\n .getAllColumns()\n .find((column) => column.id === columnId)?.header\n }\n onDelete={() => toggleColumnGrouping(columnId)}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n const displayAbsolute = !(\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n positionToolbarActions === 'bottom') ||\n (positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions)\n );\n\n return (\n <Collapse\n in={!!selectMessage || !!groupedByMessage}\n timeout={displayAbsolute ? 0 : 200}\n >\n <Alert\n color=\"info\"\n icon={false}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: displayAbsolute ? 'absolute' : 'relative',\n right: 0,\n minHeight: '3.5rem',\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n {...alertProps}\n >\n <Box sx={{ p: '0.5rem 1rem' }}>\n {selectMessage}\n <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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ tableInstance }) => {\n const {\n options: { muiLinearProgressProps, isReloading, isLoading },\n } = tableInstance;\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ tableInstance })\n : muiLinearProgressProps;\n\n return (\n <Collapse in={isReloading || isLoading} unmountOnExit>\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Theme, Toolbar } from '@mui/material';\nimport { MRT_SearchTextField } from '../inputs/MRT_SearchTextField';\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 '..';\n\nexport const commonToolbarStyles = ({ theme }: { theme: 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 display: 'grid',\n p: '0 !important',\n width: '100%',\n zIndex: 1,\n});\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n idPrefix,\n muiTableToolbarTopProps,\n positionPagination,\n positionToolbarActions,\n positionToolbarAlertBanner,\n renderToolbarCustomActions,\n },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ tableInstance })\n : muiTableToolbarTopProps;\n\n return (\n <Toolbar\n id={`mrt-${idPrefix}-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 tableInstance={tableInstance} />\n )}\n <Box\n sx={{\n p: '0.5rem',\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n {renderToolbarCustomActions?.({ tableInstance }) ?? <span />}\n <Box\n sx={{\n display: 'flex',\n gap: '0.5rem',\n position: 'relative',\n zIndex: 3,\n }}\n >\n {enableGlobalFilter && (\n <MRT_SearchTextField tableInstance={tableInstance} />\n )}\n {enableToolbarInternalActions && positionToolbarActions === 'top' && (\n <MRT_ToolbarInternalButtons tableInstance={tableInstance} />\n )}\n </Box>\n </Box>\n <div>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination tableInstance={tableInstance} />\n )}\n </div>\n <MRT_LinearProgressBar tableInstance={tableInstance} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: {\n enableToolbarInternalActions,\n idPrefix,\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarActions,\n positionToolbarAlertBanner,\n },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ tableInstance })\n : muiTableToolbarBottomProps;\n\n return (\n <Toolbar\n id={`mrt-${idPrefix}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n position: isFullScreen ? 'fixed' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar tableInstance={tableInstance} />\n <Box\n sx={{ display: 'flex', justifyContent: 'space-between', width: '100%' }}\n >\n {enableToolbarInternalActions && positionToolbarActions === 'bottom' ? (\n <MRT_ToolbarInternalButtons tableInstance={tableInstance} />\n ) : (\n <span />\n )}\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner tableInstance={tableInstance} />\n )}\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination tableInstance={tableInstance} />\n )}\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 type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_FILTER_OPTION } from '../enums';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({ header, tableInstance }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, CloseIcon },\n idPrefix,\n localization,\n muiTableHeadCellFilterTextFieldProps,\n },\n setCurrentFilterFns,\n } = tableInstance;\n\n const { column } = header;\n\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, tableInstance })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n column.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? column.muiTableHeadCellFilterTextFieldProps({ column, tableInstance })\n : column.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(\n (column.getColumnFilterValue() ?? '') as string,\n );\n\n const handleChange = useCallback(\n debounce(\n (event: ChangeEvent<HTMLInputElement>) =>\n column.setColumnFilterValue(event.target.value ?? undefined),\n 150,\n ),\n [],\n );\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n column.setColumnFilterValue(undefined);\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setColumnFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: MRT_FILTER_OPTION.BEST_MATCH,\n }));\n };\n\n if (column.Filter) {\n return <>{column.Filter?.({ header, tableInstance })}</>;\n }\n\n const filterId = `mrt-${idPrefix}-${header.id}-filter-text-field`;\n const filterFn = currentFilterFns?.[header.id];\n const isSelectFilter = !!column.filterSelectOptions;\n const filterChipLabel =\n !(filterFn instanceof Function) &&\n [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(\n filterFn as MRT_FILTER_OPTION,\n )\n ? //@ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\n ]\n : '';\n const filterPlaceholder = localization.filterByColumn?.replace(\n '{column}',\n String(column.header),\n );\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 <label htmlFor={filterId}>\n {filterFn instanceof Function\n ? localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.name.charAt(0).toUpperCase() +\n filterFn.name.slice(1)\n }`\n ] ?? '',\n ) ?? ''\n : localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.charAt(0).toUpperCase() + filterFn.slice(1)\n }`\n ],\n )}\n </label>\n }\n FormHelperTextProps={{\n sx: { fontSize: '0.6rem', lineHeight: '0.8rem' },\n }}\n label={isSelectFilter && !filterValue ? filterPlaceholder : undefined}\n margin=\"none\"\n placeholder={\n filterPlaceholder\n // filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChange(event);\n }}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: !isSelectFilter && (\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 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 ? '5rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n mt: isSelectFilter && !filterValue ? '-1rem' : undefined,\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 {column?.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 tableInstance={tableInstance}\n />\n </>\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleColumnActionMenuButton: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = tableInstance;\n\n const { column } = header;\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, tableInstance })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n column.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? column.muiTableHeadCellColumnActionsButtonProps({\n column,\n tableInstance,\n })\n : column.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 mr: '2px',\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 tableInstance={tableInstance}\n />\n </>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport {\n TableCell,\n TableSortLabel,\n Divider,\n Collapse,\n Tooltip,\n Box,\n IconButton,\n alpha,\n Theme,\n} from '@mui/material';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_ToggleColumnActionMenuButton } from '../buttons/MRT_ToggleColumnActionMenuButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { ColumnResizerProps } from '@tanstack/react-table';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, tableInstance }) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnFilters,\n enableColumnResizing,\n icons: { FilterAltIcon, FilterAltOff },\n localization,\n muiTableHeadCellProps,\n },\n setShowFilters,\n } = tableInstance;\n\n const { isDensePadding, showFilters } = getState();\n\n const { column } = header;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, tableInstance })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n column.muiTableHeadCellProps instanceof Function\n ? column.muiTableHeadCellProps({ column, tableInstance })\n : column.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...header.getHeaderProps(),\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', column.header)\n : localization.sortedByColumnAsc.replace('{column}', column.header)\n : localization.unsorted;\n\n const filterFn = getState()?.currentFilterFns?.[header.id];\n\n const filterTooltip = !!column.getColumnFilterValue()\n ? localization.filteringByColumn\n .replace('{column}', String(column.header))\n .replace(\n '{filterType}',\n filterFn instanceof Function\n ? ''\n : // @ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\n ],\n )\n .replace('{filterValue}', column.getColumnFilterValue() as string)\n .replace('\" \"', '')\n : localization.showHideFilters;\n\n const headerElement =\n column?.Header?.({\n header,\n tableInstance,\n }) ?? column.header;\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n {...tableCellProps}\n //@ts-ignore\n sx={(theme: 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 height: '100%',\n maxWidth: `min(${column.getWidth()}px, ${column.maxWidth}px)`,\n minWidth: `max(${column.getWidth()}px, ${column.minWidth}px)`,\n p: isDensePadding\n ? column.columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : column.columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem',\n pt:\n column.columnDefType === 'display'\n ? 0\n : isDensePadding\n ? '0.75rem'\n : '1.25rem',\n pb: column.columnDefType === 'display' ? 0 : undefined,\n overflow: 'visible',\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n verticalAlign: 'text-top',\n width: header.getWidth(),\n zIndex: column.getIsResizing() ? 2 : 1,\n //@ts-ignore\n ...tableCellProps?.sx,\n })}\n >\n {header.isPlaceholder ? null : column.columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n column.columnDefType === 'group' ? 'center' : 'space-between',\n width: '100%',\n }}\n >\n <Box\n onClick={() => column.toggleSorting()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && column.columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace: column.header.length < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {column.columnDefType === 'data' && column.getCanSort() && (\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 />\n </Tooltip>\n )}\n {column.columnDefType === 'data' &&\n enableColumnFilters &&\n !!column.getCanColumnFilter() && (\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setShowFilters(!showFilters);\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: !!column.getColumnFilterValue() ? 0.8 : 0,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 0.8,\n },\n }}\n >\n {showFilters && !column.getColumnFilterValue() ? (\n <FilterAltOff />\n ) : (\n <FilterAltIcon />\n )}\n </IconButton>\n </Tooltip>\n )}\n </Box>\n {(enableColumnActions || column.enableColumnActions) &&\n column.enableColumnActions !== false &&\n column.columnDefType !== 'group' && (\n <MRT_ToggleColumnActionMenuButton\n header={header}\n tableInstance={tableInstance}\n />\n )}\n {column.getCanResize() && (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => header.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height:\n showFilters && column.columnDefType === 'data'\n ? '4rem'\n : '2rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 2000,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n {...(header.getResizerProps((props: ColumnResizerProps) => ({\n ...props,\n style: {\n transform: column.getIsResizing()\n ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`\n : '',\n },\n })) as any)}\n />\n )}\n </Box>\n )}\n {column.columnDefType === 'data' && column.getCanColumnFilter() && (\n <Collapse in={showFilters}>\n <MRT_FilterTextField header={header} tableInstance={tableInstance} />\n </Collapse>\n )}\n </TableCell>\n );\n};\n","import React, { CSSProperties, FC } from 'react';\nimport { alpha, 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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, tableInstance }) => {\n const {\n options: { muiTableHeadRowProps },\n } = tableInstance;\n\n const mTableHeadRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, tableInstance })\n : muiTableHeadRowProps;\n\n const tableRowProps = {\n ...headerGroup?.getHeaderGroupProps(),\n ...mTableHeadRowProps,\n };\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) =>\n ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n //@ts-ignore\n ...tableRowProps?.sx,\n } as CSSProperties)\n }\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n tableInstance={tableInstance}\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_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getCenterHeaderGroups,\n getHeaderGroups,\n getLeftHeaderGroups,\n getRightHeaderGroups,\n options: { muiTableHeadProps },\n } = tableInstance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ tableInstance })\n : muiTableHeadProps;\n\n const getHeaderGroupsMap = {\n center: getCenterHeaderGroups,\n left: getLeftHeaderGroups,\n none: getHeaderGroups,\n right: getRightHeaderGroups,\n };\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroupsMap[pinned]().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as MRT_HeaderGroup}\n key={headerGroup.getHeaderGroupProps().key}\n tableInstance={tableInstance}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, tableInstance }) => {\n const {\n getState,\n options: {\n idPrefix,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = tableInstance;\n\n const [value, setValue] = useState(cell.value);\n\n const { column, row } = cell;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n column.onCellEditChange?.({ event, cell, tableInstance });\n onCellEditChange?.({ event, cell, tableInstance });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n row.values[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n column.onCellEditBlur?.({ event, cell, tableInstance });\n onCellEditBlur?.({ event, cell, tableInstance });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, tableInstance })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n column.muiTableBodyCellEditTextFieldProps instanceof Function\n ? column.muiTableBodyCellEditTextFieldProps({ cell, tableInstance })\n : column.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && column.enableEditing !== false && column.Edit) {\n return <>{column.Edit?.({ cell, tableInstance })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${idPrefix}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={column.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({\n cell,\n children,\n tableInstance,\n}) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = tableInstance;\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, tableInstance })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n cell.column.muiTableBodyCellCopyButtonProps instanceof Function\n ? cell.column.muiTableBodyCellCopyButtonProps({ cell, tableInstance })\n : cell.column.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 aria-label={localization.clickToCopy}\n onClick={() => handleCopy(cell.value)}\n size=\"small\"\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 variant=\"text\"\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { Skeleton, TableCell } from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\n\ninterface Props {\n cell: MRT_Cell;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({ cell, tableInstance }) => {\n const {\n getIsSomeColumnsPinned,\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableEditing,\n enablePinning,\n idPrefix,\n isLoading,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n onCellClick,\n },\n setCurrentEditingCell,\n } = tableInstance;\n\n const { currentEditingCell, currentEditingRow, isDensePadding } = getState();\n\n const { column, row } = cell;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, tableInstance })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n column.muiTableBodyCellProps instanceof Function\n ? column.muiTableBodyCellProps({ cell, tableInstance })\n : column.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...cell.getCellProps(),\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n column.columnDefType === 'display'\n ? column.getWidth() / 2\n : Math.random() * (column.getWidth() - column.getWidth() / 3) +\n column.getWidth() / 3,\n [column.columnDefType, column.getWidth()],\n );\n\n const isEditable =\n (enableEditing || column.enableEditing) && column.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 || column.enableEditing) &&\n column.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${idPrefix}-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 return (\n <TableCell\n onClick={(event: MouseEvent<HTMLTableCellElement>) =>\n onCellClick?.({ event, cell, tableInstance })\n }\n onDoubleClick={handleDoubleClick}\n {...tableCellProps}\n sx={{\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n maxWidth: `min(${column.getWidth()}px, fit-content)`,\n minWidth: `max(${column.getWidth()}px, ${column.minWidth}px)`,\n p: isDensePadding\n ? column.columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : column.columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem',\n pl:\n column.id === 'mrt-expand'\n ? `${row.depth + (isDensePadding ? 0.5 : 0.75)}rem`\n : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace:\n isDensePadding || (enablePinning && getIsSomeColumnsPinned())\n ? 'nowrap'\n : 'normal',\n width: column.getWidth(),\n //@ts-ignore\n ...tableCellProps?.sx,\n }}\n >\n {isLoading ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : column.columnDefType === 'display' ? (\n column.Cell?.({ cell, tableInstance })\n ) : cell.getIsPlaceholder() ||\n (row.getIsGrouped() &&\n column.id !==\n row.groupingColumnId) ? null : cell.getIsAggregated() ? (\n cell.renderAggregatedCell()\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} tableInstance={tableInstance} />\n ) : (enableClickToCopy || column.enableClickToCopy) &&\n column.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} tableInstance={tableInstance}>\n {cell.column?.Cell?.({ cell, tableInstance }) ?? cell.renderCell()}\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {cell.column?.Cell?.({ cell, tableInstance }) ?? cell.renderCell()}\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n )}\n </TableCell>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, tableInstance }) => {\n const {\n getVisibleFlatColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n onDetailPanelClick,\n renderDetailPanel,\n },\n } = tableInstance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, tableInstance })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, tableInstance })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleFlatColumns().length + 10}\n onClick={(event: MouseEvent<HTMLTableCellElement>) =>\n onDetailPanelClick?.({ event, row, tableInstance })\n }\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 ...tableCellProps?.sx,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel?.({ row, tableInstance })}\n </Collapse>\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { 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 pinned: 'left' | 'center' | 'right' | 'none';\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ pinned, row, tableInstance }) => {\n const {\n options: { muiTableBodyRowProps, onRowClick, renderDetailPanel },\n } = tableInstance;\n\n const {\n getCenterVisibleCells,\n getIsGrouped,\n getIsSelected,\n getLeftVisibleCells,\n getRightVisibleCells,\n getRowProps,\n getVisibleCells,\n } = row;\n\n const mTableBodyRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, tableInstance })\n : muiTableBodyRowProps;\n\n const tableRowProps = {\n ...getRowProps(),\n ...mTableBodyRowProps,\n };\n\n const getVisibleCellsMap = {\n center: getCenterVisibleCells,\n left: getLeftVisibleCells,\n none: getVisibleCells,\n right: getRightVisibleCells,\n };\n\n return (\n <>\n <TableRow\n hover\n onClick={(event: MouseEvent<HTMLTableRowElement>) =>\n onRowClick?.({ event, row, tableInstance })\n }\n selected={getIsSelected()}\n {...tableRowProps}\n >\n {getVisibleCellsMap[pinned]().map((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.getCellProps().key}\n tableInstance={tableInstance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !getIsGrouped() && (\n <MRT_TableDetailPanel row={row} tableInstance={tableInstance} />\n )}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getPaginationRowModel,\n getPrePaginationRowModel,\n getTableBodyProps,\n options: { enablePagination, muiTableBodyProps },\n } = tableInstance;\n\n const rows = enablePagination\n ? getPaginationRowModel().rows\n : getPrePaginationRowModel().rows;\n\n const mTableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ tableInstance })\n : muiTableBodyProps;\n\n const tableBodyProps = {\n ...getTableBodyProps(),\n ...mTableBodyProps,\n };\n\n return (\n <TableBody {...tableBodyProps}>\n {rows.map((row) => (\n <MRT_TableBodyRow\n key={row.getRowProps().key}\n pinned={pinned}\n row={row}\n tableInstance={tableInstance}\n />\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, tableInstance }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n const { column } = footer;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, tableInstance })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n column.muiTableFooterCellProps instanceof Function\n ? column.muiTableFooterCellProps({ column, tableInstance })\n : column.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...footer.getFooterProps(),\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n variant=\"head\"\n {...tableCellProps}\n //@ts-ignore\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: `min(${column.getWidth()}px, ${column.maxWidth}px)`,\n minWidth: `max(${column.getWidth()}px, ${column.minWidth}px)`,\n p: isDensePadding ? '0.5rem' : '1rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getWidth(),\n verticalAlign: 'text-top',\n //@ts-ignore\n ...tableCellProps?.sx,\n })}\n >\n {footer.isPlaceholder\n ? null\n : column.Footer?.({\n footer,\n tableInstance,\n }) ??\n column.footer ??\n null}\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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({\n footerGroup,\n tableInstance,\n}) => {\n const {\n options: { muiTableFooterRowProps },\n } = tableInstance;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (h) => h.column.columnDef.footer || h.column.Footer,\n )\n )\n return null;\n\n const mTableFooterRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, tableInstance })\n : muiTableFooterRowProps;\n\n const tableRowProps = {\n ...footerGroup.getFooterGroupProps(),\n ...mTableFooterRowProps,\n };\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.getFooterProps().key}\n tableInstance={tableInstance}\n />\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_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getCenterFooterGroups,\n getFooterGroups,\n getLeftFooterGroups,\n getRightFooterGroups,\n options: { muiTableFooterProps },\n } = tableInstance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ tableInstance })\n : muiTableFooterProps;\n\n const getFooterGroupsMap = {\n center: getCenterFooterGroups,\n left: getLeftFooterGroups,\n none: getFooterGroups,\n right: getRightFooterGroups,\n };\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroupsMap[pinned]().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as MRT_HeaderGroup}\n key={footerGroup.getFooterGroupProps().key}\n tableInstance={tableInstance}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC } 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 pinned: 'left' | 'center' | 'right' | 'none';\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ pinned, tableInstance }) => {\n const {\n getTableProps,\n options: {\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = tableInstance;\n\n const mTableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ tableInstance })\n : muiTableProps;\n\n const tableProps = {\n ...getTableProps(),\n ...mTableProps,\n };\n\n return (\n <Table stickyHeader={enableStickyHeader} {...tableProps}>\n {enableTableHead && (\n <MRT_TableHead pinned={pinned} tableInstance={tableInstance} />\n )}\n <MRT_TableBody pinned={pinned} tableInstance={tableInstance} />\n {enableTableFooter && (\n <MRT_TableFooter pinned={pinned} tableInstance={tableInstance} />\n )}\n </Table>\n );\n};\n","import React, { CSSProperties, FC, useEffect, useState } from 'react';\nimport { alpha, Box, TableContainer, Theme } from '@mui/material';\nimport { MRT_TableInstance } from '..';\nimport { MRT_Table } from './MRT_Table';\n\nconst commonBoxStyles = ({\n pinned,\n theme,\n visible,\n}: {\n pinned?: 'left' | 'right';\n theme: Theme;\n visible?: boolean;\n}): CSSProperties => ({\n display: 'grid',\n minWidth: visible ? '200px' : 0,\n overflowX: pinned ? 'scroll' : 'auto',\n boxShadow:\n pinned === 'left'\n ? `0 1px 12px ${alpha(theme.palette.common.black, 0.5)}`\n : pinned === 'right'\n ? `0 -1px 12px ${alpha(theme.palette.common.black, 0.5)}`\n : 'none',\n});\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {\n const {\n getCenterTableWidth,\n getLeftTableWidth,\n getRightTableWidth,\n getState,\n options: {\n enablePinning,\n enableStickyHeader,\n idPrefix,\n muiTableContainerProps,\n },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ tableInstance })\n : muiTableContainerProps;\n\n useEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${idPrefix}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${idPrefix}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const isSomeColumnsPinnedLeft = !!tableInstance.getLeftFlatHeaders().length;\n const isSomeColumnsPinnedRight = !!tableInstance.getRightFlatHeaders().length;\n\n return (\n <TableContainer\n {...tableContainerProps}\n sx={{\n maxWidth: '100%',\n maxHeight: enableStickyHeader\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 2000px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n }}\n >\n {(enablePinning && isSomeColumnsPinnedLeft) ||\n isSomeColumnsPinnedRight ? (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: `${getLeftTableWidth()}fr ${getCenterTableWidth()}fr ${getRightTableWidth()}fr`,\n }}\n >\n <Box\n sx={(theme: Theme) =>\n commonBoxStyles({\n pinned: 'left',\n theme,\n visible: isSomeColumnsPinnedLeft,\n })\n }\n >\n <MRT_Table pinned=\"left\" tableInstance={tableInstance} />\n </Box>\n <Box\n sx={(theme: Theme) =>\n commonBoxStyles({\n theme,\n visible: !!tableInstance.getCenterFlatHeaders().length,\n })\n }\n >\n <MRT_Table pinned=\"center\" tableInstance={tableInstance} />\n </Box>\n <Box\n sx={(theme: Theme) =>\n commonBoxStyles({\n pinned: 'right',\n theme,\n visible: isSomeColumnsPinnedRight,\n })\n }\n >\n <MRT_Table pinned=\"right\" tableInstance={tableInstance} />\n </Box>\n </Box>\n ) : (\n <MRT_Table pinned=\"none\" tableInstance={tableInstance} />\n )}\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 { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.overflow = 'hidden';\n document.body.style.height = '100vh';\n } else {\n document.body.style.overflow = 'auto';\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ tableInstance })\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 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 tableInstance={tableInstance} />}\n <MRT_TableContainer tableInstance={tableInstance} />\n {enableToolbarBottom && (\n <MRT_ToolbarBottom tableInstance={tableInstance} />\n )}\n </Paper>\n );\n};\n","import { ColumnDef, Table } from '@tanstack/react-table';\nimport { MRT_ColumnDef, MRT_FilterFn } from '.';\nimport { MRT_FILTER_OPTION } from './enums';\nimport { defaultFilterFNs } from './filtersFNs';\n\nexport const getAllLeafColumnDefs = (\n columns: MRT_ColumnDef[],\n): MRT_ColumnDef[] => {\n let lowestLevelColumns: MRT_ColumnDef[] = columns;\n let currentCols: MRT_ColumnDef[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef[];\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 createGroup = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> =>\n table.createGroup({\n ...column,\n columns: column?.columns?.map?.((col) =>\n col.columns\n ? createGroup<D>(table, col, currentFilterFns)\n : createDataColumn(table, col, currentFilterFns),\n ),\n } as any);\n\nexport const createDataColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> => // @ts-ignore\n table.createDataColumn(column.id, {\n filterFn:\n currentFilterFns[column.id] instanceof Function\n ? currentFilterFns[column.id]\n : defaultFilterFNs[currentFilterFns[column.id] as MRT_FILTER_OPTION],\n ...column,\n }) as any;\n\nexport const createDisplayColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },\n): ColumnDef<D> => table.createDisplayColumn(column as ColumnDef<D>);\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n ColumnDef,\n FilterFn,\n PaginationState,\n Table,\n createTable,\n functionalUpdate,\n getColumnFilteredRowModelSync,\n getCoreRowModelSync,\n getExpandedRowModel,\n getGlobalFilteredRowModelSync,\n getGroupedRowModelSync,\n getPaginationRowModel,\n getSortedRowModelSync,\n useTableInstance,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_ColumnDef,\n MRT_FilterFn,\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 {\n createDataColumn,\n createDisplayColumn,\n createGroup,\n getAllLeafColumnDefs,\n} from '../utils';\nimport { defaultFilterFNs } from '../filtersFNs';\nimport { MRT_FILTER_OPTION } from '../enums';\nimport { Box, Dialog, Grow } from '@mui/material';\n\nexport const MRT_TableRoot = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\n) => {\n const [idPrefix, setIdPrefix] = useState(props.idPrefix);\n useEffect(\n () =>\n setIdPrefix(props.idPrefix ?? Math.random().toString(36).substring(2, 9)),\n [props.idPrefix],\n );\n\n const initialState: Partial<MRT_TableState<D>> = useMemo(() => {\n if (!props.enablePersistentState || !props.idPrefix) {\n return props.initialState;\n }\n if (typeof window === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n 'The MRT Persistent Table State feature is not supported if using SSR, but you can wrap your <MaterialReactTable /> in a MUI <NoSsr> tags to let it work',\n );\n }\n return props.initialState;\n }\n const storedState =\n props.persistentStateMode === 'localStorage'\n ? localStorage.getItem(`mrt-${idPrefix}-table-state`)\n : props.persistentStateMode === 'sessionStorage'\n ? sessionStorage.getItem(`mrt-${idPrefix}-table-state`)\n : '{}';\n if (storedState) {\n const parsedState = JSON.parse(storedState);\n if (parsedState) {\n return { ...props.initialState, ...parsedState };\n }\n }\n return props.initialState;\n }, []);\n\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<D> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(\n initialState?.currentEditingRow ?? null,\n );\n const [isDensePadding, setIsDensePadding] = useState(\n initialState?.isDensePadding ?? false,\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showFilters, setShowFilters] = useState(\n initialState?.showFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: initialState?.pagination?.pageIndex ?? 0,\n pageSize: initialState?.pagination?.pageSize ?? 10,\n pageCount: initialState?.pagination?.pageCount ?? -1,\n });\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterFn;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => ({\n [c.id as string]:\n c.filterFn ??\n initialState?.currentFilterFns?.[c.id] ??\n (!!c.filterSelectOptions?.length\n ? MRT_FILTER_OPTION.EQUALS\n : MRT_FILTER_OPTION.BEST_MATCH),\n })),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<\n MRT_FILTER_OPTION | FilterFn<D> | string | number | symbol\n >(props.globalFilterFn ?? MRT_FILTER_OPTION.BEST_MATCH_FIRST);\n\n const table = useMemo(() => createTable() as unknown as Table<D>, []);\n\n const displayColumns = useMemo(\n () =>\n [\n (props.enableRowActions ||\n (props.enableEditing && props.editingMode === 'row')) &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as MRT_Row}\n tableInstance={tableInstance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n maxWidth: 60,\n width: 60,\n }),\n (props.enableExpanded || props.enableGrouping) &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton\n row={cell.row as MRT_Row}\n tableInstance={tableInstance}\n />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton tableInstance={tableInstance} />\n ) : null,\n header: props.localization?.expand,\n id: 'mrt-expand',\n maxWidth: 40,\n width: 40,\n }),\n props.enableRowSelection &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox\n row={cell.row as MRT_Row}\n tableInstance={tableInstance}\n />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll tableInstance={tableInstance} />\n ) : null,\n header: props.localization?.select,\n id: 'mrt-select',\n maxWidth: 40,\n width: 40,\n }),\n props.enableRowNumbers &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n maxWidth: 40,\n width: 40,\n minWidth: 40,\n }),\n ].filter(Boolean),\n [\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanded,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n table,\n ],\n );\n\n const columns = useMemo(\n () =>\n table.createColumns([\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column, currentFilterFns)\n : createDataColumn(table, column, currentFilterFns),\n ),\n ] as ColumnDef<D>[]),\n [table, props.columns, currentFilterFns],\n );\n\n const data: D['Row'][] = useMemo(\n () =>\n props.isLoading && !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.isLoading],\n );\n\n //@ts-ignore\n const tableInstance: MRT_TableInstance<{}> = {\n ...useTableInstance(table, {\n //@ts-ignore\n filterFns: defaultFilterFNs,\n getColumnFilteredRowModel: getColumnFilteredRowModelSync(),\n getCoreRowModel: getCoreRowModelSync(),\n getExpandedRowModel: getExpandedRowModel(),\n getGlobalFilteredRowModel: getGlobalFilteredRowModelSync(),\n getGroupedRowModel: getGroupedRowModelSync(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModelSync(),\n getSubRows: (originalRow: D) => originalRow.subRows,\n globalFilterFn: currentGlobalFilterFn,\n onPaginationChange: (updater: any) =>\n setPagination((old) => functionalUpdate(updater, old)),\n ...props,\n columns,\n data,\n idPrefix,\n //@ts-ignore\n initialState,\n state: {\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n isDensePadding,\n isFullScreen,\n //@ts-ignore\n pagination,\n showFilters,\n showGlobalFilter,\n ...props.state,\n },\n }),\n //@ts-ignore\n setCurrentEditingCell,\n //@ts-ignore\n setCurrentEditingRow,\n setCurrentFilterFns,\n //@ts-ignore\n setCurrentGlobalFilterFn,\n setIsDensePadding,\n setIsFullScreen,\n setShowFilters,\n setShowGlobalFilter,\n };\n\n useEffect(() => {\n if (typeof window === 'undefined' || !props.enablePersistentState) {\n return;\n }\n if (!props.idPrefix && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'a unique idPrefix prop is required for persistent table state to work',\n );\n return;\n }\n const itemArgs: [string, string] = [\n `mrt-${idPrefix}-table-state`,\n JSON.stringify(tableInstance.getState()),\n ];\n if (props.persistentStateMode === 'localStorage') {\n localStorage.setItem(...itemArgs);\n } else if (props.persistentStateMode === 'sessionStorage') {\n sessionStorage.setItem(...itemArgs);\n }\n }, [\n props.enablePersistentState,\n props.idPrefix,\n props.persistentStateMode,\n tableInstance,\n ]);\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 tableInstance={tableInstance} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper tableInstance={tableInstance} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n FC,\n FocusEvent,\n MouseEvent,\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 DefaultGenerics,\n FilterFn,\n FilterFnOption,\n Header,\n HeaderGroup,\n Options,\n Overwrite,\n PaginationState,\n Row,\n TableInstance,\n TableState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_FILTER_OPTION } from './enums';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\n\nexport type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<\n Omit<\n Options<D>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn' | 'filterFns'\n >\n> & {\n columns: MRT_ColumnDef<D>[];\n data: D[];\n expandRowsFn?: (dataRow: D) => D[];\n filterFns?: MRT_FILTER_OPTION | FilterFn<D> | string | number | symbol;\n initialState?: Partial<MRT_TableState<D>>;\n state?: Partial<MRT_TableState<D>>;\n};\n\nexport interface MRT_RowModel<D extends Record<string, any> = {}> {\n flatRows: MRT_Row<D>[];\n rows: MRT_Row<D>[];\n rowsById: { [key: string]: MRT_Row<D> };\n}\n\nexport type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<\n TableInstance<\n Overwrite<\n Partial<DefaultGenerics>,\n {\n Row: D;\n }\n >\n >,\n | 'getAllColumns'\n | 'getAllLeafColumns'\n | 'getExpandedRowModel'\n | 'getPaginationRowModel'\n | 'getPrePaginationRowModel'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<D>[];\n getAllLeafColumns: () => MRT_Column<D>[];\n getExpandedRowModel: () => MRT_RowModel<D>;\n getPaginationRowModel: () => MRT_RowModel<D>;\n getPrePaginationRowModel: () => MRT_RowModel<D>;\n getRowModel: () => MRT_RowModel<D>;\n getSelectedRowModel: () => MRT_RowModel<D>;\n getState: () => MRT_TableState<D>;\n options: MaterialReactTableProps<D> & {\n icons: MRT_Icons;\n idPrefix: string;\n localization: MRT_Localization;\n };\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell<D> | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row<D> | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterFn<D>;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn<D>>>;\n setIsDensePadding: Dispatch<SetStateAction<boolean>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<D extends Record<string, any> = {}> = Omit<\n TableState,\n 'pagination'\n> & {\n currentEditingCell: MRT_Cell<D> | null;\n currentEditingRow: MRT_Row<D> | null;\n currentFilterFns: Record<string, string | Function>;\n currentGlobalFilterFn: Record<string, string | Function>;\n isDensePadding: boolean;\n isFullScreen: boolean;\n showFilters: boolean;\n showGlobalFilter: boolean;\n pagination: Partial<PaginationState>;\n};\n\nexport type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<\n ColumnDef<D>,\n 'header' | 'footer' | 'columns' | 'filterFn'\n> & {\n Edit?: ({\n cell,\n tableInstance,\n }: {\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Filter?: ({\n header,\n tableInstance,\n }: {\n header: MRT_Header<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Footer?: ({\n footer,\n tableInstance,\n }: {\n footer: MRT_Header<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Header?: ({\n header,\n tableInstance,\n }: {\n header: MRT_Header<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n Cell?: ({\n cell,\n tableInstance,\n }: {\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n id: keyof D | string;\n columns?: MRT_ColumnDef<D>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[];\n filterFn?: MRT_FilterFn;\n filterSelectOptions?: (string | { text: string; value: string })[];\n footer?: string;\n header: string;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChange?: ({\n column,\n event,\n filterValue,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n }) => void;\n};\n\nexport type MRT_Column<D extends Record<string, any> = {}> = Omit<\n Column<D>,\n 'header' | 'footer' | 'columns'\n> &\n MRT_ColumnDef<D> & {\n columns?: MRT_Column<D>[];\n };\n\nexport type MRT_Header<D extends Record<string, any> = {}> = Omit<\n Header<D>,\n 'column'\n> & {\n column: MRT_Column<D>;\n};\n\nexport type MRT_HeaderGroup<D extends Record<string, any> = {}> = Omit<\n HeaderGroup<D>,\n 'headers'\n> & {\n headers: MRT_Header<D>[];\n};\n\nexport type MRT_Row<D extends Record<string, any> = {}> = Omit<\n Row<D>,\n | 'getVisibleCells'\n | 'getAllCells'\n | 'subRows'\n | 'original'\n | 'getLeftVisibleCells'\n | 'getRightVisibleCells'\n | 'getCenterVisibleCells'\n> & {\n getAllCells: () => MRT_Cell<D>[];\n getCenterVisibleCells: () => MRT_Cell<D>[];\n getLeftVisibleCells: () => MRT_Cell<D>[];\n getRightVisibleCells: () => MRT_Cell<D>[];\n getVisibleCells: () => MRT_Cell<D>[];\n subRows?: MRT_Row<D>[];\n original: D;\n};\n\nexport type MRT_Cell<D extends Record<string, any> = {}> = Omit<\n Cell<D>,\n 'column' | 'row'\n> & {\n column: MRT_Column<D>;\n row: MRT_Row<D>;\n};\n\nexport type MRT_FilterFn<D extends Record<string, any> = {}> =\n | FilterFn<D>\n | FilterFnOption<D>\n | MRT_FILTER_OPTION\n | number\n | string\n | symbol;\n\nexport type MaterialReactTableProps<D extends Record<string, any> = {}> =\n MRT_TableOptions<D> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableDensePaddingToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enablePagination?: boolean;\n enablePersistentState?: boolean;\n enableRowActions?: boolean;\n enableRowNumbers?: 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_FILTER_OPTION | string)[];\n enabledGlobalFilterOptions?: (MRT_FILTER_OPTION | string)[];\n icons?: Partial<MRT_Icons>;\n idPrefix?: string;\n isLoading?: boolean;\n isReloading?: boolean;\n localization?: Partial<MRT_Localization>;\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TextFieldProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n tableInstance,\n isSelectAll,\n row,\n }: {\n tableInstance: MRT_TableInstance;\n isSelectAll: boolean;\n row?: MRT_Row<D>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n tableInstance,\n cell,\n }: {\n tableInstance: MRT_TableInstance;\n cell: MRT_Cell<D>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n tableInstance,\n row,\n }: {\n tableInstance: MRT_TableInstance;\n row: MRT_Row<D>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n tableInstance,\n row,\n }: {\n tableInstance: MRT_TableInstance;\n row: MRT_Row<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n tableInstance,\n footerGroup,\n }: {\n tableInstance: MRT_TableInstance;\n footerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n tableInstance,\n column,\n }: {\n tableInstance: MRT_TableInstance;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n tableInstance,\n headerGroup,\n }: {\n tableInstance: MRT_TableInstance;\n headerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTablePaperProps?:\n | PaperProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => PaperProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => Partial<TablePaginationProps>);\n muiTableProps?:\n | TableProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance;\n }) => ToolbarProps);\n onCellClick?: ({\n cell,\n event,\n tableInstance,\n }: {\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n event: MouseEvent<HTMLTableCellElement>;\n }) => void;\n onCellEditBlur?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n tableInstance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChange?: ({\n column,\n event,\n filterValue,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n }) => void;\n onDetailPanelClick?: ({\n event,\n row,\n tableInstance,\n }: {\n event: MouseEvent<HTMLTableCellElement>;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onGlobalSearchFilterChange?: ({\n event,\n tableInstance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onRowClick?: ({\n event,\n row,\n tableInstance,\n }: {\n event: MouseEvent<HTMLTableRowElement>;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onEditSubmit?: ({\n row,\n tableInstance,\n }: {\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => Promise<void> | void;\n onRowExpandChange?: ({\n event,\n row,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onSelectAllChange?: ({\n event,\n selectedRows,\n tableInstance,\n }: {\n event: ChangeEvent;\n selectedRows: MRT_Row<D>[];\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onSelectChange?: ({\n event,\n row,\n selectedRows,\n tableInstance,\n }: {\n event: ChangeEvent;\n row: MRT_Row<D>;\n selectedRows: MRT_Row<D>[];\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleColumnVisibility?: ({\n column,\n columnVisibility,\n tableInstance,\n }: {\n column: MRT_Column<D>;\n columnVisibility: VisibilityState;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleDensePadding?: ({\n event,\n isDensePadding,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n isDensePadding: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleFullScreen?: ({\n event,\n isFullScreen,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n isFullScreen: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleShowFilters?: ({\n event,\n showFilters,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n showFilters: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n onToggleShowGlobalFilter?: ({\n event,\n showGlobalFilter,\n tableInstance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n showGlobalFilter: boolean;\n tableInstance: MRT_TableInstance<D>;\n }) => void;\n persistentStateMode?: 'localStorage' | 'sessionStorage';\n positionActionsColumn?: 'first' | 'last';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarActions?: 'bottom' | 'top';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n tableInstance,\n }: {\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n tableInstance,\n }: {\n closeMenu: () => void;\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n tableInstance,\n }: {\n row: MRT_Row<D>;\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarCustomActions?: ({\n tableInstance,\n }: {\n tableInstance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n tableInstance,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n tableInstance: MRT_TableInstance<D>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { tableInstance: MRT_TableInstance<D> }\n >;\n }) => ReactNode;\n };\n\nexport default <D extends Record<string, any> = {}>({\n autoResetExpanded = false,\n autoResetSorting = false,\n columnResizeMode = 'onEnd',\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilters = true,\n enableColumnResizing = false,\n enableDensePaddingToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableHiding = true,\n enableMultiRowSelection = true,\n enablePagination = true,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = true,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n persistentStateMode = 'sessionStorage',\n positionActionsColumn = 'first',\n positionPagination = 'bottom',\n positionToolbarActions = 'top',\n positionToolbarAlertBanner = 'top',\n ...rest\n}: MaterialReactTableProps<D>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n autoResetSorting={autoResetSorting}\n columnResizeMode={columnResizeMode}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnResizing={enableColumnResizing}\n enableColumnFilters={enableColumnFilters}\n enableDensePaddingToggle={enableDensePaddingToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enablePagination={enablePagination}\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 persistentStateMode={persistentStateMode}\n positionActionsColumn={positionActionsColumn}\n positionPagination={positionPagination}\n positionToolbarActions={positionToolbarActions}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n {...rest}\n />\n);\n"],"names":["MRT_FILTER_OPTION","MRT_DefaultLocalization_EN","actions","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBestMatch","filterBestMatchFirst","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","groupByColumn","groupedBy","hideAll","hideColumn","pinToLeft","pinToRight","resetColumnSize","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensePadding","toggleFullScreen","toggleSelectAll","toggleSelectRow","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","CancelIcon","CheckBoxIcon","ClearAllIcon","CloseIcon","DensityMediumIcon","DensitySmallIcon","DoubleArrowDownIcon","DynamicFeedIcon","EditIcon","ExpandLessIcon","ExpandMoreIcon","FilterAltIcon","FilterAltOff","FilterListIcon","FilterListOffIcon","FullscreenExitIcon","FullscreenIcon","MoreHorizIcon","MoreVertIcon","PushPinIcon","RestartAltIcon","SaveIcon","SearchIcon","SearchOffIcon","SortIcon","ViewColumnIcon","VisibilityOffIcon","MRT_ExpandAllButton","tableInstance","getIsAllRowsExpanded","getIsSomeRowsExpanded","options","icons","isLoading","localization","toggleAllRowsExpanded","isDensePadding","getState","React","IconButton","disabled","title","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","onRowExpandChange","renderDetailPanel","getCanExpand","event","toggleExpanded","getIsExpanded","bestMatchFirst","rows","columnIds","filterValue","matchSorter","toString","trim","keys","Array","isArray","map","c","autoRemove","val","bestMatch","sorter","rankedItems","contains","id","filter","values","toLowerCase","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","empty","_filterValue","notEmpty","defaultFilterFNs","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","filterOptions","useMemo","type","BEST_MATCH_FIRST","label","divider","fn","BEST_MATCH","CONTAINS","STARTS_WITH","ENDS_WITH","EQUALS","NOT_EQUALS","GREATER_THAN","LESS_THAN","EMPTY","NOT_EMPTY","filterType","column","enabledColumnFilterOptions","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","index","MenuItem","key","value","prev","setColumnFilterValue","selected","MRT_ColumnPinningButtons","columnOrder","handlePinColumn","pinDirection","pin","columnDefType","setColumnOrder","pinned","getIsPinned","Box","mr","Tooltip","arrow","size","MRT_ShowHideColumnsMenuItems","isSubMenu","onToggleColumnVisibility","enablePinning","columnVisibility","switchChecked","getIsVisible","getLeafColumns","some","col","justifyContent","pl","depth","FormControlLabel","componentsProps","typography","marginBottom","checked","control","Switch","enableHiding","onChange","columns","forEach","childColumn","toggleVisibility","handleToggleColumnHidden","_column$columns2","i","MRT_ShowHideColumnsMenu","getAllColumns","getIsAllColumnsVisible","getIsSomeColumnsVisible","getIsSomeColumnsPinned","toggleAllColumnsVisible","getAllLeafColumns","allDisplayColumns","allDataColumns","dataColumns","columnPinning","display","p","pt","Button","setColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilters","enableColumnResizing","enableGrouping","enableSorting","idPrefix","setShowFilters","columnSizing","useState","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","getCanSort","getIsSorted","resetSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanColumnFilter","getColumnFilterValue","_localization$filterB","filterSelectOptions","onMouseEnter","getCanGroup","toggleGrouping","old","getIsGrouped","_localization","getCanPin","getCanResize","resetSize","_localization$hideCol","Object","visible","length","_localization$showAll","MRT_RowActionMenu","handleEdit","enableEditing","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditSubmit","setCurrentEditingRow","currentEditingRow","gap","original","color","commonIconButtonStyles","ml","opacity","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","placement","enterDelay","enterNextDelay","preventDefault","MRT_SelectCheckbox","selectAll","getRowModel","getSelectedRowModel","getToggleAllRowsSelectedProps","muiSelectCheckboxProps","onSelectChange","onSelectAllChange","mTableBodyRowSelectCheckboxProps","Function","isSelectAll","checkboxProps","getToggleSelectedProps","Checkbox","inputProps","selectedRows","target","flatRows","selectedRow","undefined","MRT_SearchTextField","setGlobalFilter","muiSearchTextFieldProps","onGlobalSearchFilterChange","globalFilter","showGlobalFilter","searchValue","setSearchValue","handleChange","useCallback","debounce","textFieldProps","Collapse","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","justifySelf","MRT_FullScreenToggleButton","rest","onToggleFullScreen","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","onToggleDensePadding","setIsDensePadding","MRT_ToggleFiltersButton","onToggleShowFilters","showFilters","MRT_ToggleGlobalFilterButton","onToggleShowGlobalFilter","setShowGlobalFilter","MRT_ToolbarInternalButtons","enableDensePaddingToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","renderToolbarInternalActions","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","pagination","pageSize","pageIndex","tablePaginationProps","showFirstLastPageButtons","TablePagination","SelectProps","m","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","zIndex","MRT_ToolbarAlertBanner","toggleColumnGrouping","muiTableToolbarAlertBannerProps","positionToolbarActions","positionToolbarAlertBanner","renderToolbarCustomActions","grouping","isMobile","useMediaQuery","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","columnId","Fragment","Chip","find","_tableInstance$getAll","onDelete","displayAbsolute","timeout","Alert","icon","borderRadius","fontSize","left","right","minHeight","top","MRT_LinearProgressBar","muiLinearProgressProps","isReloading","linearProgressProps","unmountOnExit","LinearProgress","commonToolbarStyles","theme","backgroundColor","palette","background","backgroundImage","alpha","common","white","MRT_ToolbarTop","enablePagination","enableToolbarInternalActions","muiTableToolbarTopProps","positionPagination","toolbarProps","Toolbar","MRT_ToolbarBottom","muiTableToolbarBottomProps","bottom","boxShadow","black","MRT_FilterTextField","setFilterValue","Filter","filterId","filterFn","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","fullWidth","textOverflow","helperText","htmlFor","name","FormHelperTextProps","lineHeight","margin","e","disableHoverListener","minWidth","mt","_column$filterSelectO","option","text","MRT_ToggleColumnActionMenuButton","muiTableHeadCellColumnActionsButtonProps","iconButtonProps","MRT_TableHeadCell","enableColumnActions","muiTableHeadCellProps","mTableHeadCellProps","mcTableHeadCellProps","tableCellProps","getHeaderProps","sortTooltip","_getState2","_getState2$currentFil","filterTooltip","headerElement","Header","TableCell","align","fontWeight","maxWidth","getWidth","pb","overflow","verticalAlign","getIsResizing","isPlaceholder","cursor","flexWrap","whiteSpace","TableSortLabel","active","direction","disableRipple","flexItem","onDoubleClick","borderRightWidth","touchAction","userSelect","info","main","getResizerProps","props","columnSizingInfo","deltaOffset","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","mTableHeadRowProps","tableRowProps","getHeaderGroupProps","TableRow","headers","MRT_TableHead","getCenterHeaderGroups","getHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","muiTableHeadProps","tableHeadProps","getHeaderGroupsMap","center","none","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","Edit","onBlur","MRT_CopyButton","children","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textAlign","textTransform","MRT_TableBodyCell","editingMode","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","onCellClick","currentEditingCell","mTableCellBodyProps","mcTableCellBodyProps","getCellProps","skeletonWidth","Math","random","isEditable","isEditing","_event","textField","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","renderAggregatedCell","_cell$column","renderCell","subRows","_row$subRows","_cell$column2","_row$subRows2","MRT_TableDetailPanel","getVisibleFlatColumns","muiTableBodyRowProps","muiTableDetailPanelProps","onDetailPanelClick","colSpan","borderBottom","MRT_TableBodyRow","onRowClick","getCenterVisibleCells","getIsSelected","getLeftVisibleCells","getRightVisibleCells","getRowProps","getVisibleCells","mTableBodyRowProps","getVisibleCellsMap","hover","MRT_TableBody","getTableBodyProps","muiTableBodyProps","getPaginationRowModel","mTableBodyProps","tableBodyProps","TableBody","MRT_TableFooterCell","footer","muiTableFooterCellProps","mTableFooterCellProps","mcTableFooterCellProps","getFooterProps","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","h","columnDef","mTableFooterRowProps","getFooterGroupProps","MRT_TableFooter","getCenterFooterGroups","getFooterGroups","getLeftFooterGroups","getRightFooterGroups","muiTableFooterProps","tableFooterProps","getFooterGroupsMap","TableFooter","MRT_Table","getTableProps","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","mTableProps","tableProps","Table","stickyHeader","commonBoxStyles","overflowX","MRT_TableContainer","getCenterTableWidth","getLeftTableWidth","getRightTableWidth","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","useEffect","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","isSomeColumnsPinnedLeft","getLeftFlatHeaders","isSomeColumnsPinnedRight","getRightFlatHeaders","TableContainer","maxHeight","gridTemplateColumns","getCenterFlatHeaders","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","window","body","tablePaperProps","Paper","elevation","padding","getAllLeafColumnDefs","lowestLevelColumns","currentCols","_currentCols","nextCols","flat","every","createDataColumn","table","createDisplayColumn","MRT_TableRoot","setIdPrefix","substring","initialState","enablePersistentState","storedState","persistentStateMode","localStorage","getItem","sessionStorage","parsedState","JSON","parse","_initialState$paginat2","_initialState$paginat4","pageCount","_initialState$paginat6","setPagination","assign","_initialState$current3","_c$filterSelectOption","globalFilterFn","createTable","displayColumns","enableRowActions","_props$localization","enableExpanded","enableExpandAll","_props$localization2","enableRowSelection","enableSelectAll","_props$localization3","enableRowNumbers","_props$localization4","_props$localization5","Boolean","createColumns","createGroup","_column$columns","data","fill","useTableInstance","filterFns","getColumnFilteredRowModel","getColumnFilteredRowModelSync","getCoreRowModel","getCoreRowModelSync","getExpandedRowModel","getGlobalFilteredRowModel","getGlobalFilteredRowModelSync","getGroupedRowModel","getGroupedRowModelSync","getSortedRowModel","getSortedRowModelSync","getSubRows","originalRow","onPaginationChange","updater","functionalUpdate","state","itemArgs","stringify","setItem","Dialog","PaperComponent","TransitionComponent","Grow","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","autoResetSorting","columnResizeMode","enableMultiRowSelection","positionActionsColumn"],"mappings":"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"}