material-react-table 0.5.7 → 0.6.0

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 (67) hide show
  1. package/dist/MaterialReactTable.d.ts +8 -2
  2. package/dist/body/MRT_TableBodyCell.d.ts +1 -1
  3. package/dist/body/MRT_TableBodyRow.d.ts +1 -1
  4. package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
  5. package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
  6. package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
  7. package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +1 -1
  8. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
  9. package/dist/enums.d.ts +12 -0
  10. package/dist/filtersFNs.d.ts +20 -0
  11. package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
  12. package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
  13. package/dist/head/MRT_TableHeadCell.d.ts +1 -1
  14. package/dist/head/MRT_TableHeadRow.d.ts +1 -1
  15. package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
  16. package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
  17. package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
  18. package/dist/localization.d.ts +44 -44
  19. package/dist/material-react-table.cjs.development.js +569 -360
  20. package/dist/material-react-table.cjs.development.js.map +1 -1
  21. package/dist/material-react-table.cjs.production.min.js +1 -1
  22. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  23. package/dist/material-react-table.esm.js +570 -361
  24. package/dist/material-react-table.esm.js.map +1 -1
  25. package/dist/menus/MRT_ColumnActionMenu.d.ts +9 -2
  26. package/dist/menus/MRT_FilterTypeMenu.d.ts +1 -1
  27. package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
  28. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +3 -2
  29. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +8 -0
  30. package/dist/useMRT.d.ts +1 -1
  31. package/package.json +2 -2
  32. package/src/MaterialReactTable.tsx +5 -9
  33. package/src/body/MRT_TableBody.tsx +1 -1
  34. package/src/body/MRT_TableBodyCell.tsx +1 -1
  35. package/src/body/MRT_TableBodyRow.tsx +1 -1
  36. package/src/body/MRT_TableDetailPanel.tsx +1 -1
  37. package/src/buttons/MRT_EditActionButtons.tsx +5 -8
  38. package/src/buttons/MRT_ExpandAllButton.tsx +2 -2
  39. package/src/buttons/MRT_ExpandButton.tsx +3 -3
  40. package/src/buttons/MRT_FullScreenToggleButton.tsx +2 -2
  41. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -55
  42. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +4 -3
  43. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
  44. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -2
  45. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +4 -8
  46. package/src/buttons/MRT_ToggleSearchButton.tsx +1 -1
  47. package/src/enums.ts +12 -0
  48. package/src/filtersFNs.ts +42 -0
  49. package/src/footer/MRT_TableFooter.tsx +1 -1
  50. package/src/footer/MRT_TableFooterCell.tsx +1 -1
  51. package/src/footer/MRT_TableFooterRow.tsx +1 -1
  52. package/src/head/MRT_TableHead.tsx +1 -1
  53. package/src/head/MRT_TableHeadCell.tsx +22 -18
  54. package/src/head/MRT_TableHeadCellActions.tsx +1 -1
  55. package/src/head/MRT_TableHeadRow.tsx +1 -1
  56. package/src/inputs/MRT_EditCellTextField.tsx +1 -1
  57. package/src/inputs/MRT_FilterTextField.tsx +99 -21
  58. package/src/inputs/MRT_SearchTextField.tsx +3 -3
  59. package/src/inputs/MRT_SelectCheckbox.tsx +5 -5
  60. package/src/localization.ts +89 -88
  61. package/src/menus/MRT_ColumnActionMenu.tsx +109 -56
  62. package/src/menus/MRT_FilterTypeMenu.tsx +63 -26
  63. package/src/menus/MRT_RowActionMenu.tsx +4 -10
  64. package/src/menus/MRT_ShowHideColumnsMenu.tsx +54 -33
  65. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +57 -0
  66. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -3
  67. package/src/useMRT.tsx +36 -14
@@ -167,6 +167,26 @@ notEqualsFilterFN.autoRemove = function (val) {
167
167
  return !val;
168
168
  };
169
169
 
170
+ var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
171
+ return rows.filter(function (row) {
172
+ return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
173
+ });
174
+ };
175
+
176
+ greaterThanFilterFN.autoRemove = function (val) {
177
+ return !val;
178
+ };
179
+
180
+ var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
181
+ return rows.filter(function (row) {
182
+ return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
183
+ });
184
+ };
185
+
186
+ lessThanFilterFN.autoRemove = function (val) {
187
+ return !val;
188
+ };
189
+
170
190
  var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
171
191
  return rows.filter(function (row) {
172
192
  return !row.values[id].toString().toLowerCase().trim();
@@ -191,6 +211,8 @@ var defaultFilterFNs = {
191
211
  contains: containsFilterFN,
192
212
  empty: emptyFilterFN,
193
213
  endsWith: endsWithFilterFN,
214
+ greaterThan: greaterThanFilterFN,
215
+ lessThan: lessThanFilterFN,
194
216
  equals: equalsFilterFN,
195
217
  fuzzy: fuzzyFilterFN,
196
218
  notEmpty: notEmptyFilterFN,
@@ -232,16 +254,40 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
232
254
  return _extends({}, defaultFilterFNs, props.filterTypes);
233
255
  }, [props.filterTypes]);
234
256
 
235
- var _useState6 = React.useState(function () {
236
- return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
237
- var _c$accessor;
257
+ var getInitialFilterTypeState = function getInitialFilterTypeState() {
258
+ var lowestLevelColumns = props.columns;
259
+ var currentCols = props.columns;
260
+
261
+ while (!!currentCols.length && currentCols.some(function (col) {
262
+ return col.columns;
263
+ })) {
264
+ var nextCols = currentCols.filter(function (col) {
265
+ return !!col.columns;
266
+ }).map(function (col) {
267
+ return col.columns;
268
+ }).flat();
269
+
270
+ if (nextCols.every(function (col) {
271
+ return !col.columns;
272
+ })) {
273
+ lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
274
+ }
238
275
 
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;
276
+ currentCols = nextCols;
277
+ }
242
278
 
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;
279
+ lowestLevelColumns = lowestLevelColumns.filter(function (col) {
280
+ return !col.columns;
281
+ });
282
+ return Object.assign.apply(Object, [{}].concat(lowestLevelColumns.map(function (c) {
283
+ var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
284
+
285
+ return _ref2 = {}, _ref2[c.accessor] = (_ref = (_c$filter = c.filter) != null ? _c$filter : props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[c.accessor]) != null ? _ref : !!c.filterSelectOptions ? 'equals' : 'fuzzy', _ref2;
244
286
  })));
287
+ };
288
+
289
+ var _useState6 = React.useState(function () {
290
+ return getInitialFilterTypeState();
245
291
  }),
246
292
  currentFilterTypes = _useState6[0],
247
293
  setCurrentFilterTypes = _useState6[1];
@@ -256,6 +302,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
256
302
  columns: columns,
257
303
  // @ts-ignore
258
304
  filterTypes: filterTypes,
305
+ globalFilterValue: 'fuzzy',
259
306
  useControlledState: function useControlledState(state) {
260
307
  return React.useMemo(function () {
261
308
  return _extends({}, state, {
@@ -305,151 +352,26 @@ var useMRT = function useMRT() {
305
352
  return React.useContext(MaterialReactTableContext);
306
353
  };
307
354
 
308
- var commonMenuItemStyles = {
309
- py: '0 !important',
310
- my: '0 !important'
311
- };
312
- var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
313
- var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
314
-
315
- var anchorEl = _ref.anchorEl,
316
- column = _ref.column,
317
- setAnchorEl = _ref.setAnchorEl;
318
-
319
- var _useMRT = useMRT(),
320
- disableColumnHiding = _useMRT.disableColumnHiding,
321
- disableFilters = _useMRT.disableFilters,
322
- disableSortBy = _useMRT.disableSortBy,
323
- enableColumnGrouping = _useMRT.enableColumnGrouping,
324
- _useMRT$icons = _useMRT.icons,
325
- ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
326
- ClearAllIcon = _useMRT$icons.ClearAllIcon,
327
- DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
328
- FilterListIcon = _useMRT$icons.FilterListIcon,
329
- SortIcon = _useMRT$icons.SortIcon,
330
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
331
- idPrefix = _useMRT.idPrefix,
332
- localization = _useMRT.localization,
333
- setShowFilters = _useMRT.setShowFilters,
334
- tableInstance = _useMRT.tableInstance;
355
+ var MRT_FILTER_TYPE;
356
+
357
+ (function (MRT_FILTER_TYPE) {
358
+ MRT_FILTER_TYPE["CONTAINS"] = "contains";
359
+ MRT_FILTER_TYPE["EMPTY"] = "empty";
360
+ MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
361
+ MRT_FILTER_TYPE["EQUALS"] = "equals";
362
+ MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
363
+ MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
364
+ MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
365
+ MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
366
+ MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
367
+ MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
368
+ })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
335
369
 
336
- var _useState = React.useState(null),
337
- filterMenuAnchorEl = _useState[0],
338
- setFilterMenuAnchorEl = _useState[1];
339
-
340
- var handleClearSort = function handleClearSort() {
341
- column.clearSortBy();
342
- setAnchorEl(null);
343
- };
344
-
345
- var handleSortAsc = function handleSortAsc() {
346
- column.toggleSortBy(false);
347
- setAnchorEl(null);
348
- };
349
-
350
- var handleSortDesc = function handleSortDesc() {
351
- column.toggleSortBy(true);
352
- setAnchorEl(null);
353
- };
354
-
355
- var handleHideColumn = function handleHideColumn() {
356
- column.toggleHidden();
357
- setAnchorEl(null);
358
- };
359
-
360
- var handleGroupByColumn = function handleGroupByColumn() {
361
- column.toggleGroupBy();
362
- setAnchorEl(null);
363
- };
364
-
365
- var handleFilterByColumn = function handleFilterByColumn() {
366
- setShowFilters(true);
367
- setTimeout(function () {
368
- var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
369
-
370
- return (_document$getElementB = document.getElementById( // @ts-ignore
371
- (_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();
372
- }, 200);
373
- setAnchorEl(null);
374
- };
375
-
376
- var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
377
- event.stopPropagation();
378
- setFilterMenuAnchorEl(event.currentTarget);
379
- };
380
-
381
- return React__default.createElement(material.Menu, {
382
- anchorEl: anchorEl,
383
- open: !!anchorEl,
384
- onClose: function onClose() {
385
- return setAnchorEl(null);
386
- },
387
- MenuListProps: {
388
- dense: tableInstance.state.densePadding,
389
- disablePadding: true
390
- }
391
- }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
392
- key: 1,
393
- disabled: !column.isSorted,
394
- onClick: handleClearSort,
395
- sx: commonMenuItemStyles
396
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, {
397
- sx: commonMenuItemStyles
398
- }, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
399
- disabled: column.isSorted && !column.isSortedDesc,
400
- key: 2,
401
- onClick: handleSortAsc,
402
- sx: commonMenuItemStyles
403
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, {
404
- sx: commonMenuItemStyles
405
- }, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
406
- divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
407
- key: 3,
408
- disabled: column.isSorted && column.isSortedDesc,
409
- onClick: handleSortDesc,
410
- sx: commonMenuItemStyles
411
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
412
- style: {
413
- transform: 'rotate(180deg) scaleX(-1)'
414
- }
415
- })), React__default.createElement(material.ListItemText, {
416
- sx: commonMenuItemStyles
417
- }, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
418
- divider: enableColumnGrouping || !disableColumnHiding,
419
- key: 1,
420
- onClick: handleFilterByColumn,
421
- sx: commonMenuItemStyles
422
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, {
423
- sx: commonMenuItemStyles
424
- }, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
425
- onClick: handleOpenFilterModeMenu,
426
- onMouseEnter: handleOpenFilterModeMenu,
427
- size: "small",
428
- sx: {
429
- p: 0
430
- }
431
- }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
432
- anchorEl: filterMenuAnchorEl,
433
- column: column,
434
- key: 2,
435
- setAnchorEl: setFilterMenuAnchorEl,
436
- onSelect: handleFilterByColumn
437
- })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
438
- divider: !disableColumnHiding,
439
- key: 2,
440
- onClick: handleGroupByColumn,
441
- sx: commonMenuItemStyles
442
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, {
443
- sx: commonMenuItemStyles
444
- }, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
445
- key: 1,
446
- onClick: handleHideColumn,
447
- sx: commonMenuItemStyles
448
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, {
449
- sx: commonMenuItemStyles
450
- }, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
370
+ var commonMenuItemStyles = {
371
+ py: '6px',
372
+ my: 0,
373
+ alignItems: 'center'
451
374
  };
452
-
453
375
  var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
454
376
  var anchorEl = _ref.anchorEl,
455
377
  column = _ref.column,
@@ -463,37 +385,55 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
463
385
 
464
386
  var filterTypes = React.useMemo(function () {
465
387
  return [{
466
- type: 'fuzzy',
467
- label: localization.filterMenuItemFuzzy,
468
- divider: false
388
+ type: MRT_FILTER_TYPE.FUZZY,
389
+ label: localization.filterFuzzy,
390
+ divider: false,
391
+ fn: fuzzyFilterFN
392
+ }, {
393
+ type: MRT_FILTER_TYPE.CONTAINS,
394
+ label: localization.filterContains,
395
+ divider: true,
396
+ fn: containsFilterFN
469
397
  }, {
470
- type: 'contains',
471
- label: localization.filterMenuItemContains,
472
- divider: true
398
+ type: MRT_FILTER_TYPE.STARTS_WITH,
399
+ label: localization.filterStartsWith,
400
+ divider: false,
401
+ fn: startsWithFilterFN
473
402
  }, {
474
- type: 'startsWith',
475
- label: localization.filterMenuItemStartsWith,
476
- divider: false
403
+ type: MRT_FILTER_TYPE.ENDS_WITH,
404
+ label: localization.filterEndsWith,
405
+ divider: true,
406
+ fn: endsWithFilterFN
477
407
  }, {
478
- type: 'endsWith',
479
- label: localization.filterMenuItemEndsWith,
480
- divider: true
408
+ type: MRT_FILTER_TYPE.EQUALS,
409
+ label: localization.filterEquals,
410
+ divider: false,
411
+ fn: equalsFilterFN
481
412
  }, {
482
- type: 'equals',
483
- label: localization.filterMenuItemEquals,
484
- divider: false
413
+ type: MRT_FILTER_TYPE.NOT_EQUALS,
414
+ label: localization.filterNotEquals,
415
+ divider: true,
416
+ fn: notEqualsFilterFN
485
417
  }, {
486
- type: 'notEquals',
487
- label: localization.filterMenuItemNotEquals,
488
- divider: true
418
+ type: MRT_FILTER_TYPE.GREATER_THAN,
419
+ label: localization.filterGreaterThan,
420
+ divider: false,
421
+ fn: greaterThanFilterFN
489
422
  }, {
490
- type: 'empty',
491
- label: localization.filterMenuItemEmpty,
492
- divider: false
423
+ type: MRT_FILTER_TYPE.LESS_THAN,
424
+ label: localization.filterLessThan,
425
+ divider: true,
426
+ fn: lessThanFilterFN
493
427
  }, {
494
- type: 'notEmpty',
495
- label: localization.filterMenuItemNotEmpty,
496
- divider: false
428
+ type: MRT_FILTER_TYPE.EMPTY,
429
+ label: localization.filterEmpty,
430
+ divider: false,
431
+ fn: emptyFilterFN
432
+ }, {
433
+ type: MRT_FILTER_TYPE.NOT_EMPTY,
434
+ label: localization.filterNotEmpty,
435
+ divider: false,
436
+ fn: notEmptyFilterFN
497
437
  }];
498
438
  }, []);
499
439
 
@@ -505,7 +445,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
505
445
  return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
506
446
  });
507
447
 
508
- if (['empty', 'notEmpty'].includes(value)) {
448
+ if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
509
449
  column.setFilter(' ');
510
450
  }
511
451
 
@@ -524,28 +464,28 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
524
464
  },
525
465
  open: !!anchorEl,
526
466
  MenuListProps: {
527
- dense: tableInstance.state.densePadding,
528
- disablePadding: true
467
+ dense: tableInstance.state.densePadding
529
468
  }
530
- }, filterTypes.map(function (_ref2) {
469
+ }, filterTypes.map(function (_ref2, index) {
531
470
  var type = _ref2.type,
532
471
  label = _ref2.label,
533
- divider = _ref2.divider;
472
+ divider = _ref2.divider,
473
+ fn = _ref2.fn;
534
474
  return React__default.createElement(material.MenuItem, {
535
475
  divider: divider,
536
- key: type,
476
+ key: index,
537
477
  onClick: function onClick() {
538
478
  return handleSelectFilterType(type);
539
479
  },
540
- selected: type === filterType,
541
- value: type,
542
- sx: commonMenuItemStyles
480
+ selected: type === filterType || fn === filterType,
481
+ sx: commonMenuItemStyles,
482
+ value: type
543
483
  }, label);
544
484
  }));
545
485
  };
546
486
 
547
487
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
548
- var _localization$filterT, _localization$filterT2;
488
+ var _localization$filterB, _localization$clearFi, _column$filterSelectO;
549
489
 
550
490
  var column = _ref.column;
551
491
 
@@ -593,7 +533,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
593
533
  setCurrentFilterTypes(function (prev) {
594
534
  var _extends2;
595
535
 
596
- return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
536
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = MRT_FILTER_TYPE.FUZZY, _extends2));
597
537
  });
598
538
  };
599
539
 
@@ -604,8 +544,10 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
604
544
  }
605
545
 
606
546
  var filterType = tableInstance.state.currentFilterTypes[column.id];
607
- var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
608
- var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
547
+ var isSelectFilter = !!column.filterSelectOptions;
548
+ var filterChipLabel = !(filterType instanceof Function) && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType) ? //@ts-ignore
549
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))] : '';
550
+ var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.Header));
609
551
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
610
552
  fullWidth: true,
611
553
  id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
@@ -617,8 +559,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
617
559
  },
618
560
  title: filterPlaceholder
619
561
  },
562
+ helperText: filterType instanceof Function ? '' : localization.filterMode.replace('{filterType}', // @ts-ignore
563
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]),
564
+ FormHelperTextProps: {
565
+ sx: {
566
+ fontSize: '0.6rem',
567
+ lineHeight: '0.8rem'
568
+ }
569
+ },
570
+ label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
571
+ InputLabelProps: {
572
+ shrink: false,
573
+ sx: {
574
+ maxWidth: 'calc(100% - 2.5rem)'
575
+ },
576
+ title: filterPlaceholder
577
+ },
620
578
  margin: "none",
621
- placeholder: filterChipLabel ? '' : filterPlaceholder,
579
+ placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
622
580
  onChange: function onChange(e) {
623
581
  setFilterValue(e.target.value);
624
582
  handleChange(e.target.value);
@@ -626,34 +584,36 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
626
584
  onClick: function onClick(e) {
627
585
  return e.stopPropagation();
628
586
  },
587
+ select: isSelectFilter,
629
588
  value: filterValue != null ? filterValue : '',
630
589
  variant: "standard",
631
590
  InputProps: {
632
- startAdornment: React__default.createElement(material.InputAdornment, {
591
+ startAdornment: !isSelectFilter && React__default.createElement(material.InputAdornment, {
633
592
  position: "start"
634
593
  }, React__default.createElement(material.Tooltip, {
635
594
  arrow: true,
636
- title: "Change Filter Mode"
637
- }, React__default.createElement(material.IconButton, {
595
+ title: localization.changeFilterMode
596
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
638
597
  onClick: handleFilterMenuOpen,
639
598
  size: "small",
640
599
  sx: {
641
600
  height: '1.75rem',
642
601
  width: '1.75rem'
643
602
  }
644
- }, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
603
+ }, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
645
604
  onDelete: handleClearFilterChip,
646
- label: filterType
605
+ label: filterChipLabel
647
606
  })),
648
607
  endAdornment: !filterChipLabel && React__default.createElement(material.InputAdornment, {
649
608
  position: "end"
650
609
  }, React__default.createElement(material.Tooltip, {
651
610
  arrow: true,
611
+ disableHoverListener: isSelectFilter,
652
612
  placement: "right",
653
- title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
613
+ title: (_localization$clearFi = localization.clearFilter) != null ? _localization$clearFi : ''
654
614
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
655
- "aria-label": localization.filterTextFieldClearButtonTitle,
656
- disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
615
+ "aria-label": localization.clearFilter,
616
+ disabled: !(filterValue != null && filterValue.length),
657
617
  onClick: handleClear,
658
618
  size: "small",
659
619
  sx: {
@@ -666,10 +626,35 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
666
626
  }
667
627
  }, textFieldProps, {
668
628
  sx: _extends({
669
- m: '0 -0.25rem',
629
+ m: '-0.25rem',
630
+ p: 0,
670
631
  minWidth: !filterChipLabel ? '5rem' : 'auto',
671
- width: 'calc(100% + 0.5rem)'
632
+ width: 'calc(100% + 0.5rem)',
633
+ mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
634
+ '& .MuiSelect-icon': {
635
+ mr: '1.5rem'
636
+ }
672
637
  }, textFieldProps == null ? void 0 : textFieldProps.sx)
638
+ }), isSelectFilter && React__default.createElement(material.MenuItem, {
639
+ divider: true,
640
+ disabled: !filterValue,
641
+ value: ""
642
+ }, localization.clearFilter), column == null ? void 0 : (_column$filterSelectO = column.filterSelectOptions) == null ? void 0 : _column$filterSelectO.map(function (option) {
643
+ var value;
644
+ var text;
645
+
646
+ if (typeof option === 'string') {
647
+ value = option;
648
+ text = option;
649
+ } else if (typeof option === 'object') {
650
+ value = option.value;
651
+ text = option.text;
652
+ }
653
+
654
+ return React__default.createElement(material.MenuItem, {
655
+ key: value,
656
+ value: value
657
+ }, text);
673
658
  })), React__default.createElement(MRT_FilterTypeMenu, {
674
659
  anchorEl: anchorEl,
675
660
  column: column,
@@ -677,6 +662,298 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
677
662
  }));
678
663
  };
679
664
 
665
+ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
666
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
667
+
668
+ var column = _ref.column,
669
+ isSubMenu = _ref.isSubMenu;
670
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
671
+ var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
672
+ return childColumn.isVisible;
673
+ }));
674
+ var switchChecked = (_column$isVisible = column.isVisible) != null ? _column$isVisible : allChildColumnsVisible;
675
+
676
+ var handleToggleColumnHidden = function handleToggleColumnHidden(column) {
677
+ if (isParentHeader) {
678
+ var _column$columns3;
679
+
680
+ column == null ? void 0 : (_column$columns3 = column.columns) == null ? void 0 : _column$columns3.forEach == null ? void 0 : _column$columns3.forEach(function (childColumn) {
681
+ childColumn.toggleHidden(switchChecked);
682
+ });
683
+ } else {
684
+ column.toggleHidden();
685
+ }
686
+ };
687
+
688
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
689
+ sx: _extends({}, commonMenuItemStyles$1, {
690
+ pl: (column.depth + 0.5) * 2 + "rem"
691
+ })
692
+ }, React__default.createElement(material.FormControlLabel, {
693
+ componentsProps: {
694
+ typography: {
695
+ sx: {
696
+ marginBottom: 0
697
+ }
698
+ }
699
+ },
700
+ checked: switchChecked,
701
+ control: React__default.createElement(material.Switch, null),
702
+ disabled: isSubMenu && switchChecked,
703
+ label: column.Header,
704
+ onChange: function onChange() {
705
+ return handleToggleColumnHidden(column);
706
+ }
707
+ })), (_column$columns4 = column.columns) == null ? void 0 : _column$columns4.map(function (c, i) {
708
+ return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
709
+ key: i + "-" + c.id,
710
+ column: c,
711
+ isSubMenu: isSubMenu
712
+ });
713
+ }));
714
+ };
715
+
716
+ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
717
+ var anchorEl = _ref.anchorEl,
718
+ isSubMenu = _ref.isSubMenu,
719
+ setAnchorEl = _ref.setAnchorEl;
720
+
721
+ var _useMRT = useMRT(),
722
+ localization = _useMRT.localization,
723
+ tableInstance = _useMRT.tableInstance;
724
+
725
+ return React__default.createElement(material.Menu, {
726
+ anchorEl: anchorEl,
727
+ open: !!anchorEl,
728
+ onClose: function onClose() {
729
+ return setAnchorEl(null);
730
+ },
731
+ MenuListProps: {
732
+ dense: tableInstance.state.densePadding
733
+ }
734
+ }, React__default.createElement(material.Box, {
735
+ sx: {
736
+ display: 'flex',
737
+ justifyContent: isSubMenu ? 'center' : 'space-between',
738
+ p: '0.5rem',
739
+ pt: 0
740
+ }
741
+ }, !isSubMenu && React__default.createElement(material.Button, {
742
+ disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
743
+ onClick: function onClick() {
744
+ return tableInstance.toggleHideAllColumns(true);
745
+ }
746
+ }, localization.hideAll), React__default.createElement(material.Button, {
747
+ disabled: tableInstance.getToggleHideAllColumnsProps().checked,
748
+ onClick: function onClick() {
749
+ return tableInstance.toggleHideAllColumns(false);
750
+ }
751
+ }, localization.showAll)), React__default.createElement(material.Divider, null), tableInstance.columns.map(function (column, index) {
752
+ return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
753
+ column: column,
754
+ isSubMenu: isSubMenu,
755
+ key: index + "-" + column.id
756
+ });
757
+ }));
758
+ };
759
+
760
+ var commonMenuItemStyles$1 = {
761
+ py: '6px',
762
+ my: 0,
763
+ justifyContent: 'space-between',
764
+ alignItems: 'center'
765
+ };
766
+ var commonListItemStyles = {
767
+ display: 'flex',
768
+ gap: '0.75rem',
769
+ alignItems: 'center'
770
+ };
771
+ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
772
+ var _localization$sortByC, _localization$sortByC2, _localization$filterB, _localization, _localization$hideCol, _tableInstance$state$, _localization$showAll;
773
+
774
+ var anchorEl = _ref.anchorEl,
775
+ column = _ref.column,
776
+ setAnchorEl = _ref.setAnchorEl;
777
+
778
+ var _useMRT = useMRT(),
779
+ disableColumnHiding = _useMRT.disableColumnHiding,
780
+ disableFilters = _useMRT.disableFilters,
781
+ disableSortBy = _useMRT.disableSortBy,
782
+ enableColumnGrouping = _useMRT.enableColumnGrouping,
783
+ _useMRT$icons = _useMRT.icons,
784
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
785
+ ClearAllIcon = _useMRT$icons.ClearAllIcon,
786
+ ViewColumnIcon = _useMRT$icons.ViewColumnIcon,
787
+ DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
788
+ FilterListIcon = _useMRT$icons.FilterListIcon,
789
+ FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
790
+ SortIcon = _useMRT$icons.SortIcon,
791
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
792
+ idPrefix = _useMRT.idPrefix,
793
+ localization = _useMRT.localization,
794
+ setShowFilters = _useMRT.setShowFilters,
795
+ tableInstance = _useMRT.tableInstance;
796
+
797
+ var _useState = React.useState(null),
798
+ filterMenuAnchorEl = _useState[0],
799
+ setFilterMenuAnchorEl = _useState[1];
800
+
801
+ var _useState2 = React.useState(null),
802
+ showHideColumnsMenuAnchorEl = _useState2[0],
803
+ setShowHideColumnsMenuAnchorEl = _useState2[1];
804
+
805
+ var handleClearSort = function handleClearSort() {
806
+ column.clearSortBy();
807
+ setAnchorEl(null);
808
+ };
809
+
810
+ var handleSortAsc = function handleSortAsc() {
811
+ column.toggleSortBy(false);
812
+ setAnchorEl(null);
813
+ };
814
+
815
+ var handleSortDesc = function handleSortDesc() {
816
+ column.toggleSortBy(true);
817
+ setAnchorEl(null);
818
+ };
819
+
820
+ var handleHideColumn = function handleHideColumn() {
821
+ column.toggleHidden();
822
+ setAnchorEl(null);
823
+ };
824
+
825
+ var handleGroupByColumn = function handleGroupByColumn() {
826
+ column.toggleGroupBy();
827
+ setAnchorEl(null);
828
+ };
829
+
830
+ var handleClearFilter = function handleClearFilter() {
831
+ column.setFilter('');
832
+ setAnchorEl(null);
833
+ };
834
+
835
+ var handleFilterByColumn = function handleFilterByColumn() {
836
+ setShowFilters(true);
837
+ setTimeout(function () {
838
+ var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
839
+
840
+ return (_document$getElementB = document.getElementById( // @ts-ignore
841
+ (_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();
842
+ }, 200);
843
+ setAnchorEl(null);
844
+ };
845
+
846
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
847
+ event.stopPropagation();
848
+ setFilterMenuAnchorEl(event.currentTarget);
849
+ };
850
+
851
+ var handleShowAllColumns = function handleShowAllColumns() {
852
+ tableInstance.toggleHideAllColumns(false);
853
+ };
854
+
855
+ var handleOpenShowHideColumnsMenu = function handleOpenShowHideColumnsMenu(event) {
856
+ event.stopPropagation();
857
+ setShowHideColumnsMenuAnchorEl(event.currentTarget);
858
+ };
859
+
860
+ return React__default.createElement(material.Menu, {
861
+ anchorEl: anchorEl,
862
+ open: !!anchorEl,
863
+ onClose: function onClose() {
864
+ return setAnchorEl(null);
865
+ },
866
+ MenuListProps: {
867
+ dense: tableInstance.state.densePadding
868
+ }
869
+ }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
870
+ disabled: !column.isSorted,
871
+ key: 0,
872
+ onClick: handleClearSort,
873
+ sx: commonMenuItemStyles$1
874
+ }, React__default.createElement(material.Box, {
875
+ sx: commonListItemStyles
876
+ }, React__default.createElement(ClearAllIcon, null), localization.clearSort)), React__default.createElement(material.MenuItem, {
877
+ disabled: column.isSorted && !column.isSortedDesc,
878
+ key: 1,
879
+ onClick: handleSortAsc,
880
+ sx: commonMenuItemStyles$1
881
+ }, React__default.createElement(material.Box, {
882
+ sx: commonListItemStyles
883
+ }, React__default.createElement(SortIcon, null), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
884
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
885
+ key: 2,
886
+ disabled: column.isSorted && column.isSortedDesc,
887
+ onClick: handleSortDesc,
888
+ sx: commonMenuItemStyles$1
889
+ }, React__default.createElement(material.Box, {
890
+ sx: commonListItemStyles
891
+ }, React__default.createElement(SortIcon, {
892
+ style: {
893
+ transform: 'rotate(180deg) scaleX(-1)'
894
+ }
895
+ }), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
896
+ disabled: !column.filterValue,
897
+ key: 0,
898
+ onClick: handleClearFilter,
899
+ sx: commonMenuItemStyles$1
900
+ }, React__default.createElement(material.Box, {
901
+ sx: commonListItemStyles
902
+ }, React__default.createElement(FilterListOffIcon, null), localization.clearFilter)), React__default.createElement(material.MenuItem, {
903
+ divider: enableColumnGrouping || !disableColumnHiding,
904
+ key: 1,
905
+ onClick: handleFilterByColumn,
906
+ sx: commonMenuItemStyles$1
907
+ }, React__default.createElement(material.Box, {
908
+ sx: commonListItemStyles
909
+ }, React__default.createElement(FilterListIcon, null), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.Header))), !column.filterSelectOptions && React__default.createElement(material.IconButton, {
910
+ onClick: handleOpenFilterModeMenu,
911
+ onMouseEnter: handleOpenFilterModeMenu,
912
+ size: "small",
913
+ sx: {
914
+ p: 0
915
+ }
916
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
917
+ anchorEl: filterMenuAnchorEl,
918
+ column: column,
919
+ key: 2,
920
+ setAnchorEl: setFilterMenuAnchorEl,
921
+ onSelect: handleFilterByColumn
922
+ })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
923
+ divider: !disableColumnHiding,
924
+ key: 0,
925
+ onClick: handleGroupByColumn,
926
+ sx: commonMenuItemStyles$1
927
+ }, React__default.createElement(material.Box, {
928
+ sx: commonListItemStyles
929
+ }, React__default.createElement(DynamicFeedIcon, null), (_localization = localization[column.isGrouped ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
930
+ key: 0,
931
+ onClick: handleHideColumn,
932
+ sx: commonMenuItemStyles$1
933
+ }, React__default.createElement(material.Box, {
934
+ sx: commonListItemStyles
935
+ }, React__default.createElement(VisibilityOffIcon, null), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
936
+ disabled: !((_tableInstance$state$ = tableInstance.state.hiddenColumns) != null && _tableInstance$state$.length),
937
+ key: 1,
938
+ onClick: handleShowAllColumns,
939
+ sx: commonMenuItemStyles$1
940
+ }, React__default.createElement(material.Box, {
941
+ sx: commonListItemStyles
942
+ }, React__default.createElement(ViewColumnIcon, null), (_localization$showAll = localization.showAllColumns) == null ? void 0 : _localization$showAll.replace('{column}', String(column.Header))), !column.filterSelectOptions && React__default.createElement(material.IconButton, {
943
+ onClick: handleOpenShowHideColumnsMenu,
944
+ onMouseEnter: handleOpenShowHideColumnsMenu,
945
+ size: "small",
946
+ sx: {
947
+ p: 0
948
+ }
949
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_ShowHideColumnsMenu, {
950
+ anchorEl: showHideColumnsMenuAnchorEl,
951
+ isSubMenu: true,
952
+ key: 2,
953
+ setAnchorEl: setShowHideColumnsMenuAnchorEl
954
+ })]);
955
+ };
956
+
680
957
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
681
958
  var column = _ref.column;
682
959
 
@@ -698,9 +975,10 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
698
975
  arrow: true,
699
976
  enterDelay: 1000,
700
977
  enterNextDelay: 1000,
701
- title: localization.columnActionMenuButtonTitle
978
+ placement: "top",
979
+ title: localization.columnActions
702
980
  }, React__default.createElement(material.IconButton, {
703
- "aria-label": localization.columnActionMenuButtonTitle,
981
+ "aria-label": localization.columnActions,
704
982
  onClick: handleClick,
705
983
  size: "small",
706
984
  sx: {
@@ -732,7 +1010,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
732
1010
  };
733
1011
  };
734
1012
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
735
- var _column$columns, _localization$columnA, _localization$columnA2;
1013
+ var _column$columns, _localization$sortByC, _localization$sortByC2;
736
1014
 
737
1015
  var column = _ref.column;
738
1016
 
@@ -756,9 +1034,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
756
1034
  style: _extends({}, column.getHeaderProps().style, mTableHeadCellProps == null ? void 0 : mTableHeadCellProps.style, mcTableHeadCellProps == null ? void 0 : mcTableHeadCellProps.style)
757
1035
  });
758
1036
 
759
- 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);
760
- var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
761
- localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
1037
+ var sortTooltip = column.isSorted ? column.isSortedDesc ? localization.clearSort : (_localization$sortByC = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC.replace('{column}', column.Header) : (_localization$sortByC2 = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC2.replace('{column}', column.Header);
1038
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
1039
+ var filterTooltip = !!column.filterValue ? localization.filteringByColumn.replace('{column}', String(column.Header)).replace('{filterType}', filterType instanceof Function ? '' : // @ts-ignore
1040
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]).replace('{filterValue}', column.filterValue) : localization.showHideFilters;
762
1041
  var columnHeader = column.render('Header');
763
1042
  return React__default.createElement(material.TableCell, Object.assign({
764
1043
  align: isParentHeader ? 'center' : 'left'
@@ -781,6 +1060,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
781
1060
  title: undefined
782
1061
  }), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
783
1062
  arrow: true,
1063
+ placement: "top",
784
1064
  title: sortTooltip
785
1065
  }, React__default.createElement(material.TableSortLabel, {
786
1066
  "aria-label": sortTooltip,
@@ -788,19 +1068,22 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
788
1068
  direction: column.isSortedDesc ? 'desc' : 'asc'
789
1069
  })), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
790
1070
  arrow: true,
1071
+ placement: "top",
791
1072
  title: filterTooltip
792
1073
  }, React__default.createElement(material.IconButton, {
1074
+ disableRipple: true,
793
1075
  onClick: function onClick(event) {
794
1076
  event.stopPropagation();
795
1077
  setShowFilters(!tableInstance.state.showFilters);
796
1078
  },
797
1079
  size: "small",
798
1080
  sx: {
1081
+ m: 0,
799
1082
  opacity: !!column.filterValue ? 0.8 : 0,
800
1083
  p: '2px',
801
- m: 0,
802
1084
  transition: 'all 0.2s ease-in-out',
803
1085
  '&:hover': {
1086
+ backgroundColor: 'transparent',
804
1087
  opacity: 0.8
805
1088
  }
806
1089
  }
@@ -958,10 +1241,10 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
958
1241
  arrow: true,
959
1242
  enterDelay: 1000,
960
1243
  enterNextDelay: 1000,
961
- title: selectAll ? localization.selectAllCheckboxTitle : localization.selectCheckboxTitle
1244
+ title: selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
962
1245
  }, React__default.createElement(material.Checkbox, Object.assign({
963
1246
  inputProps: {
964
- 'aria-label': selectAll ? localization.selectAllCheckboxTitle : localization.selectCheckboxTitle
1247
+ 'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
965
1248
  },
966
1249
  onChange: onSelectChange
967
1250
  }, checkboxProps, {
@@ -981,8 +1264,8 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
981
1264
  }, tableInstance.getToggleAllRowsExpandedProps(), {
982
1265
  sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
983
1266
  }), React__default.createElement(material.IconButton, {
984
- "aria-label": localization.expandAllButtonTitle,
985
- title: localization.expandAllButtonTitle
1267
+ "aria-label": localization.expandAll,
1268
+ title: localization.expandAll
986
1269
  }, React__default.createElement(DoubleArrowDownIcon, {
987
1270
  style: {
988
1271
  transform: "rotate(" + (tableInstance.isAllRowsExpanded ? -180 : anyRowsExpanded ? -90 : 0) + "deg)",
@@ -1022,7 +1305,7 @@ var MRT_TableHeadCellActions = function MRT_TableHeadCellActions() {
1022
1305
  sx: _extends({}, commonTableHeadCellStyles(densePadding), {
1023
1306
  textAlign: 'center'
1024
1307
  })
1025
- }, localization.actionsHeadColumnTitle);
1308
+ }, localization.actions);
1026
1309
  };
1027
1310
 
1028
1311
  var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
@@ -1128,9 +1411,9 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
1128
1411
  textAlign: 'left'
1129
1412
  })
1130
1413
  }, React__default.createElement(material.IconButton, Object.assign({
1131
- "aria-label": localization.expandButtonTitle,
1414
+ "aria-label": localization.expand,
1132
1415
  disabled: !row.canExpand && !renderDetailPanel,
1133
- title: localization.expandButtonTitle
1416
+ title: localization.expand
1134
1417
  }, row.getToggleRowExpandedProps()), React__default.createElement(ExpandMoreIcon, {
1135
1418
  style: {
1136
1419
  transform: "rotate(" + (!row.canExpand && !renderDetailPanel ? -90 : row.isExpanded ? -180 : 0) + "deg)",
@@ -1161,15 +1444,12 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
1161
1444
  return setAnchorEl(null);
1162
1445
  },
1163
1446
  MenuListProps: {
1164
- dense: tableInstance.state.densePadding,
1165
- disablePadding: true
1447
+ dense: tableInstance.state.densePadding
1166
1448
  }
1167
1449
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
1168
1450
  onClick: handleEdit,
1169
- sx: commonMenuItemStyles
1170
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(EditIcon, null)), React__default.createElement(material.ListItemText, {
1171
- sx: commonMenuItemStyles
1172
- }, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1451
+ sx: commonMenuItemStyles$1
1452
+ }, React__default.createElement(EditIcon, null), localization.edit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1173
1453
  return setAnchorEl(null);
1174
1454
  })) != null ? _renderRowActionMenuI : null);
1175
1455
  };
@@ -1983,15 +2263,15 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
1983
2263
  }
1984
2264
  }, React__default.createElement(material.Tooltip, {
1985
2265
  arrow: true,
1986
- title: localization.rowActionButtonCancel
2266
+ title: localization.cancel
1987
2267
  }, React__default.createElement(material.IconButton, {
1988
- "aria-label": localization.rowActionButtonCancel,
2268
+ "aria-label": localization.cancel,
1989
2269
  onClick: handleCancel
1990
2270
  }, React__default.createElement(CancelIcon, null))), React__default.createElement(material.Tooltip, {
1991
2271
  arrow: true,
1992
- title: localization.rowActionButtonSave
2272
+ title: localization.save
1993
2273
  }, React__default.createElement(material.IconButton, {
1994
- "aria-label": localization.rowActionButtonSave,
2274
+ "aria-label": localization.save,
1995
2275
  color: "info",
1996
2276
  onClick: handleSave
1997
2277
  }, React__default.createElement(SaveIcon, null))));
@@ -2045,7 +2325,7 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
2045
2325
  }) : !renderRowActionMenuItems && enableRowEditing ? React__default.createElement(material.Tooltip, {
2046
2326
  placement: "right",
2047
2327
  arrow: true,
2048
- title: localization.rowActionMenuItemEdit
2328
+ title: localization.edit
2049
2329
  }, React__default.createElement(material.IconButton, {
2050
2330
  sx: commonIconButtonStyles,
2051
2331
  onClick: handleEdit
@@ -2053,9 +2333,9 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
2053
2333
  arrow: true,
2054
2334
  enterDelay: 1000,
2055
2335
  enterNextDelay: 1000,
2056
- title: localization.rowActionMenuButtonTitle
2336
+ title: localization.rowActions
2057
2337
  }, React__default.createElement(material.IconButton, {
2058
- "aria-label": localization.rowActionMenuButtonTitle,
2338
+ "aria-label": localization.rowActions,
2059
2339
  onClick: handleOpenRowActionMenu,
2060
2340
  size: "small",
2061
2341
  sx: commonIconButtonStyles
@@ -2275,7 +2555,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2275
2555
  orientation: "horizontal"
2276
2556
  }, React__default.createElement(material.TextField, Object.assign({
2277
2557
  id: "mrt-" + idPrefix + "-search-text-field",
2278
- placeholder: localization.searchTextFieldPlaceholder,
2558
+ placeholder: localization.search,
2279
2559
  onChange: function onChange(event) {
2280
2560
  setSearchValue(event.target.value);
2281
2561
  handleChange(event);
@@ -2291,11 +2571,11 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2291
2571
  endAdornment: React__default.createElement(material.InputAdornment, {
2292
2572
  position: "end"
2293
2573
  }, React__default.createElement(material.IconButton, {
2294
- "aria-label": localization.searchTextFieldClearButtonTitle,
2574
+ "aria-label": localization.clearSearch,
2295
2575
  disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
2296
2576
  onClick: handleClear,
2297
2577
  size: "small",
2298
- title: localization.searchTextFieldClearButtonTitle
2578
+ title: localization.clearSearch
2299
2579
  }, React__default.createElement(CloseIcon, {
2300
2580
  fontSize: "small"
2301
2581
  })))
@@ -2320,9 +2600,9 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
2320
2600
 
2321
2601
  return React__default.createElement(material.Tooltip, {
2322
2602
  arrow: true,
2323
- title: localization.toggleFullScreenButtonTitle
2603
+ title: localization.toggleFullScreen
2324
2604
  }, React__default.createElement(material.IconButton, Object.assign({
2325
- "aria-label": localization.toggleFilterButtonTitle,
2605
+ "aria-label": localization.showHideFilters,
2326
2606
  onClick: function onClick() {
2327
2607
  return setFullScreen(!fullScreen);
2328
2608
  },
@@ -2330,54 +2610,12 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
2330
2610
  }, rest), fullScreen ? React__default.createElement(FullscreenExitIcon, null) : React__default.createElement(FullscreenIcon, null)));
2331
2611
  };
2332
2612
 
2333
- var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
2334
- var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2335
-
2336
- var column = _ref.column;
2337
- var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
2338
- var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
2339
- return childColumn.isVisible;
2340
- }));
2341
- var switchChecked = (_column$isVisible = column.isVisible) != null ? _column$isVisible : allChildColumnsVisible;
2342
-
2343
- var handleToggleColumnHidden = function handleToggleColumnHidden(column) {
2344
- if (isParentHeader) {
2345
- var _column$columns3;
2346
-
2347
- column == null ? void 0 : (_column$columns3 = column.columns) == null ? void 0 : _column$columns3.forEach == null ? void 0 : _column$columns3.forEach(function (childColumn) {
2348
- childColumn.toggleHidden(switchChecked);
2349
- });
2350
- } else {
2351
- column.toggleHidden();
2352
- }
2353
- };
2354
-
2355
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
2356
- sx: {
2357
- pl: (column.depth + 0.5) * 2 + "rem"
2358
- }
2359
- }, React__default.createElement(material.FormControlLabel, {
2360
- checked: switchChecked,
2361
- control: React__default.createElement(material.Switch, null),
2362
- label: column.Header,
2363
- onChange: function onChange() {
2364
- return handleToggleColumnHidden(column);
2365
- }
2366
- })), (_column$columns4 = column.columns) == null ? void 0 : _column$columns4.map(function (c, i) {
2367
- return React__default.createElement(MRT_ShowHideColumnsMenu, {
2368
- key: i + "-" + c.id,
2369
- column: c
2370
- });
2371
- }));
2372
- };
2373
-
2374
2613
  var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2375
2614
  var rest = _extends({}, _ref);
2376
2615
 
2377
2616
  var _useMRT = useMRT(),
2378
2617
  ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2379
- localization = _useMRT.localization,
2380
- tableInstance = _useMRT.tableInstance;
2618
+ localization = _useMRT.localization;
2381
2619
 
2382
2620
  var _useState = React.useState(null),
2383
2621
  anchorEl = _useState[0],
@@ -2389,44 +2627,15 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2389
2627
 
2390
2628
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Tooltip, {
2391
2629
  arrow: true,
2392
- title: localization.showHideColumnsButtonTitle
2630
+ title: localization.showHideColumns
2393
2631
  }, React__default.createElement(material.IconButton, Object.assign({
2394
- "aria-label": localization.showHideColumnsButtonTitle,
2632
+ "aria-label": localization.showHideColumns,
2395
2633
  onClick: handleClick,
2396
2634
  size: "small"
2397
- }, rest), React__default.createElement(ViewColumnIcon, null))), React__default.createElement(material.Menu, {
2635
+ }, rest), React__default.createElement(ViewColumnIcon, null))), React__default.createElement(MRT_ShowHideColumnsMenu, {
2398
2636
  anchorEl: anchorEl,
2399
- open: !!anchorEl,
2400
- onClose: function onClose() {
2401
- return setAnchorEl(null);
2402
- },
2403
- MenuListProps: {
2404
- dense: tableInstance.state.densePadding,
2405
- disablePadding: true
2406
- },
2407
- sx: commonMenuItemStyles
2408
- }, React__default.createElement(material.Box, {
2409
- sx: {
2410
- display: 'flex',
2411
- justifyContent: 'space-between',
2412
- p: '0.5rem'
2413
- }
2414
- }, React__default.createElement(material.Button, {
2415
- disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
2416
- onClick: function onClick() {
2417
- return tableInstance.toggleHideAllColumns(true);
2418
- }
2419
- }, localization.columnShowHideMenuHideAll), React__default.createElement(material.Button, {
2420
- disabled: tableInstance.getToggleHideAllColumnsProps().checked,
2421
- onClick: function onClick() {
2422
- return tableInstance.toggleHideAllColumns(false);
2423
- }
2424
- }, localization.columnShowHideMenuShowAll)), React__default.createElement(material.Divider, null), tableInstance.columns.map(function (column, index) {
2425
- return React__default.createElement(MRT_ShowHideColumnsMenu, {
2426
- key: index + "-" + column.id,
2427
- column: column
2428
- });
2429
- })));
2637
+ setAnchorEl: setAnchorEl
2638
+ }));
2430
2639
  };
2431
2640
 
2432
2641
  var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
@@ -2442,9 +2651,9 @@ var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
2442
2651
 
2443
2652
  return React__default.createElement(material.Tooltip, {
2444
2653
  arrow: true,
2445
- title: localization.toggleDensePaddingSwitchTitle
2654
+ title: localization.toggleDensePadding
2446
2655
  }, React__default.createElement(material.IconButton, Object.assign({
2447
- "aria-label": localization.toggleDensePaddingSwitchTitle,
2656
+ "aria-label": localization.toggleDensePadding,
2448
2657
  onClick: function onClick() {
2449
2658
  return setDensePadding(!densePadding);
2450
2659
  },
@@ -2465,9 +2674,9 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
2465
2674
 
2466
2675
  return React__default.createElement(material.Tooltip, {
2467
2676
  arrow: true,
2468
- title: localization.toggleFilterButtonTitle
2677
+ title: localization.showHideFilters
2469
2678
  }, React__default.createElement(material.IconButton, Object.assign({
2470
- "aria-label": localization.toggleFilterButtonTitle,
2679
+ "aria-label": localization.showHideFilters,
2471
2680
  onClick: function onClick() {
2472
2681
  return setShowFilters(!showFilters);
2473
2682
  },
@@ -2499,7 +2708,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2499
2708
 
2500
2709
  return React__default.createElement(material.Tooltip, {
2501
2710
  arrow: true,
2502
- title: localization.toggleSearchButtonTitle
2711
+ title: localization.showHideSearch
2503
2712
  }, React__default.createElement(material.IconButton, Object.assign({
2504
2713
  size: "small",
2505
2714
  onClick: handleToggleSearch
@@ -2574,7 +2783,7 @@ var MRT_TablePagination = function MRT_TablePagination() {
2574
2783
  };
2575
2784
 
2576
2785
  var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
2577
- var _localization$toolbar, _localization$toolbar2;
2786
+ var _localization$selecte, _localization$selecte2;
2578
2787
 
2579
2788
  var _useMRT = useMRT(),
2580
2789
  muiTableToolbarAlertBannerProps = _useMRT.muiTableToolbarAlertBannerProps,
@@ -2586,13 +2795,13 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
2586
2795
 
2587
2796
  var isMobile = material.useMediaQuery('(max-width:720px)');
2588
2797
  var alertProps = muiTableToolbarAlertBannerProps instanceof Function ? muiTableToolbarAlertBannerProps(tableInstance) : muiTableToolbarAlertBannerProps;
2589
- var selectMessage = tableInstance.selectedFlatRows.length > 0 ? (_localization$toolbar = localization.toolbarAlertSelectionMessage) == null ? void 0 : (_localization$toolbar2 = _localization$toolbar.replace('{selectedCount}', tableInstance.selectedFlatRows.length.toString())) == null ? void 0 : _localization$toolbar2.replace('{rowCount}', tableInstance.flatRows.length.toString()) : null;
2590
- var groupedByMessage = tableInstance.state.groupBy.length > 0 ? React__default.createElement("span", null, localization.toolbarAlertGroupedByMessage, ' ', tableInstance.state.groupBy.map(function (columnId, index) {
2798
+ var selectMessage = tableInstance.selectedFlatRows.length > 0 ? (_localization$selecte = localization.selectedCountOfRowCountRowsSelected) == null ? void 0 : (_localization$selecte2 = _localization$selecte.replace('{selectedCount}', tableInstance.selectedFlatRows.length.toString())) == null ? void 0 : _localization$selecte2.replace('{rowCount}', tableInstance.flatRows.length.toString()) : null;
2799
+ var groupedByMessage = tableInstance.state.groupBy.length > 0 ? React__default.createElement("span", null, localization.groupedBy, ' ', tableInstance.state.groupBy.map(function (columnId, index) {
2591
2800
  var _tableInstance$allCol;
2592
2801
 
2593
2802
  return React__default.createElement(React.Fragment, {
2594
2803
  key: index + "-" + columnId
2595
- }, index > 0 ? localization.toolbarAlertGroupedThenByMessage : '', React__default.createElement(material.Chip, {
2804
+ }, index > 0 ? localization.thenBy : '', React__default.createElement(material.Chip, {
2596
2805
  color: "secondary",
2597
2806
  label: (_tableInstance$allCol = tableInstance.allColumns.find(function (column) {
2598
2807
  return column.id === columnId;
@@ -2764,50 +2973,50 @@ var MRT_TableContainer = function MRT_TableContainer() {
2764
2973
  };
2765
2974
 
2766
2975
  var MRT_DefaultLocalization_EN = {
2767
- actionsHeadColumnTitle: 'Actions',
2768
- columnActionMenuButtonTitle: 'Column Actions',
2769
- columnActionMenuItemClearSort: 'Clear sort',
2770
- columnActionMenuItemGroupBy: 'Group by {column}',
2771
- columnActionMenuItemHideColumn: 'Hide {column} column',
2772
- columnActionMenuItemSortAsc: 'Sort by {column} ascending',
2773
- columnActionMenuItemSortDesc: 'Sort by {column} descending',
2774
- columnActionMenuItemUnGroupBy: 'Ungroup by {column}',
2775
- columnShowHideMenuHideAll: 'Hide all',
2776
- columnShowHideMenuShowAll: 'Show all',
2777
- expandAllButtonTitle: 'Expand all',
2778
- expandButtonTitle: 'Expand',
2779
- filterApplied: 'Filtering by {column} - ({filterType})',
2780
- filterMenuItemContains: 'Contains Exact',
2781
- filterMenuItemEmpty: 'Empty',
2782
- filterMenuItemEndsWith: 'Ends With',
2783
- filterMenuItemEquals: 'Equals',
2784
- filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2785
- filterMenuItemNotEmpty: 'Not Empty',
2786
- filterMenuItemNotEquals: 'Not Equals',
2787
- filterMenuItemStartsWith: 'Starts With',
2788
- filterMenuTitle: 'Filter Mode',
2789
- filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2790
- filterTextFieldChipLabelEmpty: 'Empty',
2791
- filterTextFieldChipLabelNotEmpty: 'Not Empty',
2792
- filterTextFieldClearButtonTitle: 'Clear filter',
2793
- filterTextFieldPlaceholder: 'Filter by {column}',
2794
- rowActionButtonCancel: 'Cancel',
2795
- rowActionButtonSave: 'Save',
2796
- rowActionMenuButtonTitle: 'Row Actions',
2797
- rowActionMenuItemEdit: 'Edit',
2798
- rowActionsColumnTitle: 'Actions',
2799
- searchTextFieldClearButtonTitle: 'Clear search',
2800
- searchTextFieldPlaceholder: 'Search',
2801
- selectAllCheckboxTitle: 'Toggle select all',
2802
- selectCheckboxTitle: 'Toggle select row',
2803
- showHideColumnsButtonTitle: 'Show/Hide columns',
2804
- toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2805
- toggleFilterButtonTitle: 'Show/Hide filters',
2806
- toggleFullScreenButtonTitle: 'Toggle full screen',
2807
- toggleSearchButtonTitle: 'Show/Hide search',
2808
- toolbarAlertGroupedByMessage: 'Grouped by ',
2809
- toolbarAlertGroupedThenByMessage: ', then by ',
2810
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2976
+ actions: 'Actions',
2977
+ cancel: 'Cancel',
2978
+ changeFilterMode: 'Change filter mode',
2979
+ clearFilter: 'Clear filter',
2980
+ clearSearch: 'Clear search',
2981
+ clearSort: 'Clear sort',
2982
+ columnActions: 'Column Actions',
2983
+ edit: 'Edit',
2984
+ expand: 'Expand',
2985
+ expandAll: 'Expand all',
2986
+ filterByColumn: 'Filter by {column}',
2987
+ filterContains: 'Contains Exact',
2988
+ filterEmpty: 'Empty',
2989
+ filterEndsWith: 'Ends With',
2990
+ filterEquals: 'Equals',
2991
+ filterFuzzy: 'Fuzzy Match',
2992
+ filterGreaterThan: 'Greater Than',
2993
+ filterLessThan: 'Less Than',
2994
+ filterMode: 'Filter Mode: {filterType}',
2995
+ filterNotEmpty: 'Not Empty',
2996
+ filterNotEquals: 'Not Equals',
2997
+ filterStartsWith: 'Starts With',
2998
+ filteringByColumn: 'Filtering by {column} - {filterType} "{filterValue}"',
2999
+ groupByColumn: 'Group by {column}',
3000
+ groupedBy: 'Grouped by ',
3001
+ hideAll: 'Hide all',
3002
+ hideColumn: 'Hide {column} column',
3003
+ rowActions: 'Row Actions',
3004
+ save: 'Save',
3005
+ search: 'Search',
3006
+ selectedCountOfRowCountRowsSelected: '{selectedCount} of {rowCount} row(s) selected',
3007
+ showAll: 'Show all',
3008
+ showAllColumns: 'Show all columns',
3009
+ showHideColumns: 'Show/Hide columns',
3010
+ showHideFilters: 'Show/Hide filters',
3011
+ showHideSearch: 'Show/Hide search',
3012
+ sortByColumnAsc: 'Sort by {column} ascending',
3013
+ sortByColumnDesc: 'Sort by {column} descending',
3014
+ thenBy: ', then by ',
3015
+ toggleDensePadding: 'Toggle dense padding',
3016
+ toggleFullScreen: 'Toggle full screen',
3017
+ toggleSelectAll: 'Toggle select all',
3018
+ toggleSelectRow: 'Toggle select row',
3019
+ ungroupByColumn: 'Ungroup by {column}'
2811
3020
  };
2812
3021
 
2813
3022
  var MRT_Default_Icons = {