material-react-table 2.8.0 → 2.9.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.
- package/dist/index.d.ts +17 -9
- package/dist/index.esm.js +260 -218
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +259 -216
- package/dist/index.js.map +1 -1
- package/locales/ja/index.esm.js +4 -4
- package/locales/ja/index.js +4 -4
- package/package.json +6 -4
- package/src/components/body/MRT_TableBody.tsx +2 -3
- package/src/components/body/MRT_TableBodyCell.tsx +10 -3
- package/src/components/body/MRT_TableBodyRow.tsx +77 -57
- package/src/components/footer/MRT_TableFooterCell.tsx +10 -1
- package/src/components/footer/MRT_TableFooterRow.tsx +19 -8
- package/src/components/head/MRT_TableHeadCell.tsx +10 -0
- package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +4 -2
- package/src/components/head/MRT_TableHeadRow.tsx +19 -8
- package/src/components/inputs/MRT_EditCellTextField.tsx +4 -3
- package/src/components/inputs/MRT_SelectCheckbox.tsx +4 -6
- package/src/components/table/MRT_Table.tsx +4 -0
- package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +1 -0
- package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +1 -0
- package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +4 -2
- package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +1 -0
- package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +1 -0
- package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +2 -1
- package/src/hooks/useMRT_ColumnVirtualizer.ts +77 -76
- package/src/hooks/useMRT_RowVirtualizer.ts +30 -32
- package/src/hooks/useMRT_TableInstance.ts +1 -42
- package/src/hooks/useMRT_TableOptions.ts +60 -17
- package/src/locales/ja.ts +4 -4
- package/src/types.ts +3 -0
- package/src/utils/displayColumn.utils.ts +2 -2
- package/src/utils/row.utils.ts +25 -1
- package/src/utils/style.utils.ts +70 -30
- package/src/utils.ts +0 -0
@@ -86,9 +86,11 @@ export const getMRT_RowExpandColumnDef = <TData extends MRT_RowData>(
|
|
86
86
|
id: 'mrt-row-expand',
|
87
87
|
size:
|
88
88
|
groupedColumnMode === 'remove'
|
89
|
-
? defaultColumn?.size
|
89
|
+
? defaultColumn?.size ?? 180
|
90
90
|
: renderDetailPanel
|
91
|
-
?
|
91
|
+
? enableExpandAll
|
92
|
+
? 60
|
93
|
+
: 70
|
92
94
|
: 100,
|
93
95
|
tableOptions,
|
94
96
|
}),
|
@@ -28,12 +28,13 @@ export const getMRT_RowSelectColumnDef = <TData extends MRT_RowData>(
|
|
28
28
|
),
|
29
29
|
Header:
|
30
30
|
enableSelectAll && enableMultiRowSelection
|
31
|
-
? ({ table }) => <MRT_SelectCheckbox
|
31
|
+
? ({ table }) => <MRT_SelectCheckbox table={table} />
|
32
32
|
: undefined,
|
33
33
|
grow: false,
|
34
34
|
...defaultDisplayColumnProps({
|
35
35
|
header: 'select',
|
36
36
|
id: 'mrt-row-select',
|
37
|
+
size: enableSelectAll ? 60 : 70,
|
37
38
|
tableOptions,
|
38
39
|
}),
|
39
40
|
};
|
@@ -16,7 +16,10 @@ export const useMRT_ColumnVirtualizer = <
|
|
16
16
|
table: MRT_TableInstance<TData>,
|
17
17
|
): MRT_ColumnVirtualizer | undefined => {
|
18
18
|
const {
|
19
|
+
getLeftLeafColumns,
|
20
|
+
getRightLeafColumns,
|
19
21
|
getState,
|
22
|
+
getVisibleLeafColumns,
|
20
23
|
options: {
|
21
24
|
columnVirtualizerInstanceRef,
|
22
25
|
columnVirtualizerOptions,
|
@@ -25,7 +28,9 @@ export const useMRT_ColumnVirtualizer = <
|
|
25
28
|
},
|
26
29
|
refs: { tableContainerRef },
|
27
30
|
} = table;
|
28
|
-
const { columnPinning,
|
31
|
+
const { columnPinning, draggingColumn } = getState();
|
32
|
+
|
33
|
+
if (!enableColumnVirtualization) return undefined;
|
29
34
|
|
30
35
|
const columnVirtualizerProps = parseFromValuesOrFunc(
|
31
36
|
columnVirtualizerOptions,
|
@@ -34,91 +39,87 @@ export const useMRT_ColumnVirtualizer = <
|
|
34
39
|
},
|
35
40
|
);
|
36
41
|
|
42
|
+
const visibleColumns = getVisibleLeafColumns();
|
43
|
+
|
37
44
|
const [leftPinnedIndexes, rightPinnedIndexes] = useMemo(
|
38
45
|
() =>
|
39
|
-
|
46
|
+
enableColumnPinning
|
40
47
|
? [
|
41
|
-
|
42
|
-
|
43
|
-
.getRightLeafColumns()
|
48
|
+
getLeftLeafColumns().map((c) => c.getPinnedIndex()),
|
49
|
+
getRightLeafColumns()
|
44
50
|
.map(
|
45
|
-
(
|
46
|
-
table.getVisibleLeafColumns().length - c.getPinnedIndex() - 1,
|
51
|
+
(column) => visibleColumns.length - column.getPinnedIndex() - 1,
|
47
52
|
)
|
48
53
|
.sort((a, b) => a - b),
|
49
54
|
]
|
50
55
|
: [[], []],
|
51
|
-
[columnPinning,
|
56
|
+
[columnPinning, enableColumnPinning],
|
52
57
|
);
|
53
58
|
|
54
|
-
|
55
|
-
const
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
if (columnVirtualizerInstanceRef) {
|
119
|
-
//@ts-ignore
|
120
|
-
columnVirtualizerInstanceRef.current = columnVirtualizer;
|
121
|
-
}
|
59
|
+
const numPinnedLeft = leftPinnedIndexes.length;
|
60
|
+
const numPinnedRight = rightPinnedIndexes.length;
|
61
|
+
|
62
|
+
const draggingColumnIndex = useMemo(
|
63
|
+
() =>
|
64
|
+
draggingColumn?.id
|
65
|
+
? visibleColumns.findIndex((c) => c.id === draggingColumn?.id)
|
66
|
+
: undefined,
|
67
|
+
[draggingColumn?.id],
|
68
|
+
);
|
69
|
+
|
70
|
+
const columnVirtualizer = useVirtualizer({
|
71
|
+
count: visibleColumns.length,
|
72
|
+
estimateSize: (index) => visibleColumns[index].getSize(),
|
73
|
+
getScrollElement: () => tableContainerRef.current,
|
74
|
+
horizontal: true,
|
75
|
+
overscan: 3,
|
76
|
+
rangeExtractor: useCallback(
|
77
|
+
(range: Range) => {
|
78
|
+
const newIndexes = extraIndexRangeExtractor(range, draggingColumnIndex);
|
79
|
+
if (!numPinnedLeft && !numPinnedRight) {
|
80
|
+
return newIndexes;
|
81
|
+
}
|
82
|
+
return [
|
83
|
+
...new Set([
|
84
|
+
...leftPinnedIndexes,
|
85
|
+
...newIndexes,
|
86
|
+
...rightPinnedIndexes,
|
87
|
+
]),
|
88
|
+
];
|
89
|
+
},
|
90
|
+
[leftPinnedIndexes, rightPinnedIndexes, draggingColumnIndex],
|
91
|
+
),
|
92
|
+
...columnVirtualizerProps,
|
93
|
+
}) as unknown as MRT_ColumnVirtualizer<TScrollElement, TItemElement>;
|
94
|
+
|
95
|
+
const virtualColumns = columnVirtualizer.getVirtualItems();
|
96
|
+
columnVirtualizer.virtualColumns = virtualColumns;
|
97
|
+
const numColumns = virtualColumns.length;
|
98
|
+
|
99
|
+
if (numColumns) {
|
100
|
+
const totalSize = columnVirtualizer.getTotalSize();
|
101
|
+
|
102
|
+
const leftNonPinnedStart = virtualColumns[numPinnedLeft]?.start || 0;
|
103
|
+
const leftNonPinnedEnd =
|
104
|
+
virtualColumns[leftPinnedIndexes.length - 1]?.end || 0;
|
105
|
+
|
106
|
+
const rightNonPinnedStart =
|
107
|
+
virtualColumns[numColumns - numPinnedRight]?.start || 0;
|
108
|
+
const rightNonPinnedEnd =
|
109
|
+
virtualColumns[numColumns - numPinnedRight - 1]?.end || 0;
|
110
|
+
|
111
|
+
columnVirtualizer.virtualPaddingLeft =
|
112
|
+
leftNonPinnedStart - leftNonPinnedEnd;
|
113
|
+
|
114
|
+
columnVirtualizer.virtualPaddingRight =
|
115
|
+
totalSize -
|
116
|
+
rightNonPinnedEnd -
|
117
|
+
(numPinnedRight ? totalSize - rightNonPinnedStart : 0);
|
118
|
+
}
|
119
|
+
|
120
|
+
if (columnVirtualizerInstanceRef) {
|
121
|
+
//@ts-ignore
|
122
|
+
columnVirtualizerInstanceRef.current = columnVirtualizer;
|
122
123
|
}
|
123
124
|
|
124
125
|
return columnVirtualizer as any;
|
@@ -30,6 +30,8 @@ export const useMRT_RowVirtualizer = <
|
|
30
30
|
} = table;
|
31
31
|
const { density, draggingRow, expanded } = getState();
|
32
32
|
|
33
|
+
if (!enableRowVirtualization) return undefined;
|
34
|
+
|
33
35
|
const rowVirtualizerProps = parseFromValuesOrFunc(rowVirtualizerOptions, {
|
34
36
|
table,
|
35
37
|
});
|
@@ -39,39 +41,35 @@ export const useMRT_RowVirtualizer = <
|
|
39
41
|
const normalRowHeight =
|
40
42
|
density === 'compact' ? 37 : density === 'comfortable' ? 58 : 73;
|
41
43
|
|
42
|
-
const rowVirtualizer =
|
43
|
-
?
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
44
|
+
const rowVirtualizer = useVirtualizer({
|
45
|
+
count: renderDetailPanel ? rowCount * 2 : rowCount,
|
46
|
+
estimateSize: (index) =>
|
47
|
+
renderDetailPanel && index % 2 === 1
|
48
|
+
? expanded === true
|
49
|
+
? 100
|
50
|
+
: 0
|
51
|
+
: normalRowHeight,
|
52
|
+
getScrollElement: () => tableContainerRef.current,
|
53
|
+
measureElement:
|
54
|
+
typeof window !== 'undefined' &&
|
55
|
+
navigator.userAgent.indexOf('Firefox') === -1
|
56
|
+
? (element) => element?.getBoundingClientRect().height
|
57
|
+
: undefined,
|
58
|
+
overscan: 4,
|
59
|
+
rangeExtractor: useCallback(
|
60
|
+
(range: Range) => {
|
61
|
+
return extraIndexRangeExtractor(range, draggingRow?.index ?? 0);
|
62
|
+
},
|
63
|
+
[draggingRow],
|
64
|
+
),
|
65
|
+
...rowVirtualizerProps,
|
66
|
+
}) as unknown as MRT_RowVirtualizer<TScrollElement, TItemElement>;
|
67
|
+
|
68
|
+
rowVirtualizer.virtualRows = rowVirtualizer.getVirtualItems();
|
67
69
|
|
68
|
-
if (
|
69
|
-
|
70
|
-
|
71
|
-
if (rowVirtualizerInstanceRef) {
|
72
|
-
//@ts-ignore
|
73
|
-
rowVirtualizerInstanceRef.current = rowVirtualizer;
|
74
|
-
}
|
70
|
+
if (rowVirtualizerInstanceRef) {
|
71
|
+
//@ts-ignore
|
72
|
+
rowVirtualizerInstanceRef.current = rowVirtualizer;
|
75
73
|
}
|
76
74
|
|
77
75
|
return rowVirtualizer;
|
@@ -1,16 +1,5 @@
|
|
1
1
|
import { useMemo, useRef, useState } from 'react';
|
2
|
-
import {
|
3
|
-
getCoreRowModel,
|
4
|
-
getExpandedRowModel,
|
5
|
-
getFacetedMinMaxValues,
|
6
|
-
getFacetedRowModel,
|
7
|
-
getFacetedUniqueValues,
|
8
|
-
getFilteredRowModel,
|
9
|
-
getGroupedRowModel,
|
10
|
-
getPaginationRowModel,
|
11
|
-
getSortedRowModel,
|
12
|
-
useReactTable,
|
13
|
-
} from '@tanstack/react-table';
|
2
|
+
import { useReactTable } from '@tanstack/react-table';
|
14
3
|
import {
|
15
4
|
type MRT_Cell,
|
16
5
|
type MRT_Column,
|
@@ -207,36 +196,6 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
|
|
207
196
|
|
208
197
|
//@ts-ignore
|
209
198
|
const table = useReactTable({
|
210
|
-
getCoreRowModel: getCoreRowModel(),
|
211
|
-
getExpandedRowModel:
|
212
|
-
tableOptions.enableExpanding || tableOptions.enableGrouping
|
213
|
-
? getExpandedRowModel()
|
214
|
-
: undefined,
|
215
|
-
getFacetedMinMaxValues: tableOptions.enableFacetedValues
|
216
|
-
? getFacetedMinMaxValues()
|
217
|
-
: undefined,
|
218
|
-
getFacetedRowModel: tableOptions.enableFacetedValues
|
219
|
-
? getFacetedRowModel()
|
220
|
-
: undefined,
|
221
|
-
getFacetedUniqueValues: tableOptions.enableFacetedValues
|
222
|
-
? getFacetedUniqueValues()
|
223
|
-
: undefined,
|
224
|
-
getFilteredRowModel:
|
225
|
-
tableOptions.enableColumnFilters ||
|
226
|
-
tableOptions.enableGlobalFilter ||
|
227
|
-
tableOptions.enableFilters
|
228
|
-
? getFilteredRowModel()
|
229
|
-
: undefined,
|
230
|
-
getGroupedRowModel: tableOptions.enableGrouping
|
231
|
-
? getGroupedRowModel()
|
232
|
-
: undefined,
|
233
|
-
getPaginationRowModel: tableOptions.enablePagination
|
234
|
-
? getPaginationRowModel()
|
235
|
-
: undefined,
|
236
|
-
getSortedRowModel: tableOptions.enableSorting
|
237
|
-
? getSortedRowModel()
|
238
|
-
: undefined,
|
239
|
-
getSubRows: (row) => row?.subRows,
|
240
199
|
onColumnOrderChange,
|
241
200
|
onColumnSizingInfoChange,
|
242
201
|
onGroupingChange,
|
@@ -1,4 +1,15 @@
|
|
1
1
|
import { useMemo } from 'react';
|
2
|
+
import {
|
3
|
+
getCoreRowModel,
|
4
|
+
getExpandedRowModel,
|
5
|
+
getFacetedMinMaxValues,
|
6
|
+
getFacetedRowModel,
|
7
|
+
getFacetedUniqueValues,
|
8
|
+
getFilteredRowModel,
|
9
|
+
getGroupedRowModel,
|
10
|
+
getPaginationRowModel,
|
11
|
+
getSortedRowModel,
|
12
|
+
} from '@tanstack/react-table';
|
2
13
|
import { useTheme } from '@mui/material/styles';
|
3
14
|
import { MRT_AggregationFns } from '../fns/aggregationFns';
|
4
15
|
import { MRT_FilterFns } from '../fns/filterFns';
|
@@ -51,9 +62,11 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
51
62
|
enableColumnOrdering = false,
|
52
63
|
enableColumnPinning = false,
|
53
64
|
enableColumnResizing = false,
|
65
|
+
enableColumnVirtualization,
|
54
66
|
enableDensityToggle = true,
|
55
67
|
enableExpandAll = true,
|
56
68
|
enableExpanding,
|
69
|
+
enableFacetedValues = false,
|
57
70
|
enableFilterMatchHighlighting = true,
|
58
71
|
enableFilters = true,
|
59
72
|
enableFullScreenToggle = true,
|
@@ -66,6 +79,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
66
79
|
enablePagination = true,
|
67
80
|
enableRowPinning = false,
|
68
81
|
enableRowSelection = false,
|
82
|
+
enableRowVirtualization,
|
69
83
|
enableSelectAll = true,
|
70
84
|
enableSorting = true,
|
71
85
|
enableStickyHeader = false,
|
@@ -96,31 +110,37 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
96
110
|
...rest
|
97
111
|
}: MRT_TableOptions<TData>) => {
|
98
112
|
const theme = useTheme();
|
99
|
-
|
100
|
-
|
113
|
+
|
114
|
+
icons = useMemo(() => ({ ...MRT_Default_Icons, ...icons }), [icons]);
|
115
|
+
localization = useMemo(
|
101
116
|
() => ({
|
102
117
|
...MRT_Localization_EN,
|
103
118
|
...localization,
|
104
119
|
}),
|
105
120
|
[localization],
|
106
121
|
);
|
107
|
-
|
122
|
+
aggregationFns = useMemo(
|
108
123
|
() => ({ ...MRT_AggregationFns, ...aggregationFns }),
|
109
124
|
[],
|
110
125
|
);
|
111
|
-
|
112
|
-
|
113
|
-
|
126
|
+
filterFns = useMemo(() => ({ ...MRT_FilterFns, ...filterFns }), []);
|
127
|
+
sortingFns = useMemo(() => ({ ...MRT_SortingFns, ...sortingFns }), []);
|
128
|
+
defaultColumn = useMemo(
|
114
129
|
() => ({ ...MRT_DefaultColumn, ...defaultColumn }),
|
115
130
|
[defaultColumn],
|
116
131
|
);
|
117
|
-
|
132
|
+
defaultDisplayColumn = useMemo(
|
118
133
|
() => ({
|
119
134
|
...MRT_DefaultDisplayColumn,
|
120
135
|
...defaultDisplayColumn,
|
121
136
|
}),
|
122
137
|
[defaultDisplayColumn],
|
123
138
|
);
|
139
|
+
//cannot be changed after initialization
|
140
|
+
[enableColumnVirtualization, enableRowVirtualization] = useMemo(
|
141
|
+
() => [enableColumnVirtualization, enableRowVirtualization],
|
142
|
+
[],
|
143
|
+
);
|
124
144
|
|
125
145
|
if (!columnResizeDirection) {
|
126
146
|
columnResizeDirection = theme.direction || 'ltr';
|
@@ -130,12 +150,12 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
130
150
|
layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
|
131
151
|
if (
|
132
152
|
layoutMode === 'semantic' &&
|
133
|
-
(
|
153
|
+
(enableRowVirtualization || enableColumnVirtualization)
|
134
154
|
) {
|
135
155
|
layoutMode = 'grid';
|
136
156
|
}
|
137
157
|
|
138
|
-
if (
|
158
|
+
if (enableRowVirtualization) {
|
139
159
|
enableStickyHeader = true;
|
140
160
|
}
|
141
161
|
|
@@ -151,14 +171,14 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
151
171
|
}
|
152
172
|
|
153
173
|
return {
|
154
|
-
aggregationFns
|
174
|
+
aggregationFns,
|
155
175
|
autoResetExpanded,
|
156
176
|
columnFilterDisplayMode,
|
157
177
|
columnResizeDirection,
|
158
178
|
columnResizeMode,
|
159
179
|
createDisplayMode,
|
160
|
-
defaultColumn
|
161
|
-
defaultDisplayColumn
|
180
|
+
defaultColumn,
|
181
|
+
defaultDisplayColumn,
|
162
182
|
editDisplayMode,
|
163
183
|
enableBottomToolbar,
|
164
184
|
enableColumnActions,
|
@@ -166,9 +186,11 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
166
186
|
enableColumnOrdering,
|
167
187
|
enableColumnPinning,
|
168
188
|
enableColumnResizing,
|
189
|
+
enableColumnVirtualization,
|
169
190
|
enableDensityToggle,
|
170
191
|
enableExpandAll,
|
171
192
|
enableExpanding,
|
193
|
+
enableFacetedValues,
|
172
194
|
enableFilterMatchHighlighting,
|
173
195
|
enableFilters,
|
174
196
|
enableFullScreenToggle,
|
@@ -181,6 +203,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
181
203
|
enablePagination,
|
182
204
|
enableRowPinning,
|
183
205
|
enableRowSelection,
|
206
|
+
enableRowVirtualization,
|
184
207
|
enableSelectAll,
|
185
208
|
enableSorting,
|
186
209
|
enableStickyHeader,
|
@@ -188,10 +211,30 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
188
211
|
enableTableHead,
|
189
212
|
enableToolbarInternalActions,
|
190
213
|
enableTopToolbar,
|
191
|
-
filterFns
|
192
|
-
|
214
|
+
filterFns,
|
215
|
+
getCoreRowModel: getCoreRowModel(),
|
216
|
+
getExpandedRowModel:
|
217
|
+
enableExpanding || enableGrouping ? getExpandedRowModel() : undefined,
|
218
|
+
getFacetedMinMaxValues: enableFacetedValues
|
219
|
+
? getFacetedMinMaxValues()
|
220
|
+
: undefined,
|
221
|
+
getFacetedRowModel: enableFacetedValues ? getFacetedRowModel() : undefined,
|
222
|
+
getFacetedUniqueValues: enableFacetedValues
|
223
|
+
? getFacetedUniqueValues()
|
224
|
+
: undefined,
|
225
|
+
getFilteredRowModel:
|
226
|
+
enableColumnFilters || enableGlobalFilter || enableFilters
|
227
|
+
? getFilteredRowModel()
|
228
|
+
: undefined,
|
229
|
+
getGroupedRowModel: enableGrouping ? getGroupedRowModel() : undefined,
|
230
|
+
getPaginationRowModel: enablePagination
|
231
|
+
? getPaginationRowModel()
|
232
|
+
: undefined,
|
233
|
+
getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,
|
234
|
+
getSubRows: (row) => row?.subRows,
|
235
|
+
icons,
|
193
236
|
layoutMode,
|
194
|
-
localization
|
237
|
+
localization,
|
195
238
|
manualFiltering,
|
196
239
|
manualGrouping,
|
197
240
|
manualPagination,
|
@@ -207,7 +250,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
207
250
|
rowNumberDisplayMode,
|
208
251
|
rowPinningDisplayMode,
|
209
252
|
selectAllMode,
|
210
|
-
sortingFns
|
253
|
+
sortingFns,
|
211
254
|
...rest,
|
212
|
-
}
|
255
|
+
} as MRT_DefinedTableOptions<TData>;
|
213
256
|
};
|
package/src/locales/ja.ts
CHANGED
@@ -78,10 +78,10 @@ export const MRT_Localization_JA: MRT_Localization = {
|
|
78
78
|
showHideColumns: '列の表示状態',
|
79
79
|
showHideFilters: '検索バーを表示',
|
80
80
|
showHideSearch: '検索',
|
81
|
-
sortByColumnAsc: '{column}
|
82
|
-
sortByColumnDesc: '{column}
|
83
|
-
sortedByColumnAsc: '{column}
|
84
|
-
sortedByColumnDesc: '{column}
|
81
|
+
sortByColumnAsc: '{column}を昇順で並べ替え',
|
82
|
+
sortByColumnDesc: '{column}を降順で並べ替え',
|
83
|
+
sortedByColumnAsc: '{column}を昇順で並べ替え',
|
84
|
+
sortedByColumnDesc: '{column}を降順で並べ替え',
|
85
85
|
thenBy: 'さらに',
|
86
86
|
toggleDensity: 'テーブルの高さを変更',
|
87
87
|
toggleFullScreen: 'フルスクリーン切り替え',
|
package/src/types.ts
CHANGED
@@ -1164,6 +1164,9 @@ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
|
|
1164
1164
|
renderBottomToolbarCustomActions?: (props: {
|
1165
1165
|
table: MRT_TableInstance<TData>;
|
1166
1166
|
}) => ReactNode;
|
1167
|
+
renderCaption?:
|
1168
|
+
| ((props: { table: MRT_TableInstance<TData> }) => ReactNode)
|
1169
|
+
| ReactNode;
|
1167
1170
|
renderColumnActionsMenuItems?: (props: {
|
1168
1171
|
closeMenu: () => void;
|
1169
1172
|
column: MRT_Column<TData>;
|
@@ -10,12 +10,12 @@ import { getAllLeafColumnDefs, getColumnId } from './column.utils';
|
|
10
10
|
export function defaultDisplayColumnProps<TData extends MRT_RowData>({
|
11
11
|
header,
|
12
12
|
id,
|
13
|
-
size
|
13
|
+
size,
|
14
14
|
tableOptions,
|
15
15
|
}: {
|
16
16
|
header?: keyof MRT_Localization;
|
17
17
|
id: MRT_DisplayColumnIds;
|
18
|
-
size
|
18
|
+
size: number;
|
19
19
|
tableOptions: MRT_DefinedTableOptions<TData>;
|
20
20
|
}) {
|
21
21
|
const { defaultDisplayColumn, displayColumnDefOptions, localization } =
|
package/src/utils/row.utils.ts
CHANGED
@@ -1,4 +1,28 @@
|
|
1
|
-
import {
|
1
|
+
import {
|
2
|
+
type MRT_Row,
|
3
|
+
type MRT_RowData,
|
4
|
+
type MRT_TableInstance,
|
5
|
+
} from '../types';
|
6
|
+
import { parseFromValuesOrFunc } from './utils';
|
7
|
+
|
8
|
+
export const getIsRowSelected = <TData extends MRT_RowData>({
|
9
|
+
row,
|
10
|
+
table,
|
11
|
+
}: {
|
12
|
+
row: MRT_Row<TData>;
|
13
|
+
table: MRT_TableInstance<TData>;
|
14
|
+
}) => {
|
15
|
+
const {
|
16
|
+
options: { enableRowSelection },
|
17
|
+
} = table;
|
18
|
+
|
19
|
+
return (
|
20
|
+
row.getIsSelected() ||
|
21
|
+
(parseFromValuesOrFunc(enableRowSelection, row) &&
|
22
|
+
row.getCanSelectSubRows() &&
|
23
|
+
row.getIsAllSubRowsSelected())
|
24
|
+
);
|
25
|
+
};
|
2
26
|
|
3
27
|
export const getCanRankRows = <TData extends MRT_RowData>(
|
4
28
|
table: MRT_TableInstance<TData>,
|