material-react-table 0.24.1 → 0.26.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/README.md +13 -11
  2. package/dist/MaterialReactTable.d.ts +18 -16
  3. package/dist/{utils.d.ts → column.utils.d.ts} +3 -3
  4. package/dist/filtersFns.d.ts +22 -54
  5. package/dist/localization.d.ts +3 -0
  6. package/dist/material-react-table.cjs.development.js +251 -175
  7. package/dist/material-react-table.cjs.development.js.map +1 -1
  8. package/dist/material-react-table.cjs.production.min.js +1 -1
  9. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  10. package/dist/material-react-table.esm.js +251 -175
  11. package/dist/material-react-table.esm.js.map +1 -1
  12. package/dist/table/MRT_TableRoot.d.ts +1 -1
  13. package/package.json +3 -3
  14. package/src/MaterialReactTable.tsx +29 -24
  15. package/src/body/MRT_TableBodyCell.tsx +6 -2
  16. package/src/body/MRT_TableBodyRow.tsx +3 -1
  17. package/src/body/MRT_TableDetailPanel.tsx +5 -3
  18. package/src/buttons/MRT_CopyButton.tsx +5 -3
  19. package/src/buttons/MRT_ExpandButton.tsx +5 -3
  20. package/src/{utils.ts → column.utils.ts} +2 -1
  21. package/src/filtersFns.ts +47 -13
  22. package/src/footer/MRT_TableFooterCell.tsx +3 -1
  23. package/src/head/MRT_TableHeadCell.tsx +32 -30
  24. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +5 -3
  25. package/src/head/MRT_TableHeadCellGrabHandle.tsx +1 -1
  26. package/src/inputs/MRT_FilterTextField.tsx +12 -6
  27. package/src/inputs/MRT_SelectCheckbox.tsx +18 -21
  28. package/src/localization.ts +6 -0
  29. package/src/menus/MRT_ColumnActionMenu.tsx +16 -15
  30. package/src/menus/MRT_FilterOptionMenu.tsx +105 -72
  31. package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
  32. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +1 -1
  33. package/src/table/MRT_Table.tsx +5 -3
  34. package/src/table/MRT_TableContainer.tsx +5 -3
  35. package/src/table/MRT_TableRoot.tsx +57 -40
  36. package/src/toolbar/MRT_TablePagination.tsx +5 -3
  37. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +5 -3
  38. package/src/toolbar/MRT_ToolbarBottom.tsx +3 -1
  39. package/src/toolbar/MRT_ToolbarTop.tsx +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellGrabHandle.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyRowGrabHandle.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n move: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n move: 'Move',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ table }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ table })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ table, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = table;\n const { currentFilterFns, currentGlobalFilterFn, density } = getState();\n const { column } = header ?? {};\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n [\n {\n option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\n },\n ].filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ) as Array<{\n option: MRT_FilterOption;\n label: string;\n divider: boolean;\n fn: Function;\n }>,\n [],\n );\n\n const handleSelectFilterType = (option: MRT_FilterOption) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: any }) => ({\n ...prev,\n [header.id]: option,\n }));\n if (['empty', 'notEmpty'].includes(option)) {\n column.setFilterValue(' ');\n } else if (option === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(option);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={commonMenuItemStyles}\n value={option}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, table }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = table;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport React, { DragEventHandler, FC } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n iconButtonProps?: IconButtonProps;\n onDragStart: DragEventHandler<HTMLButtonElement>;\n onDragEnd: DragEventHandler<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = ({\n iconButtonProps,\n onDragEnd,\n onDragStart,\n table,\n}) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = table;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.move}\n >\n <IconButton\n disableRipple\n draggable=\"true\"\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n ...iconButtonProps?.sx,\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { filterFns, Row } from '@tanstack/react-table';\n\nexport const fuzzy = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n columnId: string,\n filterValue: string | number,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue as string, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) >= +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) <= +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue<string | number>(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue<string | number>(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport { MRT_Row } from '.';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n rowA: Row<TData>,\n rowB: Row<TData>,\n columnId: string,\n) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n ...sortingFns,\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(\n rowA: MRT_Row<TData>,\n rowB: MRT_Row<TData>,\n) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import { ColumnOrderState } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_DefinedColumnDef,\n MRT_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <TData extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<TData>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<TData>[],\n): MRT_ColumnDef<TData>[] => {\n let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;\n let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<TData>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<TData>[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const prepareColumns = <TData extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<TData>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<TData>[] =>\n columnDefs.map((columnDef) => {\n if (!columnDef.id) columnDef.id = getColumnId(columnDef);\n if (process.env.NODE_ENV !== 'production' && !columnDef.id) {\n console.error(\n 'Column definitions must have a valid `accessorKey` or `id` property',\n );\n }\n if (!columnDef.columnDefType) columnDef.columnDefType = 'data';\n if (!!columnDef.columns?.length) {\n columnDef.columnDefType = 'group';\n columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);\n } else if (columnDef.columnDefType === 'data') {\n if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {\n columnDef.filterFn =\n MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;\n }\n if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {\n // @ts-ignore\n columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];\n }\n }\n return columnDef;\n }) as MRT_DefinedColumnDef<TData>[];\n\nexport const reorderColumn = <TData extends Record<string, any> = {}>(\n draggedColumn: MRT_Column<TData>,\n targetColumn: MRT_Column<TData>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (draggedColumn.getCanPin()) {\n draggedColumn.pin(targetColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(targetColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(draggedColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n props.enableRowSelection && 'mrt-row-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns).map((columnDef) =>\n getColumnId(columnDef),\n ),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, {\n Dispatch,\n DragEvent,\n FC,\n SetStateAction,\n useState,\n} from 'react';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n currentHoveredColumn: MRT_Column | null;\n isSubMenu?: boolean;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column | null>>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n currentHoveredColumn,\n setCurrentHoveredColumn,\n column,\n isSubMenu,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = table;\n const { columnOrder } = getState();\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n const menuItemRef = React.useRef<HTMLElement>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n e.dataTransfer.setDragImage(menuItemRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n setCurrentHoveredColumn(null);\n if (currentHoveredColumn) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (!isDragging) {\n setCurrentHoveredColumn(column);\n }\n };\n\n return (\n <>\n <MenuItem\n disableRipple\n ref={menuItemRef as any}\n onDragEnter={handleDragEnter}\n sx={(theme) => ({\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n opacity: isDragging ? 0.5 : 1,\n outline: isDragging\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : 'none',\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n })}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {!isSubMenu &&\n columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {!isSubMenu &&\n enablePinning &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} table={table} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={c}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${i}-${c.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n table,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = table;\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDef.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column | null>(null);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n table.setColumnOrder(\n getDefaultColumnOrderIds(table.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => table.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-row-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n table={table}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n table={table}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = table;\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n table,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = table;\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, table });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = table;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, table })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} table={table} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = table;\n const { density } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n table.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n table.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_Row, table })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = table;\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ table, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = table;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = table;\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = table;\n const { showColumnFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showColumnFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showColumnFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = table;\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = table;\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = table;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n table,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton table={table} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton table={table} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton table={table} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton table={table} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton table={table} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ table, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = table;\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ table })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={{\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n table,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = table;\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ table })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={table.getColumn(columnId).columnDef.header}\n onDelete={() => table.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n isTopToolbar: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ isTopToolbar, table }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = table;\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ isTopToolbar, table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: isTopToolbar ? 0 : undefined,\n position: 'absolute',\n top: !isTopToolbar ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = table;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ table })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!renderToolbarTopCustomActions || showGlobalFilter));\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...toolbarProps?.sx,\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n table={table}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n\n {renderToolbarTopCustomActions?.({ table }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons table={table} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"top\" />\n )}\n <MRT_LinearProgressBar isTopToolbar table={table} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ table })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarBottomCustomActions);\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar isTopToolbar={false} table={table} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner table={table} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ table })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n table,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, table })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...iconButtonProps.sx,\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, table })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, table })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const currentFilterOption = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)\n ? //@ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...textFieldProps?.sx,\n }}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} table={table} />\n <MRT_FilterTextField header={header} inputIndex={1} table={table} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n table,\n}) => {\n const { getState } = table;\n const { currentFilterFns, showColumnFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showColumnFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} table={table} />\n ) : (\n <MRT_FilterTextField header={header} table={table} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = table;\n const { currentFilterFns } = getState();\n const { column } = header;\n const { columnDef } = column;\n\n const currentFilterOption = currentFilterFns?.[header.id];\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && currentFilterOption !== 'between') ||\n (currentFilterOption === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n tableHeadCellRef: RefObject<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCellGrabHandle: FC<Props> = ({\n column,\n table,\n tableHeadCellRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n muiTableHeadCellDragHandleProps,\n onColumnDrop,\n },\n setColumnOrder,\n setCurrentDraggingColumn,\n setCurrentHoveredColumn,\n } = table;\n const { columnDef } = column;\n const { currentHoveredColumn, currentDraggingColumn, columnOrder } =\n getState();\n\n const mIconButtonProps =\n muiTableHeadCellDragHandleProps instanceof Function\n ? muiTableHeadCellDragHandleProps({ column, table })\n : muiTableHeadCellDragHandleProps;\n\n const mcIconButtonProps =\n columnDef.muiTableHeadCellDragHandleProps instanceof Function\n ? columnDef.muiTableHeadCellDragHandleProps({ column, table })\n : columnDef.muiTableHeadCellDragHandleProps;\n\n const iconButtonProps = {\n ...mIconButtonProps,\n ...mcIconButtonProps,\n };\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(column);\n e.dataTransfer.setDragImage(tableHeadCellRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onColumnDrop?.({\n event,\n draggedColumn: column,\n targetColumn: currentHoveredColumn,\n });\n if (\n enableColumnOrdering &&\n currentHoveredColumn &&\n currentHoveredColumn?.id !== currentDraggingColumn?.id\n ) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n setCurrentDraggingColumn(null);\n setCurrentHoveredColumn(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: { columnResizeMode },\n } = table;\n const { density, showColumnFilters } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${\n (getState().columnSizingInfo.deltaOffset ?? 0) /\n (columnResizeMode === 'onChange' ? 16 : 1)\n }px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {\n const {\n options: { localization },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, ReactNode } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten, useTheme } from '@mui/material';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnDragging,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n setCurrentHoveredColumn,\n } = table;\n const { density, currentDraggingColumn, currentHoveredColumn } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, table })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, table })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(columnDefType === 'data' ? column : null);\n }\n };\n\n const tableHeadCellRef = React.useRef<HTMLTableCellElement>(null);\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderTop: draggingBorder,\n }\n : undefined;\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n onDragEnter={handleDragEnter}\n ref={tableHeadCellRef}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType === 'group'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,\n verticalAlign: 'text-top',\n zIndex:\n column.getIsResizing() || currentDraggingColumn?.id === column.id\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnDragging &&\n columnDef.enableColumnDragging !== false) ||\n (enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_TableHeadCellGrabHandle\n column={column}\n table={table}\n tableHeadCellRef={tableHeadCellRef}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {\n const {\n options: { muiTableHeadRowProps },\n } = table;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, table })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ table }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = table;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ table })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n table={table}\n />\n ))}\n </TableHead>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = table;\n const { column, row } = cell;\n const { columnDef } = column;\n\n const [value, setValue] = useState(cell.getValue<string>());\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, table });\n onCellEditChange?.({ event, cell, table });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, table });\n onCellEditBlur?.({ event, cell, table });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, table })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, table })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n table: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, table }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = table;\n const { column } = cell;\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, table })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...buttonProps?.sx,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\n\ninterface Props {\n cell: MRT_Cell;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRowGrabHandle: FC<Props> = ({\n cell,\n rowRef,\n table,\n}) => {\n const {\n options: { muiTableBodyRowDragHandleProps, onRowDrop },\n } = table;\n\n const iconButtonProps =\n muiTableBodyRowDragHandleProps instanceof Function\n ? muiTableBodyRowDragHandleProps({ row: cell.row, table })\n : muiTableBodyRowDragHandleProps;\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n e.dataTransfer.setDragImage(rowRef.current as HTMLElement, 0, 0);\n table.setCurrentDraggingRow(cell.row as any);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onRowDrop?.({\n event,\n draggedRow: table.getState().currentDraggingRow as any,\n targetRow: table.getState().currentHoveredRow as any,\n });\n table.setCurrentDraggingRow(null);\n table.setCurrentHoveredRow(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { DragEvent, FC, MouseEvent, RefObject, useMemo } from 'react';\nimport {\n alpha,\n darken,\n lighten,\n Skeleton,\n TableCell,\n useTheme,\n} from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n rowRef,\n table,\n}) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setCurrentEditingCell,\n setCurrentHoveredColumn,\n } = table;\n const {\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentHoveredColumn,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, table })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, table })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(columnDefType === 'data' ? column : null);\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderBottom:\n row.index === table.getRowModel().rows.length - 1\n ? draggingBorder\n : undefined,\n }\n : undefined;\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n onDragEnter={handleDragEnter}\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-row-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex:\n currentDraggingColumn?.id === column.id\n ? 2\n : column.getIsPinned()\n ? 1\n : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : column.id === 'mrt-row-drag' ? (\n <MRT_TableBodyRowGrabHandle\n cell={cell}\n rowRef={rowRef}\n table={table}\n />\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, table })\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} table={table} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} table={table}>\n <>{columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}</>\n </MRT_CopyButton>\n {cell.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}\n {cell.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, table })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={{\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${table.getTotalSize()}px`,\n ...tableCellProps?.sx,\n }}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, table })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { DragEvent, FC, useRef } from 'react';\nimport { darken, lighten, TableRow, useTheme } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, table }) => {\n const theme = useTheme();\n const {\n getIsSomeColumnsPinned,\n getState,\n options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel },\n setCurrentHoveredRow,\n } = table;\n const { currentDraggingRow, currentHoveredRow } = getState();\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableRowOrdering && currentDraggingRow) {\n setCurrentHoveredRow(row);\n }\n };\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n\n const draggingBorder =\n currentDraggingRow?.id === row.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredRow?.id === row.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n border: draggingBorder,\n }\n : undefined;\n\n return (\n <>\n <TableRow\n onDragEnter={handleDragEnter}\n hover\n selected={row.getIsSelected()}\n ref={rowRef}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n opacity:\n currentDraggingRow?.id === row.id ||\n currentHoveredRow?.id === row.id\n ? 0.5\n : 1,\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n ...draggingBorders,\n })}\n >\n {row?.getVisibleCells()?.map?.((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n rowRef={rowRef}\n table={table}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} table={table} />\n )}\n </>\n );\n};\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { rankGlobalFuzzy } from '../sortingFns';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ table, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = table;\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ table })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n // estimateSize: () => (density === 'compact' ? 25 : 50),\n overscan: density === 'compact' ? 30 : 10,\n parentRef: tableContainerRef,\n size: rows.length,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const virtualRows = enableRowVirtualization\n ? rowVirtualizer.virtualItems\n : [];\n\n let paddingTop = 0;\n let paddingBottom = 0;\n if (enableRowVirtualization) {\n paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n }\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n table={table}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = table;\n const { density } = getState();\n const { column } = footer;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, table })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, table })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n table,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {\n const {\n options: { muiTableFooterRowProps },\n } = table;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, table })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ table }) => {\n const {\n getFooterGroups,\n options: { muiTableFooterProps },\n } = table;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ table })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n table={table}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, table }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ table })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\n }}\n >\n {enableTableHead && <MRT_TableHead table={table} />}\n <MRT_TableBody tableContainerRef={tableContainerRef} table={table} />\n {enableTableFooter && <MRT_TableFooter table={table} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ table })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n ref={tableContainerRef}\n {...tableContainerProps}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} table={table} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ table }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = table;\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ table })\n : muiTablePaperProps;\n\n return (\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop table={table} />}\n <MRT_TableContainer table={table} />\n {enableToolbarBottom && <MRT_ToolbarBottom table={table} />}\n </Paper>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n TableState,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\n\nexport const MRT_TableRoot = <TData extends Record<string, any> = {}>(\n props: MaterialReactTableProps<TData>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentDraggingColumn, setCurrentDraggingColumn] =\n useState<MRT_Column<TData> | null>(null);\n const [currentDraggingRow, setCurrentDraggingRow] =\n useState<MRT_Row<TData> | null>(null);\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<TData> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] =\n useState<MRT_Row<TData> | null>(initialState?.currentEditingRow ?? null);\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column<TData> | null>(null);\n const [currentHoveredRow, setCurrentHoveredRow] =\n useState<MRT_Row<TData> | null>(null);\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showColumnFilters, setShowFilters] = useState(\n initialState?.showColumnFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(\n (col) => ({\n [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:\n col.filterFn instanceof Function\n ? col.filterFn.name ?? 'custom'\n : col.filterFn ??\n initialState?.currentFilterFns?.[\n col.id?.toString() ?? col.accessorKey?.toString() ?? ''\n ] ??\n (!!col.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n }),\n ),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] =\n useState<MRT_FilterOption>(\n props.globalFilterFn instanceof String\n ? (props.globalFilterFn as MRT_FilterOption)\n : 'fuzzy',\n );\n\n const displayColumns = useMemo(\n () =>\n (\n [\n columnOrder.includes('mrt-row-drag') && {\n columnDefType: 'display',\n header: props.localization?.move,\n id: 'mrt-row-drag',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n columnDefType: 'display',\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n },\n columnOrder.includes('mrt-row-expand') && {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton table={table} />\n ) : null,\n columnDefType: 'display',\n header: props.localization?.expand,\n id: 'mrt-row-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-select') && {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll table={table} />\n ) : null,\n columnDefType: 'display',\n header: props.localization?.select,\n id: 'mrt-row-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n columnDefType: 'display',\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n ] as MRT_ColumnDef<TData>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowOrdering,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n ],\n );\n\n const columnDefs = useMemo(\n () =>\n prepareColumns([...displayColumns, ...props.columns], currentFilterFns),\n [currentFilterFns, displayColumns, props.columns],\n );\n\n const data: TData[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (col) => ({\n [col.id ?? col.accessorKey ?? '']: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const table = {\n ...useReactTable({\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns: columnDefs,\n data,\n getSubRows: (row) => row?.subRows,\n //@ts-ignore\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentDraggingColumn,\n currentDraggingRow,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n currentHoveredColumn,\n currentHoveredRow,\n density,\n isFullScreen,\n showAlertBanner,\n showColumnFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentDraggingColumn:\n props.onCurrentDraggingColumnChange ?? setCurrentDraggingColumn,\n setCurrentDraggingRow:\n props.onCurrentDraggingRowChange ?? setCurrentDraggingRow,\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setCurrentHoveredColumn:\n props.onCurrentHoveredColumnChange ?? setCurrentHoveredColumn,\n setCurrentHoveredRow:\n props.onCurrentHoveredRowChange ?? setCurrentHoveredRow,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper table={table} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper table={table} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n DragEvent,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport type {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport type {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n Header,\n HeaderGroup,\n OnChangeFn,\n Row,\n SortingFn,\n Table,\n TableOptions,\n TableState,\n} from '@tanstack/react-table';\nimport type { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\ntype LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);\n\nexport type MRT_TableOptions<TData extends Record<string, any> = {}> = Partial<\n Omit<\n TableOptions<TData>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<TData>[];\n data: TData[];\n expandRowsFn?: (dataRow: TData) => TData[];\n initialState?: Partial<MRT_TableState<TData>>;\n state?: Partial<MRT_TableState<TData>>;\n};\n\nexport interface MRT_RowModel<TData extends Record<string, any> = {}> {\n flatRows: MRT_Row<TData>[];\n rows: MRT_Row<TData>[];\n rowsById: { [key: string]: MRT_Row<TData> };\n}\n\nexport type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<\n Table<TData>,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<TData>[];\n getAllFlatColumns: () => MRT_Column<TData>[];\n getAllLeafColumns: () => MRT_Column<TData>[];\n getCenterLeafColumns: () => MRT_Column<TData>[];\n getColumn: (columnId: string) => MRT_Column<TData>;\n getExpandedRowModel: () => MRT_RowModel<TData>;\n getFlatHeaders: () => MRT_Header<TData>[];\n getLeftLeafColumns: () => MRT_Column<TData>[];\n getPaginationRowModel: () => MRT_RowModel<TData>;\n getPreFilteredRowModel: () => MRT_RowModel<TData>;\n getPrePaginationRowModel: () => MRT_RowModel<TData>;\n getRightLeafColumns: () => MRT_Column<TData>[];\n getRowModel: () => MRT_RowModel<TData>;\n getSelectedRowModel: () => MRT_RowModel<TData>;\n getState: () => MRT_TableState<TData>;\n options: MaterialReactTableProps<TData> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterOption;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<TData extends Record<string, any> = {}> =\n TableState & {\n currentDraggingColumn: MRT_Column<TData> | null;\n currentDraggingRow: MRT_Row<TData> | null;\n currentEditingCell: MRT_Cell<TData> | null;\n currentEditingRow: MRT_Row<TData> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n currentHoveredColumn: MRT_Column<TData> | null;\n currentHoveredRow: MRT_Row<TData> | null;\n density: 'comfortable' | 'compact' | 'spacious';\n isFullScreen: boolean;\n isLoading: boolean;\n showAlertBanner: boolean;\n showColumnFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n };\n\nexport type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<\n ColumnDef<TData>,\n | 'accessorFn'\n | 'accessorKey'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'id'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify a function here to point to the correct property in the data object.\n *\n * @example accessorFn: (row) => row.username\n */\n accessorFn?: (row: TData) => any;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify which key in the row this column should use to access the correct data.\n *\n * @example accessorKey: 'username'\n */\n accessorKey?: LiteralUnion<string & keyof TData>;\n /**\n * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.\n * Leave this blank if you are just creating a normal data column.\n *\n * @default 'data'\n *\n * @example columnDefType: 'display'\n */\n columnDefType?: 'data' | 'display' | 'group';\n columns?: MRT_ColumnDef<TData>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: MRT_FilterOption[] | null;\n filterFn?: MRT_FilterFn<TData>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n /**\n * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F)\n */\n footer?: string;\n /**\n * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H)\n */\n header: string;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n *\n * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely.\n *\n * `id` defaults to the `accessorKey` or `header` if not specified.\n *\n * @default gets set to the same value as `accessorKey` by default\n */\n id?: LiteralUnion<string & keyof TData>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<TData>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<TData extends Record<string, any> = {}> = Omit<\n Column<TData, unknown>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<TData>;\n columns?: MRT_Column<TData>[];\n filterFn?: MRT_FilterFn<TData>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<TData extends Record<string, any> = {}> = Omit<\n Header<TData, unknown>,\n 'column'\n> & {\n column: MRT_Column<TData>;\n};\n\nexport type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<\n HeaderGroup<TData>,\n 'headers'\n> & {\n headers: MRT_Header<TData>[];\n};\n\nexport type MRT_Row<TData extends Record<string, any> = {}> = Omit<\n Row<TData>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<TData>[];\n getVisibleCells: () => MRT_Cell<TData>[];\n subRows?: MRT_Row<TData>[];\n _valuesCache?: TData;\n};\n\nexport type MRT_Cell<TData extends Record<string, any> = {}> = Omit<\n Cell<TData, unknown>,\n 'column' | 'row'\n> & {\n column: MRT_Column<TData>;\n row: MRT_Row<TData>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<TData extends Record<string, any> = {}> =\n | SortingFn<TData>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<TData extends Record<string, any> = {}> =\n | FilterFn<TData>\n | MRT_FilterOption;\n\n/**\n * `columns` and `data` props are the only required props, but there are over 150 other optional props.\n *\n * See more info on creating columns and data on the official docs site:\n * @link https://www.material-react-table.com/docs/usage\n *\n * See the full props list on the official docs site:\n * @link https://www.material-react-table.com/docs/api/props\n */\nexport type MaterialReactTableProps<TData extends Record<string, any> = {}> =\n MRT_TableOptions<TData> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowDragging?: boolean;\n enableRowNumbers?: boolean;\n enableRowOrdering?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;\n icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n isTopToolbar,\n table,\n }: {\n isTopToolbar: boolean;\n table: MRT_TableInstance<TData>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => SkeletonProps);\n muiTableBodyRowDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n footerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n headerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onColumnDrop?: ({\n event,\n draggedColumn,\n targetColumn,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedColumn: MRT_Column<TData>;\n targetColumn: MRT_Column<TData> | null;\n }) => void;\n onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => Promise<void> | void;\n onDensityChange?: OnChangeFn<boolean>;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onRowDrop?: ({\n event,\n draggedRow,\n targetRow,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedRow: MRT_Row<TData>;\n targetRow: MRT_Row<TData> | null;\n }) => void;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n table,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n table: MRT_TableInstance<TData>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <TData extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<TData>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","move","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","table","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","getState","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","getCanExpand","toggleExpanded","getIsExpanded","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","filter","filterType","undefined","includes","filterOption","id","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","handleSelectFilterType","selected","value","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","placement","disableRipple","draggable","onDragStart","onDragEnd","cursor","m","opacity","p","&:hover","backgroundColor","&:active","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toString","toLowerCase","trim","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","MRT_SortingFns","sortingFns","rowA","rowB","dir","columnFiltersMeta","compareItems","alphanumeric","getColumnId","accessorKey","_columnDef$accessorKe","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","_currentCols","length","some","col","nextCols","flat","every","reorderColumn","draggedColumn","targetColumn","columnOrder","getCanPin","splice","indexOf","getDefaultColumnOrderIds","props","enableRowDragging","enableRowOrdering","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","Boolean","getLeadingDisplayColumnIds","getTrailingDisplayColumnIds","MRT_ShowHideColumnsMenuItems","allColumns","currentHoveredColumn","setCurrentHoveredColumn","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","switchChecked","getIsVisible","getLeafColumns","menuItemRef","useRef","useState","isDragging","setIsDragging","ref","onDragEnter","_e","theme","justifyContent","outline","palette","primary","main","pl","depth","display","flexWrap","gap","e","dataTransfer","setDragImage","current","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","forEach","childColumn","handleToggleColumnHidden","Typography","alignSelf","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","Array","from","Set","colId","find","columnPinning","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","showFilterModeSubMenu","filterSelectOptions","getCanSort","getIsSorted","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","onMouseEnter","getCanGroup","toggleGrouping","old","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","_localization$showAll","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","_valuesCache","original","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","preventDefault","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","getToggleSelectedHandler","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","setDensity","MRT_ToggleFiltersButton","showColumnFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","searchValue","setSearchValue","handleChangeDebounced","useCallback","debounce","target","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","TablePagination","SelectProps","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","left","right","top","AlertTitle","children","MRT_LinearProgressBar","isTopToolbar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","lighten","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","common","black","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","MRT_FilterTextField","inputIndex","_column$getFilterValu2","newFilterValues","Filter","filterId","currentFilterOption","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","&\t.MuiSelect-icon","mr","_columnDef$filterSele","text","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","isArray","join","Grow","_column$getFilterValu","MRT_TableHeadCellGrabHandle","tableHeadCellRef","muiTableHeadCellDragHandleProps","onColumnDrop","setCurrentDraggingColumn","currentDraggingColumn","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCell","useTheme","enableColumnActions","enableColumnDragging","enableMultiSort","muiTableHeadCellProps","tableCellProps","headerElement","Header","draggingBorder","draggingBorders","borderLeft","borderRight","borderTop","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","_columnDef$header","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","type","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyRowGrabHandle","rowRef","muiTableBodyRowDragHandleProps","onRowDrop","setCurrentDraggingRow","draggedRow","currentDraggingRow","targetRow","currentHoveredRow","setCurrentHoveredRow","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","borderBottom","getRowModel","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","_row$subRows","_row$subRows2","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","getTotalSize","MRT_TableBodyRow","hover","&:hover td","getVisibleCells","_row$getVisibleCells","MRT_TableBody","tableContainerRef","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","rankedRows","sort","a","b","v","rank","rowVirtualizer","useVirtual","overscan","parentRef","virtualRows","virtualItems","paddingTop","paddingBottom","start","totalSize","end","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initialState","initState","_props$initialState2","setShowAlertBanner","assign","_col$id","_col$accessorKey","filterFn","name","_initialState$current3","_col$id2","_col$accessorKey2","_col$filterSelectOpti","globalFilterFn","displayColumns","_props$localization","_props$localization2","enableExpandAll","_props$localization3","enableSelectAll","_props$localization4","_props$localization5","_props$localization6","columnDefs","prepareColumns","_columnDef$columns","keys","sortingFn","data","state","_props$state2","fill","_props$state3","_props$state4","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentDraggingColumnChange","onCurrentDraggingRowChange","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onCurrentHoveredColumnChange","onCurrentHoveredRowChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}
1
+ {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/column.utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellGrabHandle.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyRowGrabHandle.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterBetweenInclusive: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterGreaterThanOrEqualTo: string;\n filterLessThan: string;\n filterLessThanOrEqualTo: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n move: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterBetweenInclusive: 'Between Inclusive',\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 filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',\n filterLessThan: 'Less Than',\n filterLessThanOrEqualTo: 'Less Than Or Equal To',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n move: 'Move',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ table }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ table })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ table, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={(theme) => ({\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...(iconButtonProps?.sx instanceof Function\n ? iconButtonProps.sx(theme)\n : (iconButtonProps?.sx as any)),\n })}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Box, Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = table;\n const { currentFilterFns, currentGlobalFilterFn, density } = getState();\n const { column } = header ?? {};\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n (\n [\n {\n option: 'fuzzy',\n symbol: '≈',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n symbol: '*',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n symbol: 'a',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n symbol: 'z',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n symbol: '=',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n symbol: '≠',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n symbol: '⇿',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'betweenInclusive',\n symbol: '⬌',\n label: localization.filterBetweenInclusive,\n divider: true,\n },\n {\n option: 'greaterThan',\n symbol: '>',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'greaterThanOrEqualTo',\n symbol: '≥',\n label: localization.filterGreaterThanOrEqualTo,\n divider: false,\n },\n {\n option: 'lessThan',\n symbol: '<',\n label: localization.filterLessThan,\n divider: false,\n },\n {\n option: 'lessThanOrEqualTo',\n symbol: '≤',\n label: localization.filterLessThanOrEqualTo,\n divider: true,\n },\n {\n option: 'empty',\n symbol: '∅',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n symbol: '!∅',\n label: localization.filterNotEmpty,\n divider: false,\n },\n ] as Array<{\n divider: boolean;\n fn: Function;\n label: string;\n option: MRT_FilterOption;\n symbol?: string;\n }>\n ).filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ),\n [],\n );\n\n const handleSelectFilterType = (option: MRT_FilterOption) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: any }) => ({\n ...prev,\n [header.id]: option,\n }));\n if (['empty', 'notEmpty'].includes(option)) {\n column.setFilterValue(' ');\n } else if (option === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(option);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider, symbol }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={{\n py: '6px',\n my: 0,\n alignItems: 'center',\n display: 'flex',\n gap: '2ch',\n }}\n value={option}\n >\n <Box sx={{ fontSize: '1.25rem', width: '2ch' }}>{symbol}</Box>\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, table }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = table;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport React, { DragEventHandler, FC } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n iconButtonProps?: IconButtonProps;\n onDragStart: DragEventHandler<HTMLButtonElement>;\n onDragEnd: DragEventHandler<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = ({\n iconButtonProps,\n onDragEnd,\n onDragStart,\n table,\n}) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = table;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.move}\n >\n <IconButton\n disableRipple\n draggable=\"true\"\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n ...iconButtonProps?.sx,\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { filterFns, Row } from '@tanstack/react-table';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n columnId: string,\n filterValue: string | number,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue as string, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nconst contains = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nconst startsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nconst endsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nconst equals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nconst notEquals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nconst greaterThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) > +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nconst greaterThanOrEqualTo = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);\n\ngreaterThanOrEqualTo.autoRemove = (val: any) => !val;\n\nconst lessThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) < +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nconst lessThanOrEqualTo = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) => equals(row, id, filterValue) || lessThan(row, id, filterValue);\n\nlessThanOrEqualTo.autoRemove = (val: any) => !val;\n\nconst between = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nconst betweenInclusive = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThanOrEqualTo(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 lessThanOrEqualTo(row, id, filterValues[1]));\n\nbetweenInclusive.autoRemove = (val: any) => !val;\n\nconst empty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue<string | number>(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nconst notEmpty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue<string | number>(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n betweenInclusive,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n greaterThanOrEqualTo,\n lessThan,\n lessThanOrEqualTo,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport { MRT_Row } from '.';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n rowA: Row<TData>,\n rowB: Row<TData>,\n columnId: string,\n) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n ...sortingFns,\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(\n rowA: MRT_Row<TData>,\n rowB: MRT_Row<TData>,\n) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import { ColumnOrderState } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_DefinedColumnDef,\n MRT_DisplayColumnIds,\n MRT_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <TData extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<TData>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<TData>[],\n): MRT_ColumnDef<TData>[] => {\n let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;\n let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<TData>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<TData>[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const prepareColumns = <TData extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<TData>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<TData>[] =>\n columnDefs.map((columnDef) => {\n if (!columnDef.id) columnDef.id = getColumnId(columnDef);\n if (process.env.NODE_ENV !== 'production' && !columnDef.id) {\n console.error(\n 'Column definitions must have a valid `accessorKey` or `id` property',\n );\n }\n if (!columnDef.columnDefType) columnDef.columnDefType = 'data';\n if (!!columnDef.columns?.length) {\n columnDef.columnDefType = 'group';\n columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);\n } else if (columnDef.columnDefType === 'data') {\n if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {\n columnDef.filterFn =\n MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;\n }\n if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {\n // @ts-ignore\n columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];\n }\n }\n return columnDef;\n }) as MRT_DefinedColumnDef<TData>[];\n\nexport const reorderColumn = <TData extends Record<string, any> = {}>(\n draggedColumn: MRT_Column<TData>,\n targetColumn: MRT_Column<TData>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (draggedColumn.getCanPin()) {\n draggedColumn.pin(targetColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(targetColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(draggedColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n props.enableRowSelection && 'mrt-row-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as MRT_DisplayColumnIds[];\n\nexport const getTrailingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns).map((columnDef) =>\n getColumnId(columnDef),\n ),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, {\n Dispatch,\n DragEvent,\n FC,\n SetStateAction,\n useState,\n} from 'react';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../column.utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n currentHoveredColumn: MRT_Column | null;\n isSubMenu?: boolean;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column | null>>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n currentHoveredColumn,\n setCurrentHoveredColumn,\n column,\n isSubMenu,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = table;\n const { columnOrder } = getState();\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n const menuItemRef = React.useRef<HTMLElement>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n e.dataTransfer.setDragImage(menuItemRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n setCurrentHoveredColumn(null);\n if (currentHoveredColumn) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (!isDragging) {\n setCurrentHoveredColumn(column);\n }\n };\n\n return (\n <>\n <MenuItem\n disableRipple\n ref={menuItemRef as any}\n onDragEnter={handleDragEnter}\n sx={(theme) => ({\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n opacity: isDragging ? 0.5 : 1,\n outline: isDragging\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : 'none',\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n })}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {!isSubMenu &&\n columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {!isSubMenu &&\n enablePinning &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} table={table} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={c}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${i}-${c.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../column.utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n table,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = table;\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDef.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column | null>(null);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n table.setColumnOrder(\n getDefaultColumnOrderIds(table.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => table.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-row-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n table={table}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing &&\n column.getCanResize() && [\n <MenuItem\n disabled={!columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n table={table}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = table;\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n table,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = table;\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, table });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = table;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, table })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} table={table} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = table;\n const { density } = getState();\n\n const checkboxProps = !row\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row, table })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={\n !row\n ? selectAllMode === 'all'\n ? table.getToggleAllRowsSelectedHandler()\n : table.getToggleAllPageRowsSelectedHandler()\n : row.getToggleSelectedHandler()\n }\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={(theme) => ({\n height: density === 'compact' ? '1.5rem' : '2rem',\n width: density === 'compact' ? '1.5rem' : '2rem',\n m: '-1re.m',\n ...(checkboxProps?.sx instanceof Function\n ? checkboxProps.sx(theme)\n : (checkboxProps?.sx as any)),\n })}\n />\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = table;\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ table, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = table;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = table;\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = table;\n const { showColumnFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showColumnFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showColumnFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = table;\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = table;\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = table;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n table,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton table={table} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton table={table} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton table={table} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton table={table} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton table={table} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ table, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = table;\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ table })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={(theme) => ({\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...(tablePaginationProps?.sx instanceof Function\n ? tablePaginationProps.sx(theme)\n : (tablePaginationProps?.sx as any)),\n })}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n table,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = table;\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ table })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={table.getColumn(columnId).columnDef.header}\n onDelete={() => table.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={(theme) => ({\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 instanceof Function\n ? alertProps.sx(theme)\n : (alertProps?.sx as any)),\n })}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n isTopToolbar: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ isTopToolbar, table }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = table;\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ isTopToolbar, table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: isTopToolbar ? 0 : undefined,\n position: 'absolute',\n top: !isTopToolbar ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = table;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ table })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!renderToolbarTopCustomActions || showGlobalFilter));\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...(toolbarProps?.sx instanceof Function\n ? toolbarProps.sx(theme)\n : (toolbarProps?.sx as any)),\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n table={table}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n\n {renderToolbarTopCustomActions?.({ table }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons table={table} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"top\" />\n )}\n <MRT_LinearProgressBar isTopToolbar table={table} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ table })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarBottomCustomActions);\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...(toolbarProps?.sx instanceof Function\n ? toolbarProps.sx(theme)\n : (toolbarProps?.sx as any)),\n } as any)\n }\n >\n <MRT_LinearProgressBar isTopToolbar={false} table={table} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner table={table} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ table })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n table,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, table })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={(theme) => ({\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...(iconButtonProps?.sx instanceof Function\n ? iconButtonProps.sx(theme)\n : (iconButtonProps?.sx as any)),\n })}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, table })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n let value =\n textFieldProps.type === 'date'\n ? new Date(event.target.value)\n : event.target.value;\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string | Date]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, table })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const currentFilterOption = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)\n ? //@ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={(theme) => ({\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...(textFieldProps?.sx instanceof Function\n ? textFieldProps.sx(theme)\n : (textFieldProps?.sx as any)),\n })}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} table={table} />\n <MRT_FilterTextField header={header} inputIndex={1} table={table} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n table,\n}) => {\n const { getState } = table;\n const { currentFilterFns, showColumnFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showColumnFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} table={table} />\n ) : (\n <MRT_FilterTextField header={header} table={table} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = table;\n const { currentFilterFns } = getState();\n const { column } = header;\n const { columnDef } = column;\n\n const currentFilterOption = currentFilterFns?.[header.id];\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption.charAt(0).toUpperCase() +\n currentFilterOption.slice(1)\n }`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && currentFilterOption !== 'between') ||\n (currentFilterOption === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../column.utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n tableHeadCellRef: RefObject<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCellGrabHandle: FC<Props> = ({\n column,\n table,\n tableHeadCellRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n muiTableHeadCellDragHandleProps,\n onColumnDrop,\n },\n setColumnOrder,\n setCurrentDraggingColumn,\n setCurrentHoveredColumn,\n } = table;\n const { columnDef } = column;\n const { currentHoveredColumn, currentDraggingColumn, columnOrder } =\n getState();\n\n const mIconButtonProps =\n muiTableHeadCellDragHandleProps instanceof Function\n ? muiTableHeadCellDragHandleProps({ column, table })\n : muiTableHeadCellDragHandleProps;\n\n const mcIconButtonProps =\n columnDef.muiTableHeadCellDragHandleProps instanceof Function\n ? columnDef.muiTableHeadCellDragHandleProps({ column, table })\n : columnDef.muiTableHeadCellDragHandleProps;\n\n const iconButtonProps = {\n ...mIconButtonProps,\n ...mcIconButtonProps,\n };\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(column);\n e.dataTransfer.setDragImage(tableHeadCellRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onColumnDrop?.({\n event,\n draggedColumn: column,\n targetColumn: currentHoveredColumn,\n });\n if (\n enableColumnOrdering &&\n currentHoveredColumn &&\n currentHoveredColumn?.id !== currentDraggingColumn?.id\n ) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n setCurrentDraggingColumn(null);\n setCurrentHoveredColumn(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: { columnResizeMode },\n } = table;\n const { density, showColumnFilters } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${\n (getState().columnSizingInfo.deltaOffset ?? 0) /\n (columnResizeMode === 'onChange' ? 16 : 1)\n }px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {\n const {\n options: { localization },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, ReactNode } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten, useTheme } from '@mui/material';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnDragging,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n setCurrentHoveredColumn,\n } = table;\n const { density, currentDraggingColumn, currentHoveredColumn } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, table })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, table })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(\n columnDef.enableColumnOrdering !== false ? column : null,\n );\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderTop: draggingBorder,\n }\n : undefined;\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\n\n const tableHeadCellRef = React.useRef<HTMLTableCellElement>(null);\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n onDragEnter={handleDragEnter}\n ref={tableHeadCellRef}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType === 'group'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,\n verticalAlign: 'top',\n zIndex:\n column.getIsResizing() || currentDraggingColumn?.id === column.id\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n {columnDefType !== 'group' && (\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {((enableColumnDragging &&\n columnDef.enableColumnDragging !== false) ||\n (enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_TableHeadCellGrabHandle\n column={column}\n table={table}\n tableHeadCellRef={tableHeadCellRef}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n )}\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {\n const {\n options: { muiTableHeadRowProps },\n } = table;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, table })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ table }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = table;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ table })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n table={table}\n />\n ))}\n </TableHead>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = table;\n const { column, row } = cell;\n const { columnDef } = column;\n\n const [value, setValue] = useState(cell.getValue<string>());\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, table });\n onCellEditChange?.({ event, cell, table });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, table });\n onCellEditBlur?.({ event, cell, table });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, table })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, table })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n table: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, table }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = table;\n const { column } = cell;\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, table })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={(theme) => ({\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 instanceof Function\n ? buttonProps.sx(theme)\n : (buttonProps?.sx as any)),\n })}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\n\ninterface Props {\n cell: MRT_Cell;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRowGrabHandle: FC<Props> = ({\n cell,\n rowRef,\n table,\n}) => {\n const {\n options: { muiTableBodyRowDragHandleProps, onRowDrop },\n } = table;\n\n const iconButtonProps =\n muiTableBodyRowDragHandleProps instanceof Function\n ? muiTableBodyRowDragHandleProps({ row: cell.row, table })\n : muiTableBodyRowDragHandleProps;\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n e.dataTransfer.setDragImage(rowRef.current as HTMLElement, 0, 0);\n table.setCurrentDraggingRow(cell.row as any);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onRowDrop?.({\n event,\n draggedRow: table.getState().currentDraggingRow as any,\n targetRow: table.getState().currentHoveredRow as any,\n });\n table.setCurrentDraggingRow(null);\n table.setCurrentHoveredRow(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { DragEvent, FC, MouseEvent, RefObject, useMemo } from 'react';\nimport {\n alpha,\n darken,\n lighten,\n Skeleton,\n TableCell,\n useTheme,\n} from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n rowRef,\n table,\n}) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setCurrentEditingCell,\n setCurrentHoveredColumn,\n } = table;\n const {\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentHoveredColumn,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, table })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, table })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(\n columnDef.enableColumnOrdering !== false ? column : null,\n );\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderBottom:\n row.index === table.getRowModel().rows.length - 1\n ? draggingBorder\n : undefined,\n }\n : undefined;\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n onDragEnter={handleDragEnter}\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-row-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex:\n currentDraggingColumn?.id === column.id\n ? 2\n : column.getIsPinned()\n ? 1\n : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : column.id === 'mrt-row-drag' ? (\n <MRT_TableBodyRowGrabHandle\n cell={cell}\n rowRef={rowRef}\n table={table}\n />\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, table })\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} table={table} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} table={table}>\n <>{columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}</>\n </MRT_CopyButton>\n {cell.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}\n {cell.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, table })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={(theme) => ({\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${table.getTotalSize()}px`,\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n })}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, table })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { DragEvent, FC, useRef } from 'react';\nimport { darken, lighten, TableRow, useTheme } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, table }) => {\n const theme = useTheme();\n const {\n getIsSomeColumnsPinned,\n getState,\n options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel },\n setCurrentHoveredRow,\n } = table;\n const { currentDraggingRow, currentHoveredRow } = getState();\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableRowOrdering && currentDraggingRow) {\n setCurrentHoveredRow(row);\n }\n };\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n\n const draggingBorder =\n currentDraggingRow?.id === row.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredRow?.id === row.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n border: draggingBorder,\n }\n : undefined;\n\n return (\n <>\n <TableRow\n onDragEnter={handleDragEnter}\n hover\n selected={row.getIsSelected()}\n ref={rowRef}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n opacity:\n currentDraggingRow?.id === row.id ||\n currentHoveredRow?.id === row.id\n ? 0.5\n : 1,\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx instanceof Function\n ? tableRowProps.sx(theme)\n : (tableRowProps?.sx as any)),\n ...draggingBorders,\n })}\n >\n {row?.getVisibleCells()?.map?.((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n rowRef={rowRef}\n table={table}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} table={table} />\n )}\n </>\n );\n};\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { rankGlobalFuzzy } from '../sortingFns';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ table, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = table;\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ table })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n // estimateSize: () => (density === 'compact' ? 25 : 50),\n overscan: density === 'compact' ? 30 : 10,\n parentRef: tableContainerRef,\n size: rows.length,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const virtualRows = enableRowVirtualization\n ? rowVirtualizer.virtualItems\n : [];\n\n let paddingTop = 0;\n let paddingBottom = 0;\n if (enableRowVirtualization) {\n paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n }\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n table={table}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = table;\n const { density } = getState();\n const { column } = footer;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, table })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, table })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n table,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {\n const {\n options: { muiTableFooterRowProps },\n } = table;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, table })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ table }) => {\n const {\n getFooterGroups,\n options: { muiTableFooterProps },\n } = table;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ table })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n table={table}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, table }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ table })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={(theme) => ({\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...(tableProps?.sx instanceof Function\n ? tableProps.sx(theme)\n : (tableProps?.sx as any)),\n })}\n >\n {enableTableHead && <MRT_TableHead table={table} />}\n <MRT_TableBody tableContainerRef={tableContainerRef} table={table} />\n {enableTableFooter && <MRT_TableFooter table={table} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ table })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n ref={tableContainerRef}\n {...tableContainerProps}\n sx={(theme) => ({\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...(tableContainerProps?.sx instanceof Function\n ? tableContainerProps.sx(theme)\n : (tableContainerProps?.sx as any)),\n })}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} table={table} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ table }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = table;\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ table })\n : muiTablePaperProps;\n\n return (\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop table={table} />}\n <MRT_TableContainer table={table} />\n {enableToolbarBottom && <MRT_ToolbarBottom table={table} />}\n </Paper>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n TableState,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport { Box, Dialog, Grow } from '@mui/material';\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 { MRT_TablePaper } from './MRT_TablePaper';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../column.utils';\nimport { MRT_FilterFns } from '../filtersFns';\nimport type {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n MaterialReactTableProps,\n} from '..';\n\nconst defaultDisplayColumnDefOptions = {\n columnDefType: 'display',\n enableClickToCopy: false,\n enableColumnActions: false,\n enableColumnDragging: false,\n enableColumnFilter: false,\n enableColumnOrdering: false,\n enableEditing: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enablePinning: false,\n enableResizing: false,\n enableSorting: false,\n} as Partial<MRT_ColumnDef>;\n\nexport const MRT_TableRoot = <TData extends Record<string, any> = {}>(\n props: MaterialReactTableProps<TData>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentDraggingColumn, setCurrentDraggingColumn] =\n useState<MRT_Column<TData> | null>(\n initialState.currentDraggingColumn ?? null,\n );\n const [currentDraggingRow, setCurrentDraggingRow] =\n useState<MRT_Row<TData> | null>(initialState.currentDraggingRow ?? null);\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<TData> | null>(initialState.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] =\n useState<MRT_Row<TData> | null>(initialState.currentEditingRow ?? null);\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column<TData> | null>(\n initialState.currentHoveredColumn ?? null,\n );\n const [currentHoveredRow, setCurrentHoveredRow] =\n useState<MRT_Row<TData> | null>(initialState.currentHoveredRow ?? null);\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showColumnFilters, setShowFilters] = useState(\n initialState?.showColumnFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(\n (col) => ({\n [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:\n col.filterFn instanceof Function\n ? col.filterFn.name ?? 'custom'\n : col.filterFn ??\n initialState?.currentFilterFns?.[\n col.id?.toString() ?? col.accessorKey?.toString() ?? ''\n ] ??\n (!!col.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n }),\n ),\n ),\n );\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] =\n useState<MRT_FilterOption>(\n props.globalFilterFn instanceof String\n ? (props.globalFilterFn as MRT_FilterOption)\n : 'fuzzy',\n );\n\n const displayColumns = useMemo(\n () =>\n (\n [\n columnOrder.includes('mrt-row-drag') && {\n header: props.localization?.move,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-drag'],\n id: 'mrt-row-drag',\n },\n columnOrder.includes('mrt-row-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n header: props.localization?.actions,\n size: 70,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-actions'],\n id: 'mrt-row-actions',\n },\n columnOrder.includes('mrt-row-expand') && {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton table={table} />\n ) : null,\n header: props.localization?.expand,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-expand'],\n id: 'mrt-row-expand',\n },\n columnOrder.includes('mrt-row-select') && {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll table={table} />\n ) : null,\n header: props.localization?.select,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-select'],\n id: 'mrt-row-select',\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-numbers'],\n id: 'mrt-row-numbers',\n },\n ] as MRT_ColumnDef<TData>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.displayColumnDefOptions,\n props.editingMode,\n props.enableColumnDragging,\n props.enableColumnOrdering,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowDragging,\n props.enableRowNumbers,\n props.enableRowOrdering,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n ],\n );\n\n const columnDefs = useMemo(\n () =>\n prepareColumns([...displayColumns, ...props.columns], currentFilterFns),\n [currentFilterFns, displayColumns, props.columns],\n );\n\n const data: TData[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (col) => ({\n [col.id ?? col.accessorKey ?? '']: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const table = {\n ...useReactTable({\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns: columnDefs,\n data,\n getSubRows: (row) => row?.subRows,\n //@ts-ignore\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentDraggingColumn,\n currentDraggingRow,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n currentHoveredColumn,\n currentHoveredRow,\n density,\n isFullScreen,\n showAlertBanner,\n showColumnFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentDraggingColumn:\n props.onCurrentDraggingColumnChange ?? setCurrentDraggingColumn,\n setCurrentDraggingRow:\n props.onCurrentDraggingRowChange ?? setCurrentDraggingRow,\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setCurrentHoveredColumn:\n props.onCurrentHoveredColumnChange ?? setCurrentHoveredColumn,\n setCurrentHoveredRow:\n props.onCurrentHoveredRowChange ?? setCurrentHoveredRow,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper table={table} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper table={table} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n DragEvent,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport type {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport type {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n Header,\n HeaderGroup,\n OnChangeFn,\n Row,\n SortingFn,\n Table,\n TableOptions,\n TableState,\n} from '@tanstack/react-table';\nimport type { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\ntype LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);\n\nexport interface MRT_RowModel<TData extends Record<string, any> = {}> {\n flatRows: MRT_Row<TData>[];\n rows: MRT_Row<TData>[];\n rowsById: { [key: string]: MRT_Row<TData> };\n}\n\nexport type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<\n Table<TData>,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<TData>[];\n getAllFlatColumns: () => MRT_Column<TData>[];\n getAllLeafColumns: () => MRT_Column<TData>[];\n getCenterLeafColumns: () => MRT_Column<TData>[];\n getColumn: (columnId: string) => MRT_Column<TData>;\n getExpandedRowModel: () => MRT_RowModel<TData>;\n getFlatHeaders: () => MRT_Header<TData>[];\n getLeftLeafColumns: () => MRT_Column<TData>[];\n getPaginationRowModel: () => MRT_RowModel<TData>;\n getPreFilteredRowModel: () => MRT_RowModel<TData>;\n getPrePaginationRowModel: () => MRT_RowModel<TData>;\n getRightLeafColumns: () => MRT_Column<TData>[];\n getRowModel: () => MRT_RowModel<TData>;\n getSelectedRowModel: () => MRT_RowModel<TData>;\n getState: () => MRT_TableState<TData>;\n options: MaterialReactTableProps<TData> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterOption;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<TData extends Record<string, any> = {}> =\n TableState & {\n currentDraggingColumn: MRT_Column<TData> | null;\n currentDraggingRow: MRT_Row<TData> | null;\n currentEditingCell: MRT_Cell<TData> | null;\n currentEditingRow: MRT_Row<TData> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n currentHoveredColumn: MRT_Column<TData> | null;\n currentHoveredRow: MRT_Row<TData> | null;\n density: 'comfortable' | 'compact' | 'spacious';\n isFullScreen: boolean;\n isLoading: boolean;\n showAlertBanner: boolean;\n showColumnFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n };\n\nexport type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<\n ColumnDef<TData>,\n | 'accessorFn'\n | 'accessorKey'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'id'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify a function here to point to the correct property in the data object.\n *\n * @example accessorFn: (row) => row.username\n */\n accessorFn?: (row: TData) => any;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify which key in the row this column should use to access the correct data.\n *\n * @example accessorKey: 'username'\n */\n accessorKey?: string & keyof TData;\n /**\n * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.\n * Leave this blank if you are just creating a normal data column.\n *\n * @default 'data'\n *\n * @example columnDefType: 'display'\n */\n columnDefType?: 'data' | 'display' | 'group';\n columns?: MRT_ColumnDef<TData>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: MRT_FilterOption[] | null;\n filterFn?: MRT_FilterFn<TData>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n /**\n * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F)\n */\n footer?: string;\n /**\n * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H)\n */\n header: string;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n *\n * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely.\n *\n * `id` defaults to the `accessorKey` or `header` if not specified.\n *\n * @default gets set to the same value as `accessorKey` by default\n */\n id?: LiteralUnion<string & keyof TData>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<TData>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<TData extends Record<string, any> = {}> = Omit<\n Column<TData, unknown>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<TData>;\n columns?: MRT_Column<TData>[];\n filterFn?: MRT_FilterFn<TData>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<TData extends Record<string, any> = {}> = Omit<\n Header<TData, unknown>,\n 'column'\n> & {\n column: MRT_Column<TData>;\n};\n\nexport type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<\n HeaderGroup<TData>,\n 'headers'\n> & {\n headers: MRT_Header<TData>[];\n};\n\nexport type MRT_Row<TData extends Record<string, any> = {}> = Omit<\n Row<TData>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<TData>[];\n getVisibleCells: () => MRT_Cell<TData>[];\n subRows?: MRT_Row<TData>[];\n _valuesCache?: TData;\n};\n\nexport type MRT_Cell<TData extends Record<string, any> = {}> = Omit<\n Cell<TData, unknown>,\n 'column' | 'row'\n> & {\n column: MRT_Column<TData>;\n row: MRT_Row<TData>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<TData extends Record<string, any> = {}> =\n | SortingFn<TData>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<TData extends Record<string, any> = {}> =\n | FilterFn<TData>\n | MRT_FilterOption;\n\nexport type MRT_DisplayColumnIds =\n | 'mrt-row-drag'\n | 'mrt-row-actions'\n | 'mrt-row-expand'\n | 'mrt-row-select'\n | 'mrt-row-numbers';\n\n/**\n * `columns` and `data` props are the only required props, but there are over 150 other optional props.\n *\n * See more info on creating columns and data on the official docs site:\n * @link https://www.material-react-table.com/docs/usage\n *\n * See the full props list on the official docs site:\n * @link https://www.material-react-table.com/docs/api/props\n */\nexport type MaterialReactTableProps<TData extends Record<string, any> = {}> =\n Omit<\n Partial<TableOptions<TData>>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n > & {\n displayColumnDefOptions?: Partial<{\n [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;\n }>;\n columns: MRT_ColumnDef<TData>[];\n data: TData[];\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowDragging?: boolean;\n enableRowNumbers?: boolean;\n enableRowOrdering?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;\n expandRowsFn?: (dataRow: TData) => TData[];\n icons?: Partial<MRT_Icons>;\n initialState?: Partial<MRT_TableState<TData>>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n isTopToolbar,\n table,\n }: {\n isTopToolbar: boolean;\n table: MRT_TableInstance<TData>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableBodyProps);\n muiTableBodyRowDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n footerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n headerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onColumnDrop?: ({\n event,\n draggedColumn,\n targetColumn,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedColumn: MRT_Column<TData>;\n targetColumn: MRT_Column<TData> | null;\n }) => void;\n onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onDensityChange?: OnChangeFn<boolean>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => Promise<void> | void;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onRowDrop?: ({\n event,\n draggedRow,\n targetRow,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedRow: MRT_Row<TData>;\n targetRow: MRT_Row<TData> | null;\n }) => void;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n table,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n table: MRT_TableInstance<TData>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n state?: Partial<MRT_TableState<TData>>;\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <TData extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<TData>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterBetweenInclusive","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterGreaterThanOrEqualTo","filterLessThan","filterLessThanOrEqualTo","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","move","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","table","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","getState","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","getCanExpand","toggleExpanded","theme","getIsExpanded","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","symbol","label","divider","filter","filterType","undefined","includes","filterOption","id","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","handleSelectFilterType","selected","py","my","alignItems","display","gap","value","Box","fontSize","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","placement","disableRipple","draggable","onDragStart","onDragEnd","cursor","m","opacity","p","&:hover","backgroundColor","&:active","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toString","toLowerCase","trim","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","between","filterValues","betweenInclusive","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","MRT_SortingFns","sortingFns","rowA","rowB","dir","columnFiltersMeta","compareItems","alphanumeric","getColumnId","accessorKey","_columnDef$accessorKe","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","_currentCols","length","some","col","nextCols","flat","every","reorderColumn","draggedColumn","targetColumn","columnOrder","getCanPin","splice","indexOf","getDefaultColumnOrderIds","props","enableRowDragging","enableRowOrdering","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","Boolean","getLeadingDisplayColumnIds","getTrailingDisplayColumnIds","MRT_ShowHideColumnsMenuItems","allColumns","currentHoveredColumn","setCurrentHoveredColumn","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","switchChecked","getIsVisible","getLeafColumns","menuItemRef","useRef","useState","isDragging","setIsDragging","ref","onDragEnter","_e","justifyContent","outline","palette","primary","main","pl","depth","flexWrap","e","dataTransfer","setDragImage","current","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","forEach","childColumn","handleToggleColumnHidden","Typography","alignSelf","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","Array","from","Set","colId","find","columnPinning","pt","Button","resetColumnPinning","Divider","commonMenuItemStyles","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","showFilterModeSubMenu","filterSelectOptions","getCanSort","getIsSorted","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","onMouseEnter","getCanGroup","toggleGrouping","old","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","_localization$showAll","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","_valuesCache","original","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","preventDefault","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleSelectedHandler","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","setDensity","MRT_ToggleFiltersButton","showColumnFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","searchValue","setSearchValue","handleChangeDebounced","useCallback","debounce","target","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","TablePagination","SelectProps","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","left","right","top","AlertTitle","children","MRT_LinearProgressBar","isTopToolbar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","lighten","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","common","black","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","MRT_FilterTextField","inputIndex","_column$getFilterValu2","type","Date","newFilterValues","Filter","filterId","currentFilterOption","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","&\t.MuiSelect-icon","mr","_columnDef$filterSele","text","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","isArray","join","Grow","_column$getFilterValu","MRT_TableHeadCellGrabHandle","tableHeadCellRef","muiTableHeadCellDragHandleProps","onColumnDrop","setCurrentDraggingColumn","currentDraggingColumn","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCell","useTheme","enableColumnActions","enableColumnDragging","enableMultiSort","muiTableHeadCellProps","tableCellProps","draggingBorder","draggingBorders","borderLeft","borderRight","borderTop","headerElement","Header","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","_columnDef$header","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyRowGrabHandle","rowRef","muiTableBodyRowDragHandleProps","onRowDrop","setCurrentDraggingRow","draggedRow","currentDraggingRow","targetRow","currentHoveredRow","setCurrentHoveredRow","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","borderBottom","getRowModel","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","_row$subRows","_row$subRows2","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","getTotalSize","MRT_TableBodyRow","hover","&:hover td","getVisibleCells","_row$getVisibleCells","MRT_TableBody","tableContainerRef","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","rankedRows","sort","a","b","v","rank","rowVirtualizer","useVirtual","overscan","parentRef","virtualRows","virtualItems","paddingTop","paddingBottom","start","totalSize","end","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","defaultDisplayColumnDefOptions","enableColumnFilter","enableResizing","MRT_TableRoot","setIdPrefix","substring","initialState","initState","_props$initialState2","setShowAlertBanner","assign","_col$id","_col$accessorKey","filterFn","name","_initialState$current7","_col$id2","_col$accessorKey2","_col$filterSelectOpti","globalFilterFn","displayColumns","_props$localization","displayColumnDefOptions","_props$displayColumnD","_props$localization2","_props$displayColumnD2","enableExpandAll","_props$localization3","_props$displayColumnD3","enableSelectAll","_props$localization4","_props$displayColumnD4","_props$localization5","_props$localization6","_props$displayColumnD5","columnDefs","prepareColumns","_columnDef$columns","keys","sortingFn","data","state","_props$state2","fill","_props$state3","_props$state4","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentDraggingColumnChange","onCurrentDraggingRowChange","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onCurrentHoveredColumnChange","onCurrentHoveredRowChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}