material-react-table 0.5.8 → 0.6.1

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 +1 -10
  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 +43 -44
  19. package/dist/material-react-table.cjs.development.js +375 -227
  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 +367 -221
  24. package/dist/material-react-table.esm.js.map +1 -1
  25. package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
  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 +3 -3
  32. package/src/MaterialReactTable.tsx +1 -11
  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 -52
  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 +31 -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 +20 -7
  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 +35 -11
  58. package/src/inputs/MRT_SearchTextField.tsx +3 -3
  59. package/src/inputs/MRT_SelectCheckbox.tsx +5 -5
  60. package/src/localization.ts +87 -88
  61. package/src/menus/MRT_ColumnActionMenu.tsx +60 -15
  62. package/src/menus/MRT_FilterTypeMenu.tsx +45 -11
  63. package/src/menus/MRT_RowActionMenu.tsx +2 -2
  64. package/src/menus/MRT_ShowHideColumnsMenu.tsx +53 -36
  65. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +57 -0
  66. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -3
  67. package/src/useMRT.tsx +22 -4
@@ -104,6 +104,21 @@ function _objectWithoutPropertiesLoose(source, excluded) {
104
104
  return target;
105
105
  }
106
106
 
107
+ var fuzzySearchFN = function fuzzySearchFN(rows, columnIds, filterValue) {
108
+ return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
+ keys: columnIds.map(function (c) {
110
+ return "values." + c;
111
+ }),
112
+ sorter: function sorter(rankedItems) {
113
+ return rankedItems;
114
+ }
115
+ });
116
+ };
117
+
118
+ fuzzySearchFN.autoRemove = function (val) {
119
+ return !val;
120
+ };
121
+
107
122
  var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
108
123
  return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
124
  keys: ["values." + id],
@@ -167,6 +182,26 @@ notEqualsFilterFN.autoRemove = function (val) {
167
182
  return !val;
168
183
  };
169
184
 
185
+ var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
186
+ return rows.filter(function (row) {
187
+ return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
188
+ });
189
+ };
190
+
191
+ greaterThanFilterFN.autoRemove = function (val) {
192
+ return !val;
193
+ };
194
+
195
+ var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
196
+ return rows.filter(function (row) {
197
+ return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
198
+ });
199
+ };
200
+
201
+ lessThanFilterFN.autoRemove = function (val) {
202
+ return !val;
203
+ };
204
+
170
205
  var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
171
206
  return rows.filter(function (row) {
172
207
  return !row.values[id].toString().toLowerCase().trim();
@@ -193,6 +228,9 @@ var defaultFilterFNs = {
193
228
  endsWith: endsWithFilterFN,
194
229
  equals: equalsFilterFN,
195
230
  fuzzy: fuzzyFilterFN,
231
+ globalFuzzy: fuzzySearchFN,
232
+ greaterThan: greaterThanFilterFN,
233
+ lessThan: lessThanFilterFN,
196
234
  notEmpty: notEmptyFilterFN,
197
235
  notEquals: notEqualsFilterFN,
198
236
  startsWith: startsWithFilterFN
@@ -203,7 +241,7 @@ var MaterialReactTableContext = /*#__PURE__*/function () {
203
241
  }();
204
242
 
205
243
  var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
206
- var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4;
244
+ var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4, _props$globalFilter;
207
245
 
208
246
  var hooks = [reactTable.useFilters, reactTable.useGlobalFilter, reactTable.useGroupBy, reactTable.useSortBy, reactTable.useExpanded, reactTable.usePagination, reactTable.useRowSelect];
209
247
  if (props.enableColumnResizing) hooks.unshift(reactTable.useResizeColumns, reactTable.useFlexLayout);
@@ -231,9 +269,35 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
231
269
  var filterTypes = React.useMemo(function () {
232
270
  return _extends({}, defaultFilterFNs, props.filterTypes);
233
271
  }, [props.filterTypes]);
272
+ var findLowestLevelCols = React.useCallback(function () {
273
+ var lowestLevelColumns = props.columns;
274
+ var currentCols = props.columns;
275
+
276
+ while (!!currentCols.length && currentCols.some(function (col) {
277
+ return col.columns;
278
+ })) {
279
+ var nextCols = currentCols.filter(function (col) {
280
+ return !!col.columns;
281
+ }).map(function (col) {
282
+ return col.columns;
283
+ }).flat();
284
+
285
+ if (nextCols.every(function (col) {
286
+ return !col.columns;
287
+ })) {
288
+ lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
289
+ }
290
+
291
+ currentCols = nextCols;
292
+ }
293
+
294
+ return lowestLevelColumns.filter(function (col) {
295
+ return !col.columns;
296
+ });
297
+ }, [props.columns]);
234
298
 
235
299
  var _useState6 = React.useState(function () {
236
- return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
300
+ return Object.assign.apply(Object, [{}].concat(findLowestLevelCols().map(function (c) {
237
301
  var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
238
302
 
239
303
  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;
@@ -243,7 +307,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
243
307
  setCurrentFilterTypes = _useState6[1];
244
308
 
245
309
  var columns = React.useMemo(function () {
246
- return props.columns.map(function (column) {
310
+ return findLowestLevelCols().map(function (column) {
247
311
  column.filter = filterTypes[currentFilterTypes[column.accessor]];
248
312
  return column;
249
313
  });
@@ -252,7 +316,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
252
316
  columns: columns,
253
317
  // @ts-ignore
254
318
  filterTypes: filterTypes,
255
- globalFilterValue: 'fuzzy',
319
+ globalFilter: (_props$globalFilter = props.globalFilter) != null ? _props$globalFilter : 'globalFuzzy',
256
320
  useControlledState: function useControlledState(state) {
257
321
  return React.useMemo(function () {
258
322
  return _extends({}, state, {
@@ -302,6 +366,21 @@ var useMRT = function useMRT() {
302
366
  return React.useContext(MaterialReactTableContext);
303
367
  };
304
368
 
369
+ var MRT_FILTER_TYPE;
370
+
371
+ (function (MRT_FILTER_TYPE) {
372
+ MRT_FILTER_TYPE["CONTAINS"] = "contains";
373
+ MRT_FILTER_TYPE["EMPTY"] = "empty";
374
+ MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
375
+ MRT_FILTER_TYPE["EQUALS"] = "equals";
376
+ MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
377
+ MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
378
+ MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
379
+ MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
380
+ MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
381
+ MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
382
+ })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
383
+
305
384
  var commonMenuItemStyles = {
306
385
  py: '6px',
307
386
  my: 0,
@@ -320,37 +399,55 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
320
399
 
321
400
  var filterTypes = React.useMemo(function () {
322
401
  return [{
323
- type: exports.MRT_FILTER_TYPE.FUZZY,
324
- label: localization.filterMenuItemFuzzy,
325
- divider: false
402
+ type: MRT_FILTER_TYPE.FUZZY,
403
+ label: localization.filterFuzzy,
404
+ divider: false,
405
+ fn: fuzzyFilterFN
406
+ }, {
407
+ type: MRT_FILTER_TYPE.CONTAINS,
408
+ label: localization.filterContains,
409
+ divider: true,
410
+ fn: containsFilterFN
411
+ }, {
412
+ type: MRT_FILTER_TYPE.STARTS_WITH,
413
+ label: localization.filterStartsWith,
414
+ divider: false,
415
+ fn: startsWithFilterFN
326
416
  }, {
327
- type: exports.MRT_FILTER_TYPE.CONTAINS,
328
- label: localization.filterMenuItemContains,
329
- divider: true
417
+ type: MRT_FILTER_TYPE.ENDS_WITH,
418
+ label: localization.filterEndsWith,
419
+ divider: true,
420
+ fn: endsWithFilterFN
330
421
  }, {
331
- type: exports.MRT_FILTER_TYPE.STARTS_WITH,
332
- label: localization.filterMenuItemStartsWith,
333
- divider: false
422
+ type: MRT_FILTER_TYPE.EQUALS,
423
+ label: localization.filterEquals,
424
+ divider: false,
425
+ fn: equalsFilterFN
334
426
  }, {
335
- type: exports.MRT_FILTER_TYPE.ENDS_WITH,
336
- label: localization.filterMenuItemEndsWith,
337
- divider: true
427
+ type: MRT_FILTER_TYPE.NOT_EQUALS,
428
+ label: localization.filterNotEquals,
429
+ divider: true,
430
+ fn: notEqualsFilterFN
338
431
  }, {
339
- type: exports.MRT_FILTER_TYPE.EQUALS,
340
- label: localization.filterMenuItemEquals,
341
- divider: false
432
+ type: MRT_FILTER_TYPE.GREATER_THAN,
433
+ label: localization.filterGreaterThan,
434
+ divider: false,
435
+ fn: greaterThanFilterFN
342
436
  }, {
343
- type: exports.MRT_FILTER_TYPE.NOT_EQUALS,
344
- label: localization.filterMenuItemNotEquals,
345
- divider: true
437
+ type: MRT_FILTER_TYPE.LESS_THAN,
438
+ label: localization.filterLessThan,
439
+ divider: true,
440
+ fn: lessThanFilterFN
346
441
  }, {
347
- type: exports.MRT_FILTER_TYPE.EMPTY,
348
- label: localization.filterMenuItemEmpty,
349
- divider: false
442
+ type: MRT_FILTER_TYPE.EMPTY,
443
+ label: localization.filterEmpty,
444
+ divider: false,
445
+ fn: emptyFilterFN
350
446
  }, {
351
- type: exports.MRT_FILTER_TYPE.NOT_EMPTY,
352
- label: localization.filterMenuItemNotEmpty,
353
- divider: false
447
+ type: MRT_FILTER_TYPE.NOT_EMPTY,
448
+ label: localization.filterNotEmpty,
449
+ divider: false,
450
+ fn: notEmptyFilterFN
354
451
  }];
355
452
  }, []);
356
453
 
@@ -362,7 +459,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
362
459
  return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
363
460
  });
364
461
 
365
- if ([exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
462
+ if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
366
463
  column.setFilter(' ');
367
464
  }
368
465
 
@@ -386,14 +483,15 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
386
483
  }, filterTypes.map(function (_ref2, index) {
387
484
  var type = _ref2.type,
388
485
  label = _ref2.label,
389
- divider = _ref2.divider;
486
+ divider = _ref2.divider,
487
+ fn = _ref2.fn;
390
488
  return React__default.createElement(material.MenuItem, {
391
489
  divider: divider,
392
490
  key: index,
393
491
  onClick: function onClick() {
394
492
  return handleSelectFilterType(type);
395
493
  },
396
- selected: type === filterType,
494
+ selected: type === filterType || fn === filterType,
397
495
  sx: commonMenuItemStyles,
398
496
  value: type
399
497
  }, label);
@@ -401,7 +499,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
401
499
  };
402
500
 
403
501
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
404
- var _localization$filterT, _localization$filterT2, _column$filterSelectO;
502
+ var _localization$filterB, _localization$clearFi, _column$filterSelectO;
405
503
 
406
504
  var column = _ref.column;
407
505
 
@@ -449,7 +547,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
449
547
  setCurrentFilterTypes(function (prev) {
450
548
  var _extends2;
451
549
 
452
- return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = exports.MRT_FILTER_TYPE.FUZZY, _extends2));
550
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = MRT_FILTER_TYPE.FUZZY, _extends2));
453
551
  });
454
552
  };
455
553
 
@@ -460,10 +558,10 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
460
558
  }
461
559
 
462
560
  var filterType = tableInstance.state.currentFilterTypes[column.id];
463
- var isCustomFilterType = filterType instanceof Function;
464
561
  var isSelectFilter = !!column.filterSelectOptions;
465
- var filterChipLabel = !isCustomFilterType && [exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType);
466
- var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
562
+ var filterChipLabel = !(filterType instanceof Function) && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType) ? //@ts-ignore
563
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))] : '';
564
+ var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.Header));
467
565
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
468
566
  fullWidth: true,
469
567
  id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
@@ -475,6 +573,14 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
475
573
  },
476
574
  title: filterPlaceholder
477
575
  },
576
+ helperText: filterType instanceof Function ? '' : localization.filterMode.replace('{filterType}', // @ts-ignore
577
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]),
578
+ FormHelperTextProps: {
579
+ sx: {
580
+ fontSize: '0.6rem',
581
+ lineHeight: '0.8rem'
582
+ }
583
+ },
478
584
  label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
479
585
  InputLabelProps: {
480
586
  shrink: false,
@@ -502,7 +608,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
502
608
  arrow: true,
503
609
  title: localization.changeFilterMode
504
610
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
505
- disabled: isCustomFilterType,
506
611
  onClick: handleFilterMenuOpen,
507
612
  size: "small",
508
613
  sx: {
@@ -511,7 +616,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
511
616
  }
512
617
  }, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
513
618
  onDelete: handleClearFilterChip,
514
- label: filterType
619
+ label: filterChipLabel
515
620
  })),
516
621
  endAdornment: !filterChipLabel && React__default.createElement(material.InputAdornment, {
517
622
  position: "end"
@@ -519,9 +624,9 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
519
624
  arrow: true,
520
625
  disableHoverListener: isSelectFilter,
521
626
  placement: "right",
522
- title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
627
+ title: (_localization$clearFi = localization.clearFilter) != null ? _localization$clearFi : ''
523
628
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
524
- "aria-label": localization.filterTextFieldClearButtonTitle,
629
+ "aria-label": localization.clearFilter,
525
630
  disabled: !(filterValue != null && filterValue.length),
526
631
  onClick: handleClear,
527
632
  size: "small",
@@ -535,7 +640,8 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
535
640
  }
536
641
  }, textFieldProps, {
537
642
  sx: _extends({
538
- m: '0 -0.25rem',
643
+ m: '-0.25rem',
644
+ p: 0,
539
645
  minWidth: !filterChipLabel ? '5rem' : 'auto',
540
646
  width: 'calc(100% + 0.5rem)',
541
647
  mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
@@ -547,7 +653,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
547
653
  divider: true,
548
654
  disabled: !filterValue,
549
655
  value: ""
550
- }, localization.filterTextFieldClearButtonTitle), column == null ? void 0 : (_column$filterSelectO = column.filterSelectOptions) == null ? void 0 : _column$filterSelectO.map(function (option) {
656
+ }, localization.clearFilter), column == null ? void 0 : (_column$filterSelectO = column.filterSelectOptions) == null ? void 0 : _column$filterSelectO.map(function (option) {
551
657
  var value;
552
658
  var text;
553
659
 
@@ -570,6 +676,101 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
570
676
  }));
571
677
  };
572
678
 
679
+ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
680
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
681
+
682
+ var column = _ref.column,
683
+ isSubMenu = _ref.isSubMenu;
684
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
685
+ var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
686
+ return childColumn.isVisible;
687
+ }));
688
+ var switchChecked = (_column$isVisible = column.isVisible) != null ? _column$isVisible : allChildColumnsVisible;
689
+
690
+ var handleToggleColumnHidden = function handleToggleColumnHidden(column) {
691
+ if (isParentHeader) {
692
+ var _column$columns3;
693
+
694
+ column == null ? void 0 : (_column$columns3 = column.columns) == null ? void 0 : _column$columns3.forEach == null ? void 0 : _column$columns3.forEach(function (childColumn) {
695
+ childColumn.toggleHidden(switchChecked);
696
+ });
697
+ } else {
698
+ column.toggleHidden();
699
+ }
700
+ };
701
+
702
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
703
+ sx: _extends({}, commonMenuItemStyles$1, {
704
+ pl: (column.depth + 0.5) * 2 + "rem"
705
+ })
706
+ }, React__default.createElement(material.FormControlLabel, {
707
+ componentsProps: {
708
+ typography: {
709
+ sx: {
710
+ marginBottom: 0
711
+ }
712
+ }
713
+ },
714
+ checked: switchChecked,
715
+ control: React__default.createElement(material.Switch, null),
716
+ disabled: isSubMenu && switchChecked,
717
+ label: column.Header,
718
+ onChange: function onChange() {
719
+ return handleToggleColumnHidden(column);
720
+ }
721
+ })), (_column$columns4 = column.columns) == null ? void 0 : _column$columns4.map(function (c, i) {
722
+ return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
723
+ key: i + "-" + c.id,
724
+ column: c,
725
+ isSubMenu: isSubMenu
726
+ });
727
+ }));
728
+ };
729
+
730
+ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
731
+ var anchorEl = _ref.anchorEl,
732
+ isSubMenu = _ref.isSubMenu,
733
+ setAnchorEl = _ref.setAnchorEl;
734
+
735
+ var _useMRT = useMRT(),
736
+ localization = _useMRT.localization,
737
+ tableInstance = _useMRT.tableInstance;
738
+
739
+ return React__default.createElement(material.Menu, {
740
+ anchorEl: anchorEl,
741
+ open: !!anchorEl,
742
+ onClose: function onClose() {
743
+ return setAnchorEl(null);
744
+ },
745
+ MenuListProps: {
746
+ dense: tableInstance.state.densePadding
747
+ }
748
+ }, React__default.createElement(material.Box, {
749
+ sx: {
750
+ display: 'flex',
751
+ justifyContent: isSubMenu ? 'center' : 'space-between',
752
+ p: '0.5rem',
753
+ pt: 0
754
+ }
755
+ }, !isSubMenu && React__default.createElement(material.Button, {
756
+ disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
757
+ onClick: function onClick() {
758
+ return tableInstance.toggleHideAllColumns(true);
759
+ }
760
+ }, localization.hideAll), React__default.createElement(material.Button, {
761
+ disabled: tableInstance.getToggleHideAllColumnsProps().checked,
762
+ onClick: function onClick() {
763
+ return tableInstance.toggleHideAllColumns(false);
764
+ }
765
+ }, localization.showAll)), React__default.createElement(material.Divider, null), tableInstance.columns.map(function (column, index) {
766
+ return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
767
+ column: column,
768
+ isSubMenu: isSubMenu,
769
+ key: index + "-" + column.id
770
+ });
771
+ }));
772
+ };
773
+
573
774
  var commonMenuItemStyles$1 = {
574
775
  py: '6px',
575
776
  my: 0,
@@ -582,7 +783,7 @@ var commonListItemStyles = {
582
783
  alignItems: 'center'
583
784
  };
584
785
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
585
- var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
786
+ var _localization$sortByC, _localization$sortByC2, _localization$filterB, _localization, _localization$hideCol, _tableInstance$state$, _localization$showAll;
586
787
 
587
788
  var anchorEl = _ref.anchorEl,
588
789
  column = _ref.column,
@@ -596,6 +797,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
596
797
  _useMRT$icons = _useMRT.icons,
597
798
  ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
598
799
  ClearAllIcon = _useMRT$icons.ClearAllIcon,
800
+ ViewColumnIcon = _useMRT$icons.ViewColumnIcon,
599
801
  DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
600
802
  FilterListIcon = _useMRT$icons.FilterListIcon,
601
803
  FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
@@ -610,6 +812,10 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
610
812
  filterMenuAnchorEl = _useState[0],
611
813
  setFilterMenuAnchorEl = _useState[1];
612
814
 
815
+ var _useState2 = React.useState(null),
816
+ showHideColumnsMenuAnchorEl = _useState2[0],
817
+ setShowHideColumnsMenuAnchorEl = _useState2[1];
818
+
613
819
  var handleClearSort = function handleClearSort() {
614
820
  column.clearSortBy();
615
821
  setAnchorEl(null);
@@ -656,6 +862,15 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
656
862
  setFilterMenuAnchorEl(event.currentTarget);
657
863
  };
658
864
 
865
+ var handleShowAllColumns = function handleShowAllColumns() {
866
+ tableInstance.toggleHideAllColumns(false);
867
+ };
868
+
869
+ var handleOpenShowHideColumnsMenu = function handleOpenShowHideColumnsMenu(event) {
870
+ event.stopPropagation();
871
+ setShowHideColumnsMenuAnchorEl(event.currentTarget);
872
+ };
873
+
659
874
  return React__default.createElement(material.Menu, {
660
875
  anchorEl: anchorEl,
661
876
  open: !!anchorEl,
@@ -667,21 +882,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
667
882
  }
668
883
  }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
669
884
  disabled: !column.isSorted,
670
- key: 1,
885
+ key: 0,
671
886
  onClick: handleClearSort,
672
887
  sx: commonMenuItemStyles$1
673
888
  }, React__default.createElement(material.Box, {
674
889
  sx: commonListItemStyles
675
- }, React__default.createElement(ClearAllIcon, null), localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
890
+ }, React__default.createElement(ClearAllIcon, null), localization.clearSort)), React__default.createElement(material.MenuItem, {
676
891
  disabled: column.isSorted && !column.isSortedDesc,
677
- key: 2,
892
+ key: 1,
678
893
  onClick: handleSortAsc,
679
894
  sx: commonMenuItemStyles$1
680
895
  }, React__default.createElement(material.Box, {
681
896
  sx: commonListItemStyles
682
- }, React__default.createElement(SortIcon, null), (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
897
+ }, React__default.createElement(SortIcon, null), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
683
898
  divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
684
- key: 3,
899
+ key: 2,
685
900
  disabled: column.isSorted && column.isSortedDesc,
686
901
  onClick: handleSortDesc,
687
902
  sx: commonMenuItemStyles$1
@@ -691,21 +906,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
691
906
  style: {
692
907
  transform: 'rotate(180deg) scaleX(-1)'
693
908
  }
694
- }), (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
909
+ }), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
695
910
  disabled: !column.filterValue,
696
911
  key: 0,
697
912
  onClick: handleClearFilter,
698
913
  sx: commonMenuItemStyles$1
699
914
  }, React__default.createElement(material.Box, {
700
915
  sx: commonListItemStyles
701
- }, React__default.createElement(FilterListOffIcon, null), localization.filterTextFieldClearButtonTitle)), React__default.createElement(material.MenuItem, {
916
+ }, React__default.createElement(FilterListOffIcon, null), localization.clearFilter)), React__default.createElement(material.MenuItem, {
702
917
  divider: enableColumnGrouping || !disableColumnHiding,
703
918
  key: 1,
704
919
  onClick: handleFilterByColumn,
705
920
  sx: commonMenuItemStyles$1
706
921
  }, React__default.createElement(material.Box, {
707
922
  sx: commonListItemStyles
708
- }, React__default.createElement(FilterListIcon, null), (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), !column.filterSelectOptions && React__default.createElement(material.IconButton, {
923
+ }, 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, {
709
924
  onClick: handleOpenFilterModeMenu,
710
925
  onMouseEnter: handleOpenFilterModeMenu,
711
926
  size: "small",
@@ -720,18 +935,37 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
720
935
  onSelect: handleFilterByColumn
721
936
  })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
722
937
  divider: !disableColumnHiding,
723
- key: 2,
938
+ key: 0,
724
939
  onClick: handleGroupByColumn,
725
940
  sx: commonMenuItemStyles$1
726
941
  }, React__default.createElement(material.Box, {
727
942
  sx: commonListItemStyles
728
- }, 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.MenuItem, {
729
- key: 1,
943
+ }, 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, {
944
+ key: 0,
730
945
  onClick: handleHideColumn,
731
946
  sx: commonMenuItemStyles$1
732
947
  }, React__default.createElement(material.Box, {
733
948
  sx: commonListItemStyles
734
- }, React__default.createElement(VisibilityOffIcon, null), (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
949
+ }, React__default.createElement(VisibilityOffIcon, null), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
950
+ disabled: !((_tableInstance$state$ = tableInstance.state.hiddenColumns) != null && _tableInstance$state$.length),
951
+ key: 1,
952
+ onClick: handleShowAllColumns,
953
+ sx: commonMenuItemStyles$1
954
+ }, React__default.createElement(material.Box, {
955
+ sx: commonListItemStyles
956
+ }, 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, {
957
+ onClick: handleOpenShowHideColumnsMenu,
958
+ onMouseEnter: handleOpenShowHideColumnsMenu,
959
+ size: "small",
960
+ sx: {
961
+ p: 0
962
+ }
963
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_ShowHideColumnsMenu, {
964
+ anchorEl: showHideColumnsMenuAnchorEl,
965
+ isSubMenu: true,
966
+ key: 2,
967
+ setAnchorEl: setShowHideColumnsMenuAnchorEl
968
+ })]);
735
969
  };
736
970
 
737
971
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -755,9 +989,10 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
755
989
  arrow: true,
756
990
  enterDelay: 1000,
757
991
  enterNextDelay: 1000,
758
- title: localization.columnActionMenuButtonTitle
992
+ placement: "top",
993
+ title: localization.columnActions
759
994
  }, React__default.createElement(material.IconButton, {
760
- "aria-label": localization.columnActionMenuButtonTitle,
995
+ "aria-label": localization.columnActions,
761
996
  onClick: handleClick,
762
997
  size: "small",
763
998
  sx: {
@@ -789,7 +1024,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
789
1024
  };
790
1025
  };
791
1026
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
792
- var _column$columns, _localization$columnA, _localization$columnA2;
1027
+ var _column$columns, _localization$sortByC, _localization$sortByC2;
793
1028
 
794
1029
  var column = _ref.column;
795
1030
 
@@ -813,8 +1048,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
813
1048
  style: _extends({}, column.getHeaderProps().style, mTableHeadCellProps == null ? void 0 : mTableHeadCellProps.style, mcTableHeadCellProps == null ? void 0 : mcTableHeadCellProps.style)
814
1049
  });
815
1050
 
816
- 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);
817
- var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', column.filterValue) : localization.toggleFilterButtonTitle;
1051
+ 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);
1052
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
1053
+ var filterTooltip = !!column.filterValue ? localization.filteringByColumn.replace('{column}', String(column.Header)).replace('{filterType}', filterType instanceof Function ? '' : // @ts-ignore
1054
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]).replace('{filterValue}', column.filterValue) : localization.showHideFilters;
818
1055
  var columnHeader = column.render('Header');
819
1056
  return React__default.createElement(material.TableCell, Object.assign({
820
1057
  align: isParentHeader ? 'center' : 'left'
@@ -1018,10 +1255,10 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1018
1255
  arrow: true,
1019
1256
  enterDelay: 1000,
1020
1257
  enterNextDelay: 1000,
1021
- title: selectAll ? localization.selectAllCheckboxTitle : localization.selectCheckboxTitle
1258
+ title: selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1022
1259
  }, React__default.createElement(material.Checkbox, Object.assign({
1023
1260
  inputProps: {
1024
- 'aria-label': selectAll ? localization.selectAllCheckboxTitle : localization.selectCheckboxTitle
1261
+ 'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1025
1262
  },
1026
1263
  onChange: onSelectChange
1027
1264
  }, checkboxProps, {
@@ -1041,8 +1278,8 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
1041
1278
  }, tableInstance.getToggleAllRowsExpandedProps(), {
1042
1279
  sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
1043
1280
  }), React__default.createElement(material.IconButton, {
1044
- "aria-label": localization.expandAllButtonTitle,
1045
- title: localization.expandAllButtonTitle
1281
+ "aria-label": localization.expandAll,
1282
+ title: localization.expandAll
1046
1283
  }, React__default.createElement(DoubleArrowDownIcon, {
1047
1284
  style: {
1048
1285
  transform: "rotate(" + (tableInstance.isAllRowsExpanded ? -180 : anyRowsExpanded ? -90 : 0) + "deg)",
@@ -1082,7 +1319,7 @@ var MRT_TableHeadCellActions = function MRT_TableHeadCellActions() {
1082
1319
  sx: _extends({}, commonTableHeadCellStyles(densePadding), {
1083
1320
  textAlign: 'center'
1084
1321
  })
1085
- }, localization.actionsHeadColumnTitle);
1322
+ }, localization.actions);
1086
1323
  };
1087
1324
 
1088
1325
  var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
@@ -1188,9 +1425,9 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
1188
1425
  textAlign: 'left'
1189
1426
  })
1190
1427
  }, React__default.createElement(material.IconButton, Object.assign({
1191
- "aria-label": localization.expandButtonTitle,
1428
+ "aria-label": localization.expand,
1192
1429
  disabled: !row.canExpand && !renderDetailPanel,
1193
- title: localization.expandButtonTitle
1430
+ title: localization.expand
1194
1431
  }, row.getToggleRowExpandedProps()), React__default.createElement(ExpandMoreIcon, {
1195
1432
  style: {
1196
1433
  transform: "rotate(" + (!row.canExpand && !renderDetailPanel ? -90 : row.isExpanded ? -180 : 0) + "deg)",
@@ -1226,7 +1463,7 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
1226
1463
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
1227
1464
  onClick: handleEdit,
1228
1465
  sx: commonMenuItemStyles$1
1229
- }, React__default.createElement(EditIcon, null), localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1466
+ }, React__default.createElement(EditIcon, null), localization.edit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1230
1467
  return setAnchorEl(null);
1231
1468
  })) != null ? _renderRowActionMenuI : null);
1232
1469
  };
@@ -2040,15 +2277,15 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
2040
2277
  }
2041
2278
  }, React__default.createElement(material.Tooltip, {
2042
2279
  arrow: true,
2043
- title: localization.rowActionButtonCancel
2280
+ title: localization.cancel
2044
2281
  }, React__default.createElement(material.IconButton, {
2045
- "aria-label": localization.rowActionButtonCancel,
2282
+ "aria-label": localization.cancel,
2046
2283
  onClick: handleCancel
2047
2284
  }, React__default.createElement(CancelIcon, null))), React__default.createElement(material.Tooltip, {
2048
2285
  arrow: true,
2049
- title: localization.rowActionButtonSave
2286
+ title: localization.save
2050
2287
  }, React__default.createElement(material.IconButton, {
2051
- "aria-label": localization.rowActionButtonSave,
2288
+ "aria-label": localization.save,
2052
2289
  color: "info",
2053
2290
  onClick: handleSave
2054
2291
  }, React__default.createElement(SaveIcon, null))));
@@ -2102,7 +2339,7 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
2102
2339
  }) : !renderRowActionMenuItems && enableRowEditing ? React__default.createElement(material.Tooltip, {
2103
2340
  placement: "right",
2104
2341
  arrow: true,
2105
- title: localization.rowActionMenuItemEdit
2342
+ title: localization.edit
2106
2343
  }, React__default.createElement(material.IconButton, {
2107
2344
  sx: commonIconButtonStyles,
2108
2345
  onClick: handleEdit
@@ -2110,9 +2347,9 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
2110
2347
  arrow: true,
2111
2348
  enterDelay: 1000,
2112
2349
  enterNextDelay: 1000,
2113
- title: localization.rowActionMenuButtonTitle
2350
+ title: localization.rowActions
2114
2351
  }, React__default.createElement(material.IconButton, {
2115
- "aria-label": localization.rowActionMenuButtonTitle,
2352
+ "aria-label": localization.rowActions,
2116
2353
  onClick: handleOpenRowActionMenu,
2117
2354
  size: "small",
2118
2355
  sx: commonIconButtonStyles
@@ -2332,7 +2569,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2332
2569
  orientation: "horizontal"
2333
2570
  }, React__default.createElement(material.TextField, Object.assign({
2334
2571
  id: "mrt-" + idPrefix + "-search-text-field",
2335
- placeholder: localization.searchTextFieldPlaceholder,
2572
+ placeholder: localization.search,
2336
2573
  onChange: function onChange(event) {
2337
2574
  setSearchValue(event.target.value);
2338
2575
  handleChange(event);
@@ -2348,11 +2585,11 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
2348
2585
  endAdornment: React__default.createElement(material.InputAdornment, {
2349
2586
  position: "end"
2350
2587
  }, React__default.createElement(material.IconButton, {
2351
- "aria-label": localization.searchTextFieldClearButtonTitle,
2588
+ "aria-label": localization.clearSearch,
2352
2589
  disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
2353
2590
  onClick: handleClear,
2354
2591
  size: "small",
2355
- title: localization.searchTextFieldClearButtonTitle
2592
+ title: localization.clearSearch
2356
2593
  }, React__default.createElement(CloseIcon, {
2357
2594
  fontSize: "small"
2358
2595
  })))
@@ -2377,9 +2614,9 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
2377
2614
 
2378
2615
  return React__default.createElement(material.Tooltip, {
2379
2616
  arrow: true,
2380
- title: localization.toggleFullScreenButtonTitle
2617
+ title: localization.toggleFullScreen
2381
2618
  }, React__default.createElement(material.IconButton, Object.assign({
2382
- "aria-label": localization.toggleFilterButtonTitle,
2619
+ "aria-label": localization.showHideFilters,
2383
2620
  onClick: function onClick() {
2384
2621
  return setFullScreen(!fullScreen);
2385
2622
  },
@@ -2387,61 +2624,12 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
2387
2624
  }, rest), fullScreen ? React__default.createElement(FullscreenExitIcon, null) : React__default.createElement(FullscreenIcon, null)));
2388
2625
  };
2389
2626
 
2390
- var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
2391
- var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2392
-
2393
- var column = _ref.column;
2394
- var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
2395
- var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
2396
- return childColumn.isVisible;
2397
- }));
2398
- var switchChecked = (_column$isVisible = column.isVisible) != null ? _column$isVisible : allChildColumnsVisible;
2399
-
2400
- var handleToggleColumnHidden = function handleToggleColumnHidden(column) {
2401
- if (isParentHeader) {
2402
- var _column$columns3;
2403
-
2404
- column == null ? void 0 : (_column$columns3 = column.columns) == null ? void 0 : _column$columns3.forEach == null ? void 0 : _column$columns3.forEach(function (childColumn) {
2405
- childColumn.toggleHidden(switchChecked);
2406
- });
2407
- } else {
2408
- column.toggleHidden();
2409
- }
2410
- };
2411
-
2412
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
2413
- sx: _extends({}, commonMenuItemStyles$1, {
2414
- pl: (column.depth + 0.5) * 2 + "rem"
2415
- })
2416
- }, React__default.createElement(material.FormControlLabel, {
2417
- componentsProps: {
2418
- typography: {
2419
- sx: {
2420
- marginBottom: 0
2421
- }
2422
- }
2423
- },
2424
- checked: switchChecked,
2425
- control: React__default.createElement(material.Switch, null),
2426
- label: column.Header,
2427
- onChange: function onChange() {
2428
- return handleToggleColumnHidden(column);
2429
- }
2430
- })), (_column$columns4 = column.columns) == null ? void 0 : _column$columns4.map(function (c, i) {
2431
- return React__default.createElement(MRT_ShowHideColumnsMenu, {
2432
- key: i + "-" + c.id,
2433
- column: c
2434
- });
2435
- }));
2436
- };
2437
-
2438
2627
  var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2439
2628
  var rest = _extends({}, _ref);
2440
2629
 
2441
2630
  var _useMRT = useMRT(),
2442
2631
  ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2443
- localization = _useMRT.localization,
2444
- tableInstance = _useMRT.tableInstance;
2632
+ localization = _useMRT.localization;
2445
2633
 
2446
2634
  var _useState = React.useState(null),
2447
2635
  anchorEl = _useState[0],
@@ -2453,42 +2641,15 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2453
2641
 
2454
2642
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Tooltip, {
2455
2643
  arrow: true,
2456
- title: localization.showHideColumnsButtonTitle
2644
+ title: localization.showHideColumns
2457
2645
  }, React__default.createElement(material.IconButton, Object.assign({
2458
- "aria-label": localization.showHideColumnsButtonTitle,
2646
+ "aria-label": localization.showHideColumns,
2459
2647
  onClick: handleClick,
2460
2648
  size: "small"
2461
- }, rest), React__default.createElement(ViewColumnIcon, null))), React__default.createElement(material.Menu, {
2649
+ }, rest), React__default.createElement(ViewColumnIcon, null))), React__default.createElement(MRT_ShowHideColumnsMenu, {
2462
2650
  anchorEl: anchorEl,
2463
- open: !!anchorEl,
2464
- onClose: function onClose() {
2465
- return setAnchorEl(null);
2466
- },
2467
- MenuListProps: {
2468
- dense: tableInstance.state.densePadding
2469
- }
2470
- }, React__default.createElement(material.Box, {
2471
- sx: {
2472
- display: 'flex',
2473
- justifyContent: 'space-between',
2474
- p: '0.5rem'
2475
- }
2476
- }, React__default.createElement(material.Button, {
2477
- disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
2478
- onClick: function onClick() {
2479
- return tableInstance.toggleHideAllColumns(true);
2480
- }
2481
- }, localization.columnShowHideMenuHideAll), React__default.createElement(material.Button, {
2482
- disabled: tableInstance.getToggleHideAllColumnsProps().checked,
2483
- onClick: function onClick() {
2484
- return tableInstance.toggleHideAllColumns(false);
2485
- }
2486
- }, localization.columnShowHideMenuShowAll)), React__default.createElement(material.Divider, null), tableInstance.columns.map(function (column, index) {
2487
- return React__default.createElement(MRT_ShowHideColumnsMenu, {
2488
- key: index + "-" + column.id,
2489
- column: column
2490
- });
2491
- })));
2651
+ setAnchorEl: setAnchorEl
2652
+ }));
2492
2653
  };
2493
2654
 
2494
2655
  var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
@@ -2504,9 +2665,9 @@ var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
2504
2665
 
2505
2666
  return React__default.createElement(material.Tooltip, {
2506
2667
  arrow: true,
2507
- title: localization.toggleDensePaddingSwitchTitle
2668
+ title: localization.toggleDensePadding
2508
2669
  }, React__default.createElement(material.IconButton, Object.assign({
2509
- "aria-label": localization.toggleDensePaddingSwitchTitle,
2670
+ "aria-label": localization.toggleDensePadding,
2510
2671
  onClick: function onClick() {
2511
2672
  return setDensePadding(!densePadding);
2512
2673
  },
@@ -2527,9 +2688,9 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
2527
2688
 
2528
2689
  return React__default.createElement(material.Tooltip, {
2529
2690
  arrow: true,
2530
- title: localization.toggleFilterButtonTitle
2691
+ title: localization.showHideFilters
2531
2692
  }, React__default.createElement(material.IconButton, Object.assign({
2532
- "aria-label": localization.toggleFilterButtonTitle,
2693
+ "aria-label": localization.showHideFilters,
2533
2694
  onClick: function onClick() {
2534
2695
  return setShowFilters(!showFilters);
2535
2696
  },
@@ -2561,7 +2722,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2561
2722
 
2562
2723
  return React__default.createElement(material.Tooltip, {
2563
2724
  arrow: true,
2564
- title: localization.toggleSearchButtonTitle
2725
+ title: localization.showHideSearch
2565
2726
  }, React__default.createElement(material.IconButton, Object.assign({
2566
2727
  size: "small",
2567
2728
  onClick: handleToggleSearch
@@ -2636,7 +2797,7 @@ var MRT_TablePagination = function MRT_TablePagination() {
2636
2797
  };
2637
2798
 
2638
2799
  var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
2639
- var _localization$toolbar, _localization$toolbar2;
2800
+ var _localization$selecte, _localization$selecte2;
2640
2801
 
2641
2802
  var _useMRT = useMRT(),
2642
2803
  muiTableToolbarAlertBannerProps = _useMRT.muiTableToolbarAlertBannerProps,
@@ -2648,13 +2809,13 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
2648
2809
 
2649
2810
  var isMobile = material.useMediaQuery('(max-width:720px)');
2650
2811
  var alertProps = muiTableToolbarAlertBannerProps instanceof Function ? muiTableToolbarAlertBannerProps(tableInstance) : muiTableToolbarAlertBannerProps;
2651
- 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;
2652
- var groupedByMessage = tableInstance.state.groupBy.length > 0 ? React__default.createElement("span", null, localization.toolbarAlertGroupedByMessage, ' ', tableInstance.state.groupBy.map(function (columnId, index) {
2812
+ 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;
2813
+ var groupedByMessage = tableInstance.state.groupBy.length > 0 ? React__default.createElement("span", null, localization.groupedBy, ' ', tableInstance.state.groupBy.map(function (columnId, index) {
2653
2814
  var _tableInstance$allCol;
2654
2815
 
2655
2816
  return React__default.createElement(React.Fragment, {
2656
2817
  key: index + "-" + columnId
2657
- }, index > 0 ? localization.toolbarAlertGroupedThenByMessage : '', React__default.createElement(material.Chip, {
2818
+ }, index > 0 ? localization.thenBy : '', React__default.createElement(material.Chip, {
2658
2819
  color: "secondary",
2659
2820
  label: (_tableInstance$allCol = tableInstance.allColumns.find(function (column) {
2660
2821
  return column.id === columnId;
@@ -2826,51 +2987,50 @@ var MRT_TableContainer = function MRT_TableContainer() {
2826
2987
  };
2827
2988
 
2828
2989
  var MRT_DefaultLocalization_EN = {
2829
- actionsHeadColumnTitle: 'Actions',
2830
- columnActionMenuButtonTitle: 'Column Actions',
2831
- columnActionMenuItemClearSort: 'Clear sort',
2832
- columnActionMenuItemGroupBy: 'Group by {column}',
2833
- columnActionMenuItemHideColumn: 'Hide {column} column',
2834
- columnActionMenuItemSortAsc: 'Sort by {column} ascending',
2835
- columnActionMenuItemSortDesc: 'Sort by {column} descending',
2836
- columnActionMenuItemUnGroupBy: 'Ungroup by {column}',
2837
- columnShowHideMenuHideAll: 'Hide all',
2838
- columnShowHideMenuShowAll: 'Show all',
2839
- expandAllButtonTitle: 'Expand all',
2840
- expandButtonTitle: 'Expand',
2841
- filterApplied: 'Filtering by {column} - ({filterType})',
2842
- filterMenuItemContains: 'Contains Exact',
2843
- filterMenuItemEmpty: 'Empty',
2844
- filterMenuItemEndsWith: 'Ends With',
2845
- filterMenuItemEquals: 'Equals',
2990
+ actions: 'Actions',
2991
+ cancel: 'Cancel',
2846
2992
  changeFilterMode: 'Change filter mode',
2847
- filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2848
- filterMenuItemNotEmpty: 'Not Empty',
2849
- filterMenuItemNotEquals: 'Not Equals',
2850
- filterMenuItemStartsWith: 'Starts With',
2851
- filterMenuTitle: 'Filter Mode',
2852
- filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2853
- filterTextFieldChipLabelEmpty: 'Empty',
2854
- filterTextFieldChipLabelNotEmpty: 'Not Empty',
2855
- filterTextFieldClearButtonTitle: 'Clear filter',
2856
- filterTextFieldPlaceholder: 'Filter by {column}',
2857
- rowActionButtonCancel: 'Cancel',
2858
- rowActionButtonSave: 'Save',
2859
- rowActionMenuButtonTitle: 'Row Actions',
2860
- rowActionMenuItemEdit: 'Edit',
2861
- rowActionsColumnTitle: 'Actions',
2862
- searchTextFieldClearButtonTitle: 'Clear search',
2863
- searchTextFieldPlaceholder: 'Search',
2864
- selectAllCheckboxTitle: 'Toggle select all',
2865
- selectCheckboxTitle: 'Toggle select row',
2866
- showHideColumnsButtonTitle: 'Show/Hide columns',
2867
- toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2868
- toggleFilterButtonTitle: 'Show/Hide filters',
2869
- toggleFullScreenButtonTitle: 'Toggle full screen',
2870
- toggleSearchButtonTitle: 'Show/Hide search',
2871
- toolbarAlertGroupedByMessage: 'Grouped by ',
2872
- toolbarAlertGroupedThenByMessage: ', then by ',
2873
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2993
+ clearFilter: 'Clear filter',
2994
+ clearSearch: 'Clear search',
2995
+ clearSort: 'Clear sort',
2996
+ columnActions: 'Column Actions',
2997
+ edit: 'Edit',
2998
+ expand: 'Expand',
2999
+ expandAll: 'Expand all',
3000
+ filterByColumn: 'Filter by {column}',
3001
+ filterContains: 'Contains Exact',
3002
+ filterEmpty: 'Empty',
3003
+ filterEndsWith: 'Ends With',
3004
+ filterEquals: 'Equals',
3005
+ filterFuzzy: 'Fuzzy Match',
3006
+ filterGreaterThan: 'Greater Than',
3007
+ filterLessThan: 'Less Than',
3008
+ filterMode: 'Filter Mode: {filterType}',
3009
+ filterNotEmpty: 'Not Empty',
3010
+ filterNotEquals: 'Not Equals',
3011
+ filterStartsWith: 'Starts With',
3012
+ filteringByColumn: 'Filtering by {column} - {filterType} "{filterValue}"',
3013
+ groupByColumn: 'Group by {column}',
3014
+ groupedBy: 'Grouped by ',
3015
+ hideAll: 'Hide all',
3016
+ hideColumn: 'Hide {column} column',
3017
+ rowActions: 'Row Actions',
3018
+ save: 'Save',
3019
+ search: 'Search',
3020
+ selectedCountOfRowCountRowsSelected: '{selectedCount} of {rowCount} row(s) selected',
3021
+ showAll: 'Show all',
3022
+ showAllColumns: 'Show all columns',
3023
+ showHideColumns: 'Show/Hide columns',
3024
+ showHideFilters: 'Show/Hide filters',
3025
+ showHideSearch: 'Show/Hide search',
3026
+ sortByColumnAsc: 'Sort by {column} ascending',
3027
+ sortByColumnDesc: 'Sort by {column} descending',
3028
+ thenBy: ', then by ',
3029
+ toggleDensePadding: 'Toggle dense padding',
3030
+ toggleFullScreen: 'Toggle full screen',
3031
+ toggleSelectAll: 'Toggle select all',
3032
+ toggleSelectRow: 'Toggle select row',
3033
+ ungroupByColumn: 'Ungroup by {column}'
2874
3034
  };
2875
3035
 
2876
3036
  var MRT_Default_Icons = {
@@ -2902,18 +3062,6 @@ var MRT_Default_Icons = {
2902
3062
  };
2903
3063
 
2904
3064
  var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
2905
-
2906
- (function (MRT_FILTER_TYPE) {
2907
- MRT_FILTER_TYPE["CONTAINS"] = "contains";
2908
- MRT_FILTER_TYPE["EMPTY"] = "empty";
2909
- MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
2910
- MRT_FILTER_TYPE["EQUALS"] = "equals";
2911
- MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
2912
- MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
2913
- MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
2914
- MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
2915
- })(exports.MRT_FILTER_TYPE || (exports.MRT_FILTER_TYPE = {}));
2916
-
2917
3065
  var MaterialReactTable = (function (_ref) {
2918
3066
  var _ref$defaultColumn = _ref.defaultColumn,
2919
3067
  defaultColumn = _ref$defaultColumn === void 0 ? {