material-react-table 0.7.0-alpha.9 → 0.7.0

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