material-react-table 1.6.5 → 1.7.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.
- package/dist/cjs/index.js +30 -18
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/_locales/sv.d.ts +2 -0
- package/dist/cjs/types/body/MRT_TableBody.d.ts +3 -3
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +3 -3
- package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +2 -2
- package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +3 -3
- package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +2 -2
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -2
- package/dist/cjs/types/column.utils.d.ts +2 -3
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +2 -2
- package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +2 -2
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHead.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +2 -2
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +2 -2
- package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +2 -2
- package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +2 -2
- package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +2 -2
- package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +2 -2
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +2 -2
- package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +2 -2
- package/dist/cjs/types/table/MRT_Table.d.ts +2 -2
- package/dist/cjs/types/table/MRT_TableContainer.d.ts +2 -2
- package/dist/cjs/types/table/MRT_TablePaper.d.ts +2 -2
- package/dist/esm/material-react-table.esm.js +30 -18
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/_locales/sv.d.ts +2 -0
- package/dist/esm/types/body/MRT_TableBody.d.ts +3 -3
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +3 -3
- package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +2 -2
- package/dist/esm/types/body/MRT_TableBodyRow.d.ts +3 -3
- package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +2 -2
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -2
- package/dist/esm/types/column.utils.d.ts +2 -3
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +2 -2
- package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +2 -2
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHead.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCell.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +2 -2
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +2 -2
- package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +2 -2
- package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +2 -2
- package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +2 -2
- package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +2 -2
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +2 -2
- package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +2 -2
- package/dist/esm/types/table/MRT_Table.d.ts +2 -2
- package/dist/esm/types/table/MRT_TableContainer.d.ts +2 -2
- package/dist/esm/types/table/MRT_TablePaper.d.ts +2 -2
- package/locales/sv.d.ts +2 -0
- package/locales/sv.esm.d.ts +2 -0
- package/locales/sv.esm.js +94 -0
- package/locales/sv.esm.js.map +1 -0
- package/locales/sv.js +98 -0
- package/locales/sv.js.map +1 -0
- package/locales/zh-Hant.esm.js +3 -3
- package/locales/zh-Hant.esm.js.map +1 -1
- package/locales/zh-Hant.js +3 -3
- package/locales/zh-Hant.js.map +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +1 -1
- package/src/_locales/sv.ts +94 -0
- package/src/_locales/zh-Hant.ts +3 -3
- package/src/body/MRT_TableBody.tsx +3 -3
- package/src/body/MRT_TableBodyCell.tsx +2 -3
- package/src/body/MRT_TableBodyCellValue.tsx +2 -2
- package/src/body/MRT_TableBodyRow.tsx +3 -3
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +2 -6
- package/src/body/MRT_TableDetailPanel.tsx +3 -3
- package/src/buttons/MRT_ExpandAllButton.tsx +2 -2
- package/src/buttons/MRT_ExpandButton.tsx +2 -2
- package/src/column.utils.ts +9 -10
- package/src/footer/MRT_TableFooter.tsx +3 -3
- package/src/footer/MRT_TableFooterCell.tsx +2 -2
- package/src/footer/MRT_TableFooterRow.tsx +3 -3
- package/src/head/MRT_TableHead.tsx +3 -3
- package/src/head/MRT_TableHeadCell.tsx +2 -3
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +3 -3
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +2 -5
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +2 -2
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +3 -3
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +10 -3
- package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -3
- package/src/head/MRT_TableHeadRow.tsx +3 -3
- package/src/inputs/MRT_FilterCheckbox.tsx +2 -2
- package/src/inputs/MRT_FilterRangeFields.tsx +2 -2
- package/src/inputs/MRT_FilterTextField.tsx +2 -3
- package/src/inputs/MRT_SelectCheckbox.tsx +2 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +5 -3
- package/src/menus/MRT_RowActionMenu.tsx +3 -3
- package/src/table/MRT_Table.tsx +23 -4
- package/src/table/MRT_TableContainer.tsx +2 -2
- package/src/table/MRT_TablePaper.tsx +2 -2
@@ -1,4 +1,4 @@
|
|
1
|
-
import React
|
1
|
+
import React from 'react';
|
2
2
|
import TableRow from '@mui/material/TableRow';
|
3
3
|
import { alpha, lighten } from '@mui/material/styles';
|
4
4
|
import { MRT_TableHeadCell } from './MRT_TableHeadCell';
|
@@ -13,13 +13,13 @@ interface Props {
|
|
13
13
|
virtualPaddingRight?: number;
|
14
14
|
}
|
15
15
|
|
16
|
-
export const MRT_TableHeadRow
|
16
|
+
export const MRT_TableHeadRow = ({
|
17
17
|
headerGroup,
|
18
18
|
table,
|
19
19
|
virtualColumns,
|
20
20
|
virtualPaddingLeft,
|
21
21
|
virtualPaddingRight,
|
22
|
-
}) => {
|
22
|
+
}: Props) => {
|
23
23
|
const {
|
24
24
|
options: { layoutMode, muiTableHeadRowProps },
|
25
25
|
} = table;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React
|
1
|
+
import React from 'react';
|
2
2
|
import Checkbox from '@mui/material/Checkbox';
|
3
3
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
4
4
|
import Tooltip from '@mui/material/Tooltip';
|
@@ -10,7 +10,7 @@ interface Props {
|
|
10
10
|
table: MRT_TableInstance;
|
11
11
|
}
|
12
12
|
|
13
|
-
export const MRT_FilterCheckbox
|
13
|
+
export const MRT_FilterCheckbox = ({ column, table }: Props) => {
|
14
14
|
const {
|
15
15
|
getState,
|
16
16
|
options: { localization, muiTableHeadCellFilterCheckboxProps },
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React
|
1
|
+
import React from 'react';
|
2
2
|
import Box from '@mui/material/Box';
|
3
3
|
import { MRT_FilterTextField } from './MRT_FilterTextField';
|
4
4
|
import { MRT_Header, MRT_TableInstance } from '..';
|
@@ -8,7 +8,7 @@ interface Props {
|
|
8
8
|
table: MRT_TableInstance;
|
9
9
|
}
|
10
10
|
|
11
|
-
export const MRT_FilterRangeFields
|
11
|
+
export const MRT_FilterRangeFields = ({ header, table }: Props) => {
|
12
12
|
return (
|
13
13
|
<Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>
|
14
14
|
<MRT_FilterTextField header={header} rangeFilterIndex={0} table={table} />
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import React, {
|
2
2
|
ChangeEvent,
|
3
|
-
FC,
|
4
3
|
MouseEvent,
|
5
4
|
useCallback,
|
6
5
|
useEffect,
|
@@ -26,11 +25,11 @@ interface Props {
|
|
26
25
|
table: MRT_TableInstance;
|
27
26
|
}
|
28
27
|
|
29
|
-
export const MRT_FilterTextField
|
28
|
+
export const MRT_FilterTextField = ({
|
30
29
|
header,
|
31
30
|
rangeFilterIndex,
|
32
31
|
table,
|
33
|
-
}) => {
|
32
|
+
}: Props) => {
|
34
33
|
const {
|
35
34
|
options: {
|
36
35
|
enableColumnFilterModes,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, {
|
1
|
+
import React, { MouseEvent } from 'react';
|
2
2
|
import Checkbox from '@mui/material/Checkbox';
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
4
4
|
import Radio from '@mui/material/Radio';
|
@@ -11,7 +11,7 @@ interface Props {
|
|
11
11
|
table: MRT_TableInstance;
|
12
12
|
}
|
13
13
|
|
14
|
-
export const MRT_SelectCheckbox
|
14
|
+
export const MRT_SelectCheckbox = ({ row, selectAll, table }: Props) => {
|
15
15
|
const {
|
16
16
|
getState,
|
17
17
|
options: {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, {
|
1
|
+
import React, { useState } from 'react';
|
2
2
|
import Box from '@mui/material/Box';
|
3
3
|
import IconButton from '@mui/material/IconButton';
|
4
4
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
@@ -27,12 +27,12 @@ interface Props {
|
|
27
27
|
table: MRT_TableInstance;
|
28
28
|
}
|
29
29
|
|
30
|
-
export const MRT_ColumnActionMenu
|
30
|
+
export const MRT_ColumnActionMenu = ({
|
31
31
|
anchorEl,
|
32
32
|
header,
|
33
33
|
setAnchorEl,
|
34
34
|
table,
|
35
|
-
}) => {
|
35
|
+
}: Props) => {
|
36
36
|
const {
|
37
37
|
getState,
|
38
38
|
toggleAllColumnsVisible,
|
@@ -62,6 +62,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
|
|
62
62
|
renderColumnActionsMenuItems,
|
63
63
|
},
|
64
64
|
refs: { filterInputRefs },
|
65
|
+
setColumnSizingInfo,
|
65
66
|
setShowFilters,
|
66
67
|
} = table;
|
67
68
|
const { column } = header;
|
@@ -89,6 +90,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
|
|
89
90
|
};
|
90
91
|
|
91
92
|
const handleResetColumnSize = () => {
|
93
|
+
setColumnSizingInfo((old) => ({ ...old, isResizingColumn: false }));
|
92
94
|
column.resetSize();
|
93
95
|
setAnchorEl(null);
|
94
96
|
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, {
|
1
|
+
import React, { MouseEvent } from 'react';
|
2
2
|
import Box from '@mui/material/Box';
|
3
3
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
4
4
|
import Menu from '@mui/material/Menu';
|
@@ -17,13 +17,13 @@ interface Props {
|
|
17
17
|
table: MRT_TableInstance;
|
18
18
|
}
|
19
19
|
|
20
|
-
export const MRT_RowActionMenu
|
20
|
+
export const MRT_RowActionMenu = ({
|
21
21
|
anchorEl,
|
22
22
|
handleEdit,
|
23
23
|
row,
|
24
24
|
setAnchorEl,
|
25
25
|
table,
|
26
|
-
}) => {
|
26
|
+
}: Props) => {
|
27
27
|
const {
|
28
28
|
getState,
|
29
29
|
options: {
|
package/src/table/MRT_Table.tsx
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, {
|
1
|
+
import React, { useCallback, useMemo } from 'react';
|
2
2
|
import {
|
3
3
|
defaultRangeExtractor,
|
4
4
|
Range,
|
@@ -15,10 +15,12 @@ interface Props {
|
|
15
15
|
table: MRT_TableInstance;
|
16
16
|
}
|
17
17
|
|
18
|
-
export const MRT_Table
|
18
|
+
export const MRT_Table = ({ table }: Props) => {
|
19
19
|
const {
|
20
|
+
getFlatHeaders,
|
20
21
|
getState,
|
21
22
|
options: {
|
23
|
+
columns,
|
22
24
|
columnVirtualizerInstanceRef,
|
23
25
|
columnVirtualizerProps,
|
24
26
|
enableColumnResizing,
|
@@ -33,7 +35,13 @@ export const MRT_Table: FC<Props> = ({ table }) => {
|
|
33
35
|
},
|
34
36
|
refs: { tableContainerRef },
|
35
37
|
} = table;
|
36
|
-
const {
|
38
|
+
const {
|
39
|
+
columnPinning,
|
40
|
+
columnSizing,
|
41
|
+
columnSizingInfo,
|
42
|
+
columnVisibility,
|
43
|
+
isFullScreen,
|
44
|
+
} = getState();
|
37
45
|
|
38
46
|
const tableProps =
|
39
47
|
muiTableProps instanceof Function
|
@@ -122,6 +130,16 @@ export const MRT_Table: FC<Props> = ({ table }) => {
|
|
122
130
|
virtualPaddingRight,
|
123
131
|
};
|
124
132
|
|
133
|
+
const columnSizeVars = useMemo(() => {
|
134
|
+
const headers = getFlatHeaders();
|
135
|
+
const colSizes: { [key: string]: number } = {};
|
136
|
+
for (let i = 0; i < headers.length; i++) {
|
137
|
+
const h = headers[i];
|
138
|
+
colSizes[`--col-${h.column.id}-size`] = h.getSize();
|
139
|
+
}
|
140
|
+
return colSizes;
|
141
|
+
}, [columns, columnSizing, columnSizingInfo]);
|
142
|
+
|
125
143
|
return (
|
126
144
|
<Table
|
127
145
|
stickyHeader={enableStickyHeader || isFullScreen}
|
@@ -135,9 +153,10 @@ export const MRT_Table: FC<Props> = ({ table }) => {
|
|
135
153
|
? tableProps.sx(theme)
|
136
154
|
: (tableProps?.sx as any)),
|
137
155
|
})}
|
156
|
+
style={{ ...columnSizeVars, ...tableProps?.style }}
|
138
157
|
>
|
139
158
|
{enableTableHead && <MRT_TableHead {...props} />}
|
140
|
-
{memoMode === 'table-body' ? (
|
159
|
+
{memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? (
|
141
160
|
<Memo_MRT_TableBody columnVirtualizer={columnVirtualizer} {...props} />
|
142
161
|
) : (
|
143
162
|
<MRT_TableBody columnVirtualizer={columnVirtualizer} {...props} />
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, {
|
1
|
+
import React, { useEffect, useLayoutEffect, useState } from 'react';
|
2
2
|
import TableContainer from '@mui/material/TableContainer';
|
3
3
|
import { MRT_Table } from './MRT_Table';
|
4
4
|
import type { MRT_TableInstance } from '..';
|
@@ -10,7 +10,7 @@ interface Props {
|
|
10
10
|
table: MRT_TableInstance;
|
11
11
|
}
|
12
12
|
|
13
|
-
export const MRT_TableContainer
|
13
|
+
export const MRT_TableContainer = ({ table }: Props) => {
|
14
14
|
const {
|
15
15
|
getState,
|
16
16
|
options: { enableStickyHeader, muiTableContainerProps },
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React
|
1
|
+
import React from 'react';
|
2
2
|
import Paper from '@mui/material/Paper';
|
3
3
|
import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
|
4
4
|
import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
|
@@ -9,7 +9,7 @@ interface Props {
|
|
9
9
|
table: MRT_TableInstance;
|
10
10
|
}
|
11
11
|
|
12
|
-
export const MRT_TablePaper
|
12
|
+
export const MRT_TablePaper = ({ table }: Props) => {
|
13
13
|
const {
|
14
14
|
getState,
|
15
15
|
options: {
|