material-react-table 1.4.3 → 1.5.0-beta.1

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.
Files changed (43) hide show
  1. package/dist/cjs/index.js +183 -71
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/MaterialReactTable.d.ts +19 -6
  4. package/dist/cjs/types/body/MRT_TableBody.d.ts +5 -0
  5. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +3 -0
  6. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -1
  7. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +4 -0
  8. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +4 -0
  9. package/dist/cjs/types/head/MRT_TableHead.d.ts +4 -0
  10. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +4 -0
  11. package/dist/cjs/types/table/MRT_TableRoot.d.ts +12 -5
  12. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +1 -1
  13. package/dist/esm/material-react-table.esm.js +179 -67
  14. package/dist/esm/material-react-table.esm.js.map +1 -1
  15. package/dist/esm/types/MaterialReactTable.d.ts +19 -6
  16. package/dist/esm/types/body/MRT_TableBody.d.ts +5 -0
  17. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +3 -0
  18. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -1
  19. package/dist/esm/types/footer/MRT_TableFooter.d.ts +4 -0
  20. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +4 -0
  21. package/dist/esm/types/head/MRT_TableHead.d.ts +4 -0
  22. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +4 -0
  23. package/dist/esm/types/table/MRT_TableRoot.d.ts +12 -5
  24. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +1 -1
  25. package/dist/index.d.ts +21 -8
  26. package/locales/ru.esm.js +1 -1
  27. package/locales/ru.js +1 -1
  28. package/package.json +1 -1
  29. package/src/MaterialReactTable.tsx +48 -11
  30. package/src/_locales/ru.ts +1 -1
  31. package/src/body/MRT_TableBody.tsx +42 -13
  32. package/src/body/MRT_TableBodyCell.tsx +17 -1
  33. package/src/body/MRT_TableBodyRow.tsx +24 -3
  34. package/src/column.utils.ts +4 -1
  35. package/src/footer/MRT_TableFooter.tsx +13 -1
  36. package/src/footer/MRT_TableFooterCell.tsx +6 -1
  37. package/src/footer/MRT_TableFooterRow.tsx +27 -4
  38. package/src/head/MRT_TableHead.tsx +13 -1
  39. package/src/head/MRT_TableHeadCell.tsx +2 -2
  40. package/src/head/MRT_TableHeadRow.tsx +26 -4
  41. package/src/table/MRT_Table.tsx +105 -7
  42. package/src/table/MRT_TableRoot.tsx +1 -1
  43. package/src/toolbar/MRT_TablePagination.tsx +2 -2
@@ -442,6 +442,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
442
442
  enableColumnDragging?: boolean;
443
443
  enableColumnFilterModes?: boolean;
444
444
  enableColumnOrdering?: boolean;
445
+ enableColumnVirtualization?: boolean;
445
446
  enableDensityToggle?: boolean;
446
447
  enableEditing?: boolean;
447
448
  enableExpandAll?: boolean;
@@ -637,8 +638,8 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
637
638
  onShowGlobalFilterChange?: OnChangeFn<boolean>;
638
639
  positionActionsColumn?: 'first' | 'last';
639
640
  positionExpandColumn?: 'first' | 'last';
640
- positionGlobalFilter?: 'left' | 'right';
641
- positionPagination?: 'bottom' | 'top' | 'both';
641
+ positionGlobalFilter?: 'left' | 'right' | 'none';
642
+ positionPagination?: 'bottom' | 'top' | 'both' | 'none';
642
643
  positionToolbarAlertBanner?: 'bottom' | 'top' | 'none';
643
644
  positionToolbarDropZone?: 'bottom' | 'top' | 'none' | 'both';
644
645
  renderBottomToolbar?: ReactNode | (({ table }: {
@@ -690,11 +691,23 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
690
691
  rowNumberMode?: 'original' | 'static';
691
692
  selectAllMode?: 'all' | 'page';
692
693
  state?: Partial<MRT_TableState<TData>>;
693
- tableInstanceRef?: MutableRefObject<MRT_TableInstance<TData> | null>;
694
- virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | (({ table, }: {
694
+ columnVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableCellElement> | null>;
695
+ columnVirtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>> | (({ table, }: {
696
+ table: MRT_TableInstance<TData>;
697
+ }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>);
698
+ rowVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableRowElement> | null>;
699
+ rowVirtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | (({ table, }: {
695
700
  table: MRT_TableInstance<TData>;
696
701
  }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>);
697
- virtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableRowElement> | null>;
702
+ tableInstanceRef?: MutableRefObject<MRT_TableInstance<TData> | null>;
703
+ /**
704
+ * @deprecated Use `rowVirtualizerInstanceRef` instead
705
+ */
706
+ virtualizerInstanceRef?: any;
707
+ /**
708
+ * @deprecated Use `rowVirtualizerProps` instead
709
+ */
710
+ virtualizerProps?: any;
698
711
  };
699
- declare const MaterialReactTable: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, layoutMode, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
712
+ declare const MaterialReactTable: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
700
713
  export default MaterialReactTable;
@@ -1,7 +1,12 @@
1
1
  import React, { FC } from 'react';
2
+ import { Virtualizer, VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_TableInstance } from '..';
3
4
  interface Props {
5
+ columnVirtualizer?: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
4
6
  table: MRT_TableInstance;
7
+ virtualColumns?: VirtualItem[];
8
+ virtualPaddingLeft?: number;
9
+ virtualPaddingRight?: number;
5
10
  }
6
11
  export declare const MRT_TableBody: FC<Props>;
7
12
  export declare const Memo_MRT_TableBody: React.NamedExoticComponent<Props>;
@@ -1,12 +1,15 @@
1
1
  import React, { FC, RefObject } from 'react';
2
+ import type { VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_Cell, MRT_TableInstance } from '..';
3
4
  interface Props {
4
5
  cell: MRT_Cell;
5
6
  enableHover?: boolean;
7
+ measureElement?: (element: HTMLTableCellElement) => void;
6
8
  numRows: number;
7
9
  rowIndex: number;
8
10
  rowRef: RefObject<HTMLTableRowElement>;
9
11
  table: MRT_TableInstance;
12
+ virtualCell?: VirtualItem;
10
13
  }
11
14
  export declare const MRT_TableBodyCell: FC<Props>;
12
15
  export declare const Memo_MRT_TableBodyCell: React.NamedExoticComponent<Props>;
@@ -1,12 +1,16 @@
1
1
  import React, { FC } from 'react';
2
- import type { VirtualItem } from '@tanstack/react-virtual';
2
+ import type { VirtualItem, Virtualizer } from '@tanstack/react-virtual';
3
3
  import type { MRT_Row, MRT_TableInstance } from '..';
4
4
  interface Props {
5
+ columnVirtualizer?: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
5
6
  measureElement?: (element: HTMLTableRowElement) => void;
6
7
  numRows: number;
7
8
  row: MRT_Row;
8
9
  rowIndex: number;
9
10
  table: MRT_TableInstance;
11
+ virtualColumns?: VirtualItem[];
12
+ virtualPaddingLeft?: number;
13
+ virtualPaddingRight?: number;
10
14
  virtualRow?: VirtualItem;
11
15
  }
12
16
  export declare const MRT_TableBodyRow: FC<Props>;
@@ -1,7 +1,11 @@
1
1
  import { FC } from 'react';
2
+ import type { VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_TableInstance } from '..';
3
4
  interface Props {
4
5
  table: MRT_TableInstance;
6
+ virtualColumns?: VirtualItem[];
7
+ virtualPaddingLeft?: number;
8
+ virtualPaddingRight?: number;
5
9
  }
6
10
  export declare const MRT_TableFooter: FC<Props>;
7
11
  export {};
@@ -1,8 +1,12 @@
1
1
  import { FC } from 'react';
2
+ import { VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_HeaderGroup, MRT_TableInstance } from '..';
3
4
  interface Props {
4
5
  footerGroup: MRT_HeaderGroup;
5
6
  table: MRT_TableInstance;
7
+ virtualColumns?: VirtualItem[];
8
+ virtualPaddingLeft?: number;
9
+ virtualPaddingRight?: number;
6
10
  }
7
11
  export declare const MRT_TableFooterRow: FC<Props>;
8
12
  export {};
@@ -1,7 +1,11 @@
1
1
  import { FC } from 'react';
2
+ import type { VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_TableInstance } from '..';
3
4
  interface Props {
4
5
  table: MRT_TableInstance;
6
+ virtualColumns?: VirtualItem[];
7
+ virtualPaddingLeft?: number;
8
+ virtualPaddingRight?: number;
5
9
  }
6
10
  export declare const MRT_TableHead: FC<Props>;
7
11
  export {};
@@ -1,8 +1,12 @@
1
1
  import { FC } from 'react';
2
+ import type { VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_HeaderGroup, MRT_TableInstance } from '..';
3
4
  interface Props {
4
5
  headerGroup: MRT_HeaderGroup;
5
6
  table: MRT_TableInstance;
7
+ virtualColumns?: VirtualItem[];
8
+ virtualPaddingLeft?: number;
9
+ virtualPaddingRight?: number;
6
10
  }
7
11
  export declare const MRT_TableHeadRow: FC<Props>;
8
12
  export {};
@@ -20,6 +20,7 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
20
20
  enableColumnDragging?: boolean | undefined;
21
21
  enableColumnFilterModes?: boolean | undefined;
22
22
  enableColumnOrdering?: boolean | undefined;
23
+ enableColumnVirtualization?: boolean | undefined;
23
24
  enableDensityToggle?: boolean | undefined;
24
25
  enableEditing?: boolean | undefined;
25
26
  enableExpandAll?: boolean | undefined;
@@ -200,8 +201,8 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
200
201
  onShowGlobalFilterChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
201
202
  positionActionsColumn?: "first" | "last" | undefined;
202
203
  positionExpandColumn?: "first" | "last" | undefined;
203
- positionGlobalFilter?: "left" | "right" | undefined;
204
- positionPagination?: "bottom" | "top" | "both" | undefined;
204
+ positionGlobalFilter?: "left" | "right" | "none" | undefined;
205
+ positionPagination?: "bottom" | "top" | "none" | "both" | undefined;
205
206
  positionToolbarAlertBanner?: "bottom" | "top" | "none" | undefined;
206
207
  positionToolbarDropZone?: "bottom" | "top" | "none" | "both" | undefined;
207
208
  renderBottomToolbar?: React.ReactNode | (({ table }: {
@@ -253,11 +254,17 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
253
254
  rowNumberMode?: "original" | "static" | undefined;
254
255
  selectAllMode?: "all" | "page" | undefined;
255
256
  state?: Partial<MRT_TableState<TData>> | undefined;
256
- tableInstanceRef?: React.MutableRefObject<MRT_TableInstance<TData> | null> | undefined;
257
- virtualizerProps?: Partial<import("@tanstack/react-virtual").VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | (({ table, }: {
257
+ columnVirtualizerInstanceRef?: React.MutableRefObject<import("@tanstack/react-virtual").Virtualizer<HTMLDivElement, HTMLTableCellElement> | null> | undefined;
258
+ columnVirtualizerProps?: Partial<import("@tanstack/react-virtual").VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>> | (({ table, }: {
259
+ table: MRT_TableInstance<TData>;
260
+ }) => Partial<import("@tanstack/react-virtual").VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>) | undefined;
261
+ rowVirtualizerInstanceRef?: React.MutableRefObject<import("@tanstack/react-virtual").Virtualizer<HTMLDivElement, HTMLTableRowElement> | null> | undefined;
262
+ rowVirtualizerProps?: Partial<import("@tanstack/react-virtual").VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | (({ table, }: {
258
263
  table: MRT_TableInstance<TData>;
259
264
  }) => Partial<import("@tanstack/react-virtual").VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>) | undefined;
260
- virtualizerInstanceRef?: React.MutableRefObject<import("@tanstack/react-virtual").Virtualizer<HTMLDivElement, HTMLTableRowElement> | null> | undefined;
265
+ tableInstanceRef?: React.MutableRefObject<MRT_TableInstance<TData> | null> | undefined;
266
+ virtualizerInstanceRef?: any;
267
+ virtualizerProps?: any;
261
268
  } & {
262
269
  localization: MRT_Localization;
263
270
  }) => JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { MRT_TableInstance } from '..';
3
3
  interface Props<TData extends Record<string, any> = {}> {
4
- position: 'top' | 'bottom';
4
+ position?: 'top' | 'bottom';
5
5
  table: MRT_TableInstance<TData>;
6
6
  }
7
7
  export declare const MRT_TablePagination: <TData extends Record<string, any> = {}>({ table, position, }: Props<TData>) => JSX.Element;