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
@@ -7,7 +7,9 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
7
7
  var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
9
  var reactTable = require('react-table');
10
+ var matchSorter = require('match-sorter');
10
11
  var material = require('@mui/material');
12
+ var ArrowRightIcon = _interopDefault(require('@mui/icons-material/ArrowRight'));
11
13
  var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
12
14
  var ClearAllIcon = _interopDefault(require('@mui/icons-material/ClearAll'));
13
15
  var CloseIcon = _interopDefault(require('@mui/icons-material/Close'));
@@ -18,6 +20,8 @@ var DynamicFeedIcon = _interopDefault(require('@mui/icons-material/DynamicFeed')
18
20
  var EditIcon = _interopDefault(require('@mui/icons-material/Edit'));
19
21
  var ExpandLessIcon = _interopDefault(require('@mui/icons-material/ExpandLess'));
20
22
  var ExpandMoreIcon = _interopDefault(require('@mui/icons-material/ExpandMore'));
23
+ var FilterAltIcon = _interopDefault(require('@mui/icons-material/FilterAlt'));
24
+ var FilterAltOff = _interopDefault(require('@mui/icons-material/FilterAltOff'));
21
25
  var FilterListIcon = _interopDefault(require('@mui/icons-material/FilterList'));
22
26
  var FilterListOffIcon = _interopDefault(require('@mui/icons-material/FilterListOff'));
23
27
  var FullscreenExitIcon = _interopDefault(require('@mui/icons-material/FullscreenExit'));
@@ -100,6 +104,100 @@ function _objectWithoutPropertiesLoose(source, excluded) {
100
104
  return target;
101
105
  }
102
106
 
107
+ var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
108
+ return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
+ keys: ["values." + id],
110
+ sorter: function sorter(rankedItems) {
111
+ return rankedItems;
112
+ }
113
+ });
114
+ };
115
+
116
+ fuzzyFilterFN.autoRemove = function (val) {
117
+ return !val;
118
+ };
119
+
120
+ var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
121
+ return rows.filter(function (row) {
122
+ return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
123
+ });
124
+ };
125
+
126
+ containsFilterFN.autoRemove = function (val) {
127
+ return !val;
128
+ };
129
+
130
+ var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
131
+ return rows.filter(function (row) {
132
+ return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
133
+ });
134
+ };
135
+
136
+ startsWithFilterFN.autoRemove = function (val) {
137
+ return !val;
138
+ };
139
+
140
+ var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
141
+ return rows.filter(function (row) {
142
+ return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
143
+ });
144
+ };
145
+
146
+ endsWithFilterFN.autoRemove = function (val) {
147
+ return !val;
148
+ };
149
+
150
+ var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
151
+ return rows.filter(function (row) {
152
+ return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
153
+ });
154
+ };
155
+
156
+ equalsFilterFN.autoRemove = function (val) {
157
+ return !val;
158
+ };
159
+
160
+ var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
161
+ return rows.filter(function (row) {
162
+ return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
163
+ });
164
+ };
165
+
166
+ notEqualsFilterFN.autoRemove = function (val) {
167
+ return !val;
168
+ };
169
+
170
+ var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
171
+ return rows.filter(function (row) {
172
+ return !row.values[id].toString().toLowerCase().trim();
173
+ });
174
+ };
175
+
176
+ emptyFilterFN.autoRemove = function (val) {
177
+ return !val;
178
+ };
179
+
180
+ var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
181
+ return rows.filter(function (row) {
182
+ return !!row.values[id].toString().toLowerCase().trim();
183
+ });
184
+ };
185
+
186
+ notEmptyFilterFN.autoRemove = function (val) {
187
+ return !val;
188
+ };
189
+
190
+ var defaultFilterFNs = {
191
+ contains: containsFilterFN,
192
+ empty: emptyFilterFN,
193
+ endsWith: endsWithFilterFN,
194
+ equals: equalsFilterFN,
195
+ fuzzy: fuzzyFilterFN,
196
+ notEmpty: notEmptyFilterFN,
197
+ notEquals: notEqualsFilterFN,
198
+ startsWith: startsWithFilterFN
199
+ };
200
+
103
201
  var MaterialReactTableContext = /*#__PURE__*/function () {
104
202
  return React.createContext({});
105
203
  }();
@@ -130,19 +228,52 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
130
228
  showSearch = _useState5[0],
131
229
  setShowSearch = _useState5[1];
132
230
 
231
+ var filterTypes = React.useMemo(function () {
232
+ return _extends({}, defaultFilterFNs, props.filterTypes);
233
+ }, [props.filterTypes]);
234
+
235
+ var _useState6 = React.useState(function () {
236
+ return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
237
+ var _c$accessor;
238
+
239
+ return (_c$accessor = c.accessor) == null ? void 0 : _c$accessor.toString();
240
+ }).map(function (accessor) {
241
+ var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
242
+
243
+ return _ref = {}, _ref[accessor] = (_props$initialState$f2 = props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[accessor]) != null ? _props$initialState$f2 : 'fuzzy', _ref;
244
+ })));
245
+ }),
246
+ currentFilterTypes = _useState6[0],
247
+ setCurrentFilterTypes = _useState6[1];
248
+
249
+ var columns = React.useMemo(function () {
250
+ return props.columns.map(function (column) {
251
+ column.filter = filterTypes[currentFilterTypes[column.accessor]];
252
+ return column;
253
+ });
254
+ }, [props.columns, filterTypes, currentFilterTypes]);
133
255
  var tableInstance = reactTable.useTable.apply(void 0, [_extends({}, props, {
256
+ columns: columns,
257
+ // @ts-ignore
258
+ filterTypes: filterTypes,
134
259
  useControlledState: function useControlledState(state) {
135
260
  return React.useMemo(function () {
136
261
  return _extends({}, state, {
137
262
  currentEditingRow: currentEditingRow,
263
+ currentFilterTypes: currentFilterTypes,
138
264
  densePadding: densePadding,
139
265
  fullScreen: fullScreen,
140
266
  showFilters: showFilters,
141
267
  showSearch: showSearch
142
268
  }, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
143
- }, [currentEditingRow, densePadding, fullScreen, showFilters, showSearch, state]);
269
+ }, [currentEditingRow, currentFilterTypes, densePadding, fullScreen, showFilters, showSearch, state]);
144
270
  }
145
271
  })].concat(hooks));
272
+ var idPrefix = React.useMemo(function () {
273
+ var _props$idPrefix;
274
+
275
+ return (_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9);
276
+ }, [props.idPrefix]);
146
277
  var anyRowsCanExpand = React.useMemo(function () {
147
278
  return tableInstance.rows.some(function (row) {
148
279
  return row.canExpand;
@@ -157,7 +288,10 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
157
288
  value: _extends({}, props, {
158
289
  anyRowsCanExpand: anyRowsCanExpand,
159
290
  anyRowsExpanded: anyRowsExpanded,
291
+ idPrefix: idPrefix,
292
+ //@ts-ignore
160
293
  setCurrentEditingRow: setCurrentEditingRow,
294
+ setCurrentFilterTypes: setCurrentFilterTypes,
161
295
  setDensePadding: setDensePadding,
162
296
  setFullScreen: setFullScreen,
163
297
  setShowFilters: setShowFilters,
@@ -168,13 +302,104 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
168
302
  }, props.children);
169
303
  };
170
304
  var useMRT = function useMRT() {
171
- return (// @ts-ignore
172
- React.useContext(MaterialReactTableContext)
173
- );
305
+ return React.useContext(MaterialReactTableContext);
306
+ };
307
+
308
+ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
309
+ var anchorEl = _ref.anchorEl,
310
+ column = _ref.column,
311
+ onSelect = _ref.onSelect,
312
+ setAnchorEl = _ref.setAnchorEl;
313
+
314
+ var _useMRT = useMRT(),
315
+ localization = _useMRT.localization,
316
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
317
+ tableInstance = _useMRT.tableInstance;
318
+
319
+ var filterTypes = React.useMemo(function () {
320
+ return [{
321
+ type: 'fuzzy',
322
+ label: localization.filterMenuItemFuzzy,
323
+ divider: false
324
+ }, {
325
+ type: 'contains',
326
+ label: localization.filterMenuItemContains,
327
+ divider: true
328
+ }, {
329
+ type: 'startsWith',
330
+ label: localization.filterMenuItemStartsWith,
331
+ divider: false
332
+ }, {
333
+ type: 'endsWith',
334
+ label: localization.filterMenuItemEndsWith,
335
+ divider: true
336
+ }, {
337
+ type: 'equals',
338
+ label: localization.filterMenuItemEquals,
339
+ divider: false
340
+ }, {
341
+ type: 'notEquals',
342
+ label: localization.filterMenuItemNotEquals,
343
+ divider: true
344
+ }, {
345
+ type: 'empty',
346
+ label: localization.filterMenuItemEmpty,
347
+ divider: false
348
+ }, {
349
+ type: 'notEmpty',
350
+ label: localization.filterMenuItemNotEmpty,
351
+ divider: false
352
+ }];
353
+ }, []);
354
+
355
+ var handleSelectFilterType = function handleSelectFilterType(value) {
356
+ setAnchorEl(null);
357
+ setCurrentFilterTypes(function (prev) {
358
+ var _extends2;
359
+
360
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
361
+ });
362
+
363
+ if (['empty', 'notEmpty'].includes(value)) {
364
+ column.setFilter(' ');
365
+ }
366
+
367
+ onSelect == null ? void 0 : onSelect();
368
+ };
369
+
370
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
371
+ return React__default.createElement(material.Menu, {
372
+ anchorEl: anchorEl,
373
+ anchorOrigin: {
374
+ vertical: 'center',
375
+ horizontal: 'right'
376
+ },
377
+ onClose: function onClose() {
378
+ return setAnchorEl(null);
379
+ },
380
+ open: !!anchorEl,
381
+ MenuListProps: {
382
+ dense: tableInstance.state.densePadding,
383
+ disablePadding: true
384
+ }
385
+ }, filterTypes.map(function (_ref2) {
386
+ var type = _ref2.type,
387
+ label = _ref2.label,
388
+ divider = _ref2.divider;
389
+ return React__default.createElement(material.MenuItem, {
390
+ divider: divider,
391
+ key: type,
392
+ onClick: function onClick() {
393
+ return handleSelectFilterType(type);
394
+ },
395
+ selected: type === filterType,
396
+ value: type
397
+ }, label);
398
+ }));
174
399
  };
175
400
 
176
401
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
177
- var _localization$filterT, _localization$filterT2, _localization$filterT3;
402
+ var _localization$filterT, _localization$filterT2;
178
403
 
179
404
  var column = _ref.column;
180
405
 
@@ -182,37 +407,72 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
182
407
  _useMRT$icons = _useMRT.icons,
183
408
  FilterListIcon = _useMRT$icons.FilterListIcon,
184
409
  CloseIcon = _useMRT$icons.CloseIcon,
185
- localization = _useMRT.localization;
410
+ idPrefix = _useMRT.idPrefix,
411
+ localization = _useMRT.localization,
412
+ muiTableHeadCellFilterTextFieldProps = _useMRT.muiTableHeadCellFilterTextFieldProps,
413
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
414
+ tableInstance = _useMRT.tableInstance;
186
415
 
187
- var _useState = React.useState(''),
188
- filterValue = _useState[0],
189
- setFilterValue = _useState[1];
416
+ var _useState = React.useState(null),
417
+ anchorEl = _useState[0],
418
+ setAnchorEl = _useState[1];
419
+
420
+ var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
421
+ var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
422
+
423
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
424
+ style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
425
+ });
426
+
427
+ var _useState2 = React.useState(''),
428
+ filterValue = _useState2[0],
429
+ setFilterValue = _useState2[1];
190
430
 
191
431
  var handleChange = reactTable.useAsyncDebounce(function (value) {
192
432
  column.setFilter(value != null ? value : undefined);
193
433
  }, 150);
194
434
 
435
+ var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
436
+ setAnchorEl(event.currentTarget);
437
+ };
438
+
195
439
  var handleClear = function handleClear() {
196
440
  setFilterValue('');
197
441
  column.setFilter(undefined);
198
442
  };
199
443
 
444
+ var handleClearFilterChip = function handleClearFilterChip() {
445
+ setFilterValue('');
446
+ column.setFilter(undefined);
447
+ setCurrentFilterTypes(function (prev) {
448
+ var _extends2;
449
+
450
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
451
+ });
452
+ };
453
+
200
454
  if (column.Filter) {
201
455
  return React__default.createElement(React__default.Fragment, null, column.Filter == null ? void 0 : column.Filter({
202
456
  column: column
203
457
  }));
204
458
  }
205
459
 
206
- return React__default.createElement(material.TextField, {
460
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
461
+ var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
462
+ var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
463
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
207
464
  fullWidth: true,
208
- id: "filter-" + column.id + "-column",
465
+ id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
209
466
  inputProps: {
210
- style: {
211
- textOverflow: 'ellipsis'
212
- }
467
+ disabled: !!filterChipLabel,
468
+ sx: {
469
+ textOverflow: 'ellipsis',
470
+ width: filterChipLabel ? 0 : undefined
471
+ },
472
+ title: filterPlaceholder
213
473
  },
214
- margin: "dense",
215
- placeholder: (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)),
474
+ margin: "none",
475
+ placeholder: filterChipLabel ? '' : filterPlaceholder,
216
476
  onChange: function onChange(e) {
217
477
  setFilterValue(e.target.value);
218
478
  handleChange(e.target.value);
@@ -223,32 +483,57 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
223
483
  value: filterValue != null ? filterValue : '',
224
484
  variant: "standard",
225
485
  InputProps: {
226
- startAdornment: React__default.createElement(material.Tooltip, {
227
- arrow: true,
228
- title: (_localization$filterT2 = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT2.replace('{column}', String(column.Header))
229
- }, React__default.createElement(material.InputAdornment, {
486
+ startAdornment: React__default.createElement(material.InputAdornment, {
230
487
  position: "start"
231
- }, React__default.createElement(FilterListIcon, null))),
232
- endAdornment: React__default.createElement(material.InputAdornment, {
488
+ }, React__default.createElement(material.Tooltip, {
489
+ arrow: true,
490
+ title: "Change Filter Mode"
491
+ }, React__default.createElement(material.IconButton, {
492
+ onClick: handleFilterMenuOpen,
493
+ size: "small",
494
+ sx: {
495
+ height: '1.75rem',
496
+ width: '1.75rem'
497
+ }
498
+ }, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
499
+ onDelete: handleClearFilterChip,
500
+ label: filterType
501
+ })),
502
+ endAdornment: !filterChipLabel && React__default.createElement(material.InputAdornment, {
233
503
  position: "end"
234
504
  }, React__default.createElement(material.Tooltip, {
235
505
  arrow: true,
236
- title: (_localization$filterT3 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT3 : ''
506
+ placement: "right",
507
+ title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
237
508
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
238
509
  "aria-label": localization.filterTextFieldClearButtonTitle,
239
510
  disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
240
511
  onClick: handleClear,
241
- size: "small"
512
+ size: "small",
513
+ sx: {
514
+ height: '1.75rem',
515
+ width: '1.75rem'
516
+ }
242
517
  }, React__default.createElement(CloseIcon, {
243
518
  fontSize: "small"
244
519
  })))))
245
520
  }
246
- });
521
+ }, textFieldProps, {
522
+ sx: _extends({
523
+ m: '0 -0.25rem',
524
+ minWidth: !filterChipLabel ? '5rem' : 'auto',
525
+ width: 'calc(100% + 0.5rem)'
526
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
527
+ })), React__default.createElement(MRT_FilterTypeMenu, {
528
+ anchorEl: anchorEl,
529
+ column: column,
530
+ setAnchorEl: setAnchorEl
531
+ }));
247
532
  };
248
533
 
249
534
  var commonMenuItemStyles = {
250
535
  display: 'flex',
251
- gap: '0.75rem'
536
+ alignItems: 'center'
252
537
  };
253
538
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
254
539
  var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
@@ -262,14 +547,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
262
547
  disableFilters = _useMRT.disableFilters,
263
548
  disableSortBy = _useMRT.disableSortBy,
264
549
  enableColumnGrouping = _useMRT.enableColumnGrouping,
265
- localization = _useMRT.localization,
266
- setShowFilters = _useMRT.setShowFilters,
267
550
  _useMRT$icons = _useMRT.icons,
268
- FilterListIcon = _useMRT$icons.FilterListIcon,
269
- SortIcon = _useMRT$icons.SortIcon,
551
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
270
552
  ClearAllIcon = _useMRT$icons.ClearAllIcon,
271
553
  DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
272
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon;
554
+ FilterListIcon = _useMRT$icons.FilterListIcon,
555
+ SortIcon = _useMRT$icons.SortIcon,
556
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
557
+ idPrefix = _useMRT.idPrefix,
558
+ localization = _useMRT.localization,
559
+ setShowFilters = _useMRT.setShowFilters,
560
+ tableInstance = _useMRT.tableInstance;
561
+
562
+ var _useState = React.useState(null),
563
+ filterMenuAnchorEl = _useState[0],
564
+ setFilterMenuAnchorEl = _useState[1];
273
565
 
274
566
  var handleClearSort = function handleClearSort() {
275
567
  column.clearSortBy();
@@ -302,55 +594,74 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
302
594
  var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
303
595
 
304
596
  return (_document$getElementB = document.getElementById( // @ts-ignore
305
- (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "filter-" + column.id + "-column")) == null ? void 0 : _document$getElementB.focus();
597
+ (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
306
598
  }, 200);
307
599
  setAnchorEl(null);
308
600
  };
309
601
 
602
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
603
+ event.stopPropagation();
604
+ setFilterMenuAnchorEl(event.currentTarget);
605
+ };
606
+
310
607
  return React__default.createElement(material.Menu, {
311
608
  anchorEl: anchorEl,
312
609
  open: !!anchorEl,
313
610
  onClose: function onClose() {
314
611
  return setAnchorEl(null);
612
+ },
613
+ MenuListProps: {
614
+ dense: tableInstance.state.densePadding,
615
+ disablePadding: true
315
616
  }
316
617
  }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
317
618
  key: 1,
318
619
  disabled: !column.isSorted,
319
620
  onClick: handleClearSort,
320
621
  sx: commonMenuItemStyles
321
- }, React__default.createElement(ClearAllIcon, null), " ", localization.columnActionMenuItemClearSort), React__default.createElement(material.MenuItem, {
322
- key: 2,
622
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, null, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
323
623
  disabled: column.isSorted && !column.isSortedDesc,
624
+ key: 2,
324
625
  onClick: handleSortAsc,
325
626
  sx: commonMenuItemStyles
326
- }, React__default.createElement(SortIcon, null), ' ', (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header))), React__default.createElement(material.MenuItem, {
627
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
628
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
327
629
  key: 3,
328
630
  disabled: column.isSorted && column.isSortedDesc,
329
631
  onClick: handleSortDesc,
330
632
  sx: commonMenuItemStyles
331
- }, React__default.createElement(SortIcon, {
633
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
332
634
  style: {
333
635
  transform: 'rotate(180deg) scaleX(-1)'
334
636
  }
335
- }), ' ', (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header)))], !disableFilters && column.canFilter && [React__default.createElement(material.Divider, {
336
- key: 0
337
- }), React__default.createElement(material.MenuItem, {
637
+ })), React__default.createElement(material.ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
638
+ divider: enableColumnGrouping || !disableColumnHiding,
338
639
  key: 1,
339
640
  onClick: handleFilterByColumn,
340
641
  sx: commonMenuItemStyles
341
- }, React__default.createElement(FilterListIcon, null), ' ', (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)))], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.Divider, {
342
- key: 1
343
- }), React__default.createElement(material.MenuItem, {
642
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
643
+ onClick: handleOpenFilterModeMenu,
644
+ onMouseEnter: handleOpenFilterModeMenu,
645
+ size: "small",
646
+ sx: {
647
+ p: 0
648
+ }
649
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
650
+ anchorEl: filterMenuAnchorEl,
651
+ column: column,
652
+ key: 2,
653
+ setAnchorEl: setFilterMenuAnchorEl,
654
+ onSelect: handleFilterByColumn
655
+ })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
656
+ divider: !disableColumnHiding,
344
657
  key: 2,
345
658
  onClick: handleGroupByColumn,
346
659
  sx: commonMenuItemStyles
347
- }, React__default.createElement(DynamicFeedIcon, null), ' ', (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header)))], !disableColumnHiding && [React__default.createElement(material.Divider, {
348
- key: 0
349
- }), React__default.createElement(material.MenuItem, {
660
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
350
661
  key: 1,
351
662
  onClick: handleHideColumn,
352
663
  sx: commonMenuItemStyles
353
- }, React__default.createElement(VisibilityOffIcon, null), ' ', (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header)))]);
664
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
354
665
  };
355
666
 
356
667
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -380,11 +691,12 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
380
691
  onClick: handleClick,
381
692
  size: "small",
382
693
  sx: {
694
+ height: '2rem',
695
+ mr: '2px',
696
+ mt: '-0.2rem',
383
697
  opacity: 0.5,
384
698
  transition: 'opacity 0.2s',
385
- marginRight: '2px',
386
- height: '1.6rem',
387
- width: '1.6rem',
699
+ width: '2rem',
388
700
  '&:hover': {
389
701
  opacity: 1
390
702
  }
@@ -407,7 +719,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
407
719
  };
408
720
  };
409
721
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
410
- var _column$columns$lengt, _column$columns, _localization$columnA, _localization$columnA2;
722
+ var _column$columns, _localization$columnA, _localization$columnA2;
411
723
 
412
724
  var column = _ref.column;
413
725
 
@@ -415,11 +727,15 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
415
727
  disableColumnActions = _useMRT.disableColumnActions,
416
728
  disableFilters = _useMRT.disableFilters,
417
729
  enableColumnResizing = _useMRT.enableColumnResizing,
730
+ _useMRT$icons = _useMRT.icons,
731
+ FilterAltIcon = _useMRT$icons.FilterAltIcon,
732
+ FilterAltOff = _useMRT$icons.FilterAltOff,
418
733
  localization = _useMRT.localization,
419
734
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
735
+ setShowFilters = _useMRT.setShowFilters,
420
736
  tableInstance = _useMRT.tableInstance;
421
737
 
422
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
738
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
423
739
  var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps(column) : muiTableHeadCellProps;
424
740
  var mcTableHeadCellProps = column.muiTableHeadCellProps instanceof Function ? column.muiTableHeadCellProps(column) : column.muiTableHeadCellProps;
425
741
 
@@ -428,17 +744,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
428
744
  });
429
745
 
430
746
  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);
747
+ var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
748
+ localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
749
+ var columnHeader = column.render('Header');
431
750
  return React__default.createElement(material.TableCell, Object.assign({
432
751
  align: isParentHeader ? 'center' : 'left'
433
752
  }, tableCellProps, {
434
753
  sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
435
754
  }), React__default.createElement(material.Box, {
436
- sx: {
437
- alignContent: 'space-between',
438
- display: 'grid',
439
- height: '100%'
440
- }
441
- }, React__default.createElement(material.Box, {
442
755
  sx: {
443
756
  alignItems: 'flex-start',
444
757
  display: 'flex',
@@ -449,7 +762,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
449
762
  sx: {
450
763
  alignItems: 'center',
451
764
  display: 'flex',
452
- flexWrap: 'nowrap'
765
+ flexWrap: 'nowrap',
766
+ whiteSpace: columnHeader.length < 15 ? 'nowrap' : 'normal'
453
767
  },
454
768
  title: undefined
455
769
  }), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
@@ -459,7 +773,29 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
459
773
  "aria-label": sortTooltip,
460
774
  active: column.isSorted,
461
775
  direction: column.isSortedDesc ? 'desc' : 'asc'
462
- }))), React__default.createElement(material.Box, {
776
+ })), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
777
+ arrow: true,
778
+ title: filterTooltip
779
+ }, React__default.createElement(material.IconButton, {
780
+ onClick: function onClick(event) {
781
+ event.stopPropagation();
782
+ setShowFilters(!tableInstance.state.showFilters);
783
+ },
784
+ size: "small",
785
+ sx: {
786
+ opacity: !!column.filterValue ? 0.8 : 0,
787
+ p: '2px',
788
+ m: 0,
789
+ transition: 'all 0.2s ease-in-out',
790
+ '&:hover': {
791
+ opacity: 0.8
792
+ }
793
+ }
794
+ }, tableInstance.state.showFilters && !column.filterValue ? React__default.createElement(FilterAltOff, {
795
+ fontSize: "small"
796
+ }) : React__default.createElement(FilterAltIcon, {
797
+ fontSize: "small"
798
+ })))), React__default.createElement(material.Box, {
463
799
  sx: {
464
800
  alignItems: 'center',
465
801
  display: 'flex',
@@ -483,7 +819,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
483
819
  "in": tableInstance.state.showFilters
484
820
  }, React__default.createElement(MRT_FilterTextField, {
485
821
  column: column
486
- }))));
822
+ })));
487
823
  };
488
824
 
489
825
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
@@ -548,8 +884,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
548
884
  var cell = _ref.cell;
549
885
 
550
886
  var _useMRT = useMRT(),
551
- onCellClick = _useMRT.onCellClick,
887
+ isLoading = _useMRT.isLoading,
552
888
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
889
+ muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
890
+ onCellClick = _useMRT.onCellClick,
553
891
  _useMRT$tableInstance = _useMRT.tableInstance.state,
554
892
  currentEditingRow = _useMRT$tableInstance.currentEditingRow,
555
893
  densePadding = _useMRT$tableInstance.densePadding;
@@ -567,7 +905,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
567
905
  }
568
906
  }, tableCellProps, {
569
907
  sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
570
- }), (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
908
+ }), isLoading ? React__default.createElement(material.Skeleton, Object.assign({
909
+ animation: "wave",
910
+ height: 20,
911
+ width: Math.random() * (120 - 60) + 60
912
+ }, muiTableBodyCellSkeletonProps)) : (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
571
913
  cell: cell
572
914
  }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React__default.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
573
915
  };
@@ -804,14 +1146,14 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
804
1146
  open: !!anchorEl,
805
1147
  onClose: function onClose() {
806
1148
  return setAnchorEl(null);
1149
+ },
1150
+ MenuListProps: {
1151
+ dense: tableInstance.state.densePadding,
1152
+ disablePadding: true
807
1153
  }
808
1154
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
809
- sx: {
810
- display: 'flex',
811
- gap: '0.75rem'
812
- },
813
1155
  onClick: handleEdit
814
- }, React__default.createElement(EditIcon, null), " ", localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1156
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(EditIcon, null)), React__default.createElement(material.ListItemText, null, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
815
1157
  return setAnchorEl(null);
816
1158
  })) != null ? _renderRowActionMenuI : null);
817
1159
  };
@@ -1788,7 +2130,7 @@ var MRT_TableBody = function MRT_TableBody() {
1788
2130
  };
1789
2131
 
1790
2132
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1791
- var _column$columns$lengt, _column$columns;
2133
+ var _column$columns;
1792
2134
 
1793
2135
  var column = _ref.column;
1794
2136
 
@@ -1797,7 +2139,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1797
2139
  enableColumnResizing = _useMRT.enableColumnResizing,
1798
2140
  densePadding = _useMRT.tableInstance.state.densePadding;
1799
2141
 
1800
- 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;
2142
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1801
2143
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
1802
2144
  var mcTableFooterCellProps = column.muiTableFooterCellProps instanceof Function ? column.muiTableFooterCellProps(column) : column.muiTableFooterCellProps;
1803
2145
 
@@ -1890,6 +2232,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1890
2232
  _useMRT$icons = _useMRT.icons,
1891
2233
  SearchIcon = _useMRT$icons.SearchIcon,
1892
2234
  CloseIcon = _useMRT$icons.CloseIcon,
2235
+ idPrefix = _useMRT.idPrefix,
1893
2236
  localization = _useMRT.localization,
1894
2237
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
1895
2238
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
@@ -1915,7 +2258,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1915
2258
  "in": tableInstance.state.showSearch,
1916
2259
  orientation: "horizontal"
1917
2260
  }, React__default.createElement(material.TextField, Object.assign({
1918
- id: "global-search-text-field",
2261
+ id: "mrt-" + idPrefix + "-search-text-field",
1919
2262
  placeholder: localization.searchTextFieldPlaceholder,
1920
2263
  onChange: function onChange(event) {
1921
2264
  setSearchValue(event.target.value);
@@ -1972,10 +2315,10 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1972
2315
  };
1973
2316
 
1974
2317
  var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
1975
- var _column$columns$lengt, _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2318
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
1976
2319
 
1977
2320
  var column = _ref.column;
1978
- 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;
2321
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
1979
2322
  var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
1980
2323
  return childColumn.isVisible;
1981
2324
  }));
@@ -2016,9 +2359,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2016
2359
  var rest = _extends({}, _ref);
2017
2360
 
2018
2361
  var _useMRT = useMRT(),
2019
- tableInstance = _useMRT.tableInstance,
2362
+ ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2020
2363
  localization = _useMRT.localization,
2021
- ViewColumnIcon = _useMRT.icons.ViewColumnIcon;
2364
+ tableInstance = _useMRT.tableInstance;
2022
2365
 
2023
2366
  var _useState = React.useState(null),
2024
2367
  anchorEl = _useState[0],
@@ -2040,12 +2383,16 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2040
2383
  open: !!anchorEl,
2041
2384
  onClose: function onClose() {
2042
2385
  return setAnchorEl(null);
2386
+ },
2387
+ MenuListProps: {
2388
+ dense: tableInstance.state.densePadding,
2389
+ disablePadding: true
2043
2390
  }
2044
2391
  }, React__default.createElement(material.Box, {
2045
2392
  sx: {
2046
2393
  display: 'flex',
2047
2394
  justifyContent: 'space-between',
2048
- p: '0 0.5rem 0.5rem 0.5rem'
2395
+ p: '0.5rem'
2049
2396
  }
2050
2397
  }, React__default.createElement(material.Button, {
2051
2398
  disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
@@ -2118,6 +2465,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2118
2465
  _useMRT$icons = _useMRT.icons,
2119
2466
  SearchIcon = _useMRT$icons.SearchIcon,
2120
2467
  SearchOffIcon = _useMRT$icons.SearchOffIcon,
2468
+ idPrefix = _useMRT.idPrefix,
2121
2469
  localization = _useMRT.localization,
2122
2470
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
2123
2471
  setShowSearch = _useMRT.setShowSearch,
@@ -2128,7 +2476,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2128
2476
  setTimeout(function () {
2129
2477
  var _document$getElementB, _muiSearchTextFieldPr;
2130
2478
 
2131
- return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "global-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2479
+ 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();
2132
2480
  }, 200);
2133
2481
  };
2134
2482
 
@@ -2346,6 +2694,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2346
2694
  hideToolbarTop = _useMRT.hideToolbarTop,
2347
2695
  isFetching = _useMRT.isFetching,
2348
2696
  isLoading = _useMRT.isLoading,
2697
+ muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2349
2698
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2350
2699
  tableInstance = _useMRT.tableInstance;
2351
2700
 
@@ -2370,6 +2719,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2370
2719
  }
2371
2720
  }, [fullScreen]);
2372
2721
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2722
+ var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2373
2723
  return React__default.createElement(material.TableContainer, Object.assign({
2374
2724
  component: material.Paper
2375
2725
  }, tableContainerProps, {
@@ -2388,7 +2738,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2388
2738
  }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2389
2739
  "in": isFetching || isLoading,
2390
2740
  unmountOnExit: true
2391
- }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(material.Box, {
2741
+ }, React__default.createElement(material.LinearProgress, Object.assign({}, linearProgressProps))), React__default.createElement(material.Box, {
2392
2742
  sx: {
2393
2743
  maxWidth: '100%',
2394
2744
  overflowX: 'auto'
@@ -2409,6 +2759,19 @@ var MRT_DefaultLocalization_EN = {
2409
2759
  columnShowHideMenuShowAll: 'Show all',
2410
2760
  expandAllButtonTitle: 'Expand all',
2411
2761
  expandButtonTitle: 'Expand',
2762
+ filterApplied: 'Filtering by {column} - ({filterType})',
2763
+ filterMenuItemContains: 'Contains Exact',
2764
+ filterMenuItemEmpty: 'Empty',
2765
+ filterMenuItemEndsWith: 'Ends With',
2766
+ filterMenuItemEquals: 'Equals',
2767
+ filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2768
+ filterMenuItemNotEmpty: 'Not Empty',
2769
+ filterMenuItemNotEquals: 'Not Equals',
2770
+ filterMenuItemStartsWith: 'Starts With',
2771
+ filterMenuTitle: 'Filter Mode',
2772
+ filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2773
+ filterTextFieldChipLabelEmpty: 'Empty',
2774
+ filterTextFieldChipLabelNotEmpty: 'Not Empty',
2412
2775
  filterTextFieldClearButtonTitle: 'Clear filter',
2413
2776
  filterTextFieldPlaceholder: 'Filter by {column}',
2414
2777
  rowActionButtonCancel: 'Cancel',
@@ -2422,15 +2785,16 @@ var MRT_DefaultLocalization_EN = {
2422
2785
  selectCheckboxTitle: 'Toggle select row',
2423
2786
  showHideColumnsButtonTitle: 'Show/Hide columns',
2424
2787
  toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2425
- toggleFilterButtonTitle: 'Toggle filters',
2788
+ toggleFilterButtonTitle: 'Show/Hide filters',
2426
2789
  toggleFullScreenButtonTitle: 'Toggle full screen',
2427
- toggleSearchButtonTitle: 'Toggle search',
2428
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected',
2790
+ toggleSearchButtonTitle: 'Show/Hide search',
2429
2791
  toolbarAlertGroupedByMessage: 'Grouped by ',
2430
- toolbarAlertGroupedThenByMessage: ', then by '
2792
+ toolbarAlertGroupedThenByMessage: ', then by ',
2793
+ toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2431
2794
  };
2432
2795
 
2433
2796
  var MRT_Default_Icons = {
2797
+ ArrowRightIcon: ArrowRightIcon,
2434
2798
  CancelIcon: CancelIcon,
2435
2799
  ClearAllIcon: ClearAllIcon,
2436
2800
  CloseIcon: CloseIcon,
@@ -2441,6 +2805,8 @@ var MRT_Default_Icons = {
2441
2805
  EditIcon: EditIcon,
2442
2806
  ExpandLessIcon: ExpandLessIcon,
2443
2807
  ExpandMoreIcon: ExpandMoreIcon,
2808
+ FilterAltIcon: FilterAltIcon,
2809
+ FilterAltOff: FilterAltOff,
2444
2810
  FilterListIcon: FilterListIcon,
2445
2811
  FilterListOffIcon: FilterListOffIcon,
2446
2812
  FullscreenExitIcon: FullscreenExitIcon,