material-react-table 0.6.7 → 0.6.10

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/dist/MaterialReactTable.d.ts +12 -3
  2. package/dist/enums.d.ts +2 -1
  3. package/dist/filtersFNs.d.ts +13 -5
  4. package/dist/localization.d.ts +3 -1
  5. package/dist/material-react-table.cjs.development.js +339 -248
  6. package/dist/material-react-table.cjs.development.js.map +1 -1
  7. package/dist/material-react-table.cjs.production.min.js +1 -1
  8. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  9. package/dist/material-react-table.esm.js +340 -249
  10. package/dist/material-react-table.esm.js.map +1 -1
  11. package/dist/menus/MRT_FilterTypeMenu.d.ts +1 -1
  12. package/dist/useMRT.d.ts +1 -0
  13. package/dist/utils.d.ts +2 -2
  14. package/package.json +1 -1
  15. package/src/MaterialReactTable.tsx +29 -4
  16. package/src/body/MRT_TableBodyCell.tsx +8 -2
  17. package/src/body/MRT_TableBodyRow.tsx +30 -7
  18. package/src/buttons/MRT_CopyButton.tsx +24 -6
  19. package/src/buttons/MRT_ExpandAllButton.tsx +13 -20
  20. package/src/buttons/MRT_ExpandButton.tsx +20 -33
  21. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +19 -1
  22. package/src/enums.ts +2 -1
  23. package/src/filtersFNs.ts +17 -3
  24. package/src/head/MRT_TableHeadCell.tsx +6 -3
  25. package/src/head/MRT_TableHeadRow.tsx +38 -15
  26. package/src/inputs/MRT_EditCellTextField.tsx +0 -6
  27. package/src/inputs/MRT_FilterTextField.tsx +1 -12
  28. package/src/inputs/MRT_SearchTextField.tsx +27 -3
  29. package/src/inputs/MRT_SelectCheckbox.tsx +58 -31
  30. package/src/localization.ts +7 -3
  31. package/src/menus/MRT_ColumnActionMenu.tsx +6 -1
  32. package/src/menus/MRT_FilterTypeMenu.tsx +44 -18
  33. package/src/menus/MRT_ShowHideColumnsMenu.tsx +12 -1
  34. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +1 -1
  35. package/src/table/MRT_TableSpacerCell.tsx +1 -8
  36. package/src/useMRT.tsx +12 -1
  37. package/src/utils.ts +8 -4
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useCallback, useMemo, useContext, createContext, Fragment, useEffect } from 'react';
2
2
  import { useTable, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useResizeColumns, useFlexLayout, useAsyncDebounce } from 'react-table';
3
- import { Menu, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, FormControlLabel, Switch, Box, Button, Divider, ListItemIcon, TableCell, TableSortLabel, Collapse, Skeleton, Checkbox, TableRow, TableHead, TableBody, TableFooter, Table, TablePagination, useMediaQuery, Alert, LinearProgress, Toolbar, alpha, TableContainer, Paper } from '@mui/material';
3
+ import { Menu, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, FormControlLabel, Switch, Box, Button, Divider, ListItemIcon, TableCell, TableSortLabel, Collapse, Checkbox, TableRow, TableHead, Skeleton, TableBody, TableFooter, Table, TablePagination, useMediaQuery, Alert, LinearProgress, Toolbar, alpha, TableContainer, Paper } from '@mui/material';
4
4
  import { matchSorter } from 'match-sorter';
5
5
  import ArrowRightIcon from '@mui/icons-material/ArrowRight';
6
6
  import CancelIcon from '@mui/icons-material/Cancel';
@@ -99,6 +99,22 @@ function _objectWithoutPropertiesLoose(source, excluded) {
99
99
  return target;
100
100
  }
101
101
 
102
+ var MRT_FILTER_TYPE;
103
+
104
+ (function (MRT_FILTER_TYPE) {
105
+ MRT_FILTER_TYPE["BEST_MATCH"] = "bestMatch";
106
+ MRT_FILTER_TYPE["BEST_MATCH_FIRST"] = "bestMatchFirst";
107
+ MRT_FILTER_TYPE["CONTAINS"] = "contains";
108
+ MRT_FILTER_TYPE["EMPTY"] = "empty";
109
+ MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
110
+ MRT_FILTER_TYPE["EQUALS"] = "equals";
111
+ MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
112
+ MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
113
+ MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
114
+ MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
115
+ MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
116
+ })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
117
+
102
118
  var findLowestLevelCols = function findLowestLevelCols(columns) {
103
119
  var lowestLevelColumns = columns;
104
120
  var currentCols = columns;
@@ -160,14 +176,18 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
160
176
 
161
177
  var _useState6 = useState(function () {
162
178
  return Object.assign.apply(Object, [{}].concat(findLowestLevelCols(props.columns).map(function (c) {
163
- var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
179
+ var _ref, _c$filter, _props$initialState5, _props$initialState5$, _c$filterSelectOption, _ref2;
164
180
 
165
- return _ref2 = {}, _ref2[c.accessor] = (_ref = (_c$filter = c.filter) != null ? _c$filter : props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[c.accessor]) != null ? _ref : !!c.filterSelectOptions ? 'equals' : 'fuzzy', _ref2;
181
+ return _ref2 = {}, _ref2[c.accessor] = (_ref = (_c$filter = c.filter) != null ? _c$filter : props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[c.accessor]) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? MRT_FILTER_TYPE.EQUALS : MRT_FILTER_TYPE.BEST_MATCH, _ref2;
166
182
  })));
167
183
  }),
168
184
  currentFilterTypes = _useState6[0],
169
185
  setCurrentFilterTypes = _useState6[1];
170
186
 
187
+ var _useState7 = useState(props.globalFilter),
188
+ currentGlobalFilterType = _useState7[0],
189
+ setCurrentGlobalFilterType = _useState7[1];
190
+
171
191
  var applyFiltersToColumns = useCallback(function (cols) {
172
192
  return cols.map(function (column) {
173
193
  if (column.columns) {
@@ -198,17 +218,19 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
198
218
  // @ts-ignore
199
219
  columns: columns,
200
220
  data: data,
221
+ globalFilter: currentGlobalFilterType,
201
222
  useControlledState: function useControlledState(state) {
202
223
  return useMemo(function () {
203
224
  return _extends({}, state, {
204
225
  currentEditingRow: currentEditingRow,
205
226
  currentFilterTypes: currentFilterTypes,
227
+ currentGlobalFilterType: currentGlobalFilterType,
206
228
  densePadding: densePadding,
207
229
  fullScreen: fullScreen,
208
230
  showFilters: showFilters,
209
231
  showSearch: showSearch
210
232
  }, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
211
- }, [currentEditingRow, currentFilterTypes, densePadding, fullScreen, showFilters, showSearch, state]);
233
+ }, [currentEditingRow, currentFilterTypes, currentGlobalFilterType, densePadding, fullScreen, showFilters, showSearch, state]);
212
234
  }
213
235
  })].concat(hooks));
214
236
  var idPrefix = useMemo(function () {
@@ -234,6 +256,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
234
256
  //@ts-ignore
235
257
  setCurrentEditingRow: setCurrentEditingRow,
236
258
  setCurrentFilterTypes: setCurrentFilterTypes,
259
+ setCurrentGlobalFilterType: setCurrentGlobalFilterType,
237
260
  setDensePadding: setDensePadding,
238
261
  setFullScreen: setFullScreen,
239
262
  setShowFilters: setShowFilters,
@@ -247,22 +270,19 @@ var useMRT = function useMRT() {
247
270
  return useContext(MaterialReactTableContext);
248
271
  };
249
272
 
250
- var MRT_FILTER_TYPE;
273
+ var bestMatchFirst = function bestMatchFirst(rows, columnIds, filterValue) {
274
+ return matchSorter(rows, filterValue.toString().trim(), {
275
+ keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
276
+ return "values." + c;
277
+ }) : ["values." + columnIds]
278
+ });
279
+ };
251
280
 
252
- (function (MRT_FILTER_TYPE) {
253
- MRT_FILTER_TYPE["CONTAINS"] = "contains";
254
- MRT_FILTER_TYPE["EMPTY"] = "empty";
255
- MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
256
- MRT_FILTER_TYPE["EQUALS"] = "equals";
257
- MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
258
- MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
259
- MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
260
- MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
261
- MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
262
- MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
263
- })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
281
+ bestMatchFirst.autoRemove = function (val) {
282
+ return !val;
283
+ };
264
284
 
265
- var fuzzy = function fuzzy(rows, columnIds, filterValue) {
285
+ var bestMatch = function bestMatch(rows, columnIds, filterValue) {
266
286
  return matchSorter(rows, filterValue.toString().trim(), {
267
287
  keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
268
288
  return "values." + c;
@@ -273,7 +293,7 @@ var fuzzy = function fuzzy(rows, columnIds, filterValue) {
273
293
  });
274
294
  };
275
295
 
276
- fuzzy.autoRemove = function (val) {
296
+ bestMatch.autoRemove = function (val) {
277
297
  return !val;
278
298
  };
279
299
 
@@ -368,11 +388,12 @@ notEmpty.autoRemove = function (val) {
368
388
  };
369
389
 
370
390
  var defaultFilterFNs = {
391
+ bestMatch: bestMatch,
392
+ bestMatchFirst: bestMatchFirst,
371
393
  contains: contains,
372
394
  empty: empty,
373
395
  endsWith: endsWith,
374
396
  equals: equals,
375
- fuzzy: fuzzy,
376
397
  greaterThan: greaterThan,
377
398
  lessThan: lessThan,
378
399
  notEmpty: notEmpty,
@@ -392,20 +413,27 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
392
413
  setAnchorEl = _ref.setAnchorEl;
393
414
 
394
415
  var _useMRT = useMRT(),
416
+ enabledGlobalFilterTypes = _useMRT.enabledGlobalFilterTypes,
395
417
  localization = _useMRT.localization,
396
418
  setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
419
+ setCurrentGlobalFilterType = _useMRT.setCurrentGlobalFilterType,
397
420
  tableInstance = _useMRT.tableInstance;
398
421
 
399
422
  var filterTypes = useMemo(function () {
400
423
  return [{
401
- type: MRT_FILTER_TYPE.FUZZY,
402
- label: localization.filterFuzzy,
424
+ type: MRT_FILTER_TYPE.BEST_MATCH_FIRST,
425
+ label: localization.filterBestMatchFirst,
403
426
  divider: false,
404
- fn: fuzzy
427
+ fn: bestMatchFirst
428
+ }, {
429
+ type: MRT_FILTER_TYPE.BEST_MATCH,
430
+ label: localization.filterBestMatch,
431
+ divider: !!column,
432
+ fn: bestMatch
405
433
  }, {
406
434
  type: MRT_FILTER_TYPE.CONTAINS,
407
435
  label: localization.filterContains,
408
- divider: true,
436
+ divider: false,
409
437
  fn: contains
410
438
  }, {
411
439
  type: MRT_FILTER_TYPE.STARTS_WITH,
@@ -448,26 +476,30 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
448
476
  divider: false,
449
477
  fn: notEmpty
450
478
  }].filter(function (filterType) {
451
- return !column.filterTypes || column.filterTypes.includes(filterType.type);
479
+ return column ? !column.enabledFilterTypes || column.enabledFilterTypes.includes(filterType.type) : (!enabledGlobalFilterTypes || enabledGlobalFilterTypes.includes(filterType.type)) && [MRT_FILTER_TYPE.BEST_MATCH_FIRST, MRT_FILTER_TYPE.BEST_MATCH].includes(filterType.type);
452
480
  });
453
481
  }, []);
454
482
 
455
483
  var handleSelectFilterType = function handleSelectFilterType(value) {
456
- setAnchorEl(null);
457
- setCurrentFilterTypes(function (prev) {
458
- var _extends2;
484
+ if (column) {
485
+ setCurrentFilterTypes(function (prev) {
486
+ var _extends2;
459
487
 
460
- return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
461
- });
488
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
489
+ });
462
490
 
463
- if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
464
- column.setFilter(' ');
491
+ if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
492
+ column.setFilter(' ');
493
+ }
494
+ } else {
495
+ setCurrentGlobalFilterType(value);
465
496
  }
466
497
 
498
+ setAnchorEl(null);
467
499
  onSelect == null ? void 0 : onSelect();
468
500
  };
469
501
 
470
- var filterType = tableInstance.state.currentFilterTypes[column.id];
502
+ var filterType = column ? tableInstance.state.currentFilterTypes[column.id] : tableInstance.state.currentGlobalFilterType;
471
503
  return React.createElement(Menu, {
472
504
  anchorEl: anchorEl,
473
505
  anchorOrigin: {
@@ -521,9 +553,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
521
553
  var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
522
554
  var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
523
555
 
524
- var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
525
- style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
526
- });
556
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps);
527
557
 
528
558
  var _useState2 = useState(''),
529
559
  filterValue = _useState2[0],
@@ -548,7 +578,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
548
578
  setCurrentFilterTypes(function (prev) {
549
579
  var _extends2;
550
580
 
551
- return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = MRT_FILTER_TYPE.FUZZY, _extends2));
581
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = MRT_FILTER_TYPE.BEST_MATCH, _extends2));
552
582
  });
553
583
  };
554
584
 
@@ -587,13 +617,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
587
617
  }
588
618
  },
589
619
  label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
590
- InputLabelProps: {
591
- shrink: false,
592
- sx: {
593
- maxWidth: 'calc(100% - 2.5rem)'
594
- },
595
- title: filterPlaceholder
596
- },
597
620
  margin: "none",
598
621
  placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
599
622
  onChange: function onChange(e) {
@@ -726,7 +749,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
726
749
  },
727
750
  checked: switchChecked,
728
751
  control: React.createElement(Switch, null),
729
- disabled: isSubMenu && switchChecked,
752
+ disabled: isSubMenu && switchChecked || column.disableColumnHiding,
730
753
  label: column.Header,
731
754
  onChange: function onChange() {
732
755
  return handleToggleColumnHidden(column);
@@ -749,6 +772,14 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
749
772
  localization = _useMRT.localization,
750
773
  tableInstance = _useMRT.tableInstance;
751
774
 
775
+ var hideAllColumns = function hideAllColumns() {
776
+ findLowestLevelCols(tableInstance.columns).filter(function (col) {
777
+ return !col.disableColumnHiding;
778
+ }).forEach(function (col) {
779
+ return col.toggleHidden(true);
780
+ });
781
+ };
782
+
752
783
  return React.createElement(Menu, {
753
784
  anchorEl: anchorEl,
754
785
  open: !!anchorEl,
@@ -767,9 +798,7 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
767
798
  }
768
799
  }, !isSubMenu && React.createElement(Button, {
769
800
  disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
770
- onClick: function onClick() {
771
- return tableInstance.toggleHideAllColumns(true);
772
- }
801
+ onClick: hideAllColumns
773
802
  }, localization.hideAll), React.createElement(Button, {
774
803
  disabled: tableInstance.getToggleHideAllColumnsProps().checked,
775
804
  onClick: function onClick() {
@@ -954,6 +983,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
954
983
  }, React.createElement(Box, {
955
984
  sx: commonListItemStyles
956
985
  }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.isGrouped ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React.createElement(MenuItem, {
986
+ disabled: column.disableColumnHiding,
957
987
  key: 0,
958
988
  onClick: handleHideColumn,
959
989
  sx: commonMenuItemStyles$1
@@ -985,8 +1015,9 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
985
1015
  var column = _ref.column;
986
1016
 
987
1017
  var _useMRT = useMRT(),
1018
+ MoreVertIcon = _useMRT.icons.MoreVertIcon,
988
1019
  localization = _useMRT.localization,
989
- MoreVertIcon = _useMRT.icons.MoreVertIcon;
1020
+ muiTableHeadCellColumnActionsButtonProps = _useMRT.muiTableHeadCellColumnActionsButtonProps;
990
1021
 
991
1022
  var _useState = useState(null),
992
1023
  anchorEl = _useState[0],
@@ -998,17 +1029,23 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
998
1029
  setAnchorEl(event.currentTarget);
999
1030
  };
1000
1031
 
1032
+ var mTableHeadCellColumnActionsButtonProps = muiTableHeadCellColumnActionsButtonProps instanceof Function ? muiTableHeadCellColumnActionsButtonProps(column) : muiTableHeadCellColumnActionsButtonProps;
1033
+ var mcTableHeadCellColumnActionsButtonProps = column.muiTableHeadCellColumnActionsButtonProps instanceof Function ? column.muiTableHeadCellColumnActionsButtonProps(column) : column.muiTableHeadCellColumnActionsButtonProps;
1034
+
1035
+ var iconButtonProps = _extends({}, mTableHeadCellColumnActionsButtonProps, mcTableHeadCellColumnActionsButtonProps);
1036
+
1001
1037
  return React.createElement(React.Fragment, null, React.createElement(Tooltip, {
1002
1038
  arrow: true,
1003
1039
  enterDelay: 1000,
1004
1040
  enterNextDelay: 1000,
1005
1041
  placement: "top",
1006
1042
  title: localization.columnActions
1007
- }, React.createElement(IconButton, {
1043
+ }, React.createElement(IconButton, Object.assign({
1008
1044
  "aria-label": localization.columnActions,
1009
1045
  onClick: handleClick,
1010
- size: "small",
1011
- sx: {
1046
+ size: "small"
1047
+ }, iconButtonProps, {
1048
+ sx: _extends({
1012
1049
  height: '2rem',
1013
1050
  mr: '2px',
1014
1051
  mt: '-0.2rem',
@@ -1018,8 +1055,8 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
1018
1055
  '&:hover': {
1019
1056
  opacity: 1
1020
1057
  }
1021
- }
1022
- }, React.createElement(MoreVertIcon, null))), React.createElement(MRT_ColumnActionMenu, {
1058
+ }, iconButtonProps.sx)
1059
+ }), React.createElement(MoreVertIcon, null))), React.createElement(MRT_ColumnActionMenu, {
1023
1060
  anchorEl: anchorEl,
1024
1061
  column: column,
1025
1062
  setAnchorEl: setAnchorEl
@@ -1064,7 +1101,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1064
1101
  var sortTooltip = column.isSorted ? column.isSortedDesc ? localization.clearSort : (_localization$sortByC = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC.replace('{column}', column.Header) : (_localization$sortByC2 = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC2.replace('{column}', column.Header);
1065
1102
  var filterType = tableInstance.state.currentFilterTypes[column.id];
1066
1103
  var filterTooltip = !!column.filterValue ? localization.filteringByColumn.replace('{column}', String(column.Header)).replace('{filterType}', filterType instanceof Function ? '' : // @ts-ignore
1067
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]).replace('{filterValue}', column.filterValue) : localization.showHideFilters;
1104
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]).replace('{filterValue}', column.filterValue).replace('" "', '') : localization.showHideFilters;
1068
1105
  var columnHeader = column.render('Header');
1069
1106
  return React.createElement(TableCell, Object.assign({
1070
1107
  align: isParentHeader ? 'center' : 'left'
@@ -1128,7 +1165,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1128
1165
  display: 'flex',
1129
1166
  flexWrap: 'nowrap'
1130
1167
  }
1131
- }, !disableColumnActions && !isParentHeader && React.createElement(MRT_ToggleColumnActionMenuButton, {
1168
+ }, !disableColumnActions && !column.disableColumnActions && !isParentHeader && React.createElement(MRT_ToggleColumnActionMenuButton, {
1132
1169
  column: column
1133
1170
  }), enableColumnResizing && !isParentHeader && React.createElement(Divider, Object.assign({
1134
1171
  flexItem: true,
@@ -1149,174 +1186,42 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1149
1186
  })));
1150
1187
  };
1151
1188
 
1152
- var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
1153
- var _cell$column$muiTable;
1154
-
1155
- var cell = _ref.cell;
1156
-
1157
- var _useMRT = useMRT(),
1158
- muiTableBodyCellEditTextFieldProps = _useMRT.muiTableBodyCellEditTextFieldProps,
1159
- setCurrentEditingRow = _useMRT.setCurrentEditingRow,
1160
- currentEditingRow = _useMRT.tableInstance.state.currentEditingRow;
1161
-
1162
- var handleChange = function handleChange(event) {
1163
- if (currentEditingRow) {
1164
- cell.row.values[cell.column.id] = event.target.value;
1165
- setCurrentEditingRow(_extends({}, currentEditingRow));
1166
- }
1167
-
1168
- cell.column.onCellEditChange == null ? void 0 : cell.column.onCellEditChange(event, cell);
1169
- };
1170
-
1171
- var mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function ? muiTableBodyCellEditTextFieldProps(cell) : muiTableBodyCellEditTextFieldProps;
1172
- var mcTableBodyCellEditTextFieldProps = cell.column.muiTableBodyCellEditTextFieldProps instanceof Function ? cell.column.muiTableBodyCellEditTextFieldProps(cell) : cell.column.muiTableBodyCellEditTextFieldProps;
1173
-
1174
- var textFieldProps = _extends({}, mTableBodyCellEditTextFieldProps, mcTableBodyCellEditTextFieldProps, {
1175
- style: _extends({}, muiTableBodyCellEditTextFieldProps == null ? void 0 : muiTableBodyCellEditTextFieldProps.style, (_cell$column$muiTable = cell.column.muiTableBodyCellEditTextFieldProps) == null ? void 0 : _cell$column$muiTable.style)
1176
- });
1177
-
1178
- if (!cell.column.disableEditing && cell.column.Edit) {
1179
- return React.createElement(React.Fragment, null, cell.column.Edit(_extends({}, textFieldProps, {
1180
- cell: cell
1181
- })));
1182
- }
1183
-
1184
- return React.createElement(TextField, Object.assign({
1185
- margin: "dense",
1186
- onChange: handleChange,
1187
- onClick: function onClick(e) {
1188
- return e.stopPropagation();
1189
- },
1190
- placeholder: cell.column.Header,
1191
- value: cell.value,
1192
- variant: "standard"
1193
- }, textFieldProps));
1194
- };
1195
-
1196
- var MRT_CopyButton = function MRT_CopyButton(_ref) {
1197
- var cell = _ref.cell;
1198
-
1199
- var _useMRT = useMRT(),
1200
- localization = _useMRT.localization;
1201
-
1202
- var _useState = useState(false),
1203
- copied = _useState[0],
1204
- setCopied = _useState[1];
1205
-
1206
- var handleCopy = function handleCopy(text) {
1207
- navigator.clipboard.writeText(text);
1208
- setCopied(true);
1209
- setTimeout(function () {
1210
- return setCopied(false);
1211
- }, 4000);
1212
- };
1213
-
1214
- return React.createElement(Tooltip, {
1215
- arrow: true,
1216
- enterDelay: 1000,
1217
- enterNextDelay: 1000,
1218
- placement: "top",
1219
- title: copied ? localization.copiedToClipboard : localization.clickToCopy
1220
- }, React.createElement(Button, {
1221
- "aria-label": localization.clickToCopy,
1222
- onClick: function onClick() {
1223
- return handleCopy(cell.value);
1224
- },
1225
- size: "small",
1226
- sx: {
1227
- backgroundColor: 'transparent',
1228
- color: 'inherit',
1229
- letterSpacing: 'inherit',
1230
- fontFamily: 'inherit',
1231
- fontSize: 'inherit',
1232
- m: '-0.25rem',
1233
- textTransform: 'inherit',
1234
- textAlign: 'inherit',
1235
- minWidth: 'unset'
1236
- },
1237
- variant: "text"
1238
- }, cell.render('Cell')));
1239
- };
1240
-
1241
- var commonTableBodyCellStyles = function commonTableBodyCellStyles(densePadding) {
1242
- return {
1243
- p: densePadding ? '0.5rem' : '1rem',
1244
- transition: 'all 0.2s ease-in-out',
1245
- whiteSpace: densePadding ? 'nowrap' : 'normal'
1246
- };
1247
- };
1248
- var commonTableBodyButtonCellStyles = function commonTableBodyButtonCellStyles(densePadding) {
1249
- return {
1250
- p: densePadding ? '1px' : '0.6rem',
1251
- textAlign: 'center',
1252
- transition: 'all 0.2s ease-in-out'
1253
- };
1254
- };
1255
- var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
1256
- var cell = _ref.cell;
1257
-
1258
- var _useMRT = useMRT(),
1259
- enableClickToCopy = _useMRT.enableClickToCopy,
1260
- isLoading = _useMRT.isLoading,
1261
- muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
1262
- muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
1263
- onCellClick = _useMRT.onCellClick,
1264
- _useMRT$tableInstance = _useMRT.tableInstance.state,
1265
- currentEditingRow = _useMRT$tableInstance.currentEditingRow,
1266
- densePadding = _useMRT$tableInstance.densePadding;
1267
-
1268
- var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps(cell) : muiTableBodyCellProps;
1269
- var mcTableCellBodyProps = cell.column.muiTableBodyCellProps instanceof Function ? cell.column.muiTableBodyCellProps(cell) : cell.column.muiTableBodyCellProps;
1270
-
1271
- var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps, cell.getCellProps(), {
1272
- style: _extends({}, cell.getCellProps().style, mTableCellBodyProps == null ? void 0 : mTableCellBodyProps.style, mcTableCellBodyProps == null ? void 0 : mcTableCellBodyProps.style)
1273
- });
1274
-
1275
- return React.createElement(TableCell, Object.assign({
1276
- onClick: function onClick(event) {
1277
- return onCellClick == null ? void 0 : onCellClick(event, cell);
1278
- }
1279
- }, tableCellProps, {
1280
- sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
1281
- }), isLoading ? React.createElement(Skeleton, Object.assign({
1282
- animation: "wave",
1283
- height: 20,
1284
- width: Math.random() * (120 - 60) + 60
1285
- }, muiTableBodyCellSkeletonProps)) : !cell.column.disableEditing && (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React.createElement(MRT_EditCellTextField, {
1286
- cell: cell
1287
- }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : enableClickToCopy && !cell.column.disableClickToCopy ? React.createElement(MRT_CopyButton, {
1288
- cell: cell
1289
- }) : cell.render('Cell'));
1290
- };
1291
-
1292
1189
  var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1293
1190
  var row = _ref.row,
1294
1191
  selectAll = _ref.selectAll;
1295
1192
 
1296
1193
  var _useMRT = useMRT(),
1297
1194
  localization = _useMRT.localization,
1298
- onRowSelectChange = _useMRT.onRowSelectChange,
1195
+ muiSelectCheckboxProps = _useMRT.muiSelectCheckboxProps,
1196
+ onSelectChange = _useMRT.onSelectChange,
1299
1197
  onSelectAllChange = _useMRT.onSelectAllChange,
1300
- tableInstance = _useMRT.tableInstance;
1198
+ tableInstance = _useMRT.tableInstance,
1199
+ densePadding = _useMRT.tableInstance.state.densePadding;
1301
1200
 
1302
- var onSelectChange = function onSelectChange(event) {
1201
+ var handleSelectChange = function handleSelectChange(event) {
1303
1202
  if (selectAll) {
1304
1203
  var _tableInstance$getTog;
1305
1204
 
1306
1205
  tableInstance == null ? void 0 : tableInstance.getToggleAllRowsSelectedProps == null ? void 0 : (_tableInstance$getTog = tableInstance.getToggleAllRowsSelectedProps()) == null ? void 0 : _tableInstance$getTog.onChange == null ? void 0 : _tableInstance$getTog.onChange(event);
1307
- onSelectAllChange == null ? void 0 : onSelectAllChange(event, tableInstance.selectedFlatRows);
1206
+ onSelectAllChange == null ? void 0 : onSelectAllChange(event, event.target.checked ? tableInstance.rows : []);
1308
1207
  } else if (row) {
1309
1208
  var _row$getToggleRowSele;
1310
1209
 
1311
1210
  row == null ? void 0 : (_row$getToggleRowSele = row.getToggleRowSelectedProps()) == null ? void 0 : _row$getToggleRowSele.onChange == null ? void 0 : _row$getToggleRowSele.onChange(event);
1312
- onRowSelectChange == null ? void 0 : onRowSelectChange(event, row, tableInstance.selectedFlatRows);
1211
+ onSelectChange == null ? void 0 : onSelectChange(event, row, event.target.checked ? [].concat(tableInstance.selectedFlatRows, [row]) : tableInstance.selectedFlatRows.filter(function (selectedRow) {
1212
+ return selectedRow.id !== row.id;
1213
+ }));
1313
1214
  }
1314
1215
  };
1315
1216
 
1316
- var checkboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
1317
- return React.createElement(TableCell, {
1318
- sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
1319
- }, React.createElement(Tooltip, {
1217
+ var mTableBodyRowSelectCheckboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps(selectAll, row, tableInstance) : muiSelectCheckboxProps;
1218
+ var rtSelectCheckboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
1219
+
1220
+ var checkboxProps = _extends({}, mTableBodyRowSelectCheckboxProps, rtSelectCheckboxProps, {
1221
+ style: _extends({}, rtSelectCheckboxProps == null ? void 0 : rtSelectCheckboxProps.style, mTableBodyRowSelectCheckboxProps == null ? void 0 : mTableBodyRowSelectCheckboxProps.style)
1222
+ });
1223
+
1224
+ return React.createElement(Tooltip, {
1320
1225
  arrow: true,
1321
1226
  enterDelay: 1000,
1322
1227
  enterNextDelay: 1000,
@@ -1325,10 +1230,11 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1325
1230
  inputProps: {
1326
1231
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1327
1232
  },
1328
- onChange: onSelectChange
1233
+ size: densePadding ? 'small' : 'medium'
1329
1234
  }, checkboxProps, {
1235
+ onChange: handleSelectChange,
1330
1236
  title: undefined
1331
- }))));
1237
+ })));
1332
1238
  };
1333
1239
 
1334
1240
  var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
@@ -1338,11 +1244,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
1338
1244
  localization = _useMRT.localization,
1339
1245
  tableInstance = _useMRT.tableInstance;
1340
1246
 
1341
- return React.createElement(TableCell, Object.assign({
1342
- size: "small"
1343
- }, tableInstance.getToggleAllRowsExpandedProps(), {
1344
- sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
1345
- }), React.createElement(IconButton, {
1247
+ return React.createElement(IconButton, {
1346
1248
  "aria-label": localization.expandAll,
1347
1249
  title: localization.expandAll
1348
1250
  }, React.createElement(DoubleArrowDownIcon, {
@@ -1350,7 +1252,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
1350
1252
  transform: "rotate(" + (tableInstance.isAllRowsExpanded ? -180 : anyRowsExpanded ? -90 : 0) + "deg)",
1351
1253
  transition: 'transform 0.2s'
1352
1254
  }
1353
- })));
1255
+ }));
1354
1256
  };
1355
1257
 
1356
1258
  var MRT_TableSpacerCell = function MRT_TableSpacerCell(_ref) {
@@ -1359,12 +1261,7 @@ var MRT_TableSpacerCell = function MRT_TableSpacerCell(_ref) {
1359
1261
  var _useMRT = useMRT(),
1360
1262
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps;
1361
1263
 
1362
- var mTableBodyCellrops = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps() : muiTableBodyCellProps;
1363
-
1364
- var tableCellProps = _extends({}, mTableBodyCellrops, {
1365
- style: _extends({}, mTableBodyCellrops == null ? void 0 : mTableBodyCellrops.style)
1366
- });
1367
-
1264
+ var tableCellProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps() : muiTableBodyCellProps;
1368
1265
  return React.createElement(TableCell, Object.assign({}, tableCellProps, {
1369
1266
  sx: _extends({
1370
1267
  width: width
@@ -1395,6 +1292,7 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
1395
1292
  var _useMRT = useMRT(),
1396
1293
  anyRowsCanExpand = _useMRT.anyRowsCanExpand,
1397
1294
  disableExpandAll = _useMRT.disableExpandAll,
1295
+ disableSelectAll = _useMRT.disableSelectAll,
1398
1296
  enableRowActions = _useMRT.enableRowActions,
1399
1297
  enableRowEditing = _useMRT.enableRowEditing,
1400
1298
  enableRowNumbers = _useMRT.enableRowNumbers,
@@ -1417,15 +1315,32 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
1417
1315
  style: _extends({}, headerGroup.getHeaderGroupProps().style, mTableHeadRowProps == null ? void 0 : mTableHeadRowProps.style)
1418
1316
  });
1419
1317
 
1420
- return React.createElement(TableRow, Object.assign({}, tableRowProps), enableRowNumbers && (isParentHeader ? React.createElement(MRT_TableSpacerCell, null) : React.createElement(TableCell, {
1421
- sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding))
1422
- }, "#")), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && (isParentHeader ? React.createElement(MRT_TableSpacerCell, null) : React.createElement(MRT_TableHeadCellActions, null)), anyRowsCanExpand || renderDetailPanel ? !disableExpandAll && !isParentHeader ? React.createElement(MRT_ExpandAllButton, null) : React.createElement(MRT_TableSpacerCell, {
1318
+ return React.createElement(TableRow, Object.assign({}, tableRowProps), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && (isParentHeader ? React.createElement(MRT_TableSpacerCell, null) : React.createElement(MRT_TableHeadCellActions, null)), anyRowsCanExpand || renderDetailPanel ? !disableExpandAll && !isParentHeader ? React.createElement(TableCell, Object.assign({
1319
+ size: "small"
1320
+ }, tableInstance.getToggleAllRowsExpandedProps(), {
1321
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding), {
1322
+ width: '3rem',
1323
+ maxWidth: '3rem',
1324
+ textAlign: 'center'
1325
+ })
1326
+ }), React.createElement(MRT_ExpandAllButton, null)) : React.createElement(MRT_TableSpacerCell, {
1423
1327
  width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
1424
- }) : null, enableSelection ? !isParentHeader ? React.createElement(MRT_SelectCheckbox, {
1328
+ }) : null, enableSelection ? !isParentHeader && !disableSelectAll ? React.createElement(TableCell, {
1329
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding), {
1330
+ maxWidth: '3rem',
1331
+ width: '3rem',
1332
+ textAlign: 'center'
1333
+ })
1334
+ }, React.createElement(MRT_SelectCheckbox, {
1425
1335
  selectAll: true
1426
- }) : React.createElement(MRT_TableSpacerCell, {
1336
+ })) : React.createElement(MRT_TableSpacerCell, {
1427
1337
  width: "1rem"
1428
- }) : null, headerGroup.headers.map(function (column) {
1338
+ }) : null, enableRowNumbers && (isParentHeader ? React.createElement(MRT_TableSpacerCell, null) : React.createElement(TableCell, {
1339
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding), {
1340
+ width: '2rem',
1341
+ maxWidth: '2rem'
1342
+ })
1343
+ }, "#")), headerGroup.headers.map(function (column) {
1429
1344
  return React.createElement(MRT_TableHeadCell, {
1430
1345
  key: column.getHeaderProps().key,
1431
1346
  column: column
@@ -1447,6 +1362,153 @@ var MRT_TableHead = function MRT_TableHead() {
1447
1362
  }));
1448
1363
  };
1449
1364
 
1365
+ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
1366
+ var cell = _ref.cell;
1367
+
1368
+ var _useMRT = useMRT(),
1369
+ muiTableBodyCellEditTextFieldProps = _useMRT.muiTableBodyCellEditTextFieldProps,
1370
+ setCurrentEditingRow = _useMRT.setCurrentEditingRow,
1371
+ currentEditingRow = _useMRT.tableInstance.state.currentEditingRow;
1372
+
1373
+ var handleChange = function handleChange(event) {
1374
+ if (currentEditingRow) {
1375
+ cell.row.values[cell.column.id] = event.target.value;
1376
+ setCurrentEditingRow(_extends({}, currentEditingRow));
1377
+ }
1378
+
1379
+ cell.column.onCellEditChange == null ? void 0 : cell.column.onCellEditChange(event, cell);
1380
+ };
1381
+
1382
+ var mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function ? muiTableBodyCellEditTextFieldProps(cell) : muiTableBodyCellEditTextFieldProps;
1383
+ var mcTableBodyCellEditTextFieldProps = cell.column.muiTableBodyCellEditTextFieldProps instanceof Function ? cell.column.muiTableBodyCellEditTextFieldProps(cell) : cell.column.muiTableBodyCellEditTextFieldProps;
1384
+
1385
+ var textFieldProps = _extends({}, mTableBodyCellEditTextFieldProps, mcTableBodyCellEditTextFieldProps);
1386
+
1387
+ if (!cell.column.disableEditing && cell.column.Edit) {
1388
+ return React.createElement(React.Fragment, null, cell.column.Edit(_extends({}, textFieldProps, {
1389
+ cell: cell
1390
+ })));
1391
+ }
1392
+
1393
+ return React.createElement(TextField, Object.assign({
1394
+ margin: "dense",
1395
+ onChange: handleChange,
1396
+ onClick: function onClick(e) {
1397
+ return e.stopPropagation();
1398
+ },
1399
+ placeholder: cell.column.Header,
1400
+ value: cell.value,
1401
+ variant: "standard"
1402
+ }, textFieldProps));
1403
+ };
1404
+
1405
+ var MRT_CopyButton = function MRT_CopyButton(_ref) {
1406
+ var cell = _ref.cell,
1407
+ children = _ref.children;
1408
+
1409
+ var _useMRT = useMRT(),
1410
+ localization = _useMRT.localization,
1411
+ muiTableBodyCellCopyButtonProps = _useMRT.muiTableBodyCellCopyButtonProps;
1412
+
1413
+ var _useState = useState(false),
1414
+ copied = _useState[0],
1415
+ setCopied = _useState[1];
1416
+
1417
+ var handleCopy = function handleCopy(text) {
1418
+ navigator.clipboard.writeText(text);
1419
+ setCopied(true);
1420
+ setTimeout(function () {
1421
+ return setCopied(false);
1422
+ }, 4000);
1423
+ };
1424
+
1425
+ var mTableBodyCellCopyButtonProps = muiTableBodyCellCopyButtonProps instanceof Function ? muiTableBodyCellCopyButtonProps(cell) : muiTableBodyCellCopyButtonProps;
1426
+ var mcTableBodyCellCopyButtonProps = cell.column.muiTableBodyCellCopyButtonProps instanceof Function ? cell.column.muiTableBodyCellCopyButtonProps(cell) : cell.column.muiTableBodyCellCopyButtonProps;
1427
+
1428
+ var buttonProps = _extends({}, mTableBodyCellCopyButtonProps, mcTableBodyCellCopyButtonProps);
1429
+
1430
+ return React.createElement(Tooltip, {
1431
+ arrow: true,
1432
+ enterDelay: 1000,
1433
+ enterNextDelay: 1000,
1434
+ placement: "top",
1435
+ title: copied ? localization.copiedToClipboard : localization.clickToCopy
1436
+ }, React.createElement(Button, Object.assign({
1437
+ "aria-label": localization.clickToCopy,
1438
+ onClick: function onClick() {
1439
+ return handleCopy(cell.value);
1440
+ },
1441
+ size: "small"
1442
+ }, buttonProps, {
1443
+ sx: _extends({
1444
+ backgroundColor: 'transparent',
1445
+ border: 'none',
1446
+ color: 'inherit',
1447
+ fontFamily: 'inherit',
1448
+ fontSize: 'inherit',
1449
+ letterSpacing: 'inherit',
1450
+ m: '-0.25rem',
1451
+ minWidth: 'unset',
1452
+ textAlign: 'inherit',
1453
+ textTransform: 'inherit'
1454
+ }, buttonProps == null ? void 0 : buttonProps.sx),
1455
+ variant: "text"
1456
+ }), children));
1457
+ };
1458
+
1459
+ var commonTableBodyCellStyles = function commonTableBodyCellStyles(densePadding) {
1460
+ return {
1461
+ p: densePadding ? '0.5rem' : '1rem',
1462
+ transition: 'all 0.2s ease-in-out',
1463
+ whiteSpace: densePadding ? 'nowrap' : 'normal'
1464
+ };
1465
+ };
1466
+ var commonTableBodyButtonCellStyles = function commonTableBodyButtonCellStyles(densePadding) {
1467
+ return {
1468
+ p: densePadding ? '1px' : '0.6rem',
1469
+ textAlign: 'center',
1470
+ transition: 'all 0.2s ease-in-out'
1471
+ };
1472
+ };
1473
+ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
1474
+ var cell = _ref.cell;
1475
+
1476
+ var _useMRT = useMRT(),
1477
+ enableClickToCopy = _useMRT.enableClickToCopy,
1478
+ isLoading = _useMRT.isLoading,
1479
+ muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
1480
+ muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
1481
+ onCellClick = _useMRT.onCellClick,
1482
+ _useMRT$tableInstance = _useMRT.tableInstance.state,
1483
+ currentEditingRow = _useMRT$tableInstance.currentEditingRow,
1484
+ densePadding = _useMRT$tableInstance.densePadding;
1485
+
1486
+ var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps(cell) : muiTableBodyCellProps;
1487
+ var mcTableCellBodyProps = cell.column.muiTableBodyCellProps instanceof Function ? cell.column.muiTableBodyCellProps(cell) : cell.column.muiTableBodyCellProps;
1488
+
1489
+ var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps, cell.getCellProps(), {
1490
+ style: _extends({}, cell.getCellProps().style, mTableCellBodyProps == null ? void 0 : mTableCellBodyProps.style, mcTableCellBodyProps == null ? void 0 : mcTableCellBodyProps.style)
1491
+ });
1492
+
1493
+ return React.createElement(TableCell, Object.assign({
1494
+ onClick: function onClick(event) {
1495
+ return onCellClick == null ? void 0 : onCellClick(event, cell);
1496
+ }
1497
+ }, tableCellProps, {
1498
+ sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
1499
+ }), isLoading ? React.createElement(Skeleton, Object.assign({
1500
+ animation: "wave",
1501
+ height: 20,
1502
+ width: Math.random() * (120 - 60) + 60
1503
+ }, muiTableBodyCellSkeletonProps)) : !cell.column.disableEditing && (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React.createElement(MRT_EditCellTextField, {
1504
+ cell: cell
1505
+ }) : cell.isPlaceholder ? null : cell.isAggregated ? enableClickToCopy && !cell.column.disableClickToCopy ? React.createElement(MRT_CopyButton, {
1506
+ cell: cell
1507
+ }, cell.render('Aggregated')) : cell.render('Aggregated') : cell.isGrouped ? React.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : enableClickToCopy && !cell.column.disableClickToCopy ? React.createElement(MRT_CopyButton, {
1508
+ cell: cell
1509
+ }, cell.render('Cell')) : cell.render('Cell'));
1510
+ };
1511
+
1450
1512
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
1451
1513
  var row = _ref.row;
1452
1514
 
@@ -1483,8 +1545,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
1483
1545
  ExpandMoreIcon = _useMRT.icons.ExpandMoreIcon,
1484
1546
  localization = _useMRT.localization,
1485
1547
  onRowExpandChange = _useMRT.onRowExpandChange,
1486
- renderDetailPanel = _useMRT.renderDetailPanel,
1487
- densePadding = _useMRT.tableInstance.state.densePadding;
1548
+ renderDetailPanel = _useMRT.renderDetailPanel;
1488
1549
 
1489
1550
  var handleToggleExpand = function handleToggleExpand(event) {
1490
1551
  var _row$getToggleRowExpa;
@@ -1494,13 +1555,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
1494
1555
  onRowExpandChange == null ? void 0 : onRowExpandChange(event, row);
1495
1556
  };
1496
1557
 
1497
- return React.createElement(TableCell, {
1498
- size: "small",
1499
- sx: _extends({}, commonTableBodyButtonCellStyles(densePadding), {
1500
- pl: row.depth + 0.5 + "rem",
1501
- textAlign: 'left'
1502
- })
1503
- }, React.createElement(IconButton, Object.assign({
1558
+ return React.createElement(IconButton, Object.assign({
1504
1559
  "aria-label": localization.expand,
1505
1560
  disabled: !row.canExpand && !renderDetailPanel,
1506
1561
  title: localization.expand
@@ -1511,7 +1566,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
1511
1566
  transform: "rotate(" + (!row.canExpand && !renderDetailPanel ? -90 : row.isExpanded ? -180 : 0) + "deg)",
1512
1567
  transition: 'transform 0.2s'
1513
1568
  }
1514
- })));
1569
+ }));
1515
1570
  };
1516
1571
 
1517
1572
  var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
@@ -2454,6 +2509,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2454
2509
  onRowClick = _useMRT.onRowClick,
2455
2510
  positionActionsColumn = _useMRT.positionActionsColumn,
2456
2511
  renderDetailPanel = _useMRT.renderDetailPanel,
2512
+ tableInstance = _useMRT.tableInstance,
2457
2513
  densePadding = _useMRT.tableInstance.state.densePadding;
2458
2514
 
2459
2515
  var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps(row) : muiTableBodyRowProps;
@@ -2468,15 +2524,26 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2468
2524
  return onRowClick == null ? void 0 : onRowClick(event, row);
2469
2525
  },
2470
2526
  selected: row.isSelected
2471
- }, tableRowProps), enableRowNumbers && React.createElement(TableCell, {
2472
- sx: _extends({}, commonTableBodyCellStyles(densePadding))
2473
- }, row.index + 1), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && React.createElement(MRT_ToggleRowActionMenuButton, {
2527
+ }, tableRowProps), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && React.createElement(MRT_ToggleRowActionMenuButton, {
2474
2528
  row: row
2475
- }), (anyRowsCanExpand || renderDetailPanel) && React.createElement(MRT_ExpandButton, {
2529
+ }), (anyRowsCanExpand || renderDetailPanel) && React.createElement(TableCell, {
2530
+ size: "small",
2531
+ sx: _extends({}, commonTableBodyButtonCellStyles(densePadding), {
2532
+ pl: row.depth + 0.5 + "rem",
2533
+ textAlign: 'left'
2534
+ })
2535
+ }, React.createElement(MRT_ExpandButton, {
2476
2536
  row: row
2477
- }), enableSelection && React.createElement(MRT_SelectCheckbox, {
2537
+ })), enableSelection && React.createElement(TableCell, {
2538
+ sx: _extends({}, commonTableBodyButtonCellStyles(tableInstance.state.densePadding), {
2539
+ maxWidth: '3rem',
2540
+ width: '3rem'
2541
+ })
2542
+ }, React.createElement(MRT_SelectCheckbox, {
2478
2543
  row: row
2479
- }), row.cells.map(function (cell) {
2544
+ })), enableRowNumbers && React.createElement(TableCell, {
2545
+ sx: _extends({}, commonTableBodyCellStyles(densePadding))
2546
+ }, row.index + 1), row.cells.map(function (cell) {
2480
2547
  return React.createElement(MRT_TableBodyCell, {
2481
2548
  key: cell.getCellProps().key,
2482
2549
  cell: cell
@@ -2621,9 +2688,13 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2621
2688
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
2622
2689
  tableInstance = _useMRT.tableInstance;
2623
2690
 
2624
- var _useState = useState(''),
2625
- searchValue = _useState[0],
2626
- setSearchValue = _useState[1];
2691
+ var _useState = useState(null),
2692
+ anchorEl = _useState[0],
2693
+ setAnchorEl = _useState[1];
2694
+
2695
+ var _useState2 = useState(''),
2696
+ searchValue = _useState2[0],
2697
+ setSearchValue = _useState2[1];
2627
2698
 
2628
2699
  var handleChange = useAsyncDebounce(function (event) {
2629
2700
  var _event$target$value;
@@ -2632,6 +2703,10 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2632
2703
  onGlobalFilterChange == null ? void 0 : onGlobalFilterChange(event);
2633
2704
  }, 200);
2634
2705
 
2706
+ var handleGlobalFilterMenuOpen = function handleGlobalFilterMenuOpen(event) {
2707
+ setAnchorEl(event.currentTarget);
2708
+ };
2709
+
2635
2710
  var handleClear = function handleClear() {
2636
2711
  setSearchValue('');
2637
2712
  tableInstance.setGlobalFilter(undefined);
@@ -2652,9 +2727,20 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2652
2727
  InputProps: {
2653
2728
  startAdornment: React.createElement(InputAdornment, {
2654
2729
  position: "start"
2730
+ }, React.createElement(Tooltip, {
2731
+ arrow: true,
2732
+ title: localization.changeSearchMode
2733
+ }, React.createElement("span", null, React.createElement(IconButton, {
2734
+ "aria-label": localization.changeSearchMode,
2735
+ onClick: handleGlobalFilterMenuOpen,
2736
+ size: "small",
2737
+ sx: {
2738
+ height: '1.75rem',
2739
+ width: '1.75rem'
2740
+ }
2655
2741
  }, React.createElement(SearchIcon, {
2656
2742
  fontSize: "small"
2657
- })),
2743
+ }))))),
2658
2744
  endAdornment: React.createElement(InputAdornment, {
2659
2745
  position: "end"
2660
2746
  }, React.createElement(IconButton, {
@@ -2671,7 +2757,10 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2671
2757
  sx: _extends({
2672
2758
  justifySelf: 'end'
2673
2759
  }, muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.sx)
2674
- })));
2760
+ })), React.createElement(MRT_FilterTypeMenu, {
2761
+ anchorEl: anchorEl,
2762
+ setAnchorEl: setAnchorEl
2763
+ }));
2675
2764
  };
2676
2765
 
2677
2766
  var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
@@ -3067,6 +3156,7 @@ var MRT_DefaultLocalization_EN = {
3067
3156
  actions: 'Actions',
3068
3157
  cancel: 'Cancel',
3069
3158
  changeFilterMode: 'Change filter mode',
3159
+ changeSearchMode: 'Change search mode',
3070
3160
  clearFilter: 'Clear filter',
3071
3161
  clearSearch: 'Clear search',
3072
3162
  clearSort: 'Clear sort',
@@ -3076,12 +3166,13 @@ var MRT_DefaultLocalization_EN = {
3076
3166
  edit: 'Edit',
3077
3167
  expand: 'Expand',
3078
3168
  expandAll: 'Expand all',
3169
+ filterBestMatch: 'Best Match',
3170
+ filterBestMatchFirst: 'Best Match First',
3079
3171
  filterByColumn: 'Filter by {column}',
3080
- filterContains: 'Contains Exact',
3172
+ filterContains: 'Contains',
3081
3173
  filterEmpty: 'Empty',
3082
3174
  filterEndsWith: 'Ends With',
3083
3175
  filterEquals: 'Equals',
3084
- filterFuzzy: 'Fuzzy Match',
3085
3176
  filterGreaterThan: 'Greater Than',
3086
3177
  filterLessThan: 'Less Than',
3087
3178
  filterMode: 'Filter Mode: {filterType}',
@@ -3151,7 +3242,7 @@ var MaterialReactTable = (function (_ref) {
3151
3242
  } : _ref$defaultColumn,
3152
3243
  filterTypes = _ref.filterTypes,
3153
3244
  _ref$globalFilter = _ref.globalFilter,
3154
- globalFilter = _ref$globalFilter === void 0 ? 'fuzzy' : _ref$globalFilter,
3245
+ globalFilter = _ref$globalFilter === void 0 ? MRT_FILTER_TYPE.BEST_MATCH_FIRST : _ref$globalFilter,
3155
3246
  icons = _ref.icons,
3156
3247
  localization = _ref.localization,
3157
3248
  _ref$positionActionsC = _ref.positionActionsColumn,