material-react-table-narender 2.13.25 → 2.13.29

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/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.13.25",
2
+ "version": "2.13.29",
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.",
@@ -25,7 +25,7 @@ export const MaterialReactTable = <TData extends MRT_RowData>(
25
25
  props: MaterialReactTableProps<TData>,
26
26
  ) => {
27
27
  let table: MRT_TableInstance<TData>;
28
- debugger;
28
+ //debugger;
29
29
  if (isTableInstanceProp(props)) {
30
30
  table = props.table;
31
31
  } else {
@@ -231,7 +231,7 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
231
231
 
232
232
  const handleKeyDown = (event: React.KeyboardEvent<HTMLTableCellElement>) => {
233
233
  tableCellProps?.onKeyDown?.(event);
234
- debugger;
234
+ //debugger;
235
235
  cellKeyboardShortcuts({
236
236
  cell,
237
237
  cellValue: cell.getValue<string>(),
@@ -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
+ };
@@ -205,6 +205,8 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
205
205
  setFilterValue('');
206
206
  column.setFilterValue(undefined);
207
207
  }
208
+ // focus on the input after clearing the filter
209
+ // filterInputRefs.current[`${column.id}-${rangeFilterIndex ?? 0}`]?.focus();
208
210
  };
209
211
 
210
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> {
@@ -60,7 +61,7 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
60
61
  } = table;
61
62
  const { column } = header;
62
63
  const { columnDef } = column;
63
- const { columnSizing, columnVisibility, density, showColumnFilters } =
64
+ const { columnSizing, columnVisibility, density, showColumnFilters,showToolBar } =
64
65
  getState();
65
66
  const columnFilterValue = column.getFilterValue();
66
67
 
@@ -315,6 +316,18 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
315
316
  />,
316
317
  ]
317
318
  : []),
319
+
320
+ // **Newly Added Menu Item for Toolbar Visibility**
321
+ <MRT_ActionMenuItem
322
+ icon={<ViewColumnIcon />}
323
+ key={13}
324
+ label={showToolBar ? "Hide ToolBar" : "Show ToolBar"}
325
+ onClick={(e) => {
326
+ e.stopPropagation();
327
+ table.setShowToolBar(!showToolBar);
328
+ }}
329
+ table={table}
330
+ />,
318
331
  ].filter(Boolean);
319
332
 
320
333
  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/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';
@@ -80,7 +80,7 @@ export const cellKeyboardShortcuts = <TData extends MRT_RowData = MRT_RowData>({
80
80
  table: MRT_TableInstance<TData>;
81
81
  }) => {
82
82
 
83
- debugger;
83
+ //debugger;
84
84
  const {
85
85
  getState,
86
86
  setEnableKeyboardShortcuts,
@@ -194,7 +194,7 @@ if (event.altKey && event.key.toLocaleLowerCase() === 'n') {
194
194
  }
195
195
  else if ("Enter" === event.key) {
196
196
 
197
- debugger;
197
+ //debugger;
198
198
  event.preventDefault();
199
199
  const input = currentCell.querySelector('input') as HTMLInputElement;
200
200
  const select = currentCell.querySelector('select') as HTMLSelectElement;
@@ -234,7 +234,7 @@ else if (input) {
234
234
  ) {
235
235
  event.preventDefault();
236
236
  // if (['ArrowDown'].includes(event.key)) {
237
- // debugger; // This will pause execution for debugging purposes
237
+ // //debugger; // This will pause execution for debugging purposes
238
238
 
239
239
  // // Select the input element within the MUI Autocomplete component
240
240
  // const autocomplete = currentCell.querySelector('.MuiAutocomplete-root input[type="text"]');