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.
- package/dist/MaterialReactTable.d.ts +3 -1
- package/dist/icons.d.ts +3 -0
- package/dist/localization.d.ts +4 -0
- package/dist/material-react-table.cjs.development.js +243 -158
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +244 -159
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +4 -0
- package/dist/menus/{MRT_FilterMenu.d.ts → MRT_FilterTypeMenu.d.ts} +1 -1
- package/package.json +6 -7
- package/src/MaterialReactTable.tsx +8 -0
- package/src/body/MRT_TableBodyCell.tsx +12 -3
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +9 -3
- package/src/footer/MRT_TableFooterCell.tsx +1 -1
- package/src/head/MRT_TableHeadCell.tsx +47 -1
- package/src/{icons.tsx → icons.ts} +9 -0
- package/src/inputs/MRT_FilterTextField.tsx +11 -7
- package/src/localization.ts +11 -3
- package/src/menus/MRT_ColumnActionMenu.tsx +122 -98
- package/src/menus/{MRT_FilterMenu.tsx → MRT_FilterTypeMenu.tsx} +12 -9
- package/src/menus/MRT_RowActionMenu.tsx +14 -3
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
- package/src/table/MRT_TableContainer.tsx +7 -1
|
@@ -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,
|
|
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';
|
|
@@ -13,6 +13,8 @@ import DynamicFeedIcon from '@mui/icons-material/DynamicFeed';
|
|
|
13
13
|
import EditIcon from '@mui/icons-material/Edit';
|
|
14
14
|
import ExpandLessIcon from '@mui/icons-material/ExpandLess';
|
|
15
15
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
16
|
+
import FilterAltIcon from '@mui/icons-material/FilterAlt';
|
|
17
|
+
import FilterAltOff from '@mui/icons-material/FilterAltOff';
|
|
16
18
|
import FilterListIcon from '@mui/icons-material/FilterList';
|
|
17
19
|
import FilterListOffIcon from '@mui/icons-material/FilterListOff';
|
|
18
20
|
import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
|
|
@@ -296,7 +298,152 @@ var useMRT = function useMRT() {
|
|
|
296
298
|
return useContext(MaterialReactTableContext);
|
|
297
299
|
};
|
|
298
300
|
|
|
299
|
-
var
|
|
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
|
+
|
|
446
|
+
var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
300
447
|
var anchorEl = _ref.anchorEl,
|
|
301
448
|
column = _ref.column,
|
|
302
449
|
onSelect = _ref.onSelect,
|
|
@@ -343,7 +490,7 @@ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
|
|
|
343
490
|
}];
|
|
344
491
|
}, []);
|
|
345
492
|
|
|
346
|
-
var
|
|
493
|
+
var handleSelectFilterType = function handleSelectFilterType(value) {
|
|
347
494
|
setAnchorEl(null);
|
|
348
495
|
setCurrentFilterTypes(function (prev) {
|
|
349
496
|
var _extends2;
|
|
@@ -361,21 +508,19 @@ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
|
|
|
361
508
|
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
362
509
|
return React.createElement(Menu, {
|
|
363
510
|
anchorEl: anchorEl,
|
|
364
|
-
open: !!anchorEl,
|
|
365
511
|
anchorOrigin: {
|
|
366
512
|
vertical: 'center',
|
|
367
513
|
horizontal: 'right'
|
|
368
514
|
},
|
|
369
515
|
onClose: function onClose() {
|
|
370
516
|
return setAnchorEl(null);
|
|
517
|
+
},
|
|
518
|
+
open: !!anchorEl,
|
|
519
|
+
MenuListProps: {
|
|
520
|
+
dense: tableInstance.state.densePadding,
|
|
521
|
+
disablePadding: true
|
|
371
522
|
}
|
|
372
|
-
},
|
|
373
|
-
sx: {
|
|
374
|
-
fontWeight: 'bold',
|
|
375
|
-
p: '1rem',
|
|
376
|
-
fontSize: '1.1rem'
|
|
377
|
-
}
|
|
378
|
-
}, localization.filterMenuTitle), React.createElement(Divider, null), filterTypes.map(function (_ref2) {
|
|
523
|
+
}, filterTypes.map(function (_ref2) {
|
|
379
524
|
var type = _ref2.type,
|
|
380
525
|
label = _ref2.label,
|
|
381
526
|
divider = _ref2.divider;
|
|
@@ -383,10 +528,11 @@ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
|
|
|
383
528
|
divider: divider,
|
|
384
529
|
key: type,
|
|
385
530
|
onClick: function onClick() {
|
|
386
|
-
return
|
|
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
|
};
|
|
@@ -451,19 +597,21 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
451
597
|
}
|
|
452
598
|
|
|
453
599
|
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
454
|
-
var
|
|
600
|
+
var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
|
|
455
601
|
var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
|
|
456
602
|
return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
|
|
457
603
|
fullWidth: true,
|
|
458
604
|
id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
|
|
459
605
|
inputProps: {
|
|
606
|
+
disabled: !!filterChipLabel,
|
|
460
607
|
sx: {
|
|
461
|
-
textOverflow: 'ellipsis'
|
|
608
|
+
textOverflow: 'ellipsis',
|
|
609
|
+
width: filterChipLabel ? 0 : undefined
|
|
462
610
|
},
|
|
463
611
|
title: filterPlaceholder
|
|
464
612
|
},
|
|
465
613
|
margin: "none",
|
|
466
|
-
placeholder:
|
|
614
|
+
placeholder: filterChipLabel ? '' : filterPlaceholder,
|
|
467
615
|
onChange: function onChange(e) {
|
|
468
616
|
setFilterValue(e.target.value);
|
|
469
617
|
handleChange(e.target.value);
|
|
@@ -486,11 +634,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
486
634
|
height: '1.75rem',
|
|
487
635
|
width: '1.75rem'
|
|
488
636
|
}
|
|
489
|
-
}, React.createElement(FilterListIcon, null))),
|
|
637
|
+
}, React.createElement(FilterListIcon, null))), filterChipLabel && React.createElement(Chip, {
|
|
490
638
|
onDelete: handleClearFilterChip,
|
|
491
639
|
label: filterType
|
|
492
640
|
})),
|
|
493
|
-
endAdornment: !
|
|
641
|
+
endAdornment: !filterChipLabel && React.createElement(InputAdornment, {
|
|
494
642
|
position: "end"
|
|
495
643
|
}, React.createElement(Tooltip, {
|
|
496
644
|
arrow: true,
|
|
@@ -511,131 +659,17 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
511
659
|
}
|
|
512
660
|
}, textFieldProps, {
|
|
513
661
|
sx: _extends({
|
|
514
|
-
|
|
662
|
+
m: '0 -0.25rem',
|
|
663
|
+
minWidth: !filterChipLabel ? '5rem' : 'auto',
|
|
664
|
+
width: 'calc(100% + 0.5rem)'
|
|
515
665
|
}, textFieldProps == null ? void 0 : textFieldProps.sx)
|
|
516
|
-
})), React.createElement(
|
|
666
|
+
})), React.createElement(MRT_FilterTypeMenu, {
|
|
517
667
|
anchorEl: anchorEl,
|
|
518
668
|
column: column,
|
|
519
669
|
setAnchorEl: setAnchorEl
|
|
520
670
|
}));
|
|
521
671
|
};
|
|
522
672
|
|
|
523
|
-
var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
524
|
-
var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
|
|
525
|
-
|
|
526
|
-
var anchorEl = _ref.anchorEl,
|
|
527
|
-
column = _ref.column,
|
|
528
|
-
setAnchorEl = _ref.setAnchorEl;
|
|
529
|
-
|
|
530
|
-
var _useMRT = useMRT(),
|
|
531
|
-
disableColumnHiding = _useMRT.disableColumnHiding,
|
|
532
|
-
disableFilters = _useMRT.disableFilters,
|
|
533
|
-
disableSortBy = _useMRT.disableSortBy,
|
|
534
|
-
enableColumnGrouping = _useMRT.enableColumnGrouping,
|
|
535
|
-
_useMRT$icons = _useMRT.icons,
|
|
536
|
-
ClearAllIcon = _useMRT$icons.ClearAllIcon,
|
|
537
|
-
DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
|
|
538
|
-
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
539
|
-
SortIcon = _useMRT$icons.SortIcon,
|
|
540
|
-
VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
|
|
541
|
-
idPrefix = _useMRT.idPrefix,
|
|
542
|
-
localization = _useMRT.localization,
|
|
543
|
-
setShowFilters = _useMRT.setShowFilters;
|
|
544
|
-
|
|
545
|
-
var _useState = useState(null),
|
|
546
|
-
filterMenuAnchorEl = _useState[0],
|
|
547
|
-
setFilterMenuAnchorEl = _useState[1];
|
|
548
|
-
|
|
549
|
-
var handleClearSort = function handleClearSort() {
|
|
550
|
-
column.clearSortBy();
|
|
551
|
-
setAnchorEl(null);
|
|
552
|
-
};
|
|
553
|
-
|
|
554
|
-
var handleSortAsc = function handleSortAsc() {
|
|
555
|
-
column.toggleSortBy(false);
|
|
556
|
-
setAnchorEl(null);
|
|
557
|
-
};
|
|
558
|
-
|
|
559
|
-
var handleSortDesc = function handleSortDesc() {
|
|
560
|
-
column.toggleSortBy(true);
|
|
561
|
-
setAnchorEl(null);
|
|
562
|
-
};
|
|
563
|
-
|
|
564
|
-
var handleHideColumn = function handleHideColumn() {
|
|
565
|
-
column.toggleHidden();
|
|
566
|
-
setAnchorEl(null);
|
|
567
|
-
};
|
|
568
|
-
|
|
569
|
-
var handleGroupByColumn = function handleGroupByColumn() {
|
|
570
|
-
column.toggleGroupBy();
|
|
571
|
-
setAnchorEl(null);
|
|
572
|
-
};
|
|
573
|
-
|
|
574
|
-
var handleFilterByColumn = function handleFilterByColumn() {
|
|
575
|
-
setShowFilters(true);
|
|
576
|
-
setTimeout(function () {
|
|
577
|
-
var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
|
|
578
|
-
|
|
579
|
-
return (_document$getElementB = document.getElementById( // @ts-ignore
|
|
580
|
-
(_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();
|
|
581
|
-
}, 200);
|
|
582
|
-
setAnchorEl(null);
|
|
583
|
-
};
|
|
584
|
-
|
|
585
|
-
var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
|
|
586
|
-
event.stopPropagation();
|
|
587
|
-
setFilterMenuAnchorEl(event.currentTarget);
|
|
588
|
-
};
|
|
589
|
-
|
|
590
|
-
return React.createElement(Menu, {
|
|
591
|
-
anchorEl: anchorEl,
|
|
592
|
-
open: !!anchorEl,
|
|
593
|
-
onClose: function onClose() {
|
|
594
|
-
return setAnchorEl(null);
|
|
595
|
-
}
|
|
596
|
-
}, React.createElement(MenuList, null, !disableSortBy && column.canSort && [React.createElement(MenuItem, {
|
|
597
|
-
key: 1,
|
|
598
|
-
disabled: !column.isSorted,
|
|
599
|
-
onClick: handleClearSort
|
|
600
|
-
}, React.createElement(ListItemIcon, null, React.createElement(ClearAllIcon, null)), React.createElement(ListItemText, null, localization.columnActionMenuItemClearSort)), React.createElement(MenuItem, {
|
|
601
|
-
key: 2,
|
|
602
|
-
disabled: column.isSorted && !column.isSortedDesc,
|
|
603
|
-
onClick: handleSortAsc
|
|
604
|
-
}, 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, {
|
|
605
|
-
key: 3,
|
|
606
|
-
disabled: column.isSorted && column.isSortedDesc,
|
|
607
|
-
onClick: handleSortDesc
|
|
608
|
-
}, React.createElement(ListItemIcon, null, React.createElement(SortIcon, {
|
|
609
|
-
style: {
|
|
610
|
-
transform: 'rotate(180deg) scaleX(-1)'
|
|
611
|
-
}
|
|
612
|
-
})), React.createElement(ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React.createElement(Divider, {
|
|
613
|
-
key: 0
|
|
614
|
-
}), React.createElement(MenuItem, {
|
|
615
|
-
key: 1,
|
|
616
|
-
onClick: handleFilterByColumn
|
|
617
|
-
}, 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, {
|
|
618
|
-
size: "small",
|
|
619
|
-
onMouseEnter: handleOpenFilterModeMenu
|
|
620
|
-
}, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterMenu, {
|
|
621
|
-
anchorEl: filterMenuAnchorEl,
|
|
622
|
-
column: column,
|
|
623
|
-
key: 2,
|
|
624
|
-
setAnchorEl: setFilterMenuAnchorEl,
|
|
625
|
-
onSelect: handleFilterByColumn
|
|
626
|
-
})], enableColumnGrouping && column.canGroupBy && [React.createElement(Divider, {
|
|
627
|
-
key: 1
|
|
628
|
-
}), React.createElement(MenuItem, {
|
|
629
|
-
key: 2,
|
|
630
|
-
onClick: handleGroupByColumn
|
|
631
|
-
}, 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(Divider, {
|
|
632
|
-
key: 0
|
|
633
|
-
}), React.createElement(MenuItem, {
|
|
634
|
-
key: 1,
|
|
635
|
-
onClick: handleHideColumn
|
|
636
|
-
}, 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))))]));
|
|
637
|
-
};
|
|
638
|
-
|
|
639
673
|
var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
|
|
640
674
|
var column = _ref.column;
|
|
641
675
|
|
|
@@ -691,7 +725,7 @@ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding,
|
|
|
691
725
|
};
|
|
692
726
|
};
|
|
693
727
|
var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
694
|
-
var _column$columns
|
|
728
|
+
var _column$columns, _localization$columnA, _localization$columnA2;
|
|
695
729
|
|
|
696
730
|
var column = _ref.column;
|
|
697
731
|
|
|
@@ -699,11 +733,15 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
699
733
|
disableColumnActions = _useMRT.disableColumnActions,
|
|
700
734
|
disableFilters = _useMRT.disableFilters,
|
|
701
735
|
enableColumnResizing = _useMRT.enableColumnResizing,
|
|
736
|
+
_useMRT$icons = _useMRT.icons,
|
|
737
|
+
FilterAltIcon = _useMRT$icons.FilterAltIcon,
|
|
738
|
+
FilterAltOff = _useMRT$icons.FilterAltOff,
|
|
702
739
|
localization = _useMRT.localization,
|
|
703
740
|
muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
|
|
741
|
+
setShowFilters = _useMRT.setShowFilters,
|
|
704
742
|
tableInstance = _useMRT.tableInstance;
|
|
705
743
|
|
|
706
|
-
var isParentHeader = (
|
|
744
|
+
var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
|
|
707
745
|
var mTableHeadCellProps = muiTableHeadCellProps instanceof Function ? muiTableHeadCellProps(column) : muiTableHeadCellProps;
|
|
708
746
|
var mcTableHeadCellProps = column.muiTableHeadCellProps instanceof Function ? column.muiTableHeadCellProps(column) : column.muiTableHeadCellProps;
|
|
709
747
|
|
|
@@ -712,6 +750,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
712
750
|
});
|
|
713
751
|
|
|
714
752
|
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);
|
|
753
|
+
var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
|
|
754
|
+
localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
|
|
715
755
|
var columnHeader = column.render('Header');
|
|
716
756
|
return React.createElement(TableCell, Object.assign({
|
|
717
757
|
align: isParentHeader ? 'center' : 'left'
|
|
@@ -739,7 +779,29 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
739
779
|
"aria-label": sortTooltip,
|
|
740
780
|
active: column.isSorted,
|
|
741
781
|
direction: column.isSortedDesc ? 'desc' : 'asc'
|
|
742
|
-
}))
|
|
782
|
+
})), !isParentHeader && !!column.canFilter && React.createElement(Tooltip, {
|
|
783
|
+
arrow: true,
|
|
784
|
+
title: filterTooltip
|
|
785
|
+
}, React.createElement(IconButton, {
|
|
786
|
+
onClick: function onClick(event) {
|
|
787
|
+
event.stopPropagation();
|
|
788
|
+
setShowFilters(!tableInstance.state.showFilters);
|
|
789
|
+
},
|
|
790
|
+
size: "small",
|
|
791
|
+
sx: {
|
|
792
|
+
opacity: !!column.filterValue ? 0.8 : 0,
|
|
793
|
+
p: '2px',
|
|
794
|
+
m: 0,
|
|
795
|
+
transition: 'all 0.2s ease-in-out',
|
|
796
|
+
'&:hover': {
|
|
797
|
+
opacity: 0.8
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
}, tableInstance.state.showFilters && !column.filterValue ? React.createElement(FilterAltOff, {
|
|
801
|
+
fontSize: "small"
|
|
802
|
+
}) : React.createElement(FilterAltIcon, {
|
|
803
|
+
fontSize: "small"
|
|
804
|
+
})))), React.createElement(Box, {
|
|
743
805
|
sx: {
|
|
744
806
|
alignItems: 'center',
|
|
745
807
|
display: 'flex',
|
|
@@ -828,8 +890,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
|
|
|
828
890
|
var cell = _ref.cell;
|
|
829
891
|
|
|
830
892
|
var _useMRT = useMRT(),
|
|
831
|
-
|
|
893
|
+
isLoading = _useMRT.isLoading,
|
|
832
894
|
muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
|
|
895
|
+
muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
|
|
896
|
+
onCellClick = _useMRT.onCellClick,
|
|
833
897
|
_useMRT$tableInstance = _useMRT.tableInstance.state,
|
|
834
898
|
currentEditingRow = _useMRT$tableInstance.currentEditingRow,
|
|
835
899
|
densePadding = _useMRT$tableInstance.densePadding;
|
|
@@ -847,7 +911,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
|
|
|
847
911
|
}
|
|
848
912
|
}, tableCellProps, {
|
|
849
913
|
sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
|
|
850
|
-
}),
|
|
914
|
+
}), isLoading ? React.createElement(Skeleton, Object.assign({
|
|
915
|
+
animation: "wave",
|
|
916
|
+
height: 20,
|
|
917
|
+
width: Math.random() * (120 - 60) + 60
|
|
918
|
+
}, muiTableBodyCellSkeletonProps)) : (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React.createElement(MRT_EditCellTextField, {
|
|
851
919
|
cell: cell
|
|
852
920
|
}) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
|
|
853
921
|
};
|
|
@@ -1084,14 +1152,17 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
|
|
|
1084
1152
|
open: !!anchorEl,
|
|
1085
1153
|
onClose: function onClose() {
|
|
1086
1154
|
return setAnchorEl(null);
|
|
1155
|
+
},
|
|
1156
|
+
MenuListProps: {
|
|
1157
|
+
dense: tableInstance.state.densePadding,
|
|
1158
|
+
disablePadding: true
|
|
1087
1159
|
}
|
|
1088
1160
|
}, enableRowEditing && React.createElement(MenuItem, {
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
}, React.createElement(EditIcon, 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 () {
|
|
1095
1166
|
return setAnchorEl(null);
|
|
1096
1167
|
})) != null ? _renderRowActionMenuI : null);
|
|
1097
1168
|
};
|
|
@@ -2068,7 +2139,7 @@ var MRT_TableBody = function MRT_TableBody() {
|
|
|
2068
2139
|
};
|
|
2069
2140
|
|
|
2070
2141
|
var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
|
|
2071
|
-
var _column$columns
|
|
2142
|
+
var _column$columns;
|
|
2072
2143
|
|
|
2073
2144
|
var column = _ref.column;
|
|
2074
2145
|
|
|
@@ -2077,7 +2148,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
|
|
|
2077
2148
|
enableColumnResizing = _useMRT.enableColumnResizing,
|
|
2078
2149
|
densePadding = _useMRT.tableInstance.state.densePadding;
|
|
2079
2150
|
|
|
2080
|
-
var isParentHeader = (
|
|
2151
|
+
var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
|
|
2081
2152
|
var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
|
|
2082
2153
|
var mcTableFooterCellProps = column.muiTableFooterCellProps instanceof Function ? column.muiTableFooterCellProps(column) : column.muiTableFooterCellProps;
|
|
2083
2154
|
|
|
@@ -2253,10 +2324,10 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
|
|
|
2253
2324
|
};
|
|
2254
2325
|
|
|
2255
2326
|
var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
2256
|
-
var _column$columns
|
|
2327
|
+
var _column$columns, _column$columns2, _column$isVisible, _column$columns4;
|
|
2257
2328
|
|
|
2258
2329
|
var column = _ref.column;
|
|
2259
|
-
var isParentHeader = (
|
|
2330
|
+
var isParentHeader = !!(column != null && (_column$columns = column.columns) != null && _column$columns.length);
|
|
2260
2331
|
var allChildColumnsVisible = isParentHeader && !!((_column$columns2 = column.columns) != null && _column$columns2.every(function (childColumn) {
|
|
2261
2332
|
return childColumn.isVisible;
|
|
2262
2333
|
}));
|
|
@@ -2297,9 +2368,9 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
|
|
|
2297
2368
|
var rest = _extends({}, _ref);
|
|
2298
2369
|
|
|
2299
2370
|
var _useMRT = useMRT(),
|
|
2300
|
-
|
|
2371
|
+
ViewColumnIcon = _useMRT.icons.ViewColumnIcon,
|
|
2301
2372
|
localization = _useMRT.localization,
|
|
2302
|
-
|
|
2373
|
+
tableInstance = _useMRT.tableInstance;
|
|
2303
2374
|
|
|
2304
2375
|
var _useState = useState(null),
|
|
2305
2376
|
anchorEl = _useState[0],
|
|
@@ -2321,12 +2392,17 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
|
|
|
2321
2392
|
open: !!anchorEl,
|
|
2322
2393
|
onClose: function onClose() {
|
|
2323
2394
|
return setAnchorEl(null);
|
|
2324
|
-
}
|
|
2395
|
+
},
|
|
2396
|
+
MenuListProps: {
|
|
2397
|
+
dense: tableInstance.state.densePadding,
|
|
2398
|
+
disablePadding: true
|
|
2399
|
+
},
|
|
2400
|
+
sx: commonMenuItemStyles
|
|
2325
2401
|
}, React.createElement(Box, {
|
|
2326
2402
|
sx: {
|
|
2327
2403
|
display: 'flex',
|
|
2328
2404
|
justifyContent: 'space-between',
|
|
2329
|
-
p: '0
|
|
2405
|
+
p: '0.5rem'
|
|
2330
2406
|
}
|
|
2331
2407
|
}, React.createElement(Button, {
|
|
2332
2408
|
disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
|
|
@@ -2628,6 +2704,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2628
2704
|
hideToolbarTop = _useMRT.hideToolbarTop,
|
|
2629
2705
|
isFetching = _useMRT.isFetching,
|
|
2630
2706
|
isLoading = _useMRT.isLoading,
|
|
2707
|
+
muiLinearProgressProps = _useMRT.muiLinearProgressProps,
|
|
2631
2708
|
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2632
2709
|
tableInstance = _useMRT.tableInstance;
|
|
2633
2710
|
|
|
@@ -2652,6 +2729,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2652
2729
|
}
|
|
2653
2730
|
}, [fullScreen]);
|
|
2654
2731
|
var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
|
|
2732
|
+
var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
|
|
2655
2733
|
return React.createElement(TableContainer, Object.assign({
|
|
2656
2734
|
component: Paper
|
|
2657
2735
|
}, tableContainerProps, {
|
|
@@ -2670,7 +2748,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2670
2748
|
}), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), React.createElement(Collapse, {
|
|
2671
2749
|
"in": isFetching || isLoading,
|
|
2672
2750
|
unmountOnExit: true
|
|
2673
|
-
}, React.createElement(LinearProgress,
|
|
2751
|
+
}, React.createElement(LinearProgress, Object.assign({}, linearProgressProps))), React.createElement(Box, {
|
|
2674
2752
|
sx: {
|
|
2675
2753
|
maxWidth: '100%',
|
|
2676
2754
|
overflowX: 'auto'
|
|
@@ -2691,15 +2769,19 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2691
2769
|
columnShowHideMenuShowAll: 'Show all',
|
|
2692
2770
|
expandAllButtonTitle: 'Expand all',
|
|
2693
2771
|
expandButtonTitle: 'Expand',
|
|
2772
|
+
filterApplied: 'Filtering by {column} - ({filterType})',
|
|
2694
2773
|
filterMenuItemContains: 'Contains Exact',
|
|
2695
2774
|
filterMenuItemEmpty: 'Empty',
|
|
2696
2775
|
filterMenuItemEndsWith: 'Ends With',
|
|
2697
2776
|
filterMenuItemEquals: 'Equals',
|
|
2698
|
-
filterMenuItemFuzzy: 'Fuzzy Match',
|
|
2777
|
+
filterMenuItemFuzzy: 'Fuzzy Match (Default)',
|
|
2699
2778
|
filterMenuItemNotEmpty: 'Not Empty',
|
|
2700
2779
|
filterMenuItemNotEquals: 'Not Equals',
|
|
2701
2780
|
filterMenuItemStartsWith: 'Starts With',
|
|
2702
2781
|
filterMenuTitle: 'Filter Mode',
|
|
2782
|
+
filterTextFieldChangeFilterButtonTitle: 'Change Filter Mode',
|
|
2783
|
+
filterTextFieldChipLabelEmpty: 'Empty',
|
|
2784
|
+
filterTextFieldChipLabelNotEmpty: 'Not Empty',
|
|
2703
2785
|
filterTextFieldClearButtonTitle: 'Clear filter',
|
|
2704
2786
|
filterTextFieldPlaceholder: 'Filter by {column}',
|
|
2705
2787
|
rowActionButtonCancel: 'Cancel',
|
|
@@ -2713,15 +2795,16 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2713
2795
|
selectCheckboxTitle: 'Toggle select row',
|
|
2714
2796
|
showHideColumnsButtonTitle: 'Show/Hide columns',
|
|
2715
2797
|
toggleDensePaddingSwitchTitle: 'Toggle dense padding',
|
|
2716
|
-
toggleFilterButtonTitle: '
|
|
2798
|
+
toggleFilterButtonTitle: 'Show/Hide filters',
|
|
2717
2799
|
toggleFullScreenButtonTitle: 'Toggle full screen',
|
|
2718
|
-
toggleSearchButtonTitle: '
|
|
2800
|
+
toggleSearchButtonTitle: 'Show/Hide search',
|
|
2719
2801
|
toolbarAlertGroupedByMessage: 'Grouped by ',
|
|
2720
2802
|
toolbarAlertGroupedThenByMessage: ', then by ',
|
|
2721
2803
|
toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
|
|
2722
2804
|
};
|
|
2723
2805
|
|
|
2724
2806
|
var MRT_Default_Icons = {
|
|
2807
|
+
ArrowRightIcon: ArrowRightIcon,
|
|
2725
2808
|
CancelIcon: CancelIcon,
|
|
2726
2809
|
ClearAllIcon: ClearAllIcon,
|
|
2727
2810
|
CloseIcon: CloseIcon,
|
|
@@ -2732,6 +2815,8 @@ var MRT_Default_Icons = {
|
|
|
2732
2815
|
EditIcon: EditIcon,
|
|
2733
2816
|
ExpandLessIcon: ExpandLessIcon,
|
|
2734
2817
|
ExpandMoreIcon: ExpandMoreIcon,
|
|
2818
|
+
FilterAltIcon: FilterAltIcon,
|
|
2819
|
+
FilterAltOff: FilterAltOff,
|
|
2735
2820
|
FilterListIcon: FilterListIcon,
|
|
2736
2821
|
FilterListOffIcon: FilterListOffIcon,
|
|
2737
2822
|
FullscreenExitIcon: FullscreenExitIcon,
|