material-react-table 2.0.0-alpha.5 → 2.0.0-beta.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 +141 -68
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
- package/dist/cjs/types/column.utils.d.ts +2 -0
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/cjs/types/icons.d.ts +1 -0
- package/dist/cjs/types/types.d.ts +12 -19
- package/dist/esm/material-react-table.esm.js +139 -68
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
- package/dist/esm/types/column.utils.d.ts +2 -0
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/esm/types/icons.d.ts +1 -0
- package/dist/esm/types/types.d.ts +12 -19
- package/dist/index.d.ts +19 -23
- package/locales/ar.esm.js +1 -0
- package/locales/ar.esm.js.map +1 -1
- package/locales/ar.js +1 -0
- package/locales/ar.js.map +1 -1
- package/locales/bg.esm.js +1 -0
- package/locales/bg.esm.js.map +1 -1
- package/locales/bg.js +1 -0
- package/locales/bg.js.map +1 -1
- package/locales/cs.esm.js +1 -0
- package/locales/cs.esm.js.map +1 -1
- package/locales/cs.js +1 -0
- package/locales/cs.js.map +1 -1
- package/locales/da.esm.js +1 -0
- package/locales/da.esm.js.map +1 -1
- package/locales/da.js +1 -0
- package/locales/da.js.map +1 -1
- package/locales/de.esm.js +1 -0
- package/locales/de.esm.js.map +1 -1
- package/locales/de.js +1 -0
- package/locales/de.js.map +1 -1
- package/locales/es.esm.js +1 -0
- package/locales/es.esm.js.map +1 -1
- package/locales/es.js +1 -0
- package/locales/es.js.map +1 -1
- package/locales/et.esm.js +1 -0
- package/locales/et.esm.js.map +1 -1
- package/locales/et.js +1 -0
- package/locales/et.js.map +1 -1
- package/locales/fa.esm.js +1 -0
- package/locales/fa.esm.js.map +1 -1
- package/locales/fa.js +1 -0
- package/locales/fa.js.map +1 -1
- package/locales/fi.esm.js +1 -0
- package/locales/fi.esm.js.map +1 -1
- package/locales/fi.js +1 -0
- package/locales/fi.js.map +1 -1
- package/locales/fr.esm.js +1 -0
- package/locales/fr.esm.js.map +1 -1
- package/locales/fr.js +1 -0
- package/locales/fr.js.map +1 -1
- package/locales/hu.esm.js +1 -0
- package/locales/hu.esm.js.map +1 -1
- package/locales/hu.js +1 -0
- package/locales/hu.js.map +1 -1
- package/locales/hy.esm.js +1 -0
- package/locales/hy.esm.js.map +1 -1
- package/locales/hy.js +1 -0
- package/locales/hy.js.map +1 -1
- package/locales/id.esm.js +1 -0
- package/locales/id.esm.js.map +1 -1
- package/locales/id.js +1 -0
- package/locales/id.js.map +1 -1
- package/locales/it.esm.js +1 -0
- package/locales/it.esm.js.map +1 -1
- package/locales/it.js +1 -0
- package/locales/it.js.map +1 -1
- package/locales/ja.esm.js +1 -0
- package/locales/ja.esm.js.map +1 -1
- package/locales/ja.js +1 -0
- package/locales/ja.js.map +1 -1
- package/locales/ko.esm.js +1 -0
- package/locales/ko.esm.js.map +1 -1
- package/locales/ko.js +1 -0
- package/locales/ko.js.map +1 -1
- package/locales/nl.esm.js +1 -0
- package/locales/nl.esm.js.map +1 -1
- package/locales/nl.js +1 -0
- package/locales/nl.js.map +1 -1
- package/locales/no.esm.js +1 -0
- package/locales/no.esm.js.map +1 -1
- package/locales/no.js +1 -0
- package/locales/no.js.map +1 -1
- package/locales/np.esm.js +1 -1
- package/locales/np.esm.js.map +1 -1
- package/locales/np.js +1 -1
- package/locales/np.js.map +1 -1
- package/locales/pl.esm.js +1 -0
- package/locales/pl.esm.js.map +1 -1
- package/locales/pl.js +1 -0
- package/locales/pl.js.map +1 -1
- package/locales/pt-BR.esm.js +1 -0
- package/locales/pt-BR.esm.js.map +1 -1
- package/locales/pt-BR.js +1 -0
- package/locales/pt-BR.js.map +1 -1
- package/locales/pt.esm.js +1 -0
- package/locales/pt.esm.js.map +1 -1
- package/locales/pt.js +1 -0
- package/locales/pt.js.map +1 -1
- package/locales/ro.esm.js +1 -0
- package/locales/ro.esm.js.map +1 -1
- package/locales/ro.js +1 -0
- package/locales/ro.js.map +1 -1
- package/locales/ru.esm.js +1 -0
- package/locales/ru.esm.js.map +1 -1
- package/locales/ru.js +1 -0
- package/locales/ru.js.map +1 -1
- package/locales/sk.esm.js +1 -0
- package/locales/sk.esm.js.map +1 -1
- package/locales/sk.js +1 -0
- package/locales/sk.js.map +1 -1
- package/locales/sr-Cyrl-RS.esm.js +1 -0
- package/locales/sr-Cyrl-RS.esm.js.map +1 -1
- package/locales/sr-Cyrl-RS.js +1 -0
- package/locales/sr-Cyrl-RS.js.map +1 -1
- package/locales/sr-Latn-RS.esm.js +1 -0
- package/locales/sr-Latn-RS.esm.js.map +1 -1
- package/locales/sr-Latn-RS.js +1 -0
- package/locales/sr-Latn-RS.js.map +1 -1
- package/locales/sv.esm.js +3 -2
- package/locales/sv.esm.js.map +1 -1
- package/locales/sv.js +3 -2
- package/locales/sv.js.map +1 -1
- package/locales/tr.esm.js +1 -0
- package/locales/tr.esm.js.map +1 -1
- package/locales/tr.js +1 -0
- package/locales/tr.js.map +1 -1
- package/locales/uk.esm.js +1 -0
- package/locales/uk.esm.js.map +1 -1
- package/locales/uk.js +1 -0
- package/locales/uk.js.map +1 -1
- package/locales/vi.esm.js +1 -0
- package/locales/vi.esm.js.map +1 -1
- package/locales/vi.js +1 -0
- package/locales/vi.js.map +1 -1
- package/locales/zh-Hans.esm.js +1 -0
- package/locales/zh-Hans.esm.js.map +1 -1
- package/locales/zh-Hans.js +1 -0
- package/locales/zh-Hans.js.map +1 -1
- package/locales/zh-Hant.esm.js +1 -0
- package/locales/zh-Hant.esm.js.map +1 -1
- package/locales/zh-Hant.js +1 -0
- package/locales/zh-Hant.js.map +1 -1
- package/package.json +11 -11
- package/src/body/MRT_TableBody.tsx +20 -4
- package/src/body/MRT_TableBodyCell.tsx +4 -3
- package/src/body/MRT_TableBodyRow.tsx +7 -5
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +1 -0
- package/src/body/index.ts +1 -1
- package/src/buttons/MRT_ExpandButton.tsx +1 -0
- package/src/buttons/MRT_GrabHandleButton.tsx +3 -1
- package/src/column.utils.ts +22 -2
- package/src/filterFns.ts +3 -3
- package/src/footer/MRT_TableFooterCell.tsx +5 -1
- package/src/footer/MRT_TableFooterRow.tsx +2 -2
- package/src/head/MRT_TableHead.tsx +5 -1
- package/src/head/MRT_TableHeadCell.tsx +11 -6
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +2 -2
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +6 -1
- package/src/head/MRT_TableHeadCellSortLabel.tsx +18 -12
- package/src/head/MRT_TableHeadRow.tsx +2 -2
- package/src/hooks/useMRT_DisplayColumns.tsx +20 -0
- package/src/hooks/useMRT_TableInstance.ts +6 -6
- package/src/icons.ts +3 -0
- package/src/inputs/MRT_FilterTextField.tsx +4 -3
- package/src/locales/ar.ts +1 -1
- package/src/locales/bg.ts +1 -0
- package/src/locales/cs.ts +1 -0
- package/src/locales/da.ts +1 -0
- package/src/locales/de.ts +1 -0
- package/src/locales/es.ts +1 -0
- package/src/locales/et.ts +1 -0
- package/src/locales/fa.ts +1 -0
- package/src/locales/fi.ts +1 -0
- package/src/locales/fr.ts +1 -0
- package/src/locales/hu.ts +1 -0
- package/src/locales/hy.ts +1 -0
- package/src/locales/id.ts +1 -0
- package/src/locales/it.ts +1 -0
- package/src/locales/ja.ts +1 -0
- package/src/locales/ko.ts +1 -0
- package/src/locales/nl.ts +1 -0
- package/src/locales/no.ts +1 -0
- package/src/locales/np.ts +3 -2
- package/src/locales/pl.ts +1 -0
- package/src/locales/pt-BR.ts +1 -0
- package/src/locales/pt.ts +1 -0
- package/src/locales/ro.ts +1 -0
- package/src/locales/ru.ts +1 -0
- package/src/locales/sk.ts +1 -0
- package/src/locales/sr-Cyrl-RS.ts +1 -0
- package/src/locales/sr-Latn-RS.ts +1 -0
- package/src/locales/sv.ts +3 -2
- package/src/locales/tr.ts +1 -0
- package/src/locales/uk.ts +1 -0
- package/src/locales/vi.ts +1 -0
- package/src/locales/zh-Hans.ts +1 -0
- package/src/locales/zh-Hant.ts +1 -0
- package/src/table/MRT_Table.tsx +24 -10
- package/src/table/MRT_TableContainer.tsx +50 -1
- package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
- package/src/toolbar/MRT_TablePagination.tsx +3 -4
- package/src/types.ts +12 -11
@@ -13,12 +13,11 @@ interface Props<TData extends Record<string, any>> {
|
|
13
13
|
export const MRT_TableHeadCellSortLabel = <TData extends Record<string, any>>({
|
14
14
|
header,
|
15
15
|
table,
|
16
|
-
tableCellProps,
|
17
16
|
}: Props<TData>) => {
|
18
17
|
const {
|
19
18
|
getState,
|
20
19
|
options: {
|
21
|
-
icons: { ArrowDownwardIcon },
|
20
|
+
icons: { ArrowDownwardIcon, SyncAltIcon },
|
22
21
|
localization,
|
23
22
|
},
|
24
23
|
} = table;
|
@@ -26,6 +25,8 @@ export const MRT_TableHeadCellSortLabel = <TData extends Record<string, any>>({
|
|
26
25
|
const { columnDef } = column;
|
27
26
|
const { sorting } = getState();
|
28
27
|
|
28
|
+
const isSorted = !!column.getIsSorted();
|
29
|
+
|
29
30
|
const sortTooltip = column.getIsSorted()
|
30
31
|
? column.getIsSorted() === 'desc'
|
31
32
|
? localization.sortedByColumnDesc.replace('{column}', columnDef.header)
|
@@ -41,13 +42,20 @@ export const MRT_TableHeadCellSortLabel = <TData extends Record<string, any>>({
|
|
41
42
|
overlap="circular"
|
42
43
|
>
|
43
44
|
<TableSortLabel
|
44
|
-
IconComponent={
|
45
|
-
|
45
|
+
IconComponent={
|
46
|
+
!isSorted
|
47
|
+
? (props) => (
|
48
|
+
<SyncAltIcon
|
49
|
+
{...props}
|
50
|
+
style={{ transform: 'rotate(-90deg) scaleX(0.8)' }}
|
51
|
+
/>
|
52
|
+
)
|
53
|
+
: ArrowDownwardIcon
|
54
|
+
}
|
55
|
+
active
|
46
56
|
aria-label={sortTooltip}
|
47
57
|
direction={
|
48
|
-
column.getIsSorted()
|
49
|
-
? (column.getIsSorted() as 'asc' | 'desc')
|
50
|
-
: undefined
|
58
|
+
isSorted ? (column.getIsSorted() as 'asc' | 'desc') : undefined
|
51
59
|
}
|
52
60
|
onClick={(e) => {
|
53
61
|
e.stopPropagation();
|
@@ -55,11 +63,9 @@ export const MRT_TableHeadCellSortLabel = <TData extends Record<string, any>>({
|
|
55
63
|
}}
|
56
64
|
sx={{
|
57
65
|
flex: '0 0',
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
: undefined,
|
62
|
-
width: '2.4ch',
|
66
|
+
opacity: isSorted ? 1 : 0.3,
|
67
|
+
transition: 'all 150ms ease-in-out',
|
68
|
+
width: '3ch',
|
63
69
|
}}
|
64
70
|
/>
|
65
71
|
</Badge>
|
@@ -52,9 +52,9 @@ export const MRT_TableHeadRow = <TData extends Record<string, any>>({
|
|
52
52
|
? headerGroup.headers[headerOrVirtualHeader.index]
|
53
53
|
: (headerOrVirtualHeader as MRT_Header<TData>);
|
54
54
|
|
55
|
-
return (
|
55
|
+
return header ? (
|
56
56
|
<MRT_TableHeadCell header={header} key={header.id} table={table} />
|
57
|
-
);
|
57
|
+
) : null;
|
58
58
|
})}
|
59
59
|
{virtualPaddingRight ? (
|
60
60
|
<th style={{ display: 'flex', width: virtualPaddingRight }} />
|
@@ -14,6 +14,15 @@ import {
|
|
14
14
|
type MRT_Row,
|
15
15
|
} from '../types';
|
16
16
|
|
17
|
+
const blankColProps = {
|
18
|
+
sx: {
|
19
|
+
flex: '1 0 auto',
|
20
|
+
minWidth: 0,
|
21
|
+
p: 0,
|
22
|
+
width: 0,
|
23
|
+
},
|
24
|
+
};
|
25
|
+
|
17
26
|
interface Params<TData extends Record<string, any>> {
|
18
27
|
columnOrder: MRT_ColumnOrderState;
|
19
28
|
creatingRow: MRT_Row<TData> | null;
|
@@ -123,6 +132,17 @@ export const useMRT_DisplayColumns = <TData extends Record<string, any>>({
|
|
123
132
|
...tableOptions.displayColumnDefOptions?.['mrt-row-numbers'],
|
124
133
|
id: 'mrt-row-numbers',
|
125
134
|
},
|
135
|
+
|
136
|
+
(tableOptions.state?.columnOrder ?? columnOrder).includes(
|
137
|
+
'mrt-row-spacer',
|
138
|
+
) && {
|
139
|
+
columnDefType: 'display',
|
140
|
+
header: '',
|
141
|
+
id: 'spacer',
|
142
|
+
muiTableBodyCellProps: blankColProps,
|
143
|
+
muiTableFooterCellProps: blankColProps,
|
144
|
+
muiTableHeadCellProps: blankColProps,
|
145
|
+
},
|
126
146
|
] as MRT_ColumnDef<TData>[]
|
127
147
|
).filter(Boolean),
|
128
148
|
[
|
@@ -103,12 +103,12 @@ export const useMRT_TableInstance: <TData extends Record<string, any>>(
|
|
103
103
|
const [grouping, setGrouping] = useState<MRT_GroupingState>(
|
104
104
|
initialState.grouping ?? [],
|
105
105
|
);
|
106
|
-
const [hoveredColumn, setHoveredColumn] = useState<
|
107
|
-
|
108
|
-
>(initialState.hoveredColumn ?? null);
|
109
|
-
const [hoveredRow, setHoveredRow] = useState<
|
110
|
-
|
111
|
-
|
106
|
+
const [hoveredColumn, setHoveredColumn] = useState<Partial<
|
107
|
+
MRT_Column<TData>
|
108
|
+
> | null>(initialState.hoveredColumn ?? null);
|
109
|
+
const [hoveredRow, setHoveredRow] = useState<Partial<MRT_Row<TData>> | null>(
|
110
|
+
initialState.hoveredRow ?? null,
|
111
|
+
);
|
112
112
|
const [isFullScreen, setIsFullScreen] = useState<boolean>(
|
113
113
|
initialState?.isFullScreen ?? false,
|
114
114
|
);
|
package/src/icons.ts
CHANGED
@@ -28,6 +28,7 @@ import SaveIcon from '@mui/icons-material/Save';
|
|
28
28
|
import SearchIcon from '@mui/icons-material/Search';
|
29
29
|
import SearchOffIcon from '@mui/icons-material/SearchOff';
|
30
30
|
import SortIcon from '@mui/icons-material/Sort';
|
31
|
+
import SyncAltIcon from '@mui/icons-material/SyncAlt';
|
31
32
|
import ViewColumnIcon from '@mui/icons-material/ViewColumn';
|
32
33
|
import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
|
33
34
|
|
@@ -62,6 +63,7 @@ export interface MRT_Icons {
|
|
62
63
|
SearchIcon: any;
|
63
64
|
SearchOffIcon: any;
|
64
65
|
SortIcon: any;
|
66
|
+
SyncAltIcon?: any;
|
65
67
|
ViewColumnIcon: any;
|
66
68
|
VisibilityOffIcon: any;
|
67
69
|
}
|
@@ -97,6 +99,7 @@ export const MRT_Default_Icons: MRT_Icons = {
|
|
97
99
|
SearchIcon,
|
98
100
|
SearchOffIcon,
|
99
101
|
SortIcon,
|
102
|
+
SyncAltIcon,
|
100
103
|
ViewColumnIcon,
|
101
104
|
VisibilityOffIcon,
|
102
105
|
};
|
@@ -133,7 +133,7 @@ export const MRT_FilterTextField = <TData extends Record<string, any>>({
|
|
133
133
|
if (isRangeFilter) {
|
134
134
|
column.setFilterValue((old: Array<Date | null | number | string>) => {
|
135
135
|
const newFilterValues = old ?? ['', ''];
|
136
|
-
newFilterValues[rangeFilterIndex as number] = newValue;
|
136
|
+
newFilterValues[rangeFilterIndex as number] = newValue ?? undefined;
|
137
137
|
return newFilterValues;
|
138
138
|
});
|
139
139
|
} else {
|
@@ -146,7 +146,7 @@ export const MRT_FilterTextField = <TData extends Record<string, any>>({
|
|
146
146
|
);
|
147
147
|
|
148
148
|
const handleChange = (newValue: any) => {
|
149
|
-
setFilterValue(newValue
|
149
|
+
setFilterValue(newValue ?? '');
|
150
150
|
handleChangeDebounced(newValue);
|
151
151
|
};
|
152
152
|
|
@@ -246,7 +246,7 @@ export const MRT_FilterTextField = <TData extends Record<string, any>>({
|
|
246
246
|
sx={{
|
247
247
|
height: '2rem',
|
248
248
|
transform: 'scale(0.9)',
|
249
|
-
width: '2rem'
|
249
|
+
width: '2rem',
|
250
250
|
}}
|
251
251
|
>
|
252
252
|
<CloseIcon />
|
@@ -364,6 +364,7 @@ export const MRT_FilterTextField = <TData extends Record<string, any>>({
|
|
364
364
|
/>
|
365
365
|
) : isAutocompleteFilter ? (
|
366
366
|
<Autocomplete
|
367
|
+
freeSolo
|
367
368
|
getOptionLabel={(option) => option}
|
368
369
|
onChange={(_e, newValue) => handleChange(newValue)}
|
369
370
|
options={dropdownOptions ?? []}
|
package/src/locales/ar.ts
CHANGED
@@ -14,7 +14,6 @@ export const MRT_Localization_AR: MRT_Localization = {
|
|
14
14
|
collapseAll: 'إخفاء الكل',
|
15
15
|
columnActions: 'إجراءات العمود',
|
16
16
|
copiedToClipboard: 'نسخ إلى الحافظة',
|
17
|
-
|
18
17
|
dropToGroupBy: 'أفلت للمجموعة حسب {column}',
|
19
18
|
edit: 'تعديل',
|
20
19
|
expand: 'إظهار',
|
@@ -60,6 +59,7 @@ export const MRT_Localization_AR: MRT_Localization = {
|
|
60
59
|
noResultsFound: 'لم يتم العثور على نتائج',
|
61
60
|
of: 'ل',
|
62
61
|
or: 'أو',
|
62
|
+
pin: 'تثبيت',
|
63
63
|
pinToLeft: 'تثبيت جهة اليسار',
|
64
64
|
pinToRight: 'تثبيت على اليمين',
|
65
65
|
resetColumnSize: 'Reset column size',
|
package/src/locales/bg.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_BG: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Няма намерени резултати',
|
60
60
|
of: 'от',
|
61
61
|
or: 'или',
|
62
|
+
pin: 'Закачи',
|
62
63
|
pinToLeft: 'Закачи отляво',
|
63
64
|
pinToRight: 'Закачи отдясно',
|
64
65
|
resetColumnSize: 'Нулиране на размера на колоната',
|
package/src/locales/cs.ts
CHANGED
@@ -60,6 +60,7 @@ export const MRT_Localization_CS: MRT_Localization = {
|
|
60
60
|
noResultsFound: 'Nenalezeny žádné výsledky',
|
61
61
|
of: 'z',
|
62
62
|
or: 'nebo',
|
63
|
+
pin: 'Připnout',
|
63
64
|
pinToLeft: 'Připnout doleva',
|
64
65
|
pinToRight: 'Připnout doprava',
|
65
66
|
resetColumnSize: 'Resetovat šířku sloupců',
|
package/src/locales/da.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_DA: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Ingen resultater fundet',
|
60
60
|
of: 'af',
|
61
61
|
or: 'eller',
|
62
|
+
pin: 'Fastgør',
|
62
63
|
pinToLeft: 'Fastgør til venstre',
|
63
64
|
pinToRight: 'Fastgør til højre',
|
64
65
|
resetColumnSize: 'Nulstil kolonnebredde',
|
package/src/locales/de.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_DE: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Keine Ergebnisse gefunden',
|
60
60
|
of: 'von',
|
61
61
|
or: 'oder',
|
62
|
+
pin: 'Anheften',
|
62
63
|
pinToLeft: 'Links anheften',
|
63
64
|
pinToRight: 'Rechts anheften',
|
64
65
|
resetColumnSize: 'Spaltengröße zurücksetzen',
|
package/src/locales/es.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_ES: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'No se encontraron resultados',
|
60
60
|
of: 'de',
|
61
61
|
or: 'o',
|
62
|
+
pin: 'Anclar',
|
62
63
|
pinToLeft: 'Anclar a la izquierda',
|
63
64
|
pinToRight: 'Anclar a la derecha',
|
64
65
|
resetColumnSize: 'Resetear tamaño de columna',
|
package/src/locales/et.ts
CHANGED
package/src/locales/fa.ts
CHANGED
package/src/locales/fi.ts
CHANGED
package/src/locales/fr.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_FR: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Aucun résultat trouvé',
|
60
60
|
of: 'de',
|
61
61
|
or: 'ou',
|
62
|
+
pin: 'Attacher',
|
62
63
|
pinToLeft: 'Épingler à gauche',
|
63
64
|
pinToRight: 'Épingler à droite',
|
64
65
|
resetColumnSize: 'Réinitialiser la taille de la colonne',
|
package/src/locales/hu.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_HU: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Nincs találat',
|
60
60
|
of: 'összesen',
|
61
61
|
or: 'vagy',
|
62
|
+
pin: 'Rögzítés',
|
62
63
|
pinToLeft: 'Rögzítés balra',
|
63
64
|
pinToRight: 'Rögzítés jobbra',
|
64
65
|
resetColumnSize: 'Oszlop méretének alaphelyzetbe állítása',
|
package/src/locales/hy.ts
CHANGED
package/src/locales/id.ts
CHANGED
@@ -60,6 +60,7 @@ export const MRT_Localization_ID: MRT_Localization = {
|
|
60
60
|
noResultsFound: 'Tidak ada hasil yang ditemukan',
|
61
61
|
of: 'dari',
|
62
62
|
or: 'atau',
|
63
|
+
pin: 'Sematkan',
|
63
64
|
pinToLeft: 'Sematkan ke kiri',
|
64
65
|
pinToRight: 'Sematkan ke kanan',
|
65
66
|
resetColumnSize: 'Reset ukuran kolom',
|
package/src/locales/it.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_IT: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Nessun risultato trovato',
|
60
60
|
of: 'di',
|
61
61
|
or: 'o',
|
62
|
+
pin: 'Blocca',
|
62
63
|
pinToLeft: 'Blocca a sinistra',
|
63
64
|
pinToRight: 'Blocca a destra',
|
64
65
|
resetColumnSize: 'Resetta dimensione colonna',
|
package/src/locales/ja.ts
CHANGED
package/src/locales/ko.ts
CHANGED
package/src/locales/nl.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_NL: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Geen resultaten gevonden',
|
60
60
|
of: 'van',
|
61
61
|
or: 'of',
|
62
|
+
pin: 'Vastzetten',
|
62
63
|
pinToLeft: 'Links vastzetten',
|
63
64
|
pinToRight: 'Rechts vastzetten',
|
64
65
|
resetColumnSize: 'Kolombreedte resetten',
|
package/src/locales/no.ts
CHANGED
package/src/locales/np.ts
CHANGED
@@ -42,7 +42,8 @@ export const MRT_Localization_NP: MRT_Localization = {
|
|
42
42
|
filterNotEquals: 'असमान',
|
43
43
|
filterStartsWith: 'सुरुमा समावेश गरिएको',
|
44
44
|
filterWeakEquals: 'असमान',
|
45
|
-
filteringByColumn:
|
45
|
+
filteringByColumn:
|
46
|
+
'{column} द्वारा फिल्टर गर्दै - {filterType} {filterValue}',
|
46
47
|
goToFirstPage: 'पहिलो पृष्ठमा जानुहोस्',
|
47
48
|
goToLastPage: 'अन्तिम पृष्ठमा जानुहोस्',
|
48
49
|
goToNextPage: 'अर्को पृष्ठमा जानुहोस्',
|
@@ -90,5 +91,5 @@ export const MRT_Localization_NP: MRT_Localization = {
|
|
90
91
|
toggleVisibility: 'दृश्यता परिवर्तन गर्नुहोस्',
|
91
92
|
ungroupByColumn: '{column} का आधारमा समूह हटाउनुहोस्',
|
92
93
|
unpin: 'अनपिन गर्नुहोस्',
|
93
|
-
unpinAll: 'सबै अनपिन गर्नुहोस्'
|
94
|
+
unpinAll: 'सबै अनपिन गर्नुहोस्',
|
94
95
|
};
|
package/src/locales/pl.ts
CHANGED
package/src/locales/pt-BR.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_PT_BR: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Nenhum resultado encontrado',
|
60
60
|
of: 'de',
|
61
61
|
or: 'ou',
|
62
|
+
pin: 'Fixar',
|
62
63
|
pinToLeft: 'Fixar à esquerda',
|
63
64
|
pinToRight: 'Fixar à direita',
|
64
65
|
resetColumnSize: 'Restaurar tamanho da coluna',
|
package/src/locales/pt.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_PT: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Nenhum resultado encontrado',
|
60
60
|
of: 'de',
|
61
61
|
or: 'ou',
|
62
|
+
pin: 'Fixar',
|
62
63
|
pinToLeft: 'Fixar à esquerda',
|
63
64
|
pinToRight: 'Fixar à direita',
|
64
65
|
resetColumnSize: 'Restaurar tamanho da coluna',
|
package/src/locales/ro.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_RO: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Niciun rezultat găsit',
|
60
60
|
of: 'din',
|
61
61
|
or: 'sau',
|
62
|
+
pin: 'Fixează',
|
62
63
|
pinToLeft: 'Fixează la stanga',
|
63
64
|
pinToRight: 'Fixează la dreapta',
|
64
65
|
resetColumnSize: 'Resetează dimensiune coloană',
|
package/src/locales/ru.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_RU: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Результатов не найдено',
|
60
60
|
of: 'из',
|
61
61
|
or: 'или',
|
62
|
+
pin: 'Прикрепить',
|
62
63
|
pinToLeft: 'Прикрепить слева',
|
63
64
|
pinToRight: 'Прикрепить справа',
|
64
65
|
resetColumnSize: 'Сбросить размер колонок',
|
package/src/locales/sk.ts
CHANGED
@@ -60,6 +60,7 @@ export const MRT_Localization_SK: MRT_Localization = {
|
|
60
60
|
noResultsFound: 'Nenájdené žiadne výsledky',
|
61
61
|
of: 'z',
|
62
62
|
or: 'alebo',
|
63
|
+
pin: 'Pripnúť',
|
63
64
|
pinToLeft: 'Pripnúť doľava',
|
64
65
|
pinToRight: 'Pripnúť doprava',
|
65
66
|
resetColumnSize: 'Resetovať šírku stĺpcov',
|
package/src/locales/sv.ts
CHANGED
@@ -44,11 +44,11 @@ export const MRT_Localization_SV: MRT_Localization = {
|
|
44
44
|
filterWeakEquals: 'Lika med',
|
45
45
|
filteringByColumn: 'Filtrering efter {column} - {filterType} {filterValue}',
|
46
46
|
goToFirstPage: 'Gå till första sidan',
|
47
|
-
goToLastPage: 'Gå till sista sidan
|
47
|
+
goToLastPage: 'Gå till sista sidan',
|
48
48
|
goToNextPage: 'Gå till nästa sida',
|
49
49
|
goToPreviousPage: 'Gå till föregående sida',
|
50
50
|
grab: 'Greppa',
|
51
|
-
groupByColumn: '
|
51
|
+
groupByColumn: 'Gruppera efter {column}',
|
52
52
|
groupedBy: 'Gruppera efter ',
|
53
53
|
hideAll: 'Göm alla',
|
54
54
|
hideColumn: 'Göm {column} kolumn',
|
@@ -59,6 +59,7 @@ export const MRT_Localization_SV: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Inga resultat funna',
|
60
60
|
of: 'av',
|
61
61
|
or: 'eller',
|
62
|
+
pin: 'Fäst',
|
62
63
|
pinToLeft: 'Fäst till vänster',
|
63
64
|
pinToRight: 'Fäst till höger',
|
64
65
|
resetColumnSize: 'Återställ kolumnstorlek',
|
package/src/locales/tr.ts
CHANGED
package/src/locales/uk.ts
CHANGED
package/src/locales/vi.ts
CHANGED
@@ -59,6 +59,7 @@ export const MRT_Localization_VI: MRT_Localization = {
|
|
59
59
|
noResultsFound: 'Không có kết quả nào được tìm thấy',
|
60
60
|
of: 'trên',
|
61
61
|
or: 'hoặc',
|
62
|
+
pin: 'Ghim',
|
62
63
|
pinToLeft: 'Ghim sang trái',
|
63
64
|
pinToRight: 'Ghim sang phải',
|
64
65
|
resetColumnSize: 'Đặt lại kích thước cột',
|
package/src/locales/zh-Hans.ts
CHANGED
package/src/locales/zh-Hant.ts
CHANGED
package/src/table/MRT_Table.tsx
CHANGED
@@ -2,12 +2,15 @@ import { useCallback, useMemo } from 'react';
|
|
2
2
|
import {
|
3
3
|
type Range,
|
4
4
|
type Virtualizer,
|
5
|
-
defaultRangeExtractor,
|
6
5
|
useVirtualizer,
|
7
6
|
} from '@tanstack/react-virtual';
|
8
7
|
import Table from '@mui/material/Table';
|
9
8
|
import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody';
|
10
|
-
import {
|
9
|
+
import {
|
10
|
+
extraIndexRangeExtractor,
|
11
|
+
parseCSSVarId,
|
12
|
+
parseFromValuesOrFunc,
|
13
|
+
} from '../column.utils';
|
11
14
|
import { MRT_TableFooter } from '../footer/MRT_TableFooter';
|
12
15
|
import { MRT_TableHead } from '../head/MRT_TableHead';
|
13
16
|
import { type MRT_TableInstance } from '../types';
|
@@ -43,6 +46,7 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
43
46
|
columnSizing,
|
44
47
|
columnSizingInfo,
|
45
48
|
columnVisibility,
|
49
|
+
draggingColumn,
|
46
50
|
isFullScreen,
|
47
51
|
} = getState();
|
48
52
|
|
@@ -93,6 +97,10 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
93
97
|
[columnPinning, enableColumnVirtualization, enableColumnPinning],
|
94
98
|
);
|
95
99
|
|
100
|
+
const draggingColumnIndex = table
|
101
|
+
.getVisibleLeafColumns()
|
102
|
+
.findIndex((c) => c.id === draggingColumn?.id);
|
103
|
+
|
96
104
|
const columnVirtualizer:
|
97
105
|
| Virtualizer<HTMLDivElement, HTMLTableCellElement>
|
98
106
|
| undefined = enableColumnVirtualization
|
@@ -103,14 +111,20 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
103
111
|
horizontal: true,
|
104
112
|
overscan: 3,
|
105
113
|
rangeExtractor: useCallback(
|
106
|
-
(range: Range) =>
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
+
(range: Range) => {
|
115
|
+
const newIndexs = extraIndexRangeExtractor(
|
116
|
+
range,
|
117
|
+
draggingColumnIndex,
|
118
|
+
);
|
119
|
+
return [
|
120
|
+
...new Set([
|
121
|
+
...leftPinnedIndexes,
|
122
|
+
...newIndexs,
|
123
|
+
...rightPinnedIndexes,
|
124
|
+
]),
|
125
|
+
];
|
126
|
+
},
|
127
|
+
[leftPinnedIndexes, rightPinnedIndexes, draggingColumnIndex],
|
114
128
|
),
|
115
129
|
...columnVirtualizerProps,
|
116
130
|
})
|