material-react-table-narender 2.13.27 → 2.13.30

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.13.27",
2
+ "version": "2.13.30",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table-narender",
5
5
  "description": "A fully featured Material UI V5 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
@@ -18,6 +18,7 @@ import {
18
18
  import { getCommonMRTCellStyles } from '../../utils/style.utils';
19
19
  import { parseFromValuesOrFunc } from '../../utils/utils';
20
20
  import { cellKeyboardShortcuts } from '../../utils/cell.utils';
21
+ import { MRT_TableHeadCellToolBar } from './MRT_TableHeadCellToolBar';
21
22
 
22
23
  export interface MRT_TableHeadCellProps<TData extends MRT_RowData>
23
24
  extends TableCellProps {
@@ -63,6 +64,7 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
63
64
  grouping,
64
65
  hoveredColumn,
65
66
  showColumnFilters,
67
+ showToolBar,
66
68
  } = getState();
67
69
  const { column } = header;
68
70
  const { columnDef } = column;
@@ -307,6 +309,7 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
307
309
  {column.getCanSort() && (
308
310
  <MRT_TableHeadCellSortLabel header={header} table={table} />
309
311
  )}
312
+ {/* <MRT_TableHeadCellToolBar header={header} table={table} /> */}
310
313
  </Box>
311
314
  {columnDefType !== 'group' && (
312
315
  <Box
@@ -0,0 +1,68 @@
1
+ import Badge from '@mui/material/Badge';
2
+ import TableSortLabel, {
3
+ type TableSortLabelProps,
4
+ } from '@mui/material/TableSortLabel';
5
+ import Tooltip from '@mui/material/Tooltip';
6
+ import {
7
+ type MRT_Header,
8
+ type MRT_RowData,
9
+ type MRT_TableInstance,
10
+ } from '../../types';
11
+ import { parseFromValuesOrFunc } from '../../utils/utils';
12
+ import { IconButton } from '@mui/material';
13
+
14
+ export interface MRT_TableHeadCellToolBarLabelProps<TData extends MRT_RowData>
15
+ extends TableSortLabelProps {
16
+ header: MRT_Header<TData>;
17
+ table: MRT_TableInstance<TData>;
18
+ }
19
+
20
+ export const MRT_TableHeadCellToolBar = <TData extends MRT_RowData>({
21
+ header,
22
+ table,
23
+ ...rest
24
+ }: MRT_TableHeadCellToolBarLabelProps<TData>) => {
25
+ const {
26
+ getState,
27
+ options: {
28
+ icons: { ArrowDownwardIcon, SyncAltIcon },
29
+ localization,
30
+ },
31
+ } = table;
32
+ const { isLoading, showSkeletons, showToolBar } = getState();
33
+
34
+
35
+ const showToolBarTooltip = isLoading || showSkeletons
36
+ ? ''
37
+ : showToolBar
38
+ ? "Hide ToolBar"
39
+ : "Show ToolBar";
40
+
41
+
42
+ return (
43
+ <Tooltip placement="top" title={showToolBarTooltip}>
44
+
45
+ <IconButton
46
+ aria-label={showToolBarTooltip}
47
+ size="small"
48
+ sx={(theme) => ({
49
+ '&:hover': {
50
+ backgroundColor: 'transparent',
51
+ opacity: 1,
52
+ },
53
+ cursor: 'pointer',
54
+ opacity: 1,
55
+ p: '2px',
56
+ transition: 'all 150ms ease-in-out',
57
+ ...(parseFromValuesOrFunc(rest?.sx, theme) as any),
58
+ })}
59
+ onClick={(e) => {
60
+ e.stopPropagation();
61
+ table.setShowToolBar(!showToolBar);
62
+ }}
63
+ >
64
+ <SyncAltIcon />
65
+ </IconButton>
66
+ </Tooltip>
67
+ );
68
+ };
@@ -161,18 +161,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
161
161
  return newFilterValues;
162
162
  });
163
163
  } else {
164
- if (textFieldProps.type ==="number") {
165
- // column.setFilterValue(newValue === '' ? undefined : newValue);
166
- debugger;
167
- if (newValue === 0) {
168
- column.setFilterValue("0");
169
- } else {
170
- column.setFilterValue(newValue);
171
- }
172
-
173
- } else {
174
164
  column.setFilterValue(newValue ?? undefined);
175
- }
176
165
  }
177
166
  },
178
167
  isTextboxFilter ? (manualFiltering ? 400 : 200) : 1,
@@ -216,6 +205,8 @@ debugger;
216
205
  setFilterValue('');
217
206
  column.setFilterValue(undefined);
218
207
  }
208
+ // focus on the input after clearing the filter
209
+ // filterInputRefs.current[`${column.id}-${rangeFilterIndex ?? 0}`]?.focus();
219
210
  };
220
211
 
221
212
  const handleClearEmptyFilterChip = () => {
@@ -7,6 +7,7 @@ import {
7
7
  type MRT_RowData,
8
8
  type MRT_TableInstance,
9
9
  } from '../../types';
10
+ import { MRT_TableHeadCellToolBar } from '../head/MRT_TableHeadCellToolBar';
10
11
 
11
12
  export interface MRT_ColumnActionMenuProps<TData extends MRT_RowData>
12
13
  extends Partial<MenuProps> {
@@ -47,6 +48,7 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
47
48
  SortIcon,
48
49
  ViewColumnIcon,
49
50
  VisibilityOffIcon,
51
+ SettingsOutlinedIcon
50
52
  },
51
53
  localization,
52
54
  mrtTheme: { menuBackgroundColor },
@@ -60,7 +62,7 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
60
62
  } = table;
61
63
  const { column } = header;
62
64
  const { columnDef } = column;
63
- const { columnSizing, columnVisibility, density, showColumnFilters } =
65
+ const { columnSizing, columnVisibility, density, showColumnFilters,showToolBar } =
64
66
  getState();
65
67
  const columnFilterValue = column.getFilterValue();
66
68
 
@@ -315,6 +317,18 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
315
317
  />,
316
318
  ]
317
319
  : []),
320
+
321
+ // **Newly Added Menu Item for Toolbar Visibility**
322
+ <MRT_ActionMenuItem
323
+ icon={<SettingsOutlinedIcon />}
324
+ key={13}
325
+ label={showToolBar ? "Hide ToolBar" : "Show ToolBar"}
326
+ onClick={(e) => {
327
+ e.stopPropagation();
328
+ table.setShowToolBar(!showToolBar);
329
+ }}
330
+ table={table}
331
+ />,
318
332
  ].filter(Boolean);
319
333
 
320
334
  return (
@@ -158,7 +158,12 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
158
158
  );
159
159
  const [showColumnFilters, setShowColumnFilters] = useState<boolean>(
160
160
  initialState?.showColumnFilters ?? false,
161
+ );
162
+ const [showToolBar, setShowToolBar] = useState<boolean>(
163
+ initialState?.showToolBar ?? false,
161
164
  );
165
+
166
+
162
167
  const [showGlobalFilter, setShowGlobalFilter] = useState<boolean>(
163
168
  initialState?.showGlobalFilter ?? false,
164
169
  );
@@ -186,6 +191,7 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
186
191
  pagination,
187
192
  showAlertBanner,
188
193
  showColumnFilters,
194
+ showToolBar,
189
195
  showGlobalFilter,
190
196
  showToolbarDropZone,
191
197
  ...definedTableOptions.state,
@@ -317,6 +323,8 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
317
323
  statefulTableOptions.onShowAlertBannerChange ?? setShowAlertBanner;
318
324
  table.setShowColumnFilters =
319
325
  statefulTableOptions.onShowColumnFiltersChange ?? setShowColumnFilters;
326
+ table.setShowToolBar =
327
+ statefulTableOptions.onShowToolBarChange ?? setShowToolBar;
320
328
  table.setShowGlobalFilter =
321
329
  statefulTableOptions.onShowGlobalFilterChange ?? setShowGlobalFilter;
322
330
  table.setShowToolbarDropZone =
package/src/icons.ts CHANGED
@@ -33,6 +33,7 @@ import SyncAltIcon from '@mui/icons-material/SyncAlt';
33
33
  import ViewColumnIcon from '@mui/icons-material/ViewColumn';
34
34
  import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
35
35
  import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore';
36
+ import SettingsOutlinedIcon from '@mui/icons-material/SettingsOutlined';
36
37
 
37
38
  export const MRT_Default_Icons = {
38
39
  ArrowDownwardIcon,
@@ -69,7 +70,8 @@ export const MRT_Default_Icons = {
69
70
  SyncAltIcon,
70
71
  ViewColumnIcon,
71
72
  VisibilityOffIcon,
72
- SettingsBackupRestoreIcon
73
+ SettingsBackupRestoreIcon,
74
+ SettingsOutlinedIcon
73
75
  } as const;
74
76
 
75
77
  export type MRT_Icons = Record<keyof typeof MRT_Default_Icons, any>;
package/src/types.ts CHANGED
@@ -344,6 +344,7 @@ export type MRT_TableInstance<TData extends MRT_RowData> = Omit<
344
344
  setIsFullScreen: Dispatch<SetStateAction<boolean>>;
345
345
  setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
346
346
  setShowColumnFilters: Dispatch<SetStateAction<boolean>>;
347
+ setShowToolBar: Dispatch<SetStateAction<boolean>>;
347
348
  setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
348
349
  setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
349
350
  setEnableKeyboardShortcuts : Dispatch<SetStateAction<boolean>>;
@@ -402,6 +403,7 @@ export interface MRT_TableState<TData extends MRT_RowData> extends TableState {
402
403
  isSaving: boolean;
403
404
  showAlertBanner: boolean;
404
405
  showColumnFilters: boolean;
406
+ showToolBar: boolean;
405
407
  showGlobalFilter: boolean;
406
408
  showLoadingOverlay: boolean;
407
409
  showProgressBars: boolean;
@@ -1190,6 +1192,7 @@ export interface MRT_TableOptions<TData extends MRT_RowData>
1190
1192
  onEnableKeyboardShortcutsChange?: OnChangeFn<boolean>;
1191
1193
  onShowAlertBannerChange?: OnChangeFn<boolean>;
1192
1194
  onShowColumnFiltersChange?: OnChangeFn<boolean>;
1195
+ onShowToolBarChange?: OnChangeFn<boolean>;
1193
1196
  onShowGlobalFilterChange?: OnChangeFn<boolean>;
1194
1197
  onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
1195
1198
  paginationDisplayMode?: 'custom' | 'default' | 'pages';