material-react-table 0.5.2 → 0.5.5

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 +10 -5
  2. package/dist/filtersFNs.d.ts +67 -0
  3. package/dist/icons.d.ts +3 -0
  4. package/dist/localization.d.ts +14 -1
  5. package/dist/material-react-table.cjs.development.js +448 -85
  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 +449 -86
  10. package/dist/material-react-table.esm.js.map +1 -1
  11. package/dist/menus/MRT_FilterTypeMenu.d.ts +10 -0
  12. package/dist/useMRT.d.ts +13 -9
  13. package/package.json +6 -2
  14. package/src/MaterialReactTable.tsx +25 -5
  15. package/src/body/MRT_TableBody.tsx +7 -2
  16. package/src/buttons/MRT_EditActionButtons.tsx +3 -1
  17. package/src/buttons/MRT_ShowHideColumnsButton.tsx +34 -31
  18. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +4 -3
  19. package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -1
  20. package/src/buttons/MRT_ToggleSearchButton.tsx +5 -2
  21. package/src/filtersFNs.ts +112 -0
  22. package/src/footer/MRT_TableFooter.tsx +6 -1
  23. package/src/footer/MRT_TableFooterCell.tsx +1 -1
  24. package/src/head/MRT_TableHeadCell.tsx +91 -44
  25. package/src/{icons.tsx → icons.ts} +9 -0
  26. package/src/index.tsx +0 -2
  27. package/src/inputs/MRT_FilterTextField.tsx +121 -52
  28. package/src/inputs/MRT_SearchTextField.tsx +2 -1
  29. package/src/inputs/MRT_SelectCheckbox.tsx +5 -7
  30. package/src/localization.ts +30 -4
  31. package/src/menus/MRT_ColumnActionMenu.tsx +145 -78
  32. package/src/menus/MRT_FilterTypeMenu.tsx +107 -0
  33. package/src/menus/MRT_RowActionMenu.tsx +20 -9
  34. package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
  35. package/src/table/MRT_Table.tsx +7 -2
  36. package/src/table/MRT_TableContainer.tsx +15 -2
  37. package/src/useMRT.tsx +67 -13
@@ -7,7 +7,9 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
7
7
  var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
9
  var reactTable = require('react-table');
10
+ var matchSorter = require('match-sorter');
10
11
  var material = require('@mui/material');
12
+ var ArrowRightIcon = _interopDefault(require('@mui/icons-material/ArrowRight'));
11
13
  var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
12
14
  var ClearAllIcon = _interopDefault(require('@mui/icons-material/ClearAll'));
13
15
  var CloseIcon = _interopDefault(require('@mui/icons-material/Close'));
@@ -18,6 +20,8 @@ var DynamicFeedIcon = _interopDefault(require('@mui/icons-material/DynamicFeed')
18
20
  var EditIcon = _interopDefault(require('@mui/icons-material/Edit'));
19
21
  var ExpandLessIcon = _interopDefault(require('@mui/icons-material/ExpandLess'));
20
22
  var ExpandMoreIcon = _interopDefault(require('@mui/icons-material/ExpandMore'));
23
+ var FilterAltIcon = _interopDefault(require('@mui/icons-material/FilterAlt'));
24
+ var FilterAltOff = _interopDefault(require('@mui/icons-material/FilterAltOff'));
21
25
  var FilterListIcon = _interopDefault(require('@mui/icons-material/FilterList'));
22
26
  var FilterListOffIcon = _interopDefault(require('@mui/icons-material/FilterListOff'));
23
27
  var FullscreenExitIcon = _interopDefault(require('@mui/icons-material/FullscreenExit'));
@@ -100,6 +104,100 @@ function _objectWithoutPropertiesLoose(source, excluded) {
100
104
  return target;
101
105
  }
102
106
 
107
+ var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
108
+ return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
+ keys: ["values." + id],
110
+ sorter: function sorter(rankedItems) {
111
+ return rankedItems;
112
+ }
113
+ });
114
+ };
115
+
116
+ fuzzyFilterFN.autoRemove = function (val) {
117
+ return !val;
118
+ };
119
+
120
+ var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
121
+ return rows.filter(function (row) {
122
+ return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
123
+ });
124
+ };
125
+
126
+ containsFilterFN.autoRemove = function (val) {
127
+ return !val;
128
+ };
129
+
130
+ var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
131
+ return rows.filter(function (row) {
132
+ return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
133
+ });
134
+ };
135
+
136
+ startsWithFilterFN.autoRemove = function (val) {
137
+ return !val;
138
+ };
139
+
140
+ var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
141
+ return rows.filter(function (row) {
142
+ return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
143
+ });
144
+ };
145
+
146
+ endsWithFilterFN.autoRemove = function (val) {
147
+ return !val;
148
+ };
149
+
150
+ var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
151
+ return rows.filter(function (row) {
152
+ return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
153
+ });
154
+ };
155
+
156
+ equalsFilterFN.autoRemove = function (val) {
157
+ return !val;
158
+ };
159
+
160
+ var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
161
+ return rows.filter(function (row) {
162
+ return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
163
+ });
164
+ };
165
+
166
+ notEqualsFilterFN.autoRemove = function (val) {
167
+ return !val;
168
+ };
169
+
170
+ var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
171
+ return rows.filter(function (row) {
172
+ return !row.values[id].toString().toLowerCase().trim();
173
+ });
174
+ };
175
+
176
+ emptyFilterFN.autoRemove = function (val) {
177
+ return !val;
178
+ };
179
+
180
+ var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
181
+ return rows.filter(function (row) {
182
+ return !!row.values[id].toString().toLowerCase().trim();
183
+ });
184
+ };
185
+
186
+ notEmptyFilterFN.autoRemove = function (val) {
187
+ return !val;
188
+ };
189
+
190
+ var defaultFilterFNs = {
191
+ contains: containsFilterFN,
192
+ empty: emptyFilterFN,
193
+ endsWith: endsWithFilterFN,
194
+ equals: equalsFilterFN,
195
+ fuzzy: fuzzyFilterFN,
196
+ notEmpty: notEmptyFilterFN,
197
+ notEquals: notEqualsFilterFN,
198
+ startsWith: startsWithFilterFN
199
+ };
200
+
103
201
  var MaterialReactTableContext = /*#__PURE__*/function () {
104
202
  return React.createContext({});
105
203
  }();
@@ -130,19 +228,52 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
130
228
  showSearch = _useState5[0],
131
229
  setShowSearch = _useState5[1];
132
230
 
231
+ var filterTypes = React.useMemo(function () {
232
+ return _extends({}, defaultFilterFNs, props.filterTypes);
233
+ }, [props.filterTypes]);
234
+
235
+ var _useState6 = React.useState(function () {
236
+ return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
237
+ var _c$accessor;
238
+
239
+ return (_c$accessor = c.accessor) == null ? void 0 : _c$accessor.toString();
240
+ }).map(function (accessor) {
241
+ var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
242
+
243
+ return _ref = {}, _ref[accessor] = (_props$initialState$f2 = props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[accessor]) != null ? _props$initialState$f2 : 'fuzzy', _ref;
244
+ })));
245
+ }),
246
+ currentFilterTypes = _useState6[0],
247
+ setCurrentFilterTypes = _useState6[1];
248
+
249
+ var columns = React.useMemo(function () {
250
+ return props.columns.map(function (column) {
251
+ column.filter = filterTypes[currentFilterTypes[column.accessor]];
252
+ return column;
253
+ });
254
+ }, [props.columns, filterTypes, currentFilterTypes]);
133
255
  var tableInstance = reactTable.useTable.apply(void 0, [_extends({}, props, {
256
+ columns: columns,
257
+ // @ts-ignore
258
+ filterTypes: filterTypes,
134
259
  useControlledState: function useControlledState(state) {
135
260
  return React.useMemo(function () {
136
261
  return _extends({}, state, {
137
262
  currentEditingRow: currentEditingRow,
263
+ currentFilterTypes: currentFilterTypes,
138
264
  densePadding: densePadding,
139
265
  fullScreen: fullScreen,
140
266
  showFilters: showFilters,
141
267
  showSearch: showSearch
142
268
  }, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
143
- }, [currentEditingRow, densePadding, fullScreen, showFilters, showSearch, state]);
269
+ }, [currentEditingRow, currentFilterTypes, densePadding, fullScreen, showFilters, showSearch, state]);
144
270
  }
145
271
  })].concat(hooks));
272
+ var idPrefix = React.useMemo(function () {
273
+ var _props$idPrefix;
274
+
275
+ return (_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9);
276
+ }, [props.idPrefix]);
146
277
  var anyRowsCanExpand = React.useMemo(function () {
147
278
  return tableInstance.rows.some(function (row) {
148
279
  return row.canExpand;
@@ -157,7 +288,10 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
157
288
  value: _extends({}, props, {
158
289
  anyRowsCanExpand: anyRowsCanExpand,
159
290
  anyRowsExpanded: anyRowsExpanded,
291
+ idPrefix: idPrefix,
292
+ //@ts-ignore
160
293
  setCurrentEditingRow: setCurrentEditingRow,
294
+ setCurrentFilterTypes: setCurrentFilterTypes,
161
295
  setDensePadding: setDensePadding,
162
296
  setFullScreen: setFullScreen,
163
297
  setShowFilters: setShowFilters,
@@ -168,13 +302,103 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
168
302
  }, props.children);
169
303
  };
170
304
  var useMRT = function useMRT() {
171
- return (// @ts-ignore
172
- React.useContext(MaterialReactTableContext)
173
- );
305
+ return React.useContext(MaterialReactTableContext);
306
+ };
307
+
308
+ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
309
+ var anchorEl = _ref.anchorEl,
310
+ column = _ref.column,
311
+ onSelect = _ref.onSelect,
312
+ setAnchorEl = _ref.setAnchorEl;
313
+
314
+ var _useMRT = useMRT(),
315
+ localization = _useMRT.localization,
316
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
317
+ tableInstance = _useMRT.tableInstance;
318
+
319
+ var filterTypes = React.useMemo(function () {
320
+ return [{
321
+ type: 'fuzzy',
322
+ label: localization.filterMenuItemFuzzy,
323
+ divider: false
324
+ }, {
325
+ type: 'contains',
326
+ label: localization.filterMenuItemContains,
327
+ divider: true
328
+ }, {
329
+ type: 'startsWith',
330
+ label: localization.filterMenuItemStartsWith,
331
+ divider: false
332
+ }, {
333
+ type: 'endsWith',
334
+ label: localization.filterMenuItemEndsWith,
335
+ divider: true
336
+ }, {
337
+ type: 'equals',
338
+ label: localization.filterMenuItemEquals,
339
+ divider: false
340
+ }, {
341
+ type: 'notEquals',
342
+ label: localization.filterMenuItemNotEquals,
343
+ divider: true
344
+ }, {
345
+ type: 'empty',
346
+ label: localization.filterMenuItemEmpty,
347
+ divider: false
348
+ }, {
349
+ type: 'notEmpty',
350
+ label: localization.filterMenuItemNotEmpty,
351
+ divider: false
352
+ }];
353
+ }, []);
354
+
355
+ var handleSelectFilterType = function handleSelectFilterType(value) {
356
+ setAnchorEl(null);
357
+ setCurrentFilterTypes(function (prev) {
358
+ var _extends2;
359
+
360
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
361
+ });
362
+
363
+ if (['empty', 'notEmpty'].includes(value)) {
364
+ column.setFilter(' ');
365
+ }
366
+
367
+ onSelect == null ? void 0 : onSelect();
368
+ };
369
+
370
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
371
+ return React__default.createElement(material.Menu, {
372
+ anchorEl: anchorEl,
373
+ anchorOrigin: {
374
+ vertical: 'center',
375
+ horizontal: 'right'
376
+ },
377
+ onClose: function onClose() {
378
+ return setAnchorEl(null);
379
+ },
380
+ open: !!anchorEl
381
+ }, React__default.createElement(material.MenuList, {
382
+ dense: tableInstance.state.densePadding,
383
+ disablePadding: true
384
+ }, filterTypes.map(function (_ref2) {
385
+ var type = _ref2.type,
386
+ label = _ref2.label,
387
+ divider = _ref2.divider;
388
+ return React__default.createElement(material.MenuItem, {
389
+ divider: divider,
390
+ key: type,
391
+ onClick: function onClick() {
392
+ return handleSelectFilterType(type);
393
+ },
394
+ selected: type === filterType,
395
+ value: type
396
+ }, label);
397
+ })));
174
398
  };
175
399
 
176
400
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
177
- var _localization$filterT, _localization$filterT2, _localization$filterT3;
401
+ var _localization$filterT, _localization$filterT2;
178
402
 
179
403
  var column = _ref.column;
180
404
 
@@ -182,37 +406,72 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
182
406
  _useMRT$icons = _useMRT.icons,
183
407
  FilterListIcon = _useMRT$icons.FilterListIcon,
184
408
  CloseIcon = _useMRT$icons.CloseIcon,
185
- localization = _useMRT.localization;
409
+ idPrefix = _useMRT.idPrefix,
410
+ localization = _useMRT.localization,
411
+ muiTableHeadCellFilterTextFieldProps = _useMRT.muiTableHeadCellFilterTextFieldProps,
412
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
413
+ tableInstance = _useMRT.tableInstance;
186
414
 
187
- var _useState = React.useState(''),
188
- filterValue = _useState[0],
189
- setFilterValue = _useState[1];
415
+ var _useState = React.useState(null),
416
+ anchorEl = _useState[0],
417
+ setAnchorEl = _useState[1];
418
+
419
+ var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
420
+ var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
421
+
422
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
423
+ style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
424
+ });
425
+
426
+ var _useState2 = React.useState(''),
427
+ filterValue = _useState2[0],
428
+ setFilterValue = _useState2[1];
190
429
 
191
430
  var handleChange = reactTable.useAsyncDebounce(function (value) {
192
431
  column.setFilter(value != null ? value : undefined);
193
432
  }, 150);
194
433
 
434
+ var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
435
+ setAnchorEl(event.currentTarget);
436
+ };
437
+
195
438
  var handleClear = function handleClear() {
196
439
  setFilterValue('');
197
440
  column.setFilter(undefined);
198
441
  };
199
442
 
443
+ var handleClearFilterChip = function handleClearFilterChip() {
444
+ setFilterValue('');
445
+ column.setFilter(undefined);
446
+ setCurrentFilterTypes(function (prev) {
447
+ var _extends2;
448
+
449
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
450
+ });
451
+ };
452
+
200
453
  if (column.Filter) {
201
454
  return React__default.createElement(React__default.Fragment, null, column.Filter == null ? void 0 : column.Filter({
202
455
  column: column
203
456
  }));
204
457
  }
205
458
 
206
- return React__default.createElement(material.TextField, {
459
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
460
+ var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
461
+ var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
462
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
207
463
  fullWidth: true,
208
- id: "filter-" + column.id + "-column",
464
+ id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
209
465
  inputProps: {
210
- style: {
211
- textOverflow: 'ellipsis'
212
- }
466
+ disabled: !!filterChipLabel,
467
+ sx: {
468
+ textOverflow: 'ellipsis',
469
+ width: filterChipLabel ? 0 : 'auto'
470
+ },
471
+ title: filterPlaceholder
213
472
  },
214
- margin: "dense",
215
- placeholder: (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)),
473
+ margin: "none",
474
+ placeholder: filterChipLabel ? '' : filterPlaceholder,
216
475
  onChange: function onChange(e) {
217
476
  setFilterValue(e.target.value);
218
477
  handleChange(e.target.value);
@@ -223,32 +482,57 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
223
482
  value: filterValue != null ? filterValue : '',
224
483
  variant: "standard",
225
484
  InputProps: {
226
- startAdornment: React__default.createElement(material.Tooltip, {
227
- arrow: true,
228
- title: (_localization$filterT2 = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT2.replace('{column}', String(column.Header))
229
- }, React__default.createElement(material.InputAdornment, {
485
+ startAdornment: React__default.createElement(material.InputAdornment, {
230
486
  position: "start"
231
- }, React__default.createElement(FilterListIcon, null))),
232
- endAdornment: React__default.createElement(material.InputAdornment, {
487
+ }, React__default.createElement(material.Tooltip, {
488
+ arrow: true,
489
+ title: "Change Filter Mode"
490
+ }, React__default.createElement(material.IconButton, {
491
+ onClick: handleFilterMenuOpen,
492
+ size: "small",
493
+ sx: {
494
+ height: '1.75rem',
495
+ width: '1.75rem'
496
+ }
497
+ }, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
498
+ onDelete: handleClearFilterChip,
499
+ label: filterType
500
+ })),
501
+ endAdornment: !filterChipLabel && React__default.createElement(material.InputAdornment, {
233
502
  position: "end"
234
503
  }, React__default.createElement(material.Tooltip, {
235
504
  arrow: true,
236
- title: (_localization$filterT3 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT3 : ''
505
+ placement: "right",
506
+ title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
237
507
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
238
508
  "aria-label": localization.filterTextFieldClearButtonTitle,
239
509
  disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
240
510
  onClick: handleClear,
241
- size: "small"
511
+ size: "small",
512
+ sx: {
513
+ height: '1.75rem',
514
+ width: '1.75rem'
515
+ }
242
516
  }, React__default.createElement(CloseIcon, {
243
517
  fontSize: "small"
244
518
  })))))
245
519
  }
246
- });
520
+ }, textFieldProps, {
521
+ sx: _extends({
522
+ m: '0 -0.25rem',
523
+ minWidth: !filterChipLabel ? '5rem' : 'auto',
524
+ width: 'calc(100% + 0.5rem)'
525
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
526
+ })), React__default.createElement(MRT_FilterTypeMenu, {
527
+ anchorEl: anchorEl,
528
+ column: column,
529
+ setAnchorEl: setAnchorEl
530
+ }));
247
531
  };
248
532
 
249
533
  var commonMenuItemStyles = {
250
534
  display: 'flex',
251
- gap: '0.75rem'
535
+ alignItems: 'center'
252
536
  };
253
537
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
254
538
  var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
@@ -262,14 +546,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
262
546
  disableFilters = _useMRT.disableFilters,
263
547
  disableSortBy = _useMRT.disableSortBy,
264
548
  enableColumnGrouping = _useMRT.enableColumnGrouping,
265
- localization = _useMRT.localization,
266
- setShowFilters = _useMRT.setShowFilters,
267
549
  _useMRT$icons = _useMRT.icons,
268
- FilterListIcon = _useMRT$icons.FilterListIcon,
269
- SortIcon = _useMRT$icons.SortIcon,
550
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
270
551
  ClearAllIcon = _useMRT$icons.ClearAllIcon,
271
552
  DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
272
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon;
553
+ FilterListIcon = _useMRT$icons.FilterListIcon,
554
+ SortIcon = _useMRT$icons.SortIcon,
555
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
556
+ idPrefix = _useMRT.idPrefix,
557
+ localization = _useMRT.localization,
558
+ setShowFilters = _useMRT.setShowFilters,
559
+ tableInstance = _useMRT.tableInstance;
560
+
561
+ var _useState = React.useState(null),
562
+ filterMenuAnchorEl = _useState[0],
563
+ setFilterMenuAnchorEl = _useState[1];
273
564
 
274
565
  var handleClearSort = function handleClearSort() {
275
566
  column.clearSortBy();
@@ -302,55 +593,73 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
302
593
  var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
303
594
 
304
595
  return (_document$getElementB = document.getElementById( // @ts-ignore
305
- (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "filter-" + column.id + "-column")) == null ? void 0 : _document$getElementB.focus();
596
+ (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
306
597
  }, 200);
307
598
  setAnchorEl(null);
308
599
  };
309
600
 
601
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
602
+ event.stopPropagation();
603
+ setFilterMenuAnchorEl(event.currentTarget);
604
+ };
605
+
310
606
  return React__default.createElement(material.Menu, {
311
607
  anchorEl: anchorEl,
312
608
  open: !!anchorEl,
313
609
  onClose: function onClose() {
314
610
  return setAnchorEl(null);
315
611
  }
612
+ }, React__default.createElement(material.MenuList, {
613
+ dense: tableInstance.state.densePadding,
614
+ disablePadding: true
316
615
  }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
317
616
  key: 1,
318
617
  disabled: !column.isSorted,
319
618
  onClick: handleClearSort,
320
619
  sx: commonMenuItemStyles
321
- }, React__default.createElement(ClearAllIcon, null), " ", localization.columnActionMenuItemClearSort), React__default.createElement(material.MenuItem, {
322
- key: 2,
620
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, null, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
323
621
  disabled: column.isSorted && !column.isSortedDesc,
622
+ key: 2,
324
623
  onClick: handleSortAsc,
325
624
  sx: commonMenuItemStyles
326
- }, React__default.createElement(SortIcon, null), ' ', (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header))), React__default.createElement(material.MenuItem, {
625
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
626
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
327
627
  key: 3,
328
628
  disabled: column.isSorted && column.isSortedDesc,
329
629
  onClick: handleSortDesc,
330
630
  sx: commonMenuItemStyles
331
- }, React__default.createElement(SortIcon, {
631
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
332
632
  style: {
333
633
  transform: 'rotate(180deg) scaleX(-1)'
334
634
  }
335
- }), ' ', (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header)))], !disableFilters && column.canFilter && [React__default.createElement(material.Divider, {
336
- key: 0
337
- }), React__default.createElement(material.MenuItem, {
635
+ })), React__default.createElement(material.ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
636
+ divider: enableColumnGrouping || !disableColumnHiding,
338
637
  key: 1,
339
638
  onClick: handleFilterByColumn,
340
639
  sx: commonMenuItemStyles
341
- }, React__default.createElement(FilterListIcon, null), ' ', (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)))], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.Divider, {
342
- key: 1
343
- }), React__default.createElement(material.MenuItem, {
640
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
641
+ onClick: handleOpenFilterModeMenu,
642
+ onMouseEnter: handleOpenFilterModeMenu,
643
+ size: "small",
644
+ sx: {
645
+ p: 0
646
+ }
647
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
648
+ anchorEl: filterMenuAnchorEl,
649
+ column: column,
650
+ key: 2,
651
+ setAnchorEl: setFilterMenuAnchorEl,
652
+ onSelect: handleFilterByColumn
653
+ })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
654
+ divider: !disableColumnHiding,
344
655
  key: 2,
345
656
  onClick: handleGroupByColumn,
346
657
  sx: commonMenuItemStyles
347
- }, React__default.createElement(DynamicFeedIcon, null), ' ', (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header)))], !disableColumnHiding && [React__default.createElement(material.Divider, {
348
- key: 0
349
- }), React__default.createElement(material.MenuItem, {
658
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
350
659
  key: 1,
351
660
  onClick: handleHideColumn,
352
661
  sx: commonMenuItemStyles
353
- }, React__default.createElement(VisibilityOffIcon, null), ' ', (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header)))]);
662
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]));
354
663
  };
355
664
 
356
665
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -380,11 +689,12 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
380
689
  onClick: handleClick,
381
690
  size: "small",
382
691
  sx: {
692
+ height: '2rem',
693
+ mr: '2px',
694
+ mt: '-0.2rem',
383
695
  opacity: 0.5,
384
696
  transition: 'opacity 0.2s',
385
- marginRight: '2px',
386
- height: '1.6rem',
387
- width: '1.6rem',
697
+ width: '2rem',
388
698
  '&:hover': {
389
699
  opacity: 1
390
700
  }
@@ -407,7 +717,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
407
717
  };
408
718
  };
409
719
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
410
- var _column$columns$lengt, _column$columns, _localization$columnA, _localization$columnA2;
720
+ var _column$columns, _localization$columnA, _localization$columnA2;
411
721
 
412
722
  var column = _ref.column;
413
723
 
@@ -415,11 +725,15 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
415
725
  disableColumnActions = _useMRT.disableColumnActions,
416
726
  disableFilters = _useMRT.disableFilters,
417
727
  enableColumnResizing = _useMRT.enableColumnResizing,
728
+ _useMRT$icons = _useMRT.icons,
729
+ FilterAltIcon = _useMRT$icons.FilterAltIcon,
730
+ FilterAltOff = _useMRT$icons.FilterAltOff,
418
731
  localization = _useMRT.localization,
419
732
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
733
+ setShowFilters = _useMRT.setShowFilters,
420
734
  tableInstance = _useMRT.tableInstance;
421
735
 
422
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
736
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
423
737
  var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps(column) : muiTableHeadCellProps;
424
738
  var mcTableHeadCellProps = column.muiTableHeadCellProps instanceof Function ? column.muiTableHeadCellProps(column) : column.muiTableHeadCellProps;
425
739
 
@@ -428,17 +742,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
428
742
  });
429
743
 
430
744
  var sortTooltip = column.isSorted ? column.isSortedDesc ? localization.columnActionMenuItemClearSort : (_localization$columnA = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA.replace('{column}', column.Header) : (_localization$columnA2 = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA2.replace('{column}', column.Header);
745
+ var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
746
+ localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
747
+ var columnHeader = column.render('Header');
431
748
  return React__default.createElement(material.TableCell, Object.assign({
432
749
  align: isParentHeader ? 'center' : 'left'
433
750
  }, tableCellProps, {
434
751
  sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
435
752
  }), React__default.createElement(material.Box, {
436
- sx: {
437
- alignContent: 'space-between',
438
- display: 'grid',
439
- height: '100%'
440
- }
441
- }, React__default.createElement(material.Box, {
442
753
  sx: {
443
754
  alignItems: 'flex-start',
444
755
  display: 'flex',
@@ -449,7 +760,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
449
760
  sx: {
450
761
  alignItems: 'center',
451
762
  display: 'flex',
452
- flexWrap: 'nowrap'
763
+ flexWrap: 'nowrap',
764
+ whiteSpace: columnHeader.length < 15 ? 'nowrap' : 'normal'
453
765
  },
454
766
  title: undefined
455
767
  }), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
@@ -459,7 +771,29 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
459
771
  "aria-label": sortTooltip,
460
772
  active: column.isSorted,
461
773
  direction: column.isSortedDesc ? 'desc' : 'asc'
462
- }))), React__default.createElement(material.Box, {
774
+ })), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
775
+ arrow: true,
776
+ title: filterTooltip
777
+ }, React__default.createElement(material.IconButton, {
778
+ onClick: function onClick(event) {
779
+ event.stopPropagation();
780
+ setShowFilters(!tableInstance.state.showFilters);
781
+ },
782
+ size: "small",
783
+ sx: {
784
+ opacity: !!column.filterValue ? 0.8 : 0,
785
+ p: '2px',
786
+ m: 0,
787
+ transition: 'all 0.2s ease-in-out',
788
+ '&:hover': {
789
+ opacity: 0.8
790
+ }
791
+ }
792
+ }, tableInstance.state.showFilters && !column.filterValue ? React__default.createElement(FilterAltOff, {
793
+ fontSize: "small"
794
+ }) : React__default.createElement(FilterAltIcon, {
795
+ fontSize: "small"
796
+ })))), React__default.createElement(material.Box, {
463
797
  sx: {
464
798
  alignItems: 'center',
465
799
  display: 'flex',
@@ -483,7 +817,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
483
817
  "in": tableInstance.state.showFilters
484
818
  }, React__default.createElement(MRT_FilterTextField, {
485
819
  column: column
486
- }))));
820
+ })));
487
821
  };
488
822
 
489
823
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
@@ -805,15 +1139,14 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
805
1139
  onClose: function onClose() {
806
1140
  return setAnchorEl(null);
807
1141
  }
1142
+ }, React__default.createElement(material.MenuList, {
1143
+ dense: tableInstance.state.densePadding,
1144
+ disablePadding: true
808
1145
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
809
- sx: {
810
- display: 'flex',
811
- gap: '0.75rem'
812
- },
813
1146
  onClick: handleEdit
814
- }, React__default.createElement(EditIcon, null), " ", localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1147
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(EditIcon, null)), React__default.createElement(material.ListItemText, null, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
815
1148
  return setAnchorEl(null);
816
- })) != null ? _renderRowActionMenuI : null);
1149
+ })) != null ? _renderRowActionMenuI : null));
817
1150
  };
818
1151
 
819
1152
  function createCommonjsModule(fn, module) {
@@ -1768,9 +2101,10 @@ var MRT_TableBody = function MRT_TableBody() {
1768
2101
  manualPagination = _useMRT.manualPagination;
1769
2102
 
1770
2103
  var rows = manualPagination ? tableInstance.rows : tableInstance.page;
2104
+ var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps(tableInstance) : muiTableBodyProps;
1771
2105
 
1772
- var tableBodyProps = _extends({}, muiTableBodyProps, tableInstance.getTableBodyProps(), {
1773
- style: _extends({}, tableInstance.getTableBodyProps().style, muiTableBodyProps == null ? void 0 : muiTableBodyProps.style)
2106
+ var tableBodyProps = _extends({}, mTableBodyProps, tableInstance.getTableBodyProps(), {
2107
+ style: _extends({}, tableInstance.getTableBodyProps().style, mTableBodyProps == null ? void 0 : mTableBodyProps.style)
1774
2108
  });
1775
2109
 
1776
2110
  return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps, {
@@ -1787,7 +2121,7 @@ var MRT_TableBody = function MRT_TableBody() {
1787
2121
  };
1788
2122
 
1789
2123
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1790
- var _column$columns$lengt, _column$columns;
2124
+ var _column$columns;
1791
2125
 
1792
2126
  var column = _ref.column;
1793
2127
 
@@ -1796,7 +2130,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1796
2130
  enableColumnResizing = _useMRT.enableColumnResizing,
1797
2131
  densePadding = _useMRT.tableInstance.state.densePadding;
1798
2132
 
1799
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
2133
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1800
2134
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
1801
2135
  var mcTableFooterCellProps = column.muiTableFooterCellProps instanceof Function ? column.muiTableFooterCellProps(column) : column.muiTableFooterCellProps;
1802
2136
 
@@ -1859,7 +2193,8 @@ var MRT_TableFooter = function MRT_TableFooter() {
1859
2193
  muiTableFooterProps = _useMRT.muiTableFooterProps,
1860
2194
  tableInstance = _useMRT.tableInstance;
1861
2195
 
1862
- return React__default.createElement(material.TableFooter, Object.assign({}, muiTableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
2196
+ var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps(tableInstance) : muiTableFooterProps;
2197
+ return React__default.createElement(material.TableFooter, Object.assign({}, tableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
1863
2198
  return React__default.createElement(MRT_TableFooterRow, {
1864
2199
  key: footerGroup.getFooterGroupProps().key,
1865
2200
  footerGroup: footerGroup
@@ -1874,8 +2209,10 @@ var MRT_Table = function MRT_Table() {
1874
2209
  hideTableHead = _useMRT.hideTableHead,
1875
2210
  hideTableFooter = _useMRT.hideTableFooter;
1876
2211
 
1877
- var tableProps = _extends({}, muiTableProps, tableInstance.getTableProps(), {
1878
- style: _extends({}, tableInstance.getTableProps().style, muiTableProps == null ? void 0 : muiTableProps.style)
2212
+ var mTableProps = muiTableProps instanceof Function ? muiTableProps(tableInstance) : muiTableProps;
2213
+
2214
+ var tableProps = _extends({}, mTableProps, tableInstance.getTableProps(), {
2215
+ style: _extends({}, tableInstance.getTableProps().style, mTableProps == null ? void 0 : mTableProps.style)
1879
2216
  });
1880
2217
 
1881
2218
  return React__default.createElement(material.Table, Object.assign({}, tableProps), !hideTableHead && React__default.createElement(MRT_TableHead, null), React__default.createElement(MRT_TableBody, null), !hideTableFooter && React__default.createElement(MRT_TableFooter, null));
@@ -1886,6 +2223,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1886
2223
  _useMRT$icons = _useMRT.icons,
1887
2224
  SearchIcon = _useMRT$icons.SearchIcon,
1888
2225
  CloseIcon = _useMRT$icons.CloseIcon,
2226
+ idPrefix = _useMRT.idPrefix,
1889
2227
  localization = _useMRT.localization,
1890
2228
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
1891
2229
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
@@ -1911,7 +2249,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1911
2249
  "in": tableInstance.state.showSearch,
1912
2250
  orientation: "horizontal"
1913
2251
  }, React__default.createElement(material.TextField, Object.assign({
1914
- id: "global-search-text-field",
2252
+ id: "mrt-" + idPrefix + "-search-text-field",
1915
2253
  placeholder: localization.searchTextFieldPlaceholder,
1916
2254
  onChange: function onChange(event) {
1917
2255
  setSearchValue(event.target.value);
@@ -1968,10 +2306,10 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1968
2306
  };
1969
2307
 
1970
2308
  var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
1971
- var _column$columns$lengt, _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2309
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
1972
2310
 
1973
2311
  var column = _ref.column;
1974
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
2312
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1975
2313
  var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
1976
2314
  return childColumn.isVisible;
1977
2315
  }));
@@ -2012,9 +2350,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2012
2350
  var rest = _extends({}, _ref);
2013
2351
 
2014
2352
  var _useMRT = useMRT(),
2015
- tableInstance = _useMRT.tableInstance,
2353
+ ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2016
2354
  localization = _useMRT.localization,
2017
- ViewColumnIcon = _useMRT.icons.ViewColumnIcon;
2355
+ tableInstance = _useMRT.tableInstance;
2018
2356
 
2019
2357
  var _useState = React.useState(null),
2020
2358
  anchorEl = _useState[0],
@@ -2037,6 +2375,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2037
2375
  onClose: function onClose() {
2038
2376
  return setAnchorEl(null);
2039
2377
  }
2378
+ }, React__default.createElement(material.MenuList, {
2379
+ dense: tableInstance.state.densePadding,
2380
+ disablePadding: true
2040
2381
  }, React__default.createElement(material.Box, {
2041
2382
  sx: {
2042
2383
  display: 'flex',
@@ -2058,7 +2399,7 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2058
2399
  key: index + "-" + column.id,
2059
2400
  column: column
2060
2401
  });
2061
- })));
2402
+ }))));
2062
2403
  };
2063
2404
 
2064
2405
  var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
@@ -2114,6 +2455,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2114
2455
  _useMRT$icons = _useMRT.icons,
2115
2456
  SearchIcon = _useMRT$icons.SearchIcon,
2116
2457
  SearchOffIcon = _useMRT$icons.SearchOffIcon,
2458
+ idPrefix = _useMRT.idPrefix,
2117
2459
  localization = _useMRT.localization,
2118
2460
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
2119
2461
  setShowSearch = _useMRT.setShowSearch,
@@ -2124,7 +2466,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2124
2466
  setTimeout(function () {
2125
2467
  var _document$getElementB, _muiSearchTextFieldPr;
2126
2468
 
2127
- return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "global-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2469
+ return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "mrt-" + idPrefix + "-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2128
2470
  }, 200);
2129
2471
  };
2130
2472
 
@@ -2384,7 +2726,12 @@ var MRT_TableContainer = function MRT_TableContainer() {
2384
2726
  }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2385
2727
  "in": isFetching || isLoading,
2386
2728
  unmountOnExit: true
2387
- }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(MRT_Table, null), !hideToolbarBottom && React__default.createElement(MRT_ToolbarBottom, null));
2729
+ }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(material.Box, {
2730
+ sx: {
2731
+ maxWidth: '100%',
2732
+ overflowX: 'auto'
2733
+ }
2734
+ }, React__default.createElement(MRT_Table, null)), !hideToolbarBottom && React__default.createElement(MRT_ToolbarBottom, null));
2388
2735
  };
2389
2736
 
2390
2737
  var MRT_DefaultLocalization_EN = {
@@ -2400,6 +2747,19 @@ var MRT_DefaultLocalization_EN = {
2400
2747
  columnShowHideMenuShowAll: 'Show all',
2401
2748
  expandAllButtonTitle: 'Expand all',
2402
2749
  expandButtonTitle: 'Expand',
2750
+ filterApplied: 'Filtering by {column} - ({filterType})',
2751
+ filterMenuItemContains: 'Contains Exact',
2752
+ filterMenuItemEmpty: 'Empty',
2753
+ filterMenuItemEndsWith: 'Ends With',
2754
+ filterMenuItemEquals: 'Equals',
2755
+ filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2756
+ filterMenuItemNotEmpty: 'Not Empty',
2757
+ filterMenuItemNotEquals: 'Not Equals',
2758
+ filterMenuItemStartsWith: 'Starts With',
2759
+ filterMenuTitle: 'Filter Mode',
2760
+ filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2761
+ filterTextFieldChipLabelEmpty: 'Empty',
2762
+ filterTextFieldChipLabelNotEmpty: 'Not Empty',
2403
2763
  filterTextFieldClearButtonTitle: 'Clear filter',
2404
2764
  filterTextFieldPlaceholder: 'Filter by {column}',
2405
2765
  rowActionButtonCancel: 'Cancel',
@@ -2413,15 +2773,16 @@ var MRT_DefaultLocalization_EN = {
2413
2773
  selectCheckboxTitle: 'Toggle select row',
2414
2774
  showHideColumnsButtonTitle: 'Show/Hide columns',
2415
2775
  toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2416
- toggleFilterButtonTitle: 'Toggle filters',
2776
+ toggleFilterButtonTitle: 'Show/Hide filters',
2417
2777
  toggleFullScreenButtonTitle: 'Toggle full screen',
2418
- toggleSearchButtonTitle: 'Toggle search',
2419
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected',
2778
+ toggleSearchButtonTitle: 'Show/Hide search',
2420
2779
  toolbarAlertGroupedByMessage: 'Grouped by ',
2421
- toolbarAlertGroupedThenByMessage: ', then by '
2780
+ toolbarAlertGroupedThenByMessage: ', then by ',
2781
+ toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2422
2782
  };
2423
2783
 
2424
2784
  var MRT_Default_Icons = {
2785
+ ArrowRightIcon: ArrowRightIcon,
2425
2786
  CancelIcon: CancelIcon,
2426
2787
  ClearAllIcon: ClearAllIcon,
2427
2788
  CloseIcon: CloseIcon,
@@ -2432,6 +2793,8 @@ var MRT_Default_Icons = {
2432
2793
  EditIcon: EditIcon,
2433
2794
  ExpandLessIcon: ExpandLessIcon,
2434
2795
  ExpandMoreIcon: ExpandMoreIcon,
2796
+ FilterAltIcon: FilterAltIcon,
2797
+ FilterAltOff: FilterAltOff,
2435
2798
  FilterListIcon: FilterListIcon,
2436
2799
  FilterListOffIcon: FilterListOffIcon,
2437
2800
  FullscreenExitIcon: FullscreenExitIcon,