material-react-table-narender 2.13.25 → 2.13.29
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +58 -29
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +57 -28
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/MaterialReactTable.tsx +1 -1
- package/src/components/body/MRT_TableBodyCell.tsx +1 -1
- package/src/components/head/MRT_TableHeadCell.tsx +3 -0
- package/src/components/head/MRT_TableHeadCellToolBar.tsx +68 -0
- package/src/components/inputs/MRT_FilterTextField.tsx +2 -0
- package/src/components/menus/MRT_ColumnActionMenu.tsx +14 -1
- package/src/hooks/useMRT_TableInstance.ts +8 -0
- package/src/types.ts +3 -0
- package/src/utils/cell.utils.ts +3 -3
package/dist/index.d.ts
CHANGED
@@ -448,6 +448,7 @@ type MRT_TableInstance<TData extends MRT_RowData> = Omit<Table<TData>, 'getAllCo
|
|
448
448
|
setIsFullScreen: Dispatch<SetStateAction<boolean>>;
|
449
449
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
450
450
|
setShowColumnFilters: Dispatch<SetStateAction<boolean>>;
|
451
|
+
setShowToolBar: Dispatch<SetStateAction<boolean>>;
|
451
452
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
452
453
|
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
453
454
|
setEnableKeyboardShortcuts: Dispatch<SetStateAction<boolean>>;
|
@@ -478,6 +479,7 @@ interface MRT_TableState<TData extends MRT_RowData> extends TableState {
|
|
478
479
|
isSaving: boolean;
|
479
480
|
showAlertBanner: boolean;
|
480
481
|
showColumnFilters: boolean;
|
482
|
+
showToolBar: boolean;
|
481
483
|
showGlobalFilter: boolean;
|
482
484
|
showLoadingOverlay: boolean;
|
483
485
|
showProgressBars: boolean;
|
@@ -1067,6 +1069,7 @@ interface MRT_TableOptions<TData extends MRT_RowData> extends Omit<Partial<Table
|
|
1067
1069
|
onEnableKeyboardShortcutsChange?: OnChangeFn<boolean>;
|
1068
1070
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
1069
1071
|
onShowColumnFiltersChange?: OnChangeFn<boolean>;
|
1072
|
+
onShowToolBarChange?: OnChangeFn<boolean>;
|
1070
1073
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
1071
1074
|
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
1072
1075
|
paginationDisplayMode?: 'custom' | 'default' | 'pages';
|
package/dist/index.esm.js
CHANGED
@@ -51,7 +51,7 @@ import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
|
|
51
51
|
import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore';
|
52
52
|
import { defaultRangeExtractor, useVirtualizer } from '@tanstack/react-virtual';
|
53
53
|
import Paper from '@mui/material/Paper';
|
54
|
-
import { Button as Button$1, useTheme as useTheme$1 } from '@mui/material';
|
54
|
+
import { IconButton as IconButton$1, Button as Button$1, useTheme as useTheme$1 } from '@mui/material';
|
55
55
|
import TableContainer from '@mui/material/TableContainer';
|
56
56
|
import Table from '@mui/material/Table';
|
57
57
|
import TableBody from '@mui/material/TableBody';
|
@@ -436,7 +436,7 @@ const openEditingCell = ({ cell, table, }) => {
|
|
436
436
|
};
|
437
437
|
const cellKeyboardShortcuts = ({ cell, cellElements, cellValue, containerElement, event, header, parentElement, table, }) => {
|
438
438
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
439
|
-
debugger;
|
439
|
+
//debugger;
|
440
440
|
const { getState, setEnableKeyboardShortcuts, } = table;
|
441
441
|
const { enableKeyboardShortcuts } = getState();
|
442
442
|
if (event.altKey && event.key.toLocaleLowerCase() === 'n') {
|
@@ -532,7 +532,7 @@ const cellKeyboardShortcuts = ({ cell, cellElements, cellValue, containerElement
|
|
532
532
|
header.column.toggleSorting();
|
533
533
|
}
|
534
534
|
else if ("Enter" === event.key) {
|
535
|
-
debugger;
|
535
|
+
//debugger;
|
536
536
|
event.preventDefault();
|
537
537
|
const input = currentCell.querySelector('input');
|
538
538
|
const select = currentCell.querySelector('select');
|
@@ -573,7 +573,7 @@ const cellKeyboardShortcuts = ({ cell, cellElements, cellValue, containerElement
|
|
573
573
|
].includes(event.key)) {
|
574
574
|
event.preventDefault();
|
575
575
|
// if (['ArrowDown'].includes(event.key)) {
|
576
|
-
// debugger; // This will pause execution for debugging purposes
|
576
|
+
// //debugger; // This will pause execution for debugging purposes
|
577
577
|
// // Select the input element within the MUI Autocomplete component
|
578
578
|
// const autocomplete = currentCell.querySelector('.MuiAutocomplete-root input[type="text"]');
|
579
579
|
// // Check if the current cell is an MUI Autocomplete
|
@@ -1693,7 +1693,7 @@ const useMRT_Effects = (table) => {
|
|
1693
1693
|
* @returns the MRT table instance
|
1694
1694
|
*/
|
1695
1695
|
const useMRT_TableInstance = (definedTableOptions) => {
|
1696
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12;
|
1696
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14;
|
1697
1697
|
const lastSelectedRowId = useRef(null);
|
1698
1698
|
const actionCellRef = useRef(null);
|
1699
1699
|
const bottomToolbarRef = useRef(null);
|
@@ -1745,8 +1745,9 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1745
1745
|
const [pagination, onPaginationChange] = useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) !== null && _r !== void 0 ? _r : { pageIndex: 0, pageSize: 10 });
|
1746
1746
|
const [showAlertBanner, setShowAlertBanner] = useState((_s = initialState === null || initialState === void 0 ? void 0 : initialState.showAlertBanner) !== null && _s !== void 0 ? _s : false);
|
1747
1747
|
const [showColumnFilters, setShowColumnFilters] = useState((_t = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _t !== void 0 ? _t : false);
|
1748
|
-
const [
|
1749
|
-
const [
|
1748
|
+
const [showToolBar, setShowToolBar] = useState((_u = initialState === null || initialState === void 0 ? void 0 : initialState.showToolBar) !== null && _u !== void 0 ? _u : false);
|
1749
|
+
const [showGlobalFilter, setShowGlobalFilter] = useState((_v = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _v !== void 0 ? _v : false);
|
1750
|
+
const [showToolbarDropZone, setShowToolbarDropZone] = useState((_w = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _w !== void 0 ? _w : false);
|
1750
1751
|
definedTableOptions.state = Object.assign({ actionCell,
|
1751
1752
|
columnFilterFns,
|
1752
1753
|
columnOrder,
|
@@ -1766,6 +1767,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1766
1767
|
pagination,
|
1767
1768
|
showAlertBanner,
|
1768
1769
|
showColumnFilters,
|
1770
|
+
showToolBar,
|
1769
1771
|
showGlobalFilter,
|
1770
1772
|
showToolbarDropZone }, definedTableOptions.state);
|
1771
1773
|
//The table options now include all state needed to help determine column visibility and order logic
|
@@ -1820,7 +1822,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1820
1822
|
const table = useReactTable(Object.assign(Object.assign({ onColumnOrderChange,
|
1821
1823
|
onColumnSizingInfoChange,
|
1822
1824
|
onGroupingChange,
|
1823
|
-
onPaginationChange }, statefulTableOptions), { globalFilterFn: (
|
1825
|
+
onPaginationChange }, statefulTableOptions), { globalFilterFn: (_x = statefulTableOptions.filterFns) === null || _x === void 0 ? void 0 : _x[globalFilterFn !== null && globalFilterFn !== void 0 ? globalFilterFn : 'fuzzy'] }));
|
1824
1826
|
table.refs = {
|
1825
1827
|
actionCellRef,
|
1826
1828
|
bottomToolbarRef,
|
@@ -1836,7 +1838,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1836
1838
|
topToolbarRef,
|
1837
1839
|
};
|
1838
1840
|
table.setActionCell =
|
1839
|
-
(
|
1841
|
+
(_y = statefulTableOptions.onActionCellChange) !== null && _y !== void 0 ? _y : setActionCell;
|
1840
1842
|
table.setCreatingRow = (row) => {
|
1841
1843
|
var _a, _b;
|
1842
1844
|
let _row = row;
|
@@ -1846,34 +1848,36 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1846
1848
|
(_b = (_a = statefulTableOptions === null || statefulTableOptions === void 0 ? void 0 : statefulTableOptions.onCreatingRowChange) === null || _a === void 0 ? void 0 : _a.call(statefulTableOptions, _row)) !== null && _b !== void 0 ? _b : _setCreatingRow(_row);
|
1847
1849
|
};
|
1848
1850
|
table.setColumnFilterFns =
|
1849
|
-
(
|
1850
|
-
table.setDensity = (
|
1851
|
+
(_z = statefulTableOptions.onColumnFilterFnsChange) !== null && _z !== void 0 ? _z : setColumnFilterFns;
|
1852
|
+
table.setDensity = (_0 = statefulTableOptions.onDensityChange) !== null && _0 !== void 0 ? _0 : setDensity;
|
1851
1853
|
table.setDraggingColumn =
|
1852
|
-
(
|
1854
|
+
(_1 = statefulTableOptions.onDraggingColumnChange) !== null && _1 !== void 0 ? _1 : setDraggingColumn;
|
1853
1855
|
table.setDraggingRow =
|
1854
|
-
(
|
1856
|
+
(_2 = statefulTableOptions.onDraggingRowChange) !== null && _2 !== void 0 ? _2 : setDraggingRow;
|
1855
1857
|
table.setEditingCell =
|
1856
|
-
(
|
1858
|
+
(_3 = statefulTableOptions.onEditingCellChange) !== null && _3 !== void 0 ? _3 : setEditingCell;
|
1857
1859
|
table.setEditingRow =
|
1858
|
-
(
|
1860
|
+
(_4 = statefulTableOptions.onEditingRowChange) !== null && _4 !== void 0 ? _4 : setEditingRow;
|
1859
1861
|
table.setGlobalFilterFn =
|
1860
|
-
(
|
1862
|
+
(_5 = statefulTableOptions.onGlobalFilterFnChange) !== null && _5 !== void 0 ? _5 : setGlobalFilterFn;
|
1861
1863
|
table.setHoveredColumn =
|
1862
|
-
(
|
1864
|
+
(_6 = statefulTableOptions.onHoveredColumnChange) !== null && _6 !== void 0 ? _6 : setHoveredColumn;
|
1863
1865
|
table.setHoveredRow =
|
1864
|
-
(
|
1866
|
+
(_7 = statefulTableOptions.onHoveredRowChange) !== null && _7 !== void 0 ? _7 : setHoveredRow;
|
1865
1867
|
table.setIsFullScreen =
|
1866
|
-
(
|
1868
|
+
(_8 = statefulTableOptions.onIsFullScreenChange) !== null && _8 !== void 0 ? _8 : setIsFullScreen;
|
1867
1869
|
table.setEnableKeyboardShortcuts =
|
1868
|
-
(
|
1870
|
+
(_9 = statefulTableOptions.onEnableKeyboardShortcutsChange) !== null && _9 !== void 0 ? _9 : setEnableKeyboardShortcuts;
|
1869
1871
|
table.setShowAlertBanner =
|
1870
|
-
(
|
1872
|
+
(_10 = statefulTableOptions.onShowAlertBannerChange) !== null && _10 !== void 0 ? _10 : setShowAlertBanner;
|
1871
1873
|
table.setShowColumnFilters =
|
1872
|
-
(
|
1874
|
+
(_11 = statefulTableOptions.onShowColumnFiltersChange) !== null && _11 !== void 0 ? _11 : setShowColumnFilters;
|
1875
|
+
table.setShowToolBar =
|
1876
|
+
(_12 = statefulTableOptions.onShowToolBarChange) !== null && _12 !== void 0 ? _12 : setShowToolBar;
|
1873
1877
|
table.setShowGlobalFilter =
|
1874
|
-
(
|
1878
|
+
(_13 = statefulTableOptions.onShowGlobalFilterChange) !== null && _13 !== void 0 ? _13 : setShowGlobalFilter;
|
1875
1879
|
table.setShowToolbarDropZone =
|
1876
|
-
(
|
1880
|
+
(_14 = statefulTableOptions.onShowToolbarDropZoneChange) !== null && _14 !== void 0 ? _14 : setShowToolbarDropZone;
|
1877
1881
|
useMRT_Effects(table);
|
1878
1882
|
return table;
|
1879
1883
|
};
|
@@ -2332,7 +2336,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
2332
2336
|
const handleKeyDown = (event) => {
|
2333
2337
|
var _a;
|
2334
2338
|
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2335
|
-
debugger;
|
2339
|
+
//debugger;
|
2336
2340
|
cellKeyboardShortcuts({
|
2337
2341
|
cell,
|
2338
2342
|
cellValue: cell.getValue(),
|
@@ -2897,7 +2901,7 @@ const MRT_ColumnActionMenu = (_a) => {
|
|
2897
2901
|
const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, mrtTheme: { menuBackgroundColor }, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
|
2898
2902
|
const { column } = header;
|
2899
2903
|
const { columnDef } = column;
|
2900
|
-
const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
|
2904
|
+
const { columnSizing, columnVisibility, density, showColumnFilters, showToolBar } = getState();
|
2901
2905
|
const columnFilterValue = column.getFilterValue();
|
2902
2906
|
const [filterMenuAnchorEl, setFilterMenuAnchorEl] = useState(null);
|
2903
2907
|
const handleClearSort = () => {
|
@@ -3005,6 +3009,11 @@ const MRT_ColumnActionMenu = (_a) => {
|
|
3005
3009
|
.length, icon: jsx(ViewColumnIcon, {}), label: (_h = localization.showAllColumns) === null || _h === void 0 ? void 0 : _h.replace('{column}', String(columnDef.header)), onClick: handleShowAllColumns, table: table }, 12),
|
3006
3010
|
]
|
3007
3011
|
: []),
|
3012
|
+
// **Newly Added Menu Item for Toolbar Visibility**
|
3013
|
+
jsx(MRT_ActionMenuItem, { icon: jsx(ViewColumnIcon, {}), label: showToolBar ? "Hide ToolBar" : "Show ToolBar", onClick: (e) => {
|
3014
|
+
e.stopPropagation();
|
3015
|
+
table.setShowToolBar(!showToolBar);
|
3016
|
+
}, table: table }, 13),
|
3008
3017
|
].filter(Boolean);
|
3009
3018
|
return (jsx(Menu, Object.assign({ MenuListProps: {
|
3010
3019
|
dense: density === 'compact',
|
@@ -3166,6 +3175,8 @@ const MRT_FilterTextField = (_a) => {
|
|
3166
3175
|
setFilterValue('');
|
3167
3176
|
column.setFilterValue(undefined);
|
3168
3177
|
}
|
3178
|
+
// focus on the input after clearing the filter
|
3179
|
+
// filterInputRefs.current[`${column.id}-${rangeFilterIndex ?? 0}`]?.focus();
|
3169
3180
|
};
|
3170
3181
|
const handleClearEmptyFilterChip = () => {
|
3171
3182
|
setFilterValue('');
|
@@ -3537,6 +3548,24 @@ const MRT_TableHeadCellSortLabel = (_a) => {
|
|
3537
3548
|
}, flex: '0 0', opacity: isSorted ? 1 : 0.3, transition: 'all 150ms ease-in-out', width: '3ch' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))) })) }) }));
|
3538
3549
|
};
|
3539
3550
|
|
3551
|
+
const MRT_TableHeadCellToolBar = (_a) => {
|
3552
|
+
var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
|
3553
|
+
const { getState, options: { icons: { ArrowDownwardIcon, SyncAltIcon }, localization, }, } = table;
|
3554
|
+
const { isLoading, showSkeletons, showToolBar } = getState();
|
3555
|
+
const showToolBarTooltip = isLoading || showSkeletons
|
3556
|
+
? ''
|
3557
|
+
: showToolBar
|
3558
|
+
? "Hide ToolBar"
|
3559
|
+
: "Show ToolBar";
|
3560
|
+
return (jsx(Tooltip, { placement: "top", title: showToolBarTooltip, children: jsx(IconButton$1, { "aria-label": showToolBarTooltip, size: "small", sx: (theme) => (Object.assign({ '&:hover': {
|
3561
|
+
backgroundColor: 'transparent',
|
3562
|
+
opacity: 1,
|
3563
|
+
}, cursor: 'pointer', opacity: 1, p: '2px', transition: 'all 150ms ease-in-out' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), onClick: (e) => {
|
3564
|
+
e.stopPropagation();
|
3565
|
+
table.setShowToolBar(!showToolBar);
|
3566
|
+
}, children: jsx(SyncAltIcon, {}) }) }));
|
3567
|
+
};
|
3568
|
+
|
3540
3569
|
const MRT_TableHeadCell = (_a) => {
|
3541
3570
|
var _b, _c, _d, _f, _g, _h;
|
3542
3571
|
var { columnVirtualizer, header, staticColumnIndex, table } = _a, rest = __rest(_a, ["columnVirtualizer", "header", "staticColumnIndex", "table"]);
|
@@ -3544,7 +3573,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
3544
3573
|
const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnPinning,
|
3545
3574
|
// enableKeyboardShortcuts,
|
3546
3575
|
enableGrouping, enableMultiSort, layoutMode, mrtTheme: { draggingBorderColor }, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
3547
|
-
const { enableKeyboardShortcuts, columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
|
3576
|
+
const { enableKeyboardShortcuts, columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, showToolBar, } = getState();
|
3548
3577
|
const { column } = header;
|
3549
3578
|
const { columnDef } = column;
|
3550
3579
|
const { columnDefType } = columnDef;
|
@@ -3704,7 +3733,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
3704
3733
|
whiteSpace: ((_h = (_g = columnDef.header) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) < 20
|
3705
3734
|
? 'nowrap'
|
3706
3735
|
: 'normal',
|
3707
|
-
}, children: HeaderElement }), column.getCanFilter() && (jsx(MRT_TableHeadCellFilterLabel, { header: header, table: table })), column.getCanSort() && (jsx(MRT_TableHeadCellSortLabel, { header: header, table: table }))] }), columnDefType !== 'group' && (jsxs(Box, { className: "Mui-TableHeadCell-Content-Actions", sx: {
|
3736
|
+
}, children: HeaderElement }), column.getCanFilter() && (jsx(MRT_TableHeadCellFilterLabel, { header: header, table: table })), column.getCanSort() && (jsx(MRT_TableHeadCellSortLabel, { header: header, table: table })), jsx(MRT_TableHeadCellToolBar, { header: header, table: table })] }), columnDefType !== 'group' && (jsxs(Box, { className: "Mui-TableHeadCell-Content-Actions", sx: {
|
3708
3737
|
whiteSpace: 'nowrap',
|
3709
3738
|
}, children: [showDragHandle && (jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
|
3710
3739
|
current: tableHeadCellRefs.current[column.id],
|
@@ -4439,7 +4468,7 @@ const MRT_TablePaper = (_a) => {
|
|
4439
4468
|
const isTableInstanceProp = (props) => props.table !== undefined;
|
4440
4469
|
const MaterialReactTable = (props) => {
|
4441
4470
|
let table;
|
4442
|
-
debugger;
|
4471
|
+
//debugger;
|
4443
4472
|
if (isTableInstanceProp(props)) {
|
4444
4473
|
table = props.table;
|
4445
4474
|
}
|