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
@@ -1,6 +1,8 @@
1
1
  import React, { useState, useMemo, useContext, createContext, Fragment, useRef, useEffect } from 'react';
2
2
  import { useTable, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useResizeColumns, useFlexLayout, useAsyncDebounce } from 'react-table';
3
- import { TextField, Tooltip, InputAdornment, IconButton, Menu, MenuItem, Divider, TableCell, Box, TableSortLabel, Collapse, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, FormControlLabel, Switch, Button, TablePagination, useMediaQuery, Chip, Alert, Toolbar, TableContainer, Paper, LinearProgress } from '@mui/material';
3
+ import { matchSorter } from 'match-sorter';
4
+ import { Menu, MenuList, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, ListItemIcon, ListItemText, TableCell, Box, TableSortLabel, Divider, Collapse, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, FormControlLabel, Switch, Button, TablePagination, useMediaQuery, Alert, Toolbar, TableContainer, Paper, LinearProgress } from '@mui/material';
5
+ import ArrowRightIcon from '@mui/icons-material/ArrowRight';
4
6
  import CancelIcon from '@mui/icons-material/Cancel';
5
7
  import ClearAllIcon from '@mui/icons-material/ClearAll';
6
8
  import CloseIcon from '@mui/icons-material/Close';
@@ -11,6 +13,8 @@ import DynamicFeedIcon from '@mui/icons-material/DynamicFeed';
11
13
  import EditIcon from '@mui/icons-material/Edit';
12
14
  import ExpandLessIcon from '@mui/icons-material/ExpandLess';
13
15
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
16
+ import FilterAltIcon from '@mui/icons-material/FilterAlt';
17
+ import FilterAltOff from '@mui/icons-material/FilterAltOff';
14
18
  import FilterListIcon from '@mui/icons-material/FilterList';
15
19
  import FilterListOffIcon from '@mui/icons-material/FilterListOff';
16
20
  import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
@@ -93,6 +97,100 @@ function _objectWithoutPropertiesLoose(source, excluded) {
93
97
  return target;
94
98
  }
95
99
 
100
+ var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
101
+ return matchSorter(rows, filterValue.toString().trim(), {
102
+ keys: ["values." + id],
103
+ sorter: function sorter(rankedItems) {
104
+ return rankedItems;
105
+ }
106
+ });
107
+ };
108
+
109
+ fuzzyFilterFN.autoRemove = function (val) {
110
+ return !val;
111
+ };
112
+
113
+ var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
114
+ return rows.filter(function (row) {
115
+ return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
116
+ });
117
+ };
118
+
119
+ containsFilterFN.autoRemove = function (val) {
120
+ return !val;
121
+ };
122
+
123
+ var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
124
+ return rows.filter(function (row) {
125
+ return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
126
+ });
127
+ };
128
+
129
+ startsWithFilterFN.autoRemove = function (val) {
130
+ return !val;
131
+ };
132
+
133
+ var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
134
+ return rows.filter(function (row) {
135
+ return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
136
+ });
137
+ };
138
+
139
+ endsWithFilterFN.autoRemove = function (val) {
140
+ return !val;
141
+ };
142
+
143
+ var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
144
+ return rows.filter(function (row) {
145
+ return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
146
+ });
147
+ };
148
+
149
+ equalsFilterFN.autoRemove = function (val) {
150
+ return !val;
151
+ };
152
+
153
+ var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
154
+ return rows.filter(function (row) {
155
+ return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
156
+ });
157
+ };
158
+
159
+ notEqualsFilterFN.autoRemove = function (val) {
160
+ return !val;
161
+ };
162
+
163
+ var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
164
+ return rows.filter(function (row) {
165
+ return !row.values[id].toString().toLowerCase().trim();
166
+ });
167
+ };
168
+
169
+ emptyFilterFN.autoRemove = function (val) {
170
+ return !val;
171
+ };
172
+
173
+ var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
174
+ return rows.filter(function (row) {
175
+ return !!row.values[id].toString().toLowerCase().trim();
176
+ });
177
+ };
178
+
179
+ notEmptyFilterFN.autoRemove = function (val) {
180
+ return !val;
181
+ };
182
+
183
+ var defaultFilterFNs = {
184
+ contains: containsFilterFN,
185
+ empty: emptyFilterFN,
186
+ endsWith: endsWithFilterFN,
187
+ equals: equalsFilterFN,
188
+ fuzzy: fuzzyFilterFN,
189
+ notEmpty: notEmptyFilterFN,
190
+ notEquals: notEqualsFilterFN,
191
+ startsWith: startsWithFilterFN
192
+ };
193
+
96
194
  var MaterialReactTableContext = /*#__PURE__*/function () {
97
195
  return createContext({});
98
196
  }();
@@ -123,19 +221,52 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
123
221
  showSearch = _useState5[0],
124
222
  setShowSearch = _useState5[1];
125
223
 
224
+ var filterTypes = useMemo(function () {
225
+ return _extends({}, defaultFilterFNs, props.filterTypes);
226
+ }, [props.filterTypes]);
227
+
228
+ var _useState6 = useState(function () {
229
+ return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
230
+ var _c$accessor;
231
+
232
+ return (_c$accessor = c.accessor) == null ? void 0 : _c$accessor.toString();
233
+ }).map(function (accessor) {
234
+ var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
235
+
236
+ 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;
237
+ })));
238
+ }),
239
+ currentFilterTypes = _useState6[0],
240
+ setCurrentFilterTypes = _useState6[1];
241
+
242
+ var columns = useMemo(function () {
243
+ return props.columns.map(function (column) {
244
+ column.filter = filterTypes[currentFilterTypes[column.accessor]];
245
+ return column;
246
+ });
247
+ }, [props.columns, filterTypes, currentFilterTypes]);
126
248
  var tableInstance = useTable.apply(void 0, [_extends({}, props, {
249
+ columns: columns,
250
+ // @ts-ignore
251
+ filterTypes: filterTypes,
127
252
  useControlledState: function useControlledState(state) {
128
253
  return useMemo(function () {
129
254
  return _extends({}, state, {
130
255
  currentEditingRow: currentEditingRow,
256
+ currentFilterTypes: currentFilterTypes,
131
257
  densePadding: densePadding,
132
258
  fullScreen: fullScreen,
133
259
  showFilters: showFilters,
134
260
  showSearch: showSearch
135
261
  }, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
136
- }, [currentEditingRow, densePadding, fullScreen, showFilters, showSearch, state]);
262
+ }, [currentEditingRow, currentFilterTypes, densePadding, fullScreen, showFilters, showSearch, state]);
137
263
  }
138
264
  })].concat(hooks));
265
+ var idPrefix = useMemo(function () {
266
+ var _props$idPrefix;
267
+
268
+ return (_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9);
269
+ }, [props.idPrefix]);
139
270
  var anyRowsCanExpand = useMemo(function () {
140
271
  return tableInstance.rows.some(function (row) {
141
272
  return row.canExpand;
@@ -150,7 +281,10 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
150
281
  value: _extends({}, props, {
151
282
  anyRowsCanExpand: anyRowsCanExpand,
152
283
  anyRowsExpanded: anyRowsExpanded,
284
+ idPrefix: idPrefix,
285
+ //@ts-ignore
153
286
  setCurrentEditingRow: setCurrentEditingRow,
287
+ setCurrentFilterTypes: setCurrentFilterTypes,
154
288
  setDensePadding: setDensePadding,
155
289
  setFullScreen: setFullScreen,
156
290
  setShowFilters: setShowFilters,
@@ -161,13 +295,103 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
161
295
  }, props.children);
162
296
  };
163
297
  var useMRT = function useMRT() {
164
- return (// @ts-ignore
165
- useContext(MaterialReactTableContext)
166
- );
298
+ return useContext(MaterialReactTableContext);
299
+ };
300
+
301
+ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
302
+ var anchorEl = _ref.anchorEl,
303
+ column = _ref.column,
304
+ onSelect = _ref.onSelect,
305
+ setAnchorEl = _ref.setAnchorEl;
306
+
307
+ var _useMRT = useMRT(),
308
+ localization = _useMRT.localization,
309
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
310
+ tableInstance = _useMRT.tableInstance;
311
+
312
+ var filterTypes = useMemo(function () {
313
+ return [{
314
+ type: 'fuzzy',
315
+ label: localization.filterMenuItemFuzzy,
316
+ divider: false
317
+ }, {
318
+ type: 'contains',
319
+ label: localization.filterMenuItemContains,
320
+ divider: true
321
+ }, {
322
+ type: 'startsWith',
323
+ label: localization.filterMenuItemStartsWith,
324
+ divider: false
325
+ }, {
326
+ type: 'endsWith',
327
+ label: localization.filterMenuItemEndsWith,
328
+ divider: true
329
+ }, {
330
+ type: 'equals',
331
+ label: localization.filterMenuItemEquals,
332
+ divider: false
333
+ }, {
334
+ type: 'notEquals',
335
+ label: localization.filterMenuItemNotEquals,
336
+ divider: true
337
+ }, {
338
+ type: 'empty',
339
+ label: localization.filterMenuItemEmpty,
340
+ divider: false
341
+ }, {
342
+ type: 'notEmpty',
343
+ label: localization.filterMenuItemNotEmpty,
344
+ divider: false
345
+ }];
346
+ }, []);
347
+
348
+ var handleSelectFilterType = function handleSelectFilterType(value) {
349
+ setAnchorEl(null);
350
+ setCurrentFilterTypes(function (prev) {
351
+ var _extends2;
352
+
353
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
354
+ });
355
+
356
+ if (['empty', 'notEmpty'].includes(value)) {
357
+ column.setFilter(' ');
358
+ }
359
+
360
+ onSelect == null ? void 0 : onSelect();
361
+ };
362
+
363
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
364
+ return React.createElement(Menu, {
365
+ anchorEl: anchorEl,
366
+ anchorOrigin: {
367
+ vertical: 'center',
368
+ horizontal: 'right'
369
+ },
370
+ onClose: function onClose() {
371
+ return setAnchorEl(null);
372
+ },
373
+ open: !!anchorEl
374
+ }, React.createElement(MenuList, {
375
+ dense: tableInstance.state.densePadding,
376
+ disablePadding: true
377
+ }, filterTypes.map(function (_ref2) {
378
+ var type = _ref2.type,
379
+ label = _ref2.label,
380
+ divider = _ref2.divider;
381
+ return React.createElement(MenuItem, {
382
+ divider: divider,
383
+ key: type,
384
+ onClick: function onClick() {
385
+ return handleSelectFilterType(type);
386
+ },
387
+ selected: type === filterType,
388
+ value: type
389
+ }, label);
390
+ })));
167
391
  };
168
392
 
169
393
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
170
- var _localization$filterT, _localization$filterT2, _localization$filterT3;
394
+ var _localization$filterT, _localization$filterT2;
171
395
 
172
396
  var column = _ref.column;
173
397
 
@@ -175,37 +399,72 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
175
399
  _useMRT$icons = _useMRT.icons,
176
400
  FilterListIcon = _useMRT$icons.FilterListIcon,
177
401
  CloseIcon = _useMRT$icons.CloseIcon,
178
- localization = _useMRT.localization;
402
+ idPrefix = _useMRT.idPrefix,
403
+ localization = _useMRT.localization,
404
+ muiTableHeadCellFilterTextFieldProps = _useMRT.muiTableHeadCellFilterTextFieldProps,
405
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
406
+ tableInstance = _useMRT.tableInstance;
179
407
 
180
- var _useState = useState(''),
181
- filterValue = _useState[0],
182
- setFilterValue = _useState[1];
408
+ var _useState = useState(null),
409
+ anchorEl = _useState[0],
410
+ setAnchorEl = _useState[1];
411
+
412
+ var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
413
+ var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
414
+
415
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
416
+ style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
417
+ });
418
+
419
+ var _useState2 = useState(''),
420
+ filterValue = _useState2[0],
421
+ setFilterValue = _useState2[1];
183
422
 
184
423
  var handleChange = useAsyncDebounce(function (value) {
185
424
  column.setFilter(value != null ? value : undefined);
186
425
  }, 150);
187
426
 
427
+ var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
428
+ setAnchorEl(event.currentTarget);
429
+ };
430
+
188
431
  var handleClear = function handleClear() {
189
432
  setFilterValue('');
190
433
  column.setFilter(undefined);
191
434
  };
192
435
 
436
+ var handleClearFilterChip = function handleClearFilterChip() {
437
+ setFilterValue('');
438
+ column.setFilter(undefined);
439
+ setCurrentFilterTypes(function (prev) {
440
+ var _extends2;
441
+
442
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
443
+ });
444
+ };
445
+
193
446
  if (column.Filter) {
194
447
  return React.createElement(React.Fragment, null, column.Filter == null ? void 0 : column.Filter({
195
448
  column: column
196
449
  }));
197
450
  }
198
451
 
199
- return React.createElement(TextField, {
452
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
453
+ var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
454
+ var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
455
+ return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
200
456
  fullWidth: true,
201
- id: "filter-" + column.id + "-column",
457
+ id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
202
458
  inputProps: {
203
- style: {
204
- textOverflow: 'ellipsis'
205
- }
459
+ disabled: !!filterChipLabel,
460
+ sx: {
461
+ textOverflow: 'ellipsis',
462
+ width: filterChipLabel ? 0 : 'auto'
463
+ },
464
+ title: filterPlaceholder
206
465
  },
207
- margin: "dense",
208
- placeholder: (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)),
466
+ margin: "none",
467
+ placeholder: filterChipLabel ? '' : filterPlaceholder,
209
468
  onChange: function onChange(e) {
210
469
  setFilterValue(e.target.value);
211
470
  handleChange(e.target.value);
@@ -216,32 +475,57 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
216
475
  value: filterValue != null ? filterValue : '',
217
476
  variant: "standard",
218
477
  InputProps: {
219
- startAdornment: React.createElement(Tooltip, {
220
- arrow: true,
221
- title: (_localization$filterT2 = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT2.replace('{column}', String(column.Header))
222
- }, React.createElement(InputAdornment, {
478
+ startAdornment: React.createElement(InputAdornment, {
223
479
  position: "start"
224
- }, React.createElement(FilterListIcon, null))),
225
- endAdornment: React.createElement(InputAdornment, {
480
+ }, React.createElement(Tooltip, {
481
+ arrow: true,
482
+ title: "Change Filter Mode"
483
+ }, React.createElement(IconButton, {
484
+ onClick: handleFilterMenuOpen,
485
+ size: "small",
486
+ sx: {
487
+ height: '1.75rem',
488
+ width: '1.75rem'
489
+ }
490
+ }, React.createElement(FilterListIcon, null))), filterChipLabel && React.createElement(Chip, {
491
+ onDelete: handleClearFilterChip,
492
+ label: filterType
493
+ })),
494
+ endAdornment: !filterChipLabel && React.createElement(InputAdornment, {
226
495
  position: "end"
227
496
  }, React.createElement(Tooltip, {
228
497
  arrow: true,
229
- title: (_localization$filterT3 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT3 : ''
498
+ placement: "right",
499
+ title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
230
500
  }, React.createElement("span", null, React.createElement(IconButton, {
231
501
  "aria-label": localization.filterTextFieldClearButtonTitle,
232
502
  disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
233
503
  onClick: handleClear,
234
- size: "small"
504
+ size: "small",
505
+ sx: {
506
+ height: '1.75rem',
507
+ width: '1.75rem'
508
+ }
235
509
  }, React.createElement(CloseIcon, {
236
510
  fontSize: "small"
237
511
  })))))
238
512
  }
239
- });
513
+ }, textFieldProps, {
514
+ sx: _extends({
515
+ m: '0 -0.25rem',
516
+ minWidth: !filterChipLabel ? '5rem' : 'auto',
517
+ width: 'calc(100% + 0.5rem)'
518
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
519
+ })), React.createElement(MRT_FilterTypeMenu, {
520
+ anchorEl: anchorEl,
521
+ column: column,
522
+ setAnchorEl: setAnchorEl
523
+ }));
240
524
  };
241
525
 
242
526
  var commonMenuItemStyles = {
243
527
  display: 'flex',
244
- gap: '0.75rem'
528
+ alignItems: 'center'
245
529
  };
246
530
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
247
531
  var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
@@ -255,14 +539,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
255
539
  disableFilters = _useMRT.disableFilters,
256
540
  disableSortBy = _useMRT.disableSortBy,
257
541
  enableColumnGrouping = _useMRT.enableColumnGrouping,
258
- localization = _useMRT.localization,
259
- setShowFilters = _useMRT.setShowFilters,
260
542
  _useMRT$icons = _useMRT.icons,
261
- FilterListIcon = _useMRT$icons.FilterListIcon,
262
- SortIcon = _useMRT$icons.SortIcon,
543
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
263
544
  ClearAllIcon = _useMRT$icons.ClearAllIcon,
264
545
  DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
265
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon;
546
+ FilterListIcon = _useMRT$icons.FilterListIcon,
547
+ SortIcon = _useMRT$icons.SortIcon,
548
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
549
+ idPrefix = _useMRT.idPrefix,
550
+ localization = _useMRT.localization,
551
+ setShowFilters = _useMRT.setShowFilters,
552
+ tableInstance = _useMRT.tableInstance;
553
+
554
+ var _useState = useState(null),
555
+ filterMenuAnchorEl = _useState[0],
556
+ setFilterMenuAnchorEl = _useState[1];
266
557
 
267
558
  var handleClearSort = function handleClearSort() {
268
559
  column.clearSortBy();
@@ -295,55 +586,73 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
295
586
  var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
296
587
 
297
588
  return (_document$getElementB = document.getElementById( // @ts-ignore
298
- (_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();
589
+ (_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();
299
590
  }, 200);
300
591
  setAnchorEl(null);
301
592
  };
302
593
 
594
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
595
+ event.stopPropagation();
596
+ setFilterMenuAnchorEl(event.currentTarget);
597
+ };
598
+
303
599
  return React.createElement(Menu, {
304
600
  anchorEl: anchorEl,
305
601
  open: !!anchorEl,
306
602
  onClose: function onClose() {
307
603
  return setAnchorEl(null);
308
604
  }
605
+ }, React.createElement(MenuList, {
606
+ dense: tableInstance.state.densePadding,
607
+ disablePadding: true
309
608
  }, !disableSortBy && column.canSort && [React.createElement(MenuItem, {
310
609
  key: 1,
311
610
  disabled: !column.isSorted,
312
611
  onClick: handleClearSort,
313
612
  sx: commonMenuItemStyles
314
- }, React.createElement(ClearAllIcon, null), " ", localization.columnActionMenuItemClearSort), React.createElement(MenuItem, {
315
- key: 2,
613
+ }, React.createElement(ListItemIcon, null, React.createElement(ClearAllIcon, null)), React.createElement(ListItemText, null, localization.columnActionMenuItemClearSort)), React.createElement(MenuItem, {
316
614
  disabled: column.isSorted && !column.isSortedDesc,
615
+ key: 2,
317
616
  onClick: handleSortAsc,
318
617
  sx: commonMenuItemStyles
319
- }, React.createElement(SortIcon, null), ' ', (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header))), React.createElement(MenuItem, {
618
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), React.createElement(ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React.createElement(MenuItem, {
619
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
320
620
  key: 3,
321
621
  disabled: column.isSorted && column.isSortedDesc,
322
622
  onClick: handleSortDesc,
323
623
  sx: commonMenuItemStyles
324
- }, React.createElement(SortIcon, {
624
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, {
325
625
  style: {
326
626
  transform: 'rotate(180deg) scaleX(-1)'
327
627
  }
328
- }), ' ', (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header)))], !disableFilters && column.canFilter && [React.createElement(Divider, {
329
- key: 0
330
- }), React.createElement(MenuItem, {
628
+ })), React.createElement(ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React.createElement(MenuItem, {
629
+ divider: enableColumnGrouping || !disableColumnHiding,
331
630
  key: 1,
332
631
  onClick: handleFilterByColumn,
333
632
  sx: commonMenuItemStyles
334
- }, React.createElement(FilterListIcon, null), ' ', (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)))], enableColumnGrouping && column.canGroupBy && [React.createElement(Divider, {
335
- key: 1
336
- }), React.createElement(MenuItem, {
633
+ }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), React.createElement(ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React.createElement(IconButton, {
634
+ onClick: handleOpenFilterModeMenu,
635
+ onMouseEnter: handleOpenFilterModeMenu,
636
+ size: "small",
637
+ sx: {
638
+ p: 0
639
+ }
640
+ }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterTypeMenu, {
641
+ anchorEl: filterMenuAnchorEl,
642
+ column: column,
643
+ key: 2,
644
+ setAnchorEl: setFilterMenuAnchorEl,
645
+ onSelect: handleFilterByColumn
646
+ })], enableColumnGrouping && column.canGroupBy && [React.createElement(MenuItem, {
647
+ divider: !disableColumnHiding,
337
648
  key: 2,
338
649
  onClick: handleGroupByColumn,
339
650
  sx: commonMenuItemStyles
340
- }, React.createElement(DynamicFeedIcon, null), ' ', (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header)))], !disableColumnHiding && [React.createElement(Divider, {
341
- key: 0
342
- }), React.createElement(MenuItem, {
651
+ }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), React.createElement(ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React.createElement(MenuItem, {
343
652
  key: 1,
344
653
  onClick: handleHideColumn,
345
654
  sx: commonMenuItemStyles
346
- }, React.createElement(VisibilityOffIcon, null), ' ', (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header)))]);
655
+ }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), React.createElement(ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]));
347
656
  };
348
657
 
349
658
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -373,11 +682,12 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
373
682
  onClick: handleClick,
374
683
  size: "small",
375
684
  sx: {
685
+ height: '2rem',
686
+ mr: '2px',
687
+ mt: '-0.2rem',
376
688
  opacity: 0.5,
377
689
  transition: 'opacity 0.2s',
378
- marginRight: '2px',
379
- height: '1.6rem',
380
- width: '1.6rem',
690
+ width: '2rem',
381
691
  '&:hover': {
382
692
  opacity: 1
383
693
  }
@@ -400,7 +710,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
400
710
  };
401
711
  };
402
712
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
403
- var _column$columns$lengt, _column$columns, _localization$columnA, _localization$columnA2;
713
+ var _column$columns, _localization$columnA, _localization$columnA2;
404
714
 
405
715
  var column = _ref.column;
406
716
 
@@ -408,11 +718,15 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
408
718
  disableColumnActions = _useMRT.disableColumnActions,
409
719
  disableFilters = _useMRT.disableFilters,
410
720
  enableColumnResizing = _useMRT.enableColumnResizing,
721
+ _useMRT$icons = _useMRT.icons,
722
+ FilterAltIcon = _useMRT$icons.FilterAltIcon,
723
+ FilterAltOff = _useMRT$icons.FilterAltOff,
411
724
  localization = _useMRT.localization,
412
725
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
726
+ setShowFilters = _useMRT.setShowFilters,
413
727
  tableInstance = _useMRT.tableInstance;
414
728
 
415
- 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;
729
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
416
730
  var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps(column) : muiTableHeadCellProps;
417
731
  var mcTableHeadCellProps = column.muiTableHeadCellProps instanceof Function ? column.muiTableHeadCellProps(column) : column.muiTableHeadCellProps;
418
732
 
@@ -421,17 +735,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
421
735
  });
422
736
 
423
737
  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);
738
+ var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
739
+ localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
740
+ var columnHeader = column.render('Header');
424
741
  return React.createElement(TableCell, Object.assign({
425
742
  align: isParentHeader ? 'center' : 'left'
426
743
  }, tableCellProps, {
427
744
  sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
428
745
  }), React.createElement(Box, {
429
- sx: {
430
- alignContent: 'space-between',
431
- display: 'grid',
432
- height: '100%'
433
- }
434
- }, React.createElement(Box, {
435
746
  sx: {
436
747
  alignItems: 'flex-start',
437
748
  display: 'flex',
@@ -442,7 +753,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
442
753
  sx: {
443
754
  alignItems: 'center',
444
755
  display: 'flex',
445
- flexWrap: 'nowrap'
756
+ flexWrap: 'nowrap',
757
+ whiteSpace: columnHeader.length < 15 ? 'nowrap' : 'normal'
446
758
  },
447
759
  title: undefined
448
760
  }), column.render('Header'), !isParentHeader && column.canSort && React.createElement(Tooltip, {
@@ -452,7 +764,29 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
452
764
  "aria-label": sortTooltip,
453
765
  active: column.isSorted,
454
766
  direction: column.isSortedDesc ? 'desc' : 'asc'
455
- }))), React.createElement(Box, {
767
+ })), !isParentHeader && !!column.canFilter && React.createElement(Tooltip, {
768
+ arrow: true,
769
+ title: filterTooltip
770
+ }, React.createElement(IconButton, {
771
+ onClick: function onClick(event) {
772
+ event.stopPropagation();
773
+ setShowFilters(!tableInstance.state.showFilters);
774
+ },
775
+ size: "small",
776
+ sx: {
777
+ opacity: !!column.filterValue ? 0.8 : 0,
778
+ p: '2px',
779
+ m: 0,
780
+ transition: 'all 0.2s ease-in-out',
781
+ '&:hover': {
782
+ opacity: 0.8
783
+ }
784
+ }
785
+ }, tableInstance.state.showFilters && !column.filterValue ? React.createElement(FilterAltOff, {
786
+ fontSize: "small"
787
+ }) : React.createElement(FilterAltIcon, {
788
+ fontSize: "small"
789
+ })))), React.createElement(Box, {
456
790
  sx: {
457
791
  alignItems: 'center',
458
792
  display: 'flex',
@@ -476,7 +810,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
476
810
  "in": tableInstance.state.showFilters
477
811
  }, React.createElement(MRT_FilterTextField, {
478
812
  column: column
479
- }))));
813
+ })));
480
814
  };
481
815
 
482
816
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
@@ -798,15 +1132,14 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
798
1132
  onClose: function onClose() {
799
1133
  return setAnchorEl(null);
800
1134
  }
1135
+ }, React.createElement(MenuList, {
1136
+ dense: tableInstance.state.densePadding,
1137
+ disablePadding: true
801
1138
  }, enableRowEditing && React.createElement(MenuItem, {
802
- sx: {
803
- display: 'flex',
804
- gap: '0.75rem'
805
- },
806
1139
  onClick: handleEdit
807
- }, React.createElement(EditIcon, null), " ", localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1140
+ }, React.createElement(ListItemIcon, null, React.createElement(EditIcon, null)), React.createElement(ListItemText, null, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
808
1141
  return setAnchorEl(null);
809
- })) != null ? _renderRowActionMenuI : null);
1142
+ })) != null ? _renderRowActionMenuI : null));
810
1143
  };
811
1144
 
812
1145
  function createCommonjsModule(fn, module) {
@@ -1761,9 +2094,10 @@ var MRT_TableBody = function MRT_TableBody() {
1761
2094
  manualPagination = _useMRT.manualPagination;
1762
2095
 
1763
2096
  var rows = manualPagination ? tableInstance.rows : tableInstance.page;
2097
+ var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps(tableInstance) : muiTableBodyProps;
1764
2098
 
1765
- var tableBodyProps = _extends({}, muiTableBodyProps, tableInstance.getTableBodyProps(), {
1766
- style: _extends({}, tableInstance.getTableBodyProps().style, muiTableBodyProps == null ? void 0 : muiTableBodyProps.style)
2099
+ var tableBodyProps = _extends({}, mTableBodyProps, tableInstance.getTableBodyProps(), {
2100
+ style: _extends({}, tableInstance.getTableBodyProps().style, mTableBodyProps == null ? void 0 : mTableBodyProps.style)
1767
2101
  });
1768
2102
 
1769
2103
  return React.createElement(TableBody, Object.assign({}, tableBodyProps, {
@@ -1780,7 +2114,7 @@ var MRT_TableBody = function MRT_TableBody() {
1780
2114
  };
1781
2115
 
1782
2116
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1783
- var _column$columns$lengt, _column$columns;
2117
+ var _column$columns;
1784
2118
 
1785
2119
  var column = _ref.column;
1786
2120
 
@@ -1789,7 +2123,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1789
2123
  enableColumnResizing = _useMRT.enableColumnResizing,
1790
2124
  densePadding = _useMRT.tableInstance.state.densePadding;
1791
2125
 
1792
- 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;
2126
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1793
2127
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
1794
2128
  var mcTableFooterCellProps = column.muiTableFooterCellProps instanceof Function ? column.muiTableFooterCellProps(column) : column.muiTableFooterCellProps;
1795
2129
 
@@ -1852,7 +2186,8 @@ var MRT_TableFooter = function MRT_TableFooter() {
1852
2186
  muiTableFooterProps = _useMRT.muiTableFooterProps,
1853
2187
  tableInstance = _useMRT.tableInstance;
1854
2188
 
1855
- return React.createElement(TableFooter, Object.assign({}, muiTableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
2189
+ var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps(tableInstance) : muiTableFooterProps;
2190
+ return React.createElement(TableFooter, Object.assign({}, tableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
1856
2191
  return React.createElement(MRT_TableFooterRow, {
1857
2192
  key: footerGroup.getFooterGroupProps().key,
1858
2193
  footerGroup: footerGroup
@@ -1867,8 +2202,10 @@ var MRT_Table = function MRT_Table() {
1867
2202
  hideTableHead = _useMRT.hideTableHead,
1868
2203
  hideTableFooter = _useMRT.hideTableFooter;
1869
2204
 
1870
- var tableProps = _extends({}, muiTableProps, tableInstance.getTableProps(), {
1871
- style: _extends({}, tableInstance.getTableProps().style, muiTableProps == null ? void 0 : muiTableProps.style)
2205
+ var mTableProps = muiTableProps instanceof Function ? muiTableProps(tableInstance) : muiTableProps;
2206
+
2207
+ var tableProps = _extends({}, mTableProps, tableInstance.getTableProps(), {
2208
+ style: _extends({}, tableInstance.getTableProps().style, mTableProps == null ? void 0 : mTableProps.style)
1872
2209
  });
1873
2210
 
1874
2211
  return React.createElement(Table, Object.assign({}, tableProps), !hideTableHead && React.createElement(MRT_TableHead, null), React.createElement(MRT_TableBody, null), !hideTableFooter && React.createElement(MRT_TableFooter, null));
@@ -1879,6 +2216,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1879
2216
  _useMRT$icons = _useMRT.icons,
1880
2217
  SearchIcon = _useMRT$icons.SearchIcon,
1881
2218
  CloseIcon = _useMRT$icons.CloseIcon,
2219
+ idPrefix = _useMRT.idPrefix,
1882
2220
  localization = _useMRT.localization,
1883
2221
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
1884
2222
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
@@ -1904,7 +2242,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1904
2242
  "in": tableInstance.state.showSearch,
1905
2243
  orientation: "horizontal"
1906
2244
  }, React.createElement(TextField, Object.assign({
1907
- id: "global-search-text-field",
2245
+ id: "mrt-" + idPrefix + "-search-text-field",
1908
2246
  placeholder: localization.searchTextFieldPlaceholder,
1909
2247
  onChange: function onChange(event) {
1910
2248
  setSearchValue(event.target.value);
@@ -1961,10 +2299,10 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1961
2299
  };
1962
2300
 
1963
2301
  var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
1964
- var _column$columns$lengt, _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2302
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
1965
2303
 
1966
2304
  var column = _ref.column;
1967
- 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;
2305
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1968
2306
  var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
1969
2307
  return childColumn.isVisible;
1970
2308
  }));
@@ -2005,9 +2343,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2005
2343
  var rest = _extends({}, _ref);
2006
2344
 
2007
2345
  var _useMRT = useMRT(),
2008
- tableInstance = _useMRT.tableInstance,
2346
+ ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2009
2347
  localization = _useMRT.localization,
2010
- ViewColumnIcon = _useMRT.icons.ViewColumnIcon;
2348
+ tableInstance = _useMRT.tableInstance;
2011
2349
 
2012
2350
  var _useState = useState(null),
2013
2351
  anchorEl = _useState[0],
@@ -2030,6 +2368,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2030
2368
  onClose: function onClose() {
2031
2369
  return setAnchorEl(null);
2032
2370
  }
2371
+ }, React.createElement(MenuList, {
2372
+ dense: tableInstance.state.densePadding,
2373
+ disablePadding: true
2033
2374
  }, React.createElement(Box, {
2034
2375
  sx: {
2035
2376
  display: 'flex',
@@ -2051,7 +2392,7 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2051
2392
  key: index + "-" + column.id,
2052
2393
  column: column
2053
2394
  });
2054
- })));
2395
+ }))));
2055
2396
  };
2056
2397
 
2057
2398
  var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
@@ -2107,6 +2448,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2107
2448
  _useMRT$icons = _useMRT.icons,
2108
2449
  SearchIcon = _useMRT$icons.SearchIcon,
2109
2450
  SearchOffIcon = _useMRT$icons.SearchOffIcon,
2451
+ idPrefix = _useMRT.idPrefix,
2110
2452
  localization = _useMRT.localization,
2111
2453
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
2112
2454
  setShowSearch = _useMRT.setShowSearch,
@@ -2117,7 +2459,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2117
2459
  setTimeout(function () {
2118
2460
  var _document$getElementB, _muiSearchTextFieldPr;
2119
2461
 
2120
- return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "global-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2462
+ 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();
2121
2463
  }, 200);
2122
2464
  };
2123
2465
 
@@ -2377,7 +2719,12 @@ var MRT_TableContainer = function MRT_TableContainer() {
2377
2719
  }), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), React.createElement(Collapse, {
2378
2720
  "in": isFetching || isLoading,
2379
2721
  unmountOnExit: true
2380
- }, React.createElement(LinearProgress, null)), React.createElement(MRT_Table, null), !hideToolbarBottom && React.createElement(MRT_ToolbarBottom, null));
2722
+ }, React.createElement(LinearProgress, null)), React.createElement(Box, {
2723
+ sx: {
2724
+ maxWidth: '100%',
2725
+ overflowX: 'auto'
2726
+ }
2727
+ }, React.createElement(MRT_Table, null)), !hideToolbarBottom && React.createElement(MRT_ToolbarBottom, null));
2381
2728
  };
2382
2729
 
2383
2730
  var MRT_DefaultLocalization_EN = {
@@ -2393,6 +2740,19 @@ var MRT_DefaultLocalization_EN = {
2393
2740
  columnShowHideMenuShowAll: 'Show all',
2394
2741
  expandAllButtonTitle: 'Expand all',
2395
2742
  expandButtonTitle: 'Expand',
2743
+ filterApplied: 'Filtering by {column} - ({filterType})',
2744
+ filterMenuItemContains: 'Contains Exact',
2745
+ filterMenuItemEmpty: 'Empty',
2746
+ filterMenuItemEndsWith: 'Ends With',
2747
+ filterMenuItemEquals: 'Equals',
2748
+ filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2749
+ filterMenuItemNotEmpty: 'Not Empty',
2750
+ filterMenuItemNotEquals: 'Not Equals',
2751
+ filterMenuItemStartsWith: 'Starts With',
2752
+ filterMenuTitle: 'Filter Mode',
2753
+ filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2754
+ filterTextFieldChipLabelEmpty: 'Empty',
2755
+ filterTextFieldChipLabelNotEmpty: 'Not Empty',
2396
2756
  filterTextFieldClearButtonTitle: 'Clear filter',
2397
2757
  filterTextFieldPlaceholder: 'Filter by {column}',
2398
2758
  rowActionButtonCancel: 'Cancel',
@@ -2406,15 +2766,16 @@ var MRT_DefaultLocalization_EN = {
2406
2766
  selectCheckboxTitle: 'Toggle select row',
2407
2767
  showHideColumnsButtonTitle: 'Show/Hide columns',
2408
2768
  toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2409
- toggleFilterButtonTitle: 'Toggle filters',
2769
+ toggleFilterButtonTitle: 'Show/Hide filters',
2410
2770
  toggleFullScreenButtonTitle: 'Toggle full screen',
2411
- toggleSearchButtonTitle: 'Toggle search',
2412
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected',
2771
+ toggleSearchButtonTitle: 'Show/Hide search',
2413
2772
  toolbarAlertGroupedByMessage: 'Grouped by ',
2414
- toolbarAlertGroupedThenByMessage: ', then by '
2773
+ toolbarAlertGroupedThenByMessage: ', then by ',
2774
+ toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2415
2775
  };
2416
2776
 
2417
2777
  var MRT_Default_Icons = {
2778
+ ArrowRightIcon: ArrowRightIcon,
2418
2779
  CancelIcon: CancelIcon,
2419
2780
  ClearAllIcon: ClearAllIcon,
2420
2781
  CloseIcon: CloseIcon,
@@ -2425,6 +2786,8 @@ var MRT_Default_Icons = {
2425
2786
  EditIcon: EditIcon,
2426
2787
  ExpandLessIcon: ExpandLessIcon,
2427
2788
  ExpandMoreIcon: ExpandMoreIcon,
2789
+ FilterAltIcon: FilterAltIcon,
2790
+ FilterAltOff: FilterAltOff,
2428
2791
  FilterListIcon: FilterListIcon,
2429
2792
  FilterListOffIcon: FilterListOffIcon,
2430
2793
  FullscreenExitIcon: FullscreenExitIcon,