material-react-table 0.5.3 → 0.5.6

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 (35) hide show
  1. package/dist/MaterialReactTable.d.ts +8 -1
  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 +447 -81
  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 +448 -82
  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 +9 -5
  14. package/src/MaterialReactTable.tsx +23 -1
  15. package/src/body/MRT_TableBodyCell.tsx +12 -3
  16. package/src/buttons/MRT_EditActionButtons.tsx +3 -1
  17. package/src/buttons/MRT_ShowHideColumnsButton.tsx +7 -3
  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_TableFooterCell.tsx +1 -1
  23. package/src/head/MRT_TableHeadCell.tsx +91 -44
  24. package/src/{icons.tsx → icons.ts} +9 -0
  25. package/src/index.tsx +0 -2
  26. package/src/inputs/MRT_FilterTextField.tsx +121 -52
  27. package/src/inputs/MRT_SearchTextField.tsx +2 -1
  28. package/src/inputs/MRT_SelectCheckbox.tsx +5 -7
  29. package/src/localization.ts +30 -4
  30. package/src/menus/MRT_ColumnActionMenu.tsx +103 -39
  31. package/src/menus/MRT_FilterTypeMenu.tsx +109 -0
  32. package/src/menus/MRT_RowActionMenu.tsx +10 -3
  33. package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
  34. package/src/table/MRT_TableContainer.tsx +7 -1
  35. 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, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, ListItemIcon, ListItemText, TableCell, Box, TableSortLabel, Divider, Collapse, Skeleton, 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,104 @@ 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
+ MenuListProps: {
375
+ dense: tableInstance.state.densePadding,
376
+ disablePadding: true
377
+ }
378
+ }, filterTypes.map(function (_ref2) {
379
+ var type = _ref2.type,
380
+ label = _ref2.label,
381
+ divider = _ref2.divider;
382
+ return React.createElement(MenuItem, {
383
+ divider: divider,
384
+ key: type,
385
+ onClick: function onClick() {
386
+ return handleSelectFilterType(type);
387
+ },
388
+ selected: type === filterType,
389
+ value: type
390
+ }, label);
391
+ }));
167
392
  };
168
393
 
169
394
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
170
- var _localization$filterT, _localization$filterT2, _localization$filterT3;
395
+ var _localization$filterT, _localization$filterT2;
171
396
 
172
397
  var column = _ref.column;
173
398
 
@@ -175,37 +400,72 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
175
400
  _useMRT$icons = _useMRT.icons,
176
401
  FilterListIcon = _useMRT$icons.FilterListIcon,
177
402
  CloseIcon = _useMRT$icons.CloseIcon,
178
- localization = _useMRT.localization;
403
+ idPrefix = _useMRT.idPrefix,
404
+ localization = _useMRT.localization,
405
+ muiTableHeadCellFilterTextFieldProps = _useMRT.muiTableHeadCellFilterTextFieldProps,
406
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
407
+ tableInstance = _useMRT.tableInstance;
179
408
 
180
- var _useState = useState(''),
181
- filterValue = _useState[0],
182
- setFilterValue = _useState[1];
409
+ var _useState = useState(null),
410
+ anchorEl = _useState[0],
411
+ setAnchorEl = _useState[1];
412
+
413
+ var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
414
+ var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
415
+
416
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
417
+ style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
418
+ });
419
+
420
+ var _useState2 = useState(''),
421
+ filterValue = _useState2[0],
422
+ setFilterValue = _useState2[1];
183
423
 
184
424
  var handleChange = useAsyncDebounce(function (value) {
185
425
  column.setFilter(value != null ? value : undefined);
186
426
  }, 150);
187
427
 
428
+ var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
429
+ setAnchorEl(event.currentTarget);
430
+ };
431
+
188
432
  var handleClear = function handleClear() {
189
433
  setFilterValue('');
190
434
  column.setFilter(undefined);
191
435
  };
192
436
 
437
+ var handleClearFilterChip = function handleClearFilterChip() {
438
+ setFilterValue('');
439
+ column.setFilter(undefined);
440
+ setCurrentFilterTypes(function (prev) {
441
+ var _extends2;
442
+
443
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
444
+ });
445
+ };
446
+
193
447
  if (column.Filter) {
194
448
  return React.createElement(React.Fragment, null, column.Filter == null ? void 0 : column.Filter({
195
449
  column: column
196
450
  }));
197
451
  }
198
452
 
199
- return React.createElement(TextField, {
453
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
454
+ var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
455
+ var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
456
+ return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
200
457
  fullWidth: true,
201
- id: "filter-" + column.id + "-column",
458
+ id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
202
459
  inputProps: {
203
- style: {
204
- textOverflow: 'ellipsis'
205
- }
460
+ disabled: !!filterChipLabel,
461
+ sx: {
462
+ textOverflow: 'ellipsis',
463
+ width: filterChipLabel ? 0 : undefined
464
+ },
465
+ title: filterPlaceholder
206
466
  },
207
- margin: "dense",
208
- placeholder: (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)),
467
+ margin: "none",
468
+ placeholder: filterChipLabel ? '' : filterPlaceholder,
209
469
  onChange: function onChange(e) {
210
470
  setFilterValue(e.target.value);
211
471
  handleChange(e.target.value);
@@ -216,32 +476,57 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
216
476
  value: filterValue != null ? filterValue : '',
217
477
  variant: "standard",
218
478
  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, {
479
+ startAdornment: React.createElement(InputAdornment, {
223
480
  position: "start"
224
- }, React.createElement(FilterListIcon, null))),
225
- endAdornment: React.createElement(InputAdornment, {
481
+ }, React.createElement(Tooltip, {
482
+ arrow: true,
483
+ title: "Change Filter Mode"
484
+ }, React.createElement(IconButton, {
485
+ onClick: handleFilterMenuOpen,
486
+ size: "small",
487
+ sx: {
488
+ height: '1.75rem',
489
+ width: '1.75rem'
490
+ }
491
+ }, React.createElement(FilterListIcon, null))), filterChipLabel && React.createElement(Chip, {
492
+ onDelete: handleClearFilterChip,
493
+ label: filterType
494
+ })),
495
+ endAdornment: !filterChipLabel && React.createElement(InputAdornment, {
226
496
  position: "end"
227
497
  }, React.createElement(Tooltip, {
228
498
  arrow: true,
229
- title: (_localization$filterT3 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT3 : ''
499
+ placement: "right",
500
+ title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
230
501
  }, React.createElement("span", null, React.createElement(IconButton, {
231
502
  "aria-label": localization.filterTextFieldClearButtonTitle,
232
503
  disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
233
504
  onClick: handleClear,
234
- size: "small"
505
+ size: "small",
506
+ sx: {
507
+ height: '1.75rem',
508
+ width: '1.75rem'
509
+ }
235
510
  }, React.createElement(CloseIcon, {
236
511
  fontSize: "small"
237
512
  })))))
238
513
  }
239
- });
514
+ }, textFieldProps, {
515
+ sx: _extends({
516
+ m: '0 -0.25rem',
517
+ minWidth: !filterChipLabel ? '5rem' : 'auto',
518
+ width: 'calc(100% + 0.5rem)'
519
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
520
+ })), React.createElement(MRT_FilterTypeMenu, {
521
+ anchorEl: anchorEl,
522
+ column: column,
523
+ setAnchorEl: setAnchorEl
524
+ }));
240
525
  };
241
526
 
242
527
  var commonMenuItemStyles = {
243
528
  display: 'flex',
244
- gap: '0.75rem'
529
+ alignItems: 'center'
245
530
  };
246
531
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
247
532
  var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
@@ -255,14 +540,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
255
540
  disableFilters = _useMRT.disableFilters,
256
541
  disableSortBy = _useMRT.disableSortBy,
257
542
  enableColumnGrouping = _useMRT.enableColumnGrouping,
258
- localization = _useMRT.localization,
259
- setShowFilters = _useMRT.setShowFilters,
260
543
  _useMRT$icons = _useMRT.icons,
261
- FilterListIcon = _useMRT$icons.FilterListIcon,
262
- SortIcon = _useMRT$icons.SortIcon,
544
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
263
545
  ClearAllIcon = _useMRT$icons.ClearAllIcon,
264
546
  DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
265
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon;
547
+ FilterListIcon = _useMRT$icons.FilterListIcon,
548
+ SortIcon = _useMRT$icons.SortIcon,
549
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
550
+ idPrefix = _useMRT.idPrefix,
551
+ localization = _useMRT.localization,
552
+ setShowFilters = _useMRT.setShowFilters,
553
+ tableInstance = _useMRT.tableInstance;
554
+
555
+ var _useState = useState(null),
556
+ filterMenuAnchorEl = _useState[0],
557
+ setFilterMenuAnchorEl = _useState[1];
266
558
 
267
559
  var handleClearSort = function handleClearSort() {
268
560
  column.clearSortBy();
@@ -295,55 +587,74 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
295
587
  var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
296
588
 
297
589
  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();
590
+ (_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
591
  }, 200);
300
592
  setAnchorEl(null);
301
593
  };
302
594
 
595
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
596
+ event.stopPropagation();
597
+ setFilterMenuAnchorEl(event.currentTarget);
598
+ };
599
+
303
600
  return React.createElement(Menu, {
304
601
  anchorEl: anchorEl,
305
602
  open: !!anchorEl,
306
603
  onClose: function onClose() {
307
604
  return setAnchorEl(null);
605
+ },
606
+ MenuListProps: {
607
+ dense: tableInstance.state.densePadding,
608
+ disablePadding: true
308
609
  }
309
610
  }, !disableSortBy && column.canSort && [React.createElement(MenuItem, {
310
611
  key: 1,
311
612
  disabled: !column.isSorted,
312
613
  onClick: handleClearSort,
313
614
  sx: commonMenuItemStyles
314
- }, React.createElement(ClearAllIcon, null), " ", localization.columnActionMenuItemClearSort), React.createElement(MenuItem, {
315
- key: 2,
615
+ }, React.createElement(ListItemIcon, null, React.createElement(ClearAllIcon, null)), React.createElement(ListItemText, null, localization.columnActionMenuItemClearSort)), React.createElement(MenuItem, {
316
616
  disabled: column.isSorted && !column.isSortedDesc,
617
+ key: 2,
317
618
  onClick: handleSortAsc,
318
619
  sx: commonMenuItemStyles
319
- }, React.createElement(SortIcon, null), ' ', (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header))), React.createElement(MenuItem, {
620
+ }, 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, {
621
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
320
622
  key: 3,
321
623
  disabled: column.isSorted && column.isSortedDesc,
322
624
  onClick: handleSortDesc,
323
625
  sx: commonMenuItemStyles
324
- }, React.createElement(SortIcon, {
626
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, {
325
627
  style: {
326
628
  transform: 'rotate(180deg) scaleX(-1)'
327
629
  }
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, {
630
+ })), React.createElement(ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React.createElement(MenuItem, {
631
+ divider: enableColumnGrouping || !disableColumnHiding,
331
632
  key: 1,
332
633
  onClick: handleFilterByColumn,
333
634
  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, {
635
+ }, 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, {
636
+ onClick: handleOpenFilterModeMenu,
637
+ onMouseEnter: handleOpenFilterModeMenu,
638
+ size: "small",
639
+ sx: {
640
+ p: 0
641
+ }
642
+ }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterTypeMenu, {
643
+ anchorEl: filterMenuAnchorEl,
644
+ column: column,
645
+ key: 2,
646
+ setAnchorEl: setFilterMenuAnchorEl,
647
+ onSelect: handleFilterByColumn
648
+ })], enableColumnGrouping && column.canGroupBy && [React.createElement(MenuItem, {
649
+ divider: !disableColumnHiding,
337
650
  key: 2,
338
651
  onClick: handleGroupByColumn,
339
652
  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, {
653
+ }, 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
654
  key: 1,
344
655
  onClick: handleHideColumn,
345
656
  sx: commonMenuItemStyles
346
- }, React.createElement(VisibilityOffIcon, null), ' ', (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header)))]);
657
+ }, 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
658
  };
348
659
 
349
660
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -373,11 +684,12 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
373
684
  onClick: handleClick,
374
685
  size: "small",
375
686
  sx: {
687
+ height: '2rem',
688
+ mr: '2px',
689
+ mt: '-0.2rem',
376
690
  opacity: 0.5,
377
691
  transition: 'opacity 0.2s',
378
- marginRight: '2px',
379
- height: '1.6rem',
380
- width: '1.6rem',
692
+ width: '2rem',
381
693
  '&:hover': {
382
694
  opacity: 1
383
695
  }
@@ -400,7 +712,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
400
712
  };
401
713
  };
402
714
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
403
- var _column$columns$lengt, _column$columns, _localization$columnA, _localization$columnA2;
715
+ var _column$columns, _localization$columnA, _localization$columnA2;
404
716
 
405
717
  var column = _ref.column;
406
718
 
@@ -408,11 +720,15 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
408
720
  disableColumnActions = _useMRT.disableColumnActions,
409
721
  disableFilters = _useMRT.disableFilters,
410
722
  enableColumnResizing = _useMRT.enableColumnResizing,
723
+ _useMRT$icons = _useMRT.icons,
724
+ FilterAltIcon = _useMRT$icons.FilterAltIcon,
725
+ FilterAltOff = _useMRT$icons.FilterAltOff,
411
726
  localization = _useMRT.localization,
412
727
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
728
+ setShowFilters = _useMRT.setShowFilters,
413
729
  tableInstance = _useMRT.tableInstance;
414
730
 
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;
731
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
416
732
  var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps(column) : muiTableHeadCellProps;
417
733
  var mcTableHeadCellProps = column.muiTableHeadCellProps instanceof Function ? column.muiTableHeadCellProps(column) : column.muiTableHeadCellProps;
418
734
 
@@ -421,17 +737,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
421
737
  });
422
738
 
423
739
  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);
740
+ var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
741
+ localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
742
+ var columnHeader = column.render('Header');
424
743
  return React.createElement(TableCell, Object.assign({
425
744
  align: isParentHeader ? 'center' : 'left'
426
745
  }, tableCellProps, {
427
746
  sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
428
747
  }), React.createElement(Box, {
429
- sx: {
430
- alignContent: 'space-between',
431
- display: 'grid',
432
- height: '100%'
433
- }
434
- }, React.createElement(Box, {
435
748
  sx: {
436
749
  alignItems: 'flex-start',
437
750
  display: 'flex',
@@ -442,7 +755,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
442
755
  sx: {
443
756
  alignItems: 'center',
444
757
  display: 'flex',
445
- flexWrap: 'nowrap'
758
+ flexWrap: 'nowrap',
759
+ whiteSpace: columnHeader.length < 15 ? 'nowrap' : 'normal'
446
760
  },
447
761
  title: undefined
448
762
  }), column.render('Header'), !isParentHeader && column.canSort && React.createElement(Tooltip, {
@@ -452,7 +766,29 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
452
766
  "aria-label": sortTooltip,
453
767
  active: column.isSorted,
454
768
  direction: column.isSortedDesc ? 'desc' : 'asc'
455
- }))), React.createElement(Box, {
769
+ })), !isParentHeader && !!column.canFilter && React.createElement(Tooltip, {
770
+ arrow: true,
771
+ title: filterTooltip
772
+ }, React.createElement(IconButton, {
773
+ onClick: function onClick(event) {
774
+ event.stopPropagation();
775
+ setShowFilters(!tableInstance.state.showFilters);
776
+ },
777
+ size: "small",
778
+ sx: {
779
+ opacity: !!column.filterValue ? 0.8 : 0,
780
+ p: '2px',
781
+ m: 0,
782
+ transition: 'all 0.2s ease-in-out',
783
+ '&:hover': {
784
+ opacity: 0.8
785
+ }
786
+ }
787
+ }, tableInstance.state.showFilters && !column.filterValue ? React.createElement(FilterAltOff, {
788
+ fontSize: "small"
789
+ }) : React.createElement(FilterAltIcon, {
790
+ fontSize: "small"
791
+ })))), React.createElement(Box, {
456
792
  sx: {
457
793
  alignItems: 'center',
458
794
  display: 'flex',
@@ -476,7 +812,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
476
812
  "in": tableInstance.state.showFilters
477
813
  }, React.createElement(MRT_FilterTextField, {
478
814
  column: column
479
- }))));
815
+ })));
480
816
  };
481
817
 
482
818
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
@@ -541,8 +877,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
541
877
  var cell = _ref.cell;
542
878
 
543
879
  var _useMRT = useMRT(),
544
- onCellClick = _useMRT.onCellClick,
880
+ isLoading = _useMRT.isLoading,
545
881
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
882
+ muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
883
+ onCellClick = _useMRT.onCellClick,
546
884
  _useMRT$tableInstance = _useMRT.tableInstance.state,
547
885
  currentEditingRow = _useMRT$tableInstance.currentEditingRow,
548
886
  densePadding = _useMRT$tableInstance.densePadding;
@@ -560,7 +898,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
560
898
  }
561
899
  }, tableCellProps, {
562
900
  sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
563
- }), (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React.createElement(MRT_EditCellTextField, {
901
+ }), isLoading ? React.createElement(Skeleton, Object.assign({
902
+ animation: "wave",
903
+ height: 20,
904
+ width: Math.random() * (120 - 60) + 60
905
+ }, muiTableBodyCellSkeletonProps)) : (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React.createElement(MRT_EditCellTextField, {
564
906
  cell: cell
565
907
  }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
566
908
  };
@@ -797,14 +1139,14 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
797
1139
  open: !!anchorEl,
798
1140
  onClose: function onClose() {
799
1141
  return setAnchorEl(null);
1142
+ },
1143
+ MenuListProps: {
1144
+ dense: tableInstance.state.densePadding,
1145
+ disablePadding: true
800
1146
  }
801
1147
  }, enableRowEditing && React.createElement(MenuItem, {
802
- sx: {
803
- display: 'flex',
804
- gap: '0.75rem'
805
- },
806
1148
  onClick: handleEdit
807
- }, React.createElement(EditIcon, null), " ", localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1149
+ }, React.createElement(ListItemIcon, null, React.createElement(EditIcon, null)), React.createElement(ListItemText, null, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
808
1150
  return setAnchorEl(null);
809
1151
  })) != null ? _renderRowActionMenuI : null);
810
1152
  };
@@ -1781,7 +2123,7 @@ var MRT_TableBody = function MRT_TableBody() {
1781
2123
  };
1782
2124
 
1783
2125
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1784
- var _column$columns$lengt, _column$columns;
2126
+ var _column$columns;
1785
2127
 
1786
2128
  var column = _ref.column;
1787
2129
 
@@ -1790,7 +2132,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1790
2132
  enableColumnResizing = _useMRT.enableColumnResizing,
1791
2133
  densePadding = _useMRT.tableInstance.state.densePadding;
1792
2134
 
1793
- 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;
2135
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1794
2136
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
1795
2137
  var mcTableFooterCellProps = column.muiTableFooterCellProps instanceof Function ? column.muiTableFooterCellProps(column) : column.muiTableFooterCellProps;
1796
2138
 
@@ -1883,6 +2225,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1883
2225
  _useMRT$icons = _useMRT.icons,
1884
2226
  SearchIcon = _useMRT$icons.SearchIcon,
1885
2227
  CloseIcon = _useMRT$icons.CloseIcon,
2228
+ idPrefix = _useMRT.idPrefix,
1886
2229
  localization = _useMRT.localization,
1887
2230
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
1888
2231
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
@@ -1908,7 +2251,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1908
2251
  "in": tableInstance.state.showSearch,
1909
2252
  orientation: "horizontal"
1910
2253
  }, React.createElement(TextField, Object.assign({
1911
- id: "global-search-text-field",
2254
+ id: "mrt-" + idPrefix + "-search-text-field",
1912
2255
  placeholder: localization.searchTextFieldPlaceholder,
1913
2256
  onChange: function onChange(event) {
1914
2257
  setSearchValue(event.target.value);
@@ -1965,10 +2308,10 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1965
2308
  };
1966
2309
 
1967
2310
  var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
1968
- var _column$columns$lengt, _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2311
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
1969
2312
 
1970
2313
  var column = _ref.column;
1971
- 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;
2314
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1972
2315
  var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
1973
2316
  return childColumn.isVisible;
1974
2317
  }));
@@ -2009,9 +2352,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2009
2352
  var rest = _extends({}, _ref);
2010
2353
 
2011
2354
  var _useMRT = useMRT(),
2012
- tableInstance = _useMRT.tableInstance,
2355
+ ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2013
2356
  localization = _useMRT.localization,
2014
- ViewColumnIcon = _useMRT.icons.ViewColumnIcon;
2357
+ tableInstance = _useMRT.tableInstance;
2015
2358
 
2016
2359
  var _useState = useState(null),
2017
2360
  anchorEl = _useState[0],
@@ -2033,12 +2376,16 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2033
2376
  open: !!anchorEl,
2034
2377
  onClose: function onClose() {
2035
2378
  return setAnchorEl(null);
2379
+ },
2380
+ MenuListProps: {
2381
+ dense: tableInstance.state.densePadding,
2382
+ disablePadding: true
2036
2383
  }
2037
2384
  }, React.createElement(Box, {
2038
2385
  sx: {
2039
2386
  display: 'flex',
2040
2387
  justifyContent: 'space-between',
2041
- p: '0 0.5rem 0.5rem 0.5rem'
2388
+ p: '0.5rem'
2042
2389
  }
2043
2390
  }, React.createElement(Button, {
2044
2391
  disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
@@ -2111,6 +2458,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2111
2458
  _useMRT$icons = _useMRT.icons,
2112
2459
  SearchIcon = _useMRT$icons.SearchIcon,
2113
2460
  SearchOffIcon = _useMRT$icons.SearchOffIcon,
2461
+ idPrefix = _useMRT.idPrefix,
2114
2462
  localization = _useMRT.localization,
2115
2463
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
2116
2464
  setShowSearch = _useMRT.setShowSearch,
@@ -2121,7 +2469,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2121
2469
  setTimeout(function () {
2122
2470
  var _document$getElementB, _muiSearchTextFieldPr;
2123
2471
 
2124
- return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "global-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2472
+ 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();
2125
2473
  }, 200);
2126
2474
  };
2127
2475
 
@@ -2339,6 +2687,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2339
2687
  hideToolbarTop = _useMRT.hideToolbarTop,
2340
2688
  isFetching = _useMRT.isFetching,
2341
2689
  isLoading = _useMRT.isLoading,
2690
+ muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2342
2691
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2343
2692
  tableInstance = _useMRT.tableInstance;
2344
2693
 
@@ -2363,6 +2712,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2363
2712
  }
2364
2713
  }, [fullScreen]);
2365
2714
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2715
+ var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2366
2716
  return React.createElement(TableContainer, Object.assign({
2367
2717
  component: Paper
2368
2718
  }, tableContainerProps, {
@@ -2381,7 +2731,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2381
2731
  }), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), React.createElement(Collapse, {
2382
2732
  "in": isFetching || isLoading,
2383
2733
  unmountOnExit: true
2384
- }, React.createElement(LinearProgress, null)), React.createElement(Box, {
2734
+ }, React.createElement(LinearProgress, Object.assign({}, linearProgressProps))), React.createElement(Box, {
2385
2735
  sx: {
2386
2736
  maxWidth: '100%',
2387
2737
  overflowX: 'auto'
@@ -2402,6 +2752,19 @@ var MRT_DefaultLocalization_EN = {
2402
2752
  columnShowHideMenuShowAll: 'Show all',
2403
2753
  expandAllButtonTitle: 'Expand all',
2404
2754
  expandButtonTitle: 'Expand',
2755
+ filterApplied: 'Filtering by {column} - ({filterType})',
2756
+ filterMenuItemContains: 'Contains Exact',
2757
+ filterMenuItemEmpty: 'Empty',
2758
+ filterMenuItemEndsWith: 'Ends With',
2759
+ filterMenuItemEquals: 'Equals',
2760
+ filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2761
+ filterMenuItemNotEmpty: 'Not Empty',
2762
+ filterMenuItemNotEquals: 'Not Equals',
2763
+ filterMenuItemStartsWith: 'Starts With',
2764
+ filterMenuTitle: 'Filter Mode',
2765
+ filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2766
+ filterTextFieldChipLabelEmpty: 'Empty',
2767
+ filterTextFieldChipLabelNotEmpty: 'Not Empty',
2405
2768
  filterTextFieldClearButtonTitle: 'Clear filter',
2406
2769
  filterTextFieldPlaceholder: 'Filter by {column}',
2407
2770
  rowActionButtonCancel: 'Cancel',
@@ -2415,15 +2778,16 @@ var MRT_DefaultLocalization_EN = {
2415
2778
  selectCheckboxTitle: 'Toggle select row',
2416
2779
  showHideColumnsButtonTitle: 'Show/Hide columns',
2417
2780
  toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2418
- toggleFilterButtonTitle: 'Toggle filters',
2781
+ toggleFilterButtonTitle: 'Show/Hide filters',
2419
2782
  toggleFullScreenButtonTitle: 'Toggle full screen',
2420
- toggleSearchButtonTitle: 'Toggle search',
2421
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected',
2783
+ toggleSearchButtonTitle: 'Show/Hide search',
2422
2784
  toolbarAlertGroupedByMessage: 'Grouped by ',
2423
- toolbarAlertGroupedThenByMessage: ', then by '
2785
+ toolbarAlertGroupedThenByMessage: ', then by ',
2786
+ toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2424
2787
  };
2425
2788
 
2426
2789
  var MRT_Default_Icons = {
2790
+ ArrowRightIcon: ArrowRightIcon,
2427
2791
  CancelIcon: CancelIcon,
2428
2792
  ClearAllIcon: ClearAllIcon,
2429
2793
  CloseIcon: CloseIcon,
@@ -2434,6 +2798,8 @@ var MRT_Default_Icons = {
2434
2798
  EditIcon: EditIcon,
2435
2799
  ExpandLessIcon: ExpandLessIcon,
2436
2800
  ExpandMoreIcon: ExpandMoreIcon,
2801
+ FilterAltIcon: FilterAltIcon,
2802
+ FilterAltOff: FilterAltOff,
2437
2803
  FilterListIcon: FilterListIcon,
2438
2804
  FilterListOffIcon: FilterListOffIcon,
2439
2805
  FullscreenExitIcon: FullscreenExitIcon,