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.
Files changed (143) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/index.js +2408 -2334
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +1 -1
  5. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
  6. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +2 -2
  7. package/dist/cjs/types/column.utils.d.ts +6 -6
  8. package/dist/cjs/types/filterFns.d.ts +14 -14
  9. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  10. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  11. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  12. package/dist/cjs/types/icons.d.ts +1 -1
  13. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
  14. package/dist/cjs/types/locales/np.d.ts +2 -0
  15. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  16. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  17. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
  18. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +1 -1
  19. package/dist/cjs/types/types.d.ts +217 -197
  20. package/dist/esm/material-react-table.esm.js +2311 -2239
  21. package/dist/esm/material-react-table.esm.js.map +1 -1
  22. package/dist/esm/types/MaterialReactTable.d.ts +1 -1
  23. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
  24. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +2 -2
  25. package/dist/esm/types/column.utils.d.ts +6 -6
  26. package/dist/esm/types/filterFns.d.ts +14 -14
  27. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  28. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  29. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  30. package/dist/esm/types/icons.d.ts +1 -1
  31. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
  32. package/dist/esm/types/locales/np.d.ts +2 -0
  33. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  34. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  35. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
  36. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +1 -1
  37. package/dist/esm/types/types.d.ts +217 -197
  38. package/dist/index.d.ts +258 -238
  39. package/locales/fr.esm.js +1 -1
  40. package/locales/fr.esm.js.map +1 -1
  41. package/locales/fr.js +1 -1
  42. package/locales/fr.js.map +1 -1
  43. package/locales/np.d.ts +2 -0
  44. package/locales/np.esm.d.ts +2 -0
  45. package/locales/np.esm.js +94 -0
  46. package/locales/np.esm.js.map +1 -0
  47. package/locales/np.js +98 -0
  48. package/locales/np.js.map +1 -0
  49. package/locales/tr.d.ts +2 -0
  50. package/locales/tr.esm.d.ts +2 -0
  51. package/locales/tr.esm.js +93 -0
  52. package/locales/tr.esm.js.map +1 -0
  53. package/locales/tr.js +97 -0
  54. package/locales/tr.js.map +1 -0
  55. package/locales/uk.d.ts +2 -0
  56. package/locales/uk.esm.d.ts +2 -0
  57. package/locales/uk.esm.js +93 -0
  58. package/locales/uk.esm.js.map +1 -0
  59. package/locales/uk.js +97 -0
  60. package/locales/uk.js.map +1 -0
  61. package/locales/vi.d.ts +2 -0
  62. package/locales/vi.esm.d.ts +2 -0
  63. package/locales/vi.esm.js +93 -0
  64. package/locales/vi.esm.js.map +1 -0
  65. package/locales/vi.js +97 -0
  66. package/locales/vi.js.map +1 -0
  67. package/locales/zh-Hans.d.ts +2 -0
  68. package/locales/zh-Hans.esm.d.ts +2 -0
  69. package/locales/zh-Hans.esm.js +93 -0
  70. package/locales/zh-Hans.esm.js.map +1 -0
  71. package/locales/zh-Hans.js +97 -0
  72. package/locales/zh-Hans.js.map +1 -0
  73. package/locales/zh-Hant.d.ts +2 -0
  74. package/locales/zh-Hant.esm.d.ts +2 -0
  75. package/locales/zh-Hant.esm.js +93 -0
  76. package/locales/zh-Hant.esm.js.map +1 -0
  77. package/locales/zh-Hant.js +97 -0
  78. package/locales/zh-Hant.js.map +1 -0
  79. package/package.json +27 -26
  80. package/src/MaterialReactTable.tsx +2 -2
  81. package/src/body/MRT_TableBody.tsx +9 -9
  82. package/src/body/MRT_TableBodyCell.tsx +22 -22
  83. package/src/body/MRT_TableBodyCellValue.tsx +5 -5
  84. package/src/body/MRT_TableBodyRow.tsx +32 -32
  85. package/src/body/MRT_TableBodyRowGrabHandle.tsx +2 -2
  86. package/src/body/MRT_TableBodyRowPinButton.tsx +3 -3
  87. package/src/body/MRT_TableDetailPanel.tsx +3 -3
  88. package/src/buttons/MRT_CopyButton.tsx +1 -1
  89. package/src/buttons/MRT_EditActionButtons.tsx +4 -4
  90. package/src/buttons/MRT_ExpandAllButton.tsx +3 -3
  91. package/src/buttons/MRT_ExpandButton.tsx +1 -1
  92. package/src/buttons/MRT_GrabHandleButton.tsx +10 -10
  93. package/src/buttons/MRT_RowPinButton.tsx +5 -5
  94. package/src/buttons/MRT_ShowHideColumnsButton.tsx +1 -1
  95. package/src/buttons/MRT_ToggleFullScreenButton.tsx +2 -2
  96. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -8
  97. package/src/column.utils.ts +24 -22
  98. package/src/filterFns.ts +29 -29
  99. package/src/footer/MRT_TableFooter.tsx +9 -9
  100. package/src/footer/MRT_TableFooterCell.tsx +1 -1
  101. package/src/footer/MRT_TableFooterRow.tsx +2 -2
  102. package/src/head/MRT_TableHead.tsx +9 -9
  103. package/src/head/MRT_TableHeadCell.tsx +10 -6
  104. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +9 -6
  105. package/src/head/MRT_TableHeadCellFilterContainer.tsx +12 -5
  106. package/src/head/MRT_TableHeadCellFilterLabel.tsx +106 -61
  107. package/src/head/MRT_TableHeadCellGrabHandle.tsx +2 -2
  108. package/src/head/MRT_TableHeadCellResizeHandle.tsx +11 -11
  109. package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -8
  110. package/src/head/MRT_TableHeadRow.tsx +2 -2
  111. package/src/hooks/useMRT_DisplayColumns.tsx +5 -5
  112. package/src/hooks/useMRT_Effects.ts +3 -3
  113. package/src/hooks/useMRT_TableInstance.ts +15 -14
  114. package/src/hooks/useMRT_TableOptions.ts +3 -3
  115. package/src/icons.ts +2 -2
  116. package/src/inputs/MRT_EditCellTextField.tsx +9 -9
  117. package/src/inputs/MRT_FilterCheckbox.tsx +7 -7
  118. package/src/inputs/MRT_FilterRangeFields.tsx +1 -1
  119. package/src/inputs/MRT_FilterRangeSlider.tsx +6 -6
  120. package/src/inputs/MRT_FilterTextField.tsx +309 -230
  121. package/src/inputs/MRT_GlobalFilterTextField.tsx +26 -26
  122. package/src/inputs/MRT_SelectCheckbox.tsx +7 -7
  123. package/src/locales/fr.ts +1 -1
  124. package/src/locales/np.ts +94 -0
  125. package/src/menus/MRT_ColumnActionMenu.tsx +48 -45
  126. package/src/menus/MRT_FilterOptionMenu.tsx +36 -36
  127. package/src/menus/MRT_RowActionMenu.tsx +7 -7
  128. package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -6
  129. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +5 -5
  130. package/src/modals/MRT_EditRowModal.tsx +8 -8
  131. package/src/sortingFns.ts +1 -1
  132. package/src/table/MRT_Table.tsx +7 -7
  133. package/src/table/MRT_TableContainer.tsx +10 -10
  134. package/src/table/MRT_TablePaper.tsx +9 -9
  135. package/src/toolbar/MRT_BottomToolbar.tsx +5 -5
  136. package/src/toolbar/MRT_LinearProgressBar.tsx +4 -4
  137. package/src/toolbar/MRT_TablePagination.tsx +19 -19
  138. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +4 -4
  139. package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -6
  140. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -5
  141. package/src/toolbar/MRT_TopToolbar.tsx +7 -7
  142. package/src/types.ts +288 -257
  143. 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: { SearchIcon, CloseIcon },
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<null | HTMLElement>(null);
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
- muiSelectCheckboxProps,
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 'small' | 'medium',
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} de {rowCount} ligne(s) sélectionnée(s)',
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<null | HTMLElement>(null);
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
- <MenuItem
221
- disabled={showColumnFilters && !enableColumnFilterModes}
222
- divider={enableGrouping || enableHiding}
223
- key={4}
224
- onClick={
225
- showColumnFilters
226
- ? handleOpenFilterModeMenu
227
- : handleFilterByColumn
228
- }
229
- sx={commonMenuItemStyles}
230
- >
231
- <Box sx={commonListItemStyles}>
232
- <ListItemIcon>
233
- <FilterListIcon />
234
- </ListItemIcon>
235
- {localization.filterByColumn?.replace(
236
- '{column}',
237
- String(columnDef.header),
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
- </Box>
240
- {showFilterModeSubMenu && (
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 { globalFilterFn, density } = getState();
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
- ['fuzzy', 'contains', 'startsWith'].includes(filterOption.option),
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 === 'range' ||
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
- ({ option, label, divider, symbol }, index) => (
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
  );