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
@@ -12,9 +12,9 @@ import InputAdornment from '@mui/material/InputAdornment';
|
|
12
12
|
import TextField from '@mui/material/TextField';
|
13
13
|
import Tooltip from '@mui/material/Tooltip';
|
14
14
|
import { debounce } from '@mui/material/utils';
|
15
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
15
16
|
import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
|
16
17
|
import { type MRT_TableInstance } from '../types';
|
17
|
-
import { parseFromValuesOrFunc } from '../column.utils';
|
18
18
|
|
19
19
|
interface Props<TData extends Record<string, any>> {
|
20
20
|
table: MRT_TableInstance<TData>;
|
@@ -25,15 +25,15 @@ export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
|
|
25
25
|
}: Props<TData>) => {
|
26
26
|
const {
|
27
27
|
getState,
|
28
|
-
setGlobalFilter,
|
29
28
|
options: {
|
30
29
|
enableGlobalFilterModes,
|
31
|
-
icons: {
|
30
|
+
icons: { CloseIcon, SearchIcon },
|
32
31
|
localization,
|
33
32
|
manualFiltering,
|
34
33
|
muiSearchTextFieldProps,
|
35
34
|
},
|
36
35
|
refs: { searchInputRef },
|
36
|
+
setGlobalFilter,
|
37
37
|
} = table;
|
38
38
|
const { globalFilter, showGlobalFilter } = getState();
|
39
39
|
|
@@ -42,7 +42,7 @@ export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
|
|
42
42
|
});
|
43
43
|
|
44
44
|
const isMounted = useRef(false);
|
45
|
-
const [anchorEl, setAnchorEl] = useState<
|
45
|
+
const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
|
46
46
|
const [searchValue, setSearchValue] = useState(globalFilter ?? '');
|
47
47
|
|
48
48
|
const handleChangeDebounced = useCallback(
|
@@ -83,32 +83,12 @@ export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
|
|
83
83
|
return (
|
84
84
|
<Collapse
|
85
85
|
in={showGlobalFilter}
|
86
|
+
mountOnEnter
|
86
87
|
orientation="horizontal"
|
87
88
|
unmountOnExit
|
88
|
-
mountOnEnter
|
89
89
|
>
|
90
90
|
<TextField
|
91
|
-
placeholder={localization.search}
|
92
|
-
onChange={handleChange}
|
93
|
-
value={searchValue ?? ''}
|
94
|
-
variant="standard"
|
95
91
|
InputProps={{
|
96
|
-
startAdornment: enableGlobalFilterModes ? (
|
97
|
-
<InputAdornment position="start">
|
98
|
-
<Tooltip arrow title={localization.changeSearchMode}>
|
99
|
-
<IconButton
|
100
|
-
aria-label={localization.changeSearchMode}
|
101
|
-
onClick={handleGlobalFilterMenuOpen}
|
102
|
-
size="small"
|
103
|
-
sx={{ height: '1.75rem', width: '1.75rem' }}
|
104
|
-
>
|
105
|
-
<SearchIcon />
|
106
|
-
</IconButton>
|
107
|
-
</Tooltip>
|
108
|
-
</InputAdornment>
|
109
|
-
) : (
|
110
|
-
<SearchIcon style={{ marginRight: '4px' }} />
|
111
|
-
),
|
112
92
|
endAdornment: (
|
113
93
|
<InputAdornment position="end">
|
114
94
|
<Tooltip arrow title={localization.clearSearch ?? ''}>
|
@@ -125,7 +105,27 @@ export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
|
|
125
105
|
</Tooltip>
|
126
106
|
</InputAdornment>
|
127
107
|
),
|
108
|
+
startAdornment: enableGlobalFilterModes ? (
|
109
|
+
<InputAdornment position="start">
|
110
|
+
<Tooltip arrow title={localization.changeSearchMode}>
|
111
|
+
<IconButton
|
112
|
+
aria-label={localization.changeSearchMode}
|
113
|
+
onClick={handleGlobalFilterMenuOpen}
|
114
|
+
size="small"
|
115
|
+
sx={{ height: '1.75rem', width: '1.75rem' }}
|
116
|
+
>
|
117
|
+
<SearchIcon />
|
118
|
+
</IconButton>
|
119
|
+
</Tooltip>
|
120
|
+
</InputAdornment>
|
121
|
+
) : (
|
122
|
+
<SearchIcon style={{ marginRight: '4px' }} />
|
123
|
+
),
|
128
124
|
}}
|
125
|
+
onChange={handleChange}
|
126
|
+
placeholder={localization.search}
|
127
|
+
value={searchValue ?? ''}
|
128
|
+
variant="standard"
|
129
129
|
{...textFieldProps}
|
130
130
|
inputRef={(inputRef) => {
|
131
131
|
searchInputRef.current = inputRef;
|
@@ -136,9 +136,9 @@ export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
|
|
136
136
|
/>
|
137
137
|
<MRT_FilterOptionMenu
|
138
138
|
anchorEl={anchorEl}
|
139
|
+
onSelect={handleClear}
|
139
140
|
setAnchorEl={setAnchorEl}
|
140
141
|
table={table}
|
141
|
-
onSelect={handleClear}
|
142
142
|
/>
|
143
143
|
</Collapse>
|
144
144
|
);
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { type MouseEvent } from 'react';
|
2
2
|
import Checkbox, { type CheckboxProps } from '@mui/material/Checkbox';
|
3
|
-
import Tooltip from '@mui/material/Tooltip';
|
4
3
|
import Radio, { type RadioProps } from '@mui/material/Radio';
|
4
|
+
import Tooltip from '@mui/material/Tooltip';
|
5
5
|
import { type Theme } from '@mui/material/styles';
|
6
|
-
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
7
6
|
import { parseFromValuesOrFunc } from '../column.utils';
|
7
|
+
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
8
8
|
|
9
9
|
interface Props<TData extends Record<string, any>> {
|
10
10
|
row?: MRT_Row<TData>;
|
@@ -20,12 +20,12 @@ export const MRT_SelectCheckbox = <TData extends Record<string, any>>({
|
|
20
20
|
const {
|
21
21
|
getState,
|
22
22
|
options: {
|
23
|
-
localization,
|
24
23
|
enableMultiRowSelection,
|
25
|
-
rowPinningDisplayMode,
|
26
24
|
enableRowPinning,
|
27
|
-
|
25
|
+
localization,
|
28
26
|
muiSelectAllCheckboxProps,
|
27
|
+
muiSelectCheckboxProps,
|
28
|
+
rowPinningDisplayMode,
|
29
29
|
selectAllMode,
|
30
30
|
},
|
31
31
|
} = table;
|
@@ -70,7 +70,7 @@ export const MRT_SelectCheckbox = <TData extends Record<string, any>>({
|
|
70
70
|
}
|
71
71
|
}
|
72
72
|
},
|
73
|
-
size: (density === 'compact' ? 'small' : 'medium') as '
|
73
|
+
size: (density === 'compact' ? 'small' : 'medium') as 'medium' | 'small',
|
74
74
|
...checkboxProps,
|
75
75
|
onClick: (e: MouseEvent<HTMLButtonElement>) => {
|
76
76
|
e.stopPropagation();
|
@@ -78,8 +78,8 @@ export const MRT_SelectCheckbox = <TData extends Record<string, any>>({
|
|
78
78
|
},
|
79
79
|
sx: (theme: Theme) => ({
|
80
80
|
height: density === 'compact' ? '1.75rem' : '2.5rem',
|
81
|
-
width: density === 'compact' ? '1.75rem' : '2.5rem',
|
82
81
|
m: density !== 'compact' ? '-0.4rem' : undefined,
|
82
|
+
width: density === 'compact' ? '1.75rem' : '2.5rem',
|
83
83
|
zIndex: 0,
|
84
84
|
...parseFromValuesOrFunc(checkboxProps?.sx, theme),
|
85
85
|
}),
|
package/src/locales/fr.ts
CHANGED
@@ -70,7 +70,7 @@ export const MRT_Localization_FR: MRT_Localization = {
|
|
70
70
|
save: 'Sauvegarder',
|
71
71
|
search: 'Rechercher',
|
72
72
|
selectedCountOfRowCountRowsSelected:
|
73
|
-
'{selectedCount}
|
73
|
+
'{selectedCount} sur {rowCount} ligne(s)',
|
74
74
|
select: 'Sélectionner',
|
75
75
|
showAll: 'Afficher tous',
|
76
76
|
showAllColumns: 'Afficher toutes les colonnes',
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import { type MRT_Localization } from '..';
|
2
|
+
|
3
|
+
export const MRT_Localization_NP: MRT_Localization = {
|
4
|
+
actions: 'कार्यहरू',
|
5
|
+
and: 'तथा',
|
6
|
+
cancel: 'रद्द गर्नुहोस्',
|
7
|
+
changeFilterMode: 'फिल्टर प्रणाली परिवर्तन गर्नुहोस्',
|
8
|
+
changeSearchMode: 'खोज प्रणाली परिवर्तन गर्नुहोस्',
|
9
|
+
clearFilter: 'फिल्टर हटाउनुहोस्',
|
10
|
+
clearSearch: 'खोजिएको शब्द मेट्नुहोस्',
|
11
|
+
clearSort: 'क्रम हटाउनुहोस्',
|
12
|
+
clickToCopy: 'प्रतिलिपि बनाउन क्लिक गर्नुहोस्',
|
13
|
+
collapse: 'संकुचित गर्नुहोस्',
|
14
|
+
collapseAll: 'सबै संकुचित गर्नुहोस्',
|
15
|
+
columnActions: 'यस स्तम्भका कार्यहरू',
|
16
|
+
copiedToClipboard: 'क्लिपबोर्डमा प्रतिलिपि गरियो',
|
17
|
+
dropToGroupBy: '{column} का आधारमा समूह बनाउनुहोस्',
|
18
|
+
edit: 'सम्पादन गर्नुहोस्',
|
19
|
+
expand: 'विस्तार गर्नुहोस्',
|
20
|
+
expandAll: 'सबै विस्तार गर्नुहोस्',
|
21
|
+
filterArrIncludes: 'समावेश भएको',
|
22
|
+
filterArrIncludesAll: 'सबै समावेश भएको',
|
23
|
+
filterArrIncludesSome: 'केही समावेश भएको',
|
24
|
+
filterBetween: 'बीचको',
|
25
|
+
filterBetweenInclusive: 'बीचमा समावेश गरिएको',
|
26
|
+
filterByColumn: '{column} का आधारमा फिल्टर गर्नुहोस्',
|
27
|
+
filterContains: 'समावेश गरिएको',
|
28
|
+
filterEmpty: 'खाली भएको',
|
29
|
+
filterEndsWith: 'अन्तमा समावेश गरिएको',
|
30
|
+
filterEquals: 'समान',
|
31
|
+
filterEqualsString: 'समान',
|
32
|
+
filterFuzzy: 'अस्पष्ट',
|
33
|
+
filterGreaterThan: 'ठुलो भएको',
|
34
|
+
filterGreaterThanOrEqualTo: 'ठुलो वा समान',
|
35
|
+
filterInNumberRange: 'संख्या दायरामा',
|
36
|
+
filterIncludesString: 'समावेश गरिएको',
|
37
|
+
filterIncludesStringSensitive: 'समावेश गरिएको (संवेदनशील)',
|
38
|
+
filterLessThan: 'सानो भएको',
|
39
|
+
filterLessThanOrEqualTo: 'सानो वा समान',
|
40
|
+
filterMode: 'फिल्टर प्रणाली: {filterType}',
|
41
|
+
filterNotEmpty: 'खाली नभएको',
|
42
|
+
filterNotEquals: 'असमान',
|
43
|
+
filterStartsWith: 'सुरुमा समावेश गरिएको',
|
44
|
+
filterWeakEquals: 'असमान',
|
45
|
+
filteringByColumn: '{column} द्वारा फिल्टर गर्दै - {filterType} {filterValue}',
|
46
|
+
goToFirstPage: 'पहिलो पृष्ठमा जानुहोस्',
|
47
|
+
goToLastPage: 'अन्तिम पृष्ठमा जानुहोस्',
|
48
|
+
goToNextPage: 'अर्को पृष्ठमा जानुहोस्',
|
49
|
+
goToPreviousPage: 'अघिल्लो पृष्ठमा जानुहोस्',
|
50
|
+
grab: 'ग्र्याब गर्नुहोस',
|
51
|
+
groupByColumn: '{column} का आधारमा समूह बनाउनुहोस्',
|
52
|
+
groupedBy: 'समूह बनाईएको आधार',
|
53
|
+
hideAll: 'सबै लुकाउनुहोस्',
|
54
|
+
hideColumn: '{column} स्तम्भ लुकाउनुहोस्',
|
55
|
+
max: 'अधिकतम',
|
56
|
+
min: 'न्यूनतम',
|
57
|
+
move: 'सार्नुहोस्',
|
58
|
+
noRecordsToDisplay: 'केही रेकर्ड छैन',
|
59
|
+
noResultsFound: 'कुनै परिणाम फेला परेन',
|
60
|
+
of: ', कुल संख्या: ',
|
61
|
+
or: 'वा',
|
62
|
+
pin: 'पिन गर्नुहोस्',
|
63
|
+
pinToLeft: 'बायाँतर्फ पिन गर्नुहोस्',
|
64
|
+
pinToRight: 'दायाँतर्फ पिन गर्नुहोस्',
|
65
|
+
resetColumnSize: 'स्तम्भ आकार रिसेट गर्नुहोस्',
|
66
|
+
resetOrder: 'क्रम रिसेट गर्नुहोस्',
|
67
|
+
rowActions: 'पंक्तिका कार्यहरू',
|
68
|
+
rowNumber: 'क्र.सं.',
|
69
|
+
rowNumbers: 'क्रमाङ्क',
|
70
|
+
rowsPerPage: 'प्रति पृष्ठ',
|
71
|
+
save: 'सुरक्षित गर्नुहोस्',
|
72
|
+
search: 'खोज्नुहोस्',
|
73
|
+
selectedCountOfRowCountRowsSelected:
|
74
|
+
'{rowCount} पंक्ति(हरू)बाट {selectedCount} चयनित',
|
75
|
+
select: 'चयन गर्नुहोस्',
|
76
|
+
showAll: 'सबै देखाउनुहोस्',
|
77
|
+
showAllColumns: 'सबै स्तम्भ देखाउनुहोस्',
|
78
|
+
showHideColumns: 'स्तम्भ देखाउनुहोस्/लुकाउनुहोस्',
|
79
|
+
showHideFilters: 'फिल्टर देखाउनुहोस्/लुकाउनुहोस्',
|
80
|
+
showHideSearch: 'खोज-क्षेत्र देखाउनुहोस्/लुकाउनुहोस्',
|
81
|
+
sortByColumnAsc: '{column}का आधारमा बढ्दो क्रममा क्रमबद्ध गर्नुहोस्',
|
82
|
+
sortByColumnDesc: '{column}का आधारमा घट्दो क्रममा क्रमबद्ध गर्नुहोस्',
|
83
|
+
sortedByColumnAsc: '{column}का आधारमा बढ्दो क्रममा क्रमबद्ध गरिएको',
|
84
|
+
sortedByColumnDesc: '{column}का आधारमा घट्दो क्रममा क्रमबद्ध गरिएको',
|
85
|
+
thenBy: ', त्यसपछि ',
|
86
|
+
toggleDensity: 'घनत्व परिवर्तन गर्नुहोस्',
|
87
|
+
toggleFullScreen: 'पूर्ण स्क्रिनमा लग्नुहोस्/हटाउनुहोस्',
|
88
|
+
toggleSelectAll: 'सबै चयन गर्नुहोस्/हटाउनुहोस्',
|
89
|
+
toggleSelectRow: 'पंक्ति चयन गर्नुहोस्/हटाउनुहोस्',
|
90
|
+
toggleVisibility: 'दृश्यता परिवर्तन गर्नुहोस्',
|
91
|
+
ungroupByColumn: '{column} का आधारमा समूह हटाउनुहोस्',
|
92
|
+
unpin: 'अनपिन गर्नुहोस्',
|
93
|
+
unpinAll: 'सबै अनपिन गर्नुहोस्'
|
94
|
+
};
|
@@ -9,15 +9,15 @@ import { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';
|
|
9
9
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
10
10
|
|
11
11
|
export const commonMenuItemStyles = {
|
12
|
-
py: '6px',
|
13
|
-
my: 0,
|
14
|
-
justifyContent: 'space-between',
|
15
12
|
alignItems: 'center',
|
13
|
+
justifyContent: 'space-between',
|
14
|
+
my: 0,
|
15
|
+
py: '6px',
|
16
16
|
};
|
17
17
|
|
18
18
|
export const commonListItemStyles = {
|
19
|
-
display: 'flex',
|
20
19
|
alignItems: 'center',
|
20
|
+
display: 'flex',
|
21
21
|
};
|
22
22
|
|
23
23
|
interface Props<TData extends Record<string, any>> {
|
@@ -35,36 +35,37 @@ export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
|
|
35
35
|
}: Props<TData>) => {
|
36
36
|
const {
|
37
37
|
getState,
|
38
|
-
toggleAllColumnsVisible,
|
39
|
-
setColumnOrder,
|
40
38
|
options: {
|
39
|
+
columnFilterDisplayMode,
|
41
40
|
columnFilterModeOptions,
|
42
41
|
enableColumnFilterModes,
|
43
42
|
enableColumnFilters,
|
43
|
+
enableColumnPinning,
|
44
44
|
enableColumnResizing,
|
45
45
|
enableGrouping,
|
46
46
|
enableHiding,
|
47
|
-
enableColumnPinning,
|
48
47
|
enableSorting,
|
49
48
|
enableSortingRemoval,
|
50
49
|
icons: {
|
51
50
|
ArrowRightIcon,
|
52
51
|
ClearAllIcon,
|
53
|
-
ViewColumnIcon,
|
54
52
|
DynamicFeedIcon,
|
55
53
|
FilterListIcon,
|
56
54
|
FilterListOffIcon,
|
57
55
|
PushPinIcon,
|
58
|
-
SortIcon,
|
59
56
|
RestartAltIcon,
|
57
|
+
SortIcon,
|
58
|
+
ViewColumnIcon,
|
60
59
|
VisibilityOffIcon,
|
61
60
|
},
|
62
61
|
localization,
|
63
62
|
renderColumnActionsMenuItems,
|
64
63
|
},
|
65
64
|
refs: { filterInputRefs },
|
65
|
+
setColumnOrder,
|
66
66
|
setColumnSizingInfo,
|
67
67
|
setShowColumnFilters,
|
68
|
+
toggleAllColumnsVisible,
|
68
69
|
} = table;
|
69
70
|
const { column } = header;
|
70
71
|
const { columnDef } = column;
|
@@ -73,7 +74,7 @@ export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
|
|
73
74
|
const columnFilterValue = column.getFilterValue();
|
74
75
|
|
75
76
|
const [filterMenuAnchorEl, setFilterMenuAnchorEl] =
|
76
|
-
useState<
|
77
|
+
useState<HTMLElement | null>(null);
|
77
78
|
|
78
79
|
const handleClearSort = () => {
|
79
80
|
column.clearSorting();
|
@@ -180,9 +181,9 @@ export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
|
|
180
181
|
</Box>
|
181
182
|
</MenuItem>,
|
182
183
|
<MenuItem
|
184
|
+
disabled={column.getIsSorted() === 'desc'}
|
183
185
|
divider={enableColumnFilters || enableGrouping || enableHiding}
|
184
186
|
key={2}
|
185
|
-
disabled={column.getIsSorted() === 'desc'}
|
186
187
|
onClick={handleSortDesc}
|
187
188
|
sx={commonMenuItemStyles}
|
188
189
|
>
|
@@ -217,37 +218,39 @@ export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
|
|
217
218
|
{localization.clearFilter}
|
218
219
|
</Box>
|
219
220
|
</MenuItem>,
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
<
|
233
|
-
<
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
221
|
+
columnFilterDisplayMode === 'subheader' && (
|
222
|
+
<MenuItem
|
223
|
+
disabled={showColumnFilters && !enableColumnFilterModes}
|
224
|
+
divider={enableGrouping || enableHiding}
|
225
|
+
key={4}
|
226
|
+
onClick={
|
227
|
+
showColumnFilters
|
228
|
+
? handleOpenFilterModeMenu
|
229
|
+
: handleFilterByColumn
|
230
|
+
}
|
231
|
+
sx={commonMenuItemStyles}
|
232
|
+
>
|
233
|
+
<Box sx={commonListItemStyles}>
|
234
|
+
<ListItemIcon>
|
235
|
+
<FilterListIcon />
|
236
|
+
</ListItemIcon>
|
237
|
+
{localization.filterByColumn?.replace(
|
238
|
+
'{column}',
|
239
|
+
String(columnDef.header),
|
240
|
+
)}
|
241
|
+
</Box>
|
242
|
+
{showFilterModeSubMenu && (
|
243
|
+
<IconButton
|
244
|
+
onClick={handleOpenFilterModeMenu}
|
245
|
+
onMouseEnter={handleOpenFilterModeMenu}
|
246
|
+
size="small"
|
247
|
+
sx={{ p: 0 }}
|
248
|
+
>
|
249
|
+
<ArrowRightIcon />
|
250
|
+
</IconButton>
|
238
251
|
)}
|
239
|
-
</
|
240
|
-
|
241
|
-
<IconButton
|
242
|
-
onClick={handleOpenFilterModeMenu}
|
243
|
-
onMouseEnter={handleOpenFilterModeMenu}
|
244
|
-
size="small"
|
245
|
-
sx={{ p: 0 }}
|
246
|
-
>
|
247
|
-
<ArrowRightIcon />
|
248
|
-
</IconButton>
|
249
|
-
)}
|
250
|
-
</MenuItem>,
|
252
|
+
</MenuItem>
|
253
|
+
),
|
251
254
|
showFilterModeSubMenu && (
|
252
255
|
<MRT_FilterOptionMenu
|
253
256
|
anchorEl={filterMenuAnchorEl}
|
@@ -258,7 +261,7 @@ export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
|
|
258
261
|
table={table}
|
259
262
|
/>
|
260
263
|
),
|
261
|
-
]
|
264
|
+
].filter(Boolean)
|
262
265
|
: []),
|
263
266
|
...(enableGrouping && column.getCanGroup()
|
264
267
|
? [
|
@@ -383,12 +386,12 @@ export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
|
|
383
386
|
|
384
387
|
return (
|
385
388
|
<Menu
|
386
|
-
anchorEl={anchorEl}
|
387
|
-
open={!!anchorEl}
|
388
|
-
onClose={() => setAnchorEl(null)}
|
389
389
|
MenuListProps={{
|
390
390
|
dense: density === 'compact',
|
391
391
|
}}
|
392
|
+
anchorEl={anchorEl}
|
393
|
+
onClose={() => setAnchorEl(null)}
|
394
|
+
open={!!anchorEl}
|
392
395
|
>
|
393
396
|
{columnDef.renderColumnActionsMenuItems?.({
|
394
397
|
closeMenu: () => setAnchorEl(null),
|
@@ -14,88 +14,88 @@ export const mrtFilterOptions = (
|
|
14
14
|
localization: MRT_Localization,
|
15
15
|
): MRT_InternalFilterOption[] => [
|
16
16
|
{
|
17
|
+
divider: false,
|
18
|
+
label: localization.filterFuzzy,
|
17
19
|
option: 'fuzzy',
|
18
20
|
symbol: '≈',
|
19
|
-
label: localization.filterFuzzy,
|
20
|
-
divider: false,
|
21
21
|
},
|
22
22
|
{
|
23
|
+
divider: false,
|
24
|
+
label: localization.filterContains,
|
23
25
|
option: 'contains',
|
24
26
|
symbol: '*',
|
25
|
-
label: localization.filterContains,
|
26
|
-
divider: false,
|
27
27
|
},
|
28
28
|
{
|
29
|
+
divider: false,
|
30
|
+
label: localization.filterStartsWith,
|
29
31
|
option: 'startsWith',
|
30
32
|
symbol: 'a',
|
31
|
-
label: localization.filterStartsWith,
|
32
|
-
divider: false,
|
33
33
|
},
|
34
34
|
{
|
35
|
+
divider: true,
|
36
|
+
label: localization.filterEndsWith,
|
35
37
|
option: 'endsWith',
|
36
38
|
symbol: 'z',
|
37
|
-
label: localization.filterEndsWith,
|
38
|
-
divider: true,
|
39
39
|
},
|
40
40
|
{
|
41
|
+
divider: false,
|
42
|
+
label: localization.filterEquals,
|
41
43
|
option: 'equals',
|
42
44
|
symbol: '=',
|
43
|
-
label: localization.filterEquals,
|
44
|
-
divider: false,
|
45
45
|
},
|
46
46
|
{
|
47
|
+
divider: true,
|
48
|
+
label: localization.filterNotEquals,
|
47
49
|
option: 'notEquals',
|
48
50
|
symbol: '≠',
|
49
|
-
label: localization.filterNotEquals,
|
50
|
-
divider: true,
|
51
51
|
},
|
52
52
|
{
|
53
|
+
divider: false,
|
54
|
+
label: localization.filterBetween,
|
53
55
|
option: 'between',
|
54
56
|
symbol: '⇿',
|
55
|
-
label: localization.filterBetween,
|
56
|
-
divider: false,
|
57
57
|
},
|
58
58
|
{
|
59
|
+
divider: true,
|
60
|
+
label: localization.filterBetweenInclusive,
|
59
61
|
option: 'betweenInclusive',
|
60
62
|
symbol: '⬌',
|
61
|
-
label: localization.filterBetweenInclusive,
|
62
|
-
divider: true,
|
63
63
|
},
|
64
64
|
{
|
65
|
+
divider: false,
|
66
|
+
label: localization.filterGreaterThan,
|
65
67
|
option: 'greaterThan',
|
66
68
|
symbol: '>',
|
67
|
-
label: localization.filterGreaterThan,
|
68
|
-
divider: false,
|
69
69
|
},
|
70
70
|
{
|
71
|
+
divider: false,
|
72
|
+
label: localization.filterGreaterThanOrEqualTo,
|
71
73
|
option: 'greaterThanOrEqualTo',
|
72
74
|
symbol: '≥',
|
73
|
-
label: localization.filterGreaterThanOrEqualTo,
|
74
|
-
divider: false,
|
75
75
|
},
|
76
76
|
{
|
77
|
+
divider: false,
|
78
|
+
label: localization.filterLessThan,
|
77
79
|
option: 'lessThan',
|
78
80
|
symbol: '<',
|
79
|
-
label: localization.filterLessThan,
|
80
|
-
divider: false,
|
81
81
|
},
|
82
82
|
{
|
83
|
+
divider: true,
|
84
|
+
label: localization.filterLessThanOrEqualTo,
|
83
85
|
option: 'lessThanOrEqualTo',
|
84
86
|
symbol: '≤',
|
85
|
-
label: localization.filterLessThanOrEqualTo,
|
86
|
-
divider: true,
|
87
87
|
},
|
88
88
|
{
|
89
|
+
divider: false,
|
90
|
+
label: localization.filterEmpty,
|
89
91
|
option: 'empty',
|
90
92
|
symbol: '∅',
|
91
|
-
label: localization.filterEmpty,
|
92
|
-
divider: false,
|
93
93
|
},
|
94
94
|
{
|
95
|
+
divider: false,
|
96
|
+
label: localization.filterNotEmpty,
|
95
97
|
option: 'notEmpty',
|
96
98
|
symbol: '!∅',
|
97
|
-
label: localization.filterNotEmpty,
|
98
|
-
divider: false,
|
99
99
|
},
|
100
100
|
];
|
101
101
|
|
@@ -133,7 +133,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
133
133
|
setColumnFilterFns,
|
134
134
|
setGlobalFilterFn,
|
135
135
|
} = table;
|
136
|
-
const {
|
136
|
+
const { density, globalFilterFn } = getState();
|
137
137
|
const { column } = header ?? {};
|
138
138
|
const { columnDef } = column ?? {};
|
139
139
|
const currentFilterValue = column?.getFilterValue();
|
@@ -156,7 +156,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
156
156
|
allowedColumnFilterOptions?.includes(filterOption.option)
|
157
157
|
: (!globalFilterModeOptions ||
|
158
158
|
globalFilterModeOptions.includes(filterOption.option)) &&
|
159
|
-
['
|
159
|
+
['contains', 'fuzzy', 'startsWith'].includes(filterOption.option),
|
160
160
|
),
|
161
161
|
[],
|
162
162
|
);
|
@@ -199,7 +199,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
199
199
|
column.setFilterValue(currentFilterValue); // perform new filter render
|
200
200
|
}
|
201
201
|
} else if (
|
202
|
-
columnDef?.filterVariant
|
202
|
+
columnDef?.filterVariant?.includes('range') ||
|
203
203
|
rangeModes.includes(option as MRT_FilterOption)
|
204
204
|
) {
|
205
205
|
// will now be range filter mode
|
@@ -232,13 +232,13 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
232
232
|
|
233
233
|
return (
|
234
234
|
<Menu
|
235
|
-
anchorEl={anchorEl}
|
236
|
-
anchorOrigin={{ vertical: 'center', horizontal: 'right' }}
|
237
|
-
onClose={() => setAnchorEl(null)}
|
238
|
-
open={!!anchorEl}
|
239
235
|
MenuListProps={{
|
240
236
|
dense: density === 'compact',
|
241
237
|
}}
|
238
|
+
anchorEl={anchorEl}
|
239
|
+
anchorOrigin={{ horizontal: 'right', vertical: 'center' }}
|
240
|
+
onClose={() => setAnchorEl(null)}
|
241
|
+
open={!!anchorEl}
|
242
242
|
>
|
243
243
|
{(header && column && columnDef
|
244
244
|
? columnDef.renderColumnFilterModeMenuItems?.({
|
@@ -259,7 +259,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
259
259
|
table,
|
260
260
|
})) ??
|
261
261
|
internalFilterOptions.map(
|
262
|
-
({
|
262
|
+
({ divider, label, option, symbol }, index) => (
|
263
263
|
<MenuItem
|
264
264
|
divider={divider}
|
265
265
|
key={index}
|
@@ -7,8 +7,8 @@ import {
|
|
7
7
|
commonListItemStyles,
|
8
8
|
commonMenuItemStyles,
|
9
9
|
} from './MRT_ColumnActionMenu';
|
10
|
-
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
11
10
|
import { parseFromValuesOrFunc } from '../column.utils';
|
11
|
+
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
12
12
|
|
13
13
|
interface Props<TData extends Record<string, any>> {
|
14
14
|
anchorEl: HTMLElement | null;
|
@@ -28,8 +28,8 @@ export const MRT_RowActionMenu = <TData extends Record<string, any>>({
|
|
28
28
|
const {
|
29
29
|
getState,
|
30
30
|
options: {
|
31
|
-
icons: { EditIcon },
|
32
31
|
enableEditing,
|
32
|
+
icons: { EditIcon },
|
33
33
|
localization,
|
34
34
|
renderRowActionMenuItems,
|
35
35
|
},
|
@@ -38,13 +38,13 @@ export const MRT_RowActionMenu = <TData extends Record<string, any>>({
|
|
38
38
|
|
39
39
|
return (
|
40
40
|
<Menu
|
41
|
-
anchorEl={anchorEl}
|
42
|
-
open={!!anchorEl}
|
43
|
-
onClick={(event) => event.stopPropagation()}
|
44
|
-
onClose={() => setAnchorEl(null)}
|
45
41
|
MenuListProps={{
|
46
42
|
dense: density === 'compact',
|
47
43
|
}}
|
44
|
+
anchorEl={anchorEl}
|
45
|
+
onClick={(event) => event.stopPropagation()}
|
46
|
+
onClose={() => setAnchorEl(null)}
|
47
|
+
open={!!anchorEl}
|
48
48
|
>
|
49
49
|
{parseFromValuesOrFunc(enableEditing, row) && (
|
50
50
|
<MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>
|
@@ -57,9 +57,9 @@ export const MRT_RowActionMenu = <TData extends Record<string, any>>({
|
|
57
57
|
</MenuItem>
|
58
58
|
)}
|
59
59
|
{renderRowActionMenuItems?.({
|
60
|
+
closeMenu: () => setAnchorEl(null),
|
60
61
|
row,
|
61
62
|
table,
|
62
|
-
closeMenu: () => setAnchorEl(null),
|
63
63
|
})}
|
64
64
|
</Menu>
|
65
65
|
);
|