material-react-table 0.5.6 → 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.
@@ -1,7 +1,7 @@
1
1
  import React, { useState, useMemo, useContext, createContext, Fragment, useRef, useEffect } from 'react';
2
2
  import { useTable, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useResizeColumns, useFlexLayout, useAsyncDebounce } from 'react-table';
3
3
  import { matchSorter } from 'match-sorter';
4
- import { Menu, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, ListItemIcon, ListItemText, TableCell, Box, TableSortLabel, Divider, Collapse, Skeleton, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, FormControlLabel, Switch, Button, TablePagination, useMediaQuery, Alert, Toolbar, TableContainer, Paper, LinearProgress } from '@mui/material';
4
+ import { Menu, MenuItem, ListItemIcon, ListItemText, IconButton, TextField, InputAdornment, Tooltip, Chip, TableCell, Box, TableSortLabel, Divider, Collapse, Skeleton, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, FormControlLabel, Switch, Button, TablePagination, useMediaQuery, Alert, Toolbar, TableContainer, Paper, LinearProgress } from '@mui/material';
5
5
  import ArrowRightIcon from '@mui/icons-material/ArrowRight';
6
6
  import CancelIcon from '@mui/icons-material/Cancel';
7
7
  import ClearAllIcon from '@mui/icons-material/ClearAll';
@@ -298,6 +298,151 @@ var useMRT = function useMRT() {
298
298
  return useContext(MaterialReactTableContext);
299
299
  };
300
300
 
301
+ var commonMenuItemStyles = {
302
+ py: '0 !important',
303
+ my: '0 !important'
304
+ };
305
+ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
306
+ var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
307
+
308
+ var anchorEl = _ref.anchorEl,
309
+ column = _ref.column,
310
+ setAnchorEl = _ref.setAnchorEl;
311
+
312
+ var _useMRT = useMRT(),
313
+ disableColumnHiding = _useMRT.disableColumnHiding,
314
+ disableFilters = _useMRT.disableFilters,
315
+ disableSortBy = _useMRT.disableSortBy,
316
+ enableColumnGrouping = _useMRT.enableColumnGrouping,
317
+ _useMRT$icons = _useMRT.icons,
318
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
319
+ ClearAllIcon = _useMRT$icons.ClearAllIcon,
320
+ DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
321
+ FilterListIcon = _useMRT$icons.FilterListIcon,
322
+ SortIcon = _useMRT$icons.SortIcon,
323
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
324
+ idPrefix = _useMRT.idPrefix,
325
+ localization = _useMRT.localization,
326
+ setShowFilters = _useMRT.setShowFilters,
327
+ tableInstance = _useMRT.tableInstance;
328
+
329
+ var _useState = useState(null),
330
+ filterMenuAnchorEl = _useState[0],
331
+ setFilterMenuAnchorEl = _useState[1];
332
+
333
+ var handleClearSort = function handleClearSort() {
334
+ column.clearSortBy();
335
+ setAnchorEl(null);
336
+ };
337
+
338
+ var handleSortAsc = function handleSortAsc() {
339
+ column.toggleSortBy(false);
340
+ setAnchorEl(null);
341
+ };
342
+
343
+ var handleSortDesc = function handleSortDesc() {
344
+ column.toggleSortBy(true);
345
+ setAnchorEl(null);
346
+ };
347
+
348
+ var handleHideColumn = function handleHideColumn() {
349
+ column.toggleHidden();
350
+ setAnchorEl(null);
351
+ };
352
+
353
+ var handleGroupByColumn = function handleGroupByColumn() {
354
+ column.toggleGroupBy();
355
+ setAnchorEl(null);
356
+ };
357
+
358
+ var handleFilterByColumn = function handleFilterByColumn() {
359
+ setShowFilters(true);
360
+ setTimeout(function () {
361
+ var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
362
+
363
+ return (_document$getElementB = document.getElementById( // @ts-ignore
364
+ (_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();
365
+ }, 200);
366
+ setAnchorEl(null);
367
+ };
368
+
369
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
370
+ event.stopPropagation();
371
+ setFilterMenuAnchorEl(event.currentTarget);
372
+ };
373
+
374
+ return React.createElement(Menu, {
375
+ anchorEl: anchorEl,
376
+ open: !!anchorEl,
377
+ onClose: function onClose() {
378
+ return setAnchorEl(null);
379
+ },
380
+ MenuListProps: {
381
+ dense: tableInstance.state.densePadding,
382
+ disablePadding: true
383
+ }
384
+ }, !disableSortBy && column.canSort && [React.createElement(MenuItem, {
385
+ key: 1,
386
+ disabled: !column.isSorted,
387
+ onClick: handleClearSort,
388
+ sx: commonMenuItemStyles
389
+ }, React.createElement(ListItemIcon, null, React.createElement(ClearAllIcon, null)), React.createElement(ListItemText, {
390
+ sx: commonMenuItemStyles
391
+ }, localization.columnActionMenuItemClearSort)), React.createElement(MenuItem, {
392
+ disabled: column.isSorted && !column.isSortedDesc,
393
+ key: 2,
394
+ onClick: handleSortAsc,
395
+ sx: commonMenuItemStyles
396
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), React.createElement(ListItemText, {
397
+ sx: commonMenuItemStyles
398
+ }, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React.createElement(MenuItem, {
399
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
400
+ key: 3,
401
+ disabled: column.isSorted && column.isSortedDesc,
402
+ onClick: handleSortDesc,
403
+ sx: commonMenuItemStyles
404
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, {
405
+ style: {
406
+ transform: 'rotate(180deg) scaleX(-1)'
407
+ }
408
+ })), React.createElement(ListItemText, {
409
+ sx: commonMenuItemStyles
410
+ }, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React.createElement(MenuItem, {
411
+ divider: enableColumnGrouping || !disableColumnHiding,
412
+ key: 1,
413
+ onClick: handleFilterByColumn,
414
+ sx: commonMenuItemStyles
415
+ }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), React.createElement(ListItemText, {
416
+ sx: commonMenuItemStyles
417
+ }, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React.createElement(IconButton, {
418
+ onClick: handleOpenFilterModeMenu,
419
+ onMouseEnter: handleOpenFilterModeMenu,
420
+ size: "small",
421
+ sx: {
422
+ p: 0
423
+ }
424
+ }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterTypeMenu, {
425
+ anchorEl: filterMenuAnchorEl,
426
+ column: column,
427
+ key: 2,
428
+ setAnchorEl: setFilterMenuAnchorEl,
429
+ onSelect: handleFilterByColumn
430
+ })], enableColumnGrouping && column.canGroupBy && [React.createElement(MenuItem, {
431
+ divider: !disableColumnHiding,
432
+ key: 2,
433
+ onClick: handleGroupByColumn,
434
+ sx: commonMenuItemStyles
435
+ }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), React.createElement(ListItemText, {
436
+ sx: commonMenuItemStyles
437
+ }, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React.createElement(MenuItem, {
438
+ key: 1,
439
+ onClick: handleHideColumn,
440
+ sx: commonMenuItemStyles
441
+ }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), React.createElement(ListItemText, {
442
+ sx: commonMenuItemStyles
443
+ }, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
444
+ };
445
+
301
446
  var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
302
447
  var anchorEl = _ref.anchorEl,
303
448
  column = _ref.column,
@@ -386,7 +531,8 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
386
531
  return handleSelectFilterType(type);
387
532
  },
388
533
  selected: type === filterType,
389
- value: type
534
+ value: type,
535
+ sx: commonMenuItemStyles
390
536
  }, label);
391
537
  }));
392
538
  };
@@ -524,139 +670,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
524
670
  }));
525
671
  };
526
672
 
527
- var commonMenuItemStyles = {
528
- display: 'flex',
529
- alignItems: 'center'
530
- };
531
- var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
532
- var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
533
-
534
- var anchorEl = _ref.anchorEl,
535
- column = _ref.column,
536
- setAnchorEl = _ref.setAnchorEl;
537
-
538
- var _useMRT = useMRT(),
539
- disableColumnHiding = _useMRT.disableColumnHiding,
540
- disableFilters = _useMRT.disableFilters,
541
- disableSortBy = _useMRT.disableSortBy,
542
- enableColumnGrouping = _useMRT.enableColumnGrouping,
543
- _useMRT$icons = _useMRT.icons,
544
- ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
545
- ClearAllIcon = _useMRT$icons.ClearAllIcon,
546
- DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
547
- FilterListIcon = _useMRT$icons.FilterListIcon,
548
- SortIcon = _useMRT$icons.SortIcon,
549
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
550
- idPrefix = _useMRT.idPrefix,
551
- localization = _useMRT.localization,
552
- setShowFilters = _useMRT.setShowFilters,
553
- tableInstance = _useMRT.tableInstance;
554
-
555
- var _useState = useState(null),
556
- filterMenuAnchorEl = _useState[0],
557
- setFilterMenuAnchorEl = _useState[1];
558
-
559
- var handleClearSort = function handleClearSort() {
560
- column.clearSortBy();
561
- setAnchorEl(null);
562
- };
563
-
564
- var handleSortAsc = function handleSortAsc() {
565
- column.toggleSortBy(false);
566
- setAnchorEl(null);
567
- };
568
-
569
- var handleSortDesc = function handleSortDesc() {
570
- column.toggleSortBy(true);
571
- setAnchorEl(null);
572
- };
573
-
574
- var handleHideColumn = function handleHideColumn() {
575
- column.toggleHidden();
576
- setAnchorEl(null);
577
- };
578
-
579
- var handleGroupByColumn = function handleGroupByColumn() {
580
- column.toggleGroupBy();
581
- setAnchorEl(null);
582
- };
583
-
584
- var handleFilterByColumn = function handleFilterByColumn() {
585
- setShowFilters(true);
586
- setTimeout(function () {
587
- var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
588
-
589
- return (_document$getElementB = document.getElementById( // @ts-ignore
590
- (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
591
- }, 200);
592
- setAnchorEl(null);
593
- };
594
-
595
- var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
596
- event.stopPropagation();
597
- setFilterMenuAnchorEl(event.currentTarget);
598
- };
599
-
600
- return React.createElement(Menu, {
601
- anchorEl: anchorEl,
602
- open: !!anchorEl,
603
- onClose: function onClose() {
604
- return setAnchorEl(null);
605
- },
606
- MenuListProps: {
607
- dense: tableInstance.state.densePadding,
608
- disablePadding: true
609
- }
610
- }, !disableSortBy && column.canSort && [React.createElement(MenuItem, {
611
- key: 1,
612
- disabled: !column.isSorted,
613
- onClick: handleClearSort,
614
- sx: commonMenuItemStyles
615
- }, React.createElement(ListItemIcon, null, React.createElement(ClearAllIcon, null)), React.createElement(ListItemText, null, localization.columnActionMenuItemClearSort)), React.createElement(MenuItem, {
616
- disabled: column.isSorted && !column.isSortedDesc,
617
- key: 2,
618
- onClick: handleSortAsc,
619
- sx: commonMenuItemStyles
620
- }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), React.createElement(ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React.createElement(MenuItem, {
621
- divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
622
- key: 3,
623
- disabled: column.isSorted && column.isSortedDesc,
624
- onClick: handleSortDesc,
625
- sx: commonMenuItemStyles
626
- }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, {
627
- style: {
628
- transform: 'rotate(180deg) scaleX(-1)'
629
- }
630
- })), React.createElement(ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React.createElement(MenuItem, {
631
- divider: enableColumnGrouping || !disableColumnHiding,
632
- key: 1,
633
- onClick: handleFilterByColumn,
634
- sx: commonMenuItemStyles
635
- }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), React.createElement(ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React.createElement(IconButton, {
636
- onClick: handleOpenFilterModeMenu,
637
- onMouseEnter: handleOpenFilterModeMenu,
638
- size: "small",
639
- sx: {
640
- p: 0
641
- }
642
- }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterTypeMenu, {
643
- anchorEl: filterMenuAnchorEl,
644
- column: column,
645
- key: 2,
646
- setAnchorEl: setFilterMenuAnchorEl,
647
- onSelect: handleFilterByColumn
648
- })], enableColumnGrouping && column.canGroupBy && [React.createElement(MenuItem, {
649
- divider: !disableColumnHiding,
650
- key: 2,
651
- onClick: handleGroupByColumn,
652
- sx: commonMenuItemStyles
653
- }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), React.createElement(ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React.createElement(MenuItem, {
654
- key: 1,
655
- onClick: handleHideColumn,
656
- sx: commonMenuItemStyles
657
- }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), React.createElement(ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
658
- };
659
-
660
673
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
661
674
  var column = _ref.column;
662
675
 
@@ -1145,8 +1158,11 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
1145
1158
  disablePadding: true
1146
1159
  }
1147
1160
  }, enableRowEditing && React.createElement(MenuItem, {
1148
- onClick: handleEdit
1149
- }, React.createElement(ListItemIcon, null, React.createElement(EditIcon, null)), React.createElement(ListItemText, null, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1161
+ onClick: handleEdit,
1162
+ sx: commonMenuItemStyles
1163
+ }, React.createElement(ListItemIcon, null, React.createElement(EditIcon, null)), React.createElement(ListItemText, {
1164
+ sx: commonMenuItemStyles
1165
+ }, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1150
1166
  return setAnchorEl(null);
1151
1167
  })) != null ? _renderRowActionMenuI : null);
1152
1168
  };
@@ -2380,7 +2396,8 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2380
2396
  MenuListProps: {
2381
2397
  dense: tableInstance.state.densePadding,
2382
2398
  disablePadding: true
2383
- }
2399
+ },
2400
+ sx: commonMenuItemStyles
2384
2401
  }, React.createElement(Box, {
2385
2402
  sx: {
2386
2403
  display: 'flex',