material-react-table 0.8.0-alpha.2 → 0.8.2
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.
- package/README.md +2 -2
- package/dist/MaterialReactTable.d.ts +5 -2
- package/dist/head/MRT_DraggableTableHeadCell.d.ts +8 -0
- package/dist/head/MRT_TableHeadCell.d.ts +5 -1
- package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +8 -0
- package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +8 -0
- package/dist/head/MRT_TableHeadCellGrabHandle.d.ts +9 -0
- package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +8 -0
- package/dist/head/MRT_TableHeadCellSortLabel.d.ts +8 -0
- package/dist/icons.d.ts +1 -0
- package/dist/inputs/MRT_FilterRangeFields.d.ts +2 -2
- package/dist/localization.d.ts +1 -0
- package/dist/material-react-table.cjs.development.js +498 -294
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +500 -296
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/table/MRT_TableContainer.d.ts +1 -1
- package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -0
- package/dist/toolbar/MRT_ToolbarTop.d.ts +2 -0
- package/dist/utils.d.ts +1 -1
- package/package.json +9 -6
- package/src/MaterialReactTable.tsx +10 -0
- package/src/body/MRT_TableBodyCell.tsx +7 -4
- package/src/buttons/MRT_CopyButton.tsx +2 -1
- package/src/buttons/MRT_ExpandAllButton.tsx +3 -0
- package/src/footer/MRT_TableFooterCell.tsx +1 -0
- package/src/head/MRT_DraggableTableHeadCell.tsx +52 -0
- package/src/head/MRT_TableHeadCell.tsx +66 -155
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +32 -0
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +82 -0
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +52 -0
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +52 -0
- package/src/head/MRT_TableHeadCellSortLabel.tsx +45 -0
- package/src/head/MRT_TableHeadRow.tsx +17 -8
- package/src/icons.ts +3 -0
- package/src/inputs/MRT_FilterRangeFields.tsx +1 -3
- package/src/localization.ts +2 -0
- package/src/table/MRT_TableContainer.tsx +1 -1
- package/src/table/MRT_TablePaper.tsx +26 -22
- package/src/table/MRT_TableRoot.tsx +8 -0
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +11 -27
- package/src/toolbar/MRT_ToolbarBottom.tsx +23 -5
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +30 -29
- package/src/toolbar/MRT_ToolbarTop.tsx +21 -20
|
@@ -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_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/inputs/MRT_FilterRangeFields.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 and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n 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 to: 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 and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n 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 to: 'to',\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 BETWEEN = 'between',\n CONTAINS = 'contains',\n EMPTY = 'empty',\n ENDS_WITH = 'endsWith',\n EQUALS = 'equals',\n FUZZY = 'fuzzy',\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, Tooltip } 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 localization,\n },\n toggleAllRowsExpanded,\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <IconButton\n aria-label={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 </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, Tooltip } 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 <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\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 </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { MRT_Row } from '.';\n\nexport const fuzzy = (\n row: MRT_Row,\n columnId: string,\n value: string,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), value, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) >= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) <= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = (\n row: MRT_Row,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !row.getValue(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const defaultFilterFNs = {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import 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 between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\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 option: MRT_FILTER_OPTION;\n label: string;\n divider: boolean;\n fn: Function;\n }[] = useMemo(\n () =>\n [\n {\n option: MRT_FILTER_OPTION.FUZZY,\n label: localization.filterFuzzy,\n divider: false,\n fn: fuzzy,\n },\n {\n option: MRT_FILTER_OPTION.CONTAINS,\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n option: MRT_FILTER_OPTION.STARTS_WITH,\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n option: MRT_FILTER_OPTION.ENDS_WITH,\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n option: MRT_FILTER_OPTION.EQUALS,\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n option: MRT_FILTER_OPTION.NOT_EQUALS,\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n option: MRT_FILTER_OPTION.BETWEEN,\n label: localization.filterBetween,\n divider: false,\n fn: between,\n },\n {\n option: MRT_FILTER_OPTION.GREATER_THAN,\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n option: MRT_FILTER_OPTION.LESS_THAN,\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n option: MRT_FILTER_OPTION.EMPTY,\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n option: 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.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n [MRT_FILTER_OPTION.FUZZY, MRT_FILTER_OPTION.CONTAINS].includes(\n filterType.option,\n ),\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.setFilterValue(' ');\n } else if (value === MRT_FILTER_OPTION.BETWEEN) {\n header.column.setFilterValue(['', '']);\n } else {\n header.column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(value);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: isDensePadding,\n }}\n >\n {filterOptions.map(({ option, label, divider, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption || fn === filterOption}\n sx={commonMenuItemStyles}\n value={option}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({\n column,\n tableInstance,\n}) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = tableInstance;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ mr: '8px' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import 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 },\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 && column.getCanPin() && (\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={(isSubMenu && switchChecked) || !column.getCanHide()}\n label={column.columnDef.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.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {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.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${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.columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(column.columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() && [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(column.columnDef.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.columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={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.columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(column.columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n 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 '..';\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._valuesCache = row.original ?? {};\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 options: {\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 tableInstance.getToggleAllRowsSelectedHandler()(event as any);\n onSelectAllChange?.({\n event,\n selectedRows: event.target.checked ? getRowModel().flatRows : [],\n tableInstance,\n });\n } else if (row) {\n row?.getToggleSelectedHandler()(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 checkboxProps =\n muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ isSelectAll: !!selectAll, row, tableInstance })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll\n ? tableInstance.getIsAllRowsSelected()\n : row?.getIsSelected()\n }\n indeterminate={\n selectAll\n ? tableInstance.getIsSomeRowsSelected()\n : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={isDensePadding ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\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 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={() =>\n tableInstance.getColumn(columnId).toggleGrouping()\n }\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 },\n getState,\n } = tableInstance;\n\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ tableInstance })\n : muiLinearProgressProps;\n\n return (\n <Collapse in={isLoading || showProgressBars} mountOnEnter 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 { Box, lighten, 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: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\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 inputIndex?: number;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n tableInstance,\n}) => {\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 inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce(\n (event: ChangeEvent<HTMLInputElement>) =>\n inputIndex !== undefined\n ? column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n })\n : column.setFilterValue(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 if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: MRT_FILTER_OPTION.FUZZY,\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 inputIndex ?? ''\n }`;\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 =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(column.columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\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 !inputIndex ? (\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 ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n label={isSelectFilter && !filterValue ? filterPlaceholder : undefined}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n }}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: !isSelectFilter && !inputIndex && (\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 ? '6rem' : '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 } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nconst MRT_FilterRangeFields: FC<Props> = ({ header, tableInstance }) => {\n const {\n options: { localization },\n } = tableInstance;\n\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr auto 5fr' }}>\n <MRT_FilterTextField\n header={header}\n inputIndex={0}\n tableInstance={tableInstance}\n />\n <Box\n sx={{\n width: '100%',\n minWidth: '5ch',\n textAlign: 'center',\n }}\n >\n {localization.to}\n </Box>\n <MRT_FilterTextField\n header={header}\n inputIndex={1}\n tableInstance={tableInstance}\n />\n </Box>\n );\n};\n\nexport default MRT_FilterRangeFields;\n","import React, { FC, MouseEvent, ReactNode } from 'react';\nimport {\n Box,\n Collapse,\n Divider,\n IconButton,\n TableCell,\n TableSortLabel,\n Theme,\n Tooltip,\n alpha,\n lighten,\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 MRT_FilterRangeFields from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FILTER_OPTION } from '../enums';\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 { currentFilterFns, 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 ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace(\n '{column}',\n column.columnDef.header,\n )\n : localization.sortedByColumnAsc.replace(\n '{column}',\n column.columnDef.header,\n )\n : localization.unsorted;\n\n const filterFn = getState()?.currentFilterFns?.[header.id];\n\n const filterTooltip = !!column.getFilterValue()\n ? localization.filteringByColumn\n .replace('{column}', String(column.columnDef.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(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '')\n : localization.showHideFilters;\n\n const headerElement = (column.columnDef?.Header?.({\n header,\n tableInstance,\n }) ?? header.renderHeader()) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (tableInstance.getRightLeafHeaders().length -\n 1 -\n column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && column.columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n height: '100%',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${column.minSize}px)`,\n overflow: 'visible',\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 pb: column.columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && column.columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n column.columnDefType === 'display'\n ? 0\n : isDensePadding\n ? '0.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n verticalAlign: 'text-top',\n width: header.getSize(),\n zIndex: column.getIsResizing()\n ? 3\n : column.getIsPinned() && column.columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\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:\n (column.columnDef.header?.length ?? 0) < 24\n ? 'nowrap'\n : '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.getCanFilter() && (\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.getFilterValue() ? 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.getFilterValue() ? (\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={() => column.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 {...{\n onMouseDown: header.getResizeHandler,\n onTouchStart: header.getResizeHandler,\n }}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`\n : 'none',\n }}\n />\n )}\n </Box>\n )}\n {column.columnDefType === 'data' && column.getCanFilter() && (\n <Collapse in={showFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? (\n <MRT_FilterRangeFields\n header={header}\n tableInstance={tableInstance}\n />\n ) : (\n <MRT_FilterTextField\n header={header}\n tableInstance={tableInstance}\n />\n )}\n </Collapse>\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, tableInstance }) => {\n const {\n options: { muiTableHeadRowProps },\n } = tableInstance;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, tableInstance })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n 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_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ tableInstance }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = tableInstance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ tableInstance })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n 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.getValue());\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._valuesCache[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.columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n 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.getValue())}\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 { alpha, darken, lighten, 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 enableHover?: boolean;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableEditing,\n idPrefix,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n onCellClick,\n },\n setCurrentEditingCell,\n } = tableInstance;\n\n const {\n currentEditingCell,\n currentEditingRow,\n isDensePadding,\n isLoading,\n showSkeletons,\n } = 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 ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n column.columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [column.columnDefType, column.getSize()],\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 const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (tableInstance.getRightLeafHeaders().length -\n 1 -\n column.getPinnedIndex()) *\n 150\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={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max${column.getSize()}px, ${column.minSize}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 position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: isDensePadding ? 'nowrap' : 'normal',\n width: column.getSize(),\n zIndex: column.getIsPinned() ? 1 : undefined,\n '&:hover': {\n backgroundColor: enableHover\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.13)} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : column.columnDefType === 'display' ? (\n column.columnDef.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 <>\n {cell.column.columnDef?.Cell?.({ cell, tableInstance }) ??\n cell.renderCell()}\n </>\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {cell.column.columnDef?.Cell?.({ cell, tableInstance }) ?? cell.renderCell()}\n {row.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\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 { darken, lighten, TableRow } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, tableInstance }) => {\n const {\n options: { muiTableBodyRowProps, onRowClick, renderDetailPanel },\n } = tableInstance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, tableInstance })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n onClick={(event: MouseEvent<HTMLTableRowElement>) =>\n onRowClick?.({ event, row, tableInstance })\n }\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n })}\n >\n {row.getVisibleCells().map((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n tableInstance={tableInstance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ tableInstance }) => {\n const {\n getPaginationRowModel,\n getPrePaginationRowModel,\n options: { enablePagination, muiTableBodyProps },\n } = tableInstance;\n\n const rows = enablePagination\n ? getPaginationRowModel().rows\n : getPrePaginationRowModel().rows;\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ tableInstance })\n : muiTableBodyProps;\n\n return (\n <TableBody {...tableBodyProps}>\n {rows.map((row) => (\n <MRT_TableBodyRow\n key={row.id}\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 ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p: isDensePadding ? '0.5rem' : '1rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : column.columnDef.Footer?.({\n footer,\n tableInstance,\n }) ??\n footer.renderFooter() ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n 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) =>\n (typeof h.column.columnDef.footer === 'string' &&\n !!h.column.columnDef.footer) ||\n h.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, tableInstance })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.id}\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_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ tableInstance }) => {\n const {\n getFooterGroups,\n\n options: { muiTableFooterProps },\n } = tableInstance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ tableInstance })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n 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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableInstance }) => {\n const {\n options: {\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = tableInstance;\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ tableInstance })\n : muiTableProps;\n\n return (\n <Table stickyHeader={enableStickyHeader} {...tableProps}>\n {enableTableHead && <MRT_TableHead tableInstance={tableInstance} />}\n <MRT_TableBody tableInstance={tableInstance} />\n {enableTableFooter && <MRT_TableFooter tableInstance={tableInstance} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_TableInstance } from '..';\nimport { MRT_Table } from './MRT_Table';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: { enableStickyHeader, idPrefix, muiTableContainerProps },\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 useIsomorphicLayoutEffect(() => {\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 <MRT_Table tableInstance={tableInstance} />\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 FilterFn,\n PaginationState,\n createTable,\n functionalUpdate,\n getExpandedRowModel,\n getPaginationRowModel,\n useTableInstance,\n getGroupedRowModel,\n getSortedRowModel,\n getCoreRowModel,\n getFilteredRowModel,\n ReactTableGenerics,\n getFacetedRowModel,\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,\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.FUZZY),\n })),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<\n MRT_FILTER_OPTION | FilterFn<ReactTableGenerics> | string | number | symbol\n >(props.globalFilterFn ?? MRT_FILTER_OPTION.FUZZY);\n\n const table = useMemo(() => createTable(), []);\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 any}\n tableInstance={tableInstance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n size: 60,\n }),\n (props.enableExpanding || props.enableGrouping) &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton\n row={cell.row as any}\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 size: 50,\n }),\n props.enableRowSelection &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox\n row={cell.row as any}\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 size: 50,\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 size: 50,\n }),\n ].filter(Boolean),\n [\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n table,\n ],\n );\n\n const columns = useMemo(\n () => [\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column as any, currentFilterFns)\n : createDataColumn(table, column as any, currentFilterFns),\n ),\n ],\n [table, props.columns, currentFilterFns],\n );\n\n const data: D[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const tableInstance = {\n //@ts-ignore\n ...useTableInstance(table, {\n filterFns: defaultFilterFNs,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getSubRows: (row) => (row as MRT_Row)?.subRows,\n //@ts-ignore\n globalFilterFn: currentGlobalFilterFn,\n onPaginationChange: (updater: any) =>\n setPagination((old) => functionalUpdate(updater, old)),\n ...props,\n //@ts-ignore\n columns,\n data,\n idPrefix,\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 setCurrentEditingCell,\n setCurrentEditingRow,\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n setIsDensePadding,\n setIsFullScreen,\n setShowFilters,\n setShowGlobalFilter,\n } as MRT_TableInstance;\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 FilterFn,\n FilterFnOption,\n Header,\n HeaderGroup,\n Overwrite,\n PaginationState,\n ReactTableGenerics,\n Row,\n TableGenerics,\n TableInstance,\n TableState,\n UseTableInstanceOptions,\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 UseTableInstanceOptions<ReactTableGenerics>,\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<TableGenerics>,\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 | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterFn;\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 isLoading: boolean;\n isFullScreen: boolean;\n pagination: Partial<PaginationState>;\n showFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\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 columnDef: MRT_ColumnDef<D>;\n header: string;\n footer: string;\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' | 'getAllCells' | 'subRows' | 'original'\n> & {\n getAllCells: () => 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<TableGenerics>\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 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 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 enablePinning = false,\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 columnResizeMode={columnResizeMode}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilters={enableColumnFilters}\n enableColumnResizing={enableColumnResizing}\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 enablePinning={enablePinning}\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","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","groupByColumn","groupedBy","hideAll","hideColumn","max","min","pinToLeft","pinToRight","resetColumnSize","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","to","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","localization","toggleAllRowsExpanded","isDensePadding","getState","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","onRowExpandChange","renderDetailPanel","disabled","getCanExpand","event","toggleExpanded","getIsExpanded","fuzzy","columnId","value","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","id","filterValue","toString","toLowerCase","trim","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","undefined","empty","_filterValue","notEmpty","defaultFilterFNs","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","filterOptions","useMemo","option","FUZZY","label","divider","fn","CONTAINS","STARTS_WITH","ENDS_WITH","EQUALS","NOT_EQUALS","BETWEEN","GREATER_THAN","LESS_THAN","EMPTY","NOT_EMPTY","filter","filterType","column","enabledColumnFilterOptions","filterOption","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","selected","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","mr","getIsPinned","size","MRT_ShowHideColumnsMenuItems","isSubMenu","onToggleColumnVisibility","columnVisibility","switchChecked","columnDefType","getIsVisible","getLeafColumns","some","col","justifyContent","pl","depth","getCanPin","FormControlLabel","componentsProps","typography","marginBottom","checked","control","Switch","getCanHide","columnDef","onChange","columns","forEach","childColumn","toggleVisibility","handleToggleColumnHidden","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getIsAllColumnsVisible","getIsSomeColumnsVisible","getIsSomeColumnsPinned","toggleAllColumnsVisible","getAllLeafColumns","enablePinning","allDisplayColumns","allDataColumns","dataColumns","columnPinning","display","p","pt","Button","enableHiding","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","setColumnOrder","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","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","filterSelectOptions","onMouseEnter","getCanGroup","toggleGrouping","old","getIsGrouped","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","length","_localization$showAll","MRT_RowActionMenu","handleEdit","enableEditing","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditSubmit","setCurrentEditingRow","currentEditingRow","gap","_valuesCache","original","color","commonIconButtonStyles","ml","opacity","&:hover","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","placement","preventDefault","MRT_SelectCheckbox","selectAll","getRowModel","getSelectedRowModel","muiSelectCheckboxProps","onSelectChange","onSelectAllChange","checkboxProps","Function","isSelectAll","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleAllRowsSelectedHandler","selectedRows","target","flatRows","getToggleSelectedHandler","selectedRow","MRT_SearchTextField","setGlobalFilter","muiSearchTextFieldProps","onGlobalSearchFilterChange","globalFilter","showGlobalFilter","searchValue","setSearchValue","handleChange","useCallback","debounce","textFieldProps","Collapse","in","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","rows","TablePagination","SelectProps","m","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","zIndex","MRT_ToolbarAlertBanner","muiTableToolbarAlertBannerProps","positionToolbarActions","positionToolbarAlertBanner","renderToolbarCustomActions","grouping","isMobile","useMediaQuery","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","find","_tableInstance$getAll","onDelete","getColumn","displayAbsolute","timeout","Alert","icon","borderRadius","fontSize","left","right","minHeight","top","MRT_LinearProgressBar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","LinearProgress","commonToolbarStyles","backgroundColor","lighten","theme","palette","background","backgroundImage","MRT_ToolbarTop","enablePagination","enableToolbarInternalActions","muiTableToolbarTopProps","positionPagination","toolbarProps","Toolbar","MRT_ToolbarBottom","muiTableToolbarBottomProps","bottom","boxShadow","alpha","common","black","MRT_FilterTextField","inputIndex","_column$getFilterValu2","handleChangeDebounced","newFilterValues","Filter","filterId","filterFn","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","fullWidth","textOverflow","helperText","htmlFor","name","FormHelperTextProps","lineHeight","whiteSpace","margin","e","disableHoverListener","minWidth","mt","&\t.MuiSelect-icon","_column$filterSelectO","text","MRT_ToggleColumnActionMenuButton","muiTableHeadCellColumnActionsButtonProps","iconButtonProps","MRT_FilterRangeFields","gridTemplateColumns","textAlign","MRT_TableHeadCell","enableColumnActions","muiTableHeadCellProps","tableCellProps","sortTooltip","_getState2","_getState2$currentFil","filterTooltip","Array","isArray","join","headerElement","_column$columnDef","Header","renderHeader","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","maxWidth","getSize","minSize","overflow","pb","getRightLeafHeaders","verticalAlign","getIsResizing","isPlaceholder","cursor","flexWrap","_column$columnDef$hea2","TableSortLabel","active","direction","disableRipple","flexItem","onDoubleClick","borderRightWidth","touchAction","userSelect","&:active","info","main","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","Edit","onBlur","MRT_CopyButton","children","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","editingMode","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","onCellClick","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","_event","textField","mode","darken","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","renderAggregatedCell","_cell$column$columnDe2","renderCell","subRows","_row$subRows","_cell$column$columnDe4","_row$subRows2","MRT_TableDetailPanel","getVisibleFlatColumns","muiTableBodyRowProps","muiTableDetailPanelProps","onDetailPanelClick","borderBottom","MRT_TableBodyRow","onRowClick","hover","&:hover td","getVisibleCells","MRT_TableBody","muiTableBodyProps","getPaginationRowModel","tableBodyProps","TableBody","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","renderFooter","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","h","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","getAllLeafColumnDefs","lowestLevelColumns","currentCols","_currentCols","nextCols","flat","every","createDataColumn","table","createDisplayColumn","MRT_TableRoot","props","setIdPrefix","substring","initialState","enablePersistentState","storedState","persistentStateMode","localStorage","getItem","sessionStorage","parsedState","JSON","parse","_initialState$paginat2","_initialState$paginat4","pageCount","_initialState$paginat5","setPagination","assign","_initialState$current3","_c$filterSelectOption","globalFilterFn","createTable","displayColumns","enableRowActions","_props$localization","enableExpanding","enableExpandAll","_props$localization2","enableRowSelection","enableSelectAll","_props$localization3","enableRowNumbers","_props$localization4","_props$localization5","Boolean","createGroup","_column$columns","data","state","_props$state2","fill","_props$state3","_props$state4","useTableInstance","filterFns","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getSortedRowModel","getSubRows","onPaginationChange","updater","functionalUpdate","itemArgs","stringify","setItem","Dialog","PaperComponent","TransitionComponent","Grow","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/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_SearchTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellGrabHandle.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/buttons/MRT_ToggleColumnActionMenuButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_DraggableTableHeadCell.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 and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n 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 to: 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 and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n 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 to: 'to',\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 BETWEEN = 'between',\n CONTAINS = 'contains',\n EMPTY = 'empty',\n ENDS_WITH = 'endsWith',\n EQUALS = 'equals',\n FUZZY = 'fuzzy',\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 DragHandleIcon from '@mui/icons-material/DragHandle';\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 DragHandleIcon: 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 DragHandleIcon,\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, Tooltip } 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 getCanSomeRowsExpand,\n getState,\n options: {\n icons: { DoubleArrowDownIcon },\n localization,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = tableInstance;\n\n const { isDensePadding } = getState();\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\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 </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, Tooltip } 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 <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\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 </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { MRT_Row } from '.';\n\nexport const fuzzy = (\n row: MRT_Row,\n columnId: string,\n value: string,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), value, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) >= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) <= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = (\n row: MRT_Row,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !row.getValue(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const defaultFilterFNs = {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import 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 between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\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 option: MRT_FILTER_OPTION;\n label: string;\n divider: boolean;\n fn: Function;\n }[] = useMemo(\n () =>\n [\n {\n option: MRT_FILTER_OPTION.FUZZY,\n label: localization.filterFuzzy,\n divider: false,\n fn: fuzzy,\n },\n {\n option: MRT_FILTER_OPTION.CONTAINS,\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n option: MRT_FILTER_OPTION.STARTS_WITH,\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n option: MRT_FILTER_OPTION.ENDS_WITH,\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n option: MRT_FILTER_OPTION.EQUALS,\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n option: MRT_FILTER_OPTION.NOT_EQUALS,\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n option: MRT_FILTER_OPTION.BETWEEN,\n label: localization.filterBetween,\n divider: false,\n fn: between,\n },\n {\n option: MRT_FILTER_OPTION.GREATER_THAN,\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n option: MRT_FILTER_OPTION.LESS_THAN,\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n option: MRT_FILTER_OPTION.EMPTY,\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n option: 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.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n [MRT_FILTER_OPTION.FUZZY, MRT_FILTER_OPTION.CONTAINS].includes(\n filterType.option,\n ),\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.setFilterValue(' ');\n } else if (value === MRT_FILTER_OPTION.BETWEEN) {\n header.column.setFilterValue(['', '']);\n } else {\n header.column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(value);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: isDensePadding,\n }}\n >\n {filterOptions.map(({ option, label, divider, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption || fn === filterOption}\n sx={commonMenuItemStyles}\n value={option}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({\n column,\n tableInstance,\n}) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = tableInstance;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ mr: '8px' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import 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 },\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 && column.getCanPin() && (\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={(isSubMenu && switchChecked) || !column.getCanHide()}\n label={column.columnDef.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.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {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.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${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.columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(column.columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() && [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(column.columnDef.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.columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={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.columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(column.columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n 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 '..';\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._valuesCache = row.original ?? {};\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 options: {\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 tableInstance.getToggleAllRowsSelectedHandler()(event as any);\n onSelectAllChange?.({\n event,\n selectedRows: event.target.checked ? getRowModel().flatRows : [],\n tableInstance,\n });\n } else if (row) {\n row?.getToggleSelectedHandler()(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 checkboxProps =\n muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ isSelectAll: !!selectAll, row, tableInstance })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll\n ? tableInstance.getIsAllRowsSelected()\n : row?.getIsSelected()\n }\n indeterminate={\n selectAll\n ? tableInstance.getIsSomeRowsSelected()\n : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={isDensePadding ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: isDensePadding ? '1.75rem' : '2.25rem',\n width: isDensePadding ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\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_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, {\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 } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_SearchTextField } from '../inputs/MRT_SearchTextField';\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 return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n tableInstance,\n }) ?? (\n <>\n {enableGlobalFilter && (\n <MRT_SearchTextField tableInstance={tableInstance} />\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 </>\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 } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n tableInstance,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = tableInstance;\n\n const { grouping } = getState();\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={tableInstance.getColumn(columnId).columnDef.header}\n onDelete={() =>\n tableInstance.getColumn(columnId).toggleGrouping()\n }\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={!!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\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: 'relative',\n right: 0,\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 {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ tableInstance }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = tableInstance;\n\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ tableInstance })\n : muiLinearProgressProps;\n\n return (\n <Collapse in={isLoading || showProgressBars} mountOnEnter 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 { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n 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 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 isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ tableInstance })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions);\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\n stackAlertBanner={stackAlertBanner}\n tableInstance={tableInstance}\n />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: 'calc(100% - 1rem)',\n }}\n >\n {renderToolbarCustomActions?.({ tableInstance }) ?? <span />}\n {enableToolbarInternalActions && positionToolbarActions === 'top' && (\n <MRT_ToolbarInternalButtons tableInstance={tableInstance} />\n )}\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, useMediaQuery } 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 renderToolbarCustomActions,\n },\n } = tableInstance;\n\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ tableInstance })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n positionToolbarActions === 'bottom') ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarCustomActions &&\n positionToolbarActions === 'bottom');\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 {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner tableInstance={tableInstance} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enableToolbarInternalActions && positionToolbarActions === 'bottom' ? (\n <MRT_ToolbarInternalButtons tableInstance={tableInstance} />\n ) : (\n <span />\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 inputIndex?: number;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n tableInstance,\n}) => {\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 inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce(\n (event: ChangeEvent<HTMLInputElement>) =>\n inputIndex !== undefined\n ? column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n })\n : column.setFilterValue(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 if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: MRT_FILTER_OPTION.FUZZY,\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 inputIndex ?? ''\n }`;\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 =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(column.columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\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 !inputIndex ? (\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 ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n label={isSelectFilter && !filterValue ? filterPlaceholder : undefined}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n }}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: !isSelectFilter && !inputIndex && (\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 ? '6rem' : '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 } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, tableInstance }) => {\n const {\n options: { localization },\n } = tableInstance;\n\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr auto 5fr' }}>\n <MRT_FilterTextField\n header={header}\n inputIndex={0}\n tableInstance={tableInstance}\n />\n <Box\n sx={{\n width: '100%',\n minWidth: '5ch',\n textAlign: 'center',\n }}\n >\n {localization.to}\n </Box>\n <MRT_FilterTextField\n header={header}\n inputIndex={1}\n tableInstance={tableInstance}\n />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_FILTER_OPTION } from '../enums';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const { getState } = tableInstance;\n\n const { currentFilterFns, showFilters } = getState();\n\n const { column } = header;\n\n return (\n <Collapse in={showFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? (\n <MRT_FilterRangeFields header={header} tableInstance={tableInstance} />\n ) : (\n <MRT_FilterTextField header={header} tableInstance={tableInstance} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon, FilterAltOff },\n localization,\n },\n setShowFilters,\n } = tableInstance;\n\n const { showFilters } = getState();\n\n const { column } = header;\n\n const filterFn = getState()?.currentFilterFns?.[header.id];\n\n const filterTooltip = !!column.getFilterValue()\n ? localization.filteringByColumn\n .replace('{column}', String(column.columnDef.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(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '')\n : localization.showHideFilters;\n\n return (\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.getFilterValue() || showFilters ? 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.getFilterValue() ? (\n <FilterAltOff />\n ) : (\n <FilterAltIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import { IconButton, Tooltip } from '@mui/material';\nimport React, { FC, forwardRef, Ref } from 'react';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n ref: Ref<HTMLButtonElement>;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellGrabHandle: FC<Props> = forwardRef(\n ({ tableInstance }, ref) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = tableInstance;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.grab}\n >\n <IconButton\n disableRipple\n ref={ref}\n size=\"small\"\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n },\n);\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const { getState } = tableInstance;\n\n const { showFilters } = getState();\n\n const { column } = header;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height:\n showFilters && column.columnDefType === 'data' ? '4rem' : '2rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 2000,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const {\n options: { localization },\n } = tableInstance;\n\n const { column } = header;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace(\n '{column}',\n column.columnDef.header,\n )\n : localization.sortedByColumnAsc.replace(\n '{column}',\n column.columnDef.header,\n )\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n />\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n 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, ReactNode, Ref } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten } from '@mui/material';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport { MRT_ToggleColumnActionMenuButton } from '../buttons/MRT_ToggleColumnActionMenuButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n dragRef?: Ref<HTMLButtonElement>;\n dropRef?: Ref<HTMLDivElement>;\n header: MRT_Header;\n isDragging?: boolean;\n previewRef?: Ref<HTMLTableCellElement>;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({\n dragRef,\n dropRef,\n header,\n isDragging,\n previewRef,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnFilters,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n muiTableHeadCellProps,\n },\n } = tableInstance;\n\n const { isDensePadding } = 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 ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = (column.columnDef?.Header?.({\n header,\n tableInstance,\n }) ?? header.renderHeader()) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (tableInstance.getRightLeafHeaders().length -\n 1 -\n column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n {...tableCellProps}\n ref={column.columnDefType === 'data' ? dropRef : undefined}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && column.columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n height: '100%',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\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 pb: column.columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && column.columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n column.columnDefType === 'display'\n ? 0\n : isDensePadding\n ? '0.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n verticalAlign: 'text-top',\n zIndex: column.getIsResizing()\n ? 3\n : column.getIsPinned() && column.columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\n })}\n style={{\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${column.minSize ?? 30}px)`,\n width: header.getSize(),\n }}\n >\n {header.isPlaceholder ? null : column.columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n ref={previewRef}\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n column.columnDefType === 'group' ? 'center' : 'space-between',\n opacity: isDragging ? 0.5 : 1,\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:\n (column.columnDef.header?.length ?? 0) < 24\n ? 'nowrap'\n : 'normal',\n }}\n >\n {headerElement}\n {column.columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel\n header={header}\n tableInstance={tableInstance}\n />\n )}\n {column.columnDefType === 'data' &&\n enableColumnFilters &&\n column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel\n header={header}\n tableInstance={tableInstance}\n />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {column.columnDefType === 'data' &&\n ((enableColumnOrdering &&\n column.enableColumnOrdering !== false) ||\n (enableGrouping && column.enableGrouping !== false)) && (\n <MRT_TableHeadCellGrabHandle\n header={header}\n ref={dragRef as Ref<HTMLButtonElement>}\n tableInstance={tableInstance}\n />\n )}\n {(enableColumnActions || column.enableColumnActions) &&\n column.enableColumnActions !== false &&\n column.columnDefType !== 'group' && (\n <MRT_ToggleColumnActionMenuButton\n header={header}\n tableInstance={tableInstance}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle\n header={header}\n tableInstance={tableInstance}\n />\n )}\n </Box>\n )}\n {column.columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer\n header={header}\n tableInstance={tableInstance}\n />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_DraggableTableHeadCell: FC<Props> = ({\n header,\n tableInstance,\n}) => {\n const {\n getState,\n options: {},\n setColumnOrder,\n } = tableInstance;\n\n const { columnOrder } = getState();\n\n const reorder = (item: MRT_Header, newIndex: number) => {\n const { index: currentIndex } = item;\n columnOrder.splice(newIndex, 0, columnOrder.splice(currentIndex, 1)[0]);\n setColumnOrder([...columnOrder]);\n };\n\n const [, drop] = useDrop({\n accept: 'header',\n drop: (item: MRT_Header) => reorder(item, header.index),\n });\n\n const [{ isDragging }, drag, preview] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => header,\n type: 'header',\n });\n\n return (\n <MRT_TableHeadCell\n dragRef={drag}\n dropRef={drop}\n header={header}\n isDragging={isDragging}\n previewRef={preview}\n tableInstance={tableInstance}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { MRT_DraggableTableHeadCell } from './MRT_DraggableTableHeadCell';\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: { enableColumnOrdering, enableGrouping, muiTableHeadRowProps },\n } = tableInstance;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, tableInstance })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) =>\n enableColumnOrdering || enableGrouping ? (\n <MRT_DraggableTableHeadCell\n header={header}\n key={header.id || index}\n tableInstance={tableInstance}\n />\n ) : (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n tableInstance={tableInstance}\n />\n ),\n )}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ tableInstance }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = tableInstance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ tableInstance })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n 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.getValue());\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._valuesCache[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.columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n 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.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...buttonProps?.sx,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { alpha, darken, lighten, 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 enableHover?: boolean;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n tableInstance,\n}) => {\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableEditing,\n idPrefix,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n onCellClick,\n },\n setCurrentEditingCell,\n } = tableInstance;\n\n const {\n currentEditingCell,\n currentEditingRow,\n isDensePadding,\n isLoading,\n showSkeletons,\n } = 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 ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n column.columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [column.columnDefType, column.getSize()],\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 const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (tableInstance.getRightLeafHeaders().length -\n 1 -\n column.getPinnedIndex()) *\n 150\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={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n 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 position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: isDensePadding ? 'nowrap' : 'normal',\n zIndex: column.getIsPinned() ? 1 : undefined,\n '&:hover': {\n backgroundColor: enableHover\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.13)} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n })}\n style={{\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${column.minSize ?? 30}px)`,\n width: column.getSize(),\n }}\n >\n <>\n {isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : column.columnDefType === 'display' ? (\n column.columnDef.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 <>\n {cell.column.columnDef?.Cell?.({ cell, tableInstance }) ??\n cell.renderCell()}\n </>\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {cell.column.columnDef?.Cell?.({ cell, tableInstance }) ??\n cell.renderCell()}\n {row.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\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 { darken, lighten, TableRow } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, tableInstance }) => {\n const {\n options: { muiTableBodyRowProps, onRowClick, renderDetailPanel },\n } = tableInstance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, tableInstance })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n onClick={(event: MouseEvent<HTMLTableRowElement>) =>\n onRowClick?.({ event, row, tableInstance })\n }\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n })}\n >\n {row.getVisibleCells().map((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n tableInstance={tableInstance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ tableInstance }) => {\n const {\n getPaginationRowModel,\n getPrePaginationRowModel,\n options: { enablePagination, muiTableBodyProps },\n } = tableInstance;\n\n const rows = enablePagination\n ? getPaginationRowModel().rows\n : getPrePaginationRowModel().rows;\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ tableInstance })\n : muiTableBodyProps;\n\n return (\n <TableBody {...tableBodyProps}>\n {rows.map((row) => (\n <MRT_TableBodyRow\n key={row.id}\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 ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={column.columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p: isDensePadding ? '0.5rem' : '1rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : column.columnDef.Footer?.({\n footer,\n tableInstance,\n }) ??\n column.columnDef.footer ??\n footer.renderFooter() ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n 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) =>\n (typeof h.column.columnDef.footer === 'string' &&\n !!h.column.columnDef.footer) ||\n h.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, tableInstance })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.id}\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_TableInstance } from '..';\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ tableInstance }) => {\n const {\n getFooterGroups,\n\n options: { muiTableFooterProps },\n } = tableInstance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ tableInstance })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n 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 tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableInstance }) => {\n const {\n options: {\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = tableInstance;\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ tableInstance })\n : muiTableProps;\n\n return (\n <Table stickyHeader={enableStickyHeader} {...tableProps}>\n {enableTableHead && <MRT_TableHead tableInstance={tableInstance} />}\n <MRT_TableBody tableInstance={tableInstance} />\n {enableTableFooter && <MRT_TableFooter tableInstance={tableInstance} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n tableInstance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {\n const {\n getState,\n options: { enableStickyHeader, idPrefix, muiTableContainerProps },\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 useIsomorphicLayoutEffect(() => {\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 <MRT_Table tableInstance={tableInstance} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\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 <DndProvider backend={HTML5Backend}>\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 </DndProvider>\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 FilterFn,\n PaginationState,\n createTable,\n functionalUpdate,\n getExpandedRowModel,\n getPaginationRowModel,\n useTableInstance,\n getGroupedRowModel,\n getSortedRowModel,\n getCoreRowModel,\n getFilteredRowModel,\n ReactTableGenerics,\n getFacetedRowModel,\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,\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.FUZZY),\n })),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<\n MRT_FILTER_OPTION | FilterFn<ReactTableGenerics> | string | number | symbol\n >(props.globalFilterFn ?? MRT_FILTER_OPTION.FUZZY);\n\n const table = useMemo(() => createTable(), []);\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 any}\n tableInstance={tableInstance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n size: 60,\n }),\n (props.enableExpanding || props.enableGrouping) &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton\n row={cell.row as any}\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 size: 50,\n }),\n props.enableRowSelection &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox\n row={cell.row as any}\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 size: 50,\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 size: 50,\n }),\n ].filter(Boolean),\n [\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n table,\n ],\n );\n\n const columns = useMemo(\n () => [\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column as any, currentFilterFns)\n : createDataColumn(table, column as any, currentFilterFns),\n ),\n ],\n [table, props.columns, currentFilterFns],\n );\n\n const data: D[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n const [columnOrder, setColumnOrder] = useState<string[]>(() =>\n initialState?.columnOrder ?? props.enableColumnOrdering\n ? getAllLeafColumnDefs(columns as MRT_ColumnDef[]).map((c) => c.id)\n : [],\n );\n\n //@ts-ignore\n const tableInstance = {\n //@ts-ignore\n ...useTableInstance(table, {\n filterFns: defaultFilterFNs,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getSubRows: (row) => (row as MRT_Row)?.subRows,\n //@ts-ignore\n globalFilterFn: currentGlobalFilterFn,\n onColumnOrderChange: setColumnOrder,\n onPaginationChange: (updater: any) =>\n setPagination((old) => functionalUpdate(updater, old)),\n ...props,\n //@ts-ignore\n columns,\n data,\n idPrefix,\n initialState,\n state: {\n columnOrder,\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 setCurrentEditingCell,\n setCurrentEditingRow,\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n setIsDensePadding,\n setIsFullScreen,\n setShowFilters,\n setShowGlobalFilter,\n } as MRT_TableInstance;\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 FilterFn,\n FilterFnOption,\n Header,\n HeaderGroup,\n Overwrite,\n PaginationState,\n ReactTableGenerics,\n Row,\n TableGenerics,\n TableInstance,\n TableState,\n UseTableInstanceOptions,\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 UseTableInstanceOptions<ReactTableGenerics>,\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<TableGenerics>,\n {\n Row: D;\n }\n >\n >,\n | 'getAllColumns'\n | 'getAllLeafColumns'\n | 'getColumn'\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 getColumn: (columnId: string) => 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 | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterFn;\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 isLoading: boolean;\n isFullScreen: boolean;\n pagination: Partial<PaginationState>;\n showFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\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 enableColumnOrdering?: 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 columnDef: MRT_ColumnDef<D>;\n header: string;\n footer: string;\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' | 'getAllCells' | 'subRows' | 'original'\n> & {\n getAllCells: () => 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<TableGenerics>\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 enableColumnOrdering?: 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 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 columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 50, maxSize: 1000, size: 150 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensePaddingToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enablePagination = true,\n enablePinning = false,\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 columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensePaddingToggle={enableDensePaddingToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\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","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","pinToLeft","pinToRight","resetColumnSize","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","to","toggleDensePadding","toggleFullScreen","toggleSelectAll","toggleSelectRow","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","CancelIcon","CheckBoxIcon","ClearAllIcon","CloseIcon","DensityMediumIcon","DensitySmallIcon","DoubleArrowDownIcon","DragHandleIcon","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","getCanSomeRowsExpand","options","icons","localization","renderDetailPanel","toggleAllRowsExpanded","isDensePadding","getState","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","onRowExpandChange","getCanExpand","event","toggleExpanded","getIsExpanded","fuzzy","columnId","value","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","id","filterValue","toString","toLowerCase","trim","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","undefined","empty","_filterValue","notEmpty","defaultFilterFNs","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","filterOptions","useMemo","option","FUZZY","label","divider","fn","CONTAINS","STARTS_WITH","ENDS_WITH","EQUALS","NOT_EQUALS","BETWEEN","GREATER_THAN","LESS_THAN","EMPTY","NOT_EMPTY","filter","filterType","column","enabledColumnFilterOptions","filterOption","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","selected","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","mr","getIsPinned","size","MRT_ShowHideColumnsMenuItems","isSubMenu","onToggleColumnVisibility","columnVisibility","switchChecked","columnDefType","getIsVisible","getLeafColumns","some","col","justifyContent","pl","depth","getCanPin","FormControlLabel","componentsProps","typography","marginBottom","checked","control","Switch","getCanHide","columnDef","onChange","columns","forEach","childColumn","toggleVisibility","handleToggleColumnHidden","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getIsAllColumnsVisible","getIsSomeColumnsVisible","getIsSomeColumnsPinned","toggleAllColumnsVisible","getAllLeafColumns","enablePinning","allDisplayColumns","allDataColumns","dataColumns","columnPinning","display","p","pt","Button","enableHiding","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","setColumnOrder","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","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","filterSelectOptions","onMouseEnter","getCanGroup","toggleGrouping","old","getIsGrouped","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","length","_localization$showAll","MRT_RowActionMenu","handleEdit","enableEditing","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditSubmit","setCurrentEditingRow","currentEditingRow","gap","_valuesCache","original","color","commonIconButtonStyles","ml","opacity","&:hover","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","placement","preventDefault","MRT_SelectCheckbox","selectAll","getRowModel","getSelectedRowModel","muiSelectCheckboxProps","onSelectChange","onSelectAllChange","checkboxProps","Function","isSelectAll","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleAllRowsSelectedHandler","selectedRows","target","flatRows","getToggleSelectedHandler","selectedRow","MRT_FullScreenToggleButton","rest","onToggleFullScreen","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","onToggleDensePadding","setIsDensePadding","MRT_ToggleFiltersButton","onToggleShowFilters","showFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","onToggleShowGlobalFilter","setShowGlobalFilter","showGlobalFilter","textFieldProps","MRT_SearchTextField","setGlobalFilter","onGlobalSearchFilterChange","globalFilter","searchValue","setSearchValue","handleChange","useCallback","debounce","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","justifySelf","MRT_ToolbarInternalButtons","enableDensePaddingToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","pagination","pageSize","pageIndex","tablePaginationProps","showFirstLastPageButtons","rows","TablePagination","SelectProps","m","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","MRT_ToolbarAlertBanner","stackAlertBanner","muiTableToolbarAlertBannerProps","grouping","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","left","right","top","MRT_LinearProgressBar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","LinearProgress","commonToolbarStyles","backgroundColor","lighten","theme","palette","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","enableToolbarInternalActions","muiTableToolbarTopProps","positionPagination","positionToolbarActions","positionToolbarAlertBanner","renderToolbarCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","MRT_ToolbarBottom","muiTableToolbarBottomProps","bottom","boxShadow","alpha","common","black","MRT_FilterTextField","inputIndex","_column$getFilterValu2","handleChangeDebounced","newFilterValues","Filter","filterId","filterFn","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","fullWidth","textOverflow","helperText","htmlFor","name","FormHelperTextProps","lineHeight","whiteSpace","margin","e","disableHoverListener","minWidth","mt","&\t.MuiSelect-icon","_column$filterSelectO","text","MRT_FilterRangeFields","gridTemplateColumns","textAlign","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","_getState2","_getState2$currentFil","filterTooltip","Array","isArray","join","disableRipple","MRT_TableHeadCellGrabHandle","forwardRef","ref","cursor","&:active","MRT_TableHeadCellResizeHandle","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","main","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_ToggleColumnActionMenuButton","muiTableHeadCellColumnActionsButtonProps","iconButtonProps","MRT_TableHeadCell","dragRef","dropRef","isDragging","previewRef","enableColumnActions","enableColumnOrdering","muiTableHeadCellProps","tableCellProps","headerElement","_column$columnDef","Header","renderHeader","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","flexWrap","_column$columnDef$hea2","MRT_DraggableTableHeadCell","_objectDestructuringEmpty","columnOrder","drop","useDrop","accept","item","newIndex","splice","reorder","useDrag","collect","monitor","type","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","Edit","onBlur","MRT_CopyButton","children","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","editingMode","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","onCellClick","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","_event","textField","mode","darken","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","renderAggregatedCell","_cell$column$columnDe2","renderCell","subRows","_row$subRows","_cell$column$columnDe4","_row$subRows2","MRT_TableDetailPanel","getVisibleFlatColumns","muiTableBodyRowProps","muiTableDetailPanelProps","onDetailPanelClick","borderBottom","MRT_TableBodyRow","onRowClick","hover","&:hover td","getVisibleCells","MRT_TableBody","muiTableBodyProps","getPaginationRowModel","tableBodyProps","TableBody","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","renderFooter","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","h","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","DndProvider","backend","HTML5Backend","Paper","elevation","padding","getAllLeafColumnDefs","lowestLevelColumns","currentCols","_currentCols","nextCols","flat","every","createDataColumn","table","createDisplayColumn","MRT_TableRoot","props","setIdPrefix","substring","initialState","enablePersistentState","storedState","persistentStateMode","localStorage","getItem","sessionStorage","parsedState","JSON","parse","_initialState$paginat2","_initialState$paginat4","pageCount","_initialState$paginat5","setPagination","assign","_initialState$current3","_c$filterSelectOption","globalFilterFn","createTable","displayColumns","enableRowActions","_props$localization","enableExpanding","enableExpandAll","_props$localization2","enableRowSelection","enableSelectAll","_props$localization3","enableRowNumbers","_props$localization4","_props$localization5","Boolean","createGroup","_column$columns","data","state","_props$state2","fill","_props$state3","_props$state4","useTableInstance","filterFns","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getSortedRowModel","getSubRows","onColumnOrderChange","onPaginationChange","updater","functionalUpdate","itemArgs","stringify","setItem","Dialog","PaperComponent","TransitionComponent","Grow","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","columnResizeMode","defaultColumn","maxSize","enableMultiRowSelection","positionActionsColumn"],"mappings":"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"}
|