material-react-table 0.17.1 → 0.19.0-alpha.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 (110) hide show
  1. package/dist/MaterialReactTable.d.ts +170 -230
  2. package/dist/body/MRT_TableBody.d.ts +1 -1
  3. package/dist/body/MRT_TableBodyCell.d.ts +1 -1
  4. package/dist/body/MRT_TableBodyRow.d.ts +1 -1
  5. package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
  6. package/dist/buttons/MRT_ColumnPinningButtons.d.ts +1 -1
  7. package/dist/buttons/MRT_CopyButton.d.ts +1 -1
  8. package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
  9. package/dist/buttons/MRT_ExpandAllButton.d.ts +1 -1
  10. package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
  11. package/dist/buttons/MRT_FullScreenToggleButton.d.ts +1 -1
  12. package/dist/buttons/MRT_GrabHandleButton.d.ts +1 -1
  13. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +1 -1
  14. package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -1
  15. package/dist/buttons/MRT_ToggleFiltersButton.d.ts +1 -1
  16. package/dist/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -1
  17. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
  18. package/dist/filtersFns.d.ts +31 -23
  19. package/dist/footer/MRT_TableFooter.d.ts +1 -1
  20. package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
  21. package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
  22. package/dist/head/MRT_DraggableTableHeadCell.d.ts +1 -1
  23. package/dist/head/MRT_TableHead.d.ts +1 -1
  24. package/dist/head/MRT_TableHeadCell.d.ts +1 -1
  25. package/dist/head/MRT_TableHeadCellColumnActionsButton.d.ts +1 -1
  26. package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +1 -1
  27. package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  28. package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +1 -1
  29. package/dist/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  30. package/dist/head/MRT_TableHeadRow.d.ts +1 -1
  31. package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
  32. package/dist/inputs/MRT_FilterRangeFields.d.ts +1 -1
  33. package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
  34. package/dist/inputs/MRT_GlobalFilterTextField.d.ts +1 -1
  35. package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
  36. package/dist/material-react-table.cjs.development.js +791 -915
  37. package/dist/material-react-table.cjs.development.js.map +1 -1
  38. package/dist/material-react-table.cjs.production.min.js +1 -1
  39. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  40. package/dist/material-react-table.esm.js +793 -917
  41. package/dist/material-react-table.esm.js.map +1 -1
  42. package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
  43. package/dist/menus/MRT_FilterOptionMenu.d.ts +1 -1
  44. package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
  45. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  46. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  47. package/dist/sortingFns.d.ts +10 -3
  48. package/dist/table/MRT_Table.d.ts +1 -1
  49. package/dist/table/MRT_TableContainer.d.ts +1 -1
  50. package/dist/table/MRT_TablePaper.d.ts +1 -1
  51. package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -1
  52. package/dist/toolbar/MRT_TablePagination.d.ts +1 -1
  53. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  54. package/dist/toolbar/MRT_ToolbarBottom.d.ts +1 -1
  55. package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  56. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -1
  57. package/dist/utils.d.ts +10 -16
  58. package/package.json +4 -4
  59. package/src/MaterialReactTable.tsx +168 -334
  60. package/src/body/MRT_TableBody.tsx +5 -6
  61. package/src/body/MRT_TableBodyCell.tsx +19 -36
  62. package/src/body/MRT_TableBodyRow.tsx +9 -12
  63. package/src/body/MRT_TableDetailPanel.tsx +8 -12
  64. package/src/buttons/MRT_ColumnPinningButtons.tsx +3 -3
  65. package/src/buttons/MRT_CopyButton.tsx +5 -7
  66. package/src/buttons/MRT_EditActionButtons.tsx +4 -5
  67. package/src/buttons/MRT_ExpandAllButton.tsx +4 -5
  68. package/src/buttons/MRT_ExpandButton.tsx +6 -9
  69. package/src/buttons/MRT_FullScreenToggleButton.tsx +5 -15
  70. package/src/buttons/MRT_GrabHandleButton.tsx +39 -41
  71. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -4
  72. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +5 -15
  73. package/src/buttons/MRT_ToggleFiltersButton.tsx +5 -12
  74. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +6 -16
  75. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -6
  76. package/src/filtersFns.ts +24 -23
  77. package/src/footer/MRT_TableFooter.tsx +5 -6
  78. package/src/footer/MRT_TableFooterCell.tsx +8 -11
  79. package/src/footer/MRT_TableFooterRow.tsx +5 -9
  80. package/src/head/MRT_DraggableTableHeadCell.tsx +4 -6
  81. package/src/head/MRT_TableHead.tsx +5 -5
  82. package/src/head/MRT_TableHeadCell.tsx +18 -29
  83. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +6 -8
  84. package/src/head/MRT_TableHeadCellFilterContainer.tsx +5 -7
  85. package/src/head/MRT_TableHeadCellFilterLabel.tsx +13 -19
  86. package/src/head/MRT_TableHeadCellResizeHandle.tsx +12 -11
  87. package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -5
  88. package/src/head/MRT_TableHeadRow.tsx +6 -6
  89. package/src/inputs/MRT_EditCellTextField.tsx +13 -15
  90. package/src/inputs/MRT_FilterRangeFields.tsx +4 -4
  91. package/src/inputs/MRT_FilterTextField.tsx +27 -64
  92. package/src/inputs/MRT_GlobalFilterTextField.tsx +5 -10
  93. package/src/inputs/MRT_SelectCheckbox.tsx +9 -36
  94. package/src/menus/MRT_ColumnActionMenu.tsx +5 -9
  95. package/src/menus/MRT_FilterOptionMenu.tsx +16 -48
  96. package/src/menus/MRT_RowActionMenu.tsx +4 -5
  97. package/src/menus/MRT_ShowHideColumnsMenu.tsx +8 -9
  98. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +11 -10
  99. package/src/sortingFns.ts +11 -3
  100. package/src/table/MRT_Table.tsx +7 -11
  101. package/src/table/MRT_TableContainer.tsx +5 -6
  102. package/src/table/MRT_TablePaper.tsx +7 -8
  103. package/src/table/MRT_TableRoot.tsx +123 -156
  104. package/src/toolbar/MRT_LinearProgressBar.tsx +4 -5
  105. package/src/toolbar/MRT_TablePagination.tsx +7 -9
  106. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +15 -11
  107. package/src/toolbar/MRT_ToolbarBottom.tsx +8 -9
  108. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -10
  109. package/src/toolbar/MRT_ToolbarTop.tsx +11 -11
  110. package/src/utils.ts +56 -50
@@ -1,30 +1,23 @@
1
- import React, { FC, MouseEvent } from 'react';
1
+ import React, { FC } from 'react';
2
2
  import { IconButton, IconButtonProps, Tooltip } from '@mui/material';
3
3
  import { MRT_TableInstance } from '..';
4
4
 
5
5
  interface Props extends IconButtonProps {
6
- instance: MRT_TableInstance;
6
+ table: MRT_TableInstance;
7
7
  }
8
8
 
9
- export const MRT_ToggleFiltersButton: FC<Props> = ({ instance, ...rest }) => {
9
+ export const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {
10
10
  const {
11
11
  getState,
12
12
  options: {
13
13
  icons: { FilterListIcon, FilterListOffIcon },
14
14
  localization,
15
- onShowFiltersChanged,
16
15
  },
17
16
  setShowFilters,
18
- } = instance;
19
-
17
+ } = table;
20
18
  const { showFilters } = getState();
21
19
 
22
- const handleToggleShowFilters = (event: MouseEvent<HTMLButtonElement>) => {
23
- onShowFiltersChanged?.({
24
- event,
25
- showFilters: !showFilters,
26
- instance,
27
- });
20
+ const handleToggleShowFilters = () => {
28
21
  setShowFilters(!showFilters);
29
22
  };
30
23
 
@@ -1,15 +1,12 @@
1
- import React, { FC, MouseEvent } from 'react';
1
+ import React, { FC } from 'react';
2
2
  import { IconButton, IconButtonProps, Tooltip } from '@mui/material';
3
3
  import { MRT_TableInstance } from '..';
4
4
 
5
5
  interface Props extends IconButtonProps {
6
- instance: MRT_TableInstance;
6
+ table: MRT_TableInstance;
7
7
  }
8
8
 
9
- export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
10
- instance,
11
- ...rest
12
- }) => {
9
+ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {
13
10
  const {
14
11
  getState,
15
12
  options: {
@@ -17,24 +14,17 @@ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
17
14
  tableId,
18
15
  localization,
19
16
  muiSearchTextFieldProps,
20
- onShowGlobalFilterChanged,
21
17
  },
22
18
  setShowGlobalFilter,
23
- } = instance;
24
-
19
+ } = table;
25
20
  const { showGlobalFilter } = getState();
26
21
 
27
22
  const textFieldProps =
28
23
  muiSearchTextFieldProps instanceof Function
29
- ? muiSearchTextFieldProps({ instance })
24
+ ? muiSearchTextFieldProps({ table })
30
25
  : muiSearchTextFieldProps;
31
26
 
32
- const handleToggleSearch = (event: MouseEvent<HTMLButtonElement>) => {
33
- onShowGlobalFilterChanged?.({
34
- event,
35
- showGlobalFilter: !showGlobalFilter,
36
- instance,
37
- });
27
+ const handleToggleSearch = () => {
38
28
  setShowGlobalFilter(!showGlobalFilter);
39
29
  setTimeout(
40
30
  () =>
@@ -17,10 +17,10 @@ const commonIconButtonStyles = {
17
17
 
18
18
  interface Props {
19
19
  row: MRT_Row;
20
- instance: MRT_TableInstance;
20
+ table: MRT_TableInstance;
21
21
  }
22
22
 
23
- export const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {
23
+ export const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {
24
24
  const {
25
25
  getState,
26
26
  options: {
@@ -31,7 +31,7 @@ export const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {
31
31
  renderRowActions,
32
32
  },
33
33
  setCurrentEditingRow,
34
- } = instance;
34
+ } = table;
35
35
 
36
36
  const { currentEditingRow } = getState();
37
37
 
@@ -51,9 +51,9 @@ export const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {
51
51
  return (
52
52
  <>
53
53
  {renderRowActions ? (
54
- <>{renderRowActions({ row, instance })}</>
54
+ <>{renderRowActions({ row, table })}</>
55
55
  ) : row.id === currentEditingRow?.id ? (
56
- <MRT_EditActionButtons row={row} instance={instance} />
56
+ <MRT_EditActionButtons row={row} table={table} />
57
57
  ) : !renderRowActionMenuItems && enableEditing ? (
58
58
  <Tooltip placement="right" arrow title={localization.edit}>
59
59
  <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>
@@ -82,7 +82,7 @@ export const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {
82
82
  handleEdit={handleStartEditMode}
83
83
  row={row}
84
84
  setAnchorEl={setAnchorEl}
85
- instance={instance}
85
+ table={table}
86
86
  />
87
87
  </>
88
88
  ) : null}
package/src/filtersFns.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';
2
- import { MRT_Row } from '.';
2
+ import { filterFns, Row } from '@tanstack/react-table';
3
3
 
4
- export const fuzzy = (
5
- row: MRT_Row,
4
+ export const fuzzy = <D extends Record<string, any> = {}>(
5
+ row: Row<D>,
6
6
  columnId: string,
7
7
  filterValue: string,
8
8
  addMeta: (item: RankingInfo) => void,
@@ -16,8 +16,8 @@ export const fuzzy = (
16
16
 
17
17
  fuzzy.autoRemove = (val: any) => !val;
18
18
 
19
- export const contains = (
20
- row: MRT_Row,
19
+ export const contains = <D extends Record<string, any> = {}>(
20
+ row: Row<D>,
21
21
  id: string,
22
22
  filterValue: string | number,
23
23
  ) =>
@@ -30,8 +30,8 @@ export const contains = (
30
30
 
31
31
  contains.autoRemove = (val: any) => !val;
32
32
 
33
- export const startsWith = (
34
- row: MRT_Row,
33
+ export const startsWith = <D extends Record<string, any> = {}>(
34
+ row: Row<D>,
35
35
  id: string,
36
36
  filterValue: string | number,
37
37
  ) =>
@@ -44,8 +44,8 @@ export const startsWith = (
44
44
 
45
45
  startsWith.autoRemove = (val: any) => !val;
46
46
 
47
- export const endsWith = (
48
- row: MRT_Row,
47
+ export const endsWith = <D extends Record<string, any> = {}>(
48
+ row: Row<D>,
49
49
  id: string,
50
50
  filterValue: string | number,
51
51
  ) =>
@@ -58,8 +58,8 @@ export const endsWith = (
58
58
 
59
59
  endsWith.autoRemove = (val: any) => !val;
60
60
 
61
- export const equals = (
62
- row: MRT_Row,
61
+ export const equals = <D extends Record<string, any> = {}>(
62
+ row: Row<D>,
63
63
  id: string,
64
64
  filterValue: string | number,
65
65
  ) =>
@@ -68,8 +68,8 @@ export const equals = (
68
68
 
69
69
  equals.autoRemove = (val: any) => !val;
70
70
 
71
- export const notEquals = (
72
- row: MRT_Row,
71
+ export const notEquals = <D extends Record<string, any> = {}>(
72
+ row: Row<D>,
73
73
  id: string,
74
74
  filterValue: string | number,
75
75
  ) =>
@@ -78,8 +78,8 @@ export const notEquals = (
78
78
 
79
79
  notEquals.autoRemove = (val: any) => !val;
80
80
 
81
- export const greaterThan = (
82
- row: MRT_Row,
81
+ export const greaterThan = <D extends Record<string, any> = {}>(
82
+ row: Row<D>,
83
83
  id: string,
84
84
  filterValue: string | number,
85
85
  ) =>
@@ -90,8 +90,8 @@ export const greaterThan = (
90
90
 
91
91
  greaterThan.autoRemove = (val: any) => !val;
92
92
 
93
- export const lessThan = (
94
- row: MRT_Row,
93
+ export const lessThan = <D extends Record<string, any> = {}>(
94
+ row: Row<D>,
95
95
  id: string,
96
96
  filterValue: string | number,
97
97
  ) =>
@@ -102,8 +102,8 @@ export const lessThan = (
102
102
 
103
103
  lessThan.autoRemove = (val: any) => !val;
104
104
 
105
- export const between = (
106
- row: MRT_Row,
105
+ export const between = <D extends Record<string, any> = {}>(
106
+ row: Row<D>,
107
107
  id: string,
108
108
  filterValues: [string | number, string | number],
109
109
  ) =>
@@ -117,16 +117,16 @@ export const between = (
117
117
 
118
118
  between.autoRemove = (val: any) => !val;
119
119
 
120
- export const empty = (
121
- row: MRT_Row,
120
+ export const empty = <D extends Record<string, any> = {}>(
121
+ row: Row<D>,
122
122
  id: string,
123
123
  _filterValue: string | number,
124
124
  ) => !row.getValue(id).toString().trim();
125
125
 
126
126
  empty.autoRemove = (val: any) => !val;
127
127
 
128
- export const notEmpty = (
129
- row: MRT_Row,
128
+ export const notEmpty = <D extends Record<string, any> = {}>(
129
+ row: Row<D>,
130
130
  id: string,
131
131
  _filterValue: string | number,
132
132
  ) => !!row.getValue(id).toString().trim();
@@ -134,6 +134,7 @@ export const notEmpty = (
134
134
  notEmpty.autoRemove = (val: any) => !val;
135
135
 
136
136
  export const MRT_FilterFns = {
137
+ ...filterFns,
137
138
  between,
138
139
  contains,
139
140
  empty,
@@ -4,19 +4,18 @@ import { MRT_TableFooterRow } from './MRT_TableFooterRow';
4
4
  import type { MRT_TableInstance } from '..';
5
5
 
6
6
  interface Props {
7
- instance: MRT_TableInstance;
7
+ table: MRT_TableInstance;
8
8
  }
9
9
 
10
- export const MRT_TableFooter: FC<Props> = ({ instance }) => {
10
+ export const MRT_TableFooter: FC<Props> = ({ table }) => {
11
11
  const {
12
12
  getFooterGroups,
13
-
14
13
  options: { muiTableFooterProps },
15
- } = instance;
14
+ } = table;
16
15
 
17
16
  const tableFooterProps =
18
17
  muiTableFooterProps instanceof Function
19
- ? muiTableFooterProps({ instance })
18
+ ? muiTableFooterProps({ table })
20
19
  : muiTableFooterProps;
21
20
 
22
21
  return (
@@ -25,7 +24,7 @@ export const MRT_TableFooter: FC<Props> = ({ instance }) => {
25
24
  <MRT_TableFooterRow
26
25
  footerGroup={footerGroup as any}
27
26
  key={footerGroup.id}
28
- instance={instance}
27
+ table={table}
29
28
  />
30
29
  ))}
31
30
  </TableFooter>
@@ -4,29 +4,27 @@ import type { MRT_Header, MRT_TableInstance } from '..';
4
4
 
5
5
  interface Props {
6
6
  footer: MRT_Header;
7
- instance: MRT_TableInstance;
7
+ table: MRT_TableInstance;
8
8
  }
9
9
 
10
- export const MRT_TableFooterCell: FC<Props> = ({ footer, instance }) => {
10
+ export const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {
11
11
  const {
12
12
  getState,
13
13
  options: { muiTableFooterCellProps, enableColumnResizing },
14
- } = instance;
15
-
14
+ } = table;
16
15
  const { density } = getState();
17
-
18
16
  const { column } = footer;
19
-
20
- const { columnDef, columnDefType } = column;
17
+ const { columnDef } = column;
18
+ const { columnDefType } = columnDef;
21
19
 
22
20
  const mTableFooterCellProps =
23
21
  muiTableFooterCellProps instanceof Function
24
- ? muiTableFooterCellProps({ column, instance })
22
+ ? muiTableFooterCellProps({ column, table })
25
23
  : muiTableFooterCellProps;
26
24
 
27
25
  const mcTableFooterCellProps =
28
26
  columnDef.muiTableFooterCellProps instanceof Function
29
- ? columnDef.muiTableFooterCellProps({ column, instance })
27
+ ? columnDef.muiTableFooterCellProps({ column, table })
30
28
  : columnDef.muiTableFooterCellProps;
31
29
 
32
30
  const tableCellProps = {
@@ -67,11 +65,10 @@ export const MRT_TableFooterCell: FC<Props> = ({ footer, instance }) => {
67
65
  : (columnDef.Footer instanceof Function
68
66
  ? columnDef.Footer?.({
69
67
  footer,
70
- instance,
68
+ table,
71
69
  })
72
70
  : columnDef.Footer) ??
73
71
  columnDef.footer ??
74
- footer.renderFooter() ??
75
72
  null}
76
73
  </>
77
74
  </TableCell>
@@ -5,13 +5,13 @@ import type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';
5
5
 
6
6
  interface Props {
7
7
  footerGroup: MRT_HeaderGroup;
8
- instance: MRT_TableInstance;
8
+ table: MRT_TableInstance;
9
9
  }
10
10
 
11
- export const MRT_TableFooterRow: FC<Props> = ({ footerGroup, instance }) => {
11
+ export const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {
12
12
  const {
13
13
  options: { muiTableFooterRowProps },
14
- } = instance;
14
+ } = table;
15
15
 
16
16
  // if no content in row, skip row
17
17
  if (
@@ -26,17 +26,13 @@ export const MRT_TableFooterRow: FC<Props> = ({ footerGroup, instance }) => {
26
26
 
27
27
  const tableRowProps =
28
28
  muiTableFooterRowProps instanceof Function
29
- ? muiTableFooterRowProps({ footerGroup, instance })
29
+ ? muiTableFooterRowProps({ footerGroup, table })
30
30
  : muiTableFooterRowProps;
31
31
 
32
32
  return (
33
33
  <TableRow {...tableRowProps}>
34
34
  {footerGroup.headers.map((footer: MRT_Header) => (
35
- <MRT_TableFooterCell
36
- footer={footer}
37
- key={footer.id}
38
- instance={instance}
39
- />
35
+ <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />
40
36
  ))}
41
37
  </TableRow>
42
38
  );
@@ -6,14 +6,12 @@ import { reorderColumn } from '../utils';
6
6
 
7
7
  interface Props {
8
8
  header: MRT_Header;
9
- instance: MRT_TableInstance;
9
+ table: MRT_TableInstance;
10
10
  }
11
11
 
12
- export const MRT_DraggableTableHeadCell: FC<Props> = ({ header, instance }) => {
13
- const { getState, setColumnOrder } = instance;
14
-
12
+ export const MRT_DraggableTableHeadCell: FC<Props> = ({ header, table }) => {
13
+ const { getState, setColumnOrder } = table;
15
14
  const { columnOrder } = getState();
16
-
17
15
  const { column } = header;
18
16
 
19
17
  const [, dropRef] = useDrop({
@@ -39,7 +37,7 @@ export const MRT_DraggableTableHeadCell: FC<Props> = ({ header, instance }) => {
39
37
  header={header}
40
38
  isDragging={isDragging}
41
39
  previewRef={previewRef}
42
- instance={instance}
40
+ table={table}
43
41
  />
44
42
  );
45
43
  };
@@ -4,18 +4,18 @@ import { MRT_TableHeadRow } from './MRT_TableHeadRow';
4
4
  import type { MRT_TableInstance } from '..';
5
5
 
6
6
  interface Props {
7
- instance: MRT_TableInstance;
7
+ table: MRT_TableInstance;
8
8
  }
9
9
 
10
- export const MRT_TableHead: FC<Props> = ({ instance }) => {
10
+ export const MRT_TableHead: FC<Props> = ({ table }) => {
11
11
  const {
12
12
  getHeaderGroups,
13
13
  options: { muiTableHeadProps },
14
- } = instance;
14
+ } = table;
15
15
 
16
16
  const tableHeadProps =
17
17
  muiTableHeadProps instanceof Function
18
- ? muiTableHeadProps({ instance })
18
+ ? muiTableHeadProps({ table })
19
19
  : muiTableHeadProps;
20
20
 
21
21
  return (
@@ -24,7 +24,7 @@ export const MRT_TableHead: FC<Props> = ({ instance }) => {
24
24
  <MRT_TableHeadRow
25
25
  headerGroup={headerGroup as any}
26
26
  key={headerGroup.id}
27
- instance={instance}
27
+ table={table}
28
28
  />
29
29
  ))}
30
30
  </TableHead>
@@ -12,7 +12,7 @@ interface Props {
12
12
  dragRef?: Ref<HTMLButtonElement>;
13
13
  dropRef?: Ref<HTMLDivElement>;
14
14
  header: MRT_Header;
15
- instance: MRT_TableInstance;
15
+ table: MRT_TableInstance;
16
16
  isDragging?: boolean;
17
17
  previewRef?: Ref<HTMLTableCellElement>;
18
18
  }
@@ -21,7 +21,7 @@ export const MRT_TableHeadCell: FC<Props> = ({
21
21
  dragRef,
22
22
  dropRef,
23
23
  header,
24
- instance,
24
+ table,
25
25
  isDragging,
26
26
  previewRef,
27
27
  }) => {
@@ -35,22 +35,20 @@ export const MRT_TableHeadCell: FC<Props> = ({
35
35
  enableMultiSort,
36
36
  muiTableHeadCellProps,
37
37
  },
38
- } = instance;
39
-
38
+ } = table;
40
39
  const { density, showFilters } = getState();
41
-
42
40
  const { column } = header;
43
-
44
- const { columnDef, columnDefType } = column;
41
+ const { columnDef } = column;
42
+ const { columnDefType } = columnDef;
45
43
 
46
44
  const mTableHeadCellProps =
47
45
  muiTableHeadCellProps instanceof Function
48
- ? muiTableHeadCellProps({ column, instance })
46
+ ? muiTableHeadCellProps({ column, table })
49
47
  : muiTableHeadCellProps;
50
48
 
51
49
  const mcTableHeadCellProps =
52
50
  columnDef.muiTableHeadCellProps instanceof Function
53
- ? columnDef.muiTableHeadCellProps({ column, instance })
51
+ ? columnDef.muiTableHeadCellProps({ column, table })
54
52
  : columnDef.muiTableHeadCellProps;
55
53
 
56
54
  const tableCellProps = {
@@ -61,16 +59,14 @@ export const MRT_TableHeadCell: FC<Props> = ({
61
59
  const headerElement = ((columnDef?.Header instanceof Function
62
60
  ? columnDef?.Header?.({
63
61
  header,
64
- instance,
62
+ table,
65
63
  })
66
- : columnDef?.Header) ??
67
- header.renderHeader() ??
68
- columnDef.header) as ReactNode;
64
+ : columnDef?.Header) ?? columnDef.header) as ReactNode;
69
65
 
70
66
  const getIsLastLeftPinnedColumn = () => {
71
67
  return (
72
68
  column.getIsPinned() === 'left' &&
73
- instance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()
69
+ table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()
74
70
  );
75
71
  };
76
72
 
@@ -80,8 +76,7 @@ export const MRT_TableHeadCell: FC<Props> = ({
80
76
 
81
77
  const getTotalRight = () => {
82
78
  return (
83
- (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *
84
- 150
79
+ (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150
85
80
  );
86
81
  };
87
82
 
@@ -139,7 +134,7 @@ export const MRT_TableHeadCell: FC<Props> = ({
139
134
  right:
140
135
  column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,
141
136
  transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,
142
- userSelect: enableMultiSort ? 'none' : undefined,
137
+ userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,
143
138
  verticalAlign:
144
139
  columnDefType === 'display' && showFilters ? 'center' : 'text-top',
145
140
  zIndex: column.getIsResizing()
@@ -184,13 +179,10 @@ export const MRT_TableHeadCell: FC<Props> = ({
184
179
  >
185
180
  {headerElement}
186
181
  {columnDefType === 'data' && column.getCanSort() && (
187
- <MRT_TableHeadCellSortLabel header={header} instance={instance} />
182
+ <MRT_TableHeadCellSortLabel header={header} table={table} />
188
183
  )}
189
184
  {columnDefType === 'data' && column.getCanFilter() && (
190
- <MRT_TableHeadCellFilterLabel
191
- header={header}
192
- instance={instance}
193
- />
185
+ <MRT_TableHeadCellFilterLabel header={header} table={table} />
194
186
  )}
195
187
  </Box>
196
188
  <Box sx={{ whiteSpace: 'nowrap' }}>
@@ -200,7 +192,7 @@ export const MRT_TableHeadCell: FC<Props> = ({
200
192
  (enableGrouping && columnDef.enableGrouping !== false)) && (
201
193
  <MRT_GrabHandleButton
202
194
  ref={dragRef as Ref<HTMLButtonElement>}
203
- instance={instance}
195
+ table={table}
204
196
  />
205
197
  )}
206
198
  {(enableColumnActions || columnDef.enableColumnActions) &&
@@ -208,20 +200,17 @@ export const MRT_TableHeadCell: FC<Props> = ({
208
200
  columnDefType !== 'group' && (
209
201
  <MRT_TableHeadCellColumnActionsButton
210
202
  header={header}
211
- instance={instance}
203
+ table={table}
212
204
  />
213
205
  )}
214
206
  </Box>
215
207
  {column.getCanResize() && (
216
- <MRT_TableHeadCellResizeHandle
217
- header={header}
218
- instance={instance}
219
- />
208
+ <MRT_TableHeadCellResizeHandle header={header} table={table} />
220
209
  )}
221
210
  </Box>
222
211
  )}
223
212
  {columnDefType === 'data' && column.getCanFilter() && (
224
- <MRT_TableHeadCellFilterContainer header={header} instance={instance} />
213
+ <MRT_TableHeadCellFilterContainer header={header} table={table} />
225
214
  )}
226
215
  </TableCell>
227
216
  );
@@ -5,12 +5,12 @@ import type { MRT_Header, MRT_TableInstance } from '..';
5
5
 
6
6
  interface Props {
7
7
  header: MRT_Header;
8
- instance: MRT_TableInstance;
8
+ table: MRT_TableInstance;
9
9
  }
10
10
 
11
11
  export const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({
12
12
  header,
13
- instance,
13
+ table,
14
14
  }) => {
15
15
  const {
16
16
  options: {
@@ -18,10 +18,8 @@ export const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({
18
18
  localization,
19
19
  muiTableHeadCellColumnActionsButtonProps,
20
20
  },
21
- } = instance;
22
-
21
+ } = table;
23
22
  const { column } = header;
24
-
25
23
  const { columnDef } = column;
26
24
 
27
25
  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
@@ -34,14 +32,14 @@ export const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({
34
32
 
35
33
  const mTableHeadCellColumnActionsButtonProps =
36
34
  muiTableHeadCellColumnActionsButtonProps instanceof Function
37
- ? muiTableHeadCellColumnActionsButtonProps({ column, instance })
35
+ ? muiTableHeadCellColumnActionsButtonProps({ column, table })
38
36
  : muiTableHeadCellColumnActionsButtonProps;
39
37
 
40
38
  const mcTableHeadCellColumnActionsButtonProps =
41
39
  columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function
42
40
  ? columnDef.muiTableHeadCellColumnActionsButtonProps({
43
41
  column,
44
- instance,
42
+ table,
45
43
  })
46
44
  : columnDef.muiTableHeadCellColumnActionsButtonProps;
47
45
 
@@ -83,7 +81,7 @@ export const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({
83
81
  anchorEl={anchorEl}
84
82
  header={header}
85
83
  setAnchorEl={setAnchorEl}
86
- instance={instance}
84
+ table={table}
87
85
  />
88
86
  </>
89
87
  );
@@ -6,25 +6,23 @@ import { MRT_Header, MRT_TableInstance } from '..';
6
6
 
7
7
  interface Props {
8
8
  header: MRT_Header;
9
- instance: MRT_TableInstance;
9
+ table: MRT_TableInstance;
10
10
  }
11
11
 
12
12
  export const MRT_TableHeadCellFilterContainer: FC<Props> = ({
13
13
  header,
14
- instance,
14
+ table,
15
15
  }) => {
16
- const { getState } = instance;
17
-
16
+ const { getState } = table;
18
17
  const { currentFilterFns, showFilters } = getState();
19
-
20
18
  const { column } = header;
21
19
 
22
20
  return (
23
21
  <Collapse in={showFilters} mountOnEnter unmountOnExit>
24
22
  {currentFilterFns[column.id] === 'between' ? (
25
- <MRT_FilterRangeFields header={header} instance={instance} />
23
+ <MRT_FilterRangeFields header={header} table={table} />
26
24
  ) : (
27
- <MRT_FilterTextField header={header} instance={instance} />
25
+ <MRT_FilterTextField header={header} table={table} />
28
26
  )}
29
27
  </Collapse>
30
28
  );