@mui/x-data-grid 5.7.0 → 5.8.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 (298) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/DataGrid/DataGrid.d.ts +8 -3
  3. package/DataGrid/DataGrid.js +27 -4
  4. package/DataGrid/useDataGridComponent.js +2 -4
  5. package/DataGrid/useDataGridProps.d.ts +2 -1
  6. package/colDef/gridBooleanColDef.d.ts +1 -1
  7. package/colDef/gridBooleanOperators.d.ts +1 -1
  8. package/colDef/gridDateColDef.d.ts +5 -9
  9. package/colDef/gridDateColDef.js +2 -2
  10. package/colDef/gridDateOperators.d.ts +1 -1
  11. package/{models/colDef → colDef}/gridDefaultColumnTypes.d.ts +1 -1
  12. package/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  13. package/colDef/gridNumericColDef.d.ts +1 -1
  14. package/colDef/gridNumericOperators.d.ts +2 -2
  15. package/colDef/gridStringColDef.d.ts +1 -1
  16. package/colDef/gridStringOperators.d.ts +1 -1
  17. package/colDef/index.d.ts +1 -0
  18. package/colDef/index.js +2 -1
  19. package/components/GridRow.js +1 -1
  20. package/components/cell/GridCell.d.ts +4 -4
  21. package/components/cell/GridCell.js +2 -2
  22. package/components/cell/GridEditInputCell.js +2 -2
  23. package/components/cell/GridEditSingleSelectCell.js +2 -2
  24. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +12 -0
  25. package/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  26. package/components/columnHeaders/GridColumnHeaderItem.js +5 -5
  27. package/components/columnHeaders/index.d.ts +1 -0
  28. package/components/columnHeaders/index.js +1 -0
  29. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  30. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  31. package/components/containers/GridRoot.js +29 -17
  32. package/components/menu/columnMenu/GridColumnMenu.js +1 -1
  33. package/components/panel/GridPanel.d.ts +2 -2
  34. package/components/panel/GridPreferencesPanel.js +1 -1
  35. package/constants/defaultGridSlotsComponents.js +2 -1
  36. package/constants/gridClasses.d.ts +15 -3
  37. package/hooks/core/index.d.ts +1 -1
  38. package/hooks/core/{preProcessing/gridPreProcessingApi.d.ts → pipeProcessing/gridPipeProcessingApi.d.ts} +19 -18
  39. package/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  40. package/hooks/core/pipeProcessing/index.d.ts +3 -0
  41. package/hooks/core/pipeProcessing/index.js +3 -0
  42. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +27 -0
  43. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +74 -0
  44. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +7 -0
  45. package/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -2
  46. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +27 -16
  47. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  48. package/hooks/core/useGridInitialization.js +2 -2
  49. package/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
  50. package/hooks/features/columns/gridColumnsSelector.d.ts +6 -6
  51. package/hooks/features/columns/gridColumnsUtils.d.ts +3 -3
  52. package/hooks/features/columns/gridColumnsUtils.js +49 -17
  53. package/hooks/features/columns/useGridColumns.js +36 -27
  54. package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
  55. package/hooks/features/dimensions/useGridDimensions.js +2 -1
  56. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  57. package/hooks/features/editRows/useGridCellEditing.new.js +22 -7
  58. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  59. package/hooks/features/editRows/useGridRowEditing.new.js +22 -7
  60. package/hooks/features/events/useGridEvents.d.ts +1 -1
  61. package/hooks/features/events/useGridEvents.js +2 -0
  62. package/hooks/features/filter/gridFilterSelector.d.ts +3 -9
  63. package/hooks/features/filter/useGridFilter.js +4 -4
  64. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.d.ts +2 -5
  65. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +27 -6
  66. package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -3
  67. package/hooks/features/pagination/useGridPage.js +9 -4
  68. package/hooks/features/pagination/useGridPageSize.js +3 -3
  69. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  70. package/hooks/features/rows/gridRowsSelector.d.ts +1 -1
  71. package/hooks/features/rows/gridRowsUtils.d.ts +8 -0
  72. package/hooks/features/rows/gridRowsUtils.js +11 -0
  73. package/hooks/features/rows/index.d.ts +1 -0
  74. package/hooks/features/rows/index.js +1 -1
  75. package/hooks/features/rows/useGridRows.js +3 -3
  76. package/hooks/features/rows/useGridRowsMeta.js +3 -3
  77. package/hooks/features/scroll/useGridScroll.js +4 -13
  78. package/hooks/features/selection/gridSelectionSelector.d.ts +1 -3
  79. package/hooks/features/selection/useGridSelection.d.ts +4 -2
  80. package/hooks/features/selection/useGridSelection.js +72 -25
  81. package/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  82. package/hooks/features/sorting/gridSortingSelector.d.ts +1 -3
  83. package/hooks/features/sorting/gridSortingUtils.d.ts +1 -2
  84. package/hooks/features/sorting/useGridSorting.js +3 -3
  85. package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  86. package/hooks/utils/useGridRootProps.d.ts +1 -1
  87. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  88. package/index.js +1 -1
  89. package/internals/index.d.ts +3 -6
  90. package/internals/index.js +2 -3
  91. package/legacy/DataGrid/DataGrid.js +27 -4
  92. package/legacy/DataGrid/useDataGridComponent.js +2 -4
  93. package/legacy/colDef/gridDateColDef.js +2 -2
  94. package/legacy/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  95. package/legacy/colDef/index.js +2 -1
  96. package/legacy/components/GridRow.js +1 -1
  97. package/legacy/components/cell/GridCell.js +2 -2
  98. package/legacy/components/cell/GridEditInputCell.js +2 -2
  99. package/legacy/components/cell/GridEditSingleSelectCell.js +2 -2
  100. package/legacy/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  101. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +5 -5
  102. package/legacy/components/columnHeaders/index.js +1 -0
  103. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  104. package/legacy/components/containers/GridRoot.js +34 -17
  105. package/legacy/components/menu/columnMenu/GridColumnMenu.js +1 -1
  106. package/legacy/components/panel/GridPreferencesPanel.js +1 -1
  107. package/legacy/constants/defaultGridSlotsComponents.js +2 -1
  108. package/legacy/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  109. package/legacy/hooks/core/pipeProcessing/index.js +3 -0
  110. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +83 -0
  111. package/legacy/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -2
  112. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  113. package/legacy/hooks/core/useGridInitialization.js +2 -2
  114. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
  115. package/legacy/hooks/features/columns/gridColumnsUtils.js +49 -18
  116. package/legacy/hooks/features/columns/useGridColumns.js +36 -27
  117. package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -1
  118. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +22 -7
  119. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +22 -7
  120. package/legacy/hooks/features/events/useGridEvents.js +2 -0
  121. package/legacy/hooks/features/filter/useGridFilter.js +4 -4
  122. package/legacy/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +27 -6
  123. package/legacy/hooks/features/pagination/useGridPage.js +11 -4
  124. package/legacy/hooks/features/pagination/useGridPageSize.js +3 -3
  125. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  126. package/legacy/hooks/features/rows/gridRowsUtils.js +13 -0
  127. package/legacy/hooks/features/rows/index.js +1 -1
  128. package/legacy/hooks/features/rows/useGridRows.js +5 -5
  129. package/legacy/hooks/features/rows/useGridRowsMeta.js +3 -3
  130. package/legacy/hooks/features/scroll/useGridScroll.js +4 -13
  131. package/legacy/hooks/features/selection/useGridSelection.js +74 -25
  132. package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  133. package/legacy/hooks/features/sorting/useGridSorting.js +3 -3
  134. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  135. package/legacy/index.js +1 -1
  136. package/legacy/internals/index.js +2 -3
  137. package/legacy/locales/daDK.js +36 -32
  138. package/legacy/models/colDef/index.js +1 -2
  139. package/legacy/models/events/gridEvents.js +4 -2
  140. package/legacy/models/gridRows.js +1 -33
  141. package/legacy/models/index.js +2 -2
  142. package/{modern/hooks/core/preProcessing/gridPreProcessingApi.js → legacy/models/params/gridPreferencePanelParams.js} +0 -0
  143. package/legacy/models/params/index.js +2 -1
  144. package/locales/daDK.js +32 -32
  145. package/models/api/gridApiCommon.d.ts +2 -2
  146. package/models/api/gridEditingApi.d.ts +2 -2
  147. package/models/api/gridParamsApi.d.ts +5 -5
  148. package/models/api/gridRowApi.d.ts +2 -2
  149. package/models/colDef/gridColDef.d.ts +33 -28
  150. package/models/colDef/index.d.ts +0 -1
  151. package/models/colDef/index.js +1 -2
  152. package/models/events/gridEventLookup.d.ts +12 -6
  153. package/models/events/gridEvents.d.ts +11 -5
  154. package/models/events/gridEvents.js +4 -2
  155. package/models/gridCell.d.ts +1 -0
  156. package/models/gridEditRowModel.d.ts +1 -1
  157. package/models/gridFilterOperator.d.ts +3 -2
  158. package/models/gridRows.d.ts +10 -18
  159. package/models/gridRows.js +1 -31
  160. package/models/gridSlotsComponent.d.ts +5 -0
  161. package/models/gridSlotsComponentsProps.d.ts +1 -0
  162. package/models/gridSortModel.d.ts +3 -4
  163. package/models/index.d.ts +1 -1
  164. package/models/index.js +2 -2
  165. package/models/params/gridCellParams.d.ts +14 -14
  166. package/models/params/gridColumnHeaderParams.d.ts +3 -2
  167. package/models/params/gridEditCellParams.d.ts +2 -3
  168. package/models/params/gridPreferencePanelParams.d.ts +3 -0
  169. package/models/params/gridPreferencePanelParams.js +1 -0
  170. package/models/params/gridRowParams.d.ts +7 -8
  171. package/models/params/gridValueOptionsParams.d.ts +3 -3
  172. package/models/params/index.d.ts +1 -0
  173. package/models/params/index.js +2 -1
  174. package/models/props/DataGridProps.d.ts +36 -16
  175. package/modern/DataGrid/DataGrid.js +27 -4
  176. package/modern/DataGrid/useDataGridComponent.js +2 -4
  177. package/modern/colDef/gridDateColDef.js +2 -2
  178. package/modern/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  179. package/modern/colDef/index.js +2 -1
  180. package/modern/components/GridRow.js +1 -1
  181. package/modern/components/cell/GridCell.js +2 -2
  182. package/modern/components/cell/GridEditInputCell.js +2 -2
  183. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  184. package/modern/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  185. package/modern/components/columnHeaders/GridColumnHeaderItem.js +3 -3
  186. package/modern/components/columnHeaders/index.js +1 -0
  187. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  188. package/modern/components/containers/GridRoot.js +29 -17
  189. package/modern/components/menu/columnMenu/GridColumnMenu.js +1 -1
  190. package/modern/components/panel/GridPreferencesPanel.js +1 -1
  191. package/modern/constants/defaultGridSlotsComponents.js +2 -1
  192. package/modern/hooks/core/pipeProcessing/gridPipeProcessingApi.js +1 -0
  193. package/modern/hooks/core/pipeProcessing/index.js +3 -0
  194. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +74 -0
  195. package/modern/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -2
  196. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  197. package/modern/hooks/core/useGridInitialization.js +2 -2
  198. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
  199. package/modern/hooks/features/columns/gridColumnsUtils.js +49 -17
  200. package/modern/hooks/features/columns/useGridColumns.js +36 -27
  201. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -1
  202. package/modern/hooks/features/editRows/useGridCellEditing.new.js +22 -7
  203. package/modern/hooks/features/editRows/useGridRowEditing.new.js +22 -7
  204. package/modern/hooks/features/events/useGridEvents.js +2 -0
  205. package/modern/hooks/features/filter/useGridFilter.js +4 -4
  206. package/modern/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +27 -6
  207. package/modern/hooks/features/pagination/useGridPage.js +9 -4
  208. package/modern/hooks/features/pagination/useGridPageSize.js +3 -3
  209. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  210. package/modern/hooks/features/rows/gridRowsUtils.js +11 -0
  211. package/modern/hooks/features/rows/index.js +1 -1
  212. package/modern/hooks/features/rows/useGridRows.js +1 -1
  213. package/modern/hooks/features/rows/useGridRowsMeta.js +3 -3
  214. package/modern/hooks/features/scroll/useGridScroll.js +4 -9
  215. package/modern/hooks/features/selection/useGridSelection.js +72 -25
  216. package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  217. package/modern/hooks/features/sorting/useGridSorting.js +3 -3
  218. package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  219. package/modern/index.js +1 -1
  220. package/modern/internals/index.js +2 -3
  221. package/modern/locales/daDK.js +32 -32
  222. package/modern/models/colDef/index.js +1 -2
  223. package/modern/models/events/gridEvents.js +4 -2
  224. package/modern/models/gridRows.js +1 -31
  225. package/modern/models/index.js +2 -2
  226. package/modern/models/params/gridPreferencePanelParams.js +1 -0
  227. package/modern/models/params/index.js +2 -1
  228. package/node/DataGrid/DataGrid.js +27 -4
  229. package/node/DataGrid/useDataGridComponent.js +2 -5
  230. package/node/colDef/gridDateColDef.js +2 -2
  231. package/node/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  232. package/node/colDef/index.js +13 -0
  233. package/node/components/GridRow.js +1 -1
  234. package/node/components/cell/GridCell.js +2 -2
  235. package/node/components/cell/GridEditInputCell.js +2 -2
  236. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  237. package/node/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +23 -5
  238. package/node/components/columnHeaders/GridColumnHeaderItem.js +5 -6
  239. package/node/components/columnHeaders/index.js +13 -0
  240. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  241. package/node/components/containers/GridRoot.js +28 -17
  242. package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
  243. package/node/components/panel/GridPreferencesPanel.js +1 -1
  244. package/node/constants/defaultGridSlotsComponents.js +1 -0
  245. package/node/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  246. package/node/hooks/core/pipeProcessing/index.js +44 -0
  247. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +93 -0
  248. package/node/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +4 -4
  249. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  250. package/node/hooks/core/useGridInitialization.js +2 -2
  251. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
  252. package/node/hooks/features/columns/gridColumnsUtils.js +54 -21
  253. package/node/hooks/features/columns/useGridColumns.js +36 -27
  254. package/node/hooks/features/dimensions/useGridDimensions.js +2 -1
  255. package/node/hooks/features/editRows/useGridCellEditing.new.js +24 -7
  256. package/node/hooks/features/editRows/useGridRowEditing.new.js +24 -7
  257. package/node/hooks/features/events/useGridEvents.js +2 -0
  258. package/node/hooks/features/filter/useGridFilter.js +4 -4
  259. package/node/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +29 -6
  260. package/node/hooks/features/pagination/useGridPage.js +8 -3
  261. package/node/hooks/features/pagination/useGridPageSize.js +3 -3
  262. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +20 -5
  263. package/node/hooks/features/rows/gridRowsUtils.js +18 -0
  264. package/node/hooks/features/rows/index.js +15 -1
  265. package/node/hooks/features/rows/useGridRows.js +5 -5
  266. package/node/hooks/features/rows/useGridRowsMeta.js +3 -3
  267. package/node/hooks/features/scroll/useGridScroll.js +3 -13
  268. package/node/hooks/features/selection/useGridSelection.js +71 -24
  269. package/node/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  270. package/node/hooks/features/sorting/useGridSorting.js +3 -3
  271. package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  272. package/node/index.js +1 -1
  273. package/node/internals/index.js +4 -12
  274. package/node/locales/daDK.js +32 -32
  275. package/node/models/colDef/index.js +0 -13
  276. package/node/models/events/gridEvents.js +4 -2
  277. package/node/models/gridRows.js +1 -34
  278. package/node/models/index.js +13 -13
  279. package/node/models/params/gridPreferencePanelParams.js +5 -0
  280. package/node/models/params/index.js +13 -0
  281. package/package.json +1 -1
  282. package/components/columnHeaders/ColumnHeaderFilterIcon.d.ts +0 -5
  283. package/hooks/core/preProcessing/index.d.ts +0 -3
  284. package/hooks/core/preProcessing/index.js +0 -3
  285. package/hooks/core/preProcessing/useGridPreProcessing.d.ts +0 -6
  286. package/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  287. package/hooks/core/preProcessing/useGridRegisterPreProcessor.d.ts +0 -7
  288. package/hooks/features/keyboard/useGridKeyboard.d.ts +0 -10
  289. package/hooks/features/keyboard/useGridKeyboard.js +0 -70
  290. package/legacy/hooks/core/preProcessing/index.js +0 -3
  291. package/legacy/hooks/core/preProcessing/useGridPreProcessing.js +0 -62
  292. package/legacy/hooks/features/keyboard/useGridKeyboard.js +0 -70
  293. package/modern/hooks/core/preProcessing/index.js +0 -3
  294. package/modern/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  295. package/modern/hooks/features/keyboard/useGridKeyboard.js +0 -70
  296. package/node/hooks/core/preProcessing/index.js +0 -44
  297. package/node/hooks/core/preProcessing/useGridPreProcessing.js +0 -72
  298. package/node/hooks/features/keyboard/useGridKeyboard.js +0 -91
package/CHANGELOG.md CHANGED
@@ -3,6 +3,80 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 5.8.0
7
+ <!-- generated comparing v5.7.0..master -->
8
+ _Apr 4, 2022_
9
+
10
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🚀 Expose new methods to save and restore the grid state (#4028) @flaviendelangle
13
+
14
+ The different methods to save and restore the data-grid state are now [documented](mui.com/components/data-grid/state/#save-and-restore-the-state)
15
+
16
+ - ⌚️ Move date and time picker components from the lab (#3451) @flaviendelangle
17
+
18
+ Date and time picker components have been moved to the MUI-X repo.
19
+ They are now accessible in their own packages: `@mui/x-date-pickers` and `@mui/x-date-pickers-pro`.
20
+ For more information, you can read the [blog article](https://mui.com/blog/lab-pickers-to-mui-x) and the [migration guide](https://mui.com/x/react-date-pickers/migration-lab)
21
+
22
+ - 📝 Add `onProcessRowUpdateError` prop to simplify error management in edit mode (#4267) @m4theushw
23
+ - ✨ Add generic typing to `GridColDef` and derived interfaces (#4064) @flaviendelangle
24
+
25
+ You can now strongly type all the objects related to the row and the cell values.
26
+ Here is an example, you can find out more in the description of #4064.
27
+
28
+ ```tsx
29
+ const rows: Movie[] = [];
30
+
31
+ return (
32
+ <DataGrid
33
+ rows={rows}
34
+ columns={[{
35
+ // typeof params.row => Movie (R)
36
+ valueGetter: params => params.row.year,
37
+ }]}
38
+ />
39
+ );
40
+ ```
41
+
42
+ ### `@mui/x-data-grid@v5.8.0` / `@mui/x-data-grid-pro@v5.8.0`
43
+
44
+ #### Changes
45
+
46
+ - [DataGrid] Add `onProcessRowUpdateError` prop (#4267) @m4theushw
47
+ - [DataGrid] Add generic typing to `GridColDef` and derived interfaces (#4064) @flaviendelangle
48
+ - [DataGrid] Add missing classes on `gridClasses` and `gridPanelClasses` (#4273) @flaviendelangle
49
+ - [DataGrid] Add `onPreferencePanelClose`/`onPreferencePanelOpen` props (#4265) @kyeongsoosoo
50
+ - [DataGrid] Add slot for filter icon button (#4276) @m4theushw
51
+ - [DataGrid] Add the documentation of the portable state (#4028) @flaviendelangle
52
+ - [DataGrid] Allow to use keyboard navigation even with no rows (#4302) @alexfauquette
53
+ - [DataGrid] Fix inconsistency in the border of the last column (#4224) @alexfauquette
54
+ - [DataGrid] Fix overlay blocking scrollbar when rows is empty (#4281) @m4theushw
55
+ - [DataGrid] Improve selection with keyboard (#4157) @flaviendelangle
56
+ - [DataGrid] Scroll to the top of the page when changing page (#4272) @flaviendelangle
57
+ - [l10n] Improve Danish (da-DK) locale (#4271) @simplenotezy
58
+
59
+ ### `@mui/x-date-pickers@v5.0.0-alpha.0` / `@mui/x-date-pickers-pro@v5.0.0-alpha.0`
60
+
61
+ #### Changes
62
+
63
+ - [DatePicker] Import date-picker components from the lab (#3451) @flaviendelangle
64
+
65
+ ### Docs
66
+
67
+ - [docs] Create an home page for "Advanced Components" (#4298) @flaviendelangle
68
+ - [docs] Update installation docs (#4259) @cherniavskii
69
+ - [docs] New page for the migration of date and time pickers from the lab (#4327) @flaviendelangle
70
+
71
+ ### Core
72
+
73
+ - [core] Fix typo in issue template @oliviertassinari
74
+ - [core] Move last variables outside of the models folder (#4303) @flaviendelangle
75
+ - [core] Remove dead code (#4283) @oliviertassinari
76
+ - [core] Rename the "pre-processing" concept "pipe-processing" (#4261) @flaviendelangle
77
+ - [core] Reuse previous state when updating the columns prop (#4229) @m4theushw
78
+ - [core] Fix Argos flakyness for pickers tests (#4312) @flaviendelangle
79
+
6
80
  ## 5.7.0
7
81
 
8
82
  _Mar 24, 2022_
@@ -1,4 +1,9 @@
1
1
  import * as React from 'react';
2
- export declare const DataGrid: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<Partial<import("../models/props/DataGridProps").DataGridPropsWithDefaultValues> & import("../models/props/DataGridProps").DataGridPropsWithComplexDefaultValueBeforeProcessing & import("../models/props/DataGridProps").DataGridPropsWithoutDefaultValue, import("../models/props/DataGridProps").DataGridForcedPropsKey> & {
3
- pagination?: true | undefined;
4
- } & React.RefAttributes<HTMLDivElement>>>;
2
+ import { DataGridProps } from '../models/props/DataGridProps';
3
+ import { GridValidRowModel } from '../models/gridRows';
4
+ interface DataGridComponent {
5
+ <R extends GridValidRowModel = any>(props: DataGridProps<R> & React.RefAttributes<HTMLDivElement>): JSX.Element;
6
+ propTypes?: any;
7
+ }
8
+ export declare const DataGrid: DataGridComponent;
9
+ export {};
@@ -498,6 +498,28 @@ DataGridRaw.propTypes = {
498
498
  */
499
499
  onPageSizeChange: PropTypes.func,
500
500
 
501
+ /**
502
+ * Callback fired when the preferences panel is closed.
503
+ * @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].
504
+ * @param {MuiEvent<{}>} event The event object.
505
+ * @param {GridCallbackDetails} details Additional details for this callback.
506
+ */
507
+ onPreferencePanelClose: PropTypes.func,
508
+
509
+ /**
510
+ * Callback fired when the preferences panel is opened.
511
+ * @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].
512
+ * @param {MuiEvent<{}>} event The event object.
513
+ * @param {GridCallbackDetails} details Additional details for this callback.
514
+ */
515
+ onPreferencePanelOpen: PropTypes.func,
516
+
517
+ /**
518
+ * Callback called when `processRowUpdate` throws an error or rejects.
519
+ * @param {any} error The error thrown.
520
+ */
521
+ onProcessRowUpdateError: PropTypes.func,
522
+
501
523
  /**
502
524
  * Callback fired when the grid is resized.
503
525
  * @param {ElementSize} containerSize With all properties from [[ElementSize]].
@@ -604,9 +626,10 @@ DataGridRaw.propTypes = {
604
626
  /**
605
627
  * Callback called before updating a row with new values in the row and cell editing.
606
628
  * Only applied if `props.experimentalFeatures.newEditingApi: true`.
607
- * @param {GridRowModel} newRow Row object with the new values.
608
- * @param {GridRowModel} oldRow Row object with the old values.
609
- * @returns {Promise<GridRowModel> | GridRowModel} The final values to update the row.
629
+ * @template R
630
+ * @param {R} newRow Row object with the new values.
631
+ * @param {R} oldRow Row object with the old values.
632
+ * @returns {Promise<R> | R} The final values to update the row.
610
633
  */
611
634
  processRowUpdate: PropTypes.func,
612
635
 
@@ -631,7 +654,7 @@ DataGridRaw.propTypes = {
631
654
  /**
632
655
  * Set of rows of type [[GridRowsProp]].
633
656
  */
634
- rows: PropTypes.arrayOf(PropTypes.object).isRequired,
657
+ rows: PropTypes.array.isRequired,
635
658
 
636
659
  /**
637
660
  * Sets the type of space between rows added by `getRowSpacing`.
@@ -8,8 +8,7 @@ import { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
8
8
  import { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
9
9
  import { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
10
10
  import { focusStateInitializer, useGridFocus } from '../hooks/features/focus/useGridFocus';
11
- import { useGridKeyboard } from '../hooks/features/keyboard/useGridKeyboard';
12
- import { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
11
+ import { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
13
12
  import { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
14
13
  import { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
15
14
  import { useGridEditing as useGridEditing_old, editingStateInitializer as editingStateInitializer_old } from '../hooks/features/editRows/useGridEditing.old';
@@ -51,6 +50,7 @@ export const useDataGridComponent = props => {
51
50
  useGridInitializeState(paginationStateInitializer, apiRef, props);
52
51
  useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
53
52
  useGridInitializeState(columnMenuStateInitializer, apiRef, props);
53
+ useGridKeyboardNavigation(apiRef, props);
54
54
  useGridSelection(apiRef, props);
55
55
  useGridColumns(apiRef, props);
56
56
  useGridRows(apiRef, props);
@@ -66,8 +66,6 @@ export const useDataGridComponent = props => {
66
66
  useGridRowsMeta(apiRef, props);
67
67
  useGridScroll(apiRef, props);
68
68
  useGridColumnMenu(apiRef);
69
- useGridKeyboard(apiRef);
70
- useGridKeyboardNavigation(apiRef, props);
71
69
  useGridCsvExport(apiRef);
72
70
  useGridPrintExport(apiRef, props);
73
71
  useGridClipboard(apiRef);
@@ -1,7 +1,8 @@
1
1
  import { DataGridProcessedProps, DataGridProps, DataGridPropsWithDefaultValues } from '../models/props/DataGridProps';
2
+ import { GridValidRowModel } from '../models';
2
3
  export declare const MAX_PAGE_SIZE = 100;
3
4
  /**
4
5
  * The default values of `DataGridPropsWithDefaultValues` to inject in the props of DataGrid.
5
6
  */
6
7
  export declare const DATA_GRID_PROPS_DEFAULT_VALUES: DataGridPropsWithDefaultValues;
7
- export declare const useDataGridProps: (inProps: DataGridProps) => DataGridProcessedProps;
8
+ export declare const useDataGridProps: <R extends GridValidRowModel>(inProps: DataGridProps<R>) => DataGridProcessedProps<R>;
@@ -1,2 +1,2 @@
1
1
  import { GridColTypeDef } from '../models/colDef/gridColDef';
2
- export declare const GRID_BOOLEAN_COL_DEF: GridColTypeDef;
2
+ export declare const GRID_BOOLEAN_COL_DEF: GridColTypeDef<boolean | null, any>;
@@ -1,2 +1,2 @@
1
1
  import { GridFilterOperator } from '../models/gridFilterOperator';
2
- export declare const getGridBooleanOperators: () => GridFilterOperator[];
2
+ export declare const getGridBooleanOperators: () => GridFilterOperator<any, boolean | null, any>[];
@@ -1,10 +1,6 @@
1
- import { GridCellValue } from '../models/gridCell';
2
1
  import { GridColTypeDef } from '../models/colDef/gridColDef';
3
- export declare function gridDateFormatter({ value }: {
4
- value: GridCellValue;
5
- }): string | number | boolean | object | null | undefined;
6
- export declare function gridDateTimeFormatter({ value }: {
7
- value: GridCellValue;
8
- }): string | number | boolean | object | null | undefined;
9
- export declare const GRID_DATE_COL_DEF: GridColTypeDef;
10
- export declare const GRID_DATETIME_COL_DEF: GridColTypeDef;
2
+ import { GridValueFormatterParams } from '../models/params/gridCellParams';
3
+ export declare function gridDateFormatter({ value }: GridValueFormatterParams<Date | string>): string;
4
+ export declare function gridDateTimeFormatter({ value }: GridValueFormatterParams<Date | string>): string;
5
+ export declare const GRID_DATE_COL_DEF: GridColTypeDef<Date | string, string>;
6
+ export declare const GRID_DATETIME_COL_DEF: GridColTypeDef<Date | string, string>;
@@ -10,7 +10,7 @@ export function gridDateFormatter({
10
10
  return value.toLocaleDateString();
11
11
  }
12
12
 
13
- return value;
13
+ return value != null ? value : '';
14
14
  }
15
15
  export function gridDateTimeFormatter({
16
16
  value
@@ -19,7 +19,7 @@ export function gridDateTimeFormatter({
19
19
  return value.toLocaleString();
20
20
  }
21
21
 
22
- return value;
22
+ return value != null ? value : '';
23
23
  }
24
24
  export const GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
25
25
  type: 'date',
@@ -1,2 +1,2 @@
1
1
  import { GridFilterOperator } from '../models/gridFilterOperator';
2
- export declare const getGridDateOperators: (showTime?: boolean | undefined) => GridFilterOperator[];
2
+ export declare const getGridDateOperators: (showTime?: boolean | undefined) => GridFilterOperator<any, string | number | Date, any>[];
@@ -1,3 +1,3 @@
1
- import { GridColumnTypesRecord } from './gridColumnTypesRecord';
1
+ import { GridColumnTypesRecord } from '../models/colDef/gridColumnTypesRecord';
2
2
  export declare const DEFAULT_GRID_COL_TYPE_KEY = "__default__";
3
3
  export declare const getGridDefaultColumnTypes: () => GridColumnTypesRecord;
@@ -1,9 +1,9 @@
1
- import { GRID_STRING_COL_DEF } from '../../colDef/gridStringColDef';
2
- import { GRID_NUMERIC_COL_DEF } from '../../colDef/gridNumericColDef';
3
- import { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from '../../colDef/gridDateColDef';
4
- import { GRID_BOOLEAN_COL_DEF } from '../../colDef/gridBooleanColDef';
5
- import { GRID_SINGLE_SELECT_COL_DEF } from '../../colDef/gridSingleSelectColDef';
6
- import { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../colDef/gridActionsColDef';
1
+ import { GRID_STRING_COL_DEF } from './gridStringColDef';
2
+ import { GRID_NUMERIC_COL_DEF } from './gridNumericColDef';
3
+ import { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from './gridDateColDef';
4
+ import { GRID_BOOLEAN_COL_DEF } from './gridBooleanColDef';
5
+ import { GRID_SINGLE_SELECT_COL_DEF } from './gridSingleSelectColDef';
6
+ import { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from './gridActionsColDef';
7
7
  export const DEFAULT_GRID_COL_TYPE_KEY = '__default__';
8
8
  export const getGridDefaultColumnTypes = () => {
9
9
  const nativeColumnTypes = {
@@ -1,2 +1,2 @@
1
1
  import { GridColTypeDef } from '../models/colDef/gridColDef';
2
- export declare const GRID_NUMERIC_COL_DEF: GridColTypeDef;
2
+ export declare const GRID_NUMERIC_COL_DEF: GridColTypeDef<number | string | null, string>;
@@ -1,6 +1,6 @@
1
1
  import { GridFilterOperator } from '../models/gridFilterOperator';
2
- export declare const getGridNumericOperators: () => GridFilterOperator[];
2
+ export declare const getGridNumericOperators: () => GridFilterOperator<any, number | string | null, any>[];
3
3
  /**
4
4
  * @deprecated Use `getGridNumericOperators` instead.
5
5
  */
6
- export declare const getGridNumericColumnOperators: (() => GridFilterOperator[]) | ((...args: any[]) => any);
6
+ export declare const getGridNumericColumnOperators: (() => GridFilterOperator<any, number | string | null, any>[]) | ((...args: any[]) => any);
@@ -1,2 +1,2 @@
1
1
  import { GridColTypeDef } from '../models/colDef/gridColDef';
2
- export declare const GRID_STRING_COL_DEF: GridColTypeDef;
2
+ export declare const GRID_STRING_COL_DEF: GridColTypeDef<any, any>;
@@ -1,2 +1,2 @@
1
1
  import { GridFilterOperator } from '../models/gridFilterOperator';
2
- export declare const getGridStringOperators: () => GridFilterOperator[];
2
+ export declare const getGridStringOperators: () => GridFilterOperator<any, number | string | null, any>[];
package/colDef/index.d.ts CHANGED
@@ -10,3 +10,4 @@ export * from './gridDateOperators';
10
10
  export * from './gridNumericOperators';
11
11
  export * from './gridSingleSelectOperators';
12
12
  export * from './gridStringOperators';
13
+ export * from './gridDefaultColumnTypes';
package/colDef/index.js CHANGED
@@ -9,4 +9,5 @@ export * from './gridBooleanOperators';
9
9
  export * from './gridDateOperators';
10
10
  export * from './gridNumericOperators';
11
11
  export * from './gridSingleSelectOperators';
12
- export * from './gridStringOperators';
12
+ export * from './gridStringOperators';
13
+ export * from './gridDefaultColumnTypes';
@@ -286,7 +286,7 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
286
286
  isLastVisible: PropTypes.bool,
287
287
  lastColumnToRender: PropTypes.number.isRequired,
288
288
  renderedColumns: PropTypes.arrayOf(PropTypes.object).isRequired,
289
- row: PropTypes.object.isRequired,
289
+ row: PropTypes.any.isRequired,
290
290
  rowHeight: PropTypes.number.isRequired,
291
291
  rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
292
292
  selected: PropTypes.bool.isRequired,
@@ -1,18 +1,18 @@
1
1
  import * as React from 'react';
2
- import { GridCellMode, GridCellValue, GridRowId } from '../../models';
2
+ import { GridCellMode, GridRowId } from '../../models';
3
3
  import { GridAlignment } from '../../models/colDef/gridColDef';
4
- export interface GridCellProps {
4
+ export interface GridCellProps<V = any, F = V> {
5
5
  align: GridAlignment;
6
6
  className?: string;
7
7
  colIndex: number;
8
8
  field: string;
9
9
  rowId: GridRowId;
10
- formattedValue?: GridCellValue;
10
+ formattedValue?: F;
11
11
  hasFocus?: boolean;
12
12
  height: number;
13
13
  isEditable?: boolean;
14
14
  showRightBorder?: boolean;
15
- value?: GridCellValue;
15
+ value?: V;
16
16
  width: number;
17
17
  cellMode?: GridCellMode;
18
18
  children: React.ReactNode;
@@ -198,7 +198,7 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
198
198
  className: PropTypes.string,
199
199
  colIndex: PropTypes.number.isRequired,
200
200
  field: PropTypes.string.isRequired,
201
- formattedValue: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),
201
+ formattedValue: PropTypes.any,
202
202
  hasFocus: PropTypes.bool,
203
203
  height: PropTypes.number.isRequired,
204
204
  isEditable: PropTypes.bool,
@@ -212,7 +212,7 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
212
212
  rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
213
213
  showRightBorder: PropTypes.bool,
214
214
  tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
215
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),
215
+ value: PropTypes.any,
216
216
  width: PropTypes.number.isRequired
217
217
  } : void 0;
218
218
  export { GridCell };
@@ -126,7 +126,7 @@ process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
126
126
  * Get the cell value of a row and field.
127
127
  * @param {GridRowId} id The row id.
128
128
  * @param {string} field The field.
129
- * @returns {GridCellValue} The cell value.
129
+ * @returns {any} The cell value.
130
130
  * @deprecated Use `params.row` to directly access the fields you want instead.
131
131
  */
132
132
  getValue: PropTypes.func.isRequired,
@@ -151,7 +151,7 @@ process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
151
151
  /**
152
152
  * The row model of the row that the current cell belongs to.
153
153
  */
154
- row: PropTypes.any.isRequired,
154
+ row: PropTypes.object.isRequired,
155
155
 
156
156
  /**
157
157
  * The node of the row that the current cell belongs to.
@@ -187,7 +187,7 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
187
187
  * Get the cell value of a row and field.
188
188
  * @param {GridRowId} id The row id.
189
189
  * @param {string} field The field.
190
- * @returns {GridCellValue} The cell value.
190
+ * @returns {any} The cell value.
191
191
  * @deprecated Use `params.row` to directly access the fields you want instead.
192
192
  */
193
193
  getValue: PropTypes.func.isRequired,
@@ -212,7 +212,7 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
212
212
  /**
213
213
  * The row model of the row that the current cell belongs to.
214
214
  */
215
- row: PropTypes.any.isRequired,
215
+ row: PropTypes.object.isRequired,
216
216
 
217
217
  /**
218
218
  * The node of the row that the current cell belongs to.
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import { GridColumnHeaderParams } from '../../models/params/gridColumnHeaderParams';
3
+ export interface ColumnHeaderFilterIconButtonProps {
4
+ field: string;
5
+ counter?: number;
6
+ onClick?: (params: GridColumnHeaderParams, event: React.MouseEvent<HTMLButtonElement>) => void;
7
+ }
8
+ declare function GridColumnHeaderFilterIconButton(props: ColumnHeaderFilterIconButtonProps): JSX.Element | null;
9
+ declare namespace GridColumnHeaderFilterIconButton {
10
+ var propTypes: any;
11
+ }
12
+ export { GridColumnHeaderFilterIconButton };
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
+ import PropTypes from 'prop-types';
3
4
  import { unstable_composeClasses as composeClasses } from '@mui/material';
4
5
  import IconButton from '@mui/material/IconButton';
5
6
  import Badge from '@mui/material/Badge';
@@ -22,11 +23,13 @@ const useUtilityClasses = ownerState => {
22
23
  return composeClasses(slots, getDataGridUtilityClass, classes);
23
24
  };
24
25
 
25
- export function ColumnHeaderFilterIcon(props) {
26
+ function GridColumnHeaderFilterIconButton(props) {
26
27
  var _rootProps$components;
27
28
 
28
29
  const {
29
- counter
30
+ counter,
31
+ field,
32
+ onClick
30
33
  } = props;
31
34
  const apiRef = useGridApiContext();
32
35
  const rootProps = useGridRootProps();
@@ -49,7 +52,11 @@ export function ColumnHeaderFilterIcon(props) {
49
52
  } else {
50
53
  apiRef.current.showFilterPanel();
51
54
  }
52
- }, [apiRef]);
55
+
56
+ if (onClick) {
57
+ onClick(apiRef.current.getColumnHeaderParams(field), event);
58
+ }
59
+ }, [apiRef, field, onClick]);
53
60
 
54
61
  if (!counter) {
55
62
  return null;
@@ -79,4 +86,15 @@ export function ColumnHeaderFilterIcon(props) {
79
86
  }), counter === 1 && iconButton]
80
87
  })
81
88
  }));
82
- }
89
+ }
90
+
91
+ process.env.NODE_ENV !== "production" ? GridColumnHeaderFilterIconButton.propTypes = {
92
+ // ----------------------------- Warning --------------------------------
93
+ // | These PropTypes are generated from the TypeScript type definitions |
94
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
95
+ // ----------------------------------------------------------------------
96
+ counter: PropTypes.number,
97
+ field: PropTypes.string.isRequired,
98
+ onClick: PropTypes.func
99
+ } : void 0;
100
+ export { GridColumnHeaderFilterIconButton };
@@ -10,7 +10,6 @@ import { GridColumnHeaderSortIcon } from './GridColumnHeaderSortIcon';
10
10
  import { GridColumnHeaderTitle } from './GridColumnHeaderTitle';
11
11
  import { GridColumnHeaderSeparator } from './GridColumnHeaderSeparator';
12
12
  import { ColumnHeaderMenuIcon } from './ColumnHeaderMenuIcon';
13
- import { ColumnHeaderFilterIcon } from './ColumnHeaderFilterIcon';
14
13
  import { GridColumnHeaderMenu } from '../menu/columnMenu/GridColumnHeaderMenu';
15
14
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
16
15
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -40,7 +39,7 @@ const useUtilityClasses = ownerState => {
40
39
  };
41
40
 
42
41
  function GridColumnHeaderItem(props) {
43
- var _apiRef$current$getRo, _column$sortingOrder, _column$headerName, _rootProps$components;
42
+ var _apiRef$current$getRo, _column$sortingOrder, _rootProps$components, _column$headerName, _rootProps$components2;
44
43
 
45
44
  const {
46
45
  column,
@@ -144,9 +143,10 @@ function GridColumnHeaderItem(props) {
144
143
  const sortingOrder = (_column$sortingOrder = column.sortingOrder) != null ? _column$sortingOrder : rootProps.sortingOrder;
145
144
 
146
145
  const columnTitleIconButtons = /*#__PURE__*/_jsxs(React.Fragment, {
147
- children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(ColumnHeaderFilterIcon, {
146
+ children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.components.ColumnHeaderFilterIconButton, _extends({
147
+ field: column.field,
148
148
  counter: filterItemsCounter
149
- }), column.sortable && !column.hideSortIcons && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
149
+ }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.columnHeaderFilterIconButton)), column.sortable && !column.hideSortIcons && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
150
150
  direction: sortDirection,
151
151
  index: sortIndex,
152
152
  sortingOrder: sortingOrder
@@ -212,7 +212,7 @@ function GridColumnHeaderItem(props) {
212
212
  open: columnMenuOpen,
213
213
  target: iconButtonRef.current,
214
214
  ContentComponent: rootProps.components.ColumnMenu,
215
- contentComponentProps: (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.columnMenu,
215
+ contentComponentProps: (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.columnMenu,
216
216
  onExited: handleExited
217
217
  })]
218
218
  }));
@@ -1,4 +1,5 @@
1
1
  export * from './GridColumnHeaderItem';
2
2
  export * from './GridColumnHeaderSeparator';
3
3
  export * from './GridColumnHeaderSortIcon';
4
+ export * from './GridColumnHeaderFilterIconButton';
4
5
  export * from './GridColumnHeaderTitle';
@@ -1,4 +1,5 @@
1
1
  export * from './GridColumnHeaderItem';
2
2
  export * from './GridColumnHeaderSeparator';
3
3
  export * from './GridColumnHeaderSortIcon';
4
+ export * from './GridColumnHeaderFilterIconButton';
4
5
  export * from './GridColumnHeaderTitle';
@@ -125,7 +125,7 @@ process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
125
125
  * Get the cell value of a row and field.
126
126
  * @param {GridRowId} id The row id.
127
127
  * @param {string} field The field.
128
- * @returns {GridCellValue} The cell value.
128
+ * @returns {any} The cell value.
129
129
  * @deprecated Use `params.row` to directly access the fields you want instead.
130
130
  */
131
131
  getValue: PropTypes.func.isRequired,
@@ -148,7 +148,7 @@ process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
148
148
  /**
149
149
  * The row model of the row that the current cell belongs to.
150
150
  */
151
- row: PropTypes.any.isRequired,
151
+ row: PropTypes.object.isRequired,
152
152
 
153
153
  /**
154
154
  * The node of the row that the current cell belongs to.
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
2
  import { GridColumnHeaderParams } from '../../models/params/gridColumnHeaderParams';
3
- declare const GridHeaderCheckbox: React.ForwardRefExoticComponent<GridColumnHeaderParams & React.RefAttributes<HTMLInputElement>>;
3
+ declare const GridHeaderCheckbox: React.ForwardRefExoticComponent<GridColumnHeaderParams<any, import("../../models/gridRows").GridValidRowModel, any> & React.RefAttributes<HTMLInputElement>>;
4
4
  export { GridHeaderCheckbox };
@@ -4,8 +4,7 @@ const _excluded = ["children", "className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { useForkRef } from '@mui/material/utils';
8
- import NoSsr from '@mui/material/NoSsr';
7
+ import { useForkRef, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';
9
8
  import { GridRootStyles } from './GridRootStyles';
10
9
  import { gridVisibleColumnDefinitionsSelector } from '../../hooks/features/columns/gridColumnsSelector';
11
10
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
@@ -30,21 +29,34 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
30
29
  const totalRowCount = useGridSelector(apiRef, gridRowCountSelector);
31
30
  const rootContainerRef = React.useRef(null);
32
31
  const handleRef = useForkRef(rootContainerRef, ref);
33
- apiRef.current.rootElementRef = rootContainerRef;
34
- return /*#__PURE__*/_jsx(NoSsr, {
35
- children: /*#__PURE__*/_jsx(GridRootStyles, _extends({
36
- ref: handleRef,
37
- className: clsx(className, (_rootProps$classes = rootProps.classes) == null ? void 0 : _rootProps$classes.root, gridClasses.root, rootProps.autoHeight && gridClasses.autoHeight),
38
- role: "grid",
39
- "aria-colcount": visibleColumns.length,
40
- "aria-rowcount": totalRowCount,
41
- "aria-multiselectable": !rootProps.disableMultipleSelection,
42
- "aria-label": rootProps['aria-label'],
43
- "aria-labelledby": rootProps['aria-labelledby']
44
- }, other, {
45
- children: children
46
- }))
47
- });
32
+ apiRef.current.rootElementRef = rootContainerRef; // Our implementation of <NoSsr />
33
+
34
+ const [mountedState, setMountedState] = React.useState(false);
35
+ useEnhancedEffect(() => {
36
+ setMountedState(true);
37
+ }, []);
38
+ useEnhancedEffect(() => {
39
+ if (mountedState) {
40
+ apiRef.current.unstable_updateGridDimensionsRef();
41
+ }
42
+ }, [apiRef, mountedState]);
43
+
44
+ if (!mountedState) {
45
+ return null;
46
+ }
47
+
48
+ return /*#__PURE__*/_jsx(GridRootStyles, _extends({
49
+ ref: handleRef,
50
+ className: clsx(className, (_rootProps$classes = rootProps.classes) == null ? void 0 : _rootProps$classes.root, gridClasses.root, rootProps.autoHeight && gridClasses.autoHeight),
51
+ role: "grid",
52
+ "aria-colcount": visibleColumns.length,
53
+ "aria-rowcount": totalRowCount,
54
+ "aria-multiselectable": !rootProps.disableMultipleSelection,
55
+ "aria-label": rootProps['aria-label'],
56
+ "aria-labelledby": rootProps['aria-labelledby']
57
+ }, other, {
58
+ children: children
59
+ }));
48
60
  });
49
61
  process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
50
62
  // ----------------------------- Warning --------------------------------
@@ -30,7 +30,7 @@ const GridColumnMenu = /*#__PURE__*/React.forwardRef(function GridColumnMenu(pro
30
30
  onClick: hideMenu,
31
31
  column: currentColumn
32
32
  })];
33
- const preProcessedButtons = apiRef.current.unstable_applyPreProcessors('columnMenu', defaultButtons, currentColumn);
33
+ const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('columnMenu', defaultButtons, currentColumn);
34
34
  return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({
35
35
  ref: ref
36
36
  }, props, {