material-react-table 2.11.2 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +29 -22
  2. package/dist/index.d.ts +30 -16
  3. package/dist/index.esm.js +161 -152
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +162 -156
  6. package/dist/index.js.map +1 -1
  7. package/package.json +24 -24
  8. package/src/components/body/MRT_TableBodyCell.tsx +11 -6
  9. package/src/components/body/MRT_TableBodyCellValue.tsx +5 -4
  10. package/src/components/body/MRT_TableBodyRow.tsx +10 -7
  11. package/src/components/body/MRT_TableDetailPanel.tsx +4 -9
  12. package/src/components/footer/MRT_TableFooterRow.tsx +6 -3
  13. package/src/components/head/MRT_TableHead.tsx +11 -11
  14. package/src/components/head/MRT_TableHeadCell.tsx +9 -3
  15. package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +3 -4
  16. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +61 -37
  17. package/src/components/head/MRT_TableHeadRow.tsx +7 -3
  18. package/src/components/inputs/MRT_FilterRangeFields.tsx +8 -2
  19. package/src/components/inputs/MRT_FilterTextField.tsx +29 -38
  20. package/src/components/inputs/MRT_SelectCheckbox.tsx +2 -1
  21. package/src/components/menus/MRT_CellActionMenu.tsx +1 -5
  22. package/src/components/menus/MRT_ColumnActionMenu.tsx +1 -5
  23. package/src/components/menus/MRT_FilterOptionMenu.tsx +1 -5
  24. package/src/components/menus/MRT_RowActionMenu.tsx +1 -5
  25. package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +1 -5
  26. package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +3 -2
  27. package/src/components/table/MRT_TableLoadingOverlay.tsx +8 -8
  28. package/src/components/table/MRT_TablePaper.tsx +6 -6
  29. package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +3 -1
  30. package/src/components/toolbar/MRT_ToolbarDropZone.tsx +5 -0
  31. package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +1 -1
  32. package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +1 -1
  33. package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +1 -1
  34. package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +1 -1
  35. package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +1 -1
  36. package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +1 -1
  37. package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +1 -1
  38. package/src/hooks/useMRT_TableOptions.ts +4 -0
  39. package/src/types.ts +15 -13
  40. package/src/utils/column.utils.ts +78 -40
  41. package/src/utils/row.utils.ts +2 -1
  42. package/src/utils/style.utils.ts +24 -26
  43. package/src/utils/utils.ts +1 -1
package/dist/index.js CHANGED
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var reactTable = require('@tanstack/react-table');
6
- var matchSorterUtils = require('@tanstack/match-sorter-utils');
7
6
  var react = require('react');
7
+ var matchSorterUtils = require('@tanstack/match-sorter-utils');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var IconButton = require('@mui/material/IconButton');
10
10
  var Tooltip = require('@mui/material/Tooltip');
@@ -259,31 +259,53 @@ const getDefaultColumnFilterFn = (columnDef) => {
259
259
  return 'equals';
260
260
  return 'fuzzy';
261
261
  };
262
- const getIsFirstColumn = (column, table) => {
263
- const leftColumns = table.getLeftVisibleLeafColumns();
264
- return leftColumns.length
265
- ? leftColumns[0].id === column.id
266
- : table.getVisibleLeafColumns()[0].id === column.id;
267
- };
268
- const getIsLastColumn = (column, table) => {
269
- const rightColumns = table.getRightVisibleLeafColumns();
270
- const columns = table.getVisibleLeafColumns();
271
- return rightColumns.length
272
- ? rightColumns[rightColumns.length - 1].id === column.id
273
- : columns[columns.length - 1].id === column.id;
274
- };
275
- const getIsLastLeftPinnedColumn = (table, column) => {
276
- return (column.getIsPinned() === 'left' &&
277
- table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex());
278
- };
279
- const getIsFirstRightPinnedColumn = (column) => {
280
- return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
262
+ const getColumnFilterInfo = ({ header, table, }) => {
263
+ var _a;
264
+ const { options: { columnFilterModeOptions }, } = table;
265
+ const { column } = header;
266
+ const { columnDef } = column;
267
+ const { filterVariant } = columnDef;
268
+ const isDateFilter = !!((filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) || (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('time')));
269
+ const isAutocompleteFilter = filterVariant === 'autocomplete';
270
+ const isRangeFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range')) ||
271
+ ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
272
+ const isSelectFilter = filterVariant === 'select';
273
+ const isMultiSelectFilter = filterVariant === 'multi-select';
274
+ const isTextboxFilter = ['autocomplete', 'text'].includes(filterVariant) ||
275
+ (!isSelectFilter && !isMultiSelectFilter);
276
+ const currentFilterOption = columnDef._filterFn;
277
+ const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
278
+ const facetedUniqueValues = column.getFacetedUniqueValues();
279
+ return {
280
+ allowedColumnFilterOptions,
281
+ currentFilterOption,
282
+ facetedUniqueValues,
283
+ isAutocompleteFilter,
284
+ isDateFilter,
285
+ isMultiSelectFilter,
286
+ isRangeFilter,
287
+ isSelectFilter,
288
+ isTextboxFilter,
289
+ };
281
290
  };
282
- const getTotalRight = (table, column) => {
283
- return table
284
- .getRightLeafHeaders()
285
- .slice(column.getPinnedIndex() + 1)
286
- .reduce((acc, col) => acc + col.getSize(), 0);
291
+ const useDropdownOptions = ({ header, table, }) => {
292
+ const { column } = header;
293
+ const { columnDef } = column;
294
+ const { facetedUniqueValues, isAutocompleteFilter, isMultiSelectFilter, isSelectFilter, } = getColumnFilterInfo({ header, table });
295
+ return react.useMemo(() => {
296
+ var _a;
297
+ return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter || isAutocompleteFilter) &&
298
+ facetedUniqueValues
299
+ ? Array.from(facetedUniqueValues.keys())
300
+ .filter((value) => value !== null && value !== undefined)
301
+ .sort((a, b) => a.localeCompare(b))
302
+ : undefined);
303
+ }, [
304
+ columnDef.filterSelectOptions,
305
+ facetedUniqueValues,
306
+ isMultiSelectFilter,
307
+ isSelectFilter,
308
+ ]);
287
309
  };
288
310
 
289
311
  const flexRender = reactTable.flexRender;
@@ -551,9 +573,9 @@ const getMRT_RowSelectionHandler = ({ row, staticRowIndex = 0, table, }) => (eve
551
573
  });
552
574
  }
553
575
  };
554
- const getMRT_SelectAllHandler = ({ table }) => (event, value) => {
576
+ const getMRT_SelectAllHandler = ({ table }) => (event, value, forceAll) => {
555
577
  const { options: { enableRowPinning, rowPinningDisplayMode, selectAllMode }, refs: { lastSelectedRowId }, } = table;
556
- selectAllMode === 'all'
578
+ selectAllMode === 'all' || forceAll
557
579
  ? table.toggleAllRowsSelected(value !== null && value !== void 0 ? value : event.target.checked)
558
580
  : table.toggleAllPageRowsSelected(value !== null && value !== void 0 ? value : event.target.checked);
559
581
  if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'))) {
@@ -729,15 +751,15 @@ const MRT_EditActionButtons = (_a) => {
729
751
  };
730
752
 
731
753
  const parseCSSVarId = (id) => id.replace(/[^a-zA-Z0-9]/g, '_');
732
- const getMRTTheme = (table, theme) => {
754
+ const getMRTTheme = (mrtTheme, muiTheme) => {
733
755
  var _a;
734
- const themeOverrides = parseFromValuesOrFunc(table.options.mrtTheme, theme);
735
- const baseBackgroundColor = (_a = themeOverrides === null || themeOverrides === void 0 ? void 0 : themeOverrides.baseBackgroundColor) !== null && _a !== void 0 ? _a : (theme.palette.mode === 'dark'
736
- ? styles.lighten(theme.palette.background.default, 0.05)
737
- : theme.palette.background.default);
738
- return Object.assign({ baseBackgroundColor, draggingBorderColor: theme.palette.primary.main, matchHighlightColor: theme.palette.mode === 'dark'
739
- ? styles.darken(theme.palette.warning.dark, 0.25)
740
- : styles.lighten(theme.palette.warning.light, 0.5), menuBackgroundColor: styles.lighten(baseBackgroundColor, 0.07), pinnedRowBackgroundColor: styles.alpha(theme.palette.primary.main, 0.1), selectedRowBackgroundColor: styles.alpha(theme.palette.primary.main, 0.2) }, themeOverrides);
756
+ const mrtThemeOverrides = parseFromValuesOrFunc(mrtTheme, muiTheme);
757
+ const baseBackgroundColor = (_a = mrtThemeOverrides === null || mrtThemeOverrides === void 0 ? void 0 : mrtThemeOverrides.baseBackgroundColor) !== null && _a !== void 0 ? _a : (muiTheme.palette.mode === 'dark'
758
+ ? styles.lighten(muiTheme.palette.background.default, 0.05)
759
+ : muiTheme.palette.background.default);
760
+ return Object.assign({ baseBackgroundColor, draggingBorderColor: muiTheme.palette.primary.main, matchHighlightColor: muiTheme.palette.mode === 'dark'
761
+ ? styles.darken(muiTheme.palette.warning.dark, 0.25)
762
+ : styles.lighten(muiTheme.palette.warning.light, 0.5), menuBackgroundColor: styles.lighten(baseBackgroundColor, 0.07), pinnedRowBackgroundColor: styles.alpha(muiTheme.palette.primary.main, 0.1), selectedRowBackgroundColor: styles.alpha(muiTheme.palette.primary.main, 0.2) }, mrtThemeOverrides);
741
763
  };
742
764
  const commonCellBeforeAfterStyles = {
743
765
  content: '""',
@@ -749,13 +771,14 @@ const commonCellBeforeAfterStyles = {
749
771
  zIndex: -1,
750
772
  };
751
773
  const getCommonPinnedCellStyles = ({ column, table, theme, }) => {
752
- const { baseBackgroundColor } = getMRTTheme(table, theme);
774
+ const { baseBackgroundColor } = table.options.mrtTheme;
775
+ const isPinned = column === null || column === void 0 ? void 0 : column.getIsPinned();
753
776
  return {
754
777
  '&[data-pinned="true"]': {
755
778
  '&:before': Object.assign({ backgroundColor: styles.alpha(styles.darken(baseBackgroundColor, theme.palette.mode === 'dark' ? 0.05 : 0.01), 0.97), boxShadow: column
756
- ? getIsLastLeftPinnedColumn(table, column)
779
+ ? isPinned === 'left' && column.getIsLastColumn(isPinned)
757
780
  ? `-4px 0 4px -4px ${styles.alpha(theme.palette.grey[700], 0.5)} inset`
758
- : getIsFirstRightPinnedColumn(column)
781
+ : isPinned === 'right' && column.getIsFirstColumn(isPinned)
759
782
  ? `4px 0 4px -4px ${styles.alpha(theme.palette.grey[700], 0.5)} inset`
760
783
  : undefined
761
784
  : undefined }, commonCellBeforeAfterStyles),
@@ -785,7 +808,7 @@ const getCommonMRTCellStyles = ({ column, header, table, tableCellProps, theme,
785
808
  ? Object.assign(Object.assign({}, getCommonPinnedCellStyles({ column, table, theme })), { left: isColumnPinned === 'left'
786
809
  ? `${column.getStart('left')}px`
787
810
  : undefined, opacity: 0.97, position: 'sticky', right: isColumnPinned === 'right'
788
- ? `${getTotalRight(table, column)}px`
811
+ ? `${column.getAfter('right')}px`
789
812
  : undefined }) : {};
790
813
  return Object.assign(Object.assign(Object.assign({ backgroundColor: 'inherit', backgroundImage: 'inherit', display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, justifyContent: columnDefType === 'group'
791
814
  ? 'center'
@@ -802,9 +825,9 @@ const getCommonMRTCellStyles = ({ column, header, table, tableCellProps, theme,
802
825
  ? 1
803
826
  : 0 }, pinnedStyles), widthStyles), parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme));
804
827
  };
805
- const getCommonToolbarStyles = ({ table, theme, }) => ({
828
+ const getCommonToolbarStyles = ({ table, }) => ({
806
829
  alignItems: 'flex-start',
807
- backgroundColor: getMRTTheme(table, theme).baseBackgroundColor,
830
+ backgroundColor: table.options.mrtTheme.baseBackgroundColor,
808
831
  display: 'grid',
809
832
  flexWrap: 'wrap-reverse',
810
833
  minHeight: '3.5rem',
@@ -840,10 +863,8 @@ const MRT_ActionMenuItem = (_a) => {
840
863
 
841
864
  const MRT_RowActionMenu = (_a) => {
842
865
  var { anchorEl, handleEdit, row, setAnchorEl, staticRowIndex, table } = _a, rest = __rest(_a, ["anchorEl", "handleEdit", "row", "setAnchorEl", "staticRowIndex", "table"]);
843
- const { getState, options: { editDisplayMode, enableEditing, icons: { EditIcon }, localization, renderRowActionMenuItems, }, } = table;
866
+ const { getState, options: { editDisplayMode, enableEditing, icons: { EditIcon }, localization, mrtTheme: { menuBackgroundColor }, renderRowActionMenuItems, }, } = table;
844
867
  const { density } = getState();
845
- const theme = styles.useTheme();
846
- const { menuBackgroundColor } = getMRTTheme(table, theme);
847
868
  return (jsxRuntime.jsxs(Menu__default["default"], Object.assign({ MenuListProps: {
848
869
  dense: density === 'compact',
849
870
  sx: {
@@ -1120,6 +1141,7 @@ const MRT_SelectCheckbox = (_a) => {
1120
1141
  ? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
1121
1142
  : parseFromValuesOrFunc(muiSelectCheckboxProps, {
1122
1143
  row,
1144
+ staticRowIndex,
1123
1145
  table,
1124
1146
  }))), rest);
1125
1147
  const onSelectionChange = row
@@ -1138,7 +1160,7 @@ const MRT_SelectCheckbox = (_a) => {
1138
1160
  : localization.toggleSelectRow,
1139
1161
  }, onChange: (event) => {
1140
1162
  event.stopPropagation();
1141
- row ? onSelectionChange(event) : onSelectAllChange(event);
1163
+ selectAll ? onSelectAllChange(event) : onSelectionChange(event);
1142
1164
  }, size: (density === 'compact' ? 'small' : 'medium') }, checkboxProps), { onClick: (e) => {
1143
1165
  var _a;
1144
1166
  e.stopPropagation();
@@ -1316,10 +1338,11 @@ const MRT_DefaultDisplayColumn = {
1316
1338
  };
1317
1339
  const useMRT_TableOptions = (_a) => {
1318
1340
  var _b;
1319
- var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeDirection", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
1341
+ var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, mrtTheme, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeDirection", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "mrtTheme", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
1320
1342
  const theme = styles.useTheme();
1321
1343
  icons = react.useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
1322
1344
  localization = react.useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
1345
+ mrtTheme = react.useMemo(() => getMRTTheme(mrtTheme, theme), [mrtTheme, theme]);
1323
1346
  aggregationFns = react.useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
1324
1347
  filterFns = react.useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
1325
1348
  sortingFns = react.useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
@@ -1404,6 +1427,7 @@ const useMRT_TableOptions = (_a) => {
1404
1427
  manualGrouping,
1405
1428
  manualPagination,
1406
1429
  manualSorting,
1430
+ mrtTheme,
1407
1431
  paginationDisplayMode,
1408
1432
  positionActionsColumn,
1409
1433
  positionCreatingRow,
@@ -1820,7 +1844,7 @@ const useMRT_Rows = (table) => {
1820
1844
  const allowedTypes = ['string', 'number'];
1821
1845
  const MRT_TableBodyCellValue = ({ cell, rowRef, staticColumnIndex, staticRowIndex, table, }) => {
1822
1846
  var _a, _b, _c;
1823
- const { getState, options: { enableFilterMatchHighlighting }, } = table;
1847
+ const { getState, options: { enableFilterMatchHighlighting, mrtTheme: { matchHighlightColor }, }, } = table;
1824
1848
  const { column, row } = cell;
1825
1849
  const { columnDef } = column;
1826
1850
  const { globalFilter, globalFilterFn } = getState();
@@ -1864,7 +1888,7 @@ const MRT_TableBodyCellValue = ({ cell, rowRef, staticColumnIndex, staticRowInde
1864
1888
  if ((chunks === null || chunks === void 0 ? void 0 : chunks.length) > 1 || ((_b = chunks === null || chunks === void 0 ? void 0 : chunks[0]) === null || _b === void 0 ? void 0 : _b.match)) {
1865
1889
  renderedCellValue = (jsxRuntime.jsx("span", { "aria-label": renderedCellValue, role: "note", children: (_c = chunks === null || chunks === void 0 ? void 0 : chunks.map(({ key, match, text }) => (jsxRuntime.jsx(Box__default["default"], { "aria-hidden": "true", component: "span", sx: match
1866
1890
  ? {
1867
- backgroundColor: (theme) => getMRTTheme(table, theme).matchHighlightColor,
1891
+ backgroundColor: matchHighlightColor,
1868
1892
  borderRadius: '2px',
1869
1893
  color: (theme) => theme.palette.mode === 'dark'
1870
1894
  ? theme.palette.common.white
@@ -2016,7 +2040,7 @@ const MRT_TableBodyCell = (_a) => {
2016
2040
  var _b, _c, _d, _e, _f;
2017
2041
  var { cell, numRows, rowRef, staticColumnIndex, staticRowIndex, table } = _a, rest = __rest(_a, ["cell", "numRows", "rowRef", "staticColumnIndex", "staticRowIndex", "table"]);
2018
2042
  const theme = styles.useTheme();
2019
- const { getState, options: { columnResizeDirection, columnResizeMode, createDisplayMode, editDisplayMode, enableCellActions, enableClickToCopy, enableColumnOrdering, enableColumnPinning, enableGrouping, layoutMode, muiSkeletonProps, muiTableBodyCellProps, }, setHoveredColumn, } = table;
2043
+ const { getState, options: { columnResizeDirection, columnResizeMode, createDisplayMode, editDisplayMode, enableCellActions, enableClickToCopy, enableColumnOrdering, enableColumnPinning, enableGrouping, layoutMode, mrtTheme: { draggingBorderColor }, muiSkeletonProps, muiTableBodyCellProps, }, setHoveredColumn, } = table;
2020
2044
  const { actionCell, columnSizingInfo, creatingRow, density, draggingColumn, draggingRow, editingCell, editingRow, hoveredColumn, hoveredRow, isLoading, showSkeletons, } = getState();
2021
2045
  const { column, row } = cell;
2022
2046
  const { columnDef } = column;
@@ -2029,7 +2053,6 @@ const MRT_TableBodyCell = (_a) => {
2029
2053
  row,
2030
2054
  table,
2031
2055
  });
2032
- const { draggingBorderColor } = getMRTTheme(table, theme);
2033
2056
  const [skeletonWidth, setSkeletonWidth] = react.useState(100);
2034
2057
  react.useEffect(() => {
2035
2058
  if ((!isLoading && !showSkeletons) || skeletonWidth !== 100)
@@ -2044,8 +2067,8 @@ const MRT_TableBodyCell = (_a) => {
2044
2067
  const isHoveredColumn = (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id;
2045
2068
  const isDraggingRow = (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id;
2046
2069
  const isHoveredRow = (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id;
2047
- const isFirstColumn = getIsFirstColumn(column, table);
2048
- const isLastColumn = getIsLastColumn(column, table);
2070
+ const isFirstColumn = column.getIsFirstColumn();
2071
+ const isLastColumn = column.getIsLastColumn();
2049
2072
  const isLastRow = numRows && staticRowIndex === numRows - 1;
2050
2073
  const isResizingColumn = columnSizingInfo.isResizingColumn === column.id;
2051
2074
  const showResizeBorder = isResizingColumn && columnResizeMode === 'onChange';
@@ -2123,6 +2146,11 @@ const MRT_TableBodyCell = (_a) => {
2123
2146
  setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
2124
2147
  }
2125
2148
  };
2149
+ const handleDragOver = (e) => {
2150
+ if (columnDef.enableColumnOrdering !== false) {
2151
+ e.preventDefault();
2152
+ }
2153
+ };
2126
2154
  const handleContextMenu = (e) => {
2127
2155
  var _a;
2128
2156
  (_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onContextMenu) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, e);
@@ -2132,7 +2160,7 @@ const MRT_TableBodyCell = (_a) => {
2132
2160
  table.refs.actionCellRef.current = e.currentTarget;
2133
2161
  }
2134
2162
  };
2135
- return (jsxRuntime.jsx(TableCell__default["default"], Object.assign({ align: theme.direction === 'rtl' ? 'right' : 'left', "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined }, tableCellProps, { onContextMenu: handleContextMenu, onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
2163
+ return (jsxRuntime.jsx(TableCell__default["default"], Object.assign({ align: theme.direction === 'rtl' ? 'right' : 'left', "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined }, tableCellProps, { onContextMenu: handleContextMenu, onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, onDragOver: handleDragOver, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
2136
2164
  outline: (actionCell === null || actionCell === void 0 ? void 0 : actionCell.id) === cell.id ||
2137
2165
  (editDisplayMode === 'cell' && isEditable) ||
2138
2166
  (editDisplayMode === 'table' && (isCreating || isEditing))
@@ -2177,7 +2205,7 @@ const Memo_MRT_TableBodyCell = react.memo(MRT_TableBodyCell, (prev, next) => nex
2177
2205
 
2178
2206
  const MRT_TableDetailPanel = (_a) => {
2179
2207
  var { parentRowRef, row, rowVirtualizer, staticRowIndex, table, virtualRow } = _a, rest = __rest(_a, ["parentRowRef", "row", "rowVirtualizer", "staticRowIndex", "table", "virtualRow"]);
2180
- const { getState, getVisibleLeafColumns, options: { enableRowVirtualization, layoutMode, muiDetailPanelProps, muiTableBodyRowProps, renderDetailPanel, }, } = table;
2208
+ const { getState, getVisibleLeafColumns, options: { layoutMode, mrtTheme: { baseBackgroundColor }, muiDetailPanelProps, muiTableBodyRowProps, renderDetailPanel, }, } = table;
2181
2209
  const { isLoading } = getState();
2182
2210
  const tableRowProps = parseFromValuesOrFunc(muiTableBodyRowProps, {
2183
2211
  isDetailPanel: true,
@@ -2202,18 +2230,14 @@ const MRT_TableDetailPanel = (_a) => {
2202
2230
  : undefined, transform: virtualRow
2203
2231
  ? `translateY(${virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.start}px)`
2204
2232
  : undefined, width: '100%' }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme)));
2205
- }, children: jsxRuntime.jsx(TableCell__default["default"], Object.assign({ className: "Mui-TableBodyCell-DetailPanel", colSpan: getVisibleLeafColumns().length }, tableCellProps, { sx: (theme) => (Object.assign({ backgroundColor: virtualRow
2206
- ? getMRTTheme(table, theme).baseBackgroundColor
2207
- : undefined, borderBottom: !row.getIsExpanded() ? 'none' : undefined, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, py: !!DetailPanel && row.getIsExpanded() ? '1rem' : 0, transition: !enableRowVirtualization
2208
- ? 'all 150ms ease-in-out'
2209
- : undefined, width: `100%` }, parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme))), children: enableRowVirtualization ? (row.getIsExpanded() && DetailPanel) : (jsxRuntime.jsx(Collapse__default["default"], { in: row.getIsExpanded(), mountOnEnter: true, unmountOnExit: true, children: DetailPanel })) })) })));
2233
+ }, children: jsxRuntime.jsx(TableCell__default["default"], Object.assign({ className: "Mui-TableBodyCell-DetailPanel", colSpan: getVisibleLeafColumns().length }, tableCellProps, { sx: (theme) => (Object.assign({ backgroundColor: virtualRow ? baseBackgroundColor : undefined, borderBottom: !row.getIsExpanded() ? 'none' : undefined, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, py: !!DetailPanel && row.getIsExpanded() ? '1rem' : 0, transition: !virtualRow ? 'all 150ms ease-in-out' : undefined, width: `100%` }, parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme))), children: virtualRow ? (row.getIsExpanded() && DetailPanel) : (jsxRuntime.jsx(Collapse__default["default"], { in: row.getIsExpanded(), mountOnEnter: true, unmountOnExit: true, children: DetailPanel })) })) })));
2210
2234
  };
2211
2235
 
2212
2236
  const MRT_TableBodyRow = (_a) => {
2213
2237
  var _b, _c, _d, _f;
2214
2238
  var { columnVirtualizer, numRows, pinnedRowIds, row, rowVirtualizer, staticRowIndex, table, virtualRow } = _a, rest = __rest(_a, ["columnVirtualizer", "numRows", "pinnedRowIds", "row", "rowVirtualizer", "staticRowIndex", "table", "virtualRow"]);
2215
2239
  const theme = styles.useTheme();
2216
- const { getState, options: { enableRowOrdering, enableRowPinning, enableStickyFooter, enableStickyHeader, layoutMode, memoMode, muiTableBodyRowProps, renderDetailPanel, rowPinningDisplayMode, }, refs: { tableFooterRef, tableHeadRef }, setHoveredRow, } = table;
2240
+ const { getState, options: { enableRowOrdering, enableRowPinning, enableStickyFooter, enableStickyHeader, layoutMode, memoMode, mrtTheme: { baseBackgroundColor, pinnedRowBackgroundColor, selectedRowBackgroundColor, }, muiTableBodyRowProps, renderDetailPanel, rowPinningDisplayMode, }, refs: { tableFooterRef, tableHeadRef }, setHoveredRow, } = table;
2217
2241
  const { density, draggingColumn, draggingRow, editingCell, editingRow, hoveredRow, isFullScreen, rowPinning, } = getState();
2218
2242
  const visibleCells = row.getVisibleCells();
2219
2243
  const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer !== null && columnVirtualizer !== void 0 ? columnVirtualizer : {};
@@ -2252,8 +2276,10 @@ const MRT_TableBodyRow = (_a) => {
2252
2276
  setHoveredRow(row);
2253
2277
  }
2254
2278
  };
2279
+ const handleDragOver = (e) => {
2280
+ e.preventDefault();
2281
+ };
2255
2282
  const rowRef = react.useRef(null);
2256
- const { baseBackgroundColor, pinnedRowBackgroundColor, selectedRowBackgroundColor, } = getMRTTheme(table, theme);
2257
2283
  const cellHighlightColor = isRowSelected
2258
2284
  ? selectedRowBackgroundColor
2259
2285
  : isRowPinned
@@ -2266,7 +2292,7 @@ const MRT_TableBodyRow = (_a) => {
2266
2292
  ? `${styles.lighten(baseBackgroundColor, 0.3)}`
2267
2293
  : `${styles.darken(baseBackgroundColor, 0.3)}`
2268
2294
  : undefined;
2269
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(TableRow__default["default"], Object.assign({ "data-index": renderDetailPanel ? staticRowIndex * 2 : staticRowIndex, "data-pinned": !!isRowPinned || undefined, "data-selected": isRowSelected || undefined, onDragEnter: handleDragEnter, ref: (node) => {
2295
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(TableRow__default["default"], Object.assign({ "data-index": renderDetailPanel ? staticRowIndex * 2 : staticRowIndex, "data-pinned": !!isRowPinned || undefined, "data-selected": isRowSelected || undefined, onDragEnter: handleDragEnter, onDragOver: handleDragOver, ref: (node) => {
2270
2296
  if (node) {
2271
2297
  rowRef.current = node;
2272
2298
  rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement(node);
@@ -2430,7 +2456,7 @@ const MRT_TableFooterCell = (_a) => {
2430
2456
  const MRT_TableFooterRow = (_a) => {
2431
2457
  var _b;
2432
2458
  var { columnVirtualizer, footerGroup, table } = _a, rest = __rest(_a, ["columnVirtualizer", "footerGroup", "table"]);
2433
- const { options: { layoutMode, muiTableFooterRowProps }, } = table;
2459
+ const { options: { layoutMode, mrtTheme: { baseBackgroundColor }, muiTableFooterRowProps, }, } = table;
2434
2460
  const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer !== null && columnVirtualizer !== void 0 ? columnVirtualizer : {};
2435
2461
  // if no content in row, skip row
2436
2462
  if (!((_b = footerGroup.headers) === null || _b === void 0 ? void 0 : _b.some((header) => (typeof header.column.columnDef.footer === 'string' &&
@@ -2442,7 +2468,7 @@ const MRT_TableFooterRow = (_a) => {
2442
2468
  footerGroup,
2443
2469
  table,
2444
2470
  })), rest);
2445
- return (jsxRuntime.jsxs(TableRow__default["default"], Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: getMRTTheme(table, theme).baseBackgroundColor, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, position: 'relative', width: '100%' }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme))), children: [virtualPaddingLeft ? (jsxRuntime.jsx("th", { style: { display: 'flex', width: virtualPaddingLeft } })) : null, (virtualColumns !== null && virtualColumns !== void 0 ? virtualColumns : footerGroup.headers).map((footerOrVirtualFooter, staticColumnIndex) => {
2471
+ return (jsxRuntime.jsxs(TableRow__default["default"], Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, position: 'relative', width: '100%' }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme))), children: [virtualPaddingLeft ? (jsxRuntime.jsx("th", { style: { display: 'flex', width: virtualPaddingLeft } })) : null, (virtualColumns !== null && virtualColumns !== void 0 ? virtualColumns : footerGroup.headers).map((footerOrVirtualFooter, staticColumnIndex) => {
2446
2472
  let footer = footerOrVirtualFooter;
2447
2473
  if (columnVirtualizer) {
2448
2474
  staticColumnIndex = footerOrVirtualFooter
@@ -2567,7 +2593,7 @@ const rangeVariants = ['range-slider', 'date-range', 'datetime-range', 'range'];
2567
2593
  const MRT_FilterOptionMenu = (_a) => {
2568
2594
  var _b, _c, _d, _e;
2569
2595
  var { anchorEl, header, onSelect, setAnchorEl, setFilterValue, table } = _a, rest = __rest(_a, ["anchorEl", "header", "onSelect", "setAnchorEl", "setFilterValue", "table"]);
2570
- const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
2596
+ const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, mrtTheme: { menuBackgroundColor }, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
2571
2597
  const { density, globalFilterFn } = getState();
2572
2598
  const { column } = header !== null && header !== void 0 ? header : {};
2573
2599
  const { columnDef } = column !== null && column !== void 0 ? column : {};
@@ -2650,8 +2676,6 @@ const MRT_FilterOptionMenu = (_a) => {
2650
2676
  onSelect === null || onSelect === void 0 ? void 0 : onSelect();
2651
2677
  };
2652
2678
  const filterOption = !!header && columnDef ? columnDef._filterFn : globalFilterFn;
2653
- const theme = styles.useTheme();
2654
- const { menuBackgroundColor } = getMRTTheme(table, theme);
2655
2679
  return (jsxRuntime.jsx(Menu__default["default"], Object.assign({ MenuListProps: {
2656
2680
  dense: density === 'compact',
2657
2681
  sx: {
@@ -2679,7 +2703,7 @@ const MRT_FilterOptionMenu = (_a) => {
2679
2703
  const MRT_ColumnActionMenu = (_a) => {
2680
2704
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
2681
2705
  var { anchorEl, header, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "header", "setAnchorEl", "table"]);
2682
- const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
2706
+ const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, mrtTheme: { menuBackgroundColor }, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
2683
2707
  const { column } = header;
2684
2708
  const { columnDef } = column;
2685
2709
  const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
@@ -2791,8 +2815,6 @@ const MRT_ColumnActionMenu = (_a) => {
2791
2815
  ]
2792
2816
  : []),
2793
2817
  ].filter(Boolean);
2794
- const theme = styles.useTheme();
2795
- const { menuBackgroundColor } = getMRTTheme(table, theme);
2796
2818
  return (jsxRuntime.jsx(Menu__default["default"], Object.assign({ MenuListProps: {
2797
2819
  dense: density === 'compact',
2798
2820
  sx: {
@@ -2865,9 +2887,9 @@ const MRT_FilterCheckbox = (_a) => {
2865
2887
  };
2866
2888
 
2867
2889
  const MRT_FilterTextField = (_a) => {
2868
- var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
2890
+ var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
2869
2891
  var { header, rangeFilterIndex, table } = _a, rest = __rest(_a, ["header", "rangeFilterIndex", "table"]);
2870
- const { options: { columnFilterModeOptions, enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterAutocompleteProps, muiFilterDatePickerProps, muiFilterDateTimePickerProps, muiFilterTextFieldProps, muiFilterTimePickerProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
2892
+ const { options: { enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterAutocompleteProps, muiFilterDatePickerProps, muiFilterDateTimePickerProps, muiFilterTextFieldProps, muiFilterTimePickerProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
2871
2893
  const { column } = header;
2872
2894
  const { columnDef } = column;
2873
2895
  const { filterVariant } = columnDef;
@@ -2891,14 +2913,8 @@ const MRT_FilterTextField = (_a) => {
2891
2913
  column,
2892
2914
  table,
2893
2915
  }));
2894
- const isDateFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) || (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('time'));
2895
- const isAutocompleteFilter = filterVariant === 'autocomplete';
2896
- const isRangeFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range')) || rangeFilterIndex !== undefined;
2897
- const isSelectFilter = filterVariant === 'select';
2898
- const isMultiSelectFilter = filterVariant === 'multi-select';
2899
- const isTextboxFilter = ['autocomplete', 'text'].includes(filterVariant) ||
2900
- (!isSelectFilter && !isMultiSelectFilter);
2901
- const currentFilterOption = columnDef._filterFn;
2916
+ const { allowedColumnFilterOptions, currentFilterOption, facetedUniqueValues, isAutocompleteFilter, isDateFilter, isMultiSelectFilter, isRangeFilter, isSelectFilter, isTextboxFilter, } = getColumnFilterInfo({ header, table });
2917
+ const dropdownOptions = useDropdownOptions({ header, table });
2902
2918
  const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
2903
2919
  ? //@ts-ignore
2904
2920
  localization[`filter${((_c = (_b = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt) === null || _b === void 0 ? void 0 : _b.call(currentFilterOption, 0)) === null || _c === void 0 ? void 0 : _c.toUpperCase()) +
@@ -2911,13 +2927,11 @@ const MRT_FilterTextField = (_a) => {
2911
2927
  : rangeFilterIndex === 1
2912
2928
  ? localization.max
2913
2929
  : '';
2914
- const allowedColumnFilterOptions = (_g = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _g !== void 0 ? _g : columnFilterModeOptions;
2915
- const showChangeModeButton = enableColumnFilterModes &&
2930
+ const showChangeModeButton = !!(enableColumnFilterModes &&
2916
2931
  columnDef.enableColumnFilterModes !== false &&
2917
2932
  !rangeFilterIndex &&
2918
2933
  (allowedColumnFilterOptions === undefined ||
2919
- !!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
2920
- const facetedUniqueValues = column.getFacetedUniqueValues();
2934
+ !!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length)));
2921
2935
  const [anchorEl, setAnchorEl] = react.useState(null);
2922
2936
  const [filterValue, setFilterValue] = react.useState(() => {
2923
2937
  var _a, _b;
@@ -3004,23 +3018,9 @@ const MRT_FilterTextField = (_a) => {
3004
3018
  isMounted.current = true;
3005
3019
  }, [column.getFilterValue()]);
3006
3020
  if (columnDef.Filter) {
3007
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: (_h = columnDef.Filter) === null || _h === void 0 ? void 0 : _h.call(columnDef, { column, header, rangeFilterIndex, table }) }));
3021
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: (_g = columnDef.Filter) === null || _g === void 0 ? void 0 : _g.call(columnDef, { column, header, rangeFilterIndex, table }) }));
3008
3022
  }
3009
- const dropdownOptions = react.useMemo(() => {
3010
- var _a;
3011
- return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter || isAutocompleteFilter) &&
3012
- facetedUniqueValues
3013
- ? Array.from(facetedUniqueValues.keys())
3014
- .filter((value) => value !== null && value !== undefined)
3015
- .sort((a, b) => a.localeCompare(b))
3016
- : undefined);
3017
- }, [
3018
- columnDef.filterSelectOptions,
3019
- facetedUniqueValues,
3020
- isMultiSelectFilter,
3021
- isSelectFilter,
3022
- ]);
3023
- const endAdornment = !isAutocompleteFilter && !isDateFilter && !filterChipLabel ? (jsxRuntime.jsx(InputAdornment__default["default"], { position: "end", sx: { mr: isSelectFilter || isMultiSelectFilter ? '20px' : undefined }, children: jsxRuntime.jsx(Tooltip__default["default"], { placement: "right", title: (_j = localization.clearFilter) !== null && _j !== void 0 ? _j : '', children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.clearFilter, disabled: !((_k = filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString()) === null || _k === void 0 ? void 0 : _k.length), onClick: handleClear, size: "small", sx: {
3023
+ const endAdornment = !isAutocompleteFilter && !isDateFilter && !filterChipLabel ? (jsxRuntime.jsx(InputAdornment__default["default"], { position: "end", sx: { mr: isSelectFilter || isMultiSelectFilter ? '20px' : undefined }, children: jsxRuntime.jsx(Tooltip__default["default"], { placement: "right", title: (_h = localization.clearFilter) !== null && _h !== void 0 ? _h : '', children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.clearFilter, disabled: !((_j = filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString()) === null || _j === void 0 ? void 0 : _j.length), onClick: handleClear, size: "small", sx: {
3024
3024
  height: '2rem',
3025
3025
  transform: 'scale(0.9)',
3026
3026
  width: '2rem',
@@ -3036,7 +3036,7 @@ const MRT_FilterTextField = (_a) => {
3036
3036
  ? { endAdornment, startAdornment }
3037
3037
  : { startAdornment }, fullWidth: true, helperText: showChangeModeButton ? (jsxRuntime.jsx("label", { children: localization.filterMode.replace('{filterType}',
3038
3038
  // @ts-ignore
3039
- localization[`filter${((_l = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _l === void 0 ? void 0 : _l.toUpperCase()) +
3039
+ localization[`filter${((_k = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _k === void 0 ? void 0 : _k.toUpperCase()) +
3040
3040
  (currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]) })) : null, inputProps: {
3041
3041
  'aria-label': filterPlaceholder,
3042
3042
  autoComplete: 'new-password', // disable autocomplete and autofill
@@ -3070,15 +3070,15 @@ const MRT_FilterTextField = (_a) => {
3070
3070
  value: filterValue || null,
3071
3071
  };
3072
3072
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [(filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('time')) ? (jsxRuntime.jsx(TimePicker.TimePicker, Object.assign({}, commonDatePickerProps, timePickerProps, { slotProps: {
3073
- field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_m = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _m === void 0 ? void 0 : _m.field),
3074
- textField: Object.assign(Object.assign({}, commonTextFieldProps), (_o = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _o === void 0 ? void 0 : _o.textField),
3073
+ field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_l = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _l === void 0 ? void 0 : _l.field),
3074
+ textField: Object.assign(Object.assign({}, commonTextFieldProps), (_m = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _m === void 0 ? void 0 : _m.textField),
3075
3075
  } }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('datetime')) ? (jsxRuntime.jsx(DateTimePicker.DateTimePicker, Object.assign({}, commonDatePickerProps, dateTimePickerProps, { slotProps: {
3076
- field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_p = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _p === void 0 ? void 0 : _p.field),
3077
- textField: Object.assign(Object.assign({}, commonTextFieldProps), (_q = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _q === void 0 ? void 0 : _q.textField),
3076
+ field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_o = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _o === void 0 ? void 0 : _o.field),
3077
+ textField: Object.assign(Object.assign({}, commonTextFieldProps), (_p = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _p === void 0 ? void 0 : _p.textField),
3078
3078
  } }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) ? (jsxRuntime.jsx(DatePicker.DatePicker, Object.assign({}, commonDatePickerProps, datePickerProps, { slotProps: {
3079
- field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_r = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _r === void 0 ? void 0 : _r.field),
3080
- textField: Object.assign(Object.assign({}, commonTextFieldProps), (_s = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _s === void 0 ? void 0 : _s.textField),
3081
- } }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label, onChange: (_e, newValue) => handleAutocompleteChange(newValue), options: (_t = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option) => getValueAndLabel(option))) !== null && _t !== void 0 ? _t : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
3079
+ field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_q = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _q === void 0 ? void 0 : _q.field),
3080
+ textField: Object.assign(Object.assign({}, commonTextFieldProps), (_r = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _r === void 0 ? void 0 : _r.textField),
3081
+ } }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label, onChange: (_e, newValue) => handleAutocompleteChange(newValue), options: (_s = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option) => getValueAndLabel(option))) !== null && _s !== void 0 ? _s : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
3082
3082
  var _a;
3083
3083
  return (jsxRuntime.jsx(TextField__default["default"], Object.assign({}, builtinTextFieldProps, commonTextFieldProps, { InputProps: Object.assign(Object.assign({}, builtinTextFieldProps.InputProps), { startAdornment: (_a = commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.startAdornment }), inputProps: Object.assign(Object.assign({}, builtinTextFieldProps.inputProps), commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.inputProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation() })));
3084
3084
  }, value: autocompleteValue }))) : (jsxRuntime.jsx(TextField__default["default"], Object.assign({ select: isSelectFilter || isMultiSelectFilter }, commonTextFieldProps, { SelectProps: Object.assign({ MenuProps: { disableScrollLock: true }, displayEmpty: true, multiple: isMultiSelectFilter, renderValue: isMultiSelectFilter
@@ -3089,7 +3089,7 @@ const MRT_FilterTextField = (_a) => {
3089
3089
  : undefined }, commonTextFieldProps.SelectProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation(), value: filterValue !== null && filterValue !== void 0 ? filterValue : '', children: (isSelectFilter || isMultiSelectFilter) && [
3090
3090
  jsxRuntime.jsx(MenuItem__default["default"], { disabled: true, divider: true, hidden: true, value: "", children: jsxRuntime.jsx(Box__default["default"], { sx: { opacity: 0.5 }, children: filterPlaceholder }) }, "p"),
3091
3091
  ...[
3092
- (_u = textFieldProps.children) !== null && _u !== void 0 ? _u : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
3092
+ (_t = textFieldProps.children) !== null && _t !== void 0 ? _t : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
3093
3093
  var _a;
3094
3094
  const { label, value } = getValueAndLabel(option);
3095
3095
  return (jsxRuntime.jsxs(MenuItem__default["default"], { sx: {
@@ -3106,7 +3106,7 @@ const MRT_FilterTextField = (_a) => {
3106
3106
 
3107
3107
  const MRT_FilterRangeFields = (_a) => {
3108
3108
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
3109
- return (jsxRuntime.jsxs(Box__default["default"], Object.assign({}, rest, { sx: (theme) => (Object.assign({ display: 'grid', gap: '1rem', gridTemplateColumns: '1fr 1fr' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: [jsxRuntime.jsx(MRT_FilterTextField, { header: header, rangeFilterIndex: 0, table: table }), jsxRuntime.jsx(MRT_FilterTextField, { header: header, rangeFilterIndex: 1, table: table })] })));
3109
+ return (jsxRuntime.jsx(Box__default["default"], Object.assign({}, rest, { sx: (theme) => (Object.assign({ display: 'grid', gap: '1rem', gridTemplateColumns: '1fr 1fr' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: [0, 1].map((rangeFilterIndex) => (jsxRuntime.jsx(MRT_FilterTextField, { header: header, rangeFilterIndex: rangeFilterIndex, table: table }, rangeFilterIndex))) })));
3110
3110
  };
3111
3111
 
3112
3112
  const MRT_FilterRangeSlider = (_a) => {
@@ -3182,41 +3182,45 @@ const MRT_FilterRangeSlider = (_a) => {
3182
3182
  };
3183
3183
 
3184
3184
  const MRT_TableHeadCellFilterContainer = (_a) => {
3185
- var _b;
3186
3185
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
3187
3186
  const { getState, options: { columnFilterDisplayMode }, } = table;
3188
3187
  const { showColumnFilters } = getState();
3189
3188
  const { column } = header;
3190
3189
  const { columnDef } = column;
3191
- return (jsxRuntime.jsx(Collapse__default["default"], Object.assign({ in: showColumnFilters || columnFilterDisplayMode === 'popover', mountOnEnter: true, unmountOnExit: true }, rest, { children: columnDef.filterVariant === 'checkbox' ? (jsxRuntime.jsx(MRT_FilterCheckbox, { column: column, table: table })) : columnDef.filterVariant === 'range-slider' ? (jsxRuntime.jsx(MRT_FilterRangeSlider, { header: header, table: table })) : ((_b = columnDef.filterVariant) === null || _b === void 0 ? void 0 : _b.includes('range')) ||
3192
- ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn) ? (jsxRuntime.jsx(MRT_FilterRangeFields, { header: header, table: table })) : (jsxRuntime.jsx(MRT_FilterTextField, { header: header, table: table })) })));
3190
+ const { isRangeFilter } = getColumnFilterInfo({ header, table });
3191
+ return (jsxRuntime.jsx(Collapse__default["default"], Object.assign({ in: showColumnFilters || columnFilterDisplayMode === 'popover', mountOnEnter: true, unmountOnExit: true }, rest, { children: columnDef.filterVariant === 'checkbox' ? (jsxRuntime.jsx(MRT_FilterCheckbox, { column: column, table: table })) : columnDef.filterVariant === 'range-slider' ? (jsxRuntime.jsx(MRT_FilterRangeSlider, { header: header, table: table })) : isRangeFilter ? (jsxRuntime.jsx(MRT_FilterRangeFields, { header: header, table: table })) : (jsxRuntime.jsx(MRT_FilterTextField, { header: header, table: table })) })));
3193
3192
  };
3194
3193
 
3195
3194
  const MRT_TableHeadCellFilterLabel = (_a) => {
3196
- var _b, _c, _d;
3195
+ var _b, _c;
3197
3196
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
3198
3197
  const { options: { columnFilterDisplayMode, icons: { FilterAltIcon }, localization, }, refs: { filterInputRefs }, setShowColumnFilters, } = table;
3199
3198
  const { column } = header;
3200
3199
  const { columnDef } = column;
3201
3200
  const filterValue = column.getFilterValue();
3202
3201
  const [anchorEl, setAnchorEl] = react.useState(null);
3202
+ const { currentFilterOption, isMultiSelectFilter, isRangeFilter, isSelectFilter, } = getColumnFilterInfo({ header, table });
3203
+ const dropdownOptions = useDropdownOptions({ header, table });
3204
+ const getSelectLabel = (index) => getValueAndLabel(dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.find((option) => getValueAndLabel(option).value ===
3205
+ (index !== undefined ? filterValue[index] : filterValue))).label;
3203
3206
  const isFilterActive = (Array.isArray(filterValue) && filterValue.some(Boolean)) ||
3204
3207
  (!!filterValue && !Array.isArray(filterValue));
3205
- const isRangeFilter = ((_b = columnDef.filterVariant) === null || _b === void 0 ? void 0 : _b.includes('range')) ||
3206
- ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
3207
- const currentFilterOption = columnDef._filterFn;
3208
3208
  const filterTooltip = columnFilterDisplayMode === 'popover' && !isFilterActive
3209
- ? (_c = localization.filterByColumn) === null || _c === void 0 ? void 0 : _c.replace('{column}', String(columnDef.header))
3209
+ ? (_b = localization.filterByColumn) === null || _b === void 0 ? void 0 : _b.replace('{column}', String(columnDef.header))
3210
3210
  : localization.filteringByColumn
3211
3211
  .replace('{column}', String(columnDef.header))
3212
3212
  .replace('{filterType}', currentFilterOption
3213
3213
  ? // @ts-ignore
3214
- localization[`filter${((_d = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _d === void 0 ? void 0 : _d.toUpperCase()) +
3214
+ localization[`filter${((_c = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _c === void 0 ? void 0 : _c.toUpperCase()) +
3215
3215
  (currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]
3216
3216
  : '')
3217
3217
  .replace('{filterValue}', `"${Array.isArray(filterValue)
3218
- ? filterValue.join(`" ${isRangeFilter ? localization.and : localization.or} "`)
3219
- : filterValue}"`)
3218
+ ? filterValue
3219
+ .map((value, index) => isMultiSelectFilter ? getSelectLabel(index) : value)
3220
+ .join(`" ${isRangeFilter ? localization.and : localization.or} "`)
3221
+ : isSelectFilter
3222
+ ? getSelectLabel()
3223
+ : filterValue}"`)
3220
3224
  .replace('" "', '');
3221
3225
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Grow__default["default"], { in: columnFilterDisplayMode === 'popover' ||
3222
3226
  (!!filterValue && !isRangeFilter) ||
@@ -3234,7 +3238,7 @@ const MRT_TableHeadCellFilterLabel = (_a) => {
3234
3238
  (_d = (_c = filterInputRefs.current[`${column.id}-0`]) === null || _c === void 0 ? void 0 : _c.select) === null || _d === void 0 ? void 0 : _d.call(_c);
3235
3239
  });
3236
3240
  event.stopPropagation();
3237
- }, size: "small" }, rest, { sx: (theme) => (Object.assign({ height: '16px', ml: '4px', opacity: isFilterActive ? 1 : 0.3, p: '8px', transform: 'scale(0.75)', transition: 'all 150ms ease-in-out', width: '16px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsxRuntime.jsx(FilterAltIcon, {}) })) }) }) }), jsxRuntime.jsx(Popover__default["default"], { anchorEl: anchorEl, anchorOrigin: {
3241
+ }, size: "small" }, rest, { sx: (theme) => (Object.assign({ height: '16px', ml: '4px', opacity: isFilterActive ? 1 : 0.3, p: '8px', transform: 'scale(0.75)', transition: 'all 150ms ease-in-out', width: '16px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsxRuntime.jsx(FilterAltIcon, {}) })) }) }) }), columnFilterDisplayMode === 'popover' && (jsxRuntime.jsx(Popover__default["default"], { anchorEl: anchorEl, anchorOrigin: {
3238
3242
  horizontal: 'center',
3239
3243
  vertical: 'top',
3240
3244
  }, disableScrollLock: true, onClick: (event) => event.stopPropagation(), onClose: (event) => {
@@ -3244,7 +3248,7 @@ const MRT_TableHeadCellFilterLabel = (_a) => {
3244
3248
  }, onKeyDown: (event) => event.key === 'Enter' && setAnchorEl(null), open: !!anchorEl, slotProps: { paper: { sx: { overflow: 'visible' } } }, transformOrigin: {
3245
3249
  horizontal: 'center',
3246
3250
  vertical: 'bottom',
3247
- }, children: jsxRuntime.jsx(Box__default["default"], { sx: { p: '1rem' }, children: jsxRuntime.jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) })] }));
3251
+ }, children: jsxRuntime.jsx(Box__default["default"], { sx: { p: '1rem' }, children: jsxRuntime.jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) }))] }));
3248
3252
  };
3249
3253
 
3250
3254
  const MRT_TableHeadCellGrabHandle = (_a) => {
@@ -3360,7 +3364,7 @@ const MRT_TableHeadCell = (_a) => {
3360
3364
  var _b, _c, _d, _f, _g, _h;
3361
3365
  var { columnVirtualizer, header, staticColumnIndex, table } = _a, rest = __rest(_a, ["columnVirtualizer", "header", "staticColumnIndex", "table"]);
3362
3366
  const theme = styles.useTheme();
3363
- const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnPinning, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
3367
+ const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnPinning, enableGrouping, enableMultiSort, layoutMode, mrtTheme: { draggingBorderColor }, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
3364
3368
  const { columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
3365
3369
  const { column } = header;
3366
3370
  const { columnDef } = column;
@@ -3369,7 +3373,6 @@ const MRT_TableHeadCell = (_a) => {
3369
3373
  column,
3370
3374
  table,
3371
3375
  })), rest);
3372
- const { draggingBorderColor } = getMRTTheme(table, theme);
3373
3376
  const isColumnPinned = enableColumnPinning &&
3374
3377
  columnDef.columnDefType !== 'group' &&
3375
3378
  column.getIsPinned();
@@ -3425,6 +3428,11 @@ const MRT_TableHeadCell = (_a) => {
3425
3428
  setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
3426
3429
  }
3427
3430
  };
3431
+ const handleDragOver = (e) => {
3432
+ if (columnDef.enableColumnOrdering !== false) {
3433
+ e.preventDefault();
3434
+ }
3435
+ };
3428
3436
  const HeaderElement = (_b = parseFromValuesOrFunc(columnDef.Header, {
3429
3437
  column,
3430
3438
  header,
@@ -3434,7 +3442,7 @@ const MRT_TableHeadCell = (_a) => {
3434
3442
  ? 'center'
3435
3443
  : theme.direction === 'rtl'
3436
3444
  ? 'right'
3437
- : 'left', colSpan: header.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, onDragEnter: handleDragEnter, ref: (node) => {
3445
+ : 'left', colSpan: header.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, onDragEnter: handleDragEnter, onDragOver: handleDragOver, ref: (node) => {
3438
3446
  var _a;
3439
3447
  if (node) {
3440
3448
  tableHeadCellRefs.current[column.id] = node;
@@ -3512,13 +3520,13 @@ const MRT_TableHeadCell = (_a) => {
3512
3520
 
3513
3521
  const MRT_TableHeadRow = (_a) => {
3514
3522
  var { columnVirtualizer, headerGroup, table } = _a, rest = __rest(_a, ["columnVirtualizer", "headerGroup", "table"]);
3515
- const { options: { enableStickyHeader, layoutMode, muiTableHeadRowProps }, } = table;
3523
+ const { options: { enableStickyHeader, layoutMode, mrtTheme: { baseBackgroundColor }, muiTableHeadRowProps, }, } = table;
3516
3524
  const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer !== null && columnVirtualizer !== void 0 ? columnVirtualizer : {};
3517
3525
  const tableRowProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableHeadRowProps, {
3518
3526
  headerGroup,
3519
3527
  table,
3520
3528
  })), rest);
3521
- return (jsxRuntime.jsxs(TableRow__default["default"], Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: getMRTTheme(table, theme).baseBackgroundColor, boxShadow: `4px 0 8px ${styles.alpha(theme.palette.common.black, 0.1)}`, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, position: enableStickyHeader && layoutMode === 'semantic'
3529
+ return (jsxRuntime.jsxs(TableRow__default["default"], Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, boxShadow: `4px 0 8px ${styles.alpha(theme.palette.common.black, 0.1)}`, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, position: enableStickyHeader && layoutMode === 'semantic'
3522
3530
  ? 'sticky'
3523
3531
  : 'relative', top: 0 }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme))), children: [virtualPaddingLeft ? (jsxRuntime.jsx("th", { style: { display: 'flex', width: virtualPaddingLeft } })) : null, (virtualColumns !== null && virtualColumns !== void 0 ? virtualColumns : headerGroup.headers).map((headerOrVirtualHeader, staticColumnIndex) => {
3524
3532
  let header = headerOrVirtualHeader;
@@ -3546,7 +3554,7 @@ const MRT_ToolbarAlertBanner = (_a) => {
3546
3554
  const selectedRowCount = react.useMemo(() => manualPagination
3547
3555
  ? Object.values(rowSelection).filter(Boolean).length
3548
3556
  : getFilteredSelectedRowModel().rows.length, [rowSelection, totalRowCount, manualPagination]);
3549
- const selectedAlert = selectedRowCount > 0 ? (jsxRuntime.jsxs(Stack__default["default"], { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsxRuntime.jsx(Button__default["default"], { onClick: (event) => getMRT_SelectAllHandler({ table })(event, false), size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
3557
+ const selectedAlert = selectedRowCount > 0 ? (jsxRuntime.jsxs(Stack__default["default"], { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsxRuntime.jsx(Button__default["default"], { onClick: (event) => getMRT_SelectAllHandler({ table })(event, false, true), size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
3550
3558
  const groupedAlert = grouping.length > 0 ? (jsxRuntime.jsxs("span", { children: [localization.groupedBy, ' ', grouping.map((columnId, index) => (jsxRuntime.jsxs(react.Fragment, { children: [index > 0 ? localization.thenBy : '', jsxRuntime.jsx(Chip__default["default"], Object.assign({ label: table.getColumn(columnId).columnDef.header, onDelete: () => table.getColumn(columnId).toggleGrouping() }, chipProps))] }, `${index}-${columnId}`)))] })) : null;
3551
3559
  return (jsxRuntime.jsx(Collapse__default["default"], { in: showAlertBanner || !!selectedAlert || !!groupedAlert, timeout: stackAlertBanner ? 200 : 0, children: jsxRuntime.jsx(Alert__default["default"], Object.assign({ color: "info", icon: false }, alertProps, { sx: (theme) => {
3552
3560
  var _a, _b;
@@ -3577,7 +3585,7 @@ const MRT_ToolbarAlertBanner = (_a) => {
3577
3585
 
3578
3586
  const MRT_TableHead = (_a) => {
3579
3587
  var { columnVirtualizer, table } = _a, rest = __rest(_a, ["columnVirtualizer", "table"]);
3580
- const { getHeaderGroups, getSelectedRowModel, getState, options: { enableStickyHeader, layoutMode, muiTableHeadProps, positionToolbarAlertBanner, }, refs: { tableHeadRef }, } = table;
3588
+ const { getState, options: { enableStickyHeader, layoutMode, muiTableHeadProps, positionToolbarAlertBanner, }, refs: { tableHeadRef }, } = table;
3581
3589
  const { isFullScreen, showAlertBanner } = getState();
3582
3590
  const tableHeadProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableHeadProps, { table })), rest);
3583
3591
  const stickyHeader = enableStickyHeader || isFullScreen;
@@ -3588,12 +3596,14 @@ const MRT_TableHead = (_a) => {
3588
3596
  tableHeadProps.ref.current = ref;
3589
3597
  }
3590
3598
  }, sx: (theme) => (Object.assign({ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, opacity: 0.97, position: stickyHeader ? 'sticky' : 'relative', top: stickyHeader && (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 0 : undefined, zIndex: stickyHeader ? 2 : undefined }, parseFromValuesOrFunc(tableHeadProps === null || tableHeadProps === void 0 ? void 0 : tableHeadProps.sx, theme))), children: positionToolbarAlertBanner === 'head-overlay' &&
3591
- (showAlertBanner || getSelectedRowModel().rows.length > 0) ? (jsxRuntime.jsx("tr", { style: {
3599
+ (showAlertBanner || table.getSelectedRowModel().rows.length > 0) ? (jsxRuntime.jsx("tr", { style: {
3592
3600
  display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
3593
3601
  }, children: jsxRuntime.jsx("th", { colSpan: table.getVisibleLeafColumns().length, style: {
3594
3602
  display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
3595
3603
  padding: 0,
3596
- }, children: jsxRuntime.jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (getHeaderGroups().map((headerGroup) => (jsxRuntime.jsx(MRT_TableHeadRow, { columnVirtualizer: columnVirtualizer, headerGroup: headerGroup, table: table }, headerGroup.id)))) })));
3604
+ }, children: jsxRuntime.jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (table
3605
+ .getHeaderGroups()
3606
+ .map((headerGroup) => (jsxRuntime.jsx(MRT_TableHeadRow, { columnVirtualizer: columnVirtualizer, headerGroup: headerGroup, table: table }, headerGroup.id)))) })));
3597
3607
  };
3598
3608
 
3599
3609
  const MRT_Table = (_a) => {
@@ -3624,11 +3634,11 @@ const MRT_Table = (_a) => {
3624
3634
  const MRT_TableLoadingOverlay = (_a) => {
3625
3635
  var _b;
3626
3636
  var { table } = _a, rest = __rest(_a, ["table"]);
3627
- const { options: { localization, muiCircularProgressProps }, } = table;
3637
+ const { options: { localization, mrtTheme: { baseBackgroundColor }, muiCircularProgressProps, }, } = table;
3628
3638
  const circularProgressProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiCircularProgressProps, { table })), rest);
3629
- return (jsxRuntime.jsx(Box__default["default"], { sx: (theme) => ({
3639
+ return (jsxRuntime.jsx(Box__default["default"], { sx: {
3630
3640
  alignItems: 'center',
3631
- backgroundColor: styles.alpha(getMRTTheme(table, theme).baseBackgroundColor, 0.5),
3641
+ backgroundColor: styles.alpha(baseBackgroundColor, 0.5),
3632
3642
  bottom: 0,
3633
3643
  display: 'flex',
3634
3644
  justifyContent: 'center',
@@ -3639,20 +3649,18 @@ const MRT_TableLoadingOverlay = (_a) => {
3639
3649
  top: 0,
3640
3650
  width: '100%',
3641
3651
  zIndex: 3,
3642
- }), children: (_b = circularProgressProps === null || circularProgressProps === void 0 ? void 0 : circularProgressProps.Component) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(CircularProgress__default["default"], Object.assign({ "aria-label": localization.noRecordsToDisplay, id: "mrt-progress" }, circularProgressProps))) }));
3652
+ }, children: (_b = circularProgressProps === null || circularProgressProps === void 0 ? void 0 : circularProgressProps.Component) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(CircularProgress__default["default"], Object.assign({ "aria-label": localization.noRecordsToDisplay, id: "mrt-progress" }, circularProgressProps))) }));
3643
3653
  };
3644
3654
 
3645
3655
  const MRT_CellActionMenu = (_a) => {
3646
3656
  var _b, _c;
3647
3657
  var { table } = _a, rest = __rest(_a, ["table"]);
3648
- const { getState, options: { editDisplayMode, enableClickToCopy, enableEditing, icons: { ContentCopy, EditIcon }, localization, renderCellActionMenuItems, }, refs: { actionCellRef }, } = table;
3658
+ const { getState, options: { editDisplayMode, enableClickToCopy, enableEditing, icons: { ContentCopy, EditIcon }, localization, mrtTheme: { menuBackgroundColor }, renderCellActionMenuItems, }, refs: { actionCellRef }, } = table;
3649
3659
  const { actionCell, density } = getState();
3650
3660
  const cell = actionCell;
3651
3661
  const { row } = cell;
3652
3662
  const { column } = cell;
3653
3663
  const { columnDef } = column;
3654
- const theme = styles.useTheme();
3655
- const { menuBackgroundColor } = getMRTTheme(table, theme);
3656
3664
  const handleClose = (event) => {
3657
3665
  event === null || event === void 0 ? void 0 : event.stopPropagation();
3658
3666
  table.setActionCell(null);
@@ -3844,6 +3852,9 @@ const MRT_ToolbarDropZone = (_a) => {
3844
3852
  const handleDragEnter = (_event) => {
3845
3853
  setHoveredColumn({ id: 'drop-zone' });
3846
3854
  };
3855
+ const handleDragOver = (e) => {
3856
+ e.preventDefault();
3857
+ };
3847
3858
  react.useEffect(() => {
3848
3859
  var _a;
3849
3860
  if (((_a = table.options.state) === null || _a === void 0 ? void 0 : _a.showToolbarDropZone) !== undefined) {
@@ -3853,7 +3864,7 @@ const MRT_ToolbarDropZone = (_a) => {
3853
3864
  !grouping.includes(draggingColumn.id));
3854
3865
  }
3855
3866
  }, [enableGrouping, draggingColumn, grouping]);
3856
- return (jsxRuntime.jsx(Fade__default["default"], { in: showToolbarDropZone, children: jsxRuntime.jsx(Box__default["default"], Object.assign({ className: "Mui-ToolbarDropZone", onDragEnter: handleDragEnter }, rest, { sx: (theme) => (Object.assign({ alignItems: 'center', backdropFilter: 'blur(4px)', backgroundColor: styles.alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1), border: `dashed ${theme.palette.info.main} 2px`, boxSizing: 'border-box', display: 'flex', height: '100%', justifyContent: 'center', position: 'absolute', width: '100%', zIndex: 4 }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsxRuntime.jsx(Typography__default["default"], { fontStyle: "italic", children: localization.dropToGroupBy.replace('{column}', (_c = (_b = draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.columnDef) === null || _b === void 0 ? void 0 : _b.header) !== null && _c !== void 0 ? _c : '') }) })) }));
3867
+ return (jsxRuntime.jsx(Fade__default["default"], { in: showToolbarDropZone, children: jsxRuntime.jsx(Box__default["default"], Object.assign({ className: "Mui-ToolbarDropZone", onDragEnter: handleDragEnter, onDragOver: handleDragOver }, rest, { sx: (theme) => (Object.assign({ alignItems: 'center', backdropFilter: 'blur(4px)', backgroundColor: styles.alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1), border: `dashed ${theme.palette.info.main} 2px`, boxSizing: 'border-box', display: 'flex', height: '100%', justifyContent: 'center', position: 'absolute', width: '100%', zIndex: 4 }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsxRuntime.jsx(Typography__default["default"], { fontStyle: "italic", children: localization.dropToGroupBy.replace('{column}', (_c = (_b = draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.columnDef) === null || _b === void 0 ? void 0 : _b.header) !== null && _c !== void 0 ? _c : '') }) })) }));
3857
3868
  };
3858
3869
 
3859
3870
  const MRT_BottomToolbar = (_a) => {
@@ -3904,7 +3915,7 @@ const MRT_ColumnPinningButtons = (_a) => {
3904
3915
  const MRT_ShowHideColumnsMenuItems = (_a) => {
3905
3916
  var _b;
3906
3917
  var { allColumns, column, hoveredColumn, isNestedColumns, setHoveredColumn, table } = _a, rest = __rest(_a, ["allColumns", "column", "hoveredColumn", "isNestedColumns", "setHoveredColumn", "table"]);
3907
- const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, }, setColumnOrder, } = table;
3918
+ const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, mrtTheme: { draggingBorderColor }, }, setColumnOrder, } = table;
3908
3919
  const { columnOrder } = getState();
3909
3920
  const { columnDef } = column;
3910
3921
  const { columnDefType } = columnDef;
@@ -3951,7 +3962,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
3951
3962
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(MenuItem__default["default"], Object.assign({ disableRipple: true, onDragEnter: handleDragEnter, ref: menuItemRef }, rest, { sx: (theme) => (Object.assign({ alignItems: 'center', justifyContent: 'flex-start', my: 0, opacity: isDragging ? 0.5 : 1, outline: isDragging
3952
3963
  ? `2px dashed ${theme.palette.grey[500]}`
3953
3964
  : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
3954
- ? `2px dashed ${getMRTTheme(table, theme).draggingBorderColor}`
3965
+ ? `2px dashed ${draggingBorderColor}`
3955
3966
  : 'none', outlineOffset: '-2px', pl: `${(column.depth + 0.5) * 2}rem`, py: '6px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsxRuntime.jsxs(Box__default["default"], { sx: {
3956
3967
  display: 'flex',
3957
3968
  flexWrap: 'nowrap',
@@ -3972,7 +3983,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
3972
3983
 
3973
3984
  const MRT_ShowHideColumnsMenu = (_a) => {
3974
3985
  var { anchorEl, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "setAnchorEl", "table"]);
3975
- const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, }, } = table;
3986
+ const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, mrtTheme: { menuBackgroundColor }, }, } = table;
3976
3987
  const { columnOrder, columnPinning, density } = getState();
3977
3988
  const handleToggleAllColumns = (value) => {
3978
3989
  getAllLeafColumns()
@@ -4000,8 +4011,6 @@ const MRT_ShowHideColumnsMenu = (_a) => {
4000
4011
  ]);
4001
4012
  const isNestedColumns = allColumns.some((col) => col.columnDef.columnDefType === 'group');
4002
4013
  const [hoveredColumn, setHoveredColumn] = react.useState(null);
4003
- const theme = styles.useTheme();
4004
- const { menuBackgroundColor } = getMRTTheme(table, theme);
4005
4014
  return (jsxRuntime.jsxs(Menu__default["default"], Object.assign({ MenuListProps: {
4006
4015
  dense: density === 'compact',
4007
4016
  sx: {
@@ -4188,7 +4197,7 @@ const MRT_TopToolbar = ({ table, }) => {
4188
4197
  const MRT_TablePaper = (_a) => {
4189
4198
  var _b, _c;
4190
4199
  var { table } = _a, rest = __rest(_a, ["table"]);
4191
- const { getState, options: { enableBottomToolbar, enableTopToolbar, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
4200
+ const { getState, options: { enableBottomToolbar, enableTopToolbar, mrtTheme: { baseBackgroundColor }, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
4192
4201
  const { isFullScreen } = getState();
4193
4202
  const paperProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTablePaperProps, { table })), rest);
4194
4203
  return (jsxRuntime.jsxs(Paper__default["default"], Object.assign({ elevation: 2 }, paperProps, { ref: (ref) => {
@@ -4200,19 +4209,19 @@ const MRT_TablePaper = (_a) => {
4200
4209
  }, style: Object.assign(Object.assign({}, (isFullScreen
4201
4210
  ? {
4202
4211
  bottom: 0,
4203
- height: '100vh',
4212
+ height: '100dvh',
4204
4213
  left: 0,
4205
4214
  margin: 0,
4206
- maxHeight: '100vh',
4207
- maxWidth: '100vw',
4215
+ maxHeight: '100dvh',
4216
+ maxWidth: '100dvw',
4208
4217
  padding: 0,
4209
4218
  position: 'fixed',
4210
4219
  right: 0,
4211
4220
  top: 0,
4212
- width: '100vw',
4221
+ width: '100dvw',
4213
4222
  zIndex: 999,
4214
4223
  }
4215
- : {})), paperProps === null || paperProps === void 0 ? void 0 : paperProps.style), sx: (theme) => (Object.assign({ backgroundColor: getMRTTheme(table, theme).baseBackgroundColor, backgroundImage: 'unset', overflow: 'hidden', transition: 'all 100ms ease-in-out' }, parseFromValuesOrFunc(paperProps === null || paperProps === void 0 ? void 0 : paperProps.sx, theme))), children: [enableTopToolbar &&
4224
+ : {})), paperProps === null || paperProps === void 0 ? void 0 : paperProps.style), sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, backgroundImage: 'unset', overflow: 'hidden', transition: 'all 100ms ease-in-out' }, parseFromValuesOrFunc(paperProps === null || paperProps === void 0 ? void 0 : paperProps.sx, theme))), children: [enableTopToolbar &&
4216
4225
  ((_b = parseFromValuesOrFunc(renderTopToolbar, { table })) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(MRT_TopToolbar, { table: table }))), jsxRuntime.jsx(MRT_TableContainer, { table: table }), enableBottomToolbar &&
4217
4226
  ((_c = parseFromValuesOrFunc(renderBottomToolbar, { table })) !== null && _c !== void 0 ? _c : (jsxRuntime.jsx(MRT_BottomToolbar, { table: table })))] })));
4218
4227
  };
@@ -4301,20 +4310,16 @@ exports.defaultDisplayColumnProps = defaultDisplayColumnProps;
4301
4310
  exports.flexRender = flexRender;
4302
4311
  exports.getAllLeafColumnDefs = getAllLeafColumnDefs;
4303
4312
  exports.getCanRankRows = getCanRankRows;
4313
+ exports.getColumnFilterInfo = getColumnFilterInfo;
4304
4314
  exports.getColumnId = getColumnId;
4305
4315
  exports.getDefaultColumnFilterFn = getDefaultColumnFilterFn;
4306
4316
  exports.getDefaultColumnOrderIds = getDefaultColumnOrderIds;
4307
- exports.getIsFirstColumn = getIsFirstColumn;
4308
- exports.getIsFirstRightPinnedColumn = getIsFirstRightPinnedColumn;
4309
- exports.getIsLastColumn = getIsLastColumn;
4310
- exports.getIsLastLeftPinnedColumn = getIsLastLeftPinnedColumn;
4311
4317
  exports.getIsRankingRows = getIsRankingRows;
4312
4318
  exports.getIsRowSelected = getIsRowSelected;
4313
4319
  exports.getLeadingDisplayColumnIds = getLeadingDisplayColumnIds;
4314
4320
  exports.getMRT_RowSelectionHandler = getMRT_RowSelectionHandler;
4315
4321
  exports.getMRT_Rows = getMRT_Rows;
4316
4322
  exports.getMRT_SelectAllHandler = getMRT_SelectAllHandler;
4317
- exports.getTotalRight = getTotalRight;
4318
4323
  exports.getTrailingDisplayColumnIds = getTrailingDisplayColumnIds;
4319
4324
  exports.isCellEditable = isCellEditable;
4320
4325
  exports.mrtFilterOptions = mrtFilterOptions;
@@ -4329,6 +4334,7 @@ exports.showRowNumbersColumn = showRowNumbersColumn;
4329
4334
  exports.showRowPinningColumn = showRowPinningColumn;
4330
4335
  exports.showRowSelectionColumn = showRowSelectionColumn;
4331
4336
  exports.showRowSpacerColumn = showRowSpacerColumn;
4337
+ exports.useDropdownOptions = useDropdownOptions;
4332
4338
  exports.useMRT_ColumnVirtualizer = useMRT_ColumnVirtualizer;
4333
4339
  exports.useMRT_Effects = useMRT_Effects;
4334
4340
  exports.useMRT_RowVirtualizer = useMRT_RowVirtualizer;