material-react-table 2.9.2 → 2.11.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.
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}