material-react-table 0.8.0-alpha.1 → 0.8.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 (51) hide show
  1. package/README.md +1 -1
  2. package/dist/MaterialReactTable.d.ts +8 -2
  3. package/dist/head/MRT_DraggableTableHeadCell.d.ts +8 -0
  4. package/dist/head/MRT_TableHeadCell.d.ts +5 -1
  5. package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +8 -0
  6. package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +8 -0
  7. package/dist/head/MRT_TableHeadCellGrabHandle.d.ts +9 -0
  8. package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +8 -0
  9. package/dist/head/MRT_TableHeadCellSortLabel.d.ts +8 -0
  10. package/dist/icons.d.ts +1 -0
  11. package/dist/inputs/MRT_FilterRangeFields.d.ts +2 -2
  12. package/dist/localization.d.ts +1 -0
  13. package/dist/material-react-table.cjs.development.js +514 -313
  14. package/dist/material-react-table.cjs.development.js.map +1 -1
  15. package/dist/material-react-table.cjs.production.min.js +1 -1
  16. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  17. package/dist/material-react-table.esm.js +516 -315
  18. package/dist/material-react-table.esm.js.map +1 -1
  19. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -0
  20. package/dist/toolbar/MRT_ToolbarTop.d.ts +2 -0
  21. package/dist/utils.d.ts +1 -1
  22. package/package.json +13 -13
  23. package/src/MaterialReactTable.tsx +13 -0
  24. package/src/body/MRT_TableBodyCell.tsx +10 -7
  25. package/src/buttons/MRT_CopyButton.tsx +3 -2
  26. package/src/buttons/MRT_ExpandAllButton.tsx +26 -18
  27. package/src/buttons/MRT_ExpandButton.tsx +27 -21
  28. package/src/footer/MRT_TableFooterCell.tsx +11 -8
  29. package/src/footer/MRT_TableFooterRow.tsx +3 -2
  30. package/src/head/MRT_DraggableTableHeadCell.tsx +52 -0
  31. package/src/head/MRT_TableHeadCell.tsx +75 -156
  32. package/src/head/MRT_TableHeadCellFilterContainer.tsx +32 -0
  33. package/src/head/MRT_TableHeadCellFilterLabel.tsx +82 -0
  34. package/src/head/MRT_TableHeadCellGrabHandle.tsx +52 -0
  35. package/src/head/MRT_TableHeadCellResizeHandle.tsx +52 -0
  36. package/src/head/MRT_TableHeadCellSortLabel.tsx +45 -0
  37. package/src/head/MRT_TableHeadRow.tsx +17 -8
  38. package/src/icons.ts +3 -0
  39. package/src/inputs/MRT_EditCellTextField.tsx +1 -1
  40. package/src/inputs/MRT_FilterRangeFields.tsx +1 -3
  41. package/src/inputs/MRT_FilterTextField.tsx +4 -1
  42. package/src/inputs/MRT_SelectCheckbox.tsx +1 -2
  43. package/src/localization.ts +2 -0
  44. package/src/menus/MRT_ColumnActionMenu.tsx +6 -6
  45. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +1 -1
  46. package/src/table/MRT_TablePaper.tsx +26 -22
  47. package/src/table/MRT_TableRoot.tsx +9 -9
  48. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +11 -27
  49. package/src/toolbar/MRT_ToolbarBottom.tsx +23 -5
  50. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +30 -29
  51. package/src/toolbar/MRT_ToolbarTop.tsx +21 -20
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
1
+ import React, { useMemo, useState, useCallback, Fragment, forwardRef, useLayoutEffect, useEffect } from 'react';
2
2
  import ArrowRightIcon from '@mui/icons-material/ArrowRight';
3
3
  import CancelIcon from '@mui/icons-material/Cancel';
4
4
  import CheckBoxIcon from '@mui/icons-material/CheckBox';
@@ -7,6 +7,7 @@ import CloseIcon from '@mui/icons-material/Close';
7
7
  import DensityMediumIcon from '@mui/icons-material/DensityMedium';
8
8
  import DensitySmallIcon from '@mui/icons-material/DensitySmall';
9
9
  import DoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';
10
+ import DragHandleIcon from '@mui/icons-material/DragHandle';
10
11
  import DynamicFeedIcon from '@mui/icons-material/DynamicFeed';
11
12
  import EditIcon from '@mui/icons-material/Edit';
12
13
  import ExpandLessIcon from '@mui/icons-material/ExpandLess';
@@ -28,8 +29,10 @@ import SortIcon from '@mui/icons-material/Sort';
28
29
  import ViewColumnIcon from '@mui/icons-material/ViewColumn';
29
30
  import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
30
31
  import { createTable, useTableInstance, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, functionalUpdate } from '@tanstack/react-table';
31
- import { IconButton, Menu, MenuItem, Box, Tooltip, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, useMediaQuery, Chip, Alert, LinearProgress, Toolbar, lighten, alpha, TableCell, TableSortLabel, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
32
+ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
32
33
  import { rankItem, rankings } from '@tanstack/match-sorter-utils';
34
+ import { useDrop, useDrag, DndProvider } from 'react-dnd';
35
+ import { HTML5Backend } from 'react-dnd-html5-backend';
33
36
 
34
37
  function _extends() {
35
38
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -48,6 +51,10 @@ function _extends() {
48
51
  return _extends.apply(this, arguments);
49
52
  }
50
53
 
54
+ function _objectDestructuringEmpty(obj) {
55
+ if (obj == null) throw new TypeError("Cannot destructure undefined");
56
+ }
57
+
51
58
  function _objectWithoutPropertiesLoose(source, excluded) {
52
59
  if (source == null) return {};
53
60
  var target = {};
@@ -92,6 +99,7 @@ var MRT_DefaultLocalization_EN = {
92
99
  filterNotEquals: 'Not Equals',
93
100
  filterStartsWith: 'Starts With',
94
101
  filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
102
+ grab: 'Grab',
95
103
  groupByColumn: 'Group by {column}',
96
104
  groupedBy: 'Grouped by ',
97
105
  hideAll: 'Hide all',
@@ -138,6 +146,7 @@ var MRT_Default_Icons = {
138
146
  DensityMediumIcon: DensityMediumIcon,
139
147
  DensitySmallIcon: DensitySmallIcon,
140
148
  DoubleArrowDownIcon: DoubleArrowDownIcon,
149
+ DragHandleIcon: DragHandleIcon,
141
150
  DynamicFeedIcon: DynamicFeedIcon,
142
151
  EditIcon: EditIcon,
143
152
  ExpandLessIcon: ExpandLessIcon,
@@ -164,20 +173,25 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
164
173
  var tableInstance = _ref.tableInstance;
165
174
  var getIsAllRowsExpanded = tableInstance.getIsAllRowsExpanded,
166
175
  getIsSomeRowsExpanded = tableInstance.getIsSomeRowsExpanded,
176
+ getCanSomeRowsExpand = tableInstance.getCanSomeRowsExpand,
167
177
  getState = tableInstance.getState,
168
178
  _tableInstance$option = tableInstance.options,
169
179
  DoubleArrowDownIcon = _tableInstance$option.icons.DoubleArrowDownIcon,
170
180
  localization = _tableInstance$option.localization,
181
+ renderDetailPanel = _tableInstance$option.renderDetailPanel,
171
182
  toggleAllRowsExpanded = tableInstance.toggleAllRowsExpanded;
172
183
 
173
184
  var _getState = getState(),
174
- isDensePadding = _getState.isDensePadding,
175
- isLoading = _getState.isLoading;
185
+ isDensePadding = _getState.isDensePadding;
176
186
 
177
- return React.createElement(IconButton, {
187
+ return React.createElement(Tooltip, {
188
+ arrow: true,
189
+ enterDelay: 1000,
190
+ enterNextDelay: 1000,
191
+ title: localization.expandAll
192
+ }, React.createElement(IconButton, {
178
193
  "aria-label": localization.expandAll,
179
- disabled: isLoading,
180
- title: localization.expandAll,
194
+ disabled: !getCanSomeRowsExpand() && !renderDetailPanel,
181
195
  onClick: function onClick() {
182
196
  return toggleAllRowsExpanded(!getIsAllRowsExpanded());
183
197
  },
@@ -190,7 +204,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
190
204
  transform: "rotate(" + (getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0) + "deg)",
191
205
  transition: 'transform 0.2s'
192
206
  }
193
- }));
207
+ })));
194
208
  };
195
209
 
196
210
  var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
@@ -215,10 +229,14 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
215
229
  });
216
230
  };
217
231
 
218
- return React.createElement(IconButton, {
232
+ return React.createElement(Tooltip, {
233
+ arrow: true,
234
+ enterDelay: 1000,
235
+ enterNextDelay: 1000,
236
+ title: localization.expand
237
+ }, React.createElement(IconButton, {
219
238
  "aria-label": localization.expand,
220
239
  disabled: !row.getCanExpand() && !renderDetailPanel,
221
- title: localization.expand,
222
240
  onClick: handleToggleExpand,
223
241
  sx: {
224
242
  height: isDensePadding ? '1.75rem' : '2.25rem',
@@ -229,7 +247,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
229
247
  transform: "rotate(" + (!row.getCanExpand() && !renderDetailPanel ? -90 : row.getIsExpanded() ? -180 : 0) + "deg)",
230
248
  transition: 'transform 0.2s'
231
249
  }
232
- }));
250
+ })));
233
251
  };
234
252
 
235
253
  var MRT_FILTER_OPTION;
@@ -599,7 +617,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
599
617
  checked: switchChecked,
600
618
  control: React.createElement(Switch, null),
601
619
  disabled: isSubMenu && switchChecked || !column.getCanHide(),
602
- label: column.header,
620
+ label: column.columnDef.header,
603
621
  onChange: function onChange() {
604
622
  return handleToggleColumnHidden(column);
605
623
  }
@@ -853,7 +871,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
853
871
  sx: commonMenuItemStyles$1
854
872
  }, React.createElement(Box, {
855
873
  sx: commonListItemStyles
856
- }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(column.header)))), React.createElement(MenuItem, {
874
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(column.columnDef.header)))), React.createElement(MenuItem, {
857
875
  divider: enableColumnFilters || enableGrouping || enableHiding,
858
876
  key: 2,
859
877
  disabled: column.getIsSorted() === 'desc',
@@ -865,7 +883,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
865
883
  style: {
866
884
  transform: 'rotate(180deg) scaleX(-1)'
867
885
  }
868
- })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.header))))], enableColumnFilters && column.getCanFilter() && [React.createElement(MenuItem, {
886
+ })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.columnDef.header))))], enableColumnFilters && column.getCanFilter() && [React.createElement(MenuItem, {
869
887
  disabled: !column.getFilterValue(),
870
888
  key: 0,
871
889
  onClick: handleClearFilter,
@@ -879,7 +897,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
879
897
  sx: commonMenuItemStyles$1
880
898
  }, React.createElement(Box, {
881
899
  sx: commonListItemStyles
882
- }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header))), !column.filterSelectOptions && React.createElement(IconButton, {
900
+ }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.columnDef.header))), !column.filterSelectOptions && React.createElement(IconButton, {
883
901
  onClick: handleOpenFilterModeMenu,
884
902
  onMouseEnter: handleOpenFilterModeMenu,
885
903
  size: "small",
@@ -900,7 +918,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
900
918
  sx: commonMenuItemStyles$1
901
919
  }, React.createElement(Box, {
902
920
  sx: commonListItemStyles
903
- }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.header))))], enablePinning && column.getCanPin() && [React.createElement(MenuItem, {
921
+ }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.columnDef.header))))], enablePinning && column.getCanPin() && [React.createElement(MenuItem, {
904
922
  disabled: column.getIsPinned() === 'left' || !column.getCanPin(),
905
923
  key: 0,
906
924
  onClick: function onClick() {
@@ -950,7 +968,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
950
968
  sx: commonMenuItemStyles$1
951
969
  }, React.createElement(Box, {
952
970
  sx: commonListItemStyles
953
- }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(column.header)))), React.createElement(MenuItem, {
971
+ }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(column.columnDef.header)))), React.createElement(MenuItem, {
954
972
  disabled: !Object.values(columnVisibility).filter(function (visible) {
955
973
  return !visible;
956
974
  }).length,
@@ -959,7 +977,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
959
977
  sx: commonMenuItemStyles$1
960
978
  }, React.createElement(Box, {
961
979
  sx: commonListItemStyles
962
- }, React.createElement(ListItemIcon, null, React.createElement(ViewColumnIcon, null)), (_localization$showAll = localization.showAllColumns) == null ? void 0 : _localization$showAll.replace('{column}', String(column.header))), React.createElement(IconButton, {
980
+ }, React.createElement(ListItemIcon, null, React.createElement(ViewColumnIcon, null)), (_localization$showAll = localization.showAllColumns) == null ? void 0 : _localization$showAll.replace('{column}', String(column.columnDef.header))), React.createElement(IconButton, {
963
981
  onClick: handleOpenShowHideColumnsMenu,
964
982
  onMouseEnter: handleOpenShowHideColumnsMenu,
965
983
  size: "small",
@@ -1153,8 +1171,7 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1153
1171
  onSelectAllChange = _tableInstance$option.onSelectAllChange;
1154
1172
 
1155
1173
  var _getState = getState(),
1156
- isDensePadding = _getState.isDensePadding,
1157
- isLoading = _getState.isLoading;
1174
+ isDensePadding = _getState.isDensePadding;
1158
1175
 
1159
1176
  var handleSelectChange = function handleSelectChange(event) {
1160
1177
  if (selectAll) {
@@ -1189,7 +1206,6 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1189
1206
  title: selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1190
1207
  }, React.createElement(Checkbox, Object.assign({
1191
1208
  checked: selectAll ? tableInstance.getIsAllRowsSelected() : row == null ? void 0 : row.getIsSelected(),
1192
- disabled: isLoading,
1193
1209
  indeterminate: selectAll ? tableInstance.getIsSomeRowsSelected() : row == null ? void 0 : row.getIsSomeSelected(),
1194
1210
  inputProps: {
1195
1211
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
@@ -1204,101 +1220,6 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1204
1220
  })));
1205
1221
  };
1206
1222
 
1207
- var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1208
- var tableInstance = _ref.tableInstance;
1209
- var getState = tableInstance.getState,
1210
- setGlobalFilter = tableInstance.setGlobalFilter,
1211
- _tableInstance$option = tableInstance.options,
1212
- _tableInstance$option2 = _tableInstance$option.icons,
1213
- SearchIcon = _tableInstance$option2.SearchIcon,
1214
- CloseIcon = _tableInstance$option2.CloseIcon,
1215
- idPrefix = _tableInstance$option.idPrefix,
1216
- localization = _tableInstance$option.localization,
1217
- muiSearchTextFieldProps = _tableInstance$option.muiSearchTextFieldProps,
1218
- onGlobalSearchFilterChange = _tableInstance$option.onGlobalSearchFilterChange;
1219
-
1220
- var _getState = getState(),
1221
- globalFilter = _getState.globalFilter,
1222
- showGlobalFilter = _getState.showGlobalFilter;
1223
-
1224
- var _useState = useState(null),
1225
- anchorEl = _useState[0],
1226
- setAnchorEl = _useState[1];
1227
-
1228
- var _useState2 = useState(globalFilter != null ? globalFilter : ''),
1229
- searchValue = _useState2[0],
1230
- setSearchValue = _useState2[1];
1231
-
1232
- var handleChange = useCallback(debounce(function (event) {
1233
- var _event$target$value;
1234
-
1235
- setGlobalFilter((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1236
- onGlobalSearchFilterChange == null ? void 0 : onGlobalSearchFilterChange({
1237
- event: event,
1238
- tableInstance: tableInstance
1239
- });
1240
- }, 200), []);
1241
-
1242
- var handleGlobalFilterMenuOpen = function handleGlobalFilterMenuOpen(event) {
1243
- setAnchorEl(event.currentTarget);
1244
- };
1245
-
1246
- var handleClear = function handleClear() {
1247
- setSearchValue('');
1248
- setGlobalFilter(undefined);
1249
- };
1250
-
1251
- var textFieldProps = muiSearchTextFieldProps instanceof Function ? muiSearchTextFieldProps({
1252
- tableInstance: tableInstance
1253
- }) : muiSearchTextFieldProps;
1254
- return React.createElement(Collapse, {
1255
- "in": showGlobalFilter,
1256
- orientation: "horizontal"
1257
- }, React.createElement(TextField, Object.assign({
1258
- id: "mrt-" + idPrefix + "-search-text-field",
1259
- placeholder: localization.search,
1260
- onChange: function onChange(event) {
1261
- setSearchValue(event.target.value);
1262
- handleChange(event);
1263
- },
1264
- value: searchValue != null ? searchValue : '',
1265
- variant: "standard",
1266
- InputProps: {
1267
- startAdornment: React.createElement(InputAdornment, {
1268
- position: "start"
1269
- }, React.createElement(Tooltip, {
1270
- arrow: true,
1271
- title: localization.changeSearchMode
1272
- }, React.createElement("span", null, React.createElement(IconButton, {
1273
- "aria-label": localization.changeSearchMode,
1274
- onClick: handleGlobalFilterMenuOpen,
1275
- size: "small",
1276
- sx: {
1277
- height: '1.75rem',
1278
- width: '1.75rem'
1279
- }
1280
- }, React.createElement(SearchIcon, null))))),
1281
- endAdornment: React.createElement(InputAdornment, {
1282
- position: "end"
1283
- }, React.createElement(IconButton, {
1284
- "aria-label": localization.clearSearch,
1285
- disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
1286
- onClick: handleClear,
1287
- size: "small",
1288
- title: localization.clearSearch
1289
- }, React.createElement(CloseIcon, null)))
1290
- }
1291
- }, textFieldProps, {
1292
- sx: _extends({
1293
- justifySelf: 'end'
1294
- }, textFieldProps == null ? void 0 : textFieldProps.sx)
1295
- })), React.createElement(MRT_FilterOptionMenu, {
1296
- anchorEl: anchorEl,
1297
- setAnchorEl: setAnchorEl,
1298
- tableInstance: tableInstance
1299
- }));
1300
- };
1301
-
1302
1223
  var _excluded = ["tableInstance"];
1303
1224
  var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1304
1225
  var tableInstance = _ref.tableInstance,
@@ -1479,7 +1400,104 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
1479
1400
  }, rest), showGlobalFilter ? React.createElement(SearchOffIcon, null) : React.createElement(SearchIcon, null)));
1480
1401
  };
1481
1402
 
1403
+ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1404
+ var tableInstance = _ref.tableInstance;
1405
+ var getState = tableInstance.getState,
1406
+ setGlobalFilter = tableInstance.setGlobalFilter,
1407
+ _tableInstance$option = tableInstance.options,
1408
+ _tableInstance$option2 = _tableInstance$option.icons,
1409
+ SearchIcon = _tableInstance$option2.SearchIcon,
1410
+ CloseIcon = _tableInstance$option2.CloseIcon,
1411
+ idPrefix = _tableInstance$option.idPrefix,
1412
+ localization = _tableInstance$option.localization,
1413
+ muiSearchTextFieldProps = _tableInstance$option.muiSearchTextFieldProps,
1414
+ onGlobalSearchFilterChange = _tableInstance$option.onGlobalSearchFilterChange;
1415
+
1416
+ var _getState = getState(),
1417
+ globalFilter = _getState.globalFilter,
1418
+ showGlobalFilter = _getState.showGlobalFilter;
1419
+
1420
+ var _useState = useState(null),
1421
+ anchorEl = _useState[0],
1422
+ setAnchorEl = _useState[1];
1423
+
1424
+ var _useState2 = useState(globalFilter != null ? globalFilter : ''),
1425
+ searchValue = _useState2[0],
1426
+ setSearchValue = _useState2[1];
1427
+
1428
+ var handleChange = useCallback(debounce(function (event) {
1429
+ var _event$target$value;
1430
+
1431
+ setGlobalFilter((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1432
+ onGlobalSearchFilterChange == null ? void 0 : onGlobalSearchFilterChange({
1433
+ event: event,
1434
+ tableInstance: tableInstance
1435
+ });
1436
+ }, 200), []);
1437
+
1438
+ var handleGlobalFilterMenuOpen = function handleGlobalFilterMenuOpen(event) {
1439
+ setAnchorEl(event.currentTarget);
1440
+ };
1441
+
1442
+ var handleClear = function handleClear() {
1443
+ setSearchValue('');
1444
+ setGlobalFilter(undefined);
1445
+ };
1446
+
1447
+ var textFieldProps = muiSearchTextFieldProps instanceof Function ? muiSearchTextFieldProps({
1448
+ tableInstance: tableInstance
1449
+ }) : muiSearchTextFieldProps;
1450
+ return React.createElement(Collapse, {
1451
+ "in": showGlobalFilter,
1452
+ orientation: "horizontal"
1453
+ }, React.createElement(TextField, Object.assign({
1454
+ id: "mrt-" + idPrefix + "-search-text-field",
1455
+ placeholder: localization.search,
1456
+ onChange: function onChange(event) {
1457
+ setSearchValue(event.target.value);
1458
+ handleChange(event);
1459
+ },
1460
+ value: searchValue != null ? searchValue : '',
1461
+ variant: "standard",
1462
+ InputProps: {
1463
+ startAdornment: React.createElement(InputAdornment, {
1464
+ position: "start"
1465
+ }, React.createElement(Tooltip, {
1466
+ arrow: true,
1467
+ title: localization.changeSearchMode
1468
+ }, React.createElement("span", null, React.createElement(IconButton, {
1469
+ "aria-label": localization.changeSearchMode,
1470
+ onClick: handleGlobalFilterMenuOpen,
1471
+ size: "small",
1472
+ sx: {
1473
+ height: '1.75rem',
1474
+ width: '1.75rem'
1475
+ }
1476
+ }, React.createElement(SearchIcon, null))))),
1477
+ endAdornment: React.createElement(InputAdornment, {
1478
+ position: "end"
1479
+ }, React.createElement(IconButton, {
1480
+ "aria-label": localization.clearSearch,
1481
+ disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
1482
+ onClick: handleClear,
1483
+ size: "small",
1484
+ title: localization.clearSearch
1485
+ }, React.createElement(CloseIcon, null)))
1486
+ }
1487
+ }, textFieldProps, {
1488
+ sx: _extends({
1489
+ justifySelf: 'end'
1490
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
1491
+ })), React.createElement(MRT_FilterOptionMenu, {
1492
+ anchorEl: anchorEl,
1493
+ setAnchorEl: setAnchorEl,
1494
+ tableInstance: tableInstance
1495
+ }));
1496
+ };
1497
+
1482
1498
  var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1499
+ var _renderToolbarInterna;
1500
+
1483
1501
  var tableInstance = _ref.tableInstance;
1484
1502
  var _tableInstance$option = tableInstance.options,
1485
1503
  enableColumnFilters = _tableInstance$option.enableColumnFilters,
@@ -1489,24 +1507,22 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1489
1507
  enableGlobalFilter = _tableInstance$option.enableGlobalFilter,
1490
1508
  enableHiding = _tableInstance$option.enableHiding,
1491
1509
  renderToolbarInternalActions = _tableInstance$option.renderToolbarInternalActions;
1492
-
1493
- if (renderToolbarInternalActions) {
1494
- return React.createElement(React.Fragment, null, renderToolbarInternalActions({
1495
- MRT_FullScreenToggleButton: MRT_FullScreenToggleButton,
1496
- MRT_ShowHideColumnsButton: MRT_ShowHideColumnsButton,
1497
- MRT_ToggleDensePaddingButton: MRT_ToggleDensePaddingButton,
1498
- MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
1499
- MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
1500
- tableInstance: tableInstance
1501
- }));
1502
- }
1503
-
1504
1510
  return React.createElement(Box, {
1505
1511
  sx: {
1506
1512
  display: 'flex',
1507
- alignItems: 'center'
1513
+ alignItems: 'center',
1514
+ zIndex: 3
1508
1515
  }
1509
- }, enableFilters && enableGlobalFilter && React.createElement(MRT_ToggleGlobalFilterButton, {
1516
+ }, (_renderToolbarInterna = renderToolbarInternalActions == null ? void 0 : renderToolbarInternalActions({
1517
+ MRT_FullScreenToggleButton: MRT_FullScreenToggleButton,
1518
+ MRT_ShowHideColumnsButton: MRT_ShowHideColumnsButton,
1519
+ MRT_ToggleDensePaddingButton: MRT_ToggleDensePaddingButton,
1520
+ MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
1521
+ MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
1522
+ tableInstance: tableInstance
1523
+ })) != null ? _renderToolbarInterna : React.createElement(React.Fragment, null, enableGlobalFilter && React.createElement(MRT_SearchTextField, {
1524
+ tableInstance: tableInstance
1525
+ }), enableFilters && enableGlobalFilter && React.createElement(MRT_ToggleGlobalFilterButton, {
1510
1526
  tableInstance: tableInstance
1511
1527
  }), enableFilters && enableColumnFilters && React.createElement(MRT_ToggleFiltersButton, {
1512
1528
  tableInstance: tableInstance
@@ -1516,7 +1532,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1516
1532
  tableInstance: tableInstance
1517
1533
  }), enableFullScreenToggle && React.createElement(MRT_FullScreenToggleButton, {
1518
1534
  tableInstance: tableInstance
1519
- }));
1535
+ })));
1520
1536
  };
1521
1537
 
1522
1538
  var MRT_TablePagination = function MRT_TablePagination(_ref) {
@@ -1577,44 +1593,36 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1577
1593
  var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1578
1594
  var _localization$selecte, _localization$selecte2;
1579
1595
 
1580
- var tableInstance = _ref.tableInstance;
1596
+ var stackAlertBanner = _ref.stackAlertBanner,
1597
+ tableInstance = _ref.tableInstance;
1581
1598
  var getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
1582
1599
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1583
1600
  getState = tableInstance.getState,
1584
1601
  _tableInstance$option = tableInstance.options,
1585
1602
  localization = _tableInstance$option.localization,
1586
- muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps,
1587
- positionToolbarActions = _tableInstance$option.positionToolbarActions,
1588
- positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner,
1589
- renderToolbarCustomActions = _tableInstance$option.renderToolbarCustomActions;
1603
+ muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps;
1590
1604
 
1591
1605
  var _getState = getState(),
1592
1606
  grouping = _getState.grouping;
1593
1607
 
1594
- var isMobile = useMediaQuery('(max-width:720px)');
1595
1608
  var alertProps = muiTableToolbarAlertBannerProps instanceof Function ? muiTableToolbarAlertBannerProps({
1596
1609
  tableInstance: tableInstance
1597
1610
  }) : muiTableToolbarAlertBannerProps;
1598
1611
  var selectMessage = getSelectedRowModel().rows.length > 0 ? (_localization$selecte = localization.selectedCountOfRowCountRowsSelected) == null ? void 0 : (_localization$selecte2 = _localization$selecte.replace('{selectedCount}', getSelectedRowModel().rows.length.toString())) == null ? void 0 : _localization$selecte2.replace('{rowCount}', getPrePaginationRowModel().rows.length.toString()) : null;
1599
1612
  var groupedByMessage = grouping.length > 0 ? React.createElement("span", null, localization.groupedBy, ' ', grouping.map(function (columnId, index) {
1600
- var _tableInstance$getAll;
1601
-
1602
1613
  return React.createElement(Fragment, {
1603
1614
  key: index + "-" + columnId
1604
1615
  }, index > 0 ? localization.thenBy : '', React.createElement(Chip, {
1605
1616
  color: "secondary",
1606
- label: (_tableInstance$getAll = tableInstance.getAllColumns().find(function (column) {
1607
- return column.id === columnId;
1608
- })) == null ? void 0 : _tableInstance$getAll.header,
1617
+ label: tableInstance.getColumn(columnId).columnDef.header,
1609
1618
  onDelete: function onDelete() {
1610
1619
  return tableInstance.getColumn(columnId).toggleGrouping();
1611
1620
  }
1612
1621
  }));
1613
1622
  })) : null;
1614
- var displayAbsolute = !(isMobile || positionToolbarAlertBanner === 'bottom' && positionToolbarActions === 'bottom' || positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions);
1615
1623
  return React.createElement(Collapse, {
1616
1624
  "in": !!selectMessage || !!groupedByMessage,
1617
- timeout: displayAbsolute ? 0 : 200
1625
+ timeout: stackAlertBanner ? 200 : 0
1618
1626
  }, React.createElement(Alert, Object.assign({
1619
1627
  color: "info",
1620
1628
  icon: false,
@@ -1623,9 +1631,8 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1623
1631
  fontSize: '1rem',
1624
1632
  left: 0,
1625
1633
  p: 0,
1626
- position: displayAbsolute ? 'absolute' : 'relative',
1634
+ position: 'relative',
1627
1635
  right: 0,
1628
- minHeight: '3.5rem',
1629
1636
  top: 0,
1630
1637
  width: '100%',
1631
1638
  zIndex: 2
@@ -1634,7 +1641,7 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1634
1641
  sx: {
1635
1642
  p: '0.5rem 1rem'
1636
1643
  }
1637
- }, selectMessage, React.createElement("br", null), groupedByMessage)));
1644
+ }, selectMessage, selectMessage && groupedByMessage && React.createElement("br", null), groupedByMessage)));
1638
1645
  };
1639
1646
 
1640
1647
  var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
@@ -1665,6 +1672,8 @@ var commonToolbarStyles = function commonToolbarStyles(_ref) {
1665
1672
  backgroundColor: lighten(theme.palette.background["default"], 0.04),
1666
1673
  backgroundImage: 'none',
1667
1674
  display: 'grid',
1675
+ minHeight: '3.5rem',
1676
+ overflow: 'hidden',
1668
1677
  p: '0 !important',
1669
1678
  transition: 'all 0.2s ease-in-out',
1670
1679
  width: '100%',
@@ -1677,7 +1686,6 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1677
1686
  var tableInstance = _ref2.tableInstance;
1678
1687
  var getState = tableInstance.getState,
1679
1688
  _tableInstance$option = tableInstance.options,
1680
- enableGlobalFilter = _tableInstance$option.enableGlobalFilter,
1681
1689
  enablePagination = _tableInstance$option.enablePagination,
1682
1690
  enableToolbarInternalActions = _tableInstance$option.enableToolbarInternalActions,
1683
1691
  idPrefix = _tableInstance$option.idPrefix,
@@ -1690,9 +1698,11 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1690
1698
  var _getState = getState(),
1691
1699
  isFullScreen = _getState.isFullScreen;
1692
1700
 
1701
+ var isMobile = useMediaQuery('(max-width:720px)');
1693
1702
  var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps({
1694
1703
  tableInstance: tableInstance
1695
1704
  }) : muiTableToolbarTopProps;
1705
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions;
1696
1706
  return React.createElement(Toolbar, Object.assign({
1697
1707
  id: "mrt-" + idPrefix + "-toolbar-top",
1698
1708
  variant: "dense"
@@ -1706,27 +1716,23 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1706
1716
  }), toolbarProps == null ? void 0 : toolbarProps.sx);
1707
1717
  }
1708
1718
  }), positionToolbarAlertBanner === 'top' && React.createElement(MRT_ToolbarAlertBanner, {
1719
+ stackAlertBanner: stackAlertBanner,
1709
1720
  tableInstance: tableInstance
1710
1721
  }), React.createElement(Box, {
1711
1722
  sx: {
1712
- p: '0.5rem',
1713
1723
  display: 'flex',
1714
- justifyContent: 'space-between'
1724
+ justifyContent: 'space-between',
1725
+ p: '0.5rem',
1726
+ position: stackAlertBanner ? 'relative' : 'absolute',
1727
+ right: 0,
1728
+ top: 0,
1729
+ width: 'calc(100% - 1rem)'
1715
1730
  }
1716
1731
  }, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions({
1717
1732
  tableInstance: tableInstance
1718
- })) != null ? _renderToolbarCustomA : React.createElement("span", null), React.createElement(Box, {
1719
- sx: {
1720
- display: 'flex',
1721
- gap: '0.5rem',
1722
- position: 'relative',
1723
- zIndex: 3
1724
- }
1725
- }, enableGlobalFilter && React.createElement(MRT_SearchTextField, {
1726
- tableInstance: tableInstance
1727
- }), enableToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, {
1733
+ })) != null ? _renderToolbarCustomA : React.createElement("span", null), enableToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, {
1728
1734
  tableInstance: tableInstance
1729
- }))), React.createElement("div", null, enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1735
+ })), React.createElement("div", null, enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1730
1736
  tableInstance: tableInstance
1731
1737
  })), React.createElement(MRT_LinearProgressBar, {
1732
1738
  tableInstance: tableInstance
@@ -1743,14 +1749,17 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1743
1749
  muiTableToolbarBottomProps = _tableInstance$option.muiTableToolbarBottomProps,
1744
1750
  positionPagination = _tableInstance$option.positionPagination,
1745
1751
  positionToolbarActions = _tableInstance$option.positionToolbarActions,
1746
- positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner;
1752
+ positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner,
1753
+ renderToolbarCustomActions = _tableInstance$option.renderToolbarCustomActions;
1747
1754
 
1748
1755
  var _getState = getState(),
1749
1756
  isFullScreen = _getState.isFullScreen;
1750
1757
 
1758
+ var isMobile = useMediaQuery('(max-width:720px)');
1751
1759
  var toolbarProps = muiTableToolbarBottomProps instanceof Function ? muiTableToolbarBottomProps({
1752
1760
  tableInstance: tableInstance
1753
1761
  }) : muiTableToolbarBottomProps;
1762
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'bottom' && positionToolbarActions === 'bottom' || positionToolbarAlertBanner === 'bottom' && !!renderToolbarCustomActions && positionToolbarActions === 'bottom';
1754
1763
  return React.createElement(Toolbar, Object.assign({
1755
1764
  id: "mrt-" + idPrefix + "-toolbar-bottom",
1756
1765
  variant: "dense"
@@ -1766,17 +1775,20 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1766
1775
  }
1767
1776
  }), React.createElement(MRT_LinearProgressBar, {
1768
1777
  tableInstance: tableInstance
1778
+ }), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
1779
+ tableInstance: tableInstance
1769
1780
  }), React.createElement(Box, {
1770
1781
  sx: {
1771
1782
  display: 'flex',
1772
1783
  justifyContent: 'space-between',
1773
- width: '100%'
1784
+ width: '100%',
1785
+ position: stackAlertBanner ? 'relative' : 'absolute',
1786
+ right: 0,
1787
+ top: 0
1774
1788
  }
1775
1789
  }, enableToolbarInternalActions && positionToolbarActions === 'bottom' ? React.createElement(MRT_ToolbarInternalButtons, {
1776
1790
  tableInstance: tableInstance
1777
- }) : React.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
1778
- tableInstance: tableInstance
1779
- }), enablePagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1791
+ }) : React.createElement("span", null), enablePagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1780
1792
  tableInstance: tableInstance
1781
1793
  })));
1782
1794
  };
@@ -1874,7 +1886,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1874
1886
  var isSelectFilter = !!column.filterSelectOptions;
1875
1887
  var filterChipLabel = !(filterFn instanceof Function) && [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(filterFn) ? //@ts-ignore
1876
1888
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
1877
- var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
1889
+ var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.columnDef.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
1878
1890
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
1879
1891
  fullWidth: true,
1880
1892
  id: filterId,
@@ -1986,12 +1998,196 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1986
1998
  }));
1987
1999
  };
1988
2000
 
1989
- var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
2001
+ var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
1990
2002
  var header = _ref.header,
1991
2003
  tableInstance = _ref.tableInstance;
1992
- var _tableInstance$option = tableInstance.options,
1993
- MoreVertIcon = _tableInstance$option.icons.MoreVertIcon,
1994
- localization = _tableInstance$option.localization,
2004
+ var localization = tableInstance.options.localization;
2005
+ return React.createElement(Box, {
2006
+ sx: {
2007
+ display: 'grid',
2008
+ gridTemplateColumns: '6fr auto 5fr'
2009
+ }
2010
+ }, React.createElement(MRT_FilterTextField, {
2011
+ header: header,
2012
+ inputIndex: 0,
2013
+ tableInstance: tableInstance
2014
+ }), React.createElement(Box, {
2015
+ sx: {
2016
+ width: '100%',
2017
+ minWidth: '5ch',
2018
+ textAlign: 'center'
2019
+ }
2020
+ }, localization.to), React.createElement(MRT_FilterTextField, {
2021
+ header: header,
2022
+ inputIndex: 1,
2023
+ tableInstance: tableInstance
2024
+ }));
2025
+ };
2026
+
2027
+ var MRT_TableHeadCellFilterContainer = function MRT_TableHeadCellFilterContainer(_ref) {
2028
+ var header = _ref.header,
2029
+ tableInstance = _ref.tableInstance;
2030
+ var getState = tableInstance.getState;
2031
+
2032
+ var _getState = getState(),
2033
+ currentFilterFns = _getState.currentFilterFns,
2034
+ showFilters = _getState.showFilters;
2035
+
2036
+ var column = header.column;
2037
+ return React.createElement(Collapse, {
2038
+ "in": showFilters,
2039
+ mountOnEnter: true,
2040
+ unmountOnExit: true
2041
+ }, currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? React.createElement(MRT_FilterRangeFields, {
2042
+ header: header,
2043
+ tableInstance: tableInstance
2044
+ }) : React.createElement(MRT_FilterTextField, {
2045
+ header: header,
2046
+ tableInstance: tableInstance
2047
+ }));
2048
+ };
2049
+
2050
+ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2051
+ var _getState2, _getState2$currentFil;
2052
+
2053
+ var header = _ref.header,
2054
+ tableInstance = _ref.tableInstance;
2055
+ var getState = tableInstance.getState,
2056
+ _tableInstance$option = tableInstance.options,
2057
+ _tableInstance$option2 = _tableInstance$option.icons,
2058
+ FilterAltIcon = _tableInstance$option2.FilterAltIcon,
2059
+ FilterAltOff = _tableInstance$option2.FilterAltOff,
2060
+ localization = _tableInstance$option.localization,
2061
+ setShowFilters = tableInstance.setShowFilters;
2062
+
2063
+ var _getState = getState(),
2064
+ showFilters = _getState.showFilters;
2065
+
2066
+ var column = header.column;
2067
+ var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2068
+ var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2069
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '') : localization.showHideFilters;
2070
+ return React.createElement(Tooltip, {
2071
+ arrow: true,
2072
+ placement: "top",
2073
+ title: filterTooltip
2074
+ }, React.createElement(IconButton, {
2075
+ disableRipple: true,
2076
+ onClick: function onClick(event) {
2077
+ event.stopPropagation();
2078
+ setShowFilters(!showFilters);
2079
+ },
2080
+ size: "small",
2081
+ sx: {
2082
+ m: 0,
2083
+ opacity: !!column.getFilterValue() || showFilters ? 0.8 : 0,
2084
+ p: '2px',
2085
+ transition: 'all 0.2s ease-in-out',
2086
+ '&:hover': {
2087
+ backgroundColor: 'transparent',
2088
+ opacity: 0.8
2089
+ }
2090
+ }
2091
+ }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)));
2092
+ };
2093
+
2094
+ var MRT_TableHeadCellGrabHandle = /*#__PURE__*/forwardRef(function (_ref, ref) {
2095
+ var tableInstance = _ref.tableInstance;
2096
+ var _tableInstance$option = tableInstance.options,
2097
+ DragHandleIcon = _tableInstance$option.icons.DragHandleIcon,
2098
+ localization = _tableInstance$option.localization;
2099
+ return React.createElement(Tooltip, {
2100
+ arrow: true,
2101
+ enterDelay: 1000,
2102
+ enterNextDelay: 1000,
2103
+ placement: "top",
2104
+ title: localization.grab
2105
+ }, React.createElement(IconButton, {
2106
+ disableRipple: true,
2107
+ ref: ref,
2108
+ size: "small",
2109
+ sx: {
2110
+ cursor: 'grab',
2111
+ m: 0,
2112
+ opacity: 0.5,
2113
+ p: '2px',
2114
+ transition: 'all 0.2s ease-in-out',
2115
+ '&:hover': {
2116
+ backgroundColor: 'transparent',
2117
+ opacity: 1
2118
+ },
2119
+ '&:active': {
2120
+ cursor: 'grabbing'
2121
+ }
2122
+ }
2123
+ }, React.createElement(DragHandleIcon, null)));
2124
+ });
2125
+
2126
+ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref) {
2127
+ var header = _ref.header,
2128
+ tableInstance = _ref.tableInstance;
2129
+ var getState = tableInstance.getState;
2130
+
2131
+ var _getState = getState(),
2132
+ showFilters = _getState.showFilters;
2133
+
2134
+ var column = header.column;
2135
+ return React.createElement(Divider, {
2136
+ flexItem: true,
2137
+ orientation: "vertical",
2138
+ onDoubleClick: function onDoubleClick() {
2139
+ return column.resetSize();
2140
+ },
2141
+ sx: function sx(theme) {
2142
+ return {
2143
+ borderRadius: '2px',
2144
+ borderRightWidth: '2px',
2145
+ cursor: 'col-resize',
2146
+ height: showFilters && column.columnDefType === 'data' ? '4rem' : '2rem',
2147
+ opacity: 0.8,
2148
+ position: 'absolute',
2149
+ right: '1px',
2150
+ touchAction: 'none',
2151
+ transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
2152
+ userSelect: 'none',
2153
+ zIndex: 2000,
2154
+ '&:active': {
2155
+ backgroundColor: theme.palette.info.main,
2156
+ opacity: 1
2157
+ }
2158
+ };
2159
+ },
2160
+ onMouseDown: header.getResizeHandler(),
2161
+ onTouchStart: header.getResizeHandler(),
2162
+ style: {
2163
+ transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : 'none'
2164
+ }
2165
+ });
2166
+ };
2167
+
2168
+ var MRT_TableHeadCellSortLabel = function MRT_TableHeadCellSortLabel(_ref) {
2169
+ var header = _ref.header,
2170
+ tableInstance = _ref.tableInstance;
2171
+ var localization = tableInstance.options.localization;
2172
+ var column = header.column;
2173
+ var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.columnDef.header) : localization.sortedByColumnAsc.replace('{column}', column.columnDef.header) : localization.unsorted;
2174
+ return React.createElement(Tooltip, {
2175
+ arrow: true,
2176
+ placement: "top",
2177
+ title: sortTooltip
2178
+ }, React.createElement(TableSortLabel, {
2179
+ "aria-label": sortTooltip,
2180
+ active: !!column.getIsSorted(),
2181
+ direction: column.getIsSorted() ? column.getIsSorted() : undefined
2182
+ }));
2183
+ };
2184
+
2185
+ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
2186
+ var header = _ref.header,
2187
+ tableInstance = _ref.tableInstance;
2188
+ var _tableInstance$option = tableInstance.options,
2189
+ MoreVertIcon = _tableInstance$option.icons.MoreVertIcon,
2190
+ localization = _tableInstance$option.localization,
1995
2191
  muiTableHeadCellColumnActionsButtonProps = _tableInstance$option.muiTableHeadCellColumnActionsButtonProps;
1996
2192
  var column = header.column;
1997
2193
 
@@ -2046,53 +2242,26 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
2046
2242
  }));
2047
2243
  };
2048
2244
 
2049
- var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
2050
- var header = _ref.header,
2051
- tableInstance = _ref.tableInstance;
2052
- var localization = tableInstance.options.localization;
2053
- return React.createElement(Box, {
2054
- sx: {
2055
- display: 'grid',
2056
- gridTemplateColumns: '6fr auto 5fr'
2057
- }
2058
- }, React.createElement(MRT_FilterTextField, {
2059
- header: header,
2060
- inputIndex: 0,
2061
- tableInstance: tableInstance
2062
- }), React.createElement(Box, {
2063
- sx: {
2064
- width: '100%',
2065
- minWidth: '5ch',
2066
- textAlign: 'center'
2067
- }
2068
- }, localization.to), React.createElement(MRT_FilterTextField, {
2069
- header: header,
2070
- inputIndex: 1,
2071
- tableInstance: tableInstance
2072
- }));
2073
- };
2074
-
2075
2245
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2076
- var _getState2, _getState2$currentFil, _column$Header;
2246
+ var _column$columnDef$Hea, _column$columnDef, _column$minSize, _column$columnDef$hea, _column$columnDef$hea2;
2077
2247
 
2078
- var header = _ref.header,
2248
+ var dragRef = _ref.dragRef,
2249
+ dropRef = _ref.dropRef,
2250
+ header = _ref.header,
2251
+ isDragging = _ref.isDragging,
2252
+ previewRef = _ref.previewRef,
2079
2253
  tableInstance = _ref.tableInstance;
2080
2254
  var getState = tableInstance.getState,
2081
2255
  _tableInstance$option = tableInstance.options,
2082
2256
  enableColumnActions = _tableInstance$option.enableColumnActions,
2083
2257
  enableColumnFilters = _tableInstance$option.enableColumnFilters,
2258
+ enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
2084
2259
  enableColumnResizing = _tableInstance$option.enableColumnResizing,
2085
- _tableInstance$option2 = _tableInstance$option.icons,
2086
- FilterAltIcon = _tableInstance$option2.FilterAltIcon,
2087
- FilterAltOff = _tableInstance$option2.FilterAltOff,
2088
- localization = _tableInstance$option.localization,
2089
- muiTableHeadCellProps = _tableInstance$option.muiTableHeadCellProps,
2090
- setShowFilters = tableInstance.setShowFilters;
2260
+ enableGrouping = _tableInstance$option.enableGrouping,
2261
+ muiTableHeadCellProps = _tableInstance$option.muiTableHeadCellProps;
2091
2262
 
2092
2263
  var _getState = getState(),
2093
- currentFilterFns = _getState.currentFilterFns,
2094
- isDensePadding = _getState.isDensePadding,
2095
- showFilters = _getState.showFilters;
2264
+ isDensePadding = _getState.isDensePadding;
2096
2265
 
2097
2266
  var column = header.column;
2098
2267
  var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps({
@@ -2106,14 +2275,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2106
2275
 
2107
2276
  var tableCellProps = _extends({}, mTableHeadCellProps, mcTableHeadCellProps);
2108
2277
 
2109
- var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.header) : localization.sortedByColumnAsc.replace('{column}', column.header) : localization.unsorted;
2110
- var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2111
- var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2112
- localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '') : localization.showHideFilters;
2113
- var headerElement = (_column$Header = column == null ? void 0 : column.Header == null ? void 0 : column.Header({
2278
+ var headerElement = (_column$columnDef$Hea = (_column$columnDef = column.columnDef) == null ? void 0 : _column$columnDef.Header == null ? void 0 : _column$columnDef.Header({
2114
2279
  header: header,
2115
2280
  tableInstance: tableInstance
2116
- })) != null ? _column$Header : column.header;
2281
+ })) != null ? _column$columnDef$Hea : header.renderHeader();
2117
2282
 
2118
2283
  var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2119
2284
  return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
@@ -2127,10 +2292,12 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2127
2292
  return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2128
2293
  };
2129
2294
 
2295
+ console.log(column.getCanGroup());
2130
2296
  return React.createElement(TableCell, Object.assign({
2131
2297
  align: column.columnDefType === 'group' ? 'center' : 'left',
2132
2298
  colSpan: header.colSpan
2133
2299
  }, tableCellProps, {
2300
+ ref: column.columnDefType === 'data' ? dropRef : undefined,
2134
2301
  sx: function sx(theme) {
2135
2302
  return _extends({
2136
2303
  backgroundColor: column.getIsPinned() && column.columnDefType !== 'group' ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
@@ -2139,8 +2306,6 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2139
2306
  fontWeight: 'bold',
2140
2307
  height: '100%',
2141
2308
  left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2142
- maxWidth: "min(" + column.getSize() + "px, fit-content)",
2143
- minWidth: "max(" + column.getSize() + "px, " + column.minSize + "px)",
2144
2309
  overflow: 'visible',
2145
2310
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2146
2311
  pb: column.columnDefType === 'display' ? 0 : undefined,
@@ -2149,15 +2314,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2149
2314
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2150
2315
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2151
2316
  verticalAlign: 'text-top',
2152
- width: header.getSize(),
2153
2317
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && column.columnDefType !== 'group' ? 2 : 1
2154
2318
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2319
+ },
2320
+ style: {
2321
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2322
+ minWidth: "max(" + column.getSize() + "px, " + ((_column$minSize = column.minSize) != null ? _column$minSize : 30) + "px)",
2323
+ width: header.getSize()
2155
2324
  }
2156
2325
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React.createElement(Box, {
2326
+ ref: previewRef,
2157
2327
  sx: {
2158
2328
  alignItems: 'flex-start',
2159
2329
  display: 'flex',
2160
2330
  justifyContent: column.columnDefType === 'group' ? 'center' : 'space-between',
2331
+ opacity: isDragging ? 0.5 : 1,
2161
2332
  width: '100%'
2162
2333
  }
2163
2334
  }, React.createElement(Box, {
@@ -2169,89 +2340,92 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2169
2340
  cursor: column.getCanSort() && column.columnDefType !== 'group' ? 'pointer' : undefined,
2170
2341
  display: 'flex',
2171
2342
  flexWrap: 'nowrap',
2172
- whiteSpace: column.header.length < 24 ? 'nowrap' : 'normal'
2343
+ whiteSpace: ((_column$columnDef$hea = (_column$columnDef$hea2 = column.columnDef.header) == null ? void 0 : _column$columnDef$hea2.length) != null ? _column$columnDef$hea : 0) < 24 ? 'nowrap' : 'normal'
2173
2344
  }
2174
- }, headerElement, column.columnDefType === 'data' && column.getCanSort() && React.createElement(Tooltip, {
2175
- arrow: true,
2176
- placement: "top",
2177
- title: sortTooltip
2178
- }, React.createElement(TableSortLabel, {
2179
- "aria-label": sortTooltip,
2180
- active: !!column.getIsSorted(),
2181
- direction: column.getIsSorted() ? column.getIsSorted() : undefined
2182
- })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanFilter() && React.createElement(Tooltip, {
2183
- arrow: true,
2184
- placement: "top",
2185
- title: filterTooltip
2186
- }, React.createElement(IconButton, {
2187
- disableRipple: true,
2188
- onClick: function onClick(event) {
2189
- event.stopPropagation();
2190
- setShowFilters(!showFilters);
2191
- },
2192
- size: "small",
2345
+ }, headerElement, column.columnDefType === 'data' && column.getCanSort() && React.createElement(MRT_TableHeadCellSortLabel, {
2346
+ header: header,
2347
+ tableInstance: tableInstance
2348
+ }), column.columnDefType === 'data' && enableColumnFilters && column.getCanFilter() && React.createElement(MRT_TableHeadCellFilterLabel, {
2349
+ header: header,
2350
+ tableInstance: tableInstance
2351
+ })), React.createElement(Box, {
2193
2352
  sx: {
2194
- m: 0,
2195
- opacity: !!column.getFilterValue() ? 0.8 : 0,
2196
- p: '2px',
2197
- transition: 'all 0.2s ease-in-out',
2198
- '&:hover': {
2199
- backgroundColor: 'transparent',
2200
- opacity: 0.8
2201
- }
2353
+ whiteSpace: 'nowrap'
2202
2354
  }
2203
- }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2355
+ }, column.columnDefType === 'data' && (enableColumnOrdering && column.enableColumnOrdering !== false || enableGrouping && column.enableGrouping !== false) && React.createElement(MRT_TableHeadCellGrabHandle, {
2204
2356
  header: header,
2357
+ ref: dragRef,
2205
2358
  tableInstance: tableInstance
2206
- }), column.getCanResize() && React.createElement(Divider, Object.assign({
2207
- flexItem: true,
2208
- orientation: "vertical",
2209
- onDoubleClick: function onDoubleClick() {
2210
- return column.resetSize();
2211
- },
2212
- sx: function sx(theme) {
2213
- return {
2214
- borderRadius: '2px',
2215
- borderRightWidth: '2px',
2216
- cursor: 'col-resize',
2217
- height: showFilters && column.columnDefType === 'data' ? '4rem' : '2rem',
2218
- opacity: 0.8,
2219
- position: 'absolute',
2220
- right: '1px',
2221
- touchAction: 'none',
2222
- transition: 'all 0.2s ease-in-out',
2223
- userSelect: 'none',
2224
- zIndex: 2000,
2225
- '&:active': {
2226
- backgroundColor: theme.palette.info.main,
2227
- opacity: 1
2228
- }
2229
- };
2230
- }
2231
- }, {
2232
- onMouseDown: header.getResizeHandler,
2233
- onTouchStart: header.getResizeHandler
2234
- }, {
2235
- style: {
2236
- transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : 'none'
2237
- }
2238
- }))), column.columnDefType === 'data' && column.getCanFilter() && React.createElement(Collapse, {
2239
- "in": showFilters,
2240
- mountOnEnter: true,
2241
- unmountOnExit: true
2242
- }, currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? React.createElement(MRT_FilterRangeFields, {
2359
+ }), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2243
2360
  header: header,
2244
2361
  tableInstance: tableInstance
2245
- }) : React.createElement(MRT_FilterTextField, {
2362
+ })), column.getCanResize() && React.createElement(MRT_TableHeadCellResizeHandle, {
2246
2363
  header: header,
2247
2364
  tableInstance: tableInstance
2248
- })));
2365
+ })), column.columnDefType === 'data' && column.getCanFilter() && React.createElement(MRT_TableHeadCellFilterContainer, {
2366
+ header: header,
2367
+ tableInstance: tableInstance
2368
+ }));
2369
+ };
2370
+
2371
+ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2372
+ var header = _ref.header,
2373
+ tableInstance = _ref.tableInstance;
2374
+ var getState = tableInstance.getState;
2375
+
2376
+ _objectDestructuringEmpty(tableInstance.options);
2377
+
2378
+ var setColumnOrder = tableInstance.setColumnOrder;
2379
+
2380
+ var _getState = getState(),
2381
+ columnOrder = _getState.columnOrder;
2382
+
2383
+ var reorder = function reorder(item, newIndex) {
2384
+ var currentIndex = item.index;
2385
+ columnOrder.splice(newIndex, 0, columnOrder.splice(currentIndex, 1)[0]);
2386
+ setColumnOrder([].concat(columnOrder));
2387
+ };
2388
+
2389
+ var _useDrop = useDrop({
2390
+ accept: 'header',
2391
+ drop: function drop(item) {
2392
+ return reorder(item, header.index);
2393
+ }
2394
+ }),
2395
+ drop = _useDrop[1];
2396
+
2397
+ var _useDrag = useDrag({
2398
+ collect: function collect(monitor) {
2399
+ return {
2400
+ isDragging: monitor.isDragging()
2401
+ };
2402
+ },
2403
+ item: function item() {
2404
+ return header;
2405
+ },
2406
+ type: 'header'
2407
+ }),
2408
+ isDragging = _useDrag[0].isDragging,
2409
+ drag = _useDrag[1],
2410
+ preview = _useDrag[2];
2411
+
2412
+ return React.createElement(MRT_TableHeadCell, {
2413
+ dragRef: drag,
2414
+ dropRef: drop,
2415
+ header: header,
2416
+ isDragging: isDragging,
2417
+ previewRef: preview,
2418
+ tableInstance: tableInstance
2419
+ });
2249
2420
  };
2250
2421
 
2251
2422
  var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2252
2423
  var headerGroup = _ref.headerGroup,
2253
2424
  tableInstance = _ref.tableInstance;
2254
- var muiTableHeadRowProps = tableInstance.options.muiTableHeadRowProps;
2425
+ var _tableInstance$option = tableInstance.options,
2426
+ enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
2427
+ enableGrouping = _tableInstance$option.enableGrouping,
2428
+ muiTableHeadRowProps = _tableInstance$option.muiTableHeadRowProps;
2255
2429
  var tableRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2256
2430
  headerGroup: headerGroup,
2257
2431
  tableInstance: tableInstance
@@ -2264,7 +2438,11 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2264
2438
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
2265
2439
  }
2266
2440
  }), headerGroup.headers.map(function (header, index) {
2267
- return React.createElement(MRT_TableHeadCell, {
2441
+ return enableColumnOrdering || enableGrouping ? React.createElement(MRT_DraggableTableHeadCell, {
2442
+ header: header,
2443
+ key: header.id || index,
2444
+ tableInstance: tableInstance
2445
+ }) : React.createElement(MRT_TableHeadCell, {
2268
2446
  header: header,
2269
2447
  key: header.id || index,
2270
2448
  tableInstance: tableInstance
@@ -2367,7 +2545,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2367
2545
  onClick: function onClick(e) {
2368
2546
  return e.stopPropagation();
2369
2547
  },
2370
- placeholder: column.header,
2548
+ placeholder: column.columnDef.header,
2371
2549
  value: value,
2372
2550
  variant: "standard"
2373
2551
  }, textFieldProps));
@@ -2415,7 +2593,9 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2415
2593
  onClick: function onClick() {
2416
2594
  return handleCopy(cell.getValue());
2417
2595
  },
2418
- size: "small"
2596
+ size: "small",
2597
+ type: "button",
2598
+ variant: "text"
2419
2599
  }, buttonProps, {
2420
2600
  sx: _extends({
2421
2601
  backgroundColor: 'transparent',
@@ -2429,13 +2609,12 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2429
2609
  minWidth: 'unset',
2430
2610
  textAlign: 'inherit',
2431
2611
  textTransform: 'inherit'
2432
- }, buttonProps == null ? void 0 : buttonProps.sx),
2433
- variant: "text"
2612
+ }, buttonProps == null ? void 0 : buttonProps.sx)
2434
2613
  }), children));
2435
2614
  };
2436
2615
 
2437
2616
  var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2438
- var _cell$column$Cell, _cell$column, _row$subRows, _cell$column$Cell2, _cell$column2, _row$subRows2;
2617
+ var _column$minSize, _cell$column$columnDe, _cell$column$columnDe2, _row$subRows, _cell$column$columnDe3, _cell$column$columnDe4, _row$subRows$length, _row$subRows2;
2439
2618
 
2440
2619
  var cell = _ref.cell,
2441
2620
  enableHover = _ref.enableHover,
@@ -2519,26 +2698,28 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2519
2698
  boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : undefined,
2520
2699
  cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2521
2700
  left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2522
- maxWidth: "min(" + column.getSize() + "px, fit-content)",
2523
- minWidth: "max" + column.getSize() + "px, " + column.minSize + "px",
2524
2701
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2525
2702
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2526
2703
  position: column.getIsPinned() ? 'sticky' : 'relative',
2527
2704
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2528
2705
  transition: 'all 0.2s ease-in-out',
2529
2706
  whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2530
- width: column.getSize(),
2531
2707
  zIndex: column.getIsPinned() ? 1 : undefined,
2532
2708
  '&:hover': {
2533
2709
  backgroundColor: enableHover ? theme.palette.mode === 'dark' ? lighten(theme.palette.background["default"], 0.13) + " !important" : darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2534
2710
  }
2535
2711
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2712
+ },
2713
+ style: {
2714
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2715
+ minWidth: "max(" + column.getSize() + "px, " + ((_column$minSize = column.minSize) != null ? _column$minSize : 30) + "px)",
2716
+ width: column.getSize()
2536
2717
  }
2537
2718
  }), React.createElement(React.Fragment, null, isLoading || showSkeletons ? React.createElement(Skeleton, Object.assign({
2538
2719
  animation: "wave",
2539
2720
  height: 20,
2540
2721
  width: skeletonWidth
2541
- }, muiTableBodyCellSkeletonProps)) : column.columnDefType === 'display' ? column.Cell == null ? void 0 : column.Cell({
2722
+ }, muiTableBodyCellSkeletonProps)) : column.columnDefType === 'display' ? column.columnDef.Cell == null ? void 0 : column.columnDef.Cell({
2542
2723
  cell: cell,
2543
2724
  tableInstance: tableInstance
2544
2725
  }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React.createElement(MRT_EditCellTextField, {
@@ -2547,13 +2728,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2547
2728
  }) : (enableClickToCopy || column.enableClickToCopy) && column.enableClickToCopy !== false ? React.createElement(React.Fragment, null, React.createElement(MRT_CopyButton, {
2548
2729
  cell: cell,
2549
2730
  tableInstance: tableInstance
2550
- }, React.createElement(React.Fragment, null, (_cell$column$Cell = (_cell$column = cell.column) == null ? void 0 : _cell$column.Cell == null ? void 0 : _cell$column.Cell({
2731
+ }, React.createElement(React.Fragment, null, (_cell$column$columnDe = (_cell$column$columnDe2 = cell.column.columnDef) == null ? void 0 : _cell$column$columnDe2.Cell == null ? void 0 : _cell$column$columnDe2.Cell({
2551
2732
  cell: cell,
2552
2733
  tableInstance: tableInstance
2553
- })) != null ? _cell$column$Cell : cell.renderCell())), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React.createElement(React.Fragment, null, (_cell$column$Cell2 = (_cell$column2 = cell.column) == null ? void 0 : _cell$column2.Cell == null ? void 0 : _cell$column2.Cell({
2734
+ })) != null ? _cell$column$columnDe : cell.renderCell())), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React.createElement(React.Fragment, null, (_cell$column$columnDe3 = (_cell$column$columnDe4 = cell.column.columnDef) == null ? void 0 : _cell$column$columnDe4.Cell == null ? void 0 : _cell$column$columnDe4.Cell({
2554
2735
  cell: cell,
2555
2736
  tableInstance: tableInstance
2556
- })) != null ? _cell$column$Cell2 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length, ")"))));
2737
+ })) != null ? _cell$column$columnDe3 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows$length = (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length) != null ? _row$subRows$length : '', ")"))));
2557
2738
  };
2558
2739
 
2559
2740
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
@@ -2662,7 +2843,7 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
2662
2843
  };
2663
2844
 
2664
2845
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2665
- var _ref2, _column$Footer;
2846
+ var _ref2, _ref3, _column$columnDef$Foo;
2666
2847
 
2667
2848
  var footer = _ref.footer,
2668
2849
  tableInstance = _ref.tableInstance;
@@ -2704,10 +2885,10 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2704
2885
  verticalAlign: 'text-top'
2705
2886
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2706
2887
  }
2707
- }), footer.isPlaceholder ? null : (_ref2 = (_column$Footer = column.Footer == null ? void 0 : column.Footer({
2888
+ }), React.createElement(React.Fragment, null, footer.isPlaceholder ? null : (_ref2 = (_ref3 = (_column$columnDef$Foo = column.columnDef.Footer == null ? void 0 : column.columnDef.Footer({
2708
2889
  footer: footer,
2709
2890
  tableInstance: tableInstance
2710
- })) != null ? _column$Footer : column.footer) != null ? _ref2 : null);
2891
+ })) != null ? _column$columnDef$Foo : column.columnDef.footer) != null ? _ref3 : footer.renderFooter()) != null ? _ref2 : null));
2711
2892
  };
2712
2893
 
2713
2894
  var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
@@ -2718,7 +2899,7 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
2718
2899
  var muiTableFooterRowProps = tableInstance.options.muiTableFooterRowProps; // if no content in row, skip row
2719
2900
 
2720
2901
  if (!((_footerGroup$headers = footerGroup.headers) != null && _footerGroup$headers.some(function (h) {
2721
- return typeof h.column.footer === 'string' && !!h.column.footer || h.column.Footer;
2902
+ return typeof h.column.columnDef.footer === 'string' && !!h.column.columnDef.footer || h.column.columnDef.Footer;
2722
2903
  }))) return null;
2723
2904
  var tableRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2724
2905
  footerGroup: footerGroup,
@@ -2835,7 +3016,9 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
2835
3016
  var tablePaperProps = muiTablePaperProps instanceof Function ? muiTablePaperProps({
2836
3017
  tableInstance: tableInstance
2837
3018
  }) : muiTablePaperProps;
2838
- return React.createElement(Paper, Object.assign({
3019
+ return React.createElement(DndProvider, {
3020
+ backend: HTML5Backend
3021
+ }, React.createElement(Paper, Object.assign({
2839
3022
  elevation: 2
2840
3023
  }, tablePaperProps, {
2841
3024
  sx: _extends({
@@ -2855,7 +3038,7 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
2855
3038
  tableInstance: tableInstance
2856
3039
  }), enableToolbarBottom && React.createElement(MRT_ToolbarBottom, {
2857
3040
  tableInstance: tableInstance
2858
- }));
3041
+ })));
2859
3042
  };
2860
3043
 
2861
3044
  var getAllLeafColumnDefs = function getAllLeafColumnDefs(columns) {
@@ -3070,30 +3253,34 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3070
3253
  return _ref7 = {}, _ref7[c.id] = null, _ref7;
3071
3254
  })));
3072
3255
  }) : props.data;
3073
- }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]); //@ts-ignore
3256
+ }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]);
3257
+
3258
+ var _useState11 = useState(function () {
3259
+ var _initialState$columnO;
3260
+
3261
+ return ((_initialState$columnO = initialState == null ? void 0 : initialState.columnOrder) != null ? _initialState$columnO : props.enableColumnOrdering) ? getAllLeafColumnDefs(columns).map(function (c) {
3262
+ return c.id;
3263
+ }) : [];
3264
+ }),
3265
+ columnOrder = _useState11[0],
3266
+ setColumnOrder = _useState11[1]; //@ts-ignore
3267
+
3074
3268
 
3075
3269
  var tableInstance = _extends({}, useTableInstance(table, _extends({
3076
3270
  filterFns: defaultFilterFNs,
3077
- //@ts-ignore
3078
3271
  getCoreRowModel: getCoreRowModel(),
3079
- //@ts-ignore
3080
3272
  getExpandedRowModel: getExpandedRowModel(),
3081
- //@ts-ignore
3082
3273
  getFacetedRowModel: getFacetedRowModel(),
3083
- //@ts-ignore
3084
3274
  getFilteredRowModel: getFilteredRowModel(),
3085
- //@ts-ignore
3086
3275
  getGroupedRowModel: getGroupedRowModel(),
3087
- //@ts-ignore
3088
3276
  getPaginationRowModel: getPaginationRowModel(),
3089
- //@ts-ignore
3090
3277
  getSortedRowModel: getSortedRowModel(),
3091
- //@ts-ignore
3092
3278
  getSubRows: function getSubRows(row) {
3093
3279
  return row == null ? void 0 : row.subRows;
3094
3280
  },
3095
3281
  //@ts-ignore
3096
3282
  globalFilterFn: currentGlobalFilterFn,
3283
+ onColumnOrderChange: setColumnOrder,
3097
3284
  onPaginationChange: function onPaginationChange(updater) {
3098
3285
  return setPagination(function (old) {
3099
3286
  return functionalUpdate(updater, old);
@@ -3106,6 +3293,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3106
3293
  idPrefix: idPrefix,
3107
3294
  initialState: initialState,
3108
3295
  state: _extends({
3296
+ columnOrder: columnOrder,
3109
3297
  currentEditingCell: currentEditingCell,
3110
3298
  currentEditingRow: currentEditingRow,
3111
3299
  currentFilterFns: currentFilterFns,
@@ -3168,18 +3356,26 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3168
3356
  }));
3169
3357
  };
3170
3358
 
3171
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3359
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3172
3360
  var MaterialReactTable = (function (_ref) {
3173
3361
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3174
3362
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
3175
3363
  _ref$columnResizeMode = _ref.columnResizeMode,
3176
3364
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
3365
+ _ref$defaultColumn = _ref.defaultColumn,
3366
+ defaultColumn = _ref$defaultColumn === void 0 ? {
3367
+ minSize: 50,
3368
+ maxSize: 1000,
3369
+ size: 150
3370
+ } : _ref$defaultColumn,
3177
3371
  _ref$editingMode = _ref.editingMode,
3178
3372
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
3179
3373
  _ref$enableColumnActi = _ref.enableColumnActions,
3180
3374
  enableColumnActions = _ref$enableColumnActi === void 0 ? true : _ref$enableColumnActi,
3181
3375
  _ref$enableColumnFilt = _ref.enableColumnFilters,
3182
3376
  enableColumnFilters = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
3377
+ _ref$enableColumnOrde = _ref.enableColumnOrdering,
3378
+ enableColumnOrdering = _ref$enableColumnOrde === void 0 ? false : _ref$enableColumnOrde,
3183
3379
  _ref$enableColumnResi = _ref.enableColumnResizing,
3184
3380
  enableColumnResizing = _ref$enableColumnResi === void 0 ? false : _ref$enableColumnResi,
3185
3381
  _ref$enableDensePaddi = _ref.enableDensePaddingToggle,
@@ -3192,6 +3388,8 @@ var MaterialReactTable = (function (_ref) {
3192
3388
  enableFullScreenToggle = _ref$enableFullScreen === void 0 ? true : _ref$enableFullScreen,
3193
3389
  _ref$enableGlobalFilt = _ref.enableGlobalFilter,
3194
3390
  enableGlobalFilter = _ref$enableGlobalFilt === void 0 ? true : _ref$enableGlobalFilt,
3391
+ _ref$enableGrouping = _ref.enableGrouping,
3392
+ enableGrouping = _ref$enableGrouping === void 0 ? false : _ref$enableGrouping,
3195
3393
  _ref$enableHiding = _ref.enableHiding,
3196
3394
  enableHiding = _ref$enableHiding === void 0 ? true : _ref$enableHiding,
3197
3395
  _ref$enableMultiRowSe = _ref.enableMultiRowSelection,
@@ -3233,15 +3431,18 @@ var MaterialReactTable = (function (_ref) {
3233
3431
  return React.createElement(MRT_TableRoot, Object.assign({
3234
3432
  autoResetExpanded: autoResetExpanded,
3235
3433
  columnResizeMode: columnResizeMode,
3434
+ defaultColumn: defaultColumn,
3236
3435
  editingMode: editingMode,
3237
3436
  enableColumnActions: enableColumnActions,
3238
3437
  enableColumnFilters: enableColumnFilters,
3438
+ enableColumnOrdering: enableColumnOrdering,
3239
3439
  enableColumnResizing: enableColumnResizing,
3240
3440
  enableDensePaddingToggle: enableDensePaddingToggle,
3241
3441
  enableExpandAll: enableExpandAll,
3242
3442
  enableFilters: enableFilters,
3243
3443
  enableFullScreenToggle: enableFullScreenToggle,
3244
3444
  enableGlobalFilter: enableGlobalFilter,
3445
+ enableGrouping: enableGrouping,
3245
3446
  enableHiding: enableHiding,
3246
3447
  enableMultiRowSelection: enableMultiRowSelection,
3247
3448
  enablePagination: enablePagination,