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