@mui/x-data-grid 6.3.1 → 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 (349) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/DataGrid/DataGrid.js +20 -1
  3. package/DataGrid/useDataGridComponent.js +2 -2
  4. package/DataGrid/useDataGridProps.js +8 -13
  5. package/colDef/gridBooleanColDef.js +19 -1
  6. package/colDef/gridDateColDef.js +6 -2
  7. package/colDef/gridNumericOperators.js +0 -6
  8. package/colDef/gridSingleSelectColDef.js +21 -1
  9. package/components/base/GridBody.js +2 -1
  10. package/components/cell/GridEditInputCell.js +4 -1
  11. package/components/containers/GridRootStyles.js +1 -0
  12. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
  13. package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  14. package/components/panel/filterPanel/GridFilterInputDate.d.ts +8 -1
  15. package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  16. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  17. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  18. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +8 -1
  19. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  20. package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
  21. package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  22. package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
  23. package/components/panel/filterPanel/GridFilterPanel.js +1 -1
  24. package/components/panel/filterPanel/index.d.ts +3 -1
  25. package/components/panel/filterPanel/index.js +2 -1
  26. package/constants/localeTextConstants.js +26 -0
  27. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +12 -1
  28. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -1
  29. package/hooks/features/clipboard/useGridClipboard.js +43 -26
  30. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +9 -2
  31. package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  32. package/hooks/features/dimensions/useGridDimensions.js +4 -6
  33. package/hooks/features/editing/useGridCellEditing.js +7 -3
  34. package/hooks/features/editing/useGridEditing.js +0 -3
  35. package/hooks/features/editing/useGridRowEditing.js +7 -3
  36. package/hooks/features/export/serializers/csvSerializer.d.ts +5 -0
  37. package/hooks/features/export/serializers/csvSerializer.js +46 -6
  38. package/hooks/features/export/useGridCsvExport.d.ts +2 -1
  39. package/hooks/features/export/useGridCsvExport.js +7 -5
  40. package/hooks/features/focus/gridFocusState.d.ts +2 -0
  41. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  42. package/hooks/features/focus/gridFocusStateSelector.js +6 -0
  43. package/hooks/features/focus/useGridFocus.js +55 -9
  44. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
  45. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  46. package/hooks/features/headerFiltering/index.d.ts +1 -0
  47. package/hooks/features/headerFiltering/index.js +1 -0
  48. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
  49. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
  50. package/hooks/features/index.d.ts +1 -0
  51. package/hooks/features/index.js +2 -1
  52. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  53. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
  54. package/hooks/features/rows/useGridRows.js +16 -1
  55. package/index.js +1 -1
  56. package/internals/index.d.ts +9 -3
  57. package/internals/index.js +7 -2
  58. package/internals/utils/index.d.ts +1 -0
  59. package/internals/utils/index.js +2 -1
  60. package/internals/utils/useProps.d.ts +8 -0
  61. package/internals/utils/useProps.js +13 -0
  62. package/joy/icons.d.ts +33 -0
  63. package/joy/icons.js +433 -0
  64. package/joy/joySlots.js +114 -4
  65. package/legacy/DataGrid/DataGrid.js +20 -1
  66. package/legacy/DataGrid/useDataGridComponent.js +2 -2
  67. package/legacy/DataGrid/useDataGridProps.js +11 -9
  68. package/legacy/colDef/gridBooleanColDef.js +21 -1
  69. package/legacy/colDef/gridDateColDef.js +10 -2
  70. package/legacy/colDef/gridNumericOperators.js +0 -6
  71. package/legacy/colDef/gridSingleSelectColDef.js +21 -1
  72. package/legacy/components/base/GridBody.js +2 -1
  73. package/legacy/components/cell/GridEditInputCell.js +4 -1
  74. package/legacy/components/containers/GridRootStyles.js +1 -0
  75. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
  76. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
  77. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  78. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  79. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +54 -31
  80. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
  81. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
  82. package/legacy/components/panel/filterPanel/index.js +2 -1
  83. package/legacy/constants/localeTextConstants.js +26 -0
  84. package/legacy/hooks/features/clipboard/useGridClipboard.js +44 -26
  85. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  86. package/legacy/hooks/features/dimensions/useGridDimensions.js +4 -6
  87. package/legacy/hooks/features/editing/useGridCellEditing.js +7 -3
  88. package/legacy/hooks/features/editing/useGridEditing.js +0 -3
  89. package/legacy/hooks/features/editing/useGridRowEditing.js +7 -3
  90. package/legacy/hooks/features/export/serializers/csvSerializer.js +43 -6
  91. package/legacy/hooks/features/export/useGridCsvExport.js +8 -5
  92. package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
  93. package/legacy/hooks/features/focus/useGridFocus.js +58 -9
  94. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
  95. package/legacy/hooks/features/headerFiltering/index.js +1 -0
  96. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
  97. package/legacy/hooks/features/index.js +2 -1
  98. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +123 -4
  99. package/legacy/hooks/features/rows/useGridRows.js +16 -1
  100. package/legacy/index.js +1 -1
  101. package/legacy/internals/index.js +7 -2
  102. package/legacy/internals/utils/index.js +2 -1
  103. package/legacy/internals/utils/useProps.js +11 -0
  104. package/legacy/joy/icons.js +432 -0
  105. package/legacy/joy/joySlots.js +118 -4
  106. package/legacy/locales/arSD.js +28 -0
  107. package/legacy/locales/beBY.js +28 -0
  108. package/legacy/locales/bgBG.js +28 -0
  109. package/legacy/locales/csCZ.js +36 -8
  110. package/legacy/locales/daDK.js +28 -0
  111. package/legacy/locales/deDE.js +30 -2
  112. package/legacy/locales/elGR.js +27 -0
  113. package/legacy/locales/esES.js +28 -0
  114. package/legacy/locales/faIR.js +28 -0
  115. package/legacy/locales/fiFI.js +28 -0
  116. package/legacy/locales/frFR.js +34 -6
  117. package/legacy/locales/heIL.js +30 -2
  118. package/legacy/locales/huHU.js +28 -0
  119. package/legacy/locales/itIT.js +28 -0
  120. package/legacy/locales/jaJP.js +28 -0
  121. package/legacy/locales/koKR.js +28 -0
  122. package/legacy/locales/nbNO.js +28 -0
  123. package/legacy/locales/nlNL.js +28 -0
  124. package/legacy/locales/plPL.js +28 -0
  125. package/legacy/locales/ptBR.js +29 -1
  126. package/legacy/locales/roRO.js +28 -0
  127. package/legacy/locales/ruRU.js +28 -0
  128. package/legacy/locales/skSK.js +28 -0
  129. package/legacy/locales/svSE.js +28 -0
  130. package/legacy/locales/trTR.js +28 -0
  131. package/legacy/locales/ukUA.js +36 -9
  132. package/legacy/locales/urPK.js +28 -0
  133. package/legacy/locales/viVN.js +27 -0
  134. package/legacy/locales/zhCN.js +28 -0
  135. package/legacy/locales/zhTW.js +28 -0
  136. package/legacy/material/index.js +5 -1
  137. package/legacy/models/api/index.js +0 -1
  138. package/legacy/models/index.js +0 -1
  139. package/legacy/utils/domUtils.js +14 -1
  140. package/locales/arSD.js +28 -0
  141. package/locales/beBY.js +28 -0
  142. package/locales/bgBG.js +28 -0
  143. package/locales/csCZ.js +36 -8
  144. package/locales/daDK.js +28 -0
  145. package/locales/deDE.js +30 -2
  146. package/locales/elGR.js +27 -0
  147. package/locales/esES.js +28 -0
  148. package/locales/faIR.js +28 -0
  149. package/locales/fiFI.js +28 -0
  150. package/locales/frFR.js +34 -6
  151. package/locales/heIL.js +30 -2
  152. package/locales/huHU.js +28 -0
  153. package/locales/itIT.js +28 -0
  154. package/locales/jaJP.js +28 -0
  155. package/locales/koKR.js +28 -0
  156. package/locales/nbNO.js +28 -0
  157. package/locales/nlNL.js +28 -0
  158. package/locales/plPL.js +28 -0
  159. package/locales/ptBR.js +29 -1
  160. package/locales/roRO.js +28 -0
  161. package/locales/ruRU.js +28 -0
  162. package/locales/skSK.js +28 -0
  163. package/locales/svSE.js +28 -0
  164. package/locales/trTR.js +28 -0
  165. package/locales/ukUA.js +36 -9
  166. package/locales/urPK.js +28 -0
  167. package/locales/viVN.js +27 -0
  168. package/locales/zhCN.js +28 -0
  169. package/locales/zhTW.js +28 -0
  170. package/material/index.d.ts +3 -65
  171. package/material/index.js +5 -1
  172. package/models/api/gridApiCommon.d.ts +3 -3
  173. package/models/api/gridCoreApi.d.ts +8 -0
  174. package/models/api/gridFocusApi.d.ts +6 -0
  175. package/models/api/gridHeaderFilteringApi.d.ts +30 -0
  176. package/models/api/gridLocaleTextApi.d.ts +25 -0
  177. package/models/api/index.d.ts +0 -1
  178. package/models/api/index.js +0 -1
  179. package/models/events/gridEventLookup.d.ts +33 -1
  180. package/models/gridFilterOperator.d.ts +4 -0
  181. package/models/gridHeaderFilteringModel.d.ts +5 -0
  182. package/models/gridHeaderFilteringModel.js +1 -0
  183. package/models/gridSlotsComponent.d.ts +21 -4
  184. package/models/gridSlotsComponentsProps.d.ts +4 -0
  185. package/models/gridStateCommunity.d.ts +2 -0
  186. package/models/index.d.ts +1 -1
  187. package/models/index.js +0 -1
  188. package/models/props/DataGridProps.d.ts +19 -0
  189. package/modern/DataGrid/DataGrid.js +20 -1
  190. package/modern/DataGrid/useDataGridComponent.js +2 -2
  191. package/modern/DataGrid/useDataGridProps.js +8 -13
  192. package/modern/colDef/gridBooleanColDef.js +19 -1
  193. package/modern/colDef/gridDateColDef.js +6 -2
  194. package/modern/colDef/gridNumericOperators.js +0 -6
  195. package/modern/colDef/gridSingleSelectColDef.js +21 -1
  196. package/modern/components/base/GridBody.js +2 -1
  197. package/modern/components/cell/GridEditInputCell.js +4 -1
  198. package/modern/components/containers/GridRootStyles.js +1 -0
  199. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  200. package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  201. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  202. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  203. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  204. package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  205. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
  206. package/modern/components/panel/filterPanel/index.js +2 -1
  207. package/modern/constants/localeTextConstants.js +26 -0
  208. package/modern/hooks/features/clipboard/useGridClipboard.js +43 -26
  209. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  210. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -5
  211. package/modern/hooks/features/editing/useGridCellEditing.js +7 -3
  212. package/modern/hooks/features/editing/useGridEditing.js +0 -3
  213. package/modern/hooks/features/editing/useGridRowEditing.js +7 -3
  214. package/modern/hooks/features/export/serializers/csvSerializer.js +44 -6
  215. package/modern/hooks/features/export/useGridCsvExport.js +7 -5
  216. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
  217. package/modern/hooks/features/focus/useGridFocus.js +55 -9
  218. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  219. package/modern/hooks/features/headerFiltering/index.js +1 -0
  220. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
  221. package/modern/hooks/features/index.js +2 -1
  222. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
  223. package/modern/hooks/features/rows/useGridRows.js +16 -1
  224. package/modern/index.js +1 -1
  225. package/modern/internals/index.js +7 -2
  226. package/modern/internals/utils/index.js +2 -1
  227. package/modern/internals/utils/useProps.js +13 -0
  228. package/modern/joy/icons.js +433 -0
  229. package/modern/joy/joySlots.js +110 -4
  230. package/modern/locales/arSD.js +28 -0
  231. package/modern/locales/beBY.js +28 -0
  232. package/modern/locales/bgBG.js +28 -0
  233. package/modern/locales/csCZ.js +36 -8
  234. package/modern/locales/daDK.js +28 -0
  235. package/modern/locales/deDE.js +30 -2
  236. package/modern/locales/elGR.js +27 -0
  237. package/modern/locales/esES.js +28 -0
  238. package/modern/locales/faIR.js +28 -0
  239. package/modern/locales/fiFI.js +28 -0
  240. package/modern/locales/frFR.js +34 -6
  241. package/modern/locales/heIL.js +30 -2
  242. package/modern/locales/huHU.js +28 -0
  243. package/modern/locales/itIT.js +28 -0
  244. package/modern/locales/jaJP.js +28 -0
  245. package/modern/locales/koKR.js +28 -0
  246. package/modern/locales/nbNO.js +28 -0
  247. package/modern/locales/nlNL.js +28 -0
  248. package/modern/locales/plPL.js +28 -0
  249. package/modern/locales/ptBR.js +29 -1
  250. package/modern/locales/roRO.js +28 -0
  251. package/modern/locales/ruRU.js +28 -0
  252. package/modern/locales/skSK.js +28 -0
  253. package/modern/locales/svSE.js +28 -0
  254. package/modern/locales/trTR.js +28 -0
  255. package/modern/locales/ukUA.js +36 -9
  256. package/modern/locales/urPK.js +28 -0
  257. package/modern/locales/viVN.js +27 -0
  258. package/modern/locales/zhCN.js +28 -0
  259. package/modern/locales/zhTW.js +28 -0
  260. package/modern/material/index.js +5 -1
  261. package/modern/models/api/gridHeaderFilteringApi.js +1 -0
  262. package/modern/models/api/index.js +0 -1
  263. package/modern/models/gridHeaderFilteringModel.js +1 -0
  264. package/modern/models/index.js +0 -1
  265. package/modern/utils/domUtils.js +13 -1
  266. package/node/DataGrid/DataGrid.js +20 -1
  267. package/node/DataGrid/useDataGridComponent.js +2 -2
  268. package/node/DataGrid/useDataGridProps.js +7 -12
  269. package/node/colDef/gridBooleanColDef.js +19 -1
  270. package/node/colDef/gridDateColDef.js +6 -2
  271. package/node/colDef/gridNumericOperators.js +0 -6
  272. package/node/colDef/gridSingleSelectColDef.js +21 -1
  273. package/node/components/base/GridBody.js +2 -1
  274. package/node/components/cell/GridEditInputCell.js +4 -1
  275. package/node/components/containers/GridRootStyles.js +1 -0
  276. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
  277. package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  278. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  279. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  280. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  281. package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  282. package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
  283. package/node/components/panel/filterPanel/index.js +26 -8
  284. package/node/constants/localeTextConstants.js +26 -0
  285. package/node/hooks/features/clipboard/useGridClipboard.js +42 -25
  286. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  287. package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
  288. package/node/hooks/features/editing/useGridCellEditing.js +7 -3
  289. package/node/hooks/features/editing/useGridEditing.js +0 -3
  290. package/node/hooks/features/editing/useGridRowEditing.js +7 -3
  291. package/node/hooks/features/export/serializers/csvSerializer.js +46 -6
  292. package/node/hooks/features/export/useGridCsvExport.js +6 -3
  293. package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
  294. package/node/hooks/features/focus/useGridFocus.js +55 -9
  295. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
  296. package/node/hooks/features/headerFiltering/index.js +16 -0
  297. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
  298. package/node/hooks/features/index.js +11 -0
  299. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
  300. package/node/hooks/features/rows/useGridRows.js +16 -1
  301. package/node/index.js +1 -1
  302. package/node/internals/index.js +69 -1
  303. package/node/internals/utils/index.js +11 -0
  304. package/node/internals/utils/useProps.js +22 -0
  305. package/node/joy/icons.js +471 -0
  306. package/node/joy/joySlots.js +110 -3
  307. package/node/locales/arSD.js +28 -0
  308. package/node/locales/beBY.js +28 -0
  309. package/node/locales/bgBG.js +28 -0
  310. package/node/locales/csCZ.js +36 -8
  311. package/node/locales/daDK.js +28 -0
  312. package/node/locales/deDE.js +30 -2
  313. package/node/locales/elGR.js +27 -0
  314. package/node/locales/esES.js +28 -0
  315. package/node/locales/faIR.js +28 -0
  316. package/node/locales/fiFI.js +28 -0
  317. package/node/locales/frFR.js +34 -6
  318. package/node/locales/heIL.js +30 -2
  319. package/node/locales/huHU.js +28 -0
  320. package/node/locales/itIT.js +28 -0
  321. package/node/locales/jaJP.js +28 -0
  322. package/node/locales/koKR.js +28 -0
  323. package/node/locales/nbNO.js +28 -0
  324. package/node/locales/nlNL.js +28 -0
  325. package/node/locales/plPL.js +28 -0
  326. package/node/locales/ptBR.js +29 -1
  327. package/node/locales/roRO.js +28 -0
  328. package/node/locales/ruRU.js +28 -0
  329. package/node/locales/skSK.js +28 -0
  330. package/node/locales/svSE.js +28 -0
  331. package/node/locales/trTR.js +28 -0
  332. package/node/locales/ukUA.js +36 -9
  333. package/node/locales/urPK.js +28 -0
  334. package/node/locales/viVN.js +27 -0
  335. package/node/locales/zhCN.js +28 -0
  336. package/node/locales/zhTW.js +28 -0
  337. package/node/material/index.js +5 -1
  338. package/node/models/api/index.js +0 -11
  339. package/node/models/gridHeaderFilteringModel.js +5 -0
  340. package/node/models/index.js +0 -11
  341. package/node/utils/domUtils.js +15 -1
  342. package/package.json +1 -1
  343. package/utils/domUtils.d.ts +1 -0
  344. package/utils/domUtils.js +13 -1
  345. package/models/api/gridClipboardApi.d.ts +0 -11
  346. /package/legacy/models/api/{gridClipboardApi.js → gridHeaderFilteringApi.js} +0 -0
  347. /package/{models/api/gridClipboardApi.js → legacy/models/gridHeaderFilteringModel.js} +0 -0
  348. /package/{modern/models/api/gridClipboardApi.js → models/api/gridHeaderFilteringApi.js} +0 -0
  349. /package/node/models/api/{gridClipboardApi.js → gridHeaderFilteringApi.js} +0 -0
@@ -11,4 +11,5 @@ export * from './rows';
11
11
  export * from './rowSelection';
12
12
  export * from './sorting';
13
13
  export * from './dimensions';
14
- export * from './statePersistence';
14
+ export * from './statePersistence';
15
+ export * from './headerFiltering';
@@ -15,6 +15,8 @@ import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
15
15
  import { unstable_gridFocusColumnGroupHeaderSelector } from '../focus';
16
16
  import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
17
17
  import { useGridSelector } from '../../utils/useGridSelector';
18
+ import { unstable_gridHeaderFilteringEditFieldSelector, unstable_gridHeaderFilteringMenuSelector } from '../headerFiltering/gridHeaderFilteringSelectors';
19
+ import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
18
20
  function enrichPageRowsWithPinnedRows(apiRef, rows) {
19
21
  var pinnedRows = gridPinnedRowsSelector(apiRef) || {};
20
22
  return [].concat(_toConsumableArray(pinnedRows.top || []), _toConsumableArray(rows), _toConsumableArray(pinnedRows.bottom || []));
@@ -68,6 +70,9 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
68
70
  var currentPageRows = React.useMemo(function () {
69
71
  return enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows);
70
72
  }, [apiRef, initialCurrentPageRows]);
73
+ var headerFilteringEnabled =
74
+ // @ts-expect-error // TODO move relevant code to the `DataGridPro`
75
+ props.signature !== 'DataGrid' && props.unstable_headerFilters;
71
76
 
72
77
  /**
73
78
  * @param {number} colIndex Index of the column to focus
@@ -107,6 +112,14 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
107
112
  var field = apiRef.current.getVisibleColumns()[colIndex].field;
108
113
  apiRef.current.setColumnHeaderFocus(field, event);
109
114
  }, [apiRef, logger]);
115
+ var goToHeaderFilter = React.useCallback(function (colIndex, event) {
116
+ logger.debug("Navigating to header filter col ".concat(colIndex));
117
+ apiRef.current.scrollToIndexes({
118
+ colIndex: colIndex
119
+ });
120
+ var field = apiRef.current.getVisibleColumns()[colIndex].field;
121
+ apiRef.current.setColumnHeaderFilterFocus(field, event);
122
+ }, [apiRef, logger]);
110
123
  var goToGroupHeader = React.useCallback(function (colIndex, depth, event) {
111
124
  logger.debug("Navigating to header col ".concat(colIndex));
112
125
  apiRef.current.scrollToIndexes({
@@ -116,7 +129,7 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
116
129
  apiRef.current.setColumnGroupHeaderFocus(field, depth, event);
117
130
  }, [apiRef, logger]);
118
131
  var getRowIdFromIndex = React.useCallback(function (rowIndex) {
119
- return currentPageRows[rowIndex].id;
132
+ return currentPageRows == null ? void 0 : currentPageRows[rowIndex].id;
120
133
  }, [currentPageRows]);
121
134
  var handleColumnHeaderKeyDown = React.useCallback(function (params, event) {
122
135
  var headerTitleNode = event.currentTarget.querySelector(".".concat(gridClasses.columnHeaderTitleContainerContent));
@@ -142,7 +155,11 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
142
155
  case 'ArrowDown':
143
156
  {
144
157
  if (firstRowIndexInPage !== null) {
145
- goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
158
+ if (headerFilteringEnabled) {
159
+ goToHeaderFilter(colIndexBefore, event);
160
+ } else {
161
+ goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
162
+ }
146
163
  }
147
164
  break;
148
165
  }
@@ -216,7 +233,97 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
216
233
  if (shouldPreventDefault) {
217
234
  event.preventDefault();
218
235
  }
219
- }, [apiRef, currentPageRows.length, theme.direction, goToCell, getRowIdFromIndex, goToHeader, goToGroupHeader]);
236
+ }, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, theme.direction, goToHeader, goToGroupHeader]);
237
+ var handleHeaderFilterKeyDown = React.useCallback(function (params, event) {
238
+ var dimensions = apiRef.current.getRootDimensions();
239
+ if (!dimensions) {
240
+ return;
241
+ }
242
+ var isEditing = unstable_gridHeaderFilteringEditFieldSelector(apiRef) === params.field;
243
+ var isHeaderMenuOpen = unstable_gridHeaderFilteringMenuSelector(apiRef) === params.field;
244
+ if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {
245
+ return;
246
+ }
247
+ var viewportPageSize = apiRef.current.getViewportPageSize();
248
+ var colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
249
+ var firstRowIndexInPage = 0;
250
+ var lastRowIndexInPage = currentPageRows.length - 1;
251
+ var firstColIndex = 0;
252
+ var lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;
253
+ var shouldPreventDefault = true;
254
+ switch (event.key) {
255
+ case 'ArrowDown':
256
+ {
257
+ var rowId = getRowIdFromIndex(firstRowIndexInPage);
258
+ if (firstRowIndexInPage !== null && rowId != null) {
259
+ goToCell(colIndexBefore, rowId);
260
+ }
261
+ break;
262
+ }
263
+ case 'ArrowRight':
264
+ {
265
+ var rightColIndex = getRightColumnIndex({
266
+ currentColIndex: colIndexBefore,
267
+ firstColIndex: firstColIndex,
268
+ lastColIndex: lastColIndex,
269
+ direction: theme.direction
270
+ });
271
+ if (rightColIndex !== null) {
272
+ goToHeaderFilter(rightColIndex, event);
273
+ }
274
+ break;
275
+ }
276
+ case 'ArrowLeft':
277
+ {
278
+ var leftColIndex = getLeftColumnIndex({
279
+ currentColIndex: colIndexBefore,
280
+ firstColIndex: firstColIndex,
281
+ lastColIndex: lastColIndex,
282
+ direction: theme.direction
283
+ });
284
+ if (leftColIndex !== null) {
285
+ goToHeaderFilter(leftColIndex, event);
286
+ } else {
287
+ apiRef.current.setColumnHeaderFilterFocus(params.field, event);
288
+ }
289
+ break;
290
+ }
291
+ case 'ArrowUp':
292
+ {
293
+ goToHeader(colIndexBefore, event);
294
+ break;
295
+ }
296
+ case 'PageDown':
297
+ {
298
+ if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {
299
+ goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));
300
+ }
301
+ break;
302
+ }
303
+ case 'Home':
304
+ {
305
+ goToHeaderFilter(firstColIndex, event);
306
+ break;
307
+ }
308
+ case 'End':
309
+ {
310
+ goToHeaderFilter(lastColIndex, event);
311
+ break;
312
+ }
313
+ case ' ':
314
+ {
315
+ // prevent Space event from scrolling
316
+ break;
317
+ }
318
+ default:
319
+ {
320
+ shouldPreventDefault = false;
321
+ }
322
+ }
323
+ if (shouldPreventDefault) {
324
+ event.preventDefault();
325
+ }
326
+ }, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
220
327
  var focusedColumnGroup = useGridSelector(apiRef, unstable_gridFocusColumnGroupHeaderSelector);
221
328
  var handleColumnGroupHeaderKeyDown = React.useCallback(function (params, event) {
222
329
  var dimensions = apiRef.current.getRootDimensions();
@@ -349,6 +456,8 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
349
456
  {
350
457
  if (rowIndexBefore > firstRowIndexInPage) {
351
458
  goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore - 1));
459
+ } else if (headerFilteringEnabled) {
460
+ goToHeaderFilter(colIndexBefore, event);
352
461
  } else {
353
462
  goToHeader(colIndexBefore, event);
354
463
  }
@@ -449,8 +558,18 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
449
558
  if (shouldPreventDefault) {
450
559
  event.preventDefault();
451
560
  }
452
- }, [apiRef, currentPageRows, theme.direction, getRowIdFromIndex, goToCell, goToHeader]);
561
+ }, [apiRef, currentPageRows, theme.direction, goToCell, getRowIdFromIndex, headerFilteringEnabled, goToHeaderFilter, goToHeader]);
562
+ var checkIfCanStartEditing = React.useCallback(function (initialValue, _ref3) {
563
+ var event = _ref3.event;
564
+ if (event.key === ' ') {
565
+ // Space scrolls to the last row
566
+ return false;
567
+ }
568
+ return initialValue;
569
+ }, []);
570
+ useGridRegisterPipeProcessor(apiRef, 'canStartEditing', checkIfCanStartEditing);
453
571
  useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
572
+ useGridApiEventHandler(apiRef, 'headerFilterKeyDown', handleHeaderFilterKeyDown);
454
573
  useGridApiEventHandler(apiRef, 'columnGroupHeaderKeyDown', handleColumnGroupHeaderKeyDown);
455
574
  useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
456
575
  };
@@ -120,8 +120,23 @@ export var useGridRows = function useGridRows(apiRef, props) {
120
120
  if (props.signature === GridSignature.DataGrid && updates.length > 1) {
121
121
  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'));
122
122
  }
123
+ var nonPinnedRowsUpdates = [];
124
+ updates.forEach(function (update) {
125
+ var id = getRowIdFromRowModel(update, props.getRowId, 'A row was provided without id when calling updateRows():');
126
+ var rowNode = apiRef.current.getRowNode(id);
127
+ if ((rowNode == null ? void 0 : rowNode.type) === 'pinnedRow') {
128
+ // @ts-ignore because otherwise `release:build` doesn't work
129
+ var pinnedRowsCache = apiRef.current.caches.pinnedRows;
130
+ var prevModel = pinnedRowsCache.idLookup[id];
131
+ if (prevModel) {
132
+ pinnedRowsCache.idLookup[id] = _extends({}, prevModel, update);
133
+ }
134
+ } else {
135
+ nonPinnedRowsUpdates.push(update);
136
+ }
137
+ });
123
138
  var cache = updateCacheWithNewRows({
124
- updates: updates,
139
+ updates: nonPinnedRowsUpdates,
125
140
  getRowId: props.getRowId,
126
141
  previousCache: apiRef.current.caches.rows
127
142
  });
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.3.1
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';
@@ -41,14 +45,15 @@ export { useGridEvents } from '../hooks/features/events/useGridEvents';
41
45
  export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
42
46
  export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
43
47
  export { useGridVirtualScroller, getRenderableIndexes } from '../hooks/features/virtualization/useGridVirtualScroller';
44
- export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
48
+ export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
45
49
  export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
46
50
  export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
47
51
  export { createSelector, unstable_resetCreateSelectorCache } from '../utils/createSelector';
48
- export { findParentElementFromClassName } from '../utils/domUtils';
52
+ export { findParentElementFromClassName, getActiveElement } from '../utils/domUtils';
49
53
  export { isNavigationKey } from '../utils/keyboardUtils';
50
54
  export { clamp, isDeepEqual, isNumber, isFunction, isObject } from '../utils/utils';
51
55
  export { buildWarning } from '../utils/warning';
52
56
  export { exportAs } from '../utils/exportAs';
53
57
  export { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
58
+ export { serializeCellValue } from '../hooks/features/export/serializers/csvSerializer';
54
59
  export * from './utils';
@@ -1,2 +1,3 @@
1
1
  export * from './computeSlots';
2
- export * from './slotsMigration';
2
+ export * from './slotsMigration';
3
+ export * from './useProps';
@@ -0,0 +1,11 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ var _excluded = ["components", "componentsProps"];
3
+ import * as React from 'react';
4
+ export function useProps(allProps) {
5
+ return React.useMemo(function () {
6
+ var components = allProps.components,
7
+ componentsProps = allProps.componentsProps,
8
+ themedProps = _objectWithoutProperties(allProps, _excluded);
9
+ return [components, componentsProps, themedProps];
10
+ }, [allProps]);
11
+ }