material-react-table 3.0.1 → 3.0.2
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 +1 -1
- package/dist/index.esm.js +18 -10
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +18 -10
- package/dist/index.js.map +1 -1
- package/locales/sv/index.esm.js +6 -6
- package/locales/sv/index.js +6 -6
- package/package.json +33 -33
- package/src/components/body/MRT_TableBodyCell.tsx +1 -1
- package/src/components/footer/MRT_TableFooterCell.tsx +1 -1
- package/src/components/head/MRT_TableHeadCell.tsx +1 -2
- package/src/components/inputs/MRT_EditCellTextField.tsx +1 -1
- package/src/components/inputs/MRT_FilterTextField.tsx +13 -6
- package/src/components/inputs/MRT_GlobalFilterTextField.tsx +1 -1
- package/src/components/menus/MRT_RowActionMenu.tsx +1 -0
- package/src/locales/sv.ts +6 -6
- package/src/types.ts +1 -1
- package/src/utils/cell.utils.ts +1 -0
- package/src/utils/utils.ts +1 -1
package/locales/sv/index.esm.js
CHANGED
@@ -14,7 +14,7 @@ const MRT_Localization_SV = {
|
|
14
14
|
collapseAll: 'Stäng alla',
|
15
15
|
columnActions: 'Kolumnåtgärd',
|
16
16
|
copiedToClipboard: 'Kopierade till urklipp',
|
17
|
-
dropToGroupBy: 'Släpp för att
|
17
|
+
dropToGroupBy: 'Släpp för att gruppera efter {column}',
|
18
18
|
edit: 'Redigera',
|
19
19
|
expand: 'Expandera',
|
20
20
|
expandAll: 'Expandera alla',
|
@@ -38,7 +38,7 @@ const MRT_Localization_SV = {
|
|
38
38
|
filterLessThan: 'Mindre än',
|
39
39
|
filterLessThanOrEqualTo: 'Mindre än eller lika med',
|
40
40
|
filterMode: 'Filterläge: {filterType}',
|
41
|
-
filterNotEmpty: 'Inte
|
41
|
+
filterNotEmpty: 'Inte tom',
|
42
42
|
filterNotEquals: 'Inte lika med',
|
43
43
|
filterStartsWith: 'Börjar med',
|
44
44
|
filterWeakEquals: 'Lika med',
|
@@ -52,8 +52,8 @@ const MRT_Localization_SV = {
|
|
52
52
|
groupedBy: 'Gruppera efter ',
|
53
53
|
hideAll: 'Göm alla',
|
54
54
|
hideColumn: 'Göm {column} kolumn',
|
55
|
-
max: 'Max',
|
56
|
-
min: '
|
55
|
+
max: 'Max.',
|
56
|
+
min: 'Min.',
|
57
57
|
move: 'Flytta',
|
58
58
|
noRecordsToDisplay: 'Inget att visa',
|
59
59
|
noResultsFound: 'Inga resultat funna',
|
@@ -78,9 +78,9 @@ const MRT_Localization_SV = {
|
|
78
78
|
showHideFilters: 'Visa/Göm filter',
|
79
79
|
showHideSearch: 'Visa/Göm sök',
|
80
80
|
sortByColumnAsc: 'Sortera efter {column} stigande',
|
81
|
-
sortByColumnDesc: 'Sortera efter {column}
|
81
|
+
sortByColumnDesc: 'Sortera efter {column} fallande',
|
82
82
|
sortedByColumnAsc: 'Sorterat efter {column} stigande',
|
83
|
-
sortedByColumnDesc: 'Sorterat efter {column}
|
83
|
+
sortedByColumnDesc: 'Sorterat efter {column} fallande',
|
84
84
|
thenBy: ', sedan av ',
|
85
85
|
toggleDensity: 'Växla densitet',
|
86
86
|
toggleFullScreen: 'Växla helskärm',
|
package/locales/sv/index.js
CHANGED
@@ -18,7 +18,7 @@ const MRT_Localization_SV = {
|
|
18
18
|
collapseAll: 'Stäng alla',
|
19
19
|
columnActions: 'Kolumnåtgärd',
|
20
20
|
copiedToClipboard: 'Kopierade till urklipp',
|
21
|
-
dropToGroupBy: 'Släpp för att
|
21
|
+
dropToGroupBy: 'Släpp för att gruppera efter {column}',
|
22
22
|
edit: 'Redigera',
|
23
23
|
expand: 'Expandera',
|
24
24
|
expandAll: 'Expandera alla',
|
@@ -42,7 +42,7 @@ const MRT_Localization_SV = {
|
|
42
42
|
filterLessThan: 'Mindre än',
|
43
43
|
filterLessThanOrEqualTo: 'Mindre än eller lika med',
|
44
44
|
filterMode: 'Filterläge: {filterType}',
|
45
|
-
filterNotEmpty: 'Inte
|
45
|
+
filterNotEmpty: 'Inte tom',
|
46
46
|
filterNotEquals: 'Inte lika med',
|
47
47
|
filterStartsWith: 'Börjar med',
|
48
48
|
filterWeakEquals: 'Lika med',
|
@@ -56,8 +56,8 @@ const MRT_Localization_SV = {
|
|
56
56
|
groupedBy: 'Gruppera efter ',
|
57
57
|
hideAll: 'Göm alla',
|
58
58
|
hideColumn: 'Göm {column} kolumn',
|
59
|
-
max: 'Max',
|
60
|
-
min: '
|
59
|
+
max: 'Max.',
|
60
|
+
min: 'Min.',
|
61
61
|
move: 'Flytta',
|
62
62
|
noRecordsToDisplay: 'Inget att visa',
|
63
63
|
noResultsFound: 'Inga resultat funna',
|
@@ -82,9 +82,9 @@ const MRT_Localization_SV = {
|
|
82
82
|
showHideFilters: 'Visa/Göm filter',
|
83
83
|
showHideSearch: 'Visa/Göm sök',
|
84
84
|
sortByColumnAsc: 'Sortera efter {column} stigande',
|
85
|
-
sortByColumnDesc: 'Sortera efter {column}
|
85
|
+
sortByColumnDesc: 'Sortera efter {column} fallande',
|
86
86
|
sortedByColumnAsc: 'Sorterat efter {column} stigande',
|
87
|
-
sortedByColumnDesc: 'Sorterat efter {column}
|
87
|
+
sortedByColumnDesc: 'Sorterat efter {column} fallande',
|
88
88
|
thenBy: ', sedan av ',
|
89
89
|
toggleDensity: 'Växla densitet',
|
90
90
|
toggleFullScreen: 'Växla helskärm',
|
package/package.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"version": "3.0.
|
2
|
+
"version": "3.0.2",
|
3
3
|
"license": "MIT",
|
4
4
|
"name": "material-react-table",
|
5
5
|
"description": "A fully featured Material UI V6 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
|
@@ -62,47 +62,47 @@
|
|
62
62
|
"build-storybook": "storybook build"
|
63
63
|
},
|
64
64
|
"devDependencies": {
|
65
|
-
"@emotion/react": "^11.13.
|
66
|
-
"@emotion/styled": "^11.13.
|
67
|
-
"@faker-js/faker": "^
|
68
|
-
"@mui/icons-material": "^6.
|
69
|
-
"@mui/material": "^6.
|
70
|
-
"@mui/x-date-pickers": "^7.
|
65
|
+
"@emotion/react": "^11.13.5",
|
66
|
+
"@emotion/styled": "^11.13.5",
|
67
|
+
"@faker-js/faker": "^9.2.0",
|
68
|
+
"@mui/icons-material": "^6.1.9",
|
69
|
+
"@mui/material": "^6.1.9",
|
70
|
+
"@mui/x-date-pickers": "^7.23.0",
|
71
71
|
"@rollup/plugin-typescript": "^11.1.6",
|
72
|
-
"@size-limit/preset-small-lib": "^11.1.
|
73
|
-
"@storybook/addon-a11y": "^8.
|
74
|
-
"@storybook/addon-essentials": "^8.
|
75
|
-
"@storybook/addon-links": "^8.
|
76
|
-
"@storybook/addon-storysource": "^8.
|
77
|
-
"@storybook/blocks": "^8.
|
78
|
-
"@storybook/preview-api": "^8.
|
79
|
-
"@storybook/react": "^8.
|
80
|
-
"@storybook/react-vite": "^8.
|
81
|
-
"@types/node": "^22.
|
82
|
-
"@types/react": "^18.3.
|
83
|
-
"@types/react-dom": "^18.3.
|
84
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
85
|
-
"@typescript-eslint/parser": "^8.
|
86
|
-
"@vitejs/plugin-react": "^4.3.
|
87
|
-
"eslint": "^9.
|
72
|
+
"@size-limit/preset-small-lib": "^11.1.6",
|
73
|
+
"@storybook/addon-a11y": "^8.4.6",
|
74
|
+
"@storybook/addon-essentials": "^8.4.6",
|
75
|
+
"@storybook/addon-links": "^8.4.6",
|
76
|
+
"@storybook/addon-storysource": "^8.4.6",
|
77
|
+
"@storybook/blocks": "^8.4.6",
|
78
|
+
"@storybook/preview-api": "^8.4.6",
|
79
|
+
"@storybook/react": "^8.4.6",
|
80
|
+
"@storybook/react-vite": "^8.4.6",
|
81
|
+
"@types/node": "^22.10.1",
|
82
|
+
"@types/react": "^18.3.12",
|
83
|
+
"@types/react-dom": "^18.3.1",
|
84
|
+
"@typescript-eslint/eslint-plugin": "^8.16.0",
|
85
|
+
"@typescript-eslint/parser": "^8.16.0",
|
86
|
+
"@vitejs/plugin-react": "^4.3.4",
|
87
|
+
"eslint": "^9.16.0",
|
88
88
|
"eslint-plugin-mui-path-imports": "^0.0.15",
|
89
|
-
"eslint-plugin-perfectionist": "^
|
90
|
-
"eslint-plugin-storybook": "^0.
|
89
|
+
"eslint-plugin-perfectionist": "^4.1.2",
|
90
|
+
"eslint-plugin-storybook": "^0.11.1",
|
91
91
|
"prop-types": "^15.8.1",
|
92
92
|
"react": "^18.3.1",
|
93
93
|
"react-dom": "^18.3.1",
|
94
94
|
"react-is": "^18.3.1",
|
95
95
|
"rollup": "^2.79.1",
|
96
96
|
"rollup-plugin-copy": "^3.5.0",
|
97
|
-
"rollup-plugin-delete": "^2.
|
97
|
+
"rollup-plugin-delete": "^2.1.0",
|
98
98
|
"rollup-plugin-dts": "^6.1.1",
|
99
99
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
100
|
-
"size-limit": "^11.1.
|
101
|
-
"storybook": "^8.
|
100
|
+
"size-limit": "^11.1.6",
|
101
|
+
"storybook": "^8.4.6",
|
102
102
|
"storybook-dark-mode": "^4.0.2",
|
103
|
-
"tslib": "^2.
|
104
|
-
"typescript": "^5.
|
105
|
-
"vite": "^
|
103
|
+
"tslib": "^2.8.1",
|
104
|
+
"typescript": "^5.7.2",
|
105
|
+
"vite": "^6.0.1"
|
106
106
|
},
|
107
107
|
"peerDependencies": {
|
108
108
|
"@emotion/react": ">=11.13",
|
@@ -116,7 +116,7 @@
|
|
116
116
|
"dependencies": {
|
117
117
|
"@tanstack/match-sorter-utils": "8.19.4",
|
118
118
|
"@tanstack/react-table": "8.20.5",
|
119
|
-
"@tanstack/react-virtual": "3.10.
|
120
|
-
"highlight-words": "
|
119
|
+
"@tanstack/react-virtual": "3.10.9",
|
120
|
+
"highlight-words": "2.0.0"
|
121
121
|
}
|
122
122
|
}
|
@@ -233,13 +233,13 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
233
233
|
};
|
234
234
|
|
235
235
|
const handleKeyDown = (event: React.KeyboardEvent<HTMLTableCellElement>) => {
|
236
|
+
tableCellProps?.onKeyDown?.(event);
|
236
237
|
cellKeyboardShortcuts({
|
237
238
|
cell,
|
238
239
|
cellValue: cell.getValue<string>(),
|
239
240
|
event,
|
240
241
|
table,
|
241
242
|
});
|
242
|
-
tableCellProps?.onKeyDown?.(event);
|
243
243
|
};
|
244
244
|
|
245
245
|
return (
|
@@ -49,12 +49,12 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
49
49
|
};
|
50
50
|
|
51
51
|
const handleKeyDown = (event: React.KeyboardEvent<HTMLTableCellElement>) => {
|
52
|
+
tableCellProps?.onKeyDown?.(event);
|
52
53
|
cellKeyboardShortcuts({
|
53
54
|
event,
|
54
55
|
cellValue: footer.column.columnDef.footer,
|
55
56
|
table,
|
56
57
|
});
|
57
|
-
tableCellProps?.onKeyDown?.(event);
|
58
58
|
};
|
59
59
|
|
60
60
|
return (
|
@@ -150,14 +150,13 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
|
|
150
150
|
};
|
151
151
|
|
152
152
|
const handleKeyDown = (event: React.KeyboardEvent<HTMLTableCellElement>) => {
|
153
|
+
tableCellProps?.onKeyDown?.(event);
|
153
154
|
cellKeyboardShortcuts({
|
154
155
|
event,
|
155
156
|
cellValue: header.column.columnDef.header,
|
156
157
|
table,
|
157
158
|
header,
|
158
159
|
});
|
159
|
-
|
160
|
-
tableCellProps?.onKeyDown?.(event);
|
161
160
|
};
|
162
161
|
|
163
162
|
const HeaderElement =
|
@@ -155,7 +155,7 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
155
155
|
...textFieldProps.SelectProps,
|
156
156
|
}}
|
157
157
|
inputProps={{
|
158
|
-
autoComplete: '
|
158
|
+
autoComplete: 'off',
|
159
159
|
...textFieldProps.inputProps,
|
160
160
|
}}
|
161
161
|
onBlur={handleBlur}
|
@@ -185,7 +185,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
185
185
|
textFieldProps?.onChange?.(event);
|
186
186
|
};
|
187
187
|
|
188
|
-
const handleAutocompleteChange = (newValue: DropdownOption) => {
|
188
|
+
const handleAutocompleteChange = (newValue: DropdownOption | null) => {
|
189
189
|
setAutocompleteValue(newValue);
|
190
190
|
handleChange(getValueAndLabel(newValue).value);
|
191
191
|
};
|
@@ -316,7 +316,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
316
316
|
) : null,
|
317
317
|
inputProps: {
|
318
318
|
'aria-label': filterPlaceholder,
|
319
|
-
autoComplete: '
|
319
|
+
autoComplete: 'off',
|
320
320
|
disabled: !!filterChipLabel,
|
321
321
|
sx: {
|
322
322
|
textOverflow: 'ellipsis',
|
@@ -422,7 +422,8 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
422
422
|
getOptionLabel={(option: DropdownOption) =>
|
423
423
|
getValueAndLabel(option).label
|
424
424
|
}
|
425
|
-
|
425
|
+
// @ts-ignore
|
426
|
+
onChange={(_e, newValue: DropdownOption | null) =>
|
426
427
|
handleAutocompleteChange(newValue)
|
427
428
|
}
|
428
429
|
options={
|
@@ -458,11 +459,11 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
458
459
|
multiple: isMultiSelectFilter,
|
459
460
|
renderValue: isMultiSelectFilter
|
460
461
|
? (selected: any) =>
|
461
|
-
!selected
|
462
|
+
!Array.isArray(selected) || selected.length === 0 ? (
|
462
463
|
<Box sx={{ opacity: 0.5 }}>{filterPlaceholder}</Box>
|
463
464
|
) : (
|
464
465
|
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: '2px' }}>
|
465
|
-
{
|
466
|
+
{selected.map((value: string) => {
|
466
467
|
const selectedValue = dropdownOptions?.find(
|
467
468
|
(option) => getValueAndLabel(option).value === value,
|
468
469
|
);
|
@@ -480,7 +481,13 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
480
481
|
}}
|
481
482
|
onChange={handleTextFieldChange}
|
482
483
|
onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}
|
483
|
-
value={
|
484
|
+
value={
|
485
|
+
isMultiSelectFilter
|
486
|
+
? Array.isArray(filterValue)
|
487
|
+
? filterValue
|
488
|
+
: []
|
489
|
+
: ''
|
490
|
+
}
|
484
491
|
>
|
485
492
|
{(isSelectFilter || isMultiSelectFilter) && [
|
486
493
|
<MenuItem disabled divider hidden key="p" value="">
|
@@ -94,7 +94,7 @@ export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
|
|
94
94
|
>
|
95
95
|
<TextField
|
96
96
|
inputProps={{
|
97
|
-
autoComplete: '
|
97
|
+
autoComplete: 'off',
|
98
98
|
...textFieldProps.inputProps,
|
99
99
|
}}
|
100
100
|
onChange={handleChange}
|
@@ -45,6 +45,7 @@ export const MRT_RowActionMenu = <TData extends MRT_RowData>({
|
|
45
45
|
const editItem = parseFromValuesOrFunc(enableEditing, row) &&
|
46
46
|
['modal', 'row'].includes(editDisplayMode!) && (
|
47
47
|
<MRT_ActionMenuItem
|
48
|
+
key={'edit'}
|
48
49
|
icon={<EditIcon />}
|
49
50
|
label={localization.edit}
|
50
51
|
onClick={handleEdit}
|
package/src/locales/sv.ts
CHANGED
@@ -16,7 +16,7 @@ export const MRT_Localization_SV: MRT_Localization = {
|
|
16
16
|
collapseAll: 'Stäng alla',
|
17
17
|
columnActions: 'Kolumnåtgärd',
|
18
18
|
copiedToClipboard: 'Kopierade till urklipp',
|
19
|
-
dropToGroupBy: 'Släpp för att
|
19
|
+
dropToGroupBy: 'Släpp för att gruppera efter {column}',
|
20
20
|
edit: 'Redigera',
|
21
21
|
expand: 'Expandera',
|
22
22
|
expandAll: 'Expandera alla',
|
@@ -40,7 +40,7 @@ export const MRT_Localization_SV: MRT_Localization = {
|
|
40
40
|
filterLessThan: 'Mindre än',
|
41
41
|
filterLessThanOrEqualTo: 'Mindre än eller lika med',
|
42
42
|
filterMode: 'Filterläge: {filterType}',
|
43
|
-
filterNotEmpty: 'Inte
|
43
|
+
filterNotEmpty: 'Inte tom',
|
44
44
|
filterNotEquals: 'Inte lika med',
|
45
45
|
filterStartsWith: 'Börjar med',
|
46
46
|
filterWeakEquals: 'Lika med',
|
@@ -54,8 +54,8 @@ export const MRT_Localization_SV: MRT_Localization = {
|
|
54
54
|
groupedBy: 'Gruppera efter ',
|
55
55
|
hideAll: 'Göm alla',
|
56
56
|
hideColumn: 'Göm {column} kolumn',
|
57
|
-
max: 'Max',
|
58
|
-
min: '
|
57
|
+
max: 'Max.',
|
58
|
+
min: 'Min.',
|
59
59
|
move: 'Flytta',
|
60
60
|
noRecordsToDisplay: 'Inget att visa',
|
61
61
|
noResultsFound: 'Inga resultat funna',
|
@@ -81,9 +81,9 @@ export const MRT_Localization_SV: MRT_Localization = {
|
|
81
81
|
showHideFilters: 'Visa/Göm filter',
|
82
82
|
showHideSearch: 'Visa/Göm sök',
|
83
83
|
sortByColumnAsc: 'Sortera efter {column} stigande',
|
84
|
-
sortByColumnDesc: 'Sortera efter {column}
|
84
|
+
sortByColumnDesc: 'Sortera efter {column} fallande',
|
85
85
|
sortedByColumnAsc: 'Sorterat efter {column} stigande',
|
86
|
-
sortedByColumnDesc: 'Sorterat efter {column}
|
86
|
+
sortedByColumnDesc: 'Sorterat efter {column} fallande',
|
87
87
|
thenBy: ', sedan av ',
|
88
88
|
toggleDensity: 'Växla densitet',
|
89
89
|
toggleFullScreen: 'Växla helskärm',
|
package/src/types.ts
CHANGED
@@ -1196,7 +1196,7 @@ export interface MRT_TableOptions<TData extends MRT_RowData>
|
|
1196
1196
|
row: MRT_Row<TData>;
|
1197
1197
|
table: MRT_TableInstance<TData>;
|
1198
1198
|
values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
|
1199
|
-
}) => void;
|
1199
|
+
}) => Promise<void> | void;
|
1200
1200
|
onDensityChange?: OnChangeFn<MRT_DensityState>;
|
1201
1201
|
onDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;
|
1202
1202
|
onDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
|
package/src/utils/cell.utils.ts
CHANGED
@@ -81,6 +81,7 @@ export const cellKeyboardShortcuts = <TData extends MRT_RowData = MRT_RowData>({
|
|
81
81
|
table: MRT_TableInstance<TData>;
|
82
82
|
}) => {
|
83
83
|
if (!table.options.enableKeyboardShortcuts) return;
|
84
|
+
if (event.isPropagationStopped()) return;
|
84
85
|
const currentCell = event.currentTarget;
|
85
86
|
|
86
87
|
if (cellValue && isWinCtrlMacMeta(event) && event.key === 'c') {
|
package/src/utils/utils.ts
CHANGED
@@ -6,7 +6,7 @@ export const parseFromValuesOrFunc = <T, U>(
|
|
6
6
|
): T | undefined => (fn instanceof Function ? fn(arg) : fn);
|
7
7
|
|
8
8
|
export const getValueAndLabel = (
|
9
|
-
option?: DropdownOption,
|
9
|
+
option?: DropdownOption | null,
|
10
10
|
): { label: string; value: string } => {
|
11
11
|
let label: string = '';
|
12
12
|
let value: string = '';
|