material-react-table 2.0.0-alpha.1 → 2.0.0-alpha.3
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/README.md +2 -2
- package/dist/cjs/index.js +2408 -2334
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +1 -1
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
- package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +2 -2
- package/dist/cjs/types/column.utils.d.ts +6 -6
- package/dist/cjs/types/filterFns.d.ts +14 -14
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
- package/dist/cjs/types/icons.d.ts +1 -1
- package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
- package/dist/cjs/types/locales/np.d.ts +2 -0
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
- package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +1 -1
- package/dist/cjs/types/types.d.ts +217 -197
- package/dist/esm/material-react-table.esm.js +2311 -2239
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +1 -1
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
- package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +2 -2
- package/dist/esm/types/column.utils.d.ts +6 -6
- package/dist/esm/types/filterFns.d.ts +14 -14
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
- package/dist/esm/types/icons.d.ts +1 -1
- package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
- package/dist/esm/types/locales/np.d.ts +2 -0
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
- package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +1 -1
- package/dist/esm/types/types.d.ts +217 -197
- package/dist/index.d.ts +258 -238
- package/locales/fr.esm.js +1 -1
- package/locales/fr.esm.js.map +1 -1
- package/locales/fr.js +1 -1
- package/locales/fr.js.map +1 -1
- package/locales/np.d.ts +2 -0
- package/locales/np.esm.d.ts +2 -0
- package/locales/np.esm.js +94 -0
- package/locales/np.esm.js.map +1 -0
- package/locales/np.js +98 -0
- package/locales/np.js.map +1 -0
- package/locales/tr.d.ts +2 -0
- package/locales/tr.esm.d.ts +2 -0
- package/locales/tr.esm.js +93 -0
- package/locales/tr.esm.js.map +1 -0
- package/locales/tr.js +97 -0
- package/locales/tr.js.map +1 -0
- package/locales/uk.d.ts +2 -0
- package/locales/uk.esm.d.ts +2 -0
- package/locales/uk.esm.js +93 -0
- package/locales/uk.esm.js.map +1 -0
- package/locales/uk.js +97 -0
- package/locales/uk.js.map +1 -0
- package/locales/vi.d.ts +2 -0
- package/locales/vi.esm.d.ts +2 -0
- package/locales/vi.esm.js +93 -0
- package/locales/vi.esm.js.map +1 -0
- package/locales/vi.js +97 -0
- package/locales/vi.js.map +1 -0
- package/locales/zh-Hans.d.ts +2 -0
- package/locales/zh-Hans.esm.d.ts +2 -0
- package/locales/zh-Hans.esm.js +93 -0
- package/locales/zh-Hans.esm.js.map +1 -0
- package/locales/zh-Hans.js +97 -0
- package/locales/zh-Hans.js.map +1 -0
- package/locales/zh-Hant.d.ts +2 -0
- package/locales/zh-Hant.esm.d.ts +2 -0
- package/locales/zh-Hant.esm.js +93 -0
- package/locales/zh-Hant.esm.js.map +1 -0
- package/locales/zh-Hant.js +97 -0
- package/locales/zh-Hant.js.map +1 -0
- package/package.json +27 -26
- package/src/MaterialReactTable.tsx +2 -2
- package/src/body/MRT_TableBody.tsx +9 -9
- package/src/body/MRT_TableBodyCell.tsx +22 -22
- package/src/body/MRT_TableBodyCellValue.tsx +5 -5
- package/src/body/MRT_TableBodyRow.tsx +32 -32
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +2 -2
- package/src/body/MRT_TableBodyRowPinButton.tsx +3 -3
- package/src/body/MRT_TableDetailPanel.tsx +3 -3
- package/src/buttons/MRT_CopyButton.tsx +1 -1
- package/src/buttons/MRT_EditActionButtons.tsx +4 -4
- package/src/buttons/MRT_ExpandAllButton.tsx +3 -3
- package/src/buttons/MRT_ExpandButton.tsx +1 -1
- package/src/buttons/MRT_GrabHandleButton.tsx +10 -10
- package/src/buttons/MRT_RowPinButton.tsx +5 -5
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +1 -1
- package/src/buttons/MRT_ToggleFullScreenButton.tsx +2 -2
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -8
- package/src/column.utils.ts +24 -22
- package/src/filterFns.ts +29 -29
- package/src/footer/MRT_TableFooter.tsx +9 -9
- package/src/footer/MRT_TableFooterCell.tsx +1 -1
- package/src/footer/MRT_TableFooterRow.tsx +2 -2
- package/src/head/MRT_TableHead.tsx +9 -9
- package/src/head/MRT_TableHeadCell.tsx +10 -6
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +9 -6
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +12 -5
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +106 -61
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +2 -2
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +11 -11
- package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -8
- package/src/head/MRT_TableHeadRow.tsx +2 -2
- package/src/hooks/useMRT_DisplayColumns.tsx +5 -5
- package/src/hooks/useMRT_Effects.ts +3 -3
- package/src/hooks/useMRT_TableInstance.ts +15 -14
- package/src/hooks/useMRT_TableOptions.ts +3 -3
- package/src/icons.ts +2 -2
- package/src/inputs/MRT_EditCellTextField.tsx +9 -9
- package/src/inputs/MRT_FilterCheckbox.tsx +7 -7
- package/src/inputs/MRT_FilterRangeFields.tsx +1 -1
- package/src/inputs/MRT_FilterRangeSlider.tsx +6 -6
- package/src/inputs/MRT_FilterTextField.tsx +309 -230
- package/src/inputs/MRT_GlobalFilterTextField.tsx +26 -26
- package/src/inputs/MRT_SelectCheckbox.tsx +7 -7
- package/src/locales/fr.ts +1 -1
- package/src/locales/np.ts +94 -0
- package/src/menus/MRT_ColumnActionMenu.tsx +48 -45
- package/src/menus/MRT_FilterOptionMenu.tsx +36 -36
- package/src/menus/MRT_RowActionMenu.tsx +7 -7
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -6
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +5 -5
- package/src/modals/MRT_EditRowModal.tsx +8 -8
- package/src/sortingFns.ts +1 -1
- package/src/table/MRT_Table.tsx +7 -7
- package/src/table/MRT_TableContainer.tsx +10 -10
- package/src/table/MRT_TablePaper.tsx +9 -9
- package/src/toolbar/MRT_BottomToolbar.tsx +5 -5
- package/src/toolbar/MRT_LinearProgressBar.tsx +4 -4
- package/src/toolbar/MRT_TablePagination.tsx +19 -19
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +4 -4
- package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -6
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -5
- package/src/toolbar/MRT_TopToolbar.tsx +7 -7
- package/src/types.ts +288 -257
- package/src/useMaterialReactTable.ts +1 -1
@@ -29,15 +29,15 @@ export const MRT_ShowHideColumnsMenu = <TData extends Record<string, any>>({
|
|
29
29
|
getLeftLeafColumns,
|
30
30
|
getRightLeafColumns,
|
31
31
|
getState,
|
32
|
-
toggleAllColumnsVisible,
|
33
32
|
options: {
|
34
33
|
enableColumnOrdering,
|
35
|
-
enableHiding,
|
36
34
|
enableColumnPinning,
|
35
|
+
enableHiding,
|
37
36
|
localization,
|
38
37
|
},
|
38
|
+
toggleAllColumnsVisible,
|
39
39
|
} = table;
|
40
|
-
const {
|
40
|
+
const { columnOrder, columnPinning, density } = getState();
|
41
41
|
|
42
42
|
const hideAllColumns = () => {
|
43
43
|
getAllLeafColumns()
|
@@ -75,12 +75,12 @@ export const MRT_ShowHideColumnsMenu = <TData extends Record<string, any>>({
|
|
75
75
|
|
76
76
|
return (
|
77
77
|
<Menu
|
78
|
-
anchorEl={anchorEl}
|
79
|
-
open={!!anchorEl}
|
80
|
-
onClose={() => setAnchorEl(null)}
|
81
78
|
MenuListProps={{
|
82
79
|
dense: density === 'compact',
|
83
80
|
}}
|
81
|
+
anchorEl={anchorEl}
|
82
|
+
onClose={() => setAnchorEl(null)}
|
83
|
+
open={!!anchorEl}
|
84
84
|
>
|
85
85
|
<Box
|
86
86
|
sx={{
|
@@ -28,17 +28,17 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
28
28
|
TData extends Record<string, any>,
|
29
29
|
>({
|
30
30
|
allColumns,
|
31
|
+
column,
|
31
32
|
hoveredColumn,
|
32
33
|
setHoveredColumn,
|
33
|
-
column,
|
34
34
|
table,
|
35
35
|
}: Props<TData>) => {
|
36
36
|
const {
|
37
37
|
getState,
|
38
38
|
options: {
|
39
39
|
enableColumnOrdering,
|
40
|
-
enableHiding,
|
41
40
|
enableColumnPinning,
|
41
|
+
enableHiding,
|
42
42
|
localization,
|
43
43
|
},
|
44
44
|
setColumnOrder,
|
@@ -89,19 +89,19 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
89
89
|
<>
|
90
90
|
<MenuItem
|
91
91
|
disableRipple
|
92
|
-
ref={menuItemRef as any}
|
93
92
|
onDragEnter={handleDragEnter}
|
93
|
+
ref={menuItemRef as any}
|
94
94
|
sx={(theme) => ({
|
95
95
|
alignItems: 'center',
|
96
96
|
justifyContent: 'flex-start',
|
97
97
|
my: 0,
|
98
98
|
opacity: isDragging ? 0.5 : 1,
|
99
|
-
outlineOffset: '-2px',
|
100
99
|
outline: isDragging
|
101
100
|
? `2px dashed ${theme.palette.divider}`
|
102
101
|
: hoveredColumn?.id === column.id
|
103
102
|
? `2px dashed ${theme.palette.primary.main}`
|
104
103
|
: 'none',
|
104
|
+
outlineOffset: '-2px',
|
105
105
|
pl: `${(column.depth + 0.5) * 2}rem`,
|
106
106
|
py: '6px',
|
107
107
|
})}
|
@@ -135,6 +135,7 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
135
135
|
))}
|
136
136
|
{enableHiding ? (
|
137
137
|
<FormControlLabel
|
138
|
+
checked={switchChecked}
|
138
139
|
componentsProps={{
|
139
140
|
typography: {
|
140
141
|
sx: {
|
@@ -143,7 +144,6 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
143
144
|
},
|
144
145
|
},
|
145
146
|
}}
|
146
|
-
checked={switchChecked}
|
147
147
|
control={
|
148
148
|
<Tooltip
|
149
149
|
arrow
|
@@ -4,9 +4,9 @@ import DialogContent from '@mui/material/DialogContent';
|
|
4
4
|
import DialogTitle from '@mui/material/DialogTitle';
|
5
5
|
import Stack from '@mui/material/Stack';
|
6
6
|
import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons';
|
7
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
7
8
|
import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
|
8
9
|
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
9
|
-
import { parseFromValuesOrFunc } from '../column.utils';
|
10
10
|
|
11
11
|
interface Props<TData extends Record<string, any>> {
|
12
12
|
open: boolean;
|
@@ -21,15 +21,15 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
|
|
21
21
|
getState,
|
22
22
|
options: {
|
23
23
|
localization,
|
24
|
-
onEditingRowCancel,
|
25
|
-
onCreatingRowCancel,
|
26
|
-
renderEditRowModalContent,
|
27
|
-
renderCreateRowModalContent,
|
28
24
|
muiCreateRowModalProps,
|
29
25
|
muiEditRowModalProps,
|
26
|
+
onCreatingRowCancel,
|
27
|
+
onEditingRowCancel,
|
28
|
+
renderCreateRowModalContent,
|
29
|
+
renderEditRowModalContent,
|
30
30
|
},
|
31
|
-
setEditingRow,
|
32
31
|
setCreatingRow,
|
32
|
+
setEditingRow,
|
33
33
|
} = table;
|
34
34
|
const { creatingRow, editingRow } = getState();
|
35
35
|
const row = (creatingRow ?? editingRow) as MRT_Row<TData>;
|
@@ -71,14 +71,14 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
|
|
71
71
|
>
|
72
72
|
{((creatingRow &&
|
73
73
|
renderCreateRowModalContent?.({
|
74
|
+
internalEditComponents,
|
74
75
|
row,
|
75
76
|
table,
|
76
|
-
internalEditComponents,
|
77
77
|
})) ||
|
78
78
|
renderEditRowModalContent?.({
|
79
|
+
internalEditComponents,
|
79
80
|
row,
|
80
81
|
table,
|
81
|
-
internalEditComponents,
|
82
82
|
})) ?? (
|
83
83
|
<>
|
84
84
|
<DialogTitle sx={{ textAlign: 'center' }}>
|
package/src/sortingFns.ts
CHANGED
package/src/table/MRT_Table.tsx
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
import { useCallback, useMemo } from 'react';
|
2
2
|
import {
|
3
|
-
defaultRangeExtractor,
|
4
|
-
useVirtualizer,
|
5
3
|
type Range,
|
6
4
|
type Virtualizer,
|
5
|
+
defaultRangeExtractor,
|
6
|
+
useVirtualizer,
|
7
7
|
} from '@tanstack/react-virtual';
|
8
8
|
import Table from '@mui/material/Table';
|
9
|
-
import {
|
10
|
-
import { Memo_MRT_TableBody, MRT_TableBody } from '../body/MRT_TableBody';
|
11
|
-
import { MRT_TableFooter } from '../footer/MRT_TableFooter';
|
9
|
+
import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody';
|
12
10
|
import { parseCSSVarId, parseFromValuesOrFunc } from '../column.utils';
|
11
|
+
import { MRT_TableFooter } from '../footer/MRT_TableFooter';
|
12
|
+
import { MRT_TableHead } from '../head/MRT_TableHead';
|
13
13
|
import { type MRT_TableInstance } from '../types';
|
14
14
|
|
15
15
|
interface Props<TData extends Record<string, any>> {
|
@@ -26,9 +26,9 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
26
26
|
columnVirtualizerInstanceRef,
|
27
27
|
columnVirtualizerOptions,
|
28
28
|
columns,
|
29
|
+
enableColumnPinning,
|
29
30
|
enableColumnResizing,
|
30
31
|
enableColumnVirtualization,
|
31
|
-
enableColumnPinning,
|
32
32
|
enableStickyHeader,
|
33
33
|
enableTableFooter,
|
34
34
|
enableTableHead,
|
@@ -147,6 +147,7 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
147
147
|
<Table
|
148
148
|
stickyHeader={enableStickyHeader || isFullScreen}
|
149
149
|
{...tableProps}
|
150
|
+
style={{ ...columnSizeVars, ...tableProps?.style }}
|
150
151
|
sx={(theme) => ({
|
151
152
|
borderCollapse: 'separate',
|
152
153
|
display: layoutMode === 'grid' ? 'grid' : 'table',
|
@@ -154,7 +155,6 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
154
155
|
layoutMode !== 'grid' && enableColumnResizing ? 'fixed' : undefined,
|
155
156
|
...(parseFromValuesOrFunc(tableProps?.sx, theme) as any),
|
156
157
|
})}
|
157
|
-
style={{ ...columnSizeVars, ...tableProps?.style }}
|
158
158
|
>
|
159
159
|
{enableTableHead && <MRT_TableHead {...props} />}
|
160
160
|
{memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? (
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { useEffect, useLayoutEffect, useState } from 'react';
|
2
2
|
import TableContainer from '@mui/material/TableContainer';
|
3
3
|
import { MRT_Table } from './MRT_Table';
|
4
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
4
5
|
import { MRT_EditRowModal } from '../modals';
|
5
6
|
import { type MRT_TableInstance } from '../types';
|
6
|
-
import { parseFromValuesOrFunc } from '../column.utils';
|
7
7
|
|
8
8
|
const useIsomorphicLayoutEffect =
|
9
9
|
typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
@@ -23,9 +23,9 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
23
23
|
enableStickyHeader,
|
24
24
|
muiTableContainerProps,
|
25
25
|
},
|
26
|
-
refs: {
|
26
|
+
refs: { bottomToolbarRef, tableContainerRef, topToolbarRef },
|
27
27
|
} = table;
|
28
|
-
const {
|
28
|
+
const { creatingRow, editingRow, isFullScreen } = getState();
|
29
29
|
|
30
30
|
const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);
|
31
31
|
|
@@ -62,20 +62,20 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
62
62
|
}
|
63
63
|
}
|
64
64
|
}}
|
65
|
+
style={{
|
66
|
+
maxHeight: isFullScreen
|
67
|
+
? `calc(100vh - ${totalToolbarHeight}px)`
|
68
|
+
: undefined,
|
69
|
+
...tableContainerProps?.style,
|
70
|
+
}}
|
65
71
|
sx={(theme) => ({
|
66
|
-
maxWidth: '100%',
|
67
72
|
maxHeight: enableStickyHeader
|
68
73
|
? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`
|
69
74
|
: undefined,
|
75
|
+
maxWidth: '100%',
|
70
76
|
overflow: 'auto',
|
71
77
|
...(parseFromValuesOrFunc(tableContainerProps?.sx, theme) as any),
|
72
78
|
})}
|
73
|
-
style={{
|
74
|
-
maxHeight: isFullScreen
|
75
|
-
? `calc(100vh - ${totalToolbarHeight}px)`
|
76
|
-
: undefined,
|
77
|
-
...tableContainerProps?.style,
|
78
|
-
}}
|
79
79
|
>
|
80
80
|
<MRT_Table table={table} />
|
81
81
|
{(createModalOpen || editModalOpen) && (
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import Paper from '@mui/material/Paper';
|
2
|
-
import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
|
3
|
-
import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
|
4
2
|
import { MRT_TableContainer } from './MRT_TableContainer';
|
5
|
-
import { type MRT_TableInstance } from '../types';
|
6
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
4
|
+
import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
|
5
|
+
import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
|
6
|
+
import { type MRT_TableInstance } from '../types';
|
7
7
|
|
8
8
|
interface Props<TData extends Record<string, any>> {
|
9
9
|
table: MRT_TableInstance<TData>;
|
@@ -38,13 +38,7 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
|
|
38
38
|
tablePaperProps.ref.current = ref;
|
39
39
|
}
|
40
40
|
}}
|
41
|
-
sx={(theme) => ({
|
42
|
-
overflow: 'hidden',
|
43
|
-
transition: 'all 100ms ease-in-out',
|
44
|
-
...(parseFromValuesOrFunc(tablePaperProps?.sx, theme) as any),
|
45
|
-
})}
|
46
41
|
style={{
|
47
|
-
...tablePaperProps?.style,
|
48
42
|
...(isFullScreen
|
49
43
|
? {
|
50
44
|
bottom: 0,
|
@@ -61,7 +55,13 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
|
|
61
55
|
zIndex: 10,
|
62
56
|
}
|
63
57
|
: {}),
|
58
|
+
...tablePaperProps?.style,
|
64
59
|
}}
|
60
|
+
sx={(theme) => ({
|
61
|
+
overflow: 'hidden',
|
62
|
+
transition: 'all 100ms ease-in-out',
|
63
|
+
...(parseFromValuesOrFunc(tablePaperProps?.sx, theme) as any),
|
64
|
+
})}
|
65
65
|
>
|
66
66
|
{enableTopToolbar &&
|
67
67
|
(parseFromValuesOrFunc(renderTopToolbar, { table }) ?? (
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import Box from '@mui/material/Box';
|
2
2
|
import Toolbar from '@mui/material/Toolbar';
|
3
|
-
import useMediaQuery from '@mui/material/useMediaQuery';
|
4
3
|
import { alpha } from '@mui/material/styles';
|
4
|
+
import useMediaQuery from '@mui/material/useMediaQuery';
|
5
|
+
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
5
6
|
import { MRT_TablePagination } from './MRT_TablePagination';
|
6
7
|
import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
|
7
8
|
import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
|
8
|
-
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
9
9
|
import { commonToolbarStyles } from './MRT_TopToolbar';
|
10
|
-
import { type MRT_TableInstance } from '../types';
|
11
10
|
import { parseFromValuesOrFunc } from '../column.utils';
|
11
|
+
import { type MRT_TableInstance } from '../types';
|
12
12
|
|
13
13
|
interface Props<TData extends Record<string, any>> {
|
14
14
|
table: MRT_TableInstance<TData>;
|
@@ -98,8 +98,8 @@ export const MRT_BottomToolbar = <TData extends Record<string, any>>({
|
|
98
98
|
}}
|
99
99
|
>
|
100
100
|
{enablePagination &&
|
101
|
-
['
|
102
|
-
<MRT_TablePagination table={table}
|
101
|
+
['both', 'bottom'].includes(positionPagination ?? '') && (
|
102
|
+
<MRT_TablePagination position="bottom" table={table} />
|
103
103
|
)}
|
104
104
|
</Box>
|
105
105
|
</Box>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import Collapse from '@mui/material/Collapse';
|
2
2
|
import LinearProgress from '@mui/material/LinearProgress';
|
3
|
-
import { type MRT_TableInstance } from '../types';
|
4
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
4
|
+
import { type MRT_TableInstance } from '../types';
|
5
5
|
|
6
6
|
interface Props<TData extends Record<string, any>> {
|
7
7
|
isTopToolbar: boolean;
|
@@ -13,8 +13,8 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
|
|
13
13
|
table,
|
14
14
|
}: Props<TData>) => {
|
15
15
|
const {
|
16
|
-
options: { muiLinearProgressProps },
|
17
16
|
getState,
|
17
|
+
options: { muiLinearProgressProps },
|
18
18
|
} = table;
|
19
19
|
const { isLoading, showProgressBars } = getState();
|
20
20
|
|
@@ -27,17 +27,17 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
|
|
27
27
|
<Collapse
|
28
28
|
in={isLoading || showProgressBars}
|
29
29
|
mountOnEnter
|
30
|
-
unmountOnExit
|
31
30
|
sx={{
|
32
31
|
bottom: isTopToolbar ? 0 : undefined,
|
33
32
|
position: 'absolute',
|
34
33
|
top: !isTopToolbar ? 0 : undefined,
|
35
34
|
width: '100%',
|
36
35
|
}}
|
36
|
+
unmountOnExit
|
37
37
|
>
|
38
38
|
<LinearProgress
|
39
|
-
aria-label="Loading"
|
40
39
|
aria-busy="true"
|
40
|
+
aria-label="Loading"
|
41
41
|
sx={{ position: 'relative' }}
|
42
42
|
{...linearProgressProps}
|
43
43
|
/>
|
@@ -1,31 +1,31 @@
|
|
1
1
|
import { type ChangeEvent } from 'react';
|
2
2
|
import TablePagination from '@mui/material/TablePagination';
|
3
|
-
import { type MRT_TableInstance } from '../types';
|
4
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
4
|
+
import { type MRT_TableInstance } from '../types';
|
5
5
|
|
6
6
|
interface Props<TData extends Record<string, any>> {
|
7
|
-
position?: '
|
7
|
+
position?: 'bottom' | 'top';
|
8
8
|
table: MRT_TableInstance<TData>;
|
9
9
|
}
|
10
10
|
|
11
11
|
export const MRT_TablePagination = <TData extends Record<string, any>>({
|
12
|
-
table,
|
13
12
|
position = 'bottom',
|
13
|
+
table,
|
14
14
|
}: Props<TData>) => {
|
15
15
|
const {
|
16
16
|
getPrePaginationRowModel,
|
17
17
|
getState,
|
18
|
-
setPageIndex,
|
19
|
-
setPageSize,
|
20
18
|
options: {
|
21
|
-
muiTablePaginationProps,
|
22
19
|
enableToolbarInternalActions,
|
23
20
|
localization,
|
21
|
+
muiTablePaginationProps,
|
24
22
|
rowCount,
|
25
23
|
},
|
24
|
+
setPageIndex,
|
25
|
+
setPageSize,
|
26
26
|
} = table;
|
27
27
|
const {
|
28
|
-
pagination: {
|
28
|
+
pagination: { pageIndex = 0, pageSize = 10 },
|
29
29
|
showGlobalFilter,
|
30
30
|
} = getState();
|
31
31
|
|
@@ -53,7 +53,7 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
|
|
53
53
|
? localization.goToNextPage
|
54
54
|
: localization.goToPreviousPage
|
55
55
|
}
|
56
|
-
labelDisplayedRows={({ from, to
|
56
|
+
labelDisplayedRows={({ count, from, to }) =>
|
57
57
|
`${from}-${to} ${localization.of} ${count}`
|
58
58
|
}
|
59
59
|
labelRowsPerPage={localization.rowsPerPage}
|
@@ -69,28 +69,28 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
|
|
69
69
|
showLastButton={showFirstLastPageButtons}
|
70
70
|
{...tablePaginationProps}
|
71
71
|
SelectProps={{
|
72
|
-
sx: { m: '0 1rem 0 1ch' },
|
73
72
|
MenuProps: { MenuListProps: { disablePadding: true }, sx: { m: 0 } },
|
73
|
+
sx: { m: '0 1rem 0 1ch' },
|
74
74
|
...tablePaginationProps?.SelectProps,
|
75
75
|
}}
|
76
76
|
sx={(theme) => ({
|
77
|
-
'& .MuiTablePagination-
|
78
|
-
display: 'flex',
|
79
|
-
alignItems: 'center',
|
80
|
-
},
|
81
|
-
'& .MuiTablePagination-selectLabel': {
|
82
|
-
m: '0 -1px',
|
83
|
-
},
|
84
|
-
'&. MuiInputBase-root': {
|
77
|
+
'& . MuiTablePagination-select': {
|
85
78
|
m: '0 1px',
|
86
79
|
},
|
87
|
-
'& .
|
80
|
+
'& .MuiTablePagination-actions': {
|
88
81
|
m: '0 1px',
|
89
82
|
},
|
90
83
|
'& .MuiTablePagination-displayedRows': {
|
91
84
|
m: '0 1px',
|
92
85
|
},
|
93
|
-
'& .MuiTablePagination-
|
86
|
+
'& .MuiTablePagination-selectLabel': {
|
87
|
+
m: '0 -1px',
|
88
|
+
},
|
89
|
+
'& .MuiTablePagination-toolbar': {
|
90
|
+
alignItems: 'center',
|
91
|
+
display: 'flex',
|
92
|
+
},
|
93
|
+
'&. MuiInputBase-root': {
|
94
94
|
m: '0 1px',
|
95
95
|
},
|
96
96
|
mt:
|
@@ -4,8 +4,8 @@ import AlertTitle from '@mui/material/AlertTitle';
|
|
4
4
|
import Box from '@mui/material/Box';
|
5
5
|
import Chip from '@mui/material/Chip';
|
6
6
|
import Collapse from '@mui/material/Collapse';
|
7
|
-
import { type MRT_TableInstance } from '../types';
|
8
7
|
import { parseFromValuesOrFunc } from '../column.utils';
|
8
|
+
import { type MRT_TableInstance } from '../types';
|
9
9
|
|
10
10
|
interface Props<TData extends Record<string, any>> {
|
11
11
|
stackAlertBanner: boolean;
|
@@ -22,8 +22,8 @@ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
|
|
22
22
|
getState,
|
23
23
|
options: {
|
24
24
|
localization,
|
25
|
-
muiToolbarAlertBannerProps,
|
26
25
|
muiToolbarAlertBannerChipProps,
|
26
|
+
muiToolbarAlertBannerProps,
|
27
27
|
positionToolbarAlertBanner,
|
28
28
|
rowCount,
|
29
29
|
},
|
@@ -81,13 +81,13 @@ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
|
|
81
81
|
borderRadius: 0,
|
82
82
|
fontSize: '1rem',
|
83
83
|
left: 0,
|
84
|
-
p: 0,
|
85
|
-
position: 'relative',
|
86
84
|
mb: stackAlertBanner
|
87
85
|
? 0
|
88
86
|
: positionToolbarAlertBanner === 'bottom'
|
89
87
|
? '-1rem'
|
90
88
|
: undefined,
|
89
|
+
p: 0,
|
90
|
+
position: 'relative',
|
91
91
|
right: 0,
|
92
92
|
top: 0,
|
93
93
|
width: '100%',
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { type DragEvent, useEffect } from 'react';
|
2
|
-
import { alpha } from '@mui/material/styles';
|
3
2
|
import Box from '@mui/material/Box';
|
4
3
|
import Fade from '@mui/material/Fade';
|
5
4
|
import Typography from '@mui/material/Typography';
|
5
|
+
import { alpha } from '@mui/material/styles';
|
6
6
|
import { type MRT_TableInstance } from '../types';
|
7
7
|
|
8
8
|
interface Props<TData extends Record<string, any>> {
|
@@ -19,7 +19,7 @@ export const MRT_ToolbarDropZone = <TData extends Record<string, any>>({
|
|
19
19
|
setShowToolbarDropZone,
|
20
20
|
} = table;
|
21
21
|
|
22
|
-
const { draggingColumn,
|
22
|
+
const { draggingColumn, grouping, hoveredColumn, showToolbarDropZone } =
|
23
23
|
getState();
|
24
24
|
|
25
25
|
const handleDragEnter = (_event: DragEvent<HTMLDivElement>) => {
|
@@ -41,23 +41,23 @@ export const MRT_ToolbarDropZone = <TData extends Record<string, any>>({
|
|
41
41
|
<Fade in={showToolbarDropZone}>
|
42
42
|
<Box
|
43
43
|
className="Mui-ToolbarDropZone"
|
44
|
+
onDragEnter={handleDragEnter}
|
44
45
|
sx={(theme) => ({
|
45
46
|
alignItems: 'center',
|
47
|
+
backdropFilter: 'blur(4px)',
|
46
48
|
backgroundColor: alpha(
|
47
49
|
theme.palette.info.main,
|
48
50
|
hoveredColumn?.id === 'drop-zone' ? 0.2 : 0.1,
|
49
51
|
),
|
50
|
-
backdropFilter: 'blur(4px)',
|
51
|
-
boxSizing: 'border-box',
|
52
52
|
border: `dashed ${theme.palette.info.main} 2px`,
|
53
|
+
boxSizing: 'border-box',
|
53
54
|
display: 'flex',
|
54
|
-
justifyContent: 'center',
|
55
55
|
height: '100%',
|
56
|
+
justifyContent: 'center',
|
56
57
|
position: 'absolute',
|
57
58
|
width: '100%',
|
58
59
|
zIndex: 4,
|
59
60
|
})}
|
60
|
-
onDragEnter={handleDragEnter}
|
61
61
|
>
|
62
62
|
<Typography fontStyle="italic">
|
63
63
|
{localization.dropToGroupBy.replace(
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import Box from '@mui/material/Box';
|
2
|
-
import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton';
|
3
2
|
import { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';
|
4
3
|
import { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';
|
5
4
|
import { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';
|
5
|
+
import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton';
|
6
6
|
import { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';
|
7
7
|
import { type MRT_TableInstance } from '../types';
|
8
8
|
|
@@ -15,14 +15,15 @@ export const MRT_ToolbarInternalButtons = <TData extends Record<string, any>>({
|
|
15
15
|
}: Props<TData>) => {
|
16
16
|
const {
|
17
17
|
options: {
|
18
|
+
columnFilterDisplayMode,
|
18
19
|
enableColumnFilters,
|
19
20
|
enableColumnOrdering,
|
21
|
+
enableColumnPinning,
|
20
22
|
enableDensityToggle,
|
21
23
|
enableFilters,
|
22
24
|
enableFullScreenToggle,
|
23
25
|
enableGlobalFilter,
|
24
26
|
enableHiding,
|
25
|
-
enableColumnPinning,
|
26
27
|
initialState,
|
27
28
|
renderToolbarInternalActions,
|
28
29
|
},
|
@@ -45,9 +46,11 @@ export const MRT_ToolbarInternalButtons = <TData extends Record<string, any>>({
|
|
45
46
|
!initialState?.showGlobalFilter && (
|
46
47
|
<MRT_ToggleGlobalFilterButton table={table} />
|
47
48
|
)}
|
48
|
-
{enableFilters &&
|
49
|
-
|
50
|
-
|
49
|
+
{enableFilters &&
|
50
|
+
enableColumnFilters &&
|
51
|
+
columnFilterDisplayMode !== 'popover' && (
|
52
|
+
<MRT_ToggleFiltersButton table={table} />
|
53
|
+
)}
|
51
54
|
{(enableHiding || enableColumnOrdering || enableColumnPinning) && (
|
52
55
|
<MRT_ShowHideColumnsButton table={table} />
|
53
56
|
)}
|
@@ -1,16 +1,16 @@
|
|
1
1
|
import Box from '@mui/material/Box';
|
2
2
|
import Toolbar from '@mui/material/Toolbar';
|
3
|
-
import useMediaQuery from '@mui/material/useMediaQuery';
|
4
3
|
import { lighten } from '@mui/material/styles';
|
5
|
-
import {
|
4
|
+
import { type Theme } from '@mui/material/styles';
|
5
|
+
import useMediaQuery from '@mui/material/useMediaQuery';
|
6
6
|
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
7
7
|
import { MRT_TablePagination } from './MRT_TablePagination';
|
8
8
|
import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
|
9
|
-
import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
|
10
9
|
import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
|
11
|
-
import {
|
12
|
-
import { type Theme } from '@mui/material/styles';
|
10
|
+
import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
|
13
11
|
import { parseFromValuesOrFunc } from '../column.utils';
|
12
|
+
import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
|
13
|
+
import { type MRT_TableInstance } from '../types';
|
14
14
|
|
15
15
|
export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
|
16
16
|
alignItems: 'flex-start',
|
@@ -122,8 +122,8 @@ export const MRT_TopToolbar = <TData extends Record<string, any>>({
|
|
122
122
|
)}
|
123
123
|
</Box>
|
124
124
|
{enablePagination &&
|
125
|
-
['
|
126
|
-
<MRT_TablePagination table={table}
|
125
|
+
['both', 'top'].includes(positionPagination ?? '') && (
|
126
|
+
<MRT_TablePagination position="top" table={table} />
|
127
127
|
)}
|
128
128
|
<MRT_LinearProgressBar isTopToolbar table={table} />
|
129
129
|
</Toolbar>
|