@mui/x-data-grid 5.7.0 → 5.10.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 (524) hide show
  1. package/CHANGELOG.md +241 -53
  2. package/DataGrid/DataGrid.d.ts +8 -3
  3. package/DataGrid/DataGrid.js +28 -5
  4. package/DataGrid/useDataGridComponent.js +5 -5
  5. package/DataGrid/useDataGridProps.d.ts +2 -1
  6. package/LICENSE +21 -0
  7. package/README.md +6 -4
  8. package/colDef/gridBooleanColDef.d.ts +1 -1
  9. package/colDef/gridBooleanOperators.d.ts +1 -1
  10. package/colDef/gridDateColDef.d.ts +5 -9
  11. package/colDef/gridDateColDef.js +2 -2
  12. package/colDef/gridDateOperators.d.ts +1 -1
  13. package/{models/colDef → colDef}/gridDefaultColumnTypes.d.ts +1 -1
  14. package/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  15. package/colDef/gridNumericColDef.d.ts +1 -1
  16. package/colDef/gridNumericOperators.d.ts +2 -2
  17. package/colDef/gridStringColDef.d.ts +1 -1
  18. package/colDef/gridStringOperators.d.ts +1 -1
  19. package/colDef/index.d.ts +1 -0
  20. package/colDef/index.js +2 -1
  21. package/components/GridRow.d.ts +4 -0
  22. package/components/GridRow.js +55 -24
  23. package/components/base/GridOverlays.js +4 -3
  24. package/components/cell/GridActionsCell.d.ts +5 -1
  25. package/components/cell/GridActionsCell.js +170 -21
  26. package/components/cell/GridActionsCellItem.d.ts +66 -4
  27. package/components/cell/GridActionsCellItem.js +7 -5
  28. package/components/cell/GridCell.d.ts +5 -4
  29. package/components/cell/GridCell.js +30 -9
  30. package/components/cell/GridEditInputCell.js +3 -3
  31. package/components/cell/GridEditSingleSelectCell.js +24 -15
  32. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +12 -0
  33. package/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  34. package/components/columnHeaders/GridColumnHeaderItem.js +9 -12
  35. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -1
  36. package/components/columnHeaders/GridColumnHeaders.js +1 -1
  37. package/components/columnHeaders/index.d.ts +1 -0
  38. package/components/columnHeaders/index.js +1 -0
  39. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
  40. package/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  41. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  42. package/components/containers/GridRoot.js +29 -17
  43. package/components/containers/GridRootStyles.js +36 -1
  44. package/components/menu/GridMenu.js +1 -0
  45. package/components/menu/columnMenu/GridColumnMenu.js +1 -1
  46. package/components/panel/GridPanel.d.ts +2 -2
  47. package/components/panel/GridPanel.js +1 -0
  48. package/components/panel/GridPreferencesPanel.js +1 -1
  49. package/components/panel/filterPanel/GridFilterForm.js +14 -10
  50. package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
  52. package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
  53. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  54. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  55. package/components/virtualization/GridVirtualScroller.js +2 -0
  56. package/components/virtualization/GridVirtualScrollerContent.js +1 -3
  57. package/constants/defaultGridSlotsComponents.js +4 -2
  58. package/constants/gridClasses.d.ts +35 -3
  59. package/constants/gridClasses.js +1 -1
  60. package/constants/gridDetailPanelToggleField.d.ts +1 -0
  61. package/constants/gridDetailPanelToggleField.js +2 -0
  62. package/constants/localeTextConstants.js +3 -1
  63. package/hooks/core/index.d.ts +1 -1
  64. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +85 -0
  65. package/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  66. package/hooks/core/pipeProcessing/index.d.ts +4 -0
  67. package/hooks/core/pipeProcessing/index.js +4 -0
  68. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +32 -0
  69. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
  70. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
  71. package/{modern/hooks/core/preProcessing/useGridRegisterPreProcessor.js → hooks/core/pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
  72. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +4 -0
  73. package/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -6
  74. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +27 -16
  75. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  76. package/hooks/core/useGridInitialization.js +2 -2
  77. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
  78. package/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
  79. package/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  80. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
  81. package/hooks/features/columns/gridColumnsSelector.d.ts +6 -6
  82. package/hooks/features/columns/gridColumnsUtils.d.ts +22 -4
  83. package/hooks/features/columns/gridColumnsUtils.js +105 -20
  84. package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
  85. package/hooks/features/columns/useGridColumnSpanning.js +109 -0
  86. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  87. package/hooks/features/columns/useGridColumns.js +55 -40
  88. package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
  89. package/hooks/features/dimensions/useGridDimensions.js +5 -4
  90. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  91. package/hooks/features/editRows/useGridCellEditing.new.js +40 -17
  92. package/hooks/features/editRows/useGridEditing.new.js +7 -3
  93. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  94. package/hooks/features/editRows/useGridRowEditing.new.js +44 -21
  95. package/hooks/features/events/useGridEvents.d.ts +1 -1
  96. package/hooks/features/events/useGridEvents.js +2 -0
  97. package/hooks/features/filter/gridFilterSelector.d.ts +3 -9
  98. package/hooks/features/filter/useGridFilter.js +18 -13
  99. package/hooks/features/focus/useGridFocus.js +19 -9
  100. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.d.ts +3 -5
  101. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -13
  102. package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -3
  103. package/hooks/features/pagination/useGridPage.js +9 -4
  104. package/hooks/features/pagination/useGridPageSize.js +3 -3
  105. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  106. package/hooks/features/rows/gridRowsSelector.d.ts +2 -1
  107. package/hooks/features/rows/gridRowsSelector.js +1 -0
  108. package/hooks/features/rows/gridRowsState.d.ts +4 -0
  109. package/hooks/features/rows/gridRowsUtils.d.ts +8 -0
  110. package/hooks/features/rows/gridRowsUtils.js +11 -0
  111. package/hooks/features/rows/index.d.ts +1 -0
  112. package/hooks/features/rows/index.js +1 -1
  113. package/hooks/features/rows/useGridRows.d.ts +2 -2
  114. package/hooks/features/rows/useGridRows.js +27 -7
  115. package/hooks/features/rows/useGridRowsMeta.js +7 -14
  116. package/hooks/features/scroll/useGridScroll.d.ts +2 -0
  117. package/hooks/features/scroll/useGridScroll.js +27 -14
  118. package/hooks/features/selection/gridSelectionSelector.d.ts +1 -3
  119. package/hooks/features/selection/useGridSelection.d.ts +4 -2
  120. package/hooks/features/selection/useGridSelection.js +75 -27
  121. package/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  122. package/hooks/features/sorting/gridSortingSelector.d.ts +1 -3
  123. package/hooks/features/sorting/gridSortingUtils.d.ts +1 -2
  124. package/hooks/features/sorting/useGridSorting.js +13 -13
  125. package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  126. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
  127. package/hooks/features/virtualization/useGridVirtualScroller.js +64 -27
  128. package/hooks/utils/useGridRootProps.d.ts +1 -1
  129. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  130. package/index.js +1 -1
  131. package/internals/index.d.ts +4 -6
  132. package/internals/index.js +3 -3
  133. package/legacy/DataGrid/DataGrid.js +28 -5
  134. package/legacy/DataGrid/useDataGridComponent.js +5 -5
  135. package/legacy/colDef/gridDateColDef.js +2 -2
  136. package/legacy/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  137. package/legacy/colDef/index.js +2 -1
  138. package/legacy/components/GridRow.js +53 -24
  139. package/legacy/components/base/GridOverlays.js +4 -3
  140. package/legacy/components/cell/GridActionsCell.js +188 -27
  141. package/legacy/components/cell/GridActionsCellItem.js +7 -5
  142. package/legacy/components/cell/GridCell.js +31 -9
  143. package/legacy/components/cell/GridEditInputCell.js +3 -3
  144. package/legacy/components/cell/GridEditSingleSelectCell.js +35 -26
  145. package/legacy/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  146. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +9 -12
  147. package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
  148. package/legacy/components/columnHeaders/index.js +1 -0
  149. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -5
  150. package/legacy/components/containers/GridRoot.js +34 -17
  151. package/legacy/components/containers/GridRootStyles.js +26 -5
  152. package/legacy/components/menu/GridMenu.js +1 -0
  153. package/legacy/components/menu/columnMenu/GridColumnMenu.js +1 -1
  154. package/legacy/components/panel/GridPanel.js +1 -0
  155. package/legacy/components/panel/GridPreferencesPanel.js +1 -1
  156. package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
  157. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  158. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
  159. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
  160. package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
  161. package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
  162. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
  163. package/legacy/constants/defaultGridSlotsComponents.js +4 -2
  164. package/legacy/constants/gridClasses.js +1 -1
  165. package/legacy/constants/gridDetailPanelToggleField.js +2 -0
  166. package/legacy/constants/localeTextConstants.js +3 -1
  167. package/legacy/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  168. package/legacy/hooks/core/pipeProcessing/index.js +4 -0
  169. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +119 -0
  170. package/legacy/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
  171. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
  172. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  173. package/legacy/hooks/core/useGridInitialization.js +2 -2
  174. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +90 -11
  175. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  176. package/legacy/hooks/features/columns/gridColumnsUtils.js +120 -32
  177. package/legacy/hooks/features/columns/useGridColumnSpanning.js +107 -0
  178. package/legacy/hooks/features/columns/useGridColumns.js +55 -40
  179. package/legacy/hooks/features/dimensions/useGridDimensions.js +5 -4
  180. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +36 -15
  181. package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
  182. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +53 -30
  183. package/legacy/hooks/features/events/useGridEvents.js +2 -0
  184. package/legacy/hooks/features/filter/useGridFilter.js +18 -13
  185. package/legacy/hooks/features/focus/useGridFocus.js +19 -9
  186. package/legacy/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -12
  187. package/legacy/hooks/features/pagination/useGridPage.js +11 -4
  188. package/legacy/hooks/features/pagination/useGridPageSize.js +3 -3
  189. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  190. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
  191. package/legacy/hooks/features/rows/gridRowsUtils.js +13 -0
  192. package/legacy/hooks/features/rows/index.js +1 -1
  193. package/legacy/hooks/features/rows/useGridRows.js +35 -9
  194. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -14
  195. package/legacy/hooks/features/scroll/useGridScroll.js +27 -14
  196. package/legacy/hooks/features/selection/useGridSelection.js +77 -27
  197. package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  198. package/legacy/hooks/features/sorting/useGridSorting.js +8 -10
  199. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  200. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +75 -37
  201. package/legacy/index.js +1 -1
  202. package/legacy/internals/index.js +3 -3
  203. package/legacy/locales/arSD.js +3 -1
  204. package/legacy/locales/bgBG.js +3 -1
  205. package/legacy/locales/csCZ.js +2 -0
  206. package/legacy/locales/daDK.js +37 -31
  207. package/legacy/locales/deDE.js +3 -1
  208. package/legacy/locales/elGR.js +2 -0
  209. package/legacy/locales/esES.js +2 -0
  210. package/legacy/locales/faIR.js +3 -1
  211. package/legacy/locales/fiFI.js +2 -0
  212. package/legacy/locales/frFR.js +2 -0
  213. package/legacy/locales/heIL.js +3 -1
  214. package/legacy/locales/huHU.js +122 -0
  215. package/legacy/locales/index.js +1 -0
  216. package/legacy/locales/itIT.js +2 -0
  217. package/legacy/locales/jaJP.js +2 -0
  218. package/legacy/locales/koKR.js +2 -0
  219. package/legacy/locales/nlNL.js +2 -0
  220. package/legacy/locales/plPL.js +3 -1
  221. package/legacy/locales/ptBR.js +3 -1
  222. package/legacy/locales/ruRU.js +2 -0
  223. package/legacy/locales/skSK.js +2 -0
  224. package/legacy/locales/trTR.js +3 -1
  225. package/legacy/locales/ukUA.js +2 -0
  226. package/legacy/locales/viVN.js +2 -0
  227. package/legacy/locales/zhCN.js +2 -0
  228. package/{modern/hooks/core/preProcessing/gridPreProcessingApi.js → legacy/models/api/gridColumnSpanning.js} +0 -0
  229. package/legacy/models/colDef/index.js +1 -2
  230. package/legacy/models/events/gridEvents.js +10 -3
  231. package/legacy/models/gridColumnSpanning.js +1 -0
  232. package/legacy/models/gridRows.js +1 -33
  233. package/legacy/models/index.js +2 -2
  234. package/legacy/models/params/gridPreferencePanelParams.js +1 -0
  235. package/legacy/models/params/index.js +2 -1
  236. package/locales/arSD.js +3 -1
  237. package/locales/bgBG.js +3 -1
  238. package/locales/csCZ.js +2 -0
  239. package/locales/daDK.js +33 -31
  240. package/locales/deDE.js +3 -1
  241. package/locales/elGR.js +2 -0
  242. package/locales/esES.js +2 -0
  243. package/locales/faIR.js +3 -1
  244. package/locales/fiFI.js +2 -0
  245. package/locales/frFR.js +2 -0
  246. package/locales/heIL.js +3 -1
  247. package/locales/huHU.d.ts +2 -0
  248. package/locales/huHU.js +110 -0
  249. package/locales/index.d.ts +1 -0
  250. package/locales/index.js +1 -0
  251. package/locales/itIT.js +2 -0
  252. package/locales/jaJP.js +2 -0
  253. package/locales/koKR.js +2 -0
  254. package/locales/nlNL.js +2 -0
  255. package/locales/plPL.js +3 -1
  256. package/locales/ptBR.js +3 -1
  257. package/locales/ruRU.js +2 -0
  258. package/locales/skSK.js +2 -0
  259. package/locales/trTR.js +3 -1
  260. package/locales/ukUA.js +2 -0
  261. package/locales/viVN.js +2 -0
  262. package/locales/zhCN.js +2 -0
  263. package/models/api/gridApiCommon.d.ts +3 -2
  264. package/models/api/gridColumnSpanning.d.ts +28 -0
  265. package/models/api/gridColumnSpanning.js +1 -0
  266. package/models/api/gridEditingApi.d.ts +51 -5
  267. package/models/api/gridLocaleTextApi.d.ts +1 -0
  268. package/models/api/gridParamsApi.d.ts +5 -5
  269. package/models/api/gridRowApi.d.ts +8 -2
  270. package/models/colDef/gridColDef.d.ts +38 -28
  271. package/models/colDef/index.d.ts +0 -1
  272. package/models/colDef/index.js +1 -2
  273. package/models/events/gridEventLookup.d.ts +30 -9
  274. package/models/events/gridEvents.d.ts +50 -17
  275. package/models/events/gridEvents.js +10 -3
  276. package/models/gridCell.d.ts +1 -0
  277. package/models/gridColumnSpanning.d.ts +12 -0
  278. package/models/gridColumnSpanning.js +1 -0
  279. package/models/gridEditRowModel.d.ts +1 -1
  280. package/models/gridFilterOperator.d.ts +3 -2
  281. package/models/gridIconSlotsComponent.d.ts +5 -0
  282. package/models/gridRows.d.ts +10 -18
  283. package/models/gridRows.js +1 -31
  284. package/models/gridSlotsComponent.d.ts +5 -0
  285. package/models/gridSlotsComponentsProps.d.ts +1 -0
  286. package/models/gridSortModel.d.ts +3 -4
  287. package/models/index.d.ts +1 -1
  288. package/models/index.js +2 -2
  289. package/models/params/gridCellParams.d.ts +25 -15
  290. package/models/params/gridColumnHeaderParams.d.ts +3 -2
  291. package/models/params/gridEditCellParams.d.ts +2 -3
  292. package/models/params/gridPreferencePanelParams.d.ts +3 -0
  293. package/models/params/gridPreferencePanelParams.js +1 -0
  294. package/models/params/gridRowParams.d.ts +12 -8
  295. package/models/params/gridValueOptionsParams.d.ts +3 -3
  296. package/models/params/index.d.ts +1 -0
  297. package/models/params/index.js +2 -1
  298. package/models/props/DataGridProps.d.ts +37 -17
  299. package/modern/DataGrid/DataGrid.js +28 -5
  300. package/modern/DataGrid/useDataGridComponent.js +5 -5
  301. package/modern/colDef/gridDateColDef.js +2 -2
  302. package/modern/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  303. package/modern/colDef/index.js +2 -1
  304. package/modern/components/GridRow.js +53 -22
  305. package/modern/components/base/GridOverlays.js +4 -3
  306. package/modern/components/cell/GridActionsCell.js +168 -21
  307. package/modern/components/cell/GridActionsCellItem.js +7 -5
  308. package/modern/components/cell/GridCell.js +30 -9
  309. package/modern/components/cell/GridEditInputCell.js +3 -3
  310. package/modern/components/cell/GridEditSingleSelectCell.js +22 -13
  311. package/modern/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  312. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -10
  313. package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
  314. package/modern/components/columnHeaders/index.js +1 -0
  315. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  316. package/modern/components/containers/GridRoot.js +29 -17
  317. package/modern/components/containers/GridRootStyles.js +36 -1
  318. package/modern/components/menu/GridMenu.js +1 -0
  319. package/modern/components/menu/columnMenu/GridColumnMenu.js +1 -1
  320. package/modern/components/panel/GridPanel.js +1 -0
  321. package/modern/components/panel/GridPreferencesPanel.js +1 -1
  322. package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
  323. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
  324. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
  325. package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
  326. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  327. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  328. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
  329. package/modern/constants/defaultGridSlotsComponents.js +4 -2
  330. package/modern/constants/gridClasses.js +1 -1
  331. package/modern/constants/gridDetailPanelToggleField.js +2 -0
  332. package/modern/constants/localeTextConstants.js +3 -1
  333. package/modern/hooks/core/pipeProcessing/gridPipeProcessingApi.js +1 -0
  334. package/modern/hooks/core/pipeProcessing/index.js +4 -0
  335. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
  336. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  337. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
  338. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  339. package/modern/hooks/core/useGridInitialization.js +2 -2
  340. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
  341. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  342. package/modern/hooks/features/columns/gridColumnsUtils.js +105 -20
  343. package/modern/hooks/features/columns/useGridColumnSpanning.js +107 -0
  344. package/modern/hooks/features/columns/useGridColumns.js +55 -40
  345. package/modern/hooks/features/dimensions/useGridDimensions.js +5 -4
  346. package/modern/hooks/features/editRows/useGridCellEditing.new.js +40 -17
  347. package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
  348. package/modern/hooks/features/editRows/useGridRowEditing.new.js +44 -21
  349. package/modern/hooks/features/events/useGridEvents.js +2 -0
  350. package/modern/hooks/features/filter/useGridFilter.js +18 -13
  351. package/modern/hooks/features/focus/useGridFocus.js +19 -9
  352. package/modern/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +64 -13
  353. package/modern/hooks/features/pagination/useGridPage.js +9 -4
  354. package/modern/hooks/features/pagination/useGridPageSize.js +3 -3
  355. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  356. package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
  357. package/modern/hooks/features/rows/gridRowsUtils.js +11 -0
  358. package/modern/hooks/features/rows/index.js +1 -1
  359. package/modern/hooks/features/rows/useGridRows.js +25 -5
  360. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -14
  361. package/modern/hooks/features/scroll/useGridScroll.js +25 -10
  362. package/modern/hooks/features/selection/useGridSelection.js +75 -27
  363. package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  364. package/modern/hooks/features/sorting/useGridSorting.js +13 -13
  365. package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  366. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +64 -23
  367. package/modern/index.js +1 -1
  368. package/modern/internals/index.js +3 -3
  369. package/modern/locales/arSD.js +3 -1
  370. package/modern/locales/bgBG.js +3 -1
  371. package/modern/locales/csCZ.js +2 -0
  372. package/modern/locales/daDK.js +33 -31
  373. package/modern/locales/deDE.js +3 -1
  374. package/modern/locales/elGR.js +2 -0
  375. package/modern/locales/esES.js +2 -0
  376. package/modern/locales/faIR.js +3 -1
  377. package/modern/locales/fiFI.js +2 -0
  378. package/modern/locales/frFR.js +2 -0
  379. package/modern/locales/heIL.js +3 -1
  380. package/modern/locales/huHU.js +110 -0
  381. package/modern/locales/index.js +1 -0
  382. package/modern/locales/itIT.js +2 -0
  383. package/modern/locales/jaJP.js +2 -0
  384. package/modern/locales/koKR.js +2 -0
  385. package/modern/locales/nlNL.js +2 -0
  386. package/modern/locales/plPL.js +3 -1
  387. package/modern/locales/ptBR.js +3 -1
  388. package/modern/locales/ruRU.js +2 -0
  389. package/modern/locales/skSK.js +2 -0
  390. package/modern/locales/trTR.js +3 -1
  391. package/modern/locales/ukUA.js +2 -0
  392. package/modern/locales/viVN.js +2 -0
  393. package/modern/locales/zhCN.js +2 -0
  394. package/modern/models/api/gridColumnSpanning.js +1 -0
  395. package/modern/models/colDef/index.js +1 -2
  396. package/modern/models/events/gridEvents.js +10 -3
  397. package/modern/models/gridColumnSpanning.js +1 -0
  398. package/modern/models/gridRows.js +1 -31
  399. package/modern/models/index.js +2 -2
  400. package/modern/models/params/gridPreferencePanelParams.js +1 -0
  401. package/modern/models/params/index.js +2 -1
  402. package/node/DataGrid/DataGrid.js +28 -5
  403. package/node/DataGrid/useDataGridComponent.js +6 -6
  404. package/node/colDef/gridDateColDef.js +2 -2
  405. package/node/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  406. package/node/colDef/index.js +13 -0
  407. package/node/components/GridRow.js +56 -24
  408. package/node/components/base/GridOverlays.js +3 -2
  409. package/node/components/cell/GridActionsCell.js +172 -21
  410. package/node/components/cell/GridActionsCellItem.js +7 -4
  411. package/node/components/cell/GridCell.js +30 -9
  412. package/node/components/cell/GridEditInputCell.js +3 -3
  413. package/node/components/cell/GridEditSingleSelectCell.js +25 -15
  414. package/node/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +23 -5
  415. package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -13
  416. package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
  417. package/node/components/columnHeaders/index.js +13 -0
  418. package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  419. package/node/components/containers/GridRoot.js +28 -17
  420. package/node/components/containers/GridRootStyles.js +36 -1
  421. package/node/components/menu/GridMenu.js +1 -0
  422. package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
  423. package/node/components/panel/GridPanel.js +1 -0
  424. package/node/components/panel/GridPreferencesPanel.js +1 -1
  425. package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
  426. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
  427. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
  428. package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
  429. package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
  430. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  431. package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
  432. package/node/constants/defaultGridSlotsComponents.js +3 -1
  433. package/node/constants/gridClasses.js +1 -1
  434. package/node/constants/gridDetailPanelToggleField.js +9 -0
  435. package/node/constants/localeTextConstants.js +3 -1
  436. package/node/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  437. package/node/hooks/core/pipeProcessing/index.js +57 -0
  438. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +124 -0
  439. package/node/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +4 -7
  440. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +42 -0
  441. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  442. package/node/hooks/core/useGridInitialization.js +2 -2
  443. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -11
  444. package/node/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  445. package/node/hooks/features/columns/gridColumnsUtils.js +114 -25
  446. package/node/hooks/features/columns/useGridColumnSpanning.js +130 -0
  447. package/node/hooks/features/columns/useGridColumns.js +55 -40
  448. package/node/hooks/features/dimensions/useGridDimensions.js +5 -4
  449. package/node/hooks/features/editRows/useGridCellEditing.new.js +42 -17
  450. package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
  451. package/node/hooks/features/editRows/useGridRowEditing.new.js +45 -21
  452. package/node/hooks/features/events/useGridEvents.js +2 -0
  453. package/node/hooks/features/filter/useGridFilter.js +18 -13
  454. package/node/hooks/features/focus/useGridFocus.js +19 -9
  455. package/node/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +69 -13
  456. package/node/hooks/features/pagination/useGridPage.js +8 -3
  457. package/node/hooks/features/pagination/useGridPageSize.js +3 -3
  458. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +20 -5
  459. package/node/hooks/features/rows/gridRowsSelector.js +3 -1
  460. package/node/hooks/features/rows/gridRowsUtils.js +18 -0
  461. package/node/hooks/features/rows/index.js +15 -1
  462. package/node/hooks/features/rows/useGridRows.js +29 -9
  463. package/node/hooks/features/rows/useGridRowsMeta.js +7 -15
  464. package/node/hooks/features/scroll/useGridScroll.js +28 -14
  465. package/node/hooks/features/selection/useGridSelection.js +75 -26
  466. package/node/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  467. package/node/hooks/features/sorting/useGridSorting.js +13 -13
  468. package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  469. package/node/hooks/features/virtualization/useGridVirtualScroller.js +69 -27
  470. package/node/index.js +1 -1
  471. package/node/internals/index.js +12 -12
  472. package/node/locales/arSD.js +3 -1
  473. package/node/locales/bgBG.js +3 -1
  474. package/node/locales/csCZ.js +2 -0
  475. package/node/locales/daDK.js +33 -31
  476. package/node/locales/deDE.js +3 -1
  477. package/node/locales/elGR.js +2 -0
  478. package/node/locales/esES.js +2 -0
  479. package/node/locales/faIR.js +3 -1
  480. package/node/locales/fiFI.js +2 -0
  481. package/node/locales/frFR.js +2 -0
  482. package/node/locales/heIL.js +3 -1
  483. package/node/locales/huHU.js +120 -0
  484. package/node/locales/index.js +13 -0
  485. package/node/locales/itIT.js +2 -0
  486. package/node/locales/jaJP.js +2 -0
  487. package/node/locales/koKR.js +2 -0
  488. package/node/locales/nlNL.js +2 -0
  489. package/node/locales/plPL.js +3 -1
  490. package/node/locales/ptBR.js +3 -1
  491. package/node/locales/ruRU.js +2 -0
  492. package/node/locales/skSK.js +2 -0
  493. package/node/locales/trTR.js +3 -1
  494. package/node/locales/ukUA.js +2 -0
  495. package/node/locales/viVN.js +2 -0
  496. package/node/locales/zhCN.js +2 -0
  497. package/node/models/api/gridColumnSpanning.js +5 -0
  498. package/node/models/colDef/index.js +0 -13
  499. package/node/models/events/gridEvents.js +10 -3
  500. package/node/models/gridColumnSpanning.js +5 -0
  501. package/node/models/gridRows.js +1 -34
  502. package/node/models/index.js +13 -13
  503. package/node/models/params/gridPreferencePanelParams.js +5 -0
  504. package/node/models/params/index.js +13 -0
  505. package/package.json +4 -4
  506. package/utils/domUtils.d.ts +2 -2
  507. package/components/columnHeaders/ColumnHeaderFilterIcon.d.ts +0 -5
  508. package/hooks/core/preProcessing/gridPreProcessingApi.d.ts +0 -67
  509. package/hooks/core/preProcessing/index.d.ts +0 -3
  510. package/hooks/core/preProcessing/index.js +0 -3
  511. package/hooks/core/preProcessing/useGridPreProcessing.d.ts +0 -6
  512. package/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  513. package/hooks/core/preProcessing/useGridRegisterPreProcessor.d.ts +0 -7
  514. package/hooks/features/keyboard/useGridKeyboard.d.ts +0 -10
  515. package/hooks/features/keyboard/useGridKeyboard.js +0 -70
  516. package/legacy/hooks/core/preProcessing/index.js +0 -3
  517. package/legacy/hooks/core/preProcessing/useGridPreProcessing.js +0 -62
  518. package/legacy/hooks/features/keyboard/useGridKeyboard.js +0 -70
  519. package/modern/hooks/core/preProcessing/index.js +0 -3
  520. package/modern/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  521. package/modern/hooks/features/keyboard/useGridKeyboard.js +0 -70
  522. package/node/hooks/core/preProcessing/index.js +0 -44
  523. package/node/hooks/core/preProcessing/useGridPreProcessing.js +0 -72
  524. package/node/hooks/features/keyboard/useGridKeyboard.js +0 -91
@@ -1,16 +1,16 @@
1
- import { GridCellValue } from '../gridCell';
2
- import { GridRowId } from '../gridRows';
1
+ import { GridValidRowModel, GridRowId } from '../gridRows';
3
2
  import { GridCellParams } from '../params/gridCellParams';
4
3
  import { GridColumnHeaderParams } from '../params/gridColumnHeaderParams';
5
4
  import { GridRowParams } from '../params/gridRowParams';
6
5
  export interface GridParamsApi {
7
6
  /**
8
7
  * Gets the value of a cell at the given `id` and `field`.
8
+ * @template V
9
9
  * @param {GridRowId} id The id of the row.
10
10
  * @param {string} field The column field.
11
- * @returns {GridCellValue} The cell value.
11
+ * @returns {v} The cell value.
12
12
  */
13
- getCellValue: (id: GridRowId, field: string) => GridCellValue;
13
+ getCellValue: <V extends any = any>(id: GridRowId, field: string) => V;
14
14
  /**
15
15
  * Gets the underlying DOM element for a cell at the given `id` and `field`.
16
16
  * @param {GridRowId} id The id of the row.
@@ -24,7 +24,7 @@ export interface GridParamsApi {
24
24
  * @param {string} field The column field.
25
25
  * @returns {GridCellParams} The cell params.
26
26
  */
27
- getCellParams: <V = any, R = any, F = V>(id: GridRowId, field: string) => GridCellParams<V, R, F>;
27
+ getCellParams: <V = any, R extends GridValidRowModel = any, F = V>(id: GridRowId, field: string) => GridCellParams<R, V, F>;
28
28
  /**
29
29
  * Gets the [[GridRowParams]] object that is passed as argument in events.
30
30
  * @param {GridRowId} id The id of the row.
@@ -1,4 +1,4 @@
1
- import { GridRowModel, GridRowId, GridRowModelUpdate, GridRowTreeNodeConfig } from '../gridRows';
1
+ import { GridRowModel, GridRowId, GridRowModelUpdate, GridRowTreeNodeConfig, GridValidRowModel } from '../gridRows';
2
2
  /**
3
3
  * The Row API interface that is available in the grid `apiRef`.
4
4
  */
@@ -23,6 +23,12 @@ export interface GridRowApi {
23
23
  * @param {GridRowModel[]} rows The new rows.
24
24
  */
25
25
  setRows: (rows: GridRowModel[]) => void;
26
+ /**
27
+ * Moves a row from its original position to the position given by `targetIndex`.
28
+ * @param {GridRowId} rowId The row id
29
+ * @param {number} targetIndex The new position (0-based).
30
+ */
31
+ setRowIndex: (rowId: GridRowId, targetIndex: number) => void;
26
32
  /**
27
33
  * Allows to updates, insert and delete rows in a single call.
28
34
  * @param {GridRowModelUpdate[]} updates An array of rows with an `action` specifying what to do.
@@ -33,7 +39,7 @@ export interface GridRowApi {
33
39
  * @param {GridRowId} id The id of the row.
34
40
  * @returns {GridRowModel} The row data.
35
41
  */
36
- getRow: (id: GridRowId) => GridRowModel | null;
42
+ getRow: <R extends GridValidRowModel = any>(id: GridRowId) => R | null;
37
43
  /**
38
44
  * Gets the row node from the internal tree structure.
39
45
  * @param {GridRowId} id The id of the row.
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { GridCellValue } from '../gridCell';
3
2
  import { GridCellClassNamePropType } from '../gridCellClass';
4
3
  import { GridColumnHeaderClassNamePropType } from '../gridColumnHeaderClass';
5
4
  import { GridFilterOperator } from '../gridFilterOperator';
@@ -10,8 +9,8 @@ import { GridColType, GridNativeColTypes } from './gridColType';
10
9
  import { GridRowParams } from '../params/gridRowParams';
11
10
  import { GridValueOptionsParams } from '../params/gridValueOptionsParams';
12
11
  import { GridActionsCellItemProps } from '../../components/cell/GridActionsCellItem';
13
- import { GridRowModel } from '../gridRows';
14
12
  import { GridEditCellProps } from '../gridEditRowModel';
13
+ import type { GridValidRowModel } from '../gridRows';
15
14
  /**
16
15
  * Alignment used in position elements in Cells.
17
16
  */
@@ -27,7 +26,7 @@ export declare type GridKeyValue = string | number | boolean;
27
26
  /**
28
27
  * Column Definition interface.
29
28
  */
30
- export interface GridColDef {
29
+ export interface GridColDef<R extends GridValidRowModel = any, V = any, F = V> {
31
30
  /**
32
31
  * The column identifier. It's used to map with [[GridRowModel]] values.
33
32
  */
@@ -103,7 +102,7 @@ export interface GridColDef {
103
102
  /**
104
103
  * A comparator function used to sort rows.
105
104
  */
106
- sortComparator?: GridComparatorFn;
105
+ sortComparator?: GridComparatorFn<V>;
107
106
  /**
108
107
  * Type allows to merge this object with a default definition [[GridColDef]].
109
108
  * @default 'string'
@@ -112,53 +111,58 @@ export interface GridColDef {
112
111
  /**
113
112
  * To be used in combination with `type: 'singleSelect'`. This is an array (or a function returning an array) of the possible cell values and labels.
114
113
  */
115
- valueOptions?: Array<ValueOptions> | ((params: GridValueOptionsParams) => Array<ValueOptions>);
114
+ valueOptions?: Array<ValueOptions> | ((params: GridValueOptionsParams<R>) => Array<ValueOptions>);
116
115
  /**
117
116
  * Allows to align the column values in cells.
118
117
  */
119
118
  align?: GridAlignment;
120
119
  /**
121
120
  * Function that allows to get a specific data instead of field to render in the cell.
122
- * @param {GridValueGetterParams} params Object containing parameters for the getter.
123
- * @returns {GridCellValue} The cell value.
121
+ * @template R, V
122
+ * @param {GridValueGetterParams<any, R>} params Object containing parameters for the getter.
123
+ * @returns {V} The cell value.
124
124
  */
125
- valueGetter?: (params: GridValueGetterParams) => GridCellValue;
125
+ valueGetter?: (params: GridValueGetterParams<any, R>) => V;
126
126
  /**
127
127
  * Function that allows to customize how the entered value is stored in the row.
128
128
  * It only works with cell/row editing.
129
- * @param {GridValueSetterParams} params Object containing parameters for the setter.
130
- * @returns {GridRowModel} The row with the updated field.
129
+ * @template R, V
130
+ * @param {GridValueSetterParams<R, V>} params Object containing parameters for the setter.
131
+ * @returns {R} The row with the updated field.
131
132
  */
132
- valueSetter?: (params: GridValueSetterParams) => GridRowModel;
133
+ valueSetter?: (params: GridValueSetterParams<R, V>) => R;
133
134
  /**
134
135
  * Function that allows to apply a formatter before rendering its value.
135
- * @param {GridValueFormatterParams} params Object containing parameters for the formatter.
136
- * @returns {GridCellValue} The formatted value.
136
+ * @template V, F
137
+ * @param {GridValueFormatterParams<V>} params Object containing parameters for the formatter.
138
+ * @returns {F} The formatted value.
137
139
  */
138
- valueFormatter?: (params: GridValueFormatterParams) => GridCellValue;
140
+ valueFormatter?: (params: GridValueFormatterParams<V>) => F;
139
141
  /**
140
142
  * Function that takes the user-entered value and converts it to a value used internally.
141
- * @param {GridCellValue} value The user-entered value.
142
- * @param {GridCellParams} params The params when called before saving the value.
143
- * @returns {GridCellValue} The converted value to use internally.
143
+ * @template R, V, F
144
+ * @param {F | undefined} value The user-entered value.
145
+ * @param {GridCellParams<V, R, F>} params The params when called before saving the value.
146
+ * @returns {V} The converted value to use internally.
144
147
  */
145
- valueParser?: (value: GridCellValue, params?: GridCellParams) => GridCellValue;
148
+ valueParser?: (value: F | undefined, params?: GridCellParams<V, R, F>) => V;
146
149
  /**
147
150
  * Class name that will be added in cells for that column.
148
151
  */
149
152
  cellClassName?: GridCellClassNamePropType;
150
153
  /**
151
154
  * Allows to override the component rendered as cell for this column.
152
- * @param {GridRenderCellParams} params Object containing parameters for the renderer.
155
+ * @template R, V, F
156
+ * @param {GridRenderCellParams<V, R, F>} params Object containing parameters for the renderer.
153
157
  * @returns {React.ReactNode} The element to be rendered.
154
158
  */
155
- renderCell?: (params: GridRenderCellParams) => React.ReactNode;
159
+ renderCell?: (params: GridRenderCellParams<V, R, F>) => React.ReactNode;
156
160
  /**
157
161
  * Allows to override the component rendered in edit cell mode for this column.
158
162
  * @param {GridRenderEditCellParams} params Object containing parameters for the renderer.
159
163
  * @returns {React.ReactNode} The element to be rendered.
160
164
  */
161
- renderEditCell?: (params: GridRenderEditCellParams) => React.ReactNode;
165
+ renderEditCell?: (params: GridRenderEditCellParams<V>) => React.ReactNode;
162
166
  /**
163
167
  * Callback fired when the edit props of the cell changes.
164
168
  * It allows to process the props that saved into the state.
@@ -172,10 +176,11 @@ export interface GridColDef {
172
176
  headerClassName?: GridColumnHeaderClassNamePropType;
173
177
  /**
174
178
  * Allows to render a component in the column header cell.
175
- * @param {GridColumnHeaderParams} params Object containing parameters for the renderer.
179
+ * @template V, R, F
180
+ * @param {GridColumnHeaderParams<V, R, F>} params Object containing parameters for the renderer.
176
181
  * @returns {React.ReactNode} The element to be rendered.
177
182
  */
178
- renderHeader?: (params: GridColumnHeaderParams) => React.ReactNode;
183
+ renderHeader?: (params: GridColumnHeaderParams<V, R, F>) => React.ReactNode;
179
184
  /**
180
185
  * Header cell element alignment.
181
186
  */
@@ -198,7 +203,7 @@ export interface GridColDef {
198
203
  /**
199
204
  * Allows setting the filter operators for this column.
200
205
  */
201
- filterOperators?: GridFilterOperator[];
206
+ filterOperators?: GridFilterOperator<R, V, F>[];
202
207
  /**
203
208
  * If `true`, this column cannot be reordered.
204
209
  * @default false
@@ -209,6 +214,11 @@ export interface GridColDef {
209
214
  * @default false
210
215
  */
211
216
  disableExport?: boolean;
217
+ /**
218
+ * Number of columns a cell should span.
219
+ * @default 1
220
+ */
221
+ colSpan?: number | ((params: GridCellParams<V, R, F>) => number | undefined);
212
222
  }
213
223
  export interface GridActionsColDef extends GridColDef {
214
224
  /**
@@ -223,12 +233,12 @@ export interface GridActionsColDef extends GridColDef {
223
233
  */
224
234
  getActions: (params: GridRowParams) => React.ReactElement<GridActionsCellItemProps>[];
225
235
  }
226
- export declare type GridEnrichedColDef = GridColDef | GridActionsColDef;
227
- export declare type GridColumns = GridEnrichedColDef[];
228
- export declare type GridColTypeDef = Omit<GridColDef, 'field'> & {
236
+ export declare type GridEnrichedColDef<R extends GridValidRowModel = any, V = any, F = V> = GridColDef<R, V, F> | GridActionsColDef;
237
+ export declare type GridColumns<R extends GridValidRowModel = any> = GridEnrichedColDef<R>[];
238
+ export declare type GridColTypeDef<V = any, F = V> = Omit<GridColDef<V, any, F>, 'field'> & {
229
239
  extendType?: GridNativeColTypes;
230
240
  };
231
- export declare type GridStateColDef = GridEnrichedColDef & {
241
+ export declare type GridStateColDef<R extends GridValidRowModel = any, V = any, F = V> = GridEnrichedColDef<R, V, F> & {
232
242
  computedWidth: number;
233
243
  /**
234
244
  * If `true`, it means that at least one of the dimension's property of this column has been modified since the last time the column prop has changed.
@@ -1,4 +1,3 @@
1
1
  export * from './gridColDef';
2
2
  export * from './gridColType';
3
3
  export * from './gridColumnTypesRecord';
4
- export * from './gridDefaultColumnTypes';
@@ -2,5 +2,4 @@
2
2
  export * from './gridColDef'; // Other types
3
3
 
4
4
  export * from './gridColType';
5
- export * from './gridColumnTypesRecord';
6
- export * from './gridDefaultColumnTypes';
5
+ export * from './gridColumnTypesRecord';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { GridCellEditCommitParams, GridColumnHeaderParams, GridColumnOrderChangeParams, GridColumnResizeParams, GridColumnVisibilityChangeParams, GridEditCellPropsParams, GridHeaderSelectionCheckboxParams, GridRowParams, GridRowSelectionCheckboxParams, GridScrollParams } from '../params';
2
+ import type { GridCellEditCommitParams, GridColumnHeaderParams, GridColumnOrderChangeParams, GridColumnResizeParams, GridColumnVisibilityChangeParams, GridEditCellPropsParams, GridHeaderSelectionCheckboxParams, GridPreferencePanelParams, GridRowParams, GridRowSelectionCheckboxParams, GridScrollParams } from '../params';
3
3
  import { GridCellEditStartParams, GridCellEditStopParams } from '../params/gridEditCellParams';
4
4
  import { GridCellParams } from '../params/gridCellParams';
5
5
  import type { GridFilterModel } from '../gridFilterModel';
@@ -9,7 +9,6 @@ import type { GridSelectionModel } from '../gridSelectionModel';
9
9
  import type { ElementSize } from '../elementSize';
10
10
  import type { MuiBaseEvent } from '../muiEvent';
11
11
  import type { GridRowId, GridRowTreeNodeConfig } from '../gridRows';
12
- import type { GridPreProcessingGroup } from '../../hooks/core/preProcessing';
13
12
  import type { GridColumnVisibilityModel } from '../../hooks/features/columns';
14
13
  import type { GridStrategyProcessorName } from '../../hooks/core/strategyProcessing';
15
14
  import { GridRowEditStartParams, GridRowEditStopParams } from '../params/gridRowParams';
@@ -30,6 +29,18 @@ export interface GridRowEventLookup {
30
29
  params: GridRowParams;
31
30
  event: React.MouseEvent<HTMLElement>;
32
31
  };
32
+ rowDragStart: {
33
+ params: GridRowParams;
34
+ event: React.DragEvent<HTMLElement>;
35
+ };
36
+ rowDragOver: {
37
+ params: GridRowParams;
38
+ event: React.DragEvent<HTMLElement>;
39
+ };
40
+ rowDragEnd: {
41
+ params: GridRowParams;
42
+ event: React.DragEvent<HTMLElement>;
43
+ };
33
44
  }
34
45
  export interface GridColumnHeaderEventLookup {
35
46
  columnHeaderClick: {
@@ -162,12 +173,6 @@ export interface GridEventLookup extends GridRowEventLookup, GridColumnHeaderEve
162
173
  debouncedResize: {
163
174
  params: ElementSize;
164
175
  };
165
- preProcessorRegister: {
166
- params: GridPreProcessingGroup;
167
- };
168
- preProcessorUnregister: {
169
- params: GridPreProcessingGroup;
170
- };
171
176
  activeStrategyProcessorChange: {
172
177
  params: GridStrategyProcessorName;
173
178
  };
@@ -200,7 +205,8 @@ export interface GridEventLookup extends GridRowEventLookup, GridColumnHeaderEve
200
205
  params: GridColumnOrderChangeParams;
201
206
  };
202
207
  rowsSet: {};
203
- visibleRowsSet: {};
208
+ filteredRowsSet: {};
209
+ sortedRowsSet: {};
204
210
  rowExpansionChange: {
205
211
  params: GridRowTreeNodeConfig;
206
212
  };
@@ -252,8 +258,17 @@ export interface GridEventLookup extends GridRowEventLookup, GridColumnHeaderEve
252
258
  };
253
259
  rowsScroll: {
254
260
  params: GridScrollParams;
261
+ event: React.UIEvent | MuiBaseEvent;
255
262
  };
256
263
  virtualScrollerContentSizeChange: {};
264
+ virtualScrollerWheel: {
265
+ params: {};
266
+ event: React.WheelEvent;
267
+ };
268
+ virtualScrollerTouchMove: {
269
+ params: {};
270
+ event: React.TouchEvent;
271
+ };
257
272
  headerSelectionCheckboxChange: {
258
273
  params: GridHeaderSelectionCheckboxParams;
259
274
  };
@@ -261,4 +276,10 @@ export interface GridEventLookup extends GridRowEventLookup, GridColumnHeaderEve
261
276
  params: GridRowSelectionCheckboxParams;
262
277
  event: React.ChangeEvent<HTMLElement>;
263
278
  };
279
+ preferencePanelClose: {
280
+ params: GridPreferencePanelParams;
281
+ };
282
+ preferencePanelOpen: {
283
+ params: GridPreferencePanelParams;
284
+ };
264
285
  }
@@ -93,7 +93,7 @@ declare enum GridEvents {
93
93
  */
94
94
  rowEditCommit = "rowEditCommit",
95
95
  /**
96
- * Fired when a [navigation key](/components/data-grid/accessibility#keyboard-navigation) is pressed in a cell.
96
+ * Fired when a [navigation key](/x/react-data-grid/accessibility#keyboard-navigation) is pressed in a cell.
97
97
  * @ignore - do not document.
98
98
  */
99
99
  cellNavigationKeyDown = "cellNavigationKeyDown",
@@ -118,6 +118,22 @@ declare enum GridEvents {
118
118
  * Fired when the row editing model changes.
119
119
  */
120
120
  editRowsModelChange = "editRowsModelChange",
121
+ /**
122
+ * Fired when the user starts dragging a row. It's mapped to the `dragstart` DOM event.
123
+ * @ignore - do not document.
124
+ */
125
+ rowDragStart = "rowDragStart",
126
+ /**
127
+ * Fired while an element or text selection is dragged over the row.
128
+ * It's mapped to the `dragover` DOM event.
129
+ * @ignore - do not document.
130
+ */
131
+ rowDragOver = "rowDragOver",
132
+ /**
133
+ * Fired when the dragging of a row ends.
134
+ * @ignore - do not document.
135
+ */
136
+ rowDragEnd = "rowDragEnd",
121
137
  /**
122
138
  * Fired when a column header loses focus.
123
139
  * @ignore - do not document.
@@ -129,7 +145,7 @@ declare enum GridEvents {
129
145
  */
130
146
  columnHeaderFocus = "columnHeaderFocus",
131
147
  /**
132
- * Fired when a [navigation key](/components/data-grid/accessibility#keyboard-navigation) is pressed in a column header.
148
+ * Fired when a [navigation key](/x/react-data-grid/accessibility#keyboard-navigation) is pressed in a column header.
133
149
  * @ignore - do not document.
134
150
  */
135
151
  columnHeaderNavigationKeyDown = "columnHeaderNavigationKeyDown",
@@ -244,6 +260,10 @@ declare enum GridEvents {
244
260
  * Fired when the user ends reordering a column.
245
261
  */
246
262
  columnOrderChange = "columnOrderChange",
263
+ /**
264
+ * Fired when the user ends reordering a row.
265
+ */
266
+ rowOrderChange = "rowOrderChange",
247
267
  /**
248
268
  * Fired when the rows are updated.
249
269
  * @ignore - do not document.
@@ -255,10 +275,15 @@ declare enum GridEvents {
255
275
  */
256
276
  rowExpansionChange = "rowExpansionChange",
257
277
  /**
258
- * Fired when the visible rows are updated
278
+ * Fired when the sorted rows are updated
279
+ * @ignore - do not document
280
+ */
281
+ sortedRowsSet = "sortedRowsSet",
282
+ /**
283
+ * Fired when the filtered rows are updated
259
284
  * @ignore - do not document.
260
285
  */
261
- visibleRowsSet = "visibleRowsSet",
286
+ filteredRowsSet = "filteredRowsSet",
262
287
  /**
263
288
  * Fired when the columns state is changed.
264
289
  */
@@ -273,18 +298,6 @@ declare enum GridEvents {
273
298
  * @ignore - do not document.
274
299
  */
275
300
  pinnedColumnsChange = "pinnedColumnsChange",
276
- /**
277
- * Fired when a pre-processor is registered.
278
- * TODO: Rename `pipeProcessorRegister`
279
- * @ignore - do not document.
280
- */
281
- preProcessorRegister = "preProcessorRegister",
282
- /**
283
- * Fired when a pre-processor is unregistered.
284
- * TODO: Rename `pipeProcessorUnregister`
285
- * @ignore - do not document.
286
- */
287
- preProcessorUnregister = "preProcessorUnregister",
288
301
  /**
289
302
  * Fired when a processor of the active strategy changes.
290
303
  * @ignore - do not document.
@@ -322,7 +335,27 @@ declare enum GridEvents {
322
335
  * Fired when the content size used by the `GridVirtualScroller` changes.
323
336
  * @ignore - do not document.
324
337
  */
325
- virtualScrollerContentSizeChange = "virtualScrollerContentSizeChange"
338
+ virtualScrollerContentSizeChange = "virtualScrollerContentSizeChange",
339
+ /**
340
+ * Fired when the content is scrolled by the mouse wheel.
341
+ * It's attached to the "mousewheel" event.
342
+ * @ignore - do not document.
343
+ */
344
+ virtualScrollerWheel = "virtualScrollerWheel",
345
+ /**
346
+ * Fired when the content is moved using a touch device.
347
+ * It's attached to the "touchmove" event.
348
+ * @ignore - do not document.
349
+ */
350
+ virtualScrollerTouchMove = "virtualScrollerTouchMove",
351
+ /**
352
+ * Fired when the preferences panel is closed.
353
+ */
354
+ preferencePanelClose = "preferencePanelClose",
355
+ /**
356
+ * Fired when the preferences panel is opened.
357
+ */
358
+ preferencePanelOpen = "preferencePanelOpen"
326
359
  }
327
360
  export declare type GridEventsStr = keyof GridEventLookup;
328
361
  export { GridEvents };
@@ -29,6 +29,9 @@ var GridEvents;
29
29
  GridEvents["rowMouseEnter"] = "rowMouseEnter";
30
30
  GridEvents["rowMouseLeave"] = "rowMouseLeave";
31
31
  GridEvents["editRowsModelChange"] = "editRowsModelChange";
32
+ GridEvents["rowDragStart"] = "rowDragStart";
33
+ GridEvents["rowDragOver"] = "rowDragOver";
34
+ GridEvents["rowDragEnd"] = "rowDragEnd";
32
35
  GridEvents["columnHeaderBlur"] = "columnHeaderBlur";
33
36
  GridEvents["columnHeaderFocus"] = "columnHeaderFocus";
34
37
  GridEvents["columnHeaderNavigationKeyDown"] = "columnHeaderNavigationKeyDown";
@@ -57,14 +60,14 @@ var GridEvents;
57
60
  GridEvents["columnResizeStart"] = "columnResizeStart";
58
61
  GridEvents["columnResizeStop"] = "columnResizeStop";
59
62
  GridEvents["columnOrderChange"] = "columnOrderChange";
63
+ GridEvents["rowOrderChange"] = "rowOrderChange";
60
64
  GridEvents["rowsSet"] = "rowsSet";
61
65
  GridEvents["rowExpansionChange"] = "rowExpansionChange";
62
- GridEvents["visibleRowsSet"] = "visibleRowsSet";
66
+ GridEvents["sortedRowsSet"] = "sortedRowsSet";
67
+ GridEvents["filteredRowsSet"] = "filteredRowsSet";
63
68
  GridEvents["columnsChange"] = "columnsChange";
64
69
  GridEvents["detailPanelsExpandedRowIdsChange"] = "detailPanelsExpandedRowIdsChange";
65
70
  GridEvents["pinnedColumnsChange"] = "pinnedColumnsChange";
66
- GridEvents["preProcessorRegister"] = "preProcessorRegister";
67
- GridEvents["preProcessorUnregister"] = "preProcessorUnregister";
68
71
  GridEvents["activeStrategyProcessorChange"] = "activeStrategyProcessorChange";
69
72
  GridEvents["strategyAvailabilityChange"] = "strategyAvailabilityChange";
70
73
  GridEvents["sortModelChange"] = "sortModelChange";
@@ -73,6 +76,10 @@ var GridEvents;
73
76
  GridEvents["stateChange"] = "stateChange";
74
77
  GridEvents["columnVisibilityChange"] = "columnVisibilityChange";
75
78
  GridEvents["virtualScrollerContentSizeChange"] = "virtualScrollerContentSizeChange";
79
+ GridEvents["virtualScrollerWheel"] = "virtualScrollerWheel";
80
+ GridEvents["virtualScrollerTouchMove"] = "virtualScrollerTouchMove";
81
+ GridEvents["preferencePanelClose"] = "preferencePanelClose";
82
+ GridEvents["preferencePanelOpen"] = "preferencePanelOpen";
76
83
  })(GridEvents || (GridEvents = {}));
77
84
 
78
85
  export { GridEvents };
@@ -8,6 +8,7 @@ export declare type GridCellMode = 'edit' | 'view';
8
8
  export declare type GridRowMode = 'edit' | 'view';
9
9
  /**
10
10
  * The cell value type.
11
+ * @deprecated Use `any` or the V generic passed to most interfaces.
11
12
  */
12
13
  export declare type GridCellValue = string | number | boolean | Date | null | undefined | object;
13
14
  /**
@@ -0,0 +1,12 @@
1
+ export declare type GridColumnIndex = number;
2
+ export declare type GridCellColSpanInfo = {
3
+ spannedByColSpan: true;
4
+ rightVisibleCellIndex: GridColumnIndex;
5
+ leftVisibleCellIndex: GridColumnIndex;
6
+ } | {
7
+ spannedByColSpan: false;
8
+ cellProps: {
9
+ colSpan: number;
10
+ width: number;
11
+ };
12
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  export interface GridEditCellProps<V = any> {
2
- value: V;
2
+ value?: V | undefined;
3
3
  isValidating?: boolean;
4
4
  isProcessingProps?: boolean;
5
5
  [prop: string]: any;
@@ -5,10 +5,11 @@ import { GridFilterInputMultipleSingleSelectProps } from '../components/panel/fi
5
5
  import { GridFilterItem } from './gridFilterItem';
6
6
  import { GridCellParams } from './params/gridCellParams';
7
7
  import type { GridStateColDef } from './colDef/gridColDef';
8
+ import type { GridValidRowModel } from './gridRows';
8
9
  /**
9
10
  * Filter operator definition interface.
10
11
  */
11
- export interface GridFilterOperator {
12
+ export interface GridFilterOperator<R extends GridValidRowModel = any, V = any, F = V> {
12
13
  /**
13
14
  * The label of the filter operator.
14
15
  */
@@ -25,7 +26,7 @@ export interface GridFilterOperator {
25
26
  * @param {GridStateColDef} column The column from which we want to filter the rows.
26
27
  * @returns {null | ((params: GridCellParams) => boolean)} The function to call to check if a row poss this filter item or not.
27
28
  */
28
- getApplyFilterFn: (filterItem: GridFilterItem, column: GridStateColDef) => null | ((params: GridCellParams) => boolean);
29
+ getApplyFilterFn: (filterItem: GridFilterItem, column: GridStateColDef<R, V, F>) => null | ((params: GridCellParams<V, R, F>) => boolean);
29
30
  /**
30
31
  * The input component to render in the filter panel for this filter operator.
31
32
  */
@@ -114,4 +114,9 @@ export interface GridIconSlotsComponent {
114
114
  * @default GridCloseIcon
115
115
  */
116
116
  FilterPanelDeleteIcon: React.JSXElementConstructor<any>;
117
+ /**
118
+ * Icon displayed on the `reorder` column type to reorder a row.
119
+ * @default GridDragIcon
120
+ */
121
+ RowReorderIcon: React.JSXElementConstructor<any>;
117
122
  }
@@ -1,17 +1,16 @@
1
1
  import type { GridKeyValue } from './colDef/gridColDef';
2
- export declare type GridRowsProp = Readonly<GridRowModel[]>;
2
+ export declare type GridValidRowModel = {
3
+ [key: string]: any;
4
+ };
5
+ export declare type GridRowsProp<R = any> = Readonly<GridRowModel<R>[]>;
3
6
  /**
4
7
  * @deprecated prefer GridRowModel.
5
8
  */
6
- export declare type GridRowData<T = {
7
- [key: string]: any;
8
- }> = T;
9
+ export declare type GridRowData = GridValidRowModel;
9
10
  /**
10
11
  * The key value object representing the data of a row.
11
12
  */
12
- export declare type GridRowModel<T = {
13
- [key: string]: any;
14
- }> = T;
13
+ export declare type GridRowModel<R extends GridValidRowModel = any> = R;
15
14
  export declare type GridUpdateAction = 'delete';
16
15
  export interface GridRowModelUpdate extends GridRowModel {
17
16
  _action?: GridUpdateAction;
@@ -68,12 +67,12 @@ export interface GridRowsMeta {
68
67
  positions: number[];
69
68
  }
70
69
  export declare type GridRowTreeConfig = Record<GridRowId, GridRowTreeNodeConfig>;
71
- export declare type GridRowsLookup = Record<GridRowId, GridRowModel>;
70
+ export declare type GridRowsLookup<R extends GridValidRowModel = any> = Record<GridRowId, R>;
72
71
  /**
73
72
  * The type of Id supported by the grid.
74
73
  */
75
74
  export declare type GridRowId = string | number;
76
- export interface GridRowEntry {
75
+ export interface GridRowEntry<R extends GridValidRowModel = any> {
77
76
  /**
78
77
  * The row id.
79
78
  */
@@ -81,16 +80,9 @@ export interface GridRowEntry {
81
80
  /**
82
81
  * The row model.
83
82
  */
84
- model: GridRowModel;
83
+ model: R;
85
84
  }
86
85
  /**
87
86
  * The function to retrieve the id of a [[GridRowModel]].
88
87
  */
89
- export declare type GridRowIdGetter = (row: GridRowModel) => GridRowId;
90
- /**
91
- * An helper function to check if the id provided is valid.
92
- * @param {GridRowId} id Id as [[GridRowId]].
93
- * @param {GridRowModel | Partial<GridRowModel>} row Row as [[GridRowModel]].
94
- * @param {string} detailErrorMessage A custom error message to display for invalid IDs
95
- */
96
- export declare function checkGridRowIdIsValid(id: GridRowId, row: GridRowModel | Partial<GridRowModel>, detailErrorMessage?: string): void;
88
+ export declare type GridRowIdGetter<R extends GridValidRowModel = any> = (row: R) => GridRowId;
@@ -1,31 +1 @@
1
- /**
2
- * @deprecated prefer GridRowModel.
3
- */
4
-
5
- /**
6
- * The key value object representing the data of a row.
7
- */
8
-
9
- /**
10
- * The grid rows total height and row positions.
11
- */
12
-
13
- /**
14
- * The type of Id supported by the grid.
15
- */
16
-
17
- /**
18
- * The function to retrieve the id of a [[GridRowModel]].
19
- */
20
-
21
- /**
22
- * An helper function to check if the id provided is valid.
23
- * @param {GridRowId} id Id as [[GridRowId]].
24
- * @param {GridRowModel | Partial<GridRowModel>} row Row as [[GridRowModel]].
25
- * @param {string} detailErrorMessage A custom error message to display for invalid IDs
26
- */
27
- export function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
28
- if (id == null) {
29
- throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
30
- }
31
- }
1
+ export {};
@@ -50,6 +50,11 @@ export interface GridSlotsComponent extends GridIconSlotsComponent {
50
50
  * @default GridCell
51
51
  */
52
52
  Cell: React.JSXElementConstructor<any>;
53
+ /**
54
+ * Filter icon component rendered in each column header.
55
+ * @default GridColumnHeaderFilterIconButton
56
+ */
57
+ ColumnHeaderFilterIconButton: React.JSXElementConstructor<any>;
53
58
  /**
54
59
  * Column menu component rendered by clicking on the 3 dots "kebab" icon in column headers.
55
60
  * @default GridColumnMenu
@@ -11,6 +11,7 @@ export interface GridSlotsComponentsProps {
11
11
  basePopper?: any;
12
12
  baseTooltip?: any;
13
13
  cell?: any;
14
+ columnHeaderFilterIconButton?: any;
14
15
  columnMenu?: any;
15
16
  columnsPanel?: any;
16
17
  errorOverlay?: any;