material-react-table 0.23.5 → 0.25.0

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.
@@ -1,19 +1,12 @@
1
- import { ChangeEvent, Dispatch, FC, FocusEvent, ReactNode, SetStateAction } from 'react';
2
- import { AlertProps, ButtonProps, CheckboxProps, IconButtonProps, LinearProgressProps, PaperProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
- import { Cell, Column, ColumnDef, FilterFn, Header, HeaderGroup, OnChangeFn, Row, SortingFn, Table, TableOptions, TableState } from '@tanstack/react-table';
4
- import { Options as VirtualizerOptions } from 'react-virtual';
1
+ import { ChangeEvent, Dispatch, DragEvent, FC, FocusEvent, ReactNode, SetStateAction } from 'react';
2
+ import type { AlertProps, ButtonProps, CheckboxProps, IconButtonProps, LinearProgressProps, PaperProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
+ import type { Cell, Column, ColumnDef, FilterFn, Header, HeaderGroup, OnChangeFn, Row, SortingFn, Table, TableOptions, TableState } from '@tanstack/react-table';
4
+ import type { Options as VirtualizerOptions } from 'react-virtual';
5
5
  import { MRT_Localization } from './localization';
6
6
  import { MRT_Icons } from './icons';
7
7
  import { MRT_FilterFns } from './filtersFns';
8
8
  import { MRT_SortingFns } from './sortingFns';
9
9
  declare type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);
10
- export declare type MRT_TableOptions<TData extends Record<string, any> = {}> = Partial<Omit<TableOptions<TData>, 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'>> & {
11
- columns: MRT_ColumnDef<TData>[];
12
- data: TData[];
13
- expandRowsFn?: (dataRow: TData) => TData[];
14
- initialState?: Partial<MRT_TableState<TData>>;
15
- state?: Partial<MRT_TableState<TData>>;
16
- };
17
10
  export interface MRT_RowModel<TData extends Record<string, any> = {}> {
18
11
  flatRows: MRT_Row<TData>[];
19
12
  rows: MRT_Row<TData>[];
@@ -43,6 +36,7 @@ export declare type MRT_TableInstance<TData extends Record<string, any> = {}> =
43
36
  localization: MRT_Localization;
44
37
  };
45
38
  setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;
39
+ setCurrentDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;
46
40
  setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;
47
41
  setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;
48
42
  setCurrentFilterFns: Dispatch<SetStateAction<{
@@ -50,6 +44,7 @@ export declare type MRT_TableInstance<TData extends Record<string, any> = {}> =
50
44
  }>>;
51
45
  setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;
52
46
  setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;
47
+ setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;
53
48
  setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;
54
49
  setIsFullScreen: Dispatch<SetStateAction<boolean>>;
55
50
  setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
@@ -58,11 +53,13 @@ export declare type MRT_TableInstance<TData extends Record<string, any> = {}> =
58
53
  };
59
54
  export declare type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
60
55
  currentDraggingColumn: MRT_Column<TData> | null;
56
+ currentDraggingRow: MRT_Row<TData> | null;
61
57
  currentEditingCell: MRT_Cell<TData> | null;
62
58
  currentEditingRow: MRT_Row<TData> | null;
63
59
  currentFilterFns: Record<string, MRT_FilterOption>;
64
60
  currentGlobalFilterFn: Record<string, MRT_FilterOption>;
65
61
  currentHoveredColumn: MRT_Column<TData> | null;
62
+ currentHoveredRow: MRT_Row<TData> | null;
66
63
  density: 'comfortable' | 'compact' | 'spacious';
67
64
  isFullScreen: boolean;
68
65
  isLoading: boolean;
@@ -110,7 +107,7 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
110
107
  *
111
108
  * @example accessorKey: 'username'
112
109
  */
113
- accessorKey?: LiteralUnion<string & keyof TData>;
110
+ accessorKey?: string & keyof TData;
114
111
  /**
115
112
  * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.
116
113
  * Leave this blank if you are just creating a normal data column.
@@ -123,6 +120,7 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
123
120
  columns?: MRT_ColumnDef<TData>[];
124
121
  enableClickToCopy?: boolean;
125
122
  enableColumnActions?: boolean;
123
+ enableColumnDragging?: boolean;
126
124
  enableColumnFilterChangeMode?: boolean;
127
125
  enableColumnOrdering?: boolean;
128
126
  enableEditing?: boolean;
@@ -170,6 +168,10 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
170
168
  table: MRT_TableInstance<TData>;
171
169
  column: MRT_Column<TData>;
172
170
  }) => IconButtonProps);
171
+ muiTableHeadCellDragHandleProps?: IconButtonProps | (({ table, column, }: {
172
+ table: MRT_TableInstance<TData>;
173
+ column: MRT_Column<TData>;
174
+ }) => IconButtonProps);
173
175
  muiTableHeadCellFilterTextFieldProps?: TextFieldProps | (({ table, column, }: {
174
176
  table: MRT_TableInstance<TData>;
175
177
  column: MRT_Column<TData>;
@@ -206,11 +208,10 @@ export declare type MRT_Header<TData extends Record<string, any> = {}> = Omit<He
206
208
  export declare type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<HeaderGroup<TData>, 'headers'> & {
207
209
  headers: MRT_Header<TData>[];
208
210
  };
209
- export declare type MRT_Row<TData extends Record<string, any> = {}> = Omit<Row<TData>, 'getVisibleCells' | 'getAllCells' | 'subRows' | 'original' | '_valuesCache'> & {
211
+ export declare type MRT_Row<TData extends Record<string, any> = {}> = Omit<Row<TData>, 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'> & {
210
212
  getAllCells: () => MRT_Cell<TData>[];
211
213
  getVisibleCells: () => MRT_Cell<TData>[];
212
214
  subRows?: MRT_Row<TData>[];
213
- original: TData;
214
215
  _valuesCache?: TData;
215
216
  };
216
217
  export declare type MRT_Cell<TData extends Record<string, any> = {}> = Omit<Cell<TData, unknown>, 'column' | 'row'> & {
@@ -221,10 +222,26 @@ export declare type MRT_SortingOption = keyof typeof MRT_SortingFns;
221
222
  export declare type MRT_SortingFn<TData extends Record<string, any> = {}> = SortingFn<TData> | MRT_SortingOption;
222
223
  export declare type MRT_FilterOption = keyof typeof MRT_FilterFns;
223
224
  export declare type MRT_FilterFn<TData extends Record<string, any> = {}> = FilterFn<TData> | MRT_FilterOption;
224
- export declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = MRT_TableOptions<TData> & {
225
+ export declare type MRT_DisplayColumnIds = 'mrt-row-drag' | 'mrt-row-actions' | 'mrt-row-expand' | 'mrt-row-select' | 'mrt-row-numbers';
226
+ /**
227
+ * `columns` and `data` props are the only required props, but there are over 150 other optional props.
228
+ *
229
+ * See more info on creating columns and data on the official docs site:
230
+ * @link https://www.material-react-table.com/docs/usage
231
+ *
232
+ * See the full props list on the official docs site:
233
+ * @link https://www.material-react-table.com/docs/api/props
234
+ */
235
+ export declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Partial<TableOptions<TData>>, 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'> & {
236
+ displayColumnDefOptions?: Partial<{
237
+ [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
238
+ }>;
239
+ columns: MRT_ColumnDef<TData>[];
240
+ data: TData[];
225
241
  editingMode?: 'table' | 'row' | 'cell';
226
242
  enableClickToCopy?: boolean;
227
243
  enableColumnActions?: boolean;
244
+ enableColumnDragging?: boolean;
228
245
  enableColumnFilterChangeMode?: boolean;
229
246
  enableColumnOrdering?: boolean;
230
247
  enableDensityToggle?: boolean;
@@ -235,7 +252,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
235
252
  enableGlobalFilterRankedResults?: boolean;
236
253
  enablePagination?: boolean;
237
254
  enableRowActions?: boolean;
255
+ enableRowDragging?: boolean;
238
256
  enableRowNumbers?: boolean;
257
+ enableRowOrdering?: boolean;
239
258
  enableRowVirtualization?: boolean;
240
259
  enableSelectAll?: boolean;
241
260
  enableStickyHeader?: boolean;
@@ -246,7 +265,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
246
265
  enableToolbarTop?: boolean;
247
266
  enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;
248
267
  enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;
268
+ expandRowsFn?: (dataRow: TData) => TData[];
249
269
  icons?: Partial<MRT_Icons>;
270
+ initialState?: Partial<MRT_TableState<TData>>;
250
271
  localization?: Partial<MRT_Localization>;
251
272
  muiExpandAllButtonProps?: IconButtonProps | (({ table }: {
252
273
  table: MRT_TableInstance<TData>;
@@ -288,6 +309,10 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
288
309
  muiTableBodyProps?: TableBodyProps | (({ table }: {
289
310
  table: MRT_TableInstance<TData>;
290
311
  }) => TableBodyProps);
312
+ muiTableBodyRowDragHandleProps?: IconButtonProps | (({ table, row, }: {
313
+ table: MRT_TableInstance<TData>;
314
+ row: MRT_Row<TData>;
315
+ }) => IconButtonProps);
291
316
  muiTableBodyRowProps?: TableRowProps | (({ table, row, }: {
292
317
  table: MRT_TableInstance<TData>;
293
318
  row: MRT_Row<TData>;
@@ -314,6 +339,10 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
314
339
  table: MRT_TableInstance<TData>;
315
340
  column: MRT_Column<TData>;
316
341
  }) => IconButtonProps);
342
+ muiTableHeadCellDragHandleProps?: IconButtonProps | (({ table, column, }: {
343
+ table: MRT_TableInstance<TData>;
344
+ column: MRT_Column<TData>;
345
+ }) => IconButtonProps);
317
346
  muiTableHeadCellFilterTextFieldProps?: TextFieldProps | (({ table, column, }: {
318
347
  table: MRT_TableInstance<TData>;
319
348
  column: MRT_Column<TData>;
@@ -357,7 +386,13 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
357
386
  cell: MRT_Cell<TData>;
358
387
  table: MRT_TableInstance<TData>;
359
388
  }) => void;
389
+ onColumnDrop?: ({ event, draggedColumn, targetColumn, }: {
390
+ event: DragEvent<HTMLButtonElement>;
391
+ draggedColumn: MRT_Column<TData>;
392
+ targetColumn: MRT_Column<TData> | null;
393
+ }) => void;
360
394
  onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;
395
+ onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
361
396
  onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;
362
397
  onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
363
398
  onCurrentFilterFnsChange?: OnChangeFn<{
@@ -365,12 +400,18 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
365
400
  }>;
366
401
  onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;
367
402
  onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;
403
+ onCurrentHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;
404
+ onDensityChange?: OnChangeFn<boolean>;
368
405
  onEditRowSubmit?: ({ row, table, }: {
369
406
  row: MRT_Row<TData>;
370
407
  table: MRT_TableInstance<TData>;
371
408
  }) => Promise<void> | void;
372
- onDensityChange?: OnChangeFn<boolean>;
373
409
  onIsFullScreenChange?: OnChangeFn<boolean>;
410
+ onRowDrop?: ({ event, draggedRow, targetRow, }: {
411
+ event: DragEvent<HTMLButtonElement>;
412
+ draggedRow: MRT_Row<TData>;
413
+ targetRow: MRT_Row<TData> | null;
414
+ }) => void;
374
415
  onShowAlertBannerChange?: OnChangeFn<boolean>;
375
416
  onShowFiltersChange?: OnChangeFn<boolean>;
376
417
  onShowGlobalFilterChange?: OnChangeFn<boolean>;
@@ -394,9 +435,6 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
394
435
  renderToolbarBottomCustomActions?: ({ table, }: {
395
436
  table: MRT_TableInstance<TData>;
396
437
  }) => ReactNode;
397
- renderToolbarTopCustomActions?: ({ table, }: {
398
- table: MRT_TableInstance<TData>;
399
- }) => ReactNode;
400
438
  renderToolbarInternalActions?: ({ table, MRT_ToggleGlobalFilterButton, MRT_ToggleFiltersButton, MRT_ShowHideColumnsButton, MRT_ToggleDensePaddingButton, MRT_FullScreenToggleButton, }: {
401
439
  table: MRT_TableInstance<TData>;
402
440
  MRT_ToggleGlobalFilterButton: FC<IconButtonProps & {
@@ -415,20 +453,15 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
415
453
  table: MRT_TableInstance<TData>;
416
454
  }>;
417
455
  }) => ReactNode;
456
+ renderToolbarTopCustomActions?: ({ table, }: {
457
+ table: MRT_TableInstance<TData>;
458
+ }) => ReactNode;
418
459
  rowCount?: number;
419
460
  rowNumberMode?: 'original' | 'static';
420
461
  selectAllMode?: 'all' | 'page';
462
+ state?: Partial<MRT_TableState<TData>>;
421
463
  tableId?: string;
422
464
  virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;
423
465
  };
424
466
  declare const _default: <TData extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
425
- /**
426
- * `columns` and `data` props are the only required props, but there are over 150 other optional props.
427
- *
428
- * See more info on creating columns and data on the official docs site:
429
- * @link https://www.material-react-table.com/docs/usage
430
- *
431
- * See the full props list on the official docs site:
432
- * @link https://www.material-react-table.com/docs/api/props
433
- */
434
467
  export default _default;
@@ -1,9 +1,10 @@
1
- import { FC } from 'react';
1
+ import { FC, RefObject } from 'react';
2
2
  import type { MRT_Cell, MRT_TableInstance } from '..';
3
3
  interface Props {
4
4
  cell: MRT_Cell;
5
5
  enableHover?: boolean;
6
6
  rowIndex: number;
7
+ rowRef: RefObject<HTMLTableRowElement>;
7
8
  table: MRT_TableInstance;
8
9
  }
9
10
  export declare const MRT_TableBodyCell: FC<Props>;
@@ -0,0 +1,9 @@
1
+ import { FC, RefObject } from 'react';
2
+ import { MRT_Cell, MRT_TableInstance } from '..';
3
+ interface Props {
4
+ cell: MRT_Cell;
5
+ rowRef: RefObject<HTMLTableRowElement>;
6
+ table: MRT_TableInstance;
7
+ }
8
+ export declare const MRT_TableBodyRowGrabHandle: FC<Props>;
9
+ export {};
@@ -1,8 +1,10 @@
1
+ import { IconButtonProps } from '@mui/material';
1
2
  import { DragEventHandler, FC } from 'react';
2
3
  import { MRT_TableInstance } from '..';
3
4
  interface Props {
4
- handleDragStart: DragEventHandler<HTMLButtonElement>;
5
- handleDragEnd: DragEventHandler<HTMLButtonElement>;
5
+ iconButtonProps?: IconButtonProps;
6
+ onDragStart: DragEventHandler<HTMLButtonElement>;
7
+ onDragEnd: DragEventHandler<HTMLButtonElement>;
6
8
  table: MRT_TableInstance;
7
9
  }
8
10
  export declare const MRT_GrabHandleButton: FC<Props>;
@@ -0,0 +1,9 @@
1
+ import { FC, RefObject } from 'react';
2
+ import type { MRT_Column, MRT_TableInstance } from '..';
3
+ interface Props {
4
+ column: MRT_Column;
5
+ table: MRT_TableInstance;
6
+ tableHeadCellRef: RefObject<HTMLTableCellElement>;
7
+ }
8
+ export declare const MRT_TableHeadCellGrabHandle: FC<Props>;
9
+ export {};
@@ -34,6 +34,7 @@ export interface MRT_Localization {
34
34
  hideColumn: string;
35
35
  max: string;
36
36
  min: string;
37
+ move: string;
37
38
  pinToLeft: string;
38
39
  pinToRight: string;
39
40
  resetColumnSize: string;