material-react-table 2.11.3 → 2.12.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.
Files changed (37) hide show
  1. package/README.md +29 -22
  2. package/dist/index.d.ts +19 -2
  3. package/dist/index.esm.js +136 -105
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +137 -104
  6. package/dist/index.js.map +1 -1
  7. package/locales/hr/index.d.ts +3 -0
  8. package/locales/hr/index.esm.d.ts +3 -0
  9. package/locales/hr/index.esm.js +95 -0
  10. package/locales/hr/index.js +99 -0
  11. package/locales/hr/package.json +6 -0
  12. package/package.json +25 -25
  13. package/src/components/body/MRT_TableBodyCell.tsx +7 -0
  14. package/src/components/body/MRT_TableBodyRow.tsx +5 -0
  15. package/src/components/body/MRT_TableDetailPanel.tsx +2 -5
  16. package/src/components/head/MRT_TableHead.tsx +11 -11
  17. package/src/components/head/MRT_TableHeadCell.tsx +7 -0
  18. package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +3 -4
  19. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +61 -37
  20. package/src/components/inputs/MRT_FilterRangeFields.tsx +8 -2
  21. package/src/components/inputs/MRT_FilterTextField.tsx +41 -63
  22. package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +1 -4
  23. package/src/components/table/MRT_TablePaper.tsx +4 -4
  24. package/src/components/toolbar/MRT_TablePagination.tsx +10 -12
  25. package/src/components/toolbar/MRT_ToolbarDropZone.tsx +5 -0
  26. package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +1 -1
  27. package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +1 -1
  28. package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +1 -1
  29. package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +1 -1
  30. package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +1 -1
  31. package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +1 -1
  32. package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +1 -1
  33. package/src/hooks/useMRT_ColumnVirtualizer.ts +6 -8
  34. package/src/locales/hr.ts +96 -0
  35. package/src/types.ts +0 -1
  36. package/src/utils/column.utils.ts +86 -0
  37. 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,6 +259,54 @@ const getDefaultColumnFilterFn = (columnDef) => {
259
259
  return 'equals';
260
260
  return 'fuzzy';
261
261
  };
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
+ };
290
+ };
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
+ ]);
309
+ };
262
310
 
263
311
  const flexRender = reactTable.flexRender;
264
312
  function createMRTColumnHelper() {
@@ -1687,22 +1735,23 @@ const extraIndexRangeExtractor = (range, draggingIndex) => {
1687
1735
 
1688
1736
  const useMRT_ColumnVirtualizer = (table) => {
1689
1737
  var _a, _b, _c, _d;
1690
- const { getLeftLeafColumns, getRightLeafColumns, getState, getVisibleLeafColumns, options: { columnVirtualizerInstanceRef, columnVirtualizerOptions, enableColumnPinning, enableColumnVirtualization, }, refs: { tableContainerRef }, } = table;
1691
- const { columnPinning, draggingColumn } = getState();
1738
+ const { getState, options: { columnVirtualizerInstanceRef, columnVirtualizerOptions, enableColumnPinning, enableColumnVirtualization, }, refs: { tableContainerRef }, } = table;
1739
+ const { columnPinning, columnVisibility, draggingColumn } = getState();
1692
1740
  if (!enableColumnVirtualization)
1693
1741
  return undefined;
1694
1742
  const columnVirtualizerProps = parseFromValuesOrFunc(columnVirtualizerOptions, {
1695
1743
  table,
1696
1744
  });
1697
- const visibleColumns = getVisibleLeafColumns();
1745
+ const visibleColumns = table.getVisibleLeafColumns();
1698
1746
  const [leftPinnedIndexes, rightPinnedIndexes] = react.useMemo(() => enableColumnPinning
1699
1747
  ? [
1700
- getLeftLeafColumns().map((c) => c.getPinnedIndex()),
1701
- getRightLeafColumns()
1748
+ table.getLeftVisibleLeafColumns().map((c) => c.getPinnedIndex()),
1749
+ table
1750
+ .getRightVisibleLeafColumns()
1702
1751
  .map((column) => visibleColumns.length - column.getPinnedIndex() - 1)
1703
1752
  .sort((a, b) => a - b),
1704
1753
  ]
1705
- : [[], []], [columnPinning, enableColumnPinning]);
1754
+ : [[], []], [columnPinning, columnVisibility, enableColumnPinning]);
1706
1755
  const numPinnedLeft = leftPinnedIndexes.length;
1707
1756
  const numPinnedRight = rightPinnedIndexes.length;
1708
1757
  const draggingColumnIndex = react.useMemo(() => (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id)
@@ -2098,6 +2147,11 @@ const MRT_TableBodyCell = (_a) => {
2098
2147
  setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
2099
2148
  }
2100
2149
  };
2150
+ const handleDragOver = (e) => {
2151
+ if (columnDef.enableColumnOrdering !== false) {
2152
+ e.preventDefault();
2153
+ }
2154
+ };
2101
2155
  const handleContextMenu = (e) => {
2102
2156
  var _a;
2103
2157
  (_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onContextMenu) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, e);
@@ -2107,7 +2161,7 @@ const MRT_TableBodyCell = (_a) => {
2107
2161
  table.refs.actionCellRef.current = e.currentTarget;
2108
2162
  }
2109
2163
  };
2110
- 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': {
2164
+ 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': {
2111
2165
  outline: (actionCell === null || actionCell === void 0 ? void 0 : actionCell.id) === cell.id ||
2112
2166
  (editDisplayMode === 'cell' && isEditable) ||
2113
2167
  (editDisplayMode === 'table' && (isCreating || isEditing))
@@ -2152,7 +2206,7 @@ const Memo_MRT_TableBodyCell = react.memo(MRT_TableBodyCell, (prev, next) => nex
2152
2206
 
2153
2207
  const MRT_TableDetailPanel = (_a) => {
2154
2208
  var { parentRowRef, row, rowVirtualizer, staticRowIndex, table, virtualRow } = _a, rest = __rest(_a, ["parentRowRef", "row", "rowVirtualizer", "staticRowIndex", "table", "virtualRow"]);
2155
- const { getState, getVisibleLeafColumns, options: { enableRowVirtualization, layoutMode, mrtTheme: { baseBackgroundColor }, muiDetailPanelProps, muiTableBodyRowProps, renderDetailPanel, }, } = table;
2209
+ const { getState, getVisibleLeafColumns, options: { layoutMode, mrtTheme: { baseBackgroundColor }, muiDetailPanelProps, muiTableBodyRowProps, renderDetailPanel, }, } = table;
2156
2210
  const { isLoading } = getState();
2157
2211
  const tableRowProps = parseFromValuesOrFunc(muiTableBodyRowProps, {
2158
2212
  isDetailPanel: true,
@@ -2177,9 +2231,7 @@ const MRT_TableDetailPanel = (_a) => {
2177
2231
  : undefined, transform: virtualRow
2178
2232
  ? `translateY(${virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.start}px)`
2179
2233
  : undefined, width: '100%' }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme)));
2180
- }, 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: !enableRowVirtualization
2181
- ? 'all 150ms ease-in-out'
2182
- : 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 })) })) })));
2234
+ }, 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 })) })) })));
2183
2235
  };
2184
2236
 
2185
2237
  const MRT_TableBodyRow = (_a) => {
@@ -2225,6 +2277,9 @@ const MRT_TableBodyRow = (_a) => {
2225
2277
  setHoveredRow(row);
2226
2278
  }
2227
2279
  };
2280
+ const handleDragOver = (e) => {
2281
+ e.preventDefault();
2282
+ };
2228
2283
  const rowRef = react.useRef(null);
2229
2284
  const cellHighlightColor = isRowSelected
2230
2285
  ? selectedRowBackgroundColor
@@ -2238,7 +2293,7 @@ const MRT_TableBodyRow = (_a) => {
2238
2293
  ? `${styles.lighten(baseBackgroundColor, 0.3)}`
2239
2294
  : `${styles.darken(baseBackgroundColor, 0.3)}`
2240
2295
  : undefined;
2241
- 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) => {
2296
+ 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) => {
2242
2297
  if (node) {
2243
2298
  rowRef.current = node;
2244
2299
  rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement(node);
@@ -2833,40 +2888,20 @@ const MRT_FilterCheckbox = (_a) => {
2833
2888
  };
2834
2889
 
2835
2890
  const MRT_FilterTextField = (_a) => {
2836
- var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
2891
+ var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
2837
2892
  var { header, rangeFilterIndex, table } = _a, rest = __rest(_a, ["header", "rangeFilterIndex", "table"]);
2838
- const { options: { columnFilterModeOptions, enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterAutocompleteProps, muiFilterDatePickerProps, muiFilterDateTimePickerProps, muiFilterTextFieldProps, muiFilterTimePickerProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
2893
+ const { options: { enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterAutocompleteProps, muiFilterDatePickerProps, muiFilterDateTimePickerProps, muiFilterTextFieldProps, muiFilterTimePickerProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
2839
2894
  const { column } = header;
2840
2895
  const { columnDef } = column;
2841
2896
  const { filterVariant } = columnDef;
2842
- const textFieldProps = Object.assign(Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterTextFieldProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterTextFieldProps, {
2843
- column,
2844
- table,
2845
- })), rest);
2846
- const autocompleteProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterAutocompleteProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterAutocompleteProps, {
2847
- column,
2848
- table,
2849
- }));
2850
- const datePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterDatePickerProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterDatePickerProps, {
2851
- column,
2852
- table,
2853
- }));
2854
- const dateTimePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterDateTimePickerProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterDateTimePickerProps, {
2855
- column,
2856
- table,
2857
- }));
2858
- const timePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterTimePickerProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterTimePickerProps, {
2859
- column,
2860
- table,
2861
- }));
2862
- const isDateFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) || (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('time'));
2863
- const isAutocompleteFilter = filterVariant === 'autocomplete';
2864
- const isRangeFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range')) || rangeFilterIndex !== undefined;
2865
- const isSelectFilter = filterVariant === 'select';
2866
- const isMultiSelectFilter = filterVariant === 'multi-select';
2867
- const isTextboxFilter = ['autocomplete', 'text'].includes(filterVariant) ||
2868
- (!isSelectFilter && !isMultiSelectFilter);
2869
- const currentFilterOption = columnDef._filterFn;
2897
+ const args = { column, rangeFilterIndex, table };
2898
+ const textFieldProps = Object.assign(Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterTextFieldProps, args)), parseFromValuesOrFunc(columnDef.muiFilterTextFieldProps, args)), rest);
2899
+ const autocompleteProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterAutocompleteProps, args)), parseFromValuesOrFunc(columnDef.muiFilterAutocompleteProps, args));
2900
+ const datePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterDatePickerProps, args)), parseFromValuesOrFunc(columnDef.muiFilterDatePickerProps, args));
2901
+ const dateTimePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterDateTimePickerProps, args)), parseFromValuesOrFunc(columnDef.muiFilterDateTimePickerProps, args));
2902
+ const timePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterTimePickerProps, args)), parseFromValuesOrFunc(columnDef.muiFilterTimePickerProps, args));
2903
+ const { allowedColumnFilterOptions, currentFilterOption, facetedUniqueValues, isAutocompleteFilter, isDateFilter, isMultiSelectFilter, isRangeFilter, isSelectFilter, isTextboxFilter, } = getColumnFilterInfo({ header, table });
2904
+ const dropdownOptions = useDropdownOptions({ header, table });
2870
2905
  const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
2871
2906
  ? //@ts-ignore
2872
2907
  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()) +
@@ -2879,13 +2914,11 @@ const MRT_FilterTextField = (_a) => {
2879
2914
  : rangeFilterIndex === 1
2880
2915
  ? localization.max
2881
2916
  : '';
2882
- const allowedColumnFilterOptions = (_g = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _g !== void 0 ? _g : columnFilterModeOptions;
2883
- const showChangeModeButton = enableColumnFilterModes &&
2917
+ const showChangeModeButton = !!(enableColumnFilterModes &&
2884
2918
  columnDef.enableColumnFilterModes !== false &&
2885
2919
  !rangeFilterIndex &&
2886
2920
  (allowedColumnFilterOptions === undefined ||
2887
- !!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
2888
- const facetedUniqueValues = column.getFacetedUniqueValues();
2921
+ !!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length)));
2889
2922
  const [anchorEl, setAnchorEl] = react.useState(null);
2890
2923
  const [filterValue, setFilterValue] = react.useState(() => {
2891
2924
  var _a, _b;
@@ -2972,23 +3005,9 @@ const MRT_FilterTextField = (_a) => {
2972
3005
  isMounted.current = true;
2973
3006
  }, [column.getFilterValue()]);
2974
3007
  if (columnDef.Filter) {
2975
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: (_h = columnDef.Filter) === null || _h === void 0 ? void 0 : _h.call(columnDef, { column, header, rangeFilterIndex, table }) }));
3008
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: (_g = columnDef.Filter) === null || _g === void 0 ? void 0 : _g.call(columnDef, { column, header, rangeFilterIndex, table }) }));
2976
3009
  }
2977
- const dropdownOptions = react.useMemo(() => {
2978
- var _a;
2979
- return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter || isAutocompleteFilter) &&
2980
- facetedUniqueValues
2981
- ? Array.from(facetedUniqueValues.keys())
2982
- .filter((value) => value !== null && value !== undefined)
2983
- .sort((a, b) => a.localeCompare(b))
2984
- : undefined);
2985
- }, [
2986
- columnDef.filterSelectOptions,
2987
- facetedUniqueValues,
2988
- isMultiSelectFilter,
2989
- isSelectFilter,
2990
- ]);
2991
- 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: {
3010
+ 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: {
2992
3011
  height: '2rem',
2993
3012
  transform: 'scale(0.9)',
2994
3013
  width: '2rem',
@@ -3004,7 +3023,7 @@ const MRT_FilterTextField = (_a) => {
3004
3023
  ? { endAdornment, startAdornment }
3005
3024
  : { startAdornment }, fullWidth: true, helperText: showChangeModeButton ? (jsxRuntime.jsx("label", { children: localization.filterMode.replace('{filterType}',
3006
3025
  // @ts-ignore
3007
- localization[`filter${((_l = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _l === void 0 ? void 0 : _l.toUpperCase()) +
3026
+ localization[`filter${((_k = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _k === void 0 ? void 0 : _k.toUpperCase()) +
3008
3027
  (currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]) })) : null, inputProps: {
3009
3028
  'aria-label': filterPlaceholder,
3010
3029
  autoComplete: 'new-password', // disable autocomplete and autofill
@@ -3038,15 +3057,15 @@ const MRT_FilterTextField = (_a) => {
3038
3057
  value: filterValue || null,
3039
3058
  };
3040
3059
  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: {
3041
- 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),
3042
- textField: Object.assign(Object.assign({}, commonTextFieldProps), (_o = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _o === void 0 ? void 0 : _o.textField),
3060
+ 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),
3061
+ textField: Object.assign(Object.assign({}, commonTextFieldProps), (_m = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _m === void 0 ? void 0 : _m.textField),
3043
3062
  } }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('datetime')) ? (jsxRuntime.jsx(DateTimePicker.DateTimePicker, Object.assign({}, commonDatePickerProps, dateTimePickerProps, { slotProps: {
3044
- 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),
3045
- textField: Object.assign(Object.assign({}, commonTextFieldProps), (_q = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _q === void 0 ? void 0 : _q.textField),
3063
+ 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),
3064
+ textField: Object.assign(Object.assign({}, commonTextFieldProps), (_p = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _p === void 0 ? void 0 : _p.textField),
3046
3065
  } }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) ? (jsxRuntime.jsx(DatePicker.DatePicker, Object.assign({}, commonDatePickerProps, datePickerProps, { slotProps: {
3047
- 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),
3048
- textField: Object.assign(Object.assign({}, commonTextFieldProps), (_s = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _s === void 0 ? void 0 : _s.textField),
3049
- } }))) : 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) => {
3066
+ 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),
3067
+ textField: Object.assign(Object.assign({}, commonTextFieldProps), (_r = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _r === void 0 ? void 0 : _r.textField),
3068
+ } }))) : 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) => {
3050
3069
  var _a;
3051
3070
  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() })));
3052
3071
  }, 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
@@ -3057,7 +3076,7 @@ const MRT_FilterTextField = (_a) => {
3057
3076
  : undefined }, commonTextFieldProps.SelectProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation(), value: filterValue !== null && filterValue !== void 0 ? filterValue : '', children: (isSelectFilter || isMultiSelectFilter) && [
3058
3077
  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"),
3059
3078
  ...[
3060
- (_u = textFieldProps.children) !== null && _u !== void 0 ? _u : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
3079
+ (_t = textFieldProps.children) !== null && _t !== void 0 ? _t : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
3061
3080
  var _a;
3062
3081
  const { label, value } = getValueAndLabel(option);
3063
3082
  return (jsxRuntime.jsxs(MenuItem__default["default"], { sx: {
@@ -3074,7 +3093,7 @@ const MRT_FilterTextField = (_a) => {
3074
3093
 
3075
3094
  const MRT_FilterRangeFields = (_a) => {
3076
3095
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
3077
- 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 })] })));
3096
+ 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))) })));
3078
3097
  };
3079
3098
 
3080
3099
  const MRT_FilterRangeSlider = (_a) => {
@@ -3150,41 +3169,45 @@ const MRT_FilterRangeSlider = (_a) => {
3150
3169
  };
3151
3170
 
3152
3171
  const MRT_TableHeadCellFilterContainer = (_a) => {
3153
- var _b;
3154
3172
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
3155
3173
  const { getState, options: { columnFilterDisplayMode }, } = table;
3156
3174
  const { showColumnFilters } = getState();
3157
3175
  const { column } = header;
3158
3176
  const { columnDef } = column;
3159
- 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')) ||
3160
- ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn) ? (jsxRuntime.jsx(MRT_FilterRangeFields, { header: header, table: table })) : (jsxRuntime.jsx(MRT_FilterTextField, { header: header, table: table })) })));
3177
+ const { isRangeFilter } = getColumnFilterInfo({ header, table });
3178
+ 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 })) })));
3161
3179
  };
3162
3180
 
3163
3181
  const MRT_TableHeadCellFilterLabel = (_a) => {
3164
- var _b, _c, _d;
3182
+ var _b, _c;
3165
3183
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
3166
3184
  const { options: { columnFilterDisplayMode, icons: { FilterAltIcon }, localization, }, refs: { filterInputRefs }, setShowColumnFilters, } = table;
3167
3185
  const { column } = header;
3168
3186
  const { columnDef } = column;
3169
3187
  const filterValue = column.getFilterValue();
3170
3188
  const [anchorEl, setAnchorEl] = react.useState(null);
3189
+ const { currentFilterOption, isMultiSelectFilter, isRangeFilter, isSelectFilter, } = getColumnFilterInfo({ header, table });
3190
+ const dropdownOptions = useDropdownOptions({ header, table });
3191
+ const getSelectLabel = (index) => getValueAndLabel(dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.find((option) => getValueAndLabel(option).value ===
3192
+ (index !== undefined ? filterValue[index] : filterValue))).label;
3171
3193
  const isFilterActive = (Array.isArray(filterValue) && filterValue.some(Boolean)) ||
3172
3194
  (!!filterValue && !Array.isArray(filterValue));
3173
- const isRangeFilter = ((_b = columnDef.filterVariant) === null || _b === void 0 ? void 0 : _b.includes('range')) ||
3174
- ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
3175
- const currentFilterOption = columnDef._filterFn;
3176
3195
  const filterTooltip = columnFilterDisplayMode === 'popover' && !isFilterActive
3177
- ? (_c = localization.filterByColumn) === null || _c === void 0 ? void 0 : _c.replace('{column}', String(columnDef.header))
3196
+ ? (_b = localization.filterByColumn) === null || _b === void 0 ? void 0 : _b.replace('{column}', String(columnDef.header))
3178
3197
  : localization.filteringByColumn
3179
3198
  .replace('{column}', String(columnDef.header))
3180
3199
  .replace('{filterType}', currentFilterOption
3181
3200
  ? // @ts-ignore
3182
- localization[`filter${((_d = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _d === void 0 ? void 0 : _d.toUpperCase()) +
3201
+ localization[`filter${((_c = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _c === void 0 ? void 0 : _c.toUpperCase()) +
3183
3202
  (currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]
3184
3203
  : '')
3185
3204
  .replace('{filterValue}', `"${Array.isArray(filterValue)
3186
- ? filterValue.join(`" ${isRangeFilter ? localization.and : localization.or} "`)
3187
- : filterValue}"`)
3205
+ ? filterValue
3206
+ .map((value, index) => isMultiSelectFilter ? getSelectLabel(index) : value)
3207
+ .join(`" ${isRangeFilter ? localization.and : localization.or} "`)
3208
+ : isSelectFilter
3209
+ ? getSelectLabel()
3210
+ : filterValue}"`)
3188
3211
  .replace('" "', '');
3189
3212
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Grow__default["default"], { in: columnFilterDisplayMode === 'popover' ||
3190
3213
  (!!filterValue && !isRangeFilter) ||
@@ -3202,7 +3225,7 @@ const MRT_TableHeadCellFilterLabel = (_a) => {
3202
3225
  (_d = (_c = filterInputRefs.current[`${column.id}-0`]) === null || _c === void 0 ? void 0 : _c.select) === null || _d === void 0 ? void 0 : _d.call(_c);
3203
3226
  });
3204
3227
  event.stopPropagation();
3205
- }, 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: {
3228
+ }, 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: {
3206
3229
  horizontal: 'center',
3207
3230
  vertical: 'top',
3208
3231
  }, disableScrollLock: true, onClick: (event) => event.stopPropagation(), onClose: (event) => {
@@ -3212,7 +3235,7 @@ const MRT_TableHeadCellFilterLabel = (_a) => {
3212
3235
  }, onKeyDown: (event) => event.key === 'Enter' && setAnchorEl(null), open: !!anchorEl, slotProps: { paper: { sx: { overflow: 'visible' } } }, transformOrigin: {
3213
3236
  horizontal: 'center',
3214
3237
  vertical: 'bottom',
3215
- }, children: jsxRuntime.jsx(Box__default["default"], { sx: { p: '1rem' }, children: jsxRuntime.jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) })] }));
3238
+ }, children: jsxRuntime.jsx(Box__default["default"], { sx: { p: '1rem' }, children: jsxRuntime.jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) }))] }));
3216
3239
  };
3217
3240
 
3218
3241
  const MRT_TableHeadCellGrabHandle = (_a) => {
@@ -3392,6 +3415,11 @@ const MRT_TableHeadCell = (_a) => {
3392
3415
  setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
3393
3416
  }
3394
3417
  };
3418
+ const handleDragOver = (e) => {
3419
+ if (columnDef.enableColumnOrdering !== false) {
3420
+ e.preventDefault();
3421
+ }
3422
+ };
3395
3423
  const HeaderElement = (_b = parseFromValuesOrFunc(columnDef.Header, {
3396
3424
  column,
3397
3425
  header,
@@ -3401,7 +3429,7 @@ const MRT_TableHeadCell = (_a) => {
3401
3429
  ? 'center'
3402
3430
  : theme.direction === 'rtl'
3403
3431
  ? 'right'
3404
- : 'left', colSpan: header.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, onDragEnter: handleDragEnter, ref: (node) => {
3432
+ : 'left', colSpan: header.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, onDragEnter: handleDragEnter, onDragOver: handleDragOver, ref: (node) => {
3405
3433
  var _a;
3406
3434
  if (node) {
3407
3435
  tableHeadCellRefs.current[column.id] = node;
@@ -3544,7 +3572,7 @@ const MRT_ToolbarAlertBanner = (_a) => {
3544
3572
 
3545
3573
  const MRT_TableHead = (_a) => {
3546
3574
  var { columnVirtualizer, table } = _a, rest = __rest(_a, ["columnVirtualizer", "table"]);
3547
- const { getHeaderGroups, getSelectedRowModel, getState, options: { enableStickyHeader, layoutMode, muiTableHeadProps, positionToolbarAlertBanner, }, refs: { tableHeadRef }, } = table;
3575
+ const { getState, options: { enableStickyHeader, layoutMode, muiTableHeadProps, positionToolbarAlertBanner, }, refs: { tableHeadRef }, } = table;
3548
3576
  const { isFullScreen, showAlertBanner } = getState();
3549
3577
  const tableHeadProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableHeadProps, { table })), rest);
3550
3578
  const stickyHeader = enableStickyHeader || isFullScreen;
@@ -3555,12 +3583,14 @@ const MRT_TableHead = (_a) => {
3555
3583
  tableHeadProps.ref.current = ref;
3556
3584
  }
3557
3585
  }, 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' &&
3558
- (showAlertBanner || getSelectedRowModel().rows.length > 0) ? (jsxRuntime.jsx("tr", { style: {
3586
+ (showAlertBanner || table.getSelectedRowModel().rows.length > 0) ? (jsxRuntime.jsx("tr", { style: {
3559
3587
  display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
3560
3588
  }, children: jsxRuntime.jsx("th", { colSpan: table.getVisibleLeafColumns().length, style: {
3561
3589
  display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
3562
3590
  padding: 0,
3563
- }, children: jsxRuntime.jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (getHeaderGroups().map((headerGroup) => (jsxRuntime.jsx(MRT_TableHeadRow, { columnVirtualizer: columnVirtualizer, headerGroup: headerGroup, table: table }, headerGroup.id)))) })));
3591
+ }, children: jsxRuntime.jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (table
3592
+ .getHeaderGroups()
3593
+ .map((headerGroup) => (jsxRuntime.jsx(MRT_TableHeadRow, { columnVirtualizer: columnVirtualizer, headerGroup: headerGroup, table: table }, headerGroup.id)))) })));
3564
3594
  };
3565
3595
 
3566
3596
  const MRT_Table = (_a) => {
@@ -3752,13 +3782,13 @@ const MRT_TablePagination = (_a) => {
3752
3782
  var { position = 'bottom', table } = _a, rest = __rest(_a, ["position", "table"]);
3753
3783
  const theme = styles.useTheme();
3754
3784
  const isMobile = useMediaQuery__default["default"]('(max-width: 720px)');
3755
- const { getPrePaginationRowModel, getState, options: { enableToolbarInternalActions, icons: { ChevronLeftIcon, ChevronRightIcon, FirstPageIcon, LastPageIcon }, localization, muiPaginationProps, paginationDisplayMode, rowCount, }, setPageIndex, setPageSize, } = table;
3785
+ const { getState, options: { enableToolbarInternalActions, icons: { ChevronLeftIcon, ChevronRightIcon, FirstPageIcon, LastPageIcon }, localization, muiPaginationProps, paginationDisplayMode, }, } = table;
3756
3786
  const { pagination: { pageIndex = 0, pageSize = 10 }, showGlobalFilter, } = getState();
3757
3787
  const paginationProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiPaginationProps, {
3758
3788
  table,
3759
3789
  })), rest);
3760
- const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().rows.length;
3761
- const numberOfPages = Math.ceil(totalRowCount / pageSize);
3790
+ const totalRowCount = table.getRowCount();
3791
+ const numberOfPages = table.getPageCount();
3762
3792
  const showFirstLastPageButtons = numberOfPages > 2;
3763
3793
  const firstRowIndex = pageIndex * pageSize;
3764
3794
  const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
@@ -3788,17 +3818,17 @@ const MRT_TablePagination = (_a) => {
3788
3818
  }, children: [showRowsPerPage && (jsxRuntime.jsxs(Box__default["default"], { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsxRuntime.jsx(InputLabel__default["default"], { htmlFor: "mrt-rows-per-page", sx: { mb: 0 }, children: localization.rowsPerPage }), jsxRuntime.jsx(Select__default["default"], Object.assign({ MenuProps: { disableScrollLock: true }, disableUnderline: true, disabled: disabled, inputProps: {
3789
3819
  'aria-label': localization.rowsPerPage,
3790
3820
  id: 'mrt-rows-per-page',
3791
- }, label: localization.rowsPerPage, onChange: (event) => setPageSize(+event.target.value), sx: { mb: 0 }, value: pageSize, variant: "standard" }, SelectProps, { children: rowsPerPageOptions.map((option) => {
3821
+ }, label: localization.rowsPerPage, onChange: (event) => table.setPageSize(+event.target.value), sx: { mb: 0 }, value: pageSize, variant: "standard" }, SelectProps, { children: rowsPerPageOptions.map((option) => {
3792
3822
  var _a;
3793
3823
  const value = typeof option !== 'number' ? option.value : option;
3794
3824
  const label = typeof option !== 'number' ? option.label : `${option}`;
3795
3825
  return ((_a = SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.children) !== null && _a !== void 0 ? _a : ((SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.native) ? (jsxRuntime.jsx("option", { value: value, children: label }, value)) : (jsxRuntime.jsx(MenuItem__default["default"], { sx: { m: 0 }, value: value, children: label }, value))));
3796
- }) }))] })), paginationDisplayMode === 'pages' ? (jsxRuntime.jsx(Pagination__default["default"], Object.assign({ count: numberOfPages, disabled: disabled, onChange: (_e, newPageIndex) => setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsxRuntime.jsx(PaginationItem__default["default"], Object.assign({ slots: {
3826
+ }) }))] })), paginationDisplayMode === 'pages' ? (jsxRuntime.jsx(Pagination__default["default"], Object.assign({ count: numberOfPages, disabled: disabled, onChange: (_e, newPageIndex) => table.setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsxRuntime.jsx(PaginationItem__default["default"], Object.assign({ slots: {
3797
3827
  first: FirstPageIcon,
3798
3828
  last: LastPageIcon,
3799
3829
  next: ChevronRightIcon,
3800
3830
  previous: ChevronLeftIcon,
3801
- } }, item))), showFirstButton: showFirstButton, showLastButton: showLastButton }, restPaginationProps))) : paginationDisplayMode === 'default' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography__default["default"], { align: "center", component: "span", sx: { m: '0 4px', minWidth: '8ch' }, variant: "body2", children: `${lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()}-${lastRowIndex.toLocaleString()} ${localization.of} ${totalRowCount.toLocaleString()}` }), jsxRuntime.jsxs(Box__default["default"], { gap: "xs", children: [showFirstButton && (jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToFirstPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToFirstPage, disabled: disableBack, onClick: () => setPageIndex(0), size: "small", children: jsxRuntime.jsx(FirstPageIcon, Object.assign({}, flipIconStyles(theme))) }) }) }))), jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToPreviousPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToPreviousPage, disabled: disableBack, onClick: () => setPageIndex(pageIndex - 1), size: "small", children: jsxRuntime.jsx(ChevronLeftIcon, Object.assign({}, flipIconStyles(theme))) }) }) })), jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToNextPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToNextPage, disabled: disableNext, onClick: () => setPageIndex(pageIndex + 1), size: "small", children: jsxRuntime.jsx(ChevronRightIcon, Object.assign({}, flipIconStyles(theme))) }) }) })), showLastButton && (jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToLastPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToLastPage, disabled: disableNext, onClick: () => setPageIndex(numberOfPages - 1), size: "small", children: jsxRuntime.jsx(LastPageIcon, Object.assign({}, flipIconStyles(theme))) }) }) })))] })] })) : null] }));
3831
+ } }, item))), showFirstButton: showFirstButton, showLastButton: showLastButton }, restPaginationProps))) : paginationDisplayMode === 'default' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography__default["default"], { align: "center", component: "span", sx: { m: '0 4px', minWidth: '8ch' }, variant: "body2", children: `${lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()}-${lastRowIndex.toLocaleString()} ${localization.of} ${totalRowCount.toLocaleString()}` }), jsxRuntime.jsxs(Box__default["default"], { gap: "xs", children: [showFirstButton && (jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToFirstPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToFirstPage, disabled: disableBack, onClick: () => table.firstPage(), size: "small", children: jsxRuntime.jsx(FirstPageIcon, Object.assign({}, flipIconStyles(theme))) }) }) }))), jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToPreviousPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToPreviousPage, disabled: disableBack, onClick: () => table.previousPage(), size: "small", children: jsxRuntime.jsx(ChevronLeftIcon, Object.assign({}, flipIconStyles(theme))) }) }) })), jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToNextPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToNextPage, disabled: disableNext, onClick: () => table.nextPage(), size: "small", children: jsxRuntime.jsx(ChevronRightIcon, Object.assign({}, flipIconStyles(theme))) }) }) })), showLastButton && (jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, tooltipProps, { title: localization.goToLastPage, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToLastPage, disabled: disableNext, onClick: () => table.lastPage(), size: "small", children: jsxRuntime.jsx(LastPageIcon, Object.assign({}, flipIconStyles(theme))) }) }) })))] })] })) : null] }));
3802
3832
  };
3803
3833
 
3804
3834
  const MRT_ToolbarDropZone = (_a) => {
@@ -3809,6 +3839,9 @@ const MRT_ToolbarDropZone = (_a) => {
3809
3839
  const handleDragEnter = (_event) => {
3810
3840
  setHoveredColumn({ id: 'drop-zone' });
3811
3841
  };
3842
+ const handleDragOver = (e) => {
3843
+ e.preventDefault();
3844
+ };
3812
3845
  react.useEffect(() => {
3813
3846
  var _a;
3814
3847
  if (((_a = table.options.state) === null || _a === void 0 ? void 0 : _a.showToolbarDropZone) !== undefined) {
@@ -3818,7 +3851,7 @@ const MRT_ToolbarDropZone = (_a) => {
3818
3851
  !grouping.includes(draggingColumn.id));
3819
3852
  }
3820
3853
  }, [enableGrouping, draggingColumn, grouping]);
3821
- 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 : '') }) })) }));
3854
+ 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 : '') }) })) }));
3822
3855
  };
3823
3856
 
3824
3857
  const MRT_BottomToolbar = (_a) => {
@@ -3873,9 +3906,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
3873
3906
  const { columnOrder } = getState();
3874
3907
  const { columnDef } = column;
3875
3908
  const { columnDefType } = columnDef;
3876
- const switchChecked = (columnDefType !== 'group' && column.getIsVisible()) ||
3877
- (columnDefType === 'group' &&
3878
- column.getLeafColumns().some((col) => col.getIsVisible()));
3909
+ const switchChecked = column.getIsVisible();
3879
3910
  const handleToggleColumnHidden = (column) => {
3880
3911
  var _a, _b;
3881
3912
  if (columnDefType === 'group') {
@@ -4163,16 +4194,16 @@ const MRT_TablePaper = (_a) => {
4163
4194
  }, style: Object.assign(Object.assign({}, (isFullScreen
4164
4195
  ? {
4165
4196
  bottom: 0,
4166
- height: '100vh',
4197
+ height: '100dvh',
4167
4198
  left: 0,
4168
4199
  margin: 0,
4169
- maxHeight: '100vh',
4170
- maxWidth: '100vw',
4200
+ maxHeight: '100dvh',
4201
+ maxWidth: '100dvw',
4171
4202
  padding: 0,
4172
4203
  position: 'fixed',
4173
4204
  right: 0,
4174
4205
  top: 0,
4175
- width: '100vw',
4206
+ width: '100dvw',
4176
4207
  zIndex: 999,
4177
4208
  }
4178
4209
  : {})), 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 &&
@@ -4264,6 +4295,7 @@ exports.defaultDisplayColumnProps = defaultDisplayColumnProps;
4264
4295
  exports.flexRender = flexRender;
4265
4296
  exports.getAllLeafColumnDefs = getAllLeafColumnDefs;
4266
4297
  exports.getCanRankRows = getCanRankRows;
4298
+ exports.getColumnFilterInfo = getColumnFilterInfo;
4267
4299
  exports.getColumnId = getColumnId;
4268
4300
  exports.getDefaultColumnFilterFn = getDefaultColumnFilterFn;
4269
4301
  exports.getDefaultColumnOrderIds = getDefaultColumnOrderIds;
@@ -4287,6 +4319,7 @@ exports.showRowNumbersColumn = showRowNumbersColumn;
4287
4319
  exports.showRowPinningColumn = showRowPinningColumn;
4288
4320
  exports.showRowSelectionColumn = showRowSelectionColumn;
4289
4321
  exports.showRowSpacerColumn = showRowSpacerColumn;
4322
+ exports.useDropdownOptions = useDropdownOptions;
4290
4323
  exports.useMRT_ColumnVirtualizer = useMRT_ColumnVirtualizer;
4291
4324
  exports.useMRT_Effects = useMRT_Effects;
4292
4325
  exports.useMRT_RowVirtualizer = useMRT_RowVirtualizer;