material-react-table-narender 2.13.27 → 2.13.30
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/index.d.ts +6 -0
- package/dist/index.esm.js +38 -37
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +39 -37
- package/dist/index.js.map +1 -1
- package/package.json +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 -11
- package/src/components/menus/MRT_ColumnActionMenu.tsx +15 -1
- package/src/hooks/useMRT_TableInstance.ts +8 -0
- package/src/icons.ts +3 -1
- package/src/types.ts +3 -0
package/dist/index.d.ts
CHANGED
@@ -236,6 +236,9 @@ declare const MRT_Default_Icons: {
|
|
236
236
|
readonly SettingsBackupRestoreIcon: _mui_material_OverridableComponent.OverridableComponent<_mui_material.SvgIconTypeMap<{}, "svg">> & {
|
237
237
|
muiName: string;
|
238
238
|
};
|
239
|
+
readonly SettingsOutlinedIcon: _mui_material_OverridableComponent.OverridableComponent<_mui_material.SvgIconTypeMap<{}, "svg">> & {
|
240
|
+
muiName: string;
|
241
|
+
};
|
239
242
|
};
|
240
243
|
type MRT_Icons = Record<keyof typeof MRT_Default_Icons, any>;
|
241
244
|
|
@@ -448,6 +451,7 @@ type MRT_TableInstance<TData extends MRT_RowData> = Omit<Table<TData>, 'getAllCo
|
|
448
451
|
setIsFullScreen: Dispatch<SetStateAction<boolean>>;
|
449
452
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
450
453
|
setShowColumnFilters: Dispatch<SetStateAction<boolean>>;
|
454
|
+
setShowToolBar: Dispatch<SetStateAction<boolean>>;
|
451
455
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
452
456
|
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
453
457
|
setEnableKeyboardShortcuts: Dispatch<SetStateAction<boolean>>;
|
@@ -478,6 +482,7 @@ interface MRT_TableState<TData extends MRT_RowData> extends TableState {
|
|
478
482
|
isSaving: boolean;
|
479
483
|
showAlertBanner: boolean;
|
480
484
|
showColumnFilters: boolean;
|
485
|
+
showToolBar: boolean;
|
481
486
|
showGlobalFilter: boolean;
|
482
487
|
showLoadingOverlay: boolean;
|
483
488
|
showProgressBars: boolean;
|
@@ -1067,6 +1072,7 @@ interface MRT_TableOptions<TData extends MRT_RowData> extends Omit<Partial<Table
|
|
1067
1072
|
onEnableKeyboardShortcutsChange?: OnChangeFn<boolean>;
|
1068
1073
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
1069
1074
|
onShowColumnFiltersChange?: OnChangeFn<boolean>;
|
1075
|
+
onShowToolBarChange?: OnChangeFn<boolean>;
|
1070
1076
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
1071
1077
|
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
1072
1078
|
paginationDisplayMode?: 'custom' | 'default' | 'pages';
|
package/dist/index.esm.js
CHANGED
@@ -49,6 +49,7 @@ import SyncAltIcon from '@mui/icons-material/SyncAlt';
|
|
49
49
|
import ViewColumnIcon from '@mui/icons-material/ViewColumn';
|
50
50
|
import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
|
51
51
|
import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore';
|
52
|
+
import SettingsOutlinedIcon from '@mui/icons-material/SettingsOutlined';
|
52
53
|
import { defaultRangeExtractor, useVirtualizer } from '@tanstack/react-virtual';
|
53
54
|
import Paper from '@mui/material/Paper';
|
54
55
|
import { Button as Button$1, useTheme as useTheme$1 } from '@mui/material';
|
@@ -1371,7 +1372,8 @@ const MRT_Default_Icons = {
|
|
1371
1372
|
SyncAltIcon,
|
1372
1373
|
ViewColumnIcon,
|
1373
1374
|
VisibilityOffIcon,
|
1374
|
-
SettingsBackupRestoreIcon
|
1375
|
+
SettingsBackupRestoreIcon,
|
1376
|
+
SettingsOutlinedIcon
|
1375
1377
|
};
|
1376
1378
|
|
1377
1379
|
const MRT_Localization_EN = {
|
@@ -1693,7 +1695,7 @@ const useMRT_Effects = (table) => {
|
|
1693
1695
|
* @returns the MRT table instance
|
1694
1696
|
*/
|
1695
1697
|
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;
|
1698
|
+
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
1699
|
const lastSelectedRowId = useRef(null);
|
1698
1700
|
const actionCellRef = useRef(null);
|
1699
1701
|
const bottomToolbarRef = useRef(null);
|
@@ -1745,8 +1747,9 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1745
1747
|
const [pagination, onPaginationChange] = useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) !== null && _r !== void 0 ? _r : { pageIndex: 0, pageSize: 10 });
|
1746
1748
|
const [showAlertBanner, setShowAlertBanner] = useState((_s = initialState === null || initialState === void 0 ? void 0 : initialState.showAlertBanner) !== null && _s !== void 0 ? _s : false);
|
1747
1749
|
const [showColumnFilters, setShowColumnFilters] = useState((_t = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _t !== void 0 ? _t : false);
|
1748
|
-
const [
|
1749
|
-
const [
|
1750
|
+
const [showToolBar, setShowToolBar] = useState((_u = initialState === null || initialState === void 0 ? void 0 : initialState.showToolBar) !== null && _u !== void 0 ? _u : false);
|
1751
|
+
const [showGlobalFilter, setShowGlobalFilter] = useState((_v = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _v !== void 0 ? _v : false);
|
1752
|
+
const [showToolbarDropZone, setShowToolbarDropZone] = useState((_w = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _w !== void 0 ? _w : false);
|
1750
1753
|
definedTableOptions.state = Object.assign({ actionCell,
|
1751
1754
|
columnFilterFns,
|
1752
1755
|
columnOrder,
|
@@ -1766,6 +1769,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1766
1769
|
pagination,
|
1767
1770
|
showAlertBanner,
|
1768
1771
|
showColumnFilters,
|
1772
|
+
showToolBar,
|
1769
1773
|
showGlobalFilter,
|
1770
1774
|
showToolbarDropZone }, definedTableOptions.state);
|
1771
1775
|
//The table options now include all state needed to help determine column visibility and order logic
|
@@ -1820,7 +1824,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1820
1824
|
const table = useReactTable(Object.assign(Object.assign({ onColumnOrderChange,
|
1821
1825
|
onColumnSizingInfoChange,
|
1822
1826
|
onGroupingChange,
|
1823
|
-
onPaginationChange }, statefulTableOptions), { globalFilterFn: (
|
1827
|
+
onPaginationChange }, statefulTableOptions), { globalFilterFn: (_x = statefulTableOptions.filterFns) === null || _x === void 0 ? void 0 : _x[globalFilterFn !== null && globalFilterFn !== void 0 ? globalFilterFn : 'fuzzy'] }));
|
1824
1828
|
table.refs = {
|
1825
1829
|
actionCellRef,
|
1826
1830
|
bottomToolbarRef,
|
@@ -1836,7 +1840,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1836
1840
|
topToolbarRef,
|
1837
1841
|
};
|
1838
1842
|
table.setActionCell =
|
1839
|
-
(
|
1843
|
+
(_y = statefulTableOptions.onActionCellChange) !== null && _y !== void 0 ? _y : setActionCell;
|
1840
1844
|
table.setCreatingRow = (row) => {
|
1841
1845
|
var _a, _b;
|
1842
1846
|
let _row = row;
|
@@ -1846,34 +1850,36 @@ const useMRT_TableInstance = (definedTableOptions) => {
|
|
1846
1850
|
(_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
1851
|
};
|
1848
1852
|
table.setColumnFilterFns =
|
1849
|
-
(
|
1850
|
-
table.setDensity = (
|
1853
|
+
(_z = statefulTableOptions.onColumnFilterFnsChange) !== null && _z !== void 0 ? _z : setColumnFilterFns;
|
1854
|
+
table.setDensity = (_0 = statefulTableOptions.onDensityChange) !== null && _0 !== void 0 ? _0 : setDensity;
|
1851
1855
|
table.setDraggingColumn =
|
1852
|
-
(
|
1856
|
+
(_1 = statefulTableOptions.onDraggingColumnChange) !== null && _1 !== void 0 ? _1 : setDraggingColumn;
|
1853
1857
|
table.setDraggingRow =
|
1854
|
-
(
|
1858
|
+
(_2 = statefulTableOptions.onDraggingRowChange) !== null && _2 !== void 0 ? _2 : setDraggingRow;
|
1855
1859
|
table.setEditingCell =
|
1856
|
-
(
|
1860
|
+
(_3 = statefulTableOptions.onEditingCellChange) !== null && _3 !== void 0 ? _3 : setEditingCell;
|
1857
1861
|
table.setEditingRow =
|
1858
|
-
(
|
1862
|
+
(_4 = statefulTableOptions.onEditingRowChange) !== null && _4 !== void 0 ? _4 : setEditingRow;
|
1859
1863
|
table.setGlobalFilterFn =
|
1860
|
-
(
|
1864
|
+
(_5 = statefulTableOptions.onGlobalFilterFnChange) !== null && _5 !== void 0 ? _5 : setGlobalFilterFn;
|
1861
1865
|
table.setHoveredColumn =
|
1862
|
-
(
|
1866
|
+
(_6 = statefulTableOptions.onHoveredColumnChange) !== null && _6 !== void 0 ? _6 : setHoveredColumn;
|
1863
1867
|
table.setHoveredRow =
|
1864
|
-
(
|
1868
|
+
(_7 = statefulTableOptions.onHoveredRowChange) !== null && _7 !== void 0 ? _7 : setHoveredRow;
|
1865
1869
|
table.setIsFullScreen =
|
1866
|
-
(
|
1870
|
+
(_8 = statefulTableOptions.onIsFullScreenChange) !== null && _8 !== void 0 ? _8 : setIsFullScreen;
|
1867
1871
|
table.setEnableKeyboardShortcuts =
|
1868
|
-
(
|
1872
|
+
(_9 = statefulTableOptions.onEnableKeyboardShortcutsChange) !== null && _9 !== void 0 ? _9 : setEnableKeyboardShortcuts;
|
1869
1873
|
table.setShowAlertBanner =
|
1870
|
-
(
|
1874
|
+
(_10 = statefulTableOptions.onShowAlertBannerChange) !== null && _10 !== void 0 ? _10 : setShowAlertBanner;
|
1871
1875
|
table.setShowColumnFilters =
|
1872
|
-
(
|
1876
|
+
(_11 = statefulTableOptions.onShowColumnFiltersChange) !== null && _11 !== void 0 ? _11 : setShowColumnFilters;
|
1877
|
+
table.setShowToolBar =
|
1878
|
+
(_12 = statefulTableOptions.onShowToolBarChange) !== null && _12 !== void 0 ? _12 : setShowToolBar;
|
1873
1879
|
table.setShowGlobalFilter =
|
1874
|
-
(
|
1880
|
+
(_13 = statefulTableOptions.onShowGlobalFilterChange) !== null && _13 !== void 0 ? _13 : setShowGlobalFilter;
|
1875
1881
|
table.setShowToolbarDropZone =
|
1876
|
-
(
|
1882
|
+
(_14 = statefulTableOptions.onShowToolbarDropZoneChange) !== null && _14 !== void 0 ? _14 : setShowToolbarDropZone;
|
1877
1883
|
useMRT_Effects(table);
|
1878
1884
|
return table;
|
1879
1885
|
};
|
@@ -2894,10 +2900,10 @@ const MRT_FilterOptionMenu = (_a) => {
|
|
2894
2900
|
const MRT_ColumnActionMenu = (_a) => {
|
2895
2901
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
2896
2902
|
var { anchorEl, header, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "header", "setAnchorEl", "table"]);
|
2897
|
-
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;
|
2903
|
+
const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, SettingsOutlinedIcon }, localization, mrtTheme: { menuBackgroundColor }, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
|
2898
2904
|
const { column } = header;
|
2899
2905
|
const { columnDef } = column;
|
2900
|
-
const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
|
2906
|
+
const { columnSizing, columnVisibility, density, showColumnFilters, showToolBar } = getState();
|
2901
2907
|
const columnFilterValue = column.getFilterValue();
|
2902
2908
|
const [filterMenuAnchorEl, setFilterMenuAnchorEl] = useState(null);
|
2903
2909
|
const handleClearSort = () => {
|
@@ -3005,6 +3011,11 @@ const MRT_ColumnActionMenu = (_a) => {
|
|
3005
3011
|
.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
3012
|
]
|
3007
3013
|
: []),
|
3014
|
+
// **Newly Added Menu Item for Toolbar Visibility**
|
3015
|
+
jsx(MRT_ActionMenuItem, { icon: jsx(SettingsOutlinedIcon, {}), label: showToolBar ? "Hide ToolBar" : "Show ToolBar", onClick: (e) => {
|
3016
|
+
e.stopPropagation();
|
3017
|
+
table.setShowToolBar(!showToolBar);
|
3018
|
+
}, table: table }, 13),
|
3008
3019
|
].filter(Boolean);
|
3009
3020
|
return (jsx(Menu, Object.assign({ MenuListProps: {
|
3010
3021
|
dense: density === 'compact',
|
@@ -3128,19 +3139,7 @@ const MRT_FilterTextField = (_a) => {
|
|
3128
3139
|
});
|
3129
3140
|
}
|
3130
3141
|
else {
|
3131
|
-
|
3132
|
-
// column.setFilterValue(newValue === '' ? undefined : newValue);
|
3133
|
-
debugger;
|
3134
|
-
if (newValue === 0) {
|
3135
|
-
column.setFilterValue("0");
|
3136
|
-
}
|
3137
|
-
else {
|
3138
|
-
column.setFilterValue(newValue);
|
3139
|
-
}
|
3140
|
-
}
|
3141
|
-
else {
|
3142
|
-
column.setFilterValue(newValue !== null && newValue !== void 0 ? newValue : undefined);
|
3143
|
-
}
|
3142
|
+
column.setFilterValue(newValue !== null && newValue !== void 0 ? newValue : undefined);
|
3144
3143
|
}
|
3145
3144
|
}, isTextboxFilter ? (manualFiltering ? 400 : 200) : 1), []);
|
3146
3145
|
const handleChange = (newValue) => {
|
@@ -3178,6 +3177,8 @@ const MRT_FilterTextField = (_a) => {
|
|
3178
3177
|
setFilterValue('');
|
3179
3178
|
column.setFilterValue(undefined);
|
3180
3179
|
}
|
3180
|
+
// focus on the input after clearing the filter
|
3181
|
+
// filterInputRefs.current[`${column.id}-${rangeFilterIndex ?? 0}`]?.focus();
|
3181
3182
|
};
|
3182
3183
|
const handleClearEmptyFilterChip = () => {
|
3183
3184
|
setFilterValue('');
|
@@ -3556,7 +3557,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
3556
3557
|
const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnPinning,
|
3557
3558
|
// enableKeyboardShortcuts,
|
3558
3559
|
enableGrouping, enableMultiSort, layoutMode, mrtTheme: { draggingBorderColor }, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
3559
|
-
const { enableKeyboardShortcuts, columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
|
3560
|
+
const { enableKeyboardShortcuts, columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, showToolBar, } = getState();
|
3560
3561
|
const { column } = header;
|
3561
3562
|
const { columnDef } = column;
|
3562
3563
|
const { columnDefType } = columnDef;
|