material-react-table 0.5.4 → 0.5.7

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.
@@ -20,6 +20,8 @@ var DynamicFeedIcon = _interopDefault(require('@mui/icons-material/DynamicFeed')
20
20
  var EditIcon = _interopDefault(require('@mui/icons-material/Edit'));
21
21
  var ExpandLessIcon = _interopDefault(require('@mui/icons-material/ExpandLess'));
22
22
  var ExpandMoreIcon = _interopDefault(require('@mui/icons-material/ExpandMore'));
23
+ var FilterAltIcon = _interopDefault(require('@mui/icons-material/FilterAlt'));
24
+ var FilterAltOff = _interopDefault(require('@mui/icons-material/FilterAltOff'));
23
25
  var FilterListIcon = _interopDefault(require('@mui/icons-material/FilterList'));
24
26
  var FilterListOffIcon = _interopDefault(require('@mui/icons-material/FilterListOff'));
25
27
  var FullscreenExitIcon = _interopDefault(require('@mui/icons-material/FullscreenExit'));
@@ -303,7 +305,152 @@ var useMRT = function useMRT() {
303
305
  return React.useContext(MaterialReactTableContext);
304
306
  };
305
307
 
306
- var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
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;
335
+
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))))]);
451
+ };
452
+
453
+ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
307
454
  var anchorEl = _ref.anchorEl,
308
455
  column = _ref.column,
309
456
  onSelect = _ref.onSelect,
@@ -350,7 +497,7 @@ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
350
497
  }];
351
498
  }, []);
352
499
 
353
- var handleSelectMenuItem = function handleSelectMenuItem(value) {
500
+ var handleSelectFilterType = function handleSelectFilterType(value) {
354
501
  setAnchorEl(null);
355
502
  setCurrentFilterTypes(function (prev) {
356
503
  var _extends2;
@@ -368,21 +515,19 @@ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
368
515
  var filterType = tableInstance.state.currentFilterTypes[column.id];
369
516
  return React__default.createElement(material.Menu, {
370
517
  anchorEl: anchorEl,
371
- open: !!anchorEl,
372
518
  anchorOrigin: {
373
519
  vertical: 'center',
374
520
  horizontal: 'right'
375
521
  },
376
522
  onClose: function onClose() {
377
523
  return setAnchorEl(null);
524
+ },
525
+ open: !!anchorEl,
526
+ MenuListProps: {
527
+ dense: tableInstance.state.densePadding,
528
+ disablePadding: true
378
529
  }
379
- }, React__default.createElement(material.Typography, {
380
- sx: {
381
- fontWeight: 'bold',
382
- p: '1rem',
383
- fontSize: '1.1rem'
384
- }
385
- }, localization.filterMenuTitle), React__default.createElement(material.Divider, null), filterTypes.map(function (_ref2) {
530
+ }, filterTypes.map(function (_ref2) {
386
531
  var type = _ref2.type,
387
532
  label = _ref2.label,
388
533
  divider = _ref2.divider;
@@ -390,10 +535,11 @@ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
390
535
  divider: divider,
391
536
  key: type,
392
537
  onClick: function onClick() {
393
- return handleSelectMenuItem(type);
538
+ return handleSelectFilterType(type);
394
539
  },
395
540
  selected: type === filterType,
396
- value: type
541
+ value: type,
542
+ sx: commonMenuItemStyles
397
543
  }, label);
398
544
  }));
399
545
  };
@@ -458,19 +604,21 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
458
604
  }
459
605
 
460
606
  var filterType = tableInstance.state.currentFilterTypes[column.id];
461
- var showFilterChip = ['empty', 'notEmpty'].includes(filterType);
607
+ var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
462
608
  var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
463
609
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
464
610
  fullWidth: true,
465
611
  id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
466
612
  inputProps: {
613
+ disabled: !!filterChipLabel,
467
614
  sx: {
468
- textOverflow: 'ellipsis'
615
+ textOverflow: 'ellipsis',
616
+ width: filterChipLabel ? 0 : undefined
469
617
  },
470
618
  title: filterPlaceholder
471
619
  },
472
620
  margin: "none",
473
- placeholder: showFilterChip ? '' : filterPlaceholder,
621
+ placeholder: filterChipLabel ? '' : filterPlaceholder,
474
622
  onChange: function onChange(e) {
475
623
  setFilterValue(e.target.value);
476
624
  handleChange(e.target.value);
@@ -493,11 +641,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
493
641
  height: '1.75rem',
494
642
  width: '1.75rem'
495
643
  }
496
- }, React__default.createElement(FilterListIcon, null))), showFilterChip && React__default.createElement(material.Chip, {
644
+ }, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
497
645
  onDelete: handleClearFilterChip,
498
646
  label: filterType
499
647
  })),
500
- endAdornment: !showFilterChip && React__default.createElement(material.InputAdornment, {
648
+ endAdornment: !filterChipLabel && React__default.createElement(material.InputAdornment, {
501
649
  position: "end"
502
650
  }, React__default.createElement(material.Tooltip, {
503
651
  arrow: true,
@@ -518,131 +666,17 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
518
666
  }
519
667
  }, textFieldProps, {
520
668
  sx: _extends({
521
- minWidth: '6rem'
669
+ m: '0 -0.25rem',
670
+ minWidth: !filterChipLabel ? '5rem' : 'auto',
671
+ width: 'calc(100% + 0.5rem)'
522
672
  }, textFieldProps == null ? void 0 : textFieldProps.sx)
523
- })), React__default.createElement(MRT_FilterMenu, {
673
+ })), React__default.createElement(MRT_FilterTypeMenu, {
524
674
  anchorEl: anchorEl,
525
675
  column: column,
526
676
  setAnchorEl: setAnchorEl
527
677
  }));
528
678
  };
529
679
 
530
- var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
531
- var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
532
-
533
- var anchorEl = _ref.anchorEl,
534
- column = _ref.column,
535
- setAnchorEl = _ref.setAnchorEl;
536
-
537
- var _useMRT = useMRT(),
538
- disableColumnHiding = _useMRT.disableColumnHiding,
539
- disableFilters = _useMRT.disableFilters,
540
- disableSortBy = _useMRT.disableSortBy,
541
- enableColumnGrouping = _useMRT.enableColumnGrouping,
542
- _useMRT$icons = _useMRT.icons,
543
- ClearAllIcon = _useMRT$icons.ClearAllIcon,
544
- DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
545
- FilterListIcon = _useMRT$icons.FilterListIcon,
546
- SortIcon = _useMRT$icons.SortIcon,
547
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
548
- idPrefix = _useMRT.idPrefix,
549
- localization = _useMRT.localization,
550
- setShowFilters = _useMRT.setShowFilters;
551
-
552
- var _useState = React.useState(null),
553
- filterMenuAnchorEl = _useState[0],
554
- setFilterMenuAnchorEl = _useState[1];
555
-
556
- var handleClearSort = function handleClearSort() {
557
- column.clearSortBy();
558
- setAnchorEl(null);
559
- };
560
-
561
- var handleSortAsc = function handleSortAsc() {
562
- column.toggleSortBy(false);
563
- setAnchorEl(null);
564
- };
565
-
566
- var handleSortDesc = function handleSortDesc() {
567
- column.toggleSortBy(true);
568
- setAnchorEl(null);
569
- };
570
-
571
- var handleHideColumn = function handleHideColumn() {
572
- column.toggleHidden();
573
- setAnchorEl(null);
574
- };
575
-
576
- var handleGroupByColumn = function handleGroupByColumn() {
577
- column.toggleGroupBy();
578
- setAnchorEl(null);
579
- };
580
-
581
- var handleFilterByColumn = function handleFilterByColumn() {
582
- setShowFilters(true);
583
- setTimeout(function () {
584
- var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
585
-
586
- return (_document$getElementB = document.getElementById( // @ts-ignore
587
- (_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();
588
- }, 200);
589
- setAnchorEl(null);
590
- };
591
-
592
- var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
593
- event.stopPropagation();
594
- setFilterMenuAnchorEl(event.currentTarget);
595
- };
596
-
597
- return React__default.createElement(material.Menu, {
598
- anchorEl: anchorEl,
599
- open: !!anchorEl,
600
- onClose: function onClose() {
601
- return setAnchorEl(null);
602
- }
603
- }, React__default.createElement(material.MenuList, null, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
604
- key: 1,
605
- disabled: !column.isSorted,
606
- onClick: handleClearSort
607
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, null, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
608
- key: 2,
609
- disabled: column.isSorted && !column.isSortedDesc,
610
- onClick: handleSortAsc
611
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
612
- key: 3,
613
- disabled: column.isSorted && column.isSortedDesc,
614
- onClick: handleSortDesc
615
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
616
- style: {
617
- transform: 'rotate(180deg) scaleX(-1)'
618
- }
619
- })), React__default.createElement(material.ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.Divider, {
620
- key: 0
621
- }), React__default.createElement(material.MenuItem, {
622
- key: 1,
623
- onClick: handleFilterByColumn
624
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
625
- size: "small",
626
- onMouseEnter: handleOpenFilterModeMenu
627
- }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterMenu, {
628
- anchorEl: filterMenuAnchorEl,
629
- column: column,
630
- key: 2,
631
- setAnchorEl: setFilterMenuAnchorEl,
632
- onSelect: handleFilterByColumn
633
- })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.Divider, {
634
- key: 1
635
- }), React__default.createElement(material.MenuItem, {
636
- key: 2,
637
- onClick: handleGroupByColumn
638
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.Divider, {
639
- key: 0
640
- }), React__default.createElement(material.MenuItem, {
641
- key: 1,
642
- onClick: handleHideColumn
643
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]));
644
- };
645
-
646
680
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
647
681
  var column = _ref.column;
648
682
 
@@ -698,7 +732,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
698
732
  };
699
733
  };
700
734
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
701
- var _column$columns$lengt, _column$columns, _localization$columnA, _localization$columnA2;
735
+ var _column$columns, _localization$columnA, _localization$columnA2;
702
736
 
703
737
  var column = _ref.column;
704
738
 
@@ -706,11 +740,15 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
706
740
  disableColumnActions = _useMRT.disableColumnActions,
707
741
  disableFilters = _useMRT.disableFilters,
708
742
  enableColumnResizing = _useMRT.enableColumnResizing,
743
+ _useMRT$icons = _useMRT.icons,
744
+ FilterAltIcon = _useMRT$icons.FilterAltIcon,
745
+ FilterAltOff = _useMRT$icons.FilterAltOff,
709
746
  localization = _useMRT.localization,
710
747
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
748
+ setShowFilters = _useMRT.setShowFilters,
711
749
  tableInstance = _useMRT.tableInstance;
712
750
 
713
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
751
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
714
752
  var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps(column) : muiTableHeadCellProps;
715
753
  var mcTableHeadCellProps = column.muiTableHeadCellProps instanceof Function ? column.muiTableHeadCellProps(column) : column.muiTableHeadCellProps;
716
754
 
@@ -719,6 +757,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
719
757
  });
720
758
 
721
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;
722
762
  var columnHeader = column.render('Header');
723
763
  return React__default.createElement(material.TableCell, Object.assign({
724
764
  align: isParentHeader ? 'center' : 'left'
@@ -746,7 +786,29 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
746
786
  "aria-label": sortTooltip,
747
787
  active: column.isSorted,
748
788
  direction: column.isSortedDesc ? 'desc' : 'asc'
749
- }))), React__default.createElement(material.Box, {
789
+ })), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
790
+ arrow: true,
791
+ title: filterTooltip
792
+ }, React__default.createElement(material.IconButton, {
793
+ onClick: function onClick(event) {
794
+ event.stopPropagation();
795
+ setShowFilters(!tableInstance.state.showFilters);
796
+ },
797
+ size: "small",
798
+ sx: {
799
+ opacity: !!column.filterValue ? 0.8 : 0,
800
+ p: '2px',
801
+ m: 0,
802
+ transition: 'all 0.2s ease-in-out',
803
+ '&:hover': {
804
+ opacity: 0.8
805
+ }
806
+ }
807
+ }, tableInstance.state.showFilters && !column.filterValue ? React__default.createElement(FilterAltOff, {
808
+ fontSize: "small"
809
+ }) : React__default.createElement(FilterAltIcon, {
810
+ fontSize: "small"
811
+ })))), React__default.createElement(material.Box, {
750
812
  sx: {
751
813
  alignItems: 'center',
752
814
  display: 'flex',
@@ -835,8 +897,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
835
897
  var cell = _ref.cell;
836
898
 
837
899
  var _useMRT = useMRT(),
838
- onCellClick = _useMRT.onCellClick,
900
+ isLoading = _useMRT.isLoading,
839
901
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
902
+ muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
903
+ onCellClick = _useMRT.onCellClick,
840
904
  _useMRT$tableInstance = _useMRT.tableInstance.state,
841
905
  currentEditingRow = _useMRT$tableInstance.currentEditingRow,
842
906
  densePadding = _useMRT$tableInstance.densePadding;
@@ -854,7 +918,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
854
918
  }
855
919
  }, tableCellProps, {
856
920
  sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
857
- }), (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
921
+ }), isLoading ? React__default.createElement(material.Skeleton, Object.assign({
922
+ animation: "wave",
923
+ height: 20,
924
+ width: Math.random() * (120 - 60) + 60
925
+ }, muiTableBodyCellSkeletonProps)) : (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
858
926
  cell: cell
859
927
  }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React__default.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
860
928
  };
@@ -1091,14 +1159,17 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
1091
1159
  open: !!anchorEl,
1092
1160
  onClose: function onClose() {
1093
1161
  return setAnchorEl(null);
1162
+ },
1163
+ MenuListProps: {
1164
+ dense: tableInstance.state.densePadding,
1165
+ disablePadding: true
1094
1166
  }
1095
1167
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
1096
- sx: {
1097
- display: 'flex',
1098
- gap: '0.75rem'
1099
- },
1100
- onClick: handleEdit
1101
- }, React__default.createElement(EditIcon, null), " ", localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1168
+ 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 () {
1102
1173
  return setAnchorEl(null);
1103
1174
  })) != null ? _renderRowActionMenuI : null);
1104
1175
  };
@@ -2075,7 +2146,7 @@ var MRT_TableBody = function MRT_TableBody() {
2075
2146
  };
2076
2147
 
2077
2148
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2078
- var _column$columns$lengt, _column$columns;
2149
+ var _column$columns;
2079
2150
 
2080
2151
  var column = _ref.column;
2081
2152
 
@@ -2084,7 +2155,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2084
2155
  enableColumnResizing = _useMRT.enableColumnResizing,
2085
2156
  densePadding = _useMRT.tableInstance.state.densePadding;
2086
2157
 
2087
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
2158
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
2088
2159
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
2089
2160
  var mcTableFooterCellProps = column.muiTableFooterCellProps instanceof Function ? column.muiTableFooterCellProps(column) : column.muiTableFooterCellProps;
2090
2161
 
@@ -2260,10 +2331,10 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
2260
2331
  };
2261
2332
 
2262
2333
  var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
2263
- var _column$columns$lengt, _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2334
+ var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
2264
2335
 
2265
2336
  var column = _ref.column;
2266
- var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
2337
+ var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
2267
2338
  var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
2268
2339
  return childColumn.isVisible;
2269
2340
  }));
@@ -2304,9 +2375,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2304
2375
  var rest = _extends({}, _ref);
2305
2376
 
2306
2377
  var _useMRT = useMRT(),
2307
- tableInstance = _useMRT.tableInstance,
2378
+ ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
2308
2379
  localization = _useMRT.localization,
2309
- ViewColumnIcon = _useMRT.icons.ViewColumnIcon;
2380
+ tableInstance = _useMRT.tableInstance;
2310
2381
 
2311
2382
  var _useState = React.useState(null),
2312
2383
  anchorEl = _useState[0],
@@ -2328,12 +2399,17 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2328
2399
  open: !!anchorEl,
2329
2400
  onClose: function onClose() {
2330
2401
  return setAnchorEl(null);
2331
- }
2402
+ },
2403
+ MenuListProps: {
2404
+ dense: tableInstance.state.densePadding,
2405
+ disablePadding: true
2406
+ },
2407
+ sx: commonMenuItemStyles
2332
2408
  }, React__default.createElement(material.Box, {
2333
2409
  sx: {
2334
2410
  display: 'flex',
2335
2411
  justifyContent: 'space-between',
2336
- p: '0 0.5rem 0.5rem 0.5rem'
2412
+ p: '0.5rem'
2337
2413
  }
2338
2414
  }, React__default.createElement(material.Button, {
2339
2415
  disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
@@ -2635,6 +2711,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2635
2711
  hideToolbarTop = _useMRT.hideToolbarTop,
2636
2712
  isFetching = _useMRT.isFetching,
2637
2713
  isLoading = _useMRT.isLoading,
2714
+ muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2638
2715
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2639
2716
  tableInstance = _useMRT.tableInstance;
2640
2717
 
@@ -2659,6 +2736,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2659
2736
  }
2660
2737
  }, [fullScreen]);
2661
2738
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2739
+ var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2662
2740
  return React__default.createElement(material.TableContainer, Object.assign({
2663
2741
  component: material.Paper
2664
2742
  }, tableContainerProps, {
@@ -2677,7 +2755,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2677
2755
  }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2678
2756
  "in": isFetching || isLoading,
2679
2757
  unmountOnExit: true
2680
- }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(material.Box, {
2758
+ }, React__default.createElement(material.LinearProgress, Object.assign({}, linearProgressProps))), React__default.createElement(material.Box, {
2681
2759
  sx: {
2682
2760
  maxWidth: '100%',
2683
2761
  overflowX: 'auto'
@@ -2698,15 +2776,19 @@ var MRT_DefaultLocalization_EN = {
2698
2776
  columnShowHideMenuShowAll: 'Show all',
2699
2777
  expandAllButtonTitle: 'Expand all',
2700
2778
  expandButtonTitle: 'Expand',
2779
+ filterApplied: 'Filtering by {column} - ({filterType})',
2701
2780
  filterMenuItemContains: 'Contains Exact',
2702
2781
  filterMenuItemEmpty: 'Empty',
2703
2782
  filterMenuItemEndsWith: 'Ends With',
2704
2783
  filterMenuItemEquals: 'Equals',
2705
- filterMenuItemFuzzy: 'Fuzzy Match',
2784
+ filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2706
2785
  filterMenuItemNotEmpty: 'Not Empty',
2707
2786
  filterMenuItemNotEquals: 'Not Equals',
2708
2787
  filterMenuItemStartsWith: 'Starts With',
2709
2788
  filterMenuTitle: 'Filter Mode',
2789
+ filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
2790
+ filterTextFieldChipLabelEmpty: 'Empty',
2791
+ filterTextFieldChipLabelNotEmpty: 'Not Empty',
2710
2792
  filterTextFieldClearButtonTitle: 'Clear filter',
2711
2793
  filterTextFieldPlaceholder: 'Filter by {column}',
2712
2794
  rowActionButtonCancel: 'Cancel',
@@ -2720,15 +2802,16 @@ var MRT_DefaultLocalization_EN = {
2720
2802
  selectCheckboxTitle: 'Toggle select row',
2721
2803
  showHideColumnsButtonTitle: 'Show/Hide columns',
2722
2804
  toggleDensePaddingSwitchTitle: 'Toggle dense padding',
2723
- toggleFilterButtonTitle: 'Toggle filters',
2805
+ toggleFilterButtonTitle: 'Show/Hide filters',
2724
2806
  toggleFullScreenButtonTitle: 'Toggle full screen',
2725
- toggleSearchButtonTitle: 'Toggle search',
2807
+ toggleSearchButtonTitle: 'Show/Hide search',
2726
2808
  toolbarAlertGroupedByMessage: 'Grouped by ',
2727
2809
  toolbarAlertGroupedThenByMessage: ', then by ',
2728
2810
  toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2729
2811
  };
2730
2812
 
2731
2813
  var MRT_Default_Icons = {
2814
+ ArrowRightIcon: ArrowRightIcon,
2732
2815
  CancelIcon: CancelIcon,
2733
2816
  ClearAllIcon: ClearAllIcon,
2734
2817
  CloseIcon: CloseIcon,
@@ -2739,6 +2822,8 @@ var MRT_Default_Icons = {
2739
2822
  EditIcon: EditIcon,
2740
2823
  ExpandLessIcon: ExpandLessIcon,
2741
2824
  ExpandMoreIcon: ExpandMoreIcon,
2825
+ FilterAltIcon: FilterAltIcon,
2826
+ FilterAltOff: FilterAltOff,
2742
2827
  FilterListIcon: FilterListIcon,
2743
2828
  FilterListOffIcon: FilterListOffIcon,
2744
2829
  FullscreenExitIcon: FullscreenExitIcon,