@mui/x-data-grid 6.0.0-alpha.2 → 6.0.0-alpha.4

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 (293) hide show
  1. package/CHANGELOG.md +493 -141
  2. package/DataGrid/DataGrid.js +14 -34
  3. package/DataGrid/useDataGridComponent.js +8 -14
  4. package/DataGrid/useDataGridProps.js +3 -3
  5. package/colDef/gridCheckboxSelectionColDef.js +1 -1
  6. package/colDef/gridNumericOperators.d.ts +1 -1
  7. package/colDef/gridSingleSelectOperators.d.ts +1 -1
  8. package/colDef/gridStringOperators.d.ts +1 -1
  9. package/components/GridFooter.js +1 -1
  10. package/components/GridRow.js +2 -2
  11. package/components/base/GridBody.js +2 -2
  12. package/components/cell/GridEditInputCell.js +3 -8
  13. package/components/cell/GridEditSingleSelectCell.js +6 -38
  14. package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -0
  15. package/components/columnHeaders/GridColumnGroupHeader.js +32 -5
  16. package/components/columnSelection/GridHeaderCheckbox.js +3 -3
  17. package/components/containers/GridRoot.js +4 -3
  18. package/components/panel/GridColumnsPanel.d.ts +2 -0
  19. package/components/panel/GridColumnsPanel.js +10 -4
  20. package/components/panel/filterPanel/GridFilterForm.d.ts +12 -0
  21. package/components/panel/filterPanel/GridFilterForm.js +29 -7
  22. package/components/panel/filterPanel/GridFilterPanel.d.ts +12 -0
  23. package/components/panel/filterPanel/GridFilterPanel.js +64 -19
  24. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +1 -1
  25. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
  26. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +1 -1
  27. package/hooks/core/useGridInitialization.d.ts +1 -1
  28. package/hooks/core/useGridStateInitialization.d.ts +1 -1
  29. package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.d.ts +10 -1
  30. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +6 -0
  31. package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +34 -1
  32. package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.ts +15 -0
  33. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +89 -0
  34. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -15
  35. package/hooks/features/columnGrouping/useGridColumnGrouping.js +66 -66
  36. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  37. package/hooks/features/columnHeaders/useGridColumnHeaders.js +60 -116
  38. package/hooks/features/density/densitySelector.d.ts +0 -2
  39. package/hooks/features/density/densitySelector.js +1 -3
  40. package/hooks/features/density/densityState.d.ts +0 -1
  41. package/hooks/features/density/useGridDensity.d.ts +1 -1
  42. package/hooks/features/density/useGridDensity.js +9 -45
  43. package/hooks/features/dimensions/useGridDimensions.js +3 -2
  44. package/hooks/features/{editRows/gridEditRowsSelector.d.ts → editing/gridEditingSelectors.d.ts} +0 -0
  45. package/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  46. package/hooks/features/editing/index.d.ts +1 -0
  47. package/hooks/features/editing/index.js +1 -0
  48. package/hooks/features/{editRows/useGridCellEditing.new.d.ts → editing/useGridCellEditing.d.ts} +0 -0
  49. package/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
  50. package/hooks/features/{editRows/useGridEditing.new.d.ts → editing/useGridEditing.d.ts} +0 -0
  51. package/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
  52. package/hooks/features/{editRows/useGridRowEditing.new.d.ts → editing/useGridRowEditing.d.ts} +0 -0
  53. package/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
  54. package/hooks/features/export/useGridPrintExport.js +2 -2
  55. package/hooks/features/focus/gridFocusState.d.ts +6 -0
  56. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  57. package/hooks/features/focus/gridFocusStateSelector.js +6 -2
  58. package/hooks/features/focus/useGridFocus.js +69 -11
  59. package/hooks/features/index.d.ts +2 -2
  60. package/hooks/features/index.js +2 -2
  61. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +135 -1
  62. package/hooks/features/{selection/gridSelectionSelector.d.ts → rowSelection/gridRowSelectionSelector.d.ts} +1 -1
  63. package/hooks/features/rowSelection/gridRowSelectionSelector.js +9 -0
  64. package/hooks/features/rowSelection/index.d.ts +1 -0
  65. package/hooks/features/rowSelection/index.js +1 -0
  66. package/hooks/features/rowSelection/useGridRowSelection.d.ts +12 -0
  67. package/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
  68. package/hooks/features/{selection/useGridSelectionPreProcessors.d.ts → rowSelection/useGridRowSelectionPreProcessors.d.ts} +1 -1
  69. package/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
  70. package/hooks/features/rows/gridRowsInterfaces.d.ts +4 -0
  71. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  72. package/hooks/features/rows/gridRowsUtils.js +5 -2
  73. package/hooks/features/rows/useGridRows.js +23 -7
  74. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  75. package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  76. package/hooks/utils/useGridApi.d.ts +1 -1
  77. package/hooks/utils/useGridApiEventHandler.d.ts +2 -2
  78. package/hooks/utils/useGridApiRef.d.ts +1 -1
  79. package/hooks/utils/useGridInitializeState.d.ts +1 -1
  80. package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
  81. package/hooks/utils/useGridSelector.d.ts +1 -1
  82. package/hooks/utils/useGridState.d.ts +1 -1
  83. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  84. package/index.js +1 -1
  85. package/internals/index.d.ts +3 -5
  86. package/internals/index.js +3 -5
  87. package/legacy/DataGrid/DataGrid.js +14 -34
  88. package/legacy/DataGrid/useDataGridComponent.js +8 -14
  89. package/legacy/DataGrid/useDataGridProps.js +3 -3
  90. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -1
  91. package/legacy/components/GridFooter.js +1 -1
  92. package/legacy/components/GridRow.js +2 -2
  93. package/legacy/components/base/GridBody.js +2 -2
  94. package/legacy/components/cell/GridEditInputCell.js +3 -8
  95. package/legacy/components/cell/GridEditSingleSelectCell.js +6 -52
  96. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +46 -13
  97. package/legacy/components/columnSelection/GridHeaderCheckbox.js +3 -3
  98. package/legacy/components/containers/GridRoot.js +4 -3
  99. package/legacy/components/panel/GridColumnsPanel.js +10 -3
  100. package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -7
  101. package/legacy/components/panel/filterPanel/GridFilterPanel.js +67 -18
  102. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +33 -1
  103. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +96 -0
  104. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +64 -64
  105. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +70 -122
  106. package/legacy/hooks/features/density/densitySelector.js +0 -6
  107. package/legacy/hooks/features/density/useGridDensity.js +6 -44
  108. package/legacy/hooks/features/dimensions/useGridDimensions.js +3 -2
  109. package/legacy/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  110. package/legacy/hooks/features/editing/index.js +1 -0
  111. package/legacy/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
  112. package/legacy/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
  113. package/legacy/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
  114. package/legacy/hooks/features/export/useGridPrintExport.js +2 -2
  115. package/legacy/hooks/features/focus/gridFocusStateSelector.js +8 -0
  116. package/legacy/hooks/features/focus/useGridFocus.js +72 -11
  117. package/legacy/hooks/features/index.js +2 -2
  118. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +129 -1
  119. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +19 -0
  120. package/legacy/hooks/features/rowSelection/index.js +1 -0
  121. package/legacy/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
  122. package/legacy/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
  123. package/legacy/hooks/features/rows/gridRowsUtils.js +5 -2
  124. package/legacy/hooks/features/rows/useGridRows.js +25 -7
  125. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  126. package/legacy/index.js +1 -1
  127. package/legacy/internals/index.js +3 -5
  128. package/legacy/locales/trTR.js +17 -17
  129. package/legacy/models/api/{gridSelectionApi.js → gridRowSelectionApi.js} +0 -0
  130. package/legacy/models/api/index.js +1 -1
  131. package/legacy/models/{gridSelectionModel.js → gridRowSelectionModel.js} +0 -0
  132. package/legacy/models/index.js +1 -1
  133. package/{models/api/gridSelectionApi.js → legacy/models/params/gridColumnGroupHeaderParams.js} +0 -0
  134. package/legacy/models/params/gridEditCellParams.js +0 -4
  135. package/legacy/models/params/index.js +1 -0
  136. package/locales/trTR.js +17 -17
  137. package/models/api/gridApiCommon.d.ts +3 -6
  138. package/models/api/gridApiCommunity.d.ts +1 -7
  139. package/models/api/gridEditingApi.d.ts +36 -121
  140. package/models/api/gridFocusApi.d.ts +13 -0
  141. package/models/api/{gridSelectionApi.d.ts → gridRowSelectionApi.d.ts} +2 -2
  142. package/models/{gridSelectionModel.js → api/gridRowSelectionApi.js} +0 -0
  143. package/models/api/index.d.ts +2 -2
  144. package/models/api/index.js +1 -1
  145. package/models/colDef/gridColDef.d.ts +0 -8
  146. package/models/events/gridEventLookup.d.ts +30 -19
  147. package/models/gridColumnGrouping.d.ts +1 -26
  148. package/models/gridRowSelectionModel.d.ts +3 -0
  149. package/{modern/models/api/gridSelectionApi.js → models/gridRowSelectionModel.js} +0 -0
  150. package/models/gridStateCommunity.d.ts +2 -2
  151. package/models/index.d.ts +1 -1
  152. package/models/index.js +1 -1
  153. package/models/params/gridColumnGroupHeaderParams.d.ts +30 -0
  154. package/{modern/models/gridSelectionModel.js → models/params/gridColumnGroupHeaderParams.js} +0 -0
  155. package/models/params/gridEditCellParams.d.ts +4 -17
  156. package/models/params/gridEditCellParams.js +0 -4
  157. package/models/params/gridRowParams.d.ts +4 -4
  158. package/models/params/index.d.ts +1 -0
  159. package/models/params/index.js +1 -0
  160. package/models/props/DataGridProps.d.ts +8 -32
  161. package/modern/DataGrid/DataGrid.js +14 -34
  162. package/modern/DataGrid/useDataGridComponent.js +8 -12
  163. package/modern/DataGrid/useDataGridProps.js +3 -3
  164. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -1
  165. package/modern/components/GridFooter.js +1 -1
  166. package/modern/components/GridRow.js +2 -2
  167. package/modern/components/base/GridBody.js +2 -2
  168. package/modern/components/cell/GridEditInputCell.js +3 -4
  169. package/modern/components/cell/GridEditSingleSelectCell.js +6 -34
  170. package/modern/components/columnHeaders/GridColumnGroupHeader.js +32 -5
  171. package/modern/components/columnSelection/GridHeaderCheckbox.js +3 -3
  172. package/modern/components/containers/GridRoot.js +4 -3
  173. package/modern/components/panel/GridColumnsPanel.js +10 -4
  174. package/modern/components/panel/filterPanel/GridFilterForm.js +29 -7
  175. package/modern/components/panel/filterPanel/GridFilterPanel.js +62 -17
  176. package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +14 -1
  177. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +83 -0
  178. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +50 -62
  179. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +58 -98
  180. package/modern/hooks/features/density/densitySelector.js +1 -3
  181. package/modern/hooks/features/density/useGridDensity.js +9 -37
  182. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -2
  183. package/modern/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  184. package/modern/hooks/features/editing/index.js +1 -0
  185. package/modern/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
  186. package/modern/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
  187. package/modern/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
  188. package/modern/hooks/features/export/useGridPrintExport.js +2 -2
  189. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -2
  190. package/modern/hooks/features/focus/useGridFocus.js +69 -11
  191. package/modern/hooks/features/index.js +2 -2
  192. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +135 -1
  193. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +9 -0
  194. package/modern/hooks/features/rowSelection/index.js +1 -0
  195. package/modern/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
  196. package/modern/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
  197. package/modern/hooks/features/rows/gridRowsUtils.js +5 -2
  198. package/modern/hooks/features/rows/useGridRows.js +23 -7
  199. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  200. package/modern/index.js +1 -1
  201. package/modern/internals/index.js +3 -5
  202. package/modern/locales/trTR.js +17 -17
  203. package/modern/models/api/gridRowSelectionApi.js +1 -0
  204. package/modern/models/api/index.js +1 -1
  205. package/modern/models/gridRowSelectionModel.js +1 -0
  206. package/modern/models/index.js +1 -1
  207. package/modern/models/params/gridColumnGroupHeaderParams.js +1 -0
  208. package/modern/models/params/gridEditCellParams.js +0 -4
  209. package/modern/models/params/index.js +1 -0
  210. package/node/DataGrid/DataGrid.js +14 -34
  211. package/node/DataGrid/useDataGridComponent.js +9 -17
  212. package/node/DataGrid/useDataGridProps.js +3 -3
  213. package/node/colDef/gridCheckboxSelectionColDef.js +2 -2
  214. package/node/components/GridFooter.js +2 -2
  215. package/node/components/GridRow.js +2 -2
  216. package/node/components/base/GridBody.js +2 -2
  217. package/node/components/cell/GridEditInputCell.js +3 -9
  218. package/node/components/cell/GridEditSingleSelectCell.js +6 -38
  219. package/node/components/columnHeaders/GridColumnGroupHeader.js +32 -5
  220. package/node/components/columnSelection/GridHeaderCheckbox.js +3 -3
  221. package/node/components/containers/GridRoot.js +4 -2
  222. package/node/components/panel/GridColumnsPanel.js +10 -4
  223. package/node/components/panel/filterPanel/GridFilterForm.js +30 -7
  224. package/node/components/panel/filterPanel/GridFilterPanel.js +63 -19
  225. package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +40 -3
  226. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +102 -0
  227. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +68 -71
  228. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +57 -113
  229. package/node/hooks/features/density/densitySelector.js +2 -6
  230. package/node/hooks/features/density/useGridDensity.js +9 -48
  231. package/node/hooks/features/dimensions/useGridDimensions.js +3 -1
  232. package/node/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  233. package/node/hooks/features/{editRows → editing}/index.js +4 -4
  234. package/node/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +28 -13
  235. package/node/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +4 -4
  236. package/node/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +28 -14
  237. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  238. package/node/hooks/features/focus/gridFocusStateSelector.js +10 -4
  239. package/node/hooks/features/focus/useGridFocus.js +68 -10
  240. package/node/hooks/features/index.js +8 -8
  241. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +138 -1
  242. package/node/hooks/features/{selection/gridSelectionSelector.js → rowSelection/gridRowSelectionSelector.js} +6 -6
  243. package/node/hooks/features/rowSelection/index.js +18 -0
  244. package/node/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +43 -43
  245. package/node/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +3 -3
  246. package/node/hooks/features/rows/gridRowsUtils.js +5 -2
  247. package/node/hooks/features/rows/useGridRows.js +23 -7
  248. package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  249. package/node/index.js +1 -1
  250. package/node/internals/index.js +23 -45
  251. package/node/locales/trTR.js +17 -17
  252. package/node/models/api/{gridSelectionApi.js → gridRowSelectionApi.js} +0 -0
  253. package/node/models/api/index.js +4 -4
  254. package/node/models/{gridSelectionModel.js → gridRowSelectionModel.js} +0 -0
  255. package/node/models/index.js +4 -4
  256. package/node/models/params/gridColumnGroupHeaderParams.js +5 -0
  257. package/node/models/params/gridEditCellParams.js +0 -3
  258. package/node/models/params/index.js +13 -0
  259. package/package.json +2 -2
  260. package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.d.ts +0 -4
  261. package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -35
  262. package/hooks/features/editRows/index.d.ts +0 -1
  263. package/hooks/features/editRows/index.js +0 -1
  264. package/hooks/features/editRows/useGridCellEditing.old.d.ts +0 -4
  265. package/hooks/features/editRows/useGridCellEditing.old.js +0 -359
  266. package/hooks/features/editRows/useGridEditing.old.d.ts +0 -11
  267. package/hooks/features/editRows/useGridEditing.old.js +0 -167
  268. package/hooks/features/editRows/useGridRowEditing.old.d.ts +0 -4
  269. package/hooks/features/editRows/useGridRowEditing.old.js +0 -334
  270. package/hooks/features/selection/gridSelectionSelector.js +0 -9
  271. package/hooks/features/selection/index.d.ts +0 -1
  272. package/hooks/features/selection/index.js +0 -1
  273. package/hooks/features/selection/useGridSelection.d.ts +0 -12
  274. package/legacy/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -35
  275. package/legacy/hooks/features/editRows/index.js +0 -1
  276. package/legacy/hooks/features/editRows/useGridCellEditing.old.js +0 -411
  277. package/legacy/hooks/features/editRows/useGridEditing.old.js +0 -184
  278. package/legacy/hooks/features/editRows/useGridRowEditing.old.js +0 -505
  279. package/legacy/hooks/features/selection/gridSelectionSelector.js +0 -19
  280. package/legacy/hooks/features/selection/index.js +0 -1
  281. package/models/gridSelectionModel.d.ts +0 -3
  282. package/modern/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -29
  283. package/modern/hooks/features/editRows/index.js +0 -1
  284. package/modern/hooks/features/editRows/useGridCellEditing.old.js +0 -355
  285. package/modern/hooks/features/editRows/useGridEditing.old.js +0 -163
  286. package/modern/hooks/features/editRows/useGridRowEditing.old.js +0 -326
  287. package/modern/hooks/features/selection/gridSelectionSelector.js +0 -9
  288. package/modern/hooks/features/selection/index.js +0 -1
  289. package/node/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -55
  290. package/node/hooks/features/editRows/useGridCellEditing.old.js +0 -380
  291. package/node/hooks/features/editRows/useGridEditing.old.js +0 -193
  292. package/node/hooks/features/editRows/useGridRowEditing.old.js +0 -358
  293. package/node/hooks/features/selection/index.js +0 -18
@@ -11,13 +11,12 @@ import { focusStateInitializer, useGridFocus } from '../hooks/features/focus/use
11
11
  import { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
12
12
  import { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
13
13
  import { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
14
- import { useGridEditing as useGridEditing_old, editingStateInitializer as editingStateInitializer_old } from '../hooks/features/editRows/useGridEditing.old';
15
- import { useGridEditing as useGridEditing_new, editingStateInitializer as editingStateInitializer_new } from '../hooks/features/editRows/useGridEditing.new';
14
+ import { useGridEditing, editingStateInitializer } from '../hooks/features/editing/useGridEditing';
16
15
  import { useGridRows, rowsStateInitializer } from '../hooks/features/rows/useGridRows';
17
16
  import { useGridRowsPreProcessors } from '../hooks/features/rows/useGridRowsPreProcessors';
18
17
  import { useGridParamsApi } from '../hooks/features/rows/useGridParamsApi';
19
- import { selectionStateInitializer, useGridSelection } from '../hooks/features/selection/useGridSelection';
20
- import { useGridSelectionPreProcessors } from '../hooks/features/selection/useGridSelectionPreProcessors';
18
+ import { rowSelectionStateInitializer, useGridRowSelection } from '../hooks/features/rowSelection/useGridRowSelection';
19
+ import { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection/useGridRowSelectionPreProcessors';
21
20
  import { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';
22
21
  import { useGridScroll } from '../hooks/features/scroll/useGridScroll';
23
22
  import { useGridEvents } from '../hooks/features/events/useGridEvents';
@@ -26,27 +25,22 @@ import { rowsMetaStateInitializer, useGridRowsMeta } from '../hooks/features/row
26
25
  import { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
27
26
  import { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
28
27
  import { useGridColumnGrouping, columnGroupsStateInitializer } from '../hooks/features/columnGrouping/useGridColumnGrouping';
29
- import { useGridColumnGroupingPreProcessors } from '../hooks/features/columnGrouping/useGridColumnGroupingPreProcessors';
30
28
  export var useDataGridComponent = function useDataGridComponent(props) {
31
- var _props$experimentalFe, _props$experimentalFe2;
32
-
33
29
  var apiRef = useGridInitialization(undefined, props);
34
30
  /**
35
31
  * Register all pre-processors called during state initialization here.
36
32
  */
37
33
 
38
- useGridColumnGroupingPreProcessors(apiRef, props);
39
- useGridSelectionPreProcessors(apiRef, props);
34
+ useGridRowSelectionPreProcessors(apiRef, props);
40
35
  useGridRowsPreProcessors(apiRef);
41
36
  /**
42
37
  * Register all state initializers here.
43
38
  */
44
39
 
45
- useGridInitializeState(selectionStateInitializer, apiRef, props);
40
+ useGridInitializeState(rowSelectionStateInitializer, apiRef, props);
46
41
  useGridInitializeState(columnsStateInitializer, apiRef, props);
47
- useGridInitializeState(columnGroupsStateInitializer, apiRef, props);
48
42
  useGridInitializeState(rowsStateInitializer, apiRef, props);
49
- useGridInitializeState((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.newEditingApi ? editingStateInitializer_new : editingStateInitializer_old, apiRef, props);
43
+ useGridInitializeState(editingStateInitializer, apiRef, props);
50
44
  useGridInitializeState(focusStateInitializer, apiRef, props);
51
45
  useGridInitializeState(sortingStateInitializer, apiRef, props);
52
46
  useGridInitializeState(preferencePanelStateInitializer, apiRef, props);
@@ -55,14 +49,14 @@ export var useDataGridComponent = function useDataGridComponent(props) {
55
49
  useGridInitializeState(paginationStateInitializer, apiRef, props);
56
50
  useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
57
51
  useGridInitializeState(columnMenuStateInitializer, apiRef, props);
52
+ useGridInitializeState(columnGroupsStateInitializer, apiRef, props);
58
53
  useGridKeyboardNavigation(apiRef, props);
59
- useGridSelection(apiRef, props);
54
+ useGridRowSelection(apiRef, props);
60
55
  useGridColumns(apiRef, props);
61
56
  useGridRows(apiRef, props);
62
57
  useGridParamsApi(apiRef);
63
58
  useGridColumnSpanning(apiRef);
64
59
  useGridColumnGrouping(apiRef, props);
65
- var useGridEditing = (_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.newEditingApi ? useGridEditing_new : useGridEditing_old;
66
60
  useGridEditing(apiRef, props);
67
61
  useGridFocus(apiRef, props);
68
62
  useGridPreferencesPanel(apiRef, props);
@@ -8,7 +8,7 @@ var DATA_GRID_FORCED_PROPS = {
8
8
  apiRef: undefined,
9
9
  disableMultipleColumnsFiltering: true,
10
10
  disableMultipleColumnsSorting: true,
11
- disableMultipleSelection: true,
11
+ disableMultipleRowSelection: true,
12
12
  throttleRowsMs: undefined,
13
13
  hideFooterRowCount: false,
14
14
  pagination: true,
@@ -38,9 +38,9 @@ export var DATA_GRID_PROPS_DEFAULT_VALUES = {
38
38
  disableColumnSelector: false,
39
39
  disableDensitySelector: false,
40
40
  disableMultipleColumnsFiltering: false,
41
- disableMultipleSelection: false,
41
+ disableMultipleRowSelection: false,
42
42
  disableMultipleColumnsSorting: false,
43
- disableSelectionOnClick: false,
43
+ disableRowSelectionOnClick: false,
44
44
  disableVirtualization: false,
45
45
  disableIgnoreModificationsIfProcessingProps: false,
46
46
  editMode: GridEditModes.Cell,
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { GridCellCheckboxRenderer } from '../components/columnSelection/GridCellCheckboxRenderer';
4
4
  import { GridHeaderCheckbox } from '../components/columnSelection/GridHeaderCheckbox';
5
- import { selectedIdsLookupSelector } from '../hooks/features/selection/gridSelectionSelector';
5
+ import { selectedIdsLookupSelector } from '../hooks/features/rowSelection/gridRowSelectionSelector';
6
6
  import { GRID_BOOLEAN_COL_DEF } from './gridBooleanColDef';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  export var GRID_CHECKBOX_SELECTION_FIELD = '__check__';
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { useGridSelector } from '../hooks/utils/useGridSelector';
5
5
  import { gridTopLevelRowCountSelector } from '../hooks/features/rows/gridRowsSelector';
6
- import { selectedGridRowsCountSelector } from '../hooks/features/selection/gridSelectionSelector';
6
+ import { selectedGridRowsCountSelector } from '../hooks/features/rowSelection/gridRowSelectionSelector';
7
7
  import { gridVisibleTopLevelRowCountSelector } from '../hooks/features/filter/gridFilterSelector';
8
8
  import { useGridApiContext } from '../hooks/utils/useGridApiContext';
9
9
  import { GridRowCount } from './GridRowCount';
@@ -21,7 +21,7 @@ import { GRID_ACTIONS_COLUMN_TYPE } from '../colDef/gridActionsColDef';
21
21
  import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../constants/gridDetailPanelToggleField';
22
22
  import { gridSortModelSelector } from '../hooks/features/sorting/gridSortingSelector';
23
23
  import { gridRowMaximumTreeDepthSelector } from '../hooks/features/rows/gridRowsSelector';
24
- import { gridDensityHeaderGroupingMaxDepthSelector } from '../hooks/features/density/densitySelector';
24
+ import { gridColumnGroupsHeaderMaxDepthSelector } from '../hooks/features/columnGrouping/gridColumnGroupsSelector';
25
25
  import { randomNumberBetween } from '../utils/utils';
26
26
  import { jsx as _jsx } from "react/jsx-runtime";
27
27
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -89,7 +89,7 @@ var GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
89
89
  var columnsTotalWidth = useGridSelector(apiRef, gridColumnsTotalWidthSelector);
90
90
  var sortModel = useGridSelector(apiRef, gridSortModelSelector);
91
91
  var treeDepth = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector);
92
- var headerGroupingMaxDepth = useGridSelector(apiRef, gridDensityHeaderGroupingMaxDepthSelector);
92
+ var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
93
93
  var handleRef = useForkRef(ref, refProp);
94
94
  var ariaRowIndex = index + headerGroupingMaxDepth + 2; // 1 for the header row and 1 as it's 1-based
95
95
 
@@ -6,7 +6,7 @@ import { GridMainContainer } from '../containers/GridMainContainer';
6
6
  import { GridAutoSizer } from '../GridAutoSizer';
7
7
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
8
8
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
9
- import { gridDensityTotalHeaderHeightSelector } from '../../hooks/features/density/densitySelector';
9
+ import { gridTotalHeaderHeightSelector } from '../../hooks/features/columnGrouping/gridColumnGroupsSelector';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
 
@@ -16,7 +16,7 @@ function GridBody(props) {
16
16
  ColumnHeadersComponent = props.ColumnHeadersComponent;
17
17
  var apiRef = useGridApiContext();
18
18
  var rootProps = useGridRootProps();
19
- var totalHeaderHeight = useGridSelector(apiRef, gridDensityTotalHeaderHeightSelector);
19
+ var totalHeaderHeight = useGridSelector(apiRef, gridTotalHeaderHeightSelector);
20
20
 
21
21
  var _React$useState = React.useState(rootProps.disableVirtualization),
22
22
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -13,7 +13,6 @@ import InputBase from '@mui/material/InputBase';
13
13
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
14
14
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
15
15
  import { GridLoadIcon } from '../icons/index';
16
- import { SUBMIT_FILTER_STROKE_TIME } from '../panel/filterPanel/GridFilterInputValue';
17
16
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
18
17
  import { jsx as _jsx } from "react/jsx-runtime";
19
18
 
@@ -42,8 +41,6 @@ var GridEditInputCellRoot = styled(InputBase, {
42
41
  });
43
42
  });
44
43
  var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
45
- var _rootProps$experiment, _rootProps$experiment3;
46
-
47
44
  var rootProps = useGridRootProps();
48
45
 
49
46
  var id = props.id,
@@ -61,7 +58,7 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
61
58
  getValue = props.getValue,
62
59
  isValidating = props.isValidating,
63
60
  _props$debounceMs = props.debounceMs,
64
- debounceMs = _props$debounceMs === void 0 ? (_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.newEditingApi ? 200 : SUBMIT_FILTER_STROKE_TIME : _props$debounceMs,
61
+ debounceMs = _props$debounceMs === void 0 ? 200 : _props$debounceMs,
65
62
  isProcessingProps = props.isProcessingProps,
66
63
  onValueChange = props.onValueChange,
67
64
  other = _objectWithoutProperties(props, _excluded);
@@ -80,8 +77,6 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
80
77
  var classes = useUtilityClasses(ownerState);
81
78
  var handleChange = React.useCallback( /*#__PURE__*/function () {
82
79
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
83
- var _rootProps$experiment2;
84
-
85
80
  var newValue, column, parsedValue;
86
81
  return _regeneratorRuntime.wrap(function _callee$(_context) {
87
82
  while (1) {
@@ -101,7 +96,7 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
101
96
  column = apiRef.current.getColumn(field);
102
97
  parsedValue = newValue;
103
98
 
104
- if (column.valueParser && (_rootProps$experiment2 = rootProps.experimentalFeatures) != null && _rootProps$experiment2.newEditingApi) {
99
+ if (column.valueParser) {
105
100
  parsedValue = column.valueParser(newValue, apiRef.current.getCellParams(id, field));
106
101
  }
107
102
 
@@ -125,7 +120,7 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
125
120
  return function (_x) {
126
121
  return _ref2.apply(this, arguments);
127
122
  };
128
- }(), [apiRef, debounceMs, field, id, onValueChange, (_rootProps$experiment3 = rootProps.experimentalFeatures) == null ? void 0 : _rootProps$experiment3.newEditingApi]);
123
+ }(), [apiRef, debounceMs, field, id, onValueChange]);
129
124
  var meta = apiRef.current.unstable_getEditCellMeta ? apiRef.current.unstable_getEditCellMeta(id, field) : {};
130
125
  React.useEffect(function () {
131
126
  if (meta.changeReason !== 'debouncedSetEditCellValue') {
@@ -101,9 +101,7 @@ function GridEditSingleSelectCell(props) {
101
101
 
102
102
  var handleChange = /*#__PURE__*/function () {
103
103
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
104
- var _rootProps$experiment;
105
-
106
- var target, formattedTargetValue, isValid, canCommit, params;
104
+ var target, formattedTargetValue;
107
105
  return _regeneratorRuntime.wrap(function _callee$(_context) {
108
106
  while (1) {
109
107
  switch (_context.prev = _context.next) {
@@ -130,44 +128,6 @@ function GridEditSingleSelectCell(props) {
130
128
  }, event);
131
129
 
132
130
  case 8:
133
- isValid = _context.sent;
134
-
135
- if (!((_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.newEditingApi)) {
136
- _context.next = 11;
137
- break;
138
- }
139
-
140
- return _context.abrupt("return");
141
-
142
- case 11:
143
- if (!(rootProps.editMode === GridEditModes.Row || isValid === false)) {
144
- _context.next = 13;
145
- break;
146
- }
147
-
148
- return _context.abrupt("return");
149
-
150
- case 13:
151
- _context.next = 15;
152
- return Promise.resolve(apiRef.current.commitCellChange({
153
- id: id,
154
- field: field
155
- }, event));
156
-
157
- case 15:
158
- canCommit = _context.sent;
159
-
160
- if (canCommit) {
161
- apiRef.current.setCellMode(id, field, 'view');
162
-
163
- if (event.key) {
164
- // TODO v6: remove once we stop ignoring events fired from portals
165
- params = apiRef.current.getCellParams(id, field);
166
- apiRef.current.publishEvent('cellNavigationKeyDown', params, event);
167
- }
168
- }
169
-
170
- case 17:
171
131
  case "end":
172
132
  return _context.stop();
173
133
  }
@@ -187,17 +147,11 @@ function GridEditSingleSelectCell(props) {
187
147
  }
188
148
 
189
149
  if (reason === 'backdropClick' || isEscapeKey(event.key)) {
190
- var _rootProps$experiment2;
191
-
192
- if ((_rootProps$experiment2 = rootProps.experimentalFeatures) != null && _rootProps$experiment2.newEditingApi) {
193
- apiRef.current.stopCellEditMode({
194
- id: id,
195
- field: field,
196
- ignoreModifications: true
197
- });
198
- } else {
199
- apiRef.current.setCellMode(id, field, 'view');
200
- }
150
+ apiRef.current.stopCellEditMode({
151
+ id: id,
152
+ field: field,
153
+ ignoreModifications: true
154
+ });
201
155
  }
202
156
  };
203
157
 
@@ -36,9 +36,12 @@ function GridColumnGroupHeader(props) {
36
36
  fields = props.fields,
37
37
  height = props.height,
38
38
  colIndex = props.colIndex,
39
+ hasFocus = props.hasFocus,
40
+ tabIndex = props.tabIndex,
39
41
  isLastColumn = props.isLastColumn,
40
42
  extendRowFullWidth = props.extendRowFullWidth;
41
43
  var rootProps = useGridRootProps();
44
+ var headerCellRef = React.useRef(null);
42
45
  var apiRef = useGridApiContext();
43
46
  var columnGroupsLookup = useGridSelector(apiRef, gridColumnGroupsLookupSelector);
44
47
 
@@ -58,16 +61,18 @@ function GridColumnGroupHeader(props) {
58
61
  headerAlign = _group$headerAlign === void 0 ? undefined : _group$headerAlign;
59
62
  var headerComponent;
60
63
  var render = groupId && ((_columnGroupsLookup$g = columnGroupsLookup[groupId]) == null ? void 0 : _columnGroupsLookup$g.renderHeaderGroup);
61
- var renderParams = {
62
- groupId: groupId,
63
- headerName: headerName,
64
- description: description,
65
- depth: depth,
66
- maxDepth: maxDepth,
67
- fields: fields,
68
- colIndex: colIndex,
69
- isLastColumn: isLastColumn
70
- };
64
+ var renderParams = React.useMemo(function () {
65
+ return {
66
+ groupId: groupId,
67
+ headerName: headerName,
68
+ description: description,
69
+ depth: depth,
70
+ maxDepth: maxDepth,
71
+ fields: fields,
72
+ colIndex: colIndex,
73
+ isLastColumn: isLastColumn
74
+ };
75
+ }, [groupId, headerName, description, depth, maxDepth, fields, colIndex, isLastColumn]);
71
76
 
72
77
  if (groupId && render) {
73
78
  headerComponent = render(renderParams);
@@ -90,8 +95,36 @@ function GridColumnGroupHeader(props) {
90
95
  var id = useId();
91
96
  var elementId = groupId === null ? "empty-group-cell-".concat(id) : groupId;
92
97
  var classes = useUtilityClasses(ownerState);
98
+ React.useLayoutEffect(function () {
99
+ if (hasFocus) {
100
+ var focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
101
+ var elementToFocus = focusableElement || headerCellRef.current;
102
+ elementToFocus == null ? void 0 : elementToFocus.focus();
103
+ }
104
+ }, [apiRef, hasFocus]);
105
+ var publish = React.useCallback(function (eventName) {
106
+ return function (event) {
107
+ // Ignore portal
108
+ // See https://github.com/mui/mui-x/issues/1721
109
+ if (!event.currentTarget.contains(event.target)) {
110
+ return;
111
+ }
112
+
113
+ apiRef.current.publishEvent(eventName, renderParams, event);
114
+ };
115
+ }, // For now this is stupid, because renderParams change all the time.
116
+ // Need to move it's computation in the api, such that for a given depth+columnField, I can get the group parameters
117
+ [apiRef, renderParams]);
118
+ var mouseEventsHandlers = React.useMemo(function () {
119
+ return {
120
+ onKeyDown: publish('columnGroupHeaderKeyDown'),
121
+ onFocus: publish('columnGroupHeaderFocus'),
122
+ onBlur: publish('columnGroupHeaderBlur')
123
+ };
124
+ }, [publish]);
93
125
  var headerClassName = typeof group.headerClassName === 'function' ? group.headerClassName(renderParams) : group.headerClassName;
94
- return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, {
126
+ return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, _extends({
127
+ ref: headerCellRef,
95
128
  classes: classes,
96
129
  columnMenuOpen: false,
97
130
  colIndex: colIndex,
@@ -99,7 +132,7 @@ function GridColumnGroupHeader(props) {
99
132
  isResizing: false,
100
133
  sortDirection: null,
101
134
  hasFocus: false,
102
- tabIndex: -1,
135
+ tabIndex: tabIndex,
103
136
  isDraggable: false,
104
137
  headerComponent: headerComponent,
105
138
  headerClassName: headerClassName,
@@ -114,7 +147,7 @@ function GridColumnGroupHeader(props) {
114
147
  ,
115
148
  "data-fields": "|-".concat(fields.join('-|-'), "-|"),
116
149
  disableHeaderSeparator: true
117
- });
150
+ }, mouseEventsHandlers));
118
151
  }
119
152
 
120
153
  export { GridColumnGroupHeader };
@@ -7,7 +7,7 @@ import PropTypes from 'prop-types';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/material';
8
8
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
9
9
  import { gridTabIndexColumnHeaderSelector } from '../../hooks/features/focus/gridFocusStateSelector';
10
- import { gridSelectionStateSelector } from '../../hooks/features/selection/gridSelectionSelector';
10
+ import { gridRowSelectionStateSelector } from '../../hooks/features/rowSelection/gridRowSelectionSelector';
11
11
  import { isNavigationKey } from '../../utils/keyboardUtils';
12
12
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
13
13
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
@@ -42,7 +42,7 @@ var GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckb
42
42
  };
43
43
  var classes = useUtilityClasses(ownerState);
44
44
  var tabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
45
- var selection = useGridSelector(apiRef, gridSelectionStateSelector);
45
+ var selection = useGridSelector(apiRef, gridRowSelectionStateSelector);
46
46
  var visibleRowIds = useGridSelector(apiRef, gridVisibleSortedRowIdsSelector);
47
47
  var paginatedVisibleRowIds = useGridSelector(apiRef, gridPaginatedVisibleSortedGridRowIdsSelector);
48
48
  var filteredSelection = React.useMemo(function () {
@@ -112,7 +112,7 @@ var GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckb
112
112
  });
113
113
  }, []);
114
114
  React.useEffect(function () {
115
- return apiRef.current.subscribeEvent('selectionChange', handleSelectionChange);
115
+ return apiRef.current.subscribeEvent('rowSelectionChange', handleSelectionChange);
116
116
  }, [apiRef, handleSelectionChange]);
117
117
  var label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
118
118
  return /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({
@@ -13,7 +13,8 @@ import { useGridSelector } from '../../hooks/utils/useGridSelector';
13
13
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
14
14
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
15
15
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
16
- import { gridDensityHeaderGroupingMaxDepthSelector, gridDensityValueSelector } from '../../hooks/features/density/densitySelector';
16
+ import { gridDensityValueSelector } from '../../hooks/features/density/densitySelector';
17
+ import { gridColumnGroupsHeaderMaxDepthSelector } from '../../hooks/features/columnGrouping/gridColumnGroupsSelector';
17
18
  import { gridPinnedRowsCountSelector, gridRowCountSelector } from '../../hooks/features/rows/gridRowsSelector';
18
19
  import { jsx as _jsx } from "react/jsx-runtime";
19
20
 
@@ -38,7 +39,7 @@ var GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
38
39
  var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
39
40
  var totalRowCount = useGridSelector(apiRef, gridRowCountSelector);
40
41
  var densityValue = useGridSelector(apiRef, gridDensityValueSelector);
41
- var headerGroupingMaxDepth = useGridSelector(apiRef, gridDensityHeaderGroupingMaxDepthSelector);
42
+ var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
42
43
  var rootContainerRef = React.useRef(null);
43
44
  var handleRef = useForkRef(rootContainerRef, ref);
44
45
  var pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);
@@ -74,7 +75,7 @@ var GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
74
75
  role: "grid",
75
76
  "aria-colcount": visibleColumns.length,
76
77
  "aria-rowcount": headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount,
77
- "aria-multiselectable": !rootProps.disableMultipleSelection,
78
+ "aria-multiselectable": !rootProps.disableMultipleRowSelection,
78
79
  "aria-label": rootProps['aria-label'],
79
80
  "aria-labelledby": rootProps['aria-labelledby']
80
81
  }, other, {
@@ -3,7 +3,7 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
- var _excluded = ["sort"];
6
+ var _excluded = ["sort", "searchPredicate"];
7
7
  import * as React from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import { unstable_composeClasses as composeClasses } from '@mui/material';
@@ -66,6 +66,10 @@ var GridIconButtonRoot = styled(IconButton)({
66
66
  });
67
67
  var collator = new Intl.Collator();
68
68
 
69
+ var defaultSearchPredicate = function defaultSearchPredicate(column, searchValue) {
70
+ return (column.headerName || column.field).toLowerCase().indexOf(searchValue) > -1;
71
+ };
72
+
69
73
  function GridColumnsPanel(props) {
70
74
  var _rootProps$components, _rootProps$components3, _rootProps$components4;
71
75
 
@@ -86,6 +90,8 @@ function GridColumnsPanel(props) {
86
90
  var classes = useUtilityClasses(ownerState);
87
91
 
88
92
  var sort = props.sort,
93
+ _props$searchPredicat = props.searchPredicate,
94
+ searchPredicate = _props$searchPredicat === void 0 ? defaultSearchPredicate : _props$searchPredicat,
89
95
  other = _objectWithoutProperties(props, _excluded);
90
96
 
91
97
  var sortedColumns = React.useMemo(function () {
@@ -132,9 +138,9 @@ function GridColumnsPanel(props) {
132
138
 
133
139
  var searchValueToCheck = searchValue.toLowerCase();
134
140
  return sortedColumns.filter(function (column) {
135
- return (column.headerName || column.field).toLowerCase().indexOf(searchValueToCheck) > -1;
141
+ return searchPredicate(column, searchValueToCheck);
136
142
  });
137
- }, [sortedColumns, searchValue]);
143
+ }, [sortedColumns, searchValue, searchPredicate]);
138
144
  React.useEffect(function () {
139
145
  searchInputRef.current.focus();
140
146
  }, []);
@@ -200,6 +206,7 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
200
206
  // | These PropTypes are generated from the TypeScript type definitions |
201
207
  // | To update them edit the TypeScript types and run "yarn proptypes" |
202
208
  // ----------------------------------------------------------------------
209
+ searchPredicate: PropTypes.func,
203
210
  sort: PropTypes.oneOf(['asc', 'desc'])
204
211
  } : void 0;
205
212
  export { GridColumnsPanel };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterChanges", "multiFilterOperator", "showMultiFilterOperators", "disableMultiFilterOperator", "applyMultiFilterOperatorChanges", "focusElementRef", "linkOperators", "columnsSort", "deleteIconProps", "linkOperatorInputProps", "operatorInputProps", "columnInputProps", "valueInputProps", "children"],
3
+ var _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterChanges", "multiFilterOperator", "showMultiFilterOperators", "disableMultiFilterOperator", "applyMultiFilterOperatorChanges", "focusElementRef", "linkOperators", "columnsSort", "filterColumns", "deleteIconProps", "linkOperatorInputProps", "operatorInputProps", "columnInputProps", "valueInputProps", "children"],
4
4
  _excluded2 = ["InputComponentProps"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
@@ -13,6 +13,7 @@ import { capitalize, unstable_useId as useId } from '@mui/material/utils';
13
13
  import { styled } from '@mui/material/styles';
14
14
  import clsx from 'clsx';
15
15
  import { gridFilterableColumnDefinitionsSelector } from '../../../hooks/features/columns/gridColumnsSelector';
16
+ import { gridFilterModelSelector } from '../../../hooks/features/filter/gridFilterSelector';
16
17
  import { useGridSelector } from '../../../hooks/utils/useGridSelector';
17
18
  import { GridLinkOperator } from '../../../models/gridFilterItem';
18
19
  import { useGridApiContext } from '../../../hooks/utils/useGridApiContext';
@@ -134,6 +135,7 @@ var GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(props
134
135
  _props$linkOperators = props.linkOperators,
135
136
  linkOperators = _props$linkOperators === void 0 ? [GridLinkOperator.And, GridLinkOperator.Or] : _props$linkOperators,
136
137
  columnsSort = props.columnsSort,
138
+ filterColumns = props.filterColumns,
137
139
  _props$deleteIconProp = props.deleteIconProps,
138
140
  deleteIconProps = _props$deleteIconProp === void 0 ? {} : _props$deleteIconProp,
139
141
  _props$linkOperatorIn = props.linkOperatorInputProps,
@@ -149,6 +151,7 @@ var GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(props
149
151
 
150
152
  var apiRef = useGridApiContext();
151
153
  var filterableColumns = useGridSelector(apiRef, gridFilterableColumnDefinitionsSelector);
154
+ var filterModel = useGridSelector(apiRef, gridFilterModelSelector);
152
155
  var columnSelectId = useId();
153
156
  var columnSelectLabelId = useId();
154
157
  var operatorSelectId = useId();
@@ -169,22 +172,36 @@ var GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(props
169
172
  var InputComponentProps = valueInputProps.InputComponentProps,
170
173
  valueInputPropsOther = _objectWithoutProperties(valueInputProps, _excluded2);
171
174
 
172
- var sortedFilterableColumns = React.useMemo(function () {
175
+ var filteredColumns = React.useMemo(function () {
176
+ if (filterColumns === undefined || typeof filterColumns !== 'function') {
177
+ return filterableColumns;
178
+ }
179
+
180
+ var filteredFields = filterColumns({
181
+ field: item.columnField,
182
+ columns: filterableColumns,
183
+ currentFilters: (filterModel == null ? void 0 : filterModel.items) || []
184
+ });
185
+ return filterableColumns.filter(function (column) {
186
+ return filteredFields.includes(column.field);
187
+ });
188
+ }, [filterColumns, filterModel == null ? void 0 : filterModel.items, filterableColumns, item.columnField]);
189
+ var sortedFilteredColumns = React.useMemo(function () {
173
190
  switch (columnsSort) {
174
191
  case 'asc':
175
- return filterableColumns.sort(function (a, b) {
192
+ return filteredColumns.sort(function (a, b) {
176
193
  return collator.compare(getColumnLabel(a), getColumnLabel(b));
177
194
  });
178
195
 
179
196
  case 'desc':
180
- return filterableColumns.sort(function (a, b) {
197
+ return filteredColumns.sort(function (a, b) {
181
198
  return -collator.compare(getColumnLabel(a), getColumnLabel(b));
182
199
  });
183
200
 
184
201
  default:
185
- return filterableColumns;
202
+ return filteredColumns;
186
203
  }
187
- }, [filterableColumns, columnsSort]);
204
+ }, [filteredColumns, columnsSort]);
188
205
  var currentColumn = item.columnField ? apiRef.current.getColumn(item.columnField) : null;
189
206
  var currentOperator = React.useMemo(function () {
190
207
  var _currentColumn$filter;
@@ -323,7 +340,7 @@ var GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(props
323
340
  onChange: changeColumn,
324
341
  native: isBaseSelectNative
325
342
  }, (_rootProps$components4 = rootProps.componentsProps) == null ? void 0 : _rootProps$components4.baseSelect, {
326
- children: sortedFilterableColumns.map(function (col) {
343
+ children: sortedFilteredColumns.map(function (col) {
327
344
  return /*#__PURE__*/_jsx(OptionComponent, {
328
345
  value: col.field,
329
346
  children: getColumnLabel(col)
@@ -421,6 +438,13 @@ process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
421
438
  */
422
439
  disableMultiFilterOperator: PropTypes.bool,
423
440
 
441
+ /**
442
+ * Allows to filter the columns displayed in the filter form.
443
+ * @param {FilterColumnsArgs} args The columns of the grid and name of field.
444
+ * @returns {GridColDef['field'][]} The filtered fields array.
445
+ */
446
+ filterColumns: PropTypes.func,
447
+
424
448
  /**
425
449
  * A ref allowing to set imperative focus.
426
450
  * It can be passed to the el