@mui/x-data-grid 6.4.0 → 6.5.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.
Files changed (267) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/DataGrid/useDataGridProps.js +5 -12
  3. package/colDef/gridNumericOperators.js +0 -6
  4. package/components/cell/GridEditInputCell.js +4 -1
  5. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
  6. package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  7. package/components/panel/filterPanel/GridFilterInputDate.d.ts +8 -1
  8. package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  9. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +8 -1
  10. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  11. package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
  12. package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  13. package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
  14. package/components/panel/filterPanel/GridFilterPanel.js +1 -1
  15. package/components/panel/filterPanel/index.d.ts +3 -1
  16. package/components/panel/filterPanel/index.js +2 -1
  17. package/constants/localeTextConstants.js +26 -0
  18. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +9 -2
  19. package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  20. package/hooks/features/dimensions/useGridDimensions.js +2 -2
  21. package/hooks/features/editing/useGridEditing.js +0 -3
  22. package/hooks/features/focus/gridFocusState.d.ts +2 -0
  23. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  24. package/hooks/features/focus/gridFocusStateSelector.js +6 -0
  25. package/hooks/features/focus/useGridFocus.js +55 -9
  26. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
  27. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  28. package/hooks/features/headerFiltering/index.d.ts +1 -0
  29. package/hooks/features/headerFiltering/index.js +1 -0
  30. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
  31. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
  32. package/hooks/features/index.d.ts +1 -0
  33. package/hooks/features/index.js +2 -1
  34. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  35. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  36. package/hooks/features/rows/useGridRows.js +16 -1
  37. package/index.js +1 -1
  38. package/internals/index.d.ts +6 -1
  39. package/internals/index.js +4 -0
  40. package/internals/utils/index.d.ts +1 -0
  41. package/internals/utils/index.js +2 -1
  42. package/internals/utils/useProps.d.ts +8 -0
  43. package/internals/utils/useProps.js +13 -0
  44. package/legacy/DataGrid/useDataGridProps.js +8 -8
  45. package/legacy/colDef/gridNumericOperators.js +0 -6
  46. package/legacy/components/cell/GridEditInputCell.js +4 -1
  47. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
  48. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
  49. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +54 -31
  50. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
  51. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
  52. package/legacy/components/panel/filterPanel/index.js +2 -1
  53. package/legacy/constants/localeTextConstants.js +26 -0
  54. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  55. package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -2
  56. package/legacy/hooks/features/editing/useGridEditing.js +0 -3
  57. package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
  58. package/legacy/hooks/features/focus/useGridFocus.js +58 -9
  59. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
  60. package/legacy/hooks/features/headerFiltering/index.js +1 -0
  61. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
  62. package/legacy/hooks/features/index.js +2 -1
  63. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  64. package/legacy/hooks/features/rows/useGridRows.js +16 -1
  65. package/legacy/index.js +1 -1
  66. package/legacy/internals/index.js +4 -0
  67. package/legacy/internals/utils/index.js +2 -1
  68. package/legacy/internals/utils/useProps.js +11 -0
  69. package/legacy/locales/arSD.js +28 -0
  70. package/legacy/locales/beBY.js +28 -0
  71. package/legacy/locales/bgBG.js +28 -0
  72. package/legacy/locales/csCZ.js +36 -8
  73. package/legacy/locales/daDK.js +28 -0
  74. package/legacy/locales/deDE.js +28 -0
  75. package/legacy/locales/elGR.js +27 -0
  76. package/legacy/locales/esES.js +28 -0
  77. package/legacy/locales/faIR.js +28 -0
  78. package/legacy/locales/fiFI.js +28 -0
  79. package/legacy/locales/frFR.js +28 -0
  80. package/legacy/locales/heIL.js +30 -2
  81. package/legacy/locales/huHU.js +28 -0
  82. package/legacy/locales/itIT.js +28 -0
  83. package/legacy/locales/jaJP.js +28 -0
  84. package/legacy/locales/koKR.js +28 -0
  85. package/legacy/locales/nbNO.js +28 -0
  86. package/legacy/locales/nlNL.js +28 -0
  87. package/legacy/locales/plPL.js +28 -0
  88. package/legacy/locales/ptBR.js +28 -0
  89. package/legacy/locales/roRO.js +28 -0
  90. package/legacy/locales/ruRU.js +28 -0
  91. package/legacy/locales/skSK.js +28 -0
  92. package/legacy/locales/svSE.js +28 -0
  93. package/legacy/locales/trTR.js +28 -0
  94. package/legacy/locales/ukUA.js +28 -0
  95. package/legacy/locales/urPK.js +28 -0
  96. package/legacy/locales/viVN.js +27 -0
  97. package/legacy/locales/zhCN.js +28 -0
  98. package/legacy/locales/zhTW.js +28 -0
  99. package/legacy/material/index.js +2 -0
  100. package/legacy/models/api/gridHeaderFilteringApi.js +1 -0
  101. package/legacy/models/gridHeaderFilteringModel.js +1 -0
  102. package/legacy/models/index.js +0 -1
  103. package/locales/arSD.js +28 -0
  104. package/locales/beBY.js +28 -0
  105. package/locales/bgBG.js +28 -0
  106. package/locales/csCZ.js +36 -8
  107. package/locales/daDK.js +28 -0
  108. package/locales/deDE.js +28 -0
  109. package/locales/elGR.js +27 -0
  110. package/locales/esES.js +28 -0
  111. package/locales/faIR.js +28 -0
  112. package/locales/fiFI.js +28 -0
  113. package/locales/frFR.js +28 -0
  114. package/locales/heIL.js +30 -2
  115. package/locales/huHU.js +28 -0
  116. package/locales/itIT.js +28 -0
  117. package/locales/jaJP.js +28 -0
  118. package/locales/koKR.js +28 -0
  119. package/locales/nbNO.js +28 -0
  120. package/locales/nlNL.js +28 -0
  121. package/locales/plPL.js +28 -0
  122. package/locales/ptBR.js +28 -0
  123. package/locales/roRO.js +28 -0
  124. package/locales/ruRU.js +28 -0
  125. package/locales/skSK.js +28 -0
  126. package/locales/svSE.js +28 -0
  127. package/locales/trTR.js +28 -0
  128. package/locales/ukUA.js +28 -0
  129. package/locales/urPK.js +28 -0
  130. package/locales/viVN.js +27 -0
  131. package/locales/zhCN.js +28 -0
  132. package/locales/zhTW.js +28 -0
  133. package/material/index.d.ts +3 -66
  134. package/material/index.js +2 -0
  135. package/models/api/gridApiCommon.d.ts +3 -2
  136. package/models/api/gridCoreApi.d.ts +4 -0
  137. package/models/api/gridFocusApi.d.ts +6 -0
  138. package/models/api/gridHeaderFilteringApi.d.ts +30 -0
  139. package/models/api/gridHeaderFilteringApi.js +1 -0
  140. package/models/api/gridLocaleTextApi.d.ts +25 -0
  141. package/models/events/gridEventLookup.d.ts +27 -1
  142. package/models/gridFilterOperator.d.ts +4 -0
  143. package/models/gridHeaderFilteringModel.d.ts +5 -0
  144. package/models/gridHeaderFilteringModel.js +1 -0
  145. package/models/gridSlotsComponent.d.ts +16 -4
  146. package/models/gridStateCommunity.d.ts +2 -0
  147. package/models/index.d.ts +1 -1
  148. package/models/index.js +0 -1
  149. package/modern/DataGrid/useDataGridProps.js +5 -12
  150. package/modern/colDef/gridNumericOperators.js +0 -6
  151. package/modern/components/cell/GridEditInputCell.js +4 -1
  152. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  153. package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  154. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  155. package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  156. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
  157. package/modern/components/panel/filterPanel/index.js +2 -1
  158. package/modern/constants/localeTextConstants.js +26 -0
  159. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  160. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
  161. package/modern/hooks/features/editing/useGridEditing.js +0 -3
  162. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
  163. package/modern/hooks/features/focus/useGridFocus.js +55 -9
  164. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  165. package/modern/hooks/features/headerFiltering/index.js +1 -0
  166. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
  167. package/modern/hooks/features/index.js +2 -1
  168. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  169. package/modern/hooks/features/rows/useGridRows.js +16 -1
  170. package/modern/index.js +1 -1
  171. package/modern/internals/index.js +4 -0
  172. package/modern/internals/utils/index.js +2 -1
  173. package/modern/internals/utils/useProps.js +13 -0
  174. package/modern/locales/arSD.js +28 -0
  175. package/modern/locales/beBY.js +28 -0
  176. package/modern/locales/bgBG.js +28 -0
  177. package/modern/locales/csCZ.js +36 -8
  178. package/modern/locales/daDK.js +28 -0
  179. package/modern/locales/deDE.js +28 -0
  180. package/modern/locales/elGR.js +27 -0
  181. package/modern/locales/esES.js +28 -0
  182. package/modern/locales/faIR.js +28 -0
  183. package/modern/locales/fiFI.js +28 -0
  184. package/modern/locales/frFR.js +28 -0
  185. package/modern/locales/heIL.js +30 -2
  186. package/modern/locales/huHU.js +28 -0
  187. package/modern/locales/itIT.js +28 -0
  188. package/modern/locales/jaJP.js +28 -0
  189. package/modern/locales/koKR.js +28 -0
  190. package/modern/locales/nbNO.js +28 -0
  191. package/modern/locales/nlNL.js +28 -0
  192. package/modern/locales/plPL.js +28 -0
  193. package/modern/locales/ptBR.js +28 -0
  194. package/modern/locales/roRO.js +28 -0
  195. package/modern/locales/ruRU.js +28 -0
  196. package/modern/locales/skSK.js +28 -0
  197. package/modern/locales/svSE.js +28 -0
  198. package/modern/locales/trTR.js +28 -0
  199. package/modern/locales/ukUA.js +28 -0
  200. package/modern/locales/urPK.js +28 -0
  201. package/modern/locales/viVN.js +27 -0
  202. package/modern/locales/zhCN.js +28 -0
  203. package/modern/locales/zhTW.js +28 -0
  204. package/modern/material/index.js +2 -0
  205. package/modern/models/api/gridHeaderFilteringApi.js +1 -0
  206. package/modern/models/gridHeaderFilteringModel.js +1 -0
  207. package/modern/models/index.js +0 -1
  208. package/node/DataGrid/useDataGridProps.js +4 -11
  209. package/node/colDef/gridNumericOperators.js +0 -6
  210. package/node/components/cell/GridEditInputCell.js +4 -1
  211. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
  212. package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  213. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  214. package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  215. package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
  216. package/node/components/panel/filterPanel/index.js +26 -8
  217. package/node/constants/localeTextConstants.js +26 -0
  218. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  219. package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
  220. package/node/hooks/features/editing/useGridEditing.js +0 -3
  221. package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
  222. package/node/hooks/features/focus/useGridFocus.js +55 -9
  223. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
  224. package/node/hooks/features/headerFiltering/index.js +16 -0
  225. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
  226. package/node/hooks/features/index.js +11 -0
  227. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  228. package/node/hooks/features/rows/useGridRows.js +16 -1
  229. package/node/index.js +1 -1
  230. package/node/internals/index.js +46 -0
  231. package/node/internals/utils/index.js +11 -0
  232. package/node/internals/utils/useProps.js +22 -0
  233. package/node/locales/arSD.js +28 -0
  234. package/node/locales/beBY.js +28 -0
  235. package/node/locales/bgBG.js +28 -0
  236. package/node/locales/csCZ.js +36 -8
  237. package/node/locales/daDK.js +28 -0
  238. package/node/locales/deDE.js +28 -0
  239. package/node/locales/elGR.js +27 -0
  240. package/node/locales/esES.js +28 -0
  241. package/node/locales/faIR.js +28 -0
  242. package/node/locales/fiFI.js +28 -0
  243. package/node/locales/frFR.js +28 -0
  244. package/node/locales/heIL.js +30 -2
  245. package/node/locales/huHU.js +28 -0
  246. package/node/locales/itIT.js +28 -0
  247. package/node/locales/jaJP.js +28 -0
  248. package/node/locales/koKR.js +28 -0
  249. package/node/locales/nbNO.js +28 -0
  250. package/node/locales/nlNL.js +28 -0
  251. package/node/locales/plPL.js +28 -0
  252. package/node/locales/ptBR.js +28 -0
  253. package/node/locales/roRO.js +28 -0
  254. package/node/locales/ruRU.js +28 -0
  255. package/node/locales/skSK.js +28 -0
  256. package/node/locales/svSE.js +28 -0
  257. package/node/locales/trTR.js +28 -0
  258. package/node/locales/ukUA.js +28 -0
  259. package/node/locales/urPK.js +28 -0
  260. package/node/locales/viVN.js +27 -0
  261. package/node/locales/zhCN.js +28 -0
  262. package/node/locales/zhTW.js +28 -0
  263. package/node/material/index.js +2 -0
  264. package/node/models/api/gridHeaderFilteringApi.js +5 -0
  265. package/node/models/gridHeaderFilteringModel.js +5 -0
  266. package/node/models/index.js +0 -11
  267. package/package.json +1 -1
@@ -14,6 +14,7 @@ import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
14
14
  import { unstable_gridFocusColumnGroupHeaderSelector } from '../focus';
15
15
  import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
16
16
  import { useGridSelector } from '../../utils/useGridSelector';
17
+ import { unstable_gridHeaderFilteringEditFieldSelector, unstable_gridHeaderFilteringMenuSelector } from '../headerFiltering/gridHeaderFilteringSelectors';
17
18
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
18
19
  function enrichPageRowsWithPinnedRows(apiRef, rows) {
19
20
  const pinnedRows = gridPinnedRowsSelector(apiRef) || {};
@@ -68,6 +69,9 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
68
69
  const initialCurrentPageRows = useGridVisibleRows(apiRef, props).rows;
69
70
  const theme = useTheme();
70
71
  const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);
72
+ const headerFilteringEnabled =
73
+ // @ts-expect-error // TODO move relevant code to the `DataGridPro`
74
+ props.signature !== 'DataGrid' && props.unstable_headerFilters;
71
75
 
72
76
  /**
73
77
  * @param {number} colIndex Index of the column to focus
@@ -104,6 +108,14 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
104
108
  const field = apiRef.current.getVisibleColumns()[colIndex].field;
105
109
  apiRef.current.setColumnHeaderFocus(field, event);
106
110
  }, [apiRef, logger]);
111
+ const goToHeaderFilter = React.useCallback((colIndex, event) => {
112
+ logger.debug(`Navigating to header filter col ${colIndex}`);
113
+ apiRef.current.scrollToIndexes({
114
+ colIndex
115
+ });
116
+ const field = apiRef.current.getVisibleColumns()[colIndex].field;
117
+ apiRef.current.setColumnHeaderFilterFocus(field, event);
118
+ }, [apiRef, logger]);
107
119
  const goToGroupHeader = React.useCallback((colIndex, depth, event) => {
108
120
  logger.debug(`Navigating to header col ${colIndex}`);
109
121
  apiRef.current.scrollToIndexes({
@@ -115,7 +127,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
115
127
  apiRef.current.setColumnGroupHeaderFocus(field, depth, event);
116
128
  }, [apiRef, logger]);
117
129
  const getRowIdFromIndex = React.useCallback(rowIndex => {
118
- return currentPageRows[rowIndex].id;
130
+ return currentPageRows?.[rowIndex].id;
119
131
  }, [currentPageRows]);
120
132
  const handleColumnHeaderKeyDown = React.useCallback((params, event) => {
121
133
  const headerTitleNode = event.currentTarget.querySelector(`.${gridClasses.columnHeaderTitleContainerContent}`);
@@ -141,7 +153,11 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
141
153
  case 'ArrowDown':
142
154
  {
143
155
  if (firstRowIndexInPage !== null) {
144
- goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
156
+ if (headerFilteringEnabled) {
157
+ goToHeaderFilter(colIndexBefore, event);
158
+ } else {
159
+ goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
160
+ }
145
161
  }
146
162
  break;
147
163
  }
@@ -215,7 +231,97 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
215
231
  if (shouldPreventDefault) {
216
232
  event.preventDefault();
217
233
  }
218
- }, [apiRef, currentPageRows.length, theme.direction, goToCell, getRowIdFromIndex, goToHeader, goToGroupHeader]);
234
+ }, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, theme.direction, goToHeader, goToGroupHeader]);
235
+ const handleHeaderFilterKeyDown = React.useCallback((params, event) => {
236
+ const dimensions = apiRef.current.getRootDimensions();
237
+ if (!dimensions) {
238
+ return;
239
+ }
240
+ const isEditing = unstable_gridHeaderFilteringEditFieldSelector(apiRef) === params.field;
241
+ const isHeaderMenuOpen = unstable_gridHeaderFilteringMenuSelector(apiRef) === params.field;
242
+ if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {
243
+ return;
244
+ }
245
+ const viewportPageSize = apiRef.current.getViewportPageSize();
246
+ const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
247
+ const firstRowIndexInPage = 0;
248
+ const lastRowIndexInPage = currentPageRows.length - 1;
249
+ const firstColIndex = 0;
250
+ const lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;
251
+ let shouldPreventDefault = true;
252
+ switch (event.key) {
253
+ case 'ArrowDown':
254
+ {
255
+ const rowId = getRowIdFromIndex(firstRowIndexInPage);
256
+ if (firstRowIndexInPage !== null && rowId != null) {
257
+ goToCell(colIndexBefore, rowId);
258
+ }
259
+ break;
260
+ }
261
+ case 'ArrowRight':
262
+ {
263
+ const rightColIndex = getRightColumnIndex({
264
+ currentColIndex: colIndexBefore,
265
+ firstColIndex,
266
+ lastColIndex,
267
+ direction: theme.direction
268
+ });
269
+ if (rightColIndex !== null) {
270
+ goToHeaderFilter(rightColIndex, event);
271
+ }
272
+ break;
273
+ }
274
+ case 'ArrowLeft':
275
+ {
276
+ const leftColIndex = getLeftColumnIndex({
277
+ currentColIndex: colIndexBefore,
278
+ firstColIndex,
279
+ lastColIndex,
280
+ direction: theme.direction
281
+ });
282
+ if (leftColIndex !== null) {
283
+ goToHeaderFilter(leftColIndex, event);
284
+ } else {
285
+ apiRef.current.setColumnHeaderFilterFocus(params.field, event);
286
+ }
287
+ break;
288
+ }
289
+ case 'ArrowUp':
290
+ {
291
+ goToHeader(colIndexBefore, event);
292
+ break;
293
+ }
294
+ case 'PageDown':
295
+ {
296
+ if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {
297
+ goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));
298
+ }
299
+ break;
300
+ }
301
+ case 'Home':
302
+ {
303
+ goToHeaderFilter(firstColIndex, event);
304
+ break;
305
+ }
306
+ case 'End':
307
+ {
308
+ goToHeaderFilter(lastColIndex, event);
309
+ break;
310
+ }
311
+ case ' ':
312
+ {
313
+ // prevent Space event from scrolling
314
+ break;
315
+ }
316
+ default:
317
+ {
318
+ shouldPreventDefault = false;
319
+ }
320
+ }
321
+ if (shouldPreventDefault) {
322
+ event.preventDefault();
323
+ }
324
+ }, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
219
325
  const focusedColumnGroup = useGridSelector(apiRef, unstable_gridFocusColumnGroupHeaderSelector);
220
326
  const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {
221
327
  const dimensions = apiRef.current.getRootDimensions();
@@ -350,6 +456,8 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
350
456
  {
351
457
  if (rowIndexBefore > firstRowIndexInPage) {
352
458
  goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore - 1));
459
+ } else if (headerFilteringEnabled) {
460
+ goToHeaderFilter(colIndexBefore, event);
353
461
  } else {
354
462
  goToHeader(colIndexBefore, event);
355
463
  }
@@ -450,7 +558,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
450
558
  if (shouldPreventDefault) {
451
559
  event.preventDefault();
452
560
  }
453
- }, [apiRef, currentPageRows, theme.direction, getRowIdFromIndex, goToCell, goToHeader]);
561
+ }, [apiRef, currentPageRows, theme.direction, goToCell, getRowIdFromIndex, headerFilteringEnabled, goToHeaderFilter, goToHeader]);
454
562
  const checkIfCanStartEditing = React.useCallback((initialValue, {
455
563
  event
456
564
  }) => {
@@ -462,6 +570,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
462
570
  }, []);
463
571
  useGridRegisterPipeProcessor(apiRef, 'canStartEditing', checkIfCanStartEditing);
464
572
  useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
573
+ useGridApiEventHandler(apiRef, 'headerFilterKeyDown', handleHeaderFilterKeyDown);
465
574
  useGridApiEventHandler(apiRef, 'columnGroupHeaderKeyDown', handleColumnGroupHeaderKeyDown);
466
575
  useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
467
576
  };
@@ -115,8 +115,23 @@ export const useGridRows = (apiRef, props) => {
115
115
  if (props.signature === GridSignature.DataGrid && updates.length > 1) {
116
116
  throw new Error(["MUI: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
117
117
  }
118
+ const nonPinnedRowsUpdates = [];
119
+ updates.forEach(update => {
120
+ const id = getRowIdFromRowModel(update, props.getRowId, 'A row was provided without id when calling updateRows():');
121
+ const rowNode = apiRef.current.getRowNode(id);
122
+ if (rowNode?.type === 'pinnedRow') {
123
+ // @ts-ignore because otherwise `release:build` doesn't work
124
+ const pinnedRowsCache = apiRef.current.caches.pinnedRows;
125
+ const prevModel = pinnedRowsCache.idLookup[id];
126
+ if (prevModel) {
127
+ pinnedRowsCache.idLookup[id] = _extends({}, prevModel, update);
128
+ }
129
+ } else {
130
+ nonPinnedRowsUpdates.push(update);
131
+ }
132
+ });
118
133
  const cache = updateCacheWithNewRows({
119
- updates,
134
+ updates: nonPinnedRowsUpdates,
120
135
  getRowId: props.getRowId,
121
136
  previousCache: apiRef.current.caches.rows
122
137
  });
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.4.0
2
+ * @mui/x-data-grid v6.5.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -4,13 +4,16 @@ export { GridVirtualScrollerRenderZone } from '../components/virtualization/Grid
4
4
  export { GridBaseColumnHeaders } from '../components/columnHeaders/GridBaseColumnHeaders';
5
5
  export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
6
6
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
7
+ export { getGridFilter } from '../components/panel/filterPanel/GridFilterPanel';
7
8
  export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
8
9
  export { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../hooks/core/strategyProcessing';
9
10
  export { useGridInitialization } from '../hooks/core/useGridInitialization';
10
11
  export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
11
12
  export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
13
+ export { unstable_gridHeaderFilteringEditFieldSelector, unstable_gridHeaderFilteringMenuSelector } from '../hooks/features/headerFiltering/gridHeaderFilteringSelectors';
12
14
  export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
13
15
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
16
+ export { getTotalHeaderHeight } from '../hooks/features/columns/gridColumnsUtils';
14
17
  export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
15
18
  export { useGridColumnGrouping, columnGroupsStateInitializer } from '../hooks/features/columnGrouping/useGridColumnGrouping';
16
19
  export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
@@ -32,6 +35,7 @@ export { useGridRowsMeta, rowsMetaStateInitializer } from '../hooks/features/row
32
35
  export { useGridParamsApi } from '../hooks/features/rows/useGridParamsApi';
33
36
  export { getRowIdFromRowModel } from '../hooks/features/rows/gridRowsUtils';
34
37
  export { gridAdditionalRowGroupsSelector, gridPinnedRowsSelector } from '../hooks/features/rows/gridRowsSelector';
38
+ export { headerFilteringStateInitializer, useGridHeaderFiltering } from '../hooks/features/headerFiltering/useGridHeaderFiltering';
35
39
  export { calculatePinnedRowsHeight } from '../hooks/features/rows/gridRowsUtils';
36
40
  export { useGridRowSelection, rowSelectionStateInitializer } from '../hooks/features/rowSelection/useGridRowSelection';
37
41
  export { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection/useGridRowSelectionPreProcessors';
@@ -1,2 +1,3 @@
1
1
  export * from './computeSlots';
2
- export * from './slotsMigration';
2
+ export * from './slotsMigration';
3
+ export * from './useProps';
@@ -0,0 +1,13 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["components", "componentsProps"];
3
+ import * as React from 'react';
4
+ export function useProps(allProps) {
5
+ return React.useMemo(() => {
6
+ const {
7
+ components,
8
+ componentsProps
9
+ } = allProps,
10
+ themedProps = _objectWithoutPropertiesLoose(allProps, _excluded);
11
+ return [components, componentsProps, themedProps];
12
+ }, [allProps]);
13
+ }
@@ -60,6 +60,34 @@ const arSDGrid = {
60
60
  filterOperatorIsEmpty: 'خالي',
61
61
  filterOperatorIsNotEmpty: 'غير خالي',
62
62
  filterOperatorIsAnyOf: 'أي من',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'أي',
65
93
  filterValueTrue: 'صائب',
@@ -74,6 +74,34 @@ const beBYGrid = {
74
74
  filterOperatorIsEmpty: 'пусты',
75
75
  filterOperatorIsNotEmpty: 'не пусты',
76
76
  filterOperatorIsAnyOf: 'усякі з',
77
+ // filterOperator=: '=',
78
+ // filterOperator!=: '!=',
79
+ // filterOperator>: '>',
80
+ // filterOperator>=: '>=',
81
+ // filterOperator<: '<',
82
+ // filterOperator<=: '<=',
83
+
84
+ // Header filter operators text
85
+ // headerFilterOperatorContains: 'Contains',
86
+ // headerFilterOperatorEquals: 'Equals',
87
+ // headerFilterOperatorStartsWith: 'Starts with',
88
+ // headerFilterOperatorEndsWith: 'Ends with',
89
+ // headerFilterOperatorIs: 'Is',
90
+ // headerFilterOperatorNot: 'Is not',
91
+ // headerFilterOperatorAfter: 'Is after',
92
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
93
+ // headerFilterOperatorBefore: 'Is before',
94
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
95
+ // headerFilterOperatorIsEmpty: 'Is empty',
96
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
97
+ // headerFilterOperatorIsAnyOf: 'Is any of',
98
+ // headerFilterOperator=: 'Equals',
99
+ // headerFilterOperator!=: 'Not equals',
100
+ // headerFilterOperator>: 'Is greater than',
101
+ // headerFilterOperator>=: 'Is greater than or equal to',
102
+ // headerFilterOperator<: 'Is less than',
103
+ // headerFilterOperator<=: 'Is less than or equal to',
104
+
77
105
  // Filter values text
78
106
  filterValueAny: 'усякі',
79
107
  filterValueTrue: 'праўда',
@@ -60,6 +60,34 @@ const bgBGGrid = {
60
60
  filterOperatorIsEmpty: 'е празен',
61
61
  filterOperatorIsNotEmpty: 'не е празен',
62
62
  filterOperatorIsAnyOf: 'е някой от',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'всякакви',
65
93
  filterValueTrue: 'вярно',
@@ -3,10 +3,10 @@ import { getGridLocalization } from '../utils/getGridLocalization';
3
3
  const csCZGrid = {
4
4
  // Root
5
5
  noRowsLabel: 'Žádné záznamy',
6
- noResultsOverlayLabel: 'Nenašli se žadné výsledky.',
6
+ noResultsOverlayLabel: 'Nenašly se žadné výsledky.',
7
7
  // Density selector toolbar button text
8
- toolbarDensity: 'Hustota',
9
- toolbarDensityLabel: 'Hustota',
8
+ toolbarDensity: 'Zobrazení',
9
+ toolbarDensityLabel: 'Zobrazení',
10
10
  toolbarDensityCompact: 'Kompaktní',
11
11
  toolbarDensityStandard: 'Standartní',
12
12
  toolbarDensityComfortable: 'Komfortní',
@@ -28,8 +28,8 @@ const csCZGrid = {
28
28
  return `${count} ${pluralForm}`;
29
29
  },
30
30
  // Quick filter toolbar field
31
- toolbarQuickFilterPlaceholder: 'Vyhledávat…',
32
- toolbarQuickFilterLabel: 'Vyhledat',
31
+ toolbarQuickFilterPlaceholder: 'Hledat…',
32
+ toolbarQuickFilterLabel: 'Hledat',
33
33
  toolbarQuickFilterDeleteIconLabel: 'Vymazat',
34
34
  // Export selector toolbar button text
35
35
  toolbarExport: 'Export',
@@ -57,17 +57,45 @@ const csCZGrid = {
57
57
  // Filter operators text
58
58
  filterOperatorContains: 'obsahuje',
59
59
  filterOperatorEquals: 'rovná se',
60
- filterOperatorStartsWith: 'začíná s',
60
+ filterOperatorStartsWith: 'začíná na',
61
61
  filterOperatorEndsWith: 'končí na',
62
62
  filterOperatorIs: 'je',
63
63
  filterOperatorNot: 'není',
64
64
  filterOperatorAfter: 'je po',
65
- filterOperatorOnOrAfter: 'je na nebo po',
65
+ filterOperatorOnOrAfter: 'je po včetně',
66
66
  filterOperatorBefore: 'je před',
67
- filterOperatorOnOrBefore: 'je na nebo dříve',
67
+ filterOperatorOnOrBefore: 'je před včetně',
68
68
  filterOperatorIsEmpty: 'je prázdný',
69
69
  filterOperatorIsNotEmpty: 'není prázdný',
70
70
  filterOperatorIsAnyOf: 'je jeden z',
71
+ // filterOperator=: '=',
72
+ // filterOperator!=: '!=',
73
+ // filterOperator>: '>',
74
+ // filterOperator>=: '>=',
75
+ // filterOperator<: '<',
76
+ // filterOperator<=: '<=',
77
+
78
+ // Header filter operators text
79
+ // headerFilterOperatorContains: 'Contains',
80
+ // headerFilterOperatorEquals: 'Equals',
81
+ // headerFilterOperatorStartsWith: 'Starts with',
82
+ // headerFilterOperatorEndsWith: 'Ends with',
83
+ // headerFilterOperatorIs: 'Is',
84
+ // headerFilterOperatorNot: 'Is not',
85
+ // headerFilterOperatorAfter: 'Is after',
86
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
87
+ // headerFilterOperatorBefore: 'Is before',
88
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
89
+ // headerFilterOperatorIsEmpty: 'Is empty',
90
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
91
+ // headerFilterOperatorIsAnyOf: 'Is any of',
92
+ // headerFilterOperator=: 'Equals',
93
+ // headerFilterOperator!=: 'Not equals',
94
+ // headerFilterOperator>: 'Is greater than',
95
+ // headerFilterOperator>=: 'Is greater than or equal to',
96
+ // headerFilterOperator<: 'Is less than',
97
+ // headerFilterOperator<=: 'Is less than or equal to',
98
+
71
99
  // Filter values text
72
100
  filterValueAny: 'jakýkoliv',
73
101
  filterValueTrue: 'ano',
@@ -60,6 +60,34 @@ const daDKGrid = {
60
60
  filterOperatorIsEmpty: 'Indeholder ikke data',
61
61
  filterOperatorIsNotEmpty: 'Indeholder data',
62
62
  filterOperatorIsAnyOf: 'indeholder en af',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'hvilken som helst',
65
93
  filterValueTrue: 'positiv',
@@ -60,6 +60,34 @@ const deDEGrid = {
60
60
  filterOperatorIsEmpty: 'ist leer',
61
61
  filterOperatorIsNotEmpty: 'ist nicht leer',
62
62
  filterOperatorIsAnyOf: 'ist einer der Werte',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'Beliebig',
65
93
  filterValueTrue: 'Ja',
@@ -61,6 +61,33 @@ const elGRGrid = {
61
61
  filterOperatorIsEmpty: 'είναι κενό',
62
62
  filterOperatorIsNotEmpty: 'δεν είναι κενό',
63
63
  // filterOperatorIsAnyOf: 'is any of',
64
+ // filterOperator=: '=',
65
+ // filterOperator!=: '!=',
66
+ // filterOperator>: '>',
67
+ // filterOperator>=: '>=',
68
+ // filterOperator<: '<',
69
+ // filterOperator<=: '<=',
70
+
71
+ // Header filter operators text
72
+ // headerFilterOperatorContains: 'Contains',
73
+ // headerFilterOperatorEquals: 'Equals',
74
+ // headerFilterOperatorStartsWith: 'Starts with',
75
+ // headerFilterOperatorEndsWith: 'Ends with',
76
+ // headerFilterOperatorIs: 'Is',
77
+ // headerFilterOperatorNot: 'Is not',
78
+ // headerFilterOperatorAfter: 'Is after',
79
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
80
+ // headerFilterOperatorBefore: 'Is before',
81
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
82
+ // headerFilterOperatorIsEmpty: 'Is empty',
83
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
84
+ // headerFilterOperatorIsAnyOf: 'Is any of',
85
+ // headerFilterOperator=: 'Equals',
86
+ // headerFilterOperator!=: 'Not equals',
87
+ // headerFilterOperator>: 'Is greater than',
88
+ // headerFilterOperator>=: 'Is greater than or equal to',
89
+ // headerFilterOperator<: 'Is less than',
90
+ // headerFilterOperator<=: 'Is less than or equal to',
64
91
 
65
92
  // Filter values text
66
93
  // filterValueAny: 'any',
@@ -60,6 +60,34 @@ const esESGrid = {
60
60
  filterOperatorIsEmpty: 'está vacío',
61
61
  filterOperatorIsNotEmpty: 'no esta vacío',
62
62
  filterOperatorIsAnyOf: 'es cualquiera de',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'cualquiera',
65
93
  filterValueTrue: 'verdadero',
@@ -60,6 +60,34 @@ const faIRGrid = {
60
60
  filterOperatorIsEmpty: 'خالی است',
61
61
  filterOperatorIsNotEmpty: 'خالی نیست',
62
62
  filterOperatorIsAnyOf: 'هر یک از',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'هرچیزی',
65
93
  filterValueTrue: 'صحیح',
@@ -60,6 +60,34 @@ const fiFIGrid = {
60
60
  filterOperatorIsEmpty: 'on tyhjä',
61
61
  filterOperatorIsNotEmpty: 'ei ole tyhjä',
62
62
  filterOperatorIsAnyOf: 'mikä tahansa seuraavista',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'mikä tahansa',
65
93
  filterValueTrue: 'tosi',