material-react-table 2.9.2 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. package/README.md +3 -2
  2. package/dist/index.d.ts +222 -152
  3. package/dist/index.esm.js +906 -769
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +910 -768
  6. package/dist/index.js.map +1 -1
  7. package/locales/ar/index.esm.js +2 -0
  8. package/locales/ar/index.js +2 -0
  9. package/locales/az/index.esm.js +2 -0
  10. package/locales/az/index.js +2 -0
  11. package/locales/bg/index.esm.js +2 -0
  12. package/locales/bg/index.js +2 -0
  13. package/locales/cs/index.esm.js +2 -0
  14. package/locales/cs/index.js +2 -0
  15. package/locales/da/index.esm.js +2 -0
  16. package/locales/da/index.js +2 -0
  17. package/locales/de/index.esm.js +2 -0
  18. package/locales/de/index.js +2 -0
  19. package/locales/en/index.esm.js +2 -0
  20. package/locales/en/index.js +2 -0
  21. package/locales/es/index.esm.js +2 -0
  22. package/locales/es/index.js +2 -0
  23. package/locales/et/index.esm.js +2 -0
  24. package/locales/et/index.js +2 -0
  25. package/locales/fa/index.esm.js +2 -0
  26. package/locales/fa/index.js +2 -0
  27. package/locales/fi/index.esm.js +2 -0
  28. package/locales/fi/index.js +2 -0
  29. package/locales/fr/index.esm.js +2 -0
  30. package/locales/fr/index.js +2 -0
  31. package/locales/he/index.esm.js +2 -0
  32. package/locales/he/index.js +2 -0
  33. package/locales/hu/index.esm.js +2 -0
  34. package/locales/hu/index.js +2 -0
  35. package/locales/hy/index.esm.js +2 -0
  36. package/locales/hy/index.js +2 -0
  37. package/locales/id/index.esm.js +2 -0
  38. package/locales/id/index.js +2 -0
  39. package/locales/it/index.esm.js +2 -0
  40. package/locales/it/index.js +2 -0
  41. package/locales/ja/index.esm.js +2 -0
  42. package/locales/ja/index.js +2 -0
  43. package/locales/ko/index.esm.js +2 -0
  44. package/locales/ko/index.js +2 -0
  45. package/locales/nl/index.esm.js +2 -0
  46. package/locales/nl/index.js +2 -0
  47. package/locales/no/index.esm.js +2 -0
  48. package/locales/no/index.js +2 -0
  49. package/locales/np/index.esm.js +2 -0
  50. package/locales/np/index.js +2 -0
  51. package/locales/pl/index.esm.js +2 -0
  52. package/locales/pl/index.js +2 -0
  53. package/locales/pt/index.esm.js +2 -0
  54. package/locales/pt/index.js +2 -0
  55. package/locales/pt-BR/index.esm.js +2 -0
  56. package/locales/pt-BR/index.js +2 -0
  57. package/locales/ro/index.esm.js +2 -0
  58. package/locales/ro/index.js +2 -0
  59. package/locales/ru/index.esm.js +2 -0
  60. package/locales/ru/index.js +2 -0
  61. package/locales/sk/index.esm.js +2 -0
  62. package/locales/sk/index.js +2 -0
  63. package/locales/sr-Cyrl-RS/index.esm.js +2 -0
  64. package/locales/sr-Cyrl-RS/index.js +2 -0
  65. package/locales/sr-Latn-RS/index.esm.js +2 -0
  66. package/locales/sr-Latn-RS/index.js +2 -0
  67. package/locales/sv/index.esm.js +2 -0
  68. package/locales/sv/index.js +2 -0
  69. package/locales/tr/index.esm.js +2 -0
  70. package/locales/tr/index.js +2 -0
  71. package/locales/uk/index.esm.js +2 -0
  72. package/locales/uk/index.js +2 -0
  73. package/locales/vi/index.esm.js +2 -0
  74. package/locales/vi/index.js +2 -0
  75. package/locales/zh-Hans/index.esm.js +2 -0
  76. package/locales/zh-Hans/index.js +2 -0
  77. package/locales/zh-Hant/index.esm.js +2 -0
  78. package/locales/zh-Hant/index.js +2 -0
  79. package/package.json +20 -20
  80. package/src/components/MaterialReactTable.tsx +3 -3
  81. package/src/components/body/MRT_TableBody.tsx +3 -2
  82. package/src/components/body/MRT_TableBodyCell.tsx +45 -34
  83. package/src/components/body/MRT_TableBodyCellValue.tsx +5 -2
  84. package/src/components/body/MRT_TableBodyRow.tsx +13 -12
  85. package/src/components/body/MRT_TableBodyRowGrabHandle.tsx +4 -3
  86. package/src/components/body/MRT_TableBodyRowPinButton.tsx +3 -2
  87. package/src/components/body/MRT_TableDetailPanel.tsx +3 -2
  88. package/src/components/buttons/MRT_ColumnPinningButtons.tsx +3 -2
  89. package/src/components/buttons/MRT_CopyButton.tsx +4 -2
  90. package/src/components/buttons/MRT_EditActionButtons.tsx +3 -2
  91. package/src/components/buttons/MRT_ExpandAllButton.tsx +3 -2
  92. package/src/components/buttons/MRT_ExpandButton.tsx +3 -2
  93. package/src/components/buttons/MRT_GrabHandleButton.tsx +9 -15
  94. package/src/components/buttons/MRT_RowPinButton.tsx +3 -2
  95. package/src/components/buttons/MRT_ShowHideColumnsButton.tsx +3 -2
  96. package/src/components/buttons/MRT_ToggleDensePaddingButton.tsx +3 -2
  97. package/src/components/buttons/MRT_ToggleFiltersButton.tsx +3 -2
  98. package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +3 -2
  99. package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -2
  100. package/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx +3 -2
  101. package/src/components/footer/MRT_TableFooter.tsx +3 -2
  102. package/src/components/footer/MRT_TableFooterCell.tsx +3 -2
  103. package/src/components/footer/MRT_TableFooterRow.tsx +5 -3
  104. package/src/components/head/MRT_TableHead.tsx +3 -2
  105. package/src/components/head/MRT_TableHeadCell.tsx +9 -5
  106. package/src/components/head/MRT_TableHeadCellColumnActionsButton.tsx +4 -2
  107. package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +4 -2
  108. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +4 -2
  109. package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +4 -3
  110. package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +3 -2
  111. package/src/components/head/MRT_TableHeadCellSortLabel.tsx +3 -2
  112. package/src/components/head/MRT_TableHeadRow.tsx +4 -2
  113. package/src/components/inputs/MRT_EditCellTextField.tsx +3 -2
  114. package/src/components/inputs/MRT_FilterCheckbox.tsx +3 -2
  115. package/src/components/inputs/MRT_FilterRangeFields.tsx +3 -2
  116. package/src/components/inputs/MRT_FilterRangeSlider.tsx +3 -2
  117. package/src/components/inputs/MRT_FilterTextField.tsx +15 -6
  118. package/src/components/inputs/MRT_GlobalFilterTextField.tsx +3 -2
  119. package/src/components/inputs/MRT_SelectCheckbox.tsx +26 -33
  120. package/src/components/menus/MRT_ActionMenuItem.tsx +61 -0
  121. package/src/components/menus/MRT_CellActionMenu.tsx +109 -0
  122. package/src/components/menus/MRT_ColumnActionMenu.tsx +92 -172
  123. package/src/components/menus/MRT_FilterOptionMenu.tsx +9 -16
  124. package/src/components/menus/MRT_RowActionMenu.tsx +10 -17
  125. package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +11 -3
  126. package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
  127. package/src/components/modals/MRT_EditRowModal.tsx +3 -2
  128. package/src/components/table/MRT_Table.tsx +2 -2
  129. package/src/components/table/MRT_TableContainer.tsx +7 -2
  130. package/src/components/table/MRT_TableLoadingOverlay.tsx +11 -8
  131. package/src/components/table/MRT_TablePaper.tsx +3 -2
  132. package/src/components/toolbar/MRT_BottomToolbar.tsx +3 -2
  133. package/src/components/toolbar/MRT_LinearProgressBar.tsx +3 -2
  134. package/src/components/toolbar/MRT_TablePagination.tsx +2 -2
  135. package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +30 -13
  136. package/src/components/toolbar/MRT_ToolbarDropZone.tsx +3 -2
  137. package/src/components/toolbar/MRT_ToolbarInternalButtons.tsx +3 -2
  138. package/src/components/toolbar/MRT_TopToolbar.tsx +2 -2
  139. package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +1 -8
  140. package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +1 -8
  141. package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +1 -8
  142. package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +1 -8
  143. package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +1 -8
  144. package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +1 -8
  145. package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +1 -8
  146. package/src/hooks/useMRT_Effects.ts +14 -4
  147. package/src/hooks/useMRT_Rows.ts +11 -79
  148. package/src/hooks/useMRT_TableInstance.ts +114 -59
  149. package/src/hooks/useMRT_TableOptions.ts +2 -0
  150. package/src/icons.ts +2 -0
  151. package/src/index.ts +2 -0
  152. package/src/locales/ar.ts +2 -0
  153. package/src/locales/az.ts +2 -0
  154. package/src/locales/bg.ts +2 -0
  155. package/src/locales/cs.ts +2 -0
  156. package/src/locales/da.ts +2 -0
  157. package/src/locales/de.ts +2 -0
  158. package/src/locales/en.ts +2 -0
  159. package/src/locales/es.ts +2 -0
  160. package/src/locales/et.ts +2 -0
  161. package/src/locales/fa.ts +2 -0
  162. package/src/locales/fi.ts +2 -0
  163. package/src/locales/fr.ts +2 -0
  164. package/src/locales/he.ts +2 -0
  165. package/src/locales/hu.ts +2 -0
  166. package/src/locales/hy.ts +2 -0
  167. package/src/locales/id.ts +2 -0
  168. package/src/locales/it.ts +2 -0
  169. package/src/locales/ja.ts +2 -0
  170. package/src/locales/ko.ts +2 -0
  171. package/src/locales/nl.ts +2 -0
  172. package/src/locales/no.ts +2 -0
  173. package/src/locales/np.ts +2 -0
  174. package/src/locales/pl.ts +2 -0
  175. package/src/locales/pt-BR.ts +2 -0
  176. package/src/locales/pt.ts +2 -0
  177. package/src/locales/ro.ts +2 -0
  178. package/src/locales/ru.ts +2 -0
  179. package/src/locales/sk.ts +2 -0
  180. package/src/locales/sr-Cyrl-RS.ts +2 -0
  181. package/src/locales/sr-Latn-RS.ts +2 -0
  182. package/src/locales/sv.ts +2 -0
  183. package/src/locales/tr.ts +2 -0
  184. package/src/locales/uk.ts +2 -0
  185. package/src/locales/vi.ts +2 -0
  186. package/src/locales/zh-Hans.ts +2 -0
  187. package/src/locales/zh-Hant.ts +2 -0
  188. package/src/types.ts +51 -13
  189. package/src/utils/cell.utils.ts +50 -0
  190. package/src/utils/column.utils.ts +4 -6
  191. package/src/utils/displayColumn.utils.ts +39 -21
  192. package/src/utils/row.utils.ts +179 -21
  193. package/locales/am/index.d.ts +0 -3
  194. package/locales/am/index.esm.d.ts +0 -3
  195. package/locales/am/index.esm.js +0 -93
  196. package/locales/am/index.js +0 -97
  197. package/locales/am/package.json +0 -6
  198. package/src/hooks/display-columns/getMRT_DisplayColumns.tsx +0 -26
  199. package/src/locales/am.ts +0 -94
@@ -8,7 +8,8 @@ import {
8
8
  import { parseFromValuesOrFunc } from '../../utils/utils';
9
9
  import { MRT_RowPinButton } from '../buttons/MRT_RowPinButton';
10
10
 
11
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
11
+ export interface MRT_TableBodyRowPinButtonProps<TData extends MRT_RowData>
12
+ extends IconButtonProps {
12
13
  row: MRT_Row<TData>;
13
14
  table: MRT_TableInstance<TData>;
14
15
  }
@@ -17,7 +18,7 @@ export const MRT_TableBodyRowPinButton = <TData extends MRT_RowData>({
17
18
  row,
18
19
  table,
19
20
  ...rest
20
- }: Props<TData>) => {
21
+ }: MRT_TableBodyRowPinButtonProps<TData>) => {
21
22
  const {
22
23
  getState,
23
24
  options: { enableRowPinning, rowPinningDisplayMode },
@@ -12,7 +12,8 @@ import {
12
12
  import { getMRTTheme } from '../../utils/style.utils';
13
13
  import { parseFromValuesOrFunc } from '../../utils/utils';
14
14
 
15
- interface Props<TData extends MRT_RowData> extends TableCellProps {
15
+ export interface MRT_TableDetailPanelProps<TData extends MRT_RowData>
16
+ extends TableCellProps {
16
17
  parentRowRef: RefObject<HTMLTableRowElement>;
17
18
  row: MRT_Row<TData>;
18
19
  rowVirtualizer?: MRT_RowVirtualizer;
@@ -29,7 +30,7 @@ export const MRT_TableDetailPanel = <TData extends MRT_RowData>({
29
30
  table,
30
31
  virtualRow,
31
32
  ...rest
32
- }: Props<TData>) => {
33
+ }: MRT_TableDetailPanelProps<TData>) => {
33
34
  const {
34
35
  getState,
35
36
  getVisibleLeafColumns,
@@ -8,7 +8,8 @@ import {
8
8
  } from '../../types';
9
9
  import { parseFromValuesOrFunc } from '../../utils/utils';
10
10
 
11
- interface Props<TData extends MRT_RowData> extends BoxProps {
11
+ export interface MRT_ColumnPinningButtonsProps<TData extends MRT_RowData>
12
+ extends BoxProps {
12
13
  column: MRT_Column<TData>;
13
14
  table: MRT_TableInstance<TData>;
14
15
  }
@@ -17,7 +18,7 @@ export const MRT_ColumnPinningButtons = <TData extends MRT_RowData>({
17
18
  column,
18
19
  table,
19
20
  ...rest
20
- }: Props<TData>) => {
21
+ }: MRT_ColumnPinningButtonsProps<TData>) => {
21
22
  const {
22
23
  options: {
23
24
  icons: { PushPinIcon },
@@ -9,7 +9,8 @@ import {
9
9
  import { getCommonTooltipProps } from '../../utils/style.utils';
10
10
  import { parseFromValuesOrFunc } from '../../utils/utils';
11
11
 
12
- interface Props<TData extends MRT_RowData> extends ButtonProps {
12
+ export interface MRT_CopyButtonProps<TData extends MRT_RowData>
13
+ extends ButtonProps {
13
14
  cell: MRT_Cell<TData>;
14
15
  table: MRT_TableInstance<TData>;
15
16
  }
@@ -18,7 +19,7 @@ export const MRT_CopyButton = <TData extends MRT_RowData>({
18
19
  cell,
19
20
  table,
20
21
  ...rest
21
- }: Props<TData>) => {
22
+ }: MRT_CopyButtonProps<TData>) => {
22
23
  const {
23
24
  options: { localization, muiCopyButtonProps },
24
25
  } = table;
@@ -74,6 +75,7 @@ export const MRT_CopyButton = <TData extends MRT_RowData>({
74
75
  letterSpacing: 'inherit',
75
76
  m: '-0.25rem',
76
77
  minWidth: 'unset',
78
+ py: 0,
77
79
  textAlign: 'inherit',
78
80
  textTransform: 'inherit',
79
81
  ...(parseFromValuesOrFunc(buttonProps?.sx, theme) as any),
@@ -10,7 +10,8 @@ import {
10
10
  } from '../../types';
11
11
  import { parseFromValuesOrFunc } from '../../utils/utils';
12
12
 
13
- interface Props<TData extends MRT_RowData> extends BoxProps {
13
+ export interface MRT_EditActionButtonsProps<TData extends MRT_RowData>
14
+ extends BoxProps {
14
15
  row: MRT_Row<TData>;
15
16
  table: MRT_TableInstance<TData>;
16
17
  variant?: 'icon' | 'text';
@@ -21,7 +22,7 @@ export const MRT_EditActionButtons = <TData extends MRT_RowData>({
21
22
  table,
22
23
  variant = 'icon',
23
24
  ...rest
24
- }: Props<TData>) => {
25
+ }: MRT_EditActionButtonsProps<TData>) => {
25
26
  const {
26
27
  getState,
27
28
  options: {
@@ -4,14 +4,15 @@ import { type MRT_RowData, type MRT_TableInstance } from '../../types';
4
4
  import { getCommonTooltipProps } from '../../utils/style.utils';
5
5
  import { parseFromValuesOrFunc } from '../../utils/utils';
6
6
 
7
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
7
+ export interface MRT_ExpandAllButtonProps<TData extends MRT_RowData>
8
+ extends IconButtonProps {
8
9
  table: MRT_TableInstance<TData>;
9
10
  }
10
11
 
11
12
  export const MRT_ExpandAllButton = <TData extends MRT_RowData>({
12
13
  table,
13
14
  ...rest
14
- }: Props<TData>) => {
15
+ }: MRT_ExpandAllButtonProps<TData>) => {
15
16
  const {
16
17
  getCanSomeRowsExpand,
17
18
  getIsAllRowsExpanded,
@@ -10,7 +10,8 @@ import {
10
10
  import { getCommonTooltipProps } from '../../utils/style.utils';
11
11
  import { parseFromValuesOrFunc } from '../../utils/utils';
12
12
 
13
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
13
+ export interface MRT_ExpandButtonProps<TData extends MRT_RowData>
14
+ extends IconButtonProps {
14
15
  row: MRT_Row<TData>;
15
16
  staticRowIndex?: number;
16
17
  table: MRT_TableInstance<TData>;
@@ -20,7 +21,7 @@ export const MRT_ExpandButton = <TData extends MRT_RowData>({
20
21
  row,
21
22
  staticRowIndex,
22
23
  table,
23
- }: Props<TData>) => {
24
+ }: MRT_ExpandButtonProps<TData>) => {
24
25
  const theme = useTheme();
25
26
  const {
26
27
  getState,
@@ -5,7 +5,8 @@ import { type MRT_RowData, type MRT_TableInstance } from '../../types';
5
5
  import { getCommonTooltipProps } from '../../utils/style.utils';
6
6
  import { parseFromValuesOrFunc } from '../../utils/utils';
7
7
 
8
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
8
+ export interface MRT_GrabHandleButtonProps<TData extends MRT_RowData>
9
+ extends IconButtonProps {
9
10
  iconButtonProps?: IconButtonProps;
10
11
  location?: 'column' | 'row';
11
12
  onDragEnd: DragEventHandler<HTMLButtonElement>;
@@ -14,13 +15,10 @@ interface Props<TData extends MRT_RowData> extends IconButtonProps {
14
15
  }
15
16
 
16
17
  export const MRT_GrabHandleButton = <TData extends MRT_RowData>({
17
- iconButtonProps,
18
18
  location,
19
- onDragEnd,
20
- onDragStart,
21
19
  table,
22
20
  ...rest
23
- }: Props<TData>) => {
21
+ }: MRT_GrabHandleButtonProps<TData>) => {
24
22
  const {
25
23
  options: {
26
24
  icons: { DragHandleIcon },
@@ -28,25 +26,21 @@ export const MRT_GrabHandleButton = <TData extends MRT_RowData>({
28
26
  },
29
27
  } = table;
30
28
 
31
- const _iconButtonProps = { ...iconButtonProps, ...rest };
32
-
33
29
  return (
34
30
  <Tooltip
35
31
  {...getCommonTooltipProps('top')}
36
- title={_iconButtonProps?.title ?? localization.move}
32
+ title={rest?.title ?? localization.move}
37
33
  >
38
34
  <IconButton
39
- aria-label={_iconButtonProps.title ?? localization.move}
35
+ aria-label={rest.title ?? localization.move}
40
36
  disableRipple
41
37
  draggable="true"
42
38
  size="small"
43
- {..._iconButtonProps}
39
+ {...rest}
44
40
  onClick={(e) => {
45
41
  e.stopPropagation();
46
- _iconButtonProps?.onClick?.(e);
42
+ rest?.onClick?.(e);
47
43
  }}
48
- onDragEnd={onDragEnd}
49
- onDragStart={onDragStart}
50
44
  sx={(theme) => ({
51
45
  '&:active': {
52
46
  cursor: 'grabbing',
@@ -57,10 +51,10 @@ export const MRT_GrabHandleButton = <TData extends MRT_RowData>({
57
51
  },
58
52
  cursor: 'grab',
59
53
  m: '0 -0.1rem',
60
- opacity: location === 'row' ? 1 : 0.3,
54
+ opacity: location === 'row' ? 1 : 0.5,
61
55
  p: '2px',
62
56
  transition: 'all 150ms ease-in-out',
63
- ...(parseFromValuesOrFunc(_iconButtonProps?.sx, theme) as any),
57
+ ...(parseFromValuesOrFunc(rest?.sx, theme) as any),
64
58
  })}
65
59
  title={undefined}
66
60
  >
@@ -10,7 +10,8 @@ import {
10
10
  import { getCommonTooltipProps } from '../../utils/style.utils';
11
11
  import { parseFromValuesOrFunc } from '../../utils/utils';
12
12
 
13
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
13
+ export interface MRT_RowPinButtonProps<TData extends MRT_RowData>
14
+ extends IconButtonProps {
14
15
  pinningPosition: RowPinningPosition;
15
16
  row: MRT_Row<TData>;
16
17
  table: MRT_TableInstance<TData>;
@@ -21,7 +22,7 @@ export const MRT_RowPinButton = <TData extends MRT_RowData>({
21
22
  row,
22
23
  table,
23
24
  ...rest
24
- }: Props<TData>) => {
25
+ }: MRT_RowPinButtonProps<TData>) => {
25
26
  const {
26
27
  options: {
27
28
  icons: { CloseIcon, PushPinIcon },
@@ -4,14 +4,15 @@ import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_RowData, type MRT_TableInstance } from '../../types';
5
5
  import { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';
6
6
 
7
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
7
+ export interface MRT_ShowHideColumnsButtonProps<TData extends MRT_RowData>
8
+ extends IconButtonProps {
8
9
  table: MRT_TableInstance<TData>;
9
10
  }
10
11
 
11
12
  export const MRT_ShowHideColumnsButton = <TData extends MRT_RowData>({
12
13
  table,
13
14
  ...rest
14
- }: Props<TData>) => {
15
+ }: MRT_ShowHideColumnsButtonProps<TData>) => {
15
16
  const {
16
17
  options: {
17
18
  icons: { ViewColumnIcon },
@@ -2,14 +2,15 @@ import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
2
2
  import Tooltip from '@mui/material/Tooltip';
3
3
  import { type MRT_RowData, type MRT_TableInstance } from '../../types';
4
4
 
5
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
5
+ export interface MRT_ToggleDensePaddingButtonProps<TData extends MRT_RowData>
6
+ extends IconButtonProps {
6
7
  table: MRT_TableInstance<TData>;
7
8
  }
8
9
 
9
10
  export const MRT_ToggleDensePaddingButton = <TData extends MRT_RowData>({
10
11
  table,
11
12
  ...rest
12
- }: Props<TData>) => {
13
+ }: MRT_ToggleDensePaddingButtonProps<TData>) => {
13
14
  const {
14
15
  getState,
15
16
  options: {
@@ -2,14 +2,15 @@ import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
2
2
  import Tooltip from '@mui/material/Tooltip';
3
3
  import { type MRT_RowData, type MRT_TableInstance } from '../../types';
4
4
 
5
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
5
+ export interface MRT_ToggleFiltersButtonProps<TData extends MRT_RowData>
6
+ extends IconButtonProps {
6
7
  table: MRT_TableInstance<TData>;
7
8
  }
8
9
 
9
10
  export const MRT_ToggleFiltersButton = <TData extends MRT_RowData>({
10
11
  table,
11
12
  ...rest
12
- }: Props<TData>) => {
13
+ }: MRT_ToggleFiltersButtonProps<TData>) => {
13
14
  const {
14
15
  getState,
15
16
  options: {
@@ -3,14 +3,15 @@ import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_RowData, type MRT_TableInstance } from '../../types';
5
5
 
6
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
6
+ export interface MRT_ToggleFullScreenButtonProps<TData extends MRT_RowData>
7
+ extends IconButtonProps {
7
8
  table: MRT_TableInstance<TData>;
8
9
  }
9
10
 
10
11
  export const MRT_ToggleFullScreenButton = <TData extends MRT_RowData>({
11
12
  table,
12
13
  ...rest
13
- }: Props<TData>) => {
14
+ }: MRT_ToggleFullScreenButtonProps<TData>) => {
14
15
  const {
15
16
  getState,
16
17
  options: {
@@ -2,14 +2,15 @@ import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
2
2
  import Tooltip from '@mui/material/Tooltip';
3
3
  import { type MRT_RowData, type MRT_TableInstance } from '../../types';
4
4
 
5
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
5
+ export interface MRT_ToggleGlobalFilterButtonProps<TData extends MRT_RowData>
6
+ extends IconButtonProps {
6
7
  table: MRT_TableInstance<TData>;
7
8
  }
8
9
 
9
10
  export const MRT_ToggleGlobalFilterButton = <TData extends MRT_RowData>({
10
11
  table,
11
12
  ...rest
12
- }: Props<TData>) => {
13
+ }: MRT_ToggleGlobalFilterButtonProps<TData>) => {
13
14
  const {
14
15
  getState,
15
16
  options: {
@@ -23,7 +23,8 @@ const commonIconButtonStyles = {
23
23
  width: '2rem',
24
24
  };
25
25
 
26
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
26
+ export interface MRT_ToggleRowActionMenuButtonProps<TData extends MRT_RowData>
27
+ extends IconButtonProps {
27
28
  cell: MRT_Cell<TData>;
28
29
  row: MRT_Row<TData>;
29
30
  staticRowIndex?: number;
@@ -36,7 +37,7 @@ export const MRT_ToggleRowActionMenuButton = <TData extends MRT_RowData>({
36
37
  staticRowIndex,
37
38
  table,
38
39
  ...rest
39
- }: Props<TData>) => {
40
+ }: MRT_ToggleRowActionMenuButtonProps<TData>) => {
40
41
  const {
41
42
  getState,
42
43
  options: {
@@ -7,7 +7,8 @@ import {
7
7
  } from '../../types';
8
8
  import { parseFromValuesOrFunc } from '../../utils/utils';
9
9
 
10
- interface Props<TData extends MRT_RowData> extends TableFooterProps {
10
+ export interface MRT_TableFooterProps<TData extends MRT_RowData>
11
+ extends TableFooterProps {
11
12
  columnVirtualizer?: MRT_ColumnVirtualizer;
12
13
  table: MRT_TableInstance<TData>;
13
14
  }
@@ -16,7 +17,7 @@ export const MRT_TableFooter = <TData extends MRT_RowData>({
16
17
  columnVirtualizer,
17
18
  table,
18
19
  ...rest
19
- }: Props<TData>) => {
20
+ }: MRT_TableFooterProps<TData>) => {
20
21
  const {
21
22
  getFooterGroups,
22
23
  getState,
@@ -8,7 +8,8 @@ import {
8
8
  import { getCommonMRTCellStyles } from '../../utils/style.utils';
9
9
  import { parseFromValuesOrFunc } from '../../utils/utils';
10
10
 
11
- interface Props<TData extends MRT_RowData> extends TableCellProps {
11
+ export interface MRT_TableFooterCellProps<TData extends MRT_RowData>
12
+ extends TableCellProps {
12
13
  footer: MRT_Header<TData>;
13
14
  staticColumnIndex?: number;
14
15
  table: MRT_TableInstance<TData>;
@@ -19,7 +20,7 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
19
20
  staticColumnIndex,
20
21
  table,
21
22
  ...rest
22
- }: Props<TData>) => {
23
+ }: MRT_TableFooterCellProps<TData>) => {
23
24
  const theme = useTheme();
24
25
  const {
25
26
  getState,
@@ -11,7 +11,8 @@ import {
11
11
  import { getMRTTheme } from '../../utils/style.utils';
12
12
  import { parseFromValuesOrFunc } from '../../utils/utils';
13
13
 
14
- interface Props<TData extends MRT_RowData> extends TableRowProps {
14
+ export interface MRT_TableFooterRowProps<TData extends MRT_RowData>
15
+ extends TableRowProps {
15
16
  columnVirtualizer?: MRT_ColumnVirtualizer;
16
17
  footerGroup: MRT_HeaderGroup<TData>;
17
18
  table: MRT_TableInstance<TData>;
@@ -22,7 +23,7 @@ export const MRT_TableFooterRow = <TData extends MRT_RowData>({
22
23
  footerGroup,
23
24
  table,
24
25
  ...rest
25
- }: Props<TData>) => {
26
+ }: MRT_TableFooterRowProps<TData>) => {
26
27
  const {
27
28
  options: { layoutMode, muiTableFooterRowProps },
28
29
  } = table;
@@ -38,8 +39,9 @@ export const MRT_TableFooterRow = <TData extends MRT_RowData>({
38
39
  !!header.column.columnDef.footer) ||
39
40
  header.column.columnDef.Footer,
40
41
  )
41
- )
42
+ ) {
42
43
  return null;
44
+ }
43
45
 
44
46
  const tableRowProps = {
45
47
  ...parseFromValuesOrFunc(muiTableFooterRowProps, {
@@ -8,7 +8,8 @@ import {
8
8
  import { parseFromValuesOrFunc } from '../../utils/utils';
9
9
  import { MRT_ToolbarAlertBanner } from '../toolbar/MRT_ToolbarAlertBanner';
10
10
 
11
- interface Props<TData extends MRT_RowData> extends TableHeadProps {
11
+ export interface MRT_TableHeadProps<TData extends MRT_RowData>
12
+ extends TableHeadProps {
12
13
  columnVirtualizer?: MRT_ColumnVirtualizer;
13
14
  table: MRT_TableInstance<TData>;
14
15
  }
@@ -17,7 +18,7 @@ export const MRT_TableHead = <TData extends MRT_RowData>({
17
18
  columnVirtualizer,
18
19
  table,
19
20
  ...rest
20
- }: Props<TData>) => {
21
+ }: MRT_TableHeadProps<TData>) => {
21
22
  const {
22
23
  getHeaderGroups,
23
24
  getSelectedRowModel,
@@ -10,6 +10,7 @@ import { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';
10
10
  import { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';
11
11
  import { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';
12
12
  import {
13
+ type MRT_ColumnVirtualizer,
13
14
  type MRT_Header,
14
15
  type MRT_RowData,
15
16
  type MRT_TableInstance,
@@ -17,18 +18,21 @@ import {
17
18
  import { getCommonMRTCellStyles, getMRTTheme } from '../../utils/style.utils';
18
19
  import { parseFromValuesOrFunc } from '../../utils/utils';
19
20
 
20
- interface Props<TData extends MRT_RowData> extends TableCellProps {
21
+ export interface MRT_TableHeadCellProps<TData extends MRT_RowData>
22
+ extends TableCellProps {
23
+ columnVirtualizer?: MRT_ColumnVirtualizer;
21
24
  header: MRT_Header<TData>;
22
25
  staticColumnIndex?: number;
23
26
  table: MRT_TableInstance<TData>;
24
27
  }
25
28
 
26
29
  export const MRT_TableHeadCell = <TData extends MRT_RowData>({
30
+ columnVirtualizer,
27
31
  header,
28
32
  staticColumnIndex,
29
33
  table,
30
34
  ...rest
31
- }: Props<TData>) => {
35
+ }: MRT_TableHeadCellProps<TData>) => {
32
36
  const theme = useTheme();
33
37
  const {
34
38
  getState,
@@ -161,6 +165,9 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
161
165
  ref={(node: HTMLTableCellElement) => {
162
166
  if (node) {
163
167
  tableHeadCellRefs.current[column.id] = node;
168
+ if (columnDefType !== 'group') {
169
+ columnVirtualizer?.measureElement?.(node);
170
+ }
164
171
  }
165
172
  }}
166
173
  {...tableCellProps}
@@ -261,9 +268,6 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
261
268
  ? 'nowrap'
262
269
  : 'normal',
263
270
  }}
264
- title={
265
- columnDefType === 'data' ? columnDef.header : undefined
266
- }
267
271
  >
268
272
  {HeaderElement}
269
273
  </Box>
@@ -10,7 +10,9 @@ import { getCommonTooltipProps } from '../../utils/style.utils';
10
10
  import { parseFromValuesOrFunc } from '../../utils/utils';
11
11
  import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';
12
12
 
13
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
13
+ export interface MRT_TableHeadCellColumnActionsButtonProps<
14
+ TData extends MRT_RowData,
15
+ > extends IconButtonProps {
14
16
  header: MRT_Header<TData>;
15
17
  table: MRT_TableInstance<TData>;
16
18
  }
@@ -21,7 +23,7 @@ export const MRT_TableHeadCellColumnActionsButton = <
21
23
  header,
22
24
  table,
23
25
  ...rest
24
- }: Props<TData>) => {
26
+ }: MRT_TableHeadCellColumnActionsButtonProps<TData>) => {
25
27
  const {
26
28
  options: {
27
29
  icons: { MoreVertIcon },
@@ -9,7 +9,9 @@ import { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';
9
9
  import { MRT_FilterRangeSlider } from '../inputs/MRT_FilterRangeSlider';
10
10
  import { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';
11
11
 
12
- interface Props<TData extends MRT_RowData> extends CollapseProps {
12
+ export interface MRT_TableHeadCellFilterContainerProps<
13
+ TData extends MRT_RowData,
14
+ > extends CollapseProps {
13
15
  header: MRT_Header<TData>;
14
16
  table: MRT_TableInstance<TData>;
15
17
  }
@@ -18,7 +20,7 @@ export const MRT_TableHeadCellFilterContainer = <TData extends MRT_RowData>({
18
20
  header,
19
21
  table,
20
22
  ...rest
21
- }: Props<TData>) => {
23
+ }: MRT_TableHeadCellFilterContainerProps<TData>) => {
22
24
  const {
23
25
  getState,
24
26
  options: { columnFilterDisplayMode },
@@ -12,7 +12,8 @@ import {
12
12
  } from '../../types';
13
13
  import { parseFromValuesOrFunc } from '../../utils/utils';
14
14
 
15
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
15
+ export interface MRT_TableHeadCellFilterLabelProps<TData extends MRT_RowData>
16
+ extends IconButtonProps {
16
17
  header: MRT_Header<TData>;
17
18
  table: MRT_TableInstance<TData>;
18
19
  }
@@ -21,7 +22,7 @@ export const MRT_TableHeadCellFilterLabel = <TData extends MRT_RowData = {}>({
21
22
  header,
22
23
  table,
23
24
  ...rest
24
- }: Props<TData>) => {
25
+ }: MRT_TableHeadCellFilterLabelProps<TData>) => {
25
26
  const {
26
27
  options: {
27
28
  columnFilterDisplayMode,
@@ -131,6 +132,7 @@ export const MRT_TableHeadCellFilterLabel = <TData extends MRT_RowData = {}>({
131
132
  horizontal: 'center',
132
133
  vertical: 'top',
133
134
  }}
135
+ disableScrollLock
134
136
  onClick={(event) => event.stopPropagation()}
135
137
  onClose={(event) => {
136
138
  //@ts-ignore
@@ -9,7 +9,8 @@ import { reorderColumn } from '../../utils/column.utils';
9
9
  import { parseFromValuesOrFunc } from '../../utils/utils';
10
10
  import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
11
11
 
12
- interface Props<TData extends MRT_RowData> extends IconButtonProps {
12
+ export interface MRT_TableHeadCellGrabHandleProps<TData extends MRT_RowData>
13
+ extends IconButtonProps {
13
14
  column: MRT_Column<TData>;
14
15
  table: MRT_TableInstance<TData>;
15
16
  tableHeadCellRef: RefObject<HTMLTableCellElement>;
@@ -20,7 +21,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
20
21
  table,
21
22
  tableHeadCellRef,
22
23
  ...rest
23
- }: Props<TData>) => {
24
+ }: MRT_TableHeadCellGrabHandleProps<TData>) => {
24
25
  const {
25
26
  getState,
26
27
  options: { enableColumnOrdering, muiColumnDragHandleProps },
@@ -73,7 +74,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
73
74
 
74
75
  return (
75
76
  <MRT_GrabHandleButton
76
- iconButtonProps={iconButtonProps}
77
+ {...iconButtonProps}
77
78
  onDragEnd={handleDragEnd}
78
79
  onDragStart={handleDragStart}
79
80
  table={table}
@@ -7,7 +7,8 @@ import {
7
7
  } from '../../types';
8
8
  import { parseFromValuesOrFunc } from '../../utils/utils';
9
9
 
10
- interface Props<TData extends MRT_RowData> extends DividerProps {
10
+ export interface MRT_TableHeadCellResizeHandleProps<TData extends MRT_RowData>
11
+ extends DividerProps {
11
12
  header: MRT_Header<TData>;
12
13
  table: MRT_TableInstance<TData>;
13
14
  }
@@ -16,7 +17,7 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
16
17
  header,
17
18
  table,
18
19
  ...rest
19
- }: Props<TData>) => {
20
+ }: MRT_TableHeadCellResizeHandleProps<TData>) => {
20
21
  const {
21
22
  getState,
22
23
  options: { columnResizeDirection, columnResizeMode },
@@ -10,7 +10,8 @@ import {
10
10
  } from '../../types';
11
11
  import { parseFromValuesOrFunc } from '../../utils/utils';
12
12
 
13
- interface Props<TData extends MRT_RowData> extends TableSortLabelProps {
13
+ export interface MRT_TableHeadCellSortLabelProps<TData extends MRT_RowData>
14
+ extends TableSortLabelProps {
14
15
  header: MRT_Header<TData>;
15
16
  table: MRT_TableInstance<TData>;
16
17
  }
@@ -19,7 +20,7 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
19
20
  header,
20
21
  table,
21
22
  ...rest
22
- }: Props<TData>) => {
23
+ }: MRT_TableHeadCellSortLabelProps<TData>) => {
23
24
  const {
24
25
  getState,
25
26
  options: {
@@ -12,7 +12,8 @@ import {
12
12
  import { getMRTTheme } from '../../utils/style.utils';
13
13
  import { parseFromValuesOrFunc } from '../../utils/utils';
14
14
 
15
- interface Props<TData extends MRT_RowData> extends TableRowProps {
15
+ export interface MRT_TableHeadRowProps<TData extends MRT_RowData>
16
+ extends TableRowProps {
16
17
  columnVirtualizer?: MRT_ColumnVirtualizer;
17
18
  headerGroup: MRT_HeaderGroup<TData>;
18
19
  table: MRT_TableInstance<TData>;
@@ -23,7 +24,7 @@ export const MRT_TableHeadRow = <TData extends MRT_RowData>({
23
24
  headerGroup,
24
25
  table,
25
26
  ...rest
26
- }: Props<TData>) => {
27
+ }: MRT_TableHeadRowProps<TData>) => {
27
28
  const {
28
29
  options: { enableStickyHeader, layoutMode, muiTableHeadRowProps },
29
30
  } = table;
@@ -68,6 +69,7 @@ export const MRT_TableHeadRow = <TData extends MRT_RowData>({
68
69
 
69
70
  return header ? (
70
71
  <MRT_TableHeadCell
72
+ columnVirtualizer={columnVirtualizer}
71
73
  header={header}
72
74
  key={header.id}
73
75
  staticColumnIndex={staticColumnIndex}