@mui/x-data-grid-premium 8.0.0-alpha.9 → 8.0.0-beta.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 (419) hide show
  1. package/CHANGELOG.md +1446 -0
  2. package/DataGridPremium/DataGrid.d.ts +1 -1
  3. package/DataGridPremium/DataGridPremium.d.ts +6 -6
  4. package/DataGridPremium/DataGridPremium.js +61 -35
  5. package/DataGridPremium/index.d.ts +3 -3
  6. package/DataGridPremium/useDataGridPremiumComponent.d.ts +3 -3
  7. package/DataGridPremium/useDataGridPremiumComponent.js +5 -4
  8. package/DataGridPremium/useDataGridPremiumProps.d.ts +2 -2
  9. package/DataGridPremium/useDataGridPremiumProps.js +2 -2
  10. package/README.md +1 -1
  11. package/components/GridAggregationHeader.d.ts +3 -3
  12. package/components/GridAggregationHeader.js +13 -12
  13. package/components/GridAggregationRowOverlay.d.ts +3 -0
  14. package/components/GridAggregationRowOverlay.js +44 -0
  15. package/components/GridBottomContainer.d.ts +3 -0
  16. package/components/GridBottomContainer.js +51 -0
  17. package/components/GridColumnMenuAggregationItem.d.ts +2 -2
  18. package/components/GridColumnMenuAggregationItem.js +36 -46
  19. package/components/GridColumnMenuRowGroupItem.d.ts +1 -1
  20. package/components/GridColumnMenuRowUngroupItem.d.ts +1 -1
  21. package/components/GridDataSourceGroupingCriteriaCell.d.ts +2 -2
  22. package/components/GridDataSourceGroupingCriteriaCell.js +8 -12
  23. package/components/GridExcelExportMenuItem.d.ts +3 -3
  24. package/components/GridFooterCell.d.ts +2 -2
  25. package/components/GridFooterCell.js +5 -6
  26. package/components/GridGroupingColumnFooterCell.d.ts +1 -1
  27. package/components/GridGroupingColumnFooterCell.js +2 -1
  28. package/components/GridGroupingColumnLeafCell.d.ts +1 -1
  29. package/components/GridGroupingColumnLeafCell.js +3 -9
  30. package/components/GridGroupingCriteriaCell.d.ts +2 -2
  31. package/components/GridGroupingCriteriaCell.js +3 -8
  32. package/components/GridPremiumColumnMenu.d.ts +26 -26
  33. package/components/GridPremiumToolbar.d.ts +3 -0
  34. package/components/GridPremiumToolbar.js +31 -0
  35. package/components/export/ExportExcel.d.ts +29 -0
  36. package/components/export/ExportExcel.js +216 -0
  37. package/components/export/index.d.ts +1 -0
  38. package/components/export/index.js +16 -0
  39. package/components/index.d.ts +6 -5
  40. package/components/index.js +13 -1
  41. package/components/promptControl/GridToolbarPromptControl.d.ts +22 -22
  42. package/components/promptControl/GridToolbarPromptControl.js +33 -20
  43. package/components/promptControl/RecordButton.d.ts +9 -9
  44. package/components/promptControl/index.d.ts +1 -1
  45. package/components/reexports.d.ts +1 -1
  46. package/constants/dataGridPremiumDefaultSlotsComponents.d.ts +1 -1
  47. package/constants/dataGridPremiumDefaultSlotsComponents.js +5 -1
  48. package/esm/DataGridPremium/DataGrid.d.ts +8 -0
  49. package/esm/DataGridPremium/DataGridPremium.d.ts +16 -0
  50. package/esm/DataGridPremium/DataGridPremium.js +61 -35
  51. package/esm/DataGridPremium/index.d.ts +3 -0
  52. package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
  53. package/esm/DataGridPremium/useDataGridPremiumComponent.js +6 -5
  54. package/esm/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
  55. package/esm/DataGridPremium/useDataGridPremiumProps.js +2 -2
  56. package/esm/components/GridAggregationHeader.d.ts +7 -0
  57. package/esm/components/GridAggregationHeader.js +13 -12
  58. package/esm/components/GridAggregationRowOverlay.d.ts +3 -0
  59. package/esm/components/GridAggregationRowOverlay.js +37 -0
  60. package/esm/components/GridBottomContainer.d.ts +3 -0
  61. package/esm/components/GridBottomContainer.js +43 -0
  62. package/esm/components/GridColumnMenuAggregationItem.d.ts +7 -0
  63. package/esm/components/GridColumnMenuAggregationItem.js +36 -46
  64. package/esm/components/GridColumnMenuRowGroupItem.d.ts +3 -0
  65. package/esm/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
  66. package/esm/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
  67. package/esm/components/GridDataSourceGroupingCriteriaCell.js +9 -13
  68. package/esm/components/GridExcelExportMenuItem.d.ts +9 -0
  69. package/esm/components/GridFooterCell.d.ts +9 -0
  70. package/esm/components/GridFooterCell.js +5 -6
  71. package/esm/components/GridGroupingColumnFooterCell.d.ts +4 -0
  72. package/esm/components/GridGroupingColumnFooterCell.js +2 -1
  73. package/esm/components/GridGroupingColumnLeafCell.d.ts +4 -0
  74. package/esm/components/GridGroupingColumnLeafCell.js +3 -8
  75. package/esm/components/GridGroupingCriteriaCell.d.ts +7 -0
  76. package/esm/components/GridGroupingCriteriaCell.js +3 -8
  77. package/esm/components/GridPremiumColumnMenu.d.ts +33 -0
  78. package/esm/components/GridPremiumToolbar.d.ts +3 -0
  79. package/esm/components/GridPremiumToolbar.js +23 -0
  80. package/esm/components/export/ExportExcel.d.ts +29 -0
  81. package/esm/components/export/ExportExcel.js +209 -0
  82. package/esm/components/export/index.d.ts +1 -0
  83. package/esm/components/export/index.js +1 -0
  84. package/esm/components/index.d.ts +6 -0
  85. package/esm/components/index.js +2 -1
  86. package/esm/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
  87. package/esm/components/promptControl/GridToolbarPromptControl.js +33 -20
  88. package/esm/components/promptControl/RecordButton.d.ts +16 -0
  89. package/esm/components/promptControl/index.d.ts +1 -0
  90. package/esm/components/reexports.d.ts +1 -0
  91. package/esm/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
  92. package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +5 -1
  93. package/esm/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
  94. package/esm/hooks/features/aggregation/createAggregationLookup.js +3 -3
  95. package/esm/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
  96. package/esm/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
  97. package/esm/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
  98. package/esm/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
  99. package/esm/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
  100. package/esm/hooks/features/aggregation/gridAggregationUtils.js +1 -1
  101. package/esm/hooks/features/aggregation/index.d.ts +4 -0
  102. package/esm/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
  103. package/esm/hooks/features/aggregation/useGridAggregation.js +6 -8
  104. package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
  105. package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.js +7 -6
  106. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
  107. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  108. package/esm/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
  109. package/esm/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
  110. package/esm/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
  111. package/esm/hooks/features/cellSelection/index.d.ts +1 -0
  112. package/esm/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
  113. package/esm/hooks/features/cellSelection/useGridCellSelection.js +15 -13
  114. package/esm/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
  115. package/esm/hooks/features/clipboard/useGridClipboardImport.js +5 -5
  116. package/esm/hooks/features/dataSource/models.d.ts +54 -0
  117. package/esm/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
  118. package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
  119. package/esm/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
  120. package/esm/hooks/features/export/index.d.ts +2 -0
  121. package/esm/hooks/features/export/index.js +1 -1
  122. package/esm/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
  123. package/esm/hooks/features/export/serializer/excelSerializer.js +69 -180
  124. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  125. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
  126. package/esm/hooks/features/export/serializer/utils.d.ts +36 -0
  127. package/esm/hooks/features/export/serializer/utils.js +93 -0
  128. package/esm/hooks/features/export/useGridExcelExport.d.ts +11 -0
  129. package/esm/hooks/features/export/useGridExcelExport.js +11 -5
  130. package/esm/hooks/features/index.d.ts +5 -0
  131. package/esm/hooks/features/promptControl/api.d.ts +2 -0
  132. package/esm/hooks/features/promptControl/index.d.ts +2 -0
  133. package/esm/hooks/features/promptControl/types.d.ts +25 -0
  134. package/esm/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
  135. package/esm/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
  136. package/esm/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
  137. package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
  138. package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  139. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
  140. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +5 -3
  141. package/esm/hooks/features/rowGrouping/index.d.ts +3 -0
  142. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
  143. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
  144. package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
  145. package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  146. package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  147. package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
  148. package/esm/hooks/features/rows/index.d.ts +1 -0
  149. package/esm/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
  150. package/esm/hooks/index.d.ts +2 -0
  151. package/esm/hooks/utils/index.d.ts +1 -0
  152. package/esm/hooks/utils/useGridApiContext.d.ts +4 -0
  153. package/esm/hooks/utils/useGridApiRef.d.ts +4 -0
  154. package/esm/hooks/utils/useGridAriaAttributes.d.ts +2 -0
  155. package/esm/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
  156. package/esm/hooks/utils/useGridRootProps.d.ts +2 -0
  157. package/esm/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
  158. package/esm/hooks/utils/useKeepGroupedColumnsHidden.js +2 -2
  159. package/esm/index.d.ts +23 -0
  160. package/esm/index.js +6 -5
  161. package/esm/locales.d.ts +1 -0
  162. package/esm/material/icons.d.ts +15 -0
  163. package/esm/material/index.d.ts +8 -0
  164. package/esm/models/dataGridPremiumProps.d.ts +162 -0
  165. package/esm/models/gridApiPremium.d.ts +14 -0
  166. package/esm/models/gridGroupingValueGetter.d.ts +4 -0
  167. package/esm/models/gridPastedValueParser.d.ts +4 -0
  168. package/esm/models/gridPremiumIconSlotsComponent.d.ts +28 -0
  169. package/esm/models/gridPremiumSlotsComponent.d.ts +7 -0
  170. package/esm/models/gridStatePremium.d.ts +18 -0
  171. package/esm/models/index.d.ts +4 -0
  172. package/esm/package.json +1 -0
  173. package/esm/setupExcelExportWebWorker.d.ts +1 -0
  174. package/esm/setupExcelExportWebWorker.js +1 -0
  175. package/esm/themeAugmentation/index.d.ts +2 -0
  176. package/esm/themeAugmentation/overrides.d.ts +7 -0
  177. package/esm/themeAugmentation/props.d.ts +15 -0
  178. package/esm/typeOverloads/index.d.ts +2 -0
  179. package/esm/typeOverloads/modules.d.ts +97 -0
  180. package/esm/typeOverloads/reexports.d.ts +17 -0
  181. package/esm/utils/releaseInfo.d.ts +1 -0
  182. package/esm/utils/releaseInfo.js +1 -1
  183. package/hooks/features/aggregation/createAggregationLookup.d.ts +16 -10
  184. package/hooks/features/aggregation/createAggregationLookup.js +2 -2
  185. package/hooks/features/aggregation/gridAggregationFunctions.d.ts +7 -7
  186. package/hooks/features/aggregation/gridAggregationInterfaces.d.ts +81 -82
  187. package/hooks/features/aggregation/gridAggregationSelectors.d.ts +3 -3
  188. package/hooks/features/aggregation/gridAggregationSelectors.js +1 -2
  189. package/hooks/features/aggregation/gridAggregationUtils.d.ts +42 -25
  190. package/hooks/features/aggregation/gridAggregationUtils.js +1 -1
  191. package/hooks/features/aggregation/index.d.ts +4 -4
  192. package/hooks/features/aggregation/useGridAggregation.d.ts +3 -3
  193. package/hooks/features/aggregation/useGridAggregation.js +6 -8
  194. package/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +3 -3
  195. package/hooks/features/aggregation/useGridAggregationPreProcessors.js +7 -6
  196. package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +67 -62
  197. package/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  198. package/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +34 -34
  199. package/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -2
  200. package/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -2
  201. package/hooks/features/cellSelection/index.d.ts +1 -1
  202. package/hooks/features/cellSelection/useGridCellSelection.d.ts +3 -3
  203. package/hooks/features/cellSelection/useGridCellSelection.js +13 -11
  204. package/hooks/features/clipboard/useGridClipboardImport.d.ts +2 -2
  205. package/hooks/features/clipboard/useGridClipboardImport.js +4 -4
  206. package/hooks/features/dataSource/models.d.ts +41 -34
  207. package/hooks/features/dataSource/useGridDataSourcePremium.d.ts +3 -3
  208. package/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
  209. package/hooks/features/export/gridExcelExportInterface.d.ts +52 -52
  210. package/hooks/features/export/index.d.ts +2 -2
  211. package/hooks/features/export/index.js +2 -2
  212. package/hooks/features/export/serializer/excelSerializer.d.ts +23 -51
  213. package/hooks/features/export/serializer/excelSerializer.js +74 -187
  214. package/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  215. package/hooks/features/export/serializer/setupExcelExportWebWorker.js +59 -0
  216. package/hooks/features/export/serializer/utils.d.ts +36 -0
  217. package/hooks/features/export/serializer/utils.js +106 -0
  218. package/hooks/features/export/useGridExcelExport.d.ts +3 -3
  219. package/hooks/features/export/useGridExcelExport.js +10 -3
  220. package/hooks/features/index.d.ts +5 -5
  221. package/hooks/features/promptControl/api.d.ts +2 -2
  222. package/hooks/features/promptControl/index.d.ts +2 -2
  223. package/hooks/features/promptControl/types.d.ts +15 -15
  224. package/hooks/features/rowGrouping/createGroupingColDef.d.ts +44 -32
  225. package/hooks/features/rowGrouping/createGroupingColDef.js +4 -4
  226. package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +32 -32
  227. package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +2 -2
  228. package/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  229. package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +30 -22
  230. package/hooks/features/rowGrouping/gridRowGroupingUtils.js +4 -2
  231. package/hooks/features/rowGrouping/index.d.ts +3 -3
  232. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +3 -3
  233. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
  234. package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +3 -3
  235. package/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  236. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +3 -3
  237. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
  238. package/hooks/features/rows/index.d.ts +1 -1
  239. package/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  240. package/hooks/index.d.ts +2 -2
  241. package/hooks/utils/index.d.ts +1 -1
  242. package/hooks/utils/useGridApiContext.d.ts +4 -2
  243. package/hooks/utils/useGridApiRef.d.ts +4 -2
  244. package/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  245. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -2
  246. package/hooks/utils/useGridRootProps.d.ts +2 -2
  247. package/hooks/utils/useKeepGroupedColumnsHidden.d.ts +4 -4
  248. package/hooks/utils/useKeepGroupedColumnsHidden.js +2 -2
  249. package/index.d.ts +9 -17
  250. package/index.js +2 -11
  251. package/locales.d.ts +1 -1
  252. package/material/icons.d.ts +6 -6
  253. package/material/index.d.ts +6 -6
  254. package/models/dataGridPremiumProps.d.ts +140 -135
  255. package/models/gridApiPremium.d.ts +4 -6
  256. package/models/gridGroupingValueGetter.d.ts +2 -2
  257. package/models/gridPastedValueParser.d.ts +2 -2
  258. package/models/gridPremiumIconSlotsComponent.d.ts +26 -26
  259. package/models/gridPremiumSlotsComponent.d.ts +2 -3
  260. package/models/gridStatePremium.d.ts +7 -7
  261. package/models/index.d.ts +4 -4
  262. package/modern/DataGridPremium/DataGrid.d.ts +8 -0
  263. package/modern/DataGridPremium/DataGridPremium.d.ts +16 -0
  264. package/modern/DataGridPremium/DataGridPremium.js +61 -35
  265. package/modern/DataGridPremium/index.d.ts +3 -0
  266. package/modern/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
  267. package/modern/DataGridPremium/useDataGridPremiumComponent.js +6 -5
  268. package/modern/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
  269. package/modern/DataGridPremium/useDataGridPremiumProps.js +2 -2
  270. package/modern/components/GridAggregationHeader.d.ts +7 -0
  271. package/modern/components/GridAggregationHeader.js +13 -12
  272. package/modern/components/GridAggregationRowOverlay.d.ts +3 -0
  273. package/modern/components/GridAggregationRowOverlay.js +37 -0
  274. package/modern/components/GridBottomContainer.d.ts +3 -0
  275. package/modern/components/GridBottomContainer.js +43 -0
  276. package/modern/components/GridColumnMenuAggregationItem.d.ts +7 -0
  277. package/modern/components/GridColumnMenuAggregationItem.js +36 -46
  278. package/modern/components/GridColumnMenuRowGroupItem.d.ts +3 -0
  279. package/modern/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
  280. package/modern/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
  281. package/modern/components/GridDataSourceGroupingCriteriaCell.js +9 -13
  282. package/modern/components/GridExcelExportMenuItem.d.ts +9 -0
  283. package/modern/components/GridFooterCell.d.ts +9 -0
  284. package/modern/components/GridFooterCell.js +5 -6
  285. package/modern/components/GridGroupingColumnFooterCell.d.ts +4 -0
  286. package/modern/components/GridGroupingColumnFooterCell.js +2 -1
  287. package/modern/components/GridGroupingColumnLeafCell.d.ts +4 -0
  288. package/modern/components/GridGroupingColumnLeafCell.js +3 -8
  289. package/modern/components/GridGroupingCriteriaCell.d.ts +7 -0
  290. package/modern/components/GridGroupingCriteriaCell.js +3 -8
  291. package/modern/components/GridPremiumColumnMenu.d.ts +33 -0
  292. package/modern/components/GridPremiumToolbar.d.ts +3 -0
  293. package/modern/components/GridPremiumToolbar.js +23 -0
  294. package/modern/components/export/ExportExcel.d.ts +29 -0
  295. package/modern/components/export/ExportExcel.js +209 -0
  296. package/modern/components/export/index.d.ts +1 -0
  297. package/modern/components/export/index.js +1 -0
  298. package/modern/components/index.d.ts +6 -0
  299. package/modern/components/index.js +2 -1
  300. package/modern/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
  301. package/modern/components/promptControl/GridToolbarPromptControl.js +33 -20
  302. package/modern/components/promptControl/RecordButton.d.ts +16 -0
  303. package/modern/components/promptControl/index.d.ts +1 -0
  304. package/modern/components/reexports.d.ts +1 -0
  305. package/modern/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
  306. package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +5 -1
  307. package/modern/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
  308. package/modern/hooks/features/aggregation/createAggregationLookup.js +3 -3
  309. package/modern/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
  310. package/modern/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
  311. package/modern/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
  312. package/modern/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
  313. package/modern/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
  314. package/modern/hooks/features/aggregation/gridAggregationUtils.js +1 -1
  315. package/modern/hooks/features/aggregation/index.d.ts +4 -0
  316. package/modern/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
  317. package/modern/hooks/features/aggregation/useGridAggregation.js +6 -8
  318. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
  319. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.js +7 -6
  320. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
  321. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  322. package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
  323. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
  324. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
  325. package/modern/hooks/features/cellSelection/index.d.ts +1 -0
  326. package/modern/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
  327. package/modern/hooks/features/cellSelection/useGridCellSelection.js +15 -13
  328. package/modern/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
  329. package/modern/hooks/features/clipboard/useGridClipboardImport.js +5 -5
  330. package/modern/hooks/features/dataSource/models.d.ts +54 -0
  331. package/modern/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
  332. package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
  333. package/modern/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
  334. package/modern/hooks/features/export/index.d.ts +2 -0
  335. package/modern/hooks/features/export/index.js +1 -1
  336. package/modern/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
  337. package/modern/hooks/features/export/serializer/excelSerializer.js +69 -180
  338. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  339. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
  340. package/modern/hooks/features/export/serializer/utils.d.ts +36 -0
  341. package/modern/hooks/features/export/serializer/utils.js +93 -0
  342. package/modern/hooks/features/export/useGridExcelExport.d.ts +11 -0
  343. package/modern/hooks/features/export/useGridExcelExport.js +11 -5
  344. package/modern/hooks/features/index.d.ts +5 -0
  345. package/modern/hooks/features/promptControl/api.d.ts +2 -0
  346. package/modern/hooks/features/promptControl/index.d.ts +2 -0
  347. package/modern/hooks/features/promptControl/types.d.ts +25 -0
  348. package/modern/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
  349. package/modern/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
  350. package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
  351. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
  352. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  353. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
  354. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +5 -3
  355. package/modern/hooks/features/rowGrouping/index.d.ts +3 -0
  356. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
  357. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
  358. package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
  359. package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  360. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  361. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
  362. package/modern/hooks/features/rows/index.d.ts +1 -0
  363. package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
  364. package/modern/hooks/index.d.ts +2 -0
  365. package/modern/hooks/utils/index.d.ts +1 -0
  366. package/modern/hooks/utils/useGridApiContext.d.ts +4 -0
  367. package/modern/hooks/utils/useGridApiRef.d.ts +4 -0
  368. package/modern/hooks/utils/useGridAriaAttributes.d.ts +2 -0
  369. package/modern/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
  370. package/modern/hooks/utils/useGridRootProps.d.ts +2 -0
  371. package/modern/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
  372. package/modern/hooks/utils/useKeepGroupedColumnsHidden.js +2 -2
  373. package/modern/index.d.ts +23 -0
  374. package/modern/index.js +1 -7
  375. package/modern/locales.d.ts +1 -0
  376. package/modern/material/icons.d.ts +15 -0
  377. package/modern/material/index.d.ts +8 -0
  378. package/modern/models/dataGridPremiumProps.d.ts +162 -0
  379. package/modern/models/gridApiPremium.d.ts +14 -0
  380. package/modern/models/gridGroupingValueGetter.d.ts +4 -0
  381. package/modern/models/gridPastedValueParser.d.ts +4 -0
  382. package/modern/models/gridPremiumIconSlotsComponent.d.ts +28 -0
  383. package/modern/models/gridPremiumSlotsComponent.d.ts +7 -0
  384. package/modern/models/gridStatePremium.d.ts +18 -0
  385. package/modern/models/index.d.ts +4 -0
  386. package/modern/package.json +1 -0
  387. package/modern/setupExcelExportWebWorker.d.ts +1 -0
  388. package/modern/setupExcelExportWebWorker.js +1 -0
  389. package/modern/themeAugmentation/index.d.ts +2 -0
  390. package/modern/themeAugmentation/overrides.d.ts +7 -0
  391. package/modern/themeAugmentation/props.d.ts +15 -0
  392. package/modern/typeOverloads/index.d.ts +2 -0
  393. package/modern/typeOverloads/modules.d.ts +97 -0
  394. package/modern/typeOverloads/reexports.d.ts +17 -0
  395. package/modern/utils/releaseInfo.d.ts +1 -0
  396. package/modern/utils/releaseInfo.js +1 -1
  397. package/package.json +42 -9
  398. package/setupExcelExportWebWorker.d.ts +1 -0
  399. package/setupExcelExportWebWorker.js +12 -0
  400. package/themeAugmentation/index.d.ts +2 -2
  401. package/themeAugmentation/overrides.d.ts +3 -4
  402. package/themeAugmentation/props.d.ts +9 -11
  403. package/tsconfig.build.tsbuildinfo +1 -0
  404. package/typeOverloads/index.d.ts +1 -1
  405. package/typeOverloads/modules.d.ts +75 -82
  406. package/typeOverloads/reexports.d.ts +5 -5
  407. package/utils/releaseInfo.d.ts +1 -1
  408. package/utils/releaseInfo.js +1 -1
  409. package/DataGridPremium/package.json +0 -6
  410. package/components/package.json +0 -6
  411. package/esm/hooks/features/dataSource/cache.js +0 -3
  412. package/hooks/features/dataSource/cache.d.ts +0 -2
  413. package/hooks/features/dataSource/cache.js +0 -9
  414. package/hooks/package.json +0 -6
  415. package/material/package.json +0 -6
  416. package/models/package.json +0 -6
  417. package/modern/hooks/features/dataSource/cache.js +0 -3
  418. package/themeAugmentation/package.json +0 -6
  419. package/typeOverloads/package.json +0 -6
@@ -0,0 +1,93 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ export const getExcelJs = async () => {
3
+ const excelJsModule = await import('exceljs');
4
+ return excelJsModule.default ?? excelJsModule;
5
+ };
6
+ export const addColumnGroupingHeaders = (worksheet, columns, columnGroupPaths, columnGroupDetails) => {
7
+ const maxDepth = Math.max(...columns.map(({
8
+ key
9
+ }) => columnGroupPaths[key]?.length ?? 0));
10
+ if (maxDepth === 0) {
11
+ return;
12
+ }
13
+ for (let rowIndex = 0; rowIndex < maxDepth; rowIndex += 1) {
14
+ const row = columns.map(({
15
+ key
16
+ }) => {
17
+ const groupingPath = columnGroupPaths[key];
18
+ if (groupingPath.length <= rowIndex) {
19
+ return {
20
+ groupId: null,
21
+ parents: groupingPath
22
+ };
23
+ }
24
+ return _extends({}, columnGroupDetails[groupingPath[rowIndex]], {
25
+ parents: groupingPath.slice(0, rowIndex)
26
+ });
27
+ });
28
+ const newRow = worksheet.addRow(row.map(group => group.groupId === null ? null : group?.headerName ?? group.groupId));
29
+
30
+ // use `rowCount`, since worksheet can have additional rows added in `exceljsPreProcess`
31
+ const lastRowIndex = newRow.worksheet.rowCount;
32
+ let leftIndex = 0;
33
+ let rightIndex = 1;
34
+ while (rightIndex < columns.length) {
35
+ const {
36
+ groupId: leftGroupId,
37
+ parents: leftParents
38
+ } = row[leftIndex];
39
+ const {
40
+ groupId: rightGroupId,
41
+ parents: rightParents
42
+ } = row[rightIndex];
43
+ const areInSameGroup = leftGroupId === rightGroupId && leftParents.length === rightParents.length && leftParents.every((leftParent, index) => rightParents[index] === leftParent);
44
+ if (areInSameGroup) {
45
+ rightIndex += 1;
46
+ } else {
47
+ if (rightIndex - leftIndex > 1) {
48
+ worksheet.mergeCells(lastRowIndex, leftIndex + 1, lastRowIndex, rightIndex);
49
+ }
50
+ leftIndex = rightIndex;
51
+ rightIndex += 1;
52
+ }
53
+ }
54
+ if (rightIndex - leftIndex > 1) {
55
+ worksheet.mergeCells(lastRowIndex, leftIndex + 1, lastRowIndex, rightIndex);
56
+ }
57
+ }
58
+ };
59
+ export function addSerializedRowToWorksheet(serializedRow, worksheet) {
60
+ const {
61
+ row,
62
+ dataValidation,
63
+ outlineLevel,
64
+ mergedCells
65
+ } = serializedRow;
66
+ const newRow = worksheet.addRow(row);
67
+ Object.keys(dataValidation).forEach(field => {
68
+ newRow.getCell(field).dataValidation = _extends({}, dataValidation[field]);
69
+ });
70
+ if (outlineLevel) {
71
+ newRow.outlineLevel = outlineLevel;
72
+ }
73
+
74
+ // use `rowCount`, since worksheet can have additional rows added in `exceljsPreProcess`
75
+ const lastRowIndex = newRow.worksheet.rowCount;
76
+ mergedCells.forEach(mergedCell => {
77
+ worksheet.mergeCells(lastRowIndex, mergedCell.leftIndex, lastRowIndex, mergedCell.rightIndex);
78
+ });
79
+ }
80
+ export async function createValueOptionsSheetIfNeeded(valueOptionsData, sheetName, workbook) {
81
+ if (Object.keys(valueOptionsData).length === 0) {
82
+ return;
83
+ }
84
+ const valueOptionsWorksheet = workbook.addWorksheet(sheetName);
85
+ valueOptionsWorksheet.columns = Object.keys(valueOptionsData).map(key => ({
86
+ key
87
+ }));
88
+ Object.entries(valueOptionsData).forEach(([field, {
89
+ values
90
+ }]) => {
91
+ valueOptionsWorksheet.getColumn(field).values = values;
92
+ });
93
+ }
@@ -0,0 +1,11 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
3
+ import { DataGridPremiumProps } from "../../../models/dataGridPremiumProps.js";
4
+ /**
5
+ * @requires useGridColumns (state)
6
+ * @requires useGridFilter (state)
7
+ * @requires useGridSorting (state)
8
+ * @requires useGridSelection (state)
9
+ * @requires useGridParamsApi (method)
10
+ */
11
+ export declare const useGridExcelExport: (apiRef: RefObject<GridPrivateApiPremium>, props: DataGridPremiumProps) => void;
@@ -5,7 +5,7 @@ import { useGridApiMethod, useGridLogger, useGridApiOptionHandler } from '@mui/x
5
5
  import { useGridRegisterPipeProcessor, exportAs, getColumnsToExport, defaultGetRowsToExport } from '@mui/x-data-grid/internals';
6
6
  import { buildExcel, getDataForValueOptionsSheet, serializeColumns, serializeRowUnsafe } from "./serializer/excelSerializer.js";
7
7
  import { GridExcelExportMenuItem } from "../../../components/index.js";
8
-
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
9
  /**
10
10
  * @requires useGridColumns (state)
11
11
  * @requires useGridFilter (state)
@@ -13,7 +13,6 @@ import { GridExcelExportMenuItem } from "../../../components/index.js";
13
13
  * @requires useGridSelection (state)
14
14
  * @requires useGridParamsApi (method)
15
15
  */
16
- import { jsx as _jsx } from "react/jsx-runtime";
17
16
  export const useGridExcelExport = (apiRef, props) => {
18
17
  const logger = useGridLogger(apiRef, 'useGridExcelExport');
19
18
  const getDataAsExcel = React.useCallback((options = {}) => {
@@ -89,15 +88,22 @@ export const useGridExcelExport = (apiRef, props) => {
89
88
  const valueOptionsData = await getDataForValueOptionsSheet(exportedColumns, valueOptionsSheetName, apiRef.current);
90
89
  const serializedColumns = serializeColumns(exportedColumns, options.columnsStyles || {});
91
90
  apiRef.current.resetColSpan();
92
- const serializedRows = exportedRowIds.map(id => serializeRowUnsafe(id, exportedColumns, apiRef, valueOptionsData, {
93
- escapeFormulas: options.escapeFormulas ?? true
94
- }));
91
+ const serializedRows = [];
92
+ for (let i = 0; i < exportedRowIds.length; i += 1) {
93
+ const id = exportedRowIds[i];
94
+ const serializedRow = serializeRowUnsafe(id, exportedColumns, apiRef, valueOptionsData, {
95
+ escapeFormulas: options.escapeFormulas ?? true
96
+ });
97
+ serializedRows.push(serializedRow);
98
+ }
95
99
  apiRef.current.resetColSpan();
96
100
  const columnGroupPaths = exportedColumns.reduce((acc, column) => {
97
101
  acc[column.field] = apiRef.current.getColumnGroupPath(column.field);
98
102
  return acc;
99
103
  }, {});
100
104
  const message = {
105
+ // workers share the pub-sub channel namespace. Use this property to filter out messages.
106
+ namespace: 'mui-x-data-grid-export',
101
107
  serializedColumns,
102
108
  serializedRows,
103
109
  valueOptionsData,
@@ -0,0 +1,5 @@
1
+ export * from "./aggregation/index.js";
2
+ export * from "./rowGrouping/index.js";
3
+ export * from "./export/index.js";
4
+ export * from "./cellSelection/index.js";
5
+ export * from "./promptControl/index.js";
@@ -0,0 +1,2 @@
1
+ import { PromptResponse } from "./types.js";
2
+ export declare function gridDefaultPromptResolver(url: string, context: string, query: string): Promise<PromptResponse>;
@@ -0,0 +1,2 @@
1
+ export { gridDefaultPromptResolver as unstable_gridDefaultPromptResolver } from "./api.js";
2
+ export type { PromptResponse as unstable_PromptResponse } from './types';
@@ -0,0 +1,25 @@
1
+ export type Sort = {
2
+ column: string;
3
+ direction: 'asc' | 'desc';
4
+ };
5
+ export type Grouping = {
6
+ column: string;
7
+ };
8
+ export type Filter = {
9
+ operator: string;
10
+ value: string | number | boolean | string[] | number[];
11
+ column: string;
12
+ };
13
+ export type AggregationFunction = 'avg' | 'sum' | 'min' | 'max' | 'size';
14
+ export type Aggregation = {
15
+ [column: string]: AggregationFunction;
16
+ };
17
+ export type PromptResponse = {
18
+ select: number;
19
+ filters: Filter[];
20
+ filterOperator?: 'and' | 'or';
21
+ aggregation: Aggregation;
22
+ sorting: Sort[];
23
+ grouping: Grouping[];
24
+ error: string | null;
25
+ };
@@ -0,0 +1,57 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridColDef, GridGroupingColDefOverride } from '@mui/x-data-grid-pro';
3
+ import { GridColumnRawLookup } from '@mui/x-data-grid-pro/internals';
4
+ import { GridApiPremium } from "../../../models/gridApiPremium.js";
5
+ import { RowGroupingStrategy } from "./gridRowGroupingUtils.js";
6
+ interface CreateGroupingColDefMonoCriteriaParams {
7
+ columnsLookup: GridColumnRawLookup;
8
+ /**
9
+ * The field from which we are grouping the rows.
10
+ */
11
+ groupingCriteria: string;
12
+ /**
13
+ * The col def from which we are grouping the rows.
14
+ */
15
+ groupedByColDef: GridColDef;
16
+ /**
17
+ * The col def properties the user wants to override.
18
+ * This value comes `prop.groupingColDef`.
19
+ */
20
+ colDefOverride: GridGroupingColDefOverride | null | undefined;
21
+ strategy?: RowGroupingStrategy;
22
+ }
23
+ /**
24
+ * Creates the `GridColDef` for a grouping column that only takes care of a single grouping criteria
25
+ */
26
+ export declare const createGroupingColDefForOneGroupingCriteria: ({
27
+ columnsLookup,
28
+ groupedByColDef,
29
+ groupingCriteria,
30
+ colDefOverride,
31
+ strategy
32
+ }: CreateGroupingColDefMonoCriteriaParams) => GridColDef;
33
+ interface CreateGroupingColDefSeveralCriteriaParams {
34
+ apiRef: RefObject<GridApiPremium>;
35
+ columnsLookup: GridColumnRawLookup;
36
+ /**
37
+ * The fields from which we are grouping the rows.
38
+ */
39
+ rowGroupingModel: string[];
40
+ /**
41
+ * The col def properties the user wants to override.
42
+ * This value comes `prop.groupingColDef`.
43
+ */
44
+ colDefOverride: GridGroupingColDefOverride | null | undefined;
45
+ strategy?: RowGroupingStrategy;
46
+ }
47
+ /**
48
+ * Creates the `GridColDef` for a grouping column that takes care of all the grouping criteria
49
+ */
50
+ export declare const createGroupingColDefForAllGroupingCriteria: ({
51
+ apiRef,
52
+ columnsLookup,
53
+ rowGroupingModel,
54
+ colDefOverride,
55
+ strategy
56
+ }: CreateGroupingColDefSeveralCriteriaParams) => GridColDef;
57
+ export {};
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["leafField", "mainGroupingCriteria", "hideDescendantCount"],
4
4
  _excluded2 = ["leafField", "mainGroupingCriteria", "hideDescendantCount"];
5
5
  import * as React from 'react';
6
- import { GRID_STRING_COL_DEF } from '@mui/x-data-grid-pro';
6
+ import { GRID_STRING_COL_DEF, gridRowIdSelector, gridRowNodeSelector } from '@mui/x-data-grid-pro';
7
7
  import { isSingleSelectColDef } from '@mui/x-data-grid-pro/internals';
8
8
  import { GridGroupingColumnFooterCell } from "../../../components/GridGroupingColumnFooterCell.js";
9
9
  import { GridGroupingCriteriaCell } from "../../../components/GridGroupingCriteriaCell.js";
@@ -140,8 +140,8 @@ export const createGroupingColDefForOneGroupingCriteria = ({
140
140
  return '';
141
141
  },
142
142
  valueGetter: (value, row, column, apiRef) => {
143
- const rowId = apiRef.current.getRowId(row);
144
- const rowNode = apiRef.current.getRowNode(rowId);
143
+ const rowId = gridRowIdSelector(apiRef, row);
144
+ const rowNode = gridRowNodeSelector(apiRef, rowId);
145
145
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
146
146
  return undefined;
147
147
  }
@@ -232,8 +232,8 @@ export const createGroupingColDefForAllGroupingCriteria = ({
232
232
  }));
233
233
  },
234
234
  valueGetter: (value, row) => {
235
- const rowId = apiRef.current.getRowId(row);
236
- const rowNode = apiRef.current.getRowNode(rowId);
235
+ const rowId = gridRowIdSelector(apiRef, row);
236
+ const rowNode = gridRowNodeSelector(apiRef, rowId);
237
237
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
238
238
  return undefined;
239
239
  }
@@ -0,0 +1,44 @@
1
+ import { GridColDef, GridValidRowModel } from '@mui/x-data-grid';
2
+ export type GridRowGroupingModel = string[];
3
+ export interface GridRowGroupingState {
4
+ model: GridRowGroupingModel;
5
+ }
6
+ export interface GridRowGroupingInitialState {
7
+ model?: GridRowGroupingModel;
8
+ }
9
+ export interface GridRowGroupingInternalCache {
10
+ /**
11
+ * Tracks the model on the last pre-processing
12
+ * Allows to check if we need to re-build the grouping columns when the grid upserts a column.
13
+ */
14
+ rulesOnLastRowTreeCreation: GridGroupingRules;
15
+ }
16
+ export interface GridRowGroupingApi {
17
+ /**
18
+ * Sets the columns to use as grouping criteria.
19
+ * @param {GridRowGroupingModel} model The columns to use as grouping criteria.
20
+ */
21
+ setRowGroupingModel: (model: GridRowGroupingModel) => void;
22
+ /**
23
+ * Adds the field to the row grouping model.
24
+ * @param {string} groupingCriteriaField The field from which we want to group the rows.
25
+ * @param {number | undefined} groupingIndex The grouping index at which we want to insert the new grouping criteria. By default, it will be inserted at the end of the model.
26
+ */
27
+ addRowGroupingCriteria: (groupingCriteriaField: string, groupingIndex?: number) => void;
28
+ /**
29
+ * Remove the field from the row grouping model.
30
+ * @param {string} groupingCriteriaField The field from which we want to stop grouping the rows.
31
+ */
32
+ removeRowGroupingCriteria: (groupingCriteriaField: string) => void;
33
+ /**
34
+ * Sets the grouping index of a grouping criteria.
35
+ * @param {string} groupingCriteriaField The field of the grouping criteria from which we want to change the grouping index.
36
+ * @param {number} groupingIndex The new grouping index of this grouping criteria.
37
+ */
38
+ setRowGroupingCriteriaIndex: (groupingCriteriaField: string, groupingIndex: number) => void;
39
+ }
40
+ export interface GridGroupingRule<R extends GridValidRowModel = GridValidRowModel, V = any> {
41
+ field: string;
42
+ groupingValueGetter?: GridColDef<R, V>['groupingValueGetter'];
43
+ }
44
+ export type GridGroupingRules<R extends GridValidRowModel = GridValidRowModel> = GridGroupingRule<R>[];
@@ -0,0 +1,3 @@
1
+ import { GridStatePremium } from "../../../models/gridStatePremium.js";
2
+ export declare const gridRowGroupingModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridRowGroupingInterfaces").GridRowGroupingState, import("./gridRowGroupingInterfaces").GridRowGroupingModel>;
3
+ export declare const gridRowGroupingSanitizedModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("@mui/x-data-grid").GridColumnLookup, string[]>;
@@ -1,5 +1,5 @@
1
1
  import { gridColumnLookupSelector } from '@mui/x-data-grid-pro';
2
- import { createSelector, createSelectorMemoized } from '@mui/x-data-grid/internals';
3
- const gridRowGroupingStateSelector = state => state.rowGrouping;
2
+ import { createSelector, createRootSelector, createSelectorMemoized } from '@mui/x-data-grid-pro/internals';
3
+ const gridRowGroupingStateSelector = createRootSelector(state => state.rowGrouping);
4
4
  export const gridRowGroupingModelSelector = createSelector(gridRowGroupingStateSelector, rowGrouping => rowGrouping.model);
5
5
  export const gridRowGroupingSanitizedModelSelector = createSelectorMemoized(gridRowGroupingModelSelector, gridColumnLookupSelector, (model, columnsLookup) => model.filter(field => !!columnsLookup[field]));
@@ -0,0 +1,54 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridRowTreeConfig, GridFilterState, GridFilterModel, GridRowModel, GridColDef, GridKeyValue, GridDataSource } from '@mui/x-data-grid-pro';
3
+ import { GridAggregatedFilterItemApplier, GridColumnRawLookup, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn } from '@mui/x-data-grid-pro/internals';
4
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
5
+ import { GridGroupingRule, GridGroupingRules, GridRowGroupingModel } from "./gridRowGroupingInterfaces.js";
6
+ import { GridStatePremium } from "../../../models/gridStatePremium.js";
7
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
8
+ export { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn };
9
+ export declare enum RowGroupingStrategy {
10
+ Default = "grouping-columns",
11
+ DataSource = "grouping-columns-data-source",
12
+ }
13
+ export declare const getRowGroupingFieldFromGroupingCriteria: (groupingCriteria: string | null) => string;
14
+ interface FilterRowTreeFromTreeDataParams {
15
+ rowTree: GridRowTreeConfig;
16
+ isRowMatchingFilters: GridAggregatedFilterItemApplier | null;
17
+ filterModel: GridFilterModel;
18
+ apiRef: RefObject<GridPrivateApiPremium>;
19
+ }
20
+ /**
21
+ * A leaf is visible if it passed the filter
22
+ * A group is visible if all the following criteria are met:
23
+ * - One of its children is passing the filter
24
+ * - It is passing the filter
25
+ */
26
+ export declare const filterRowTreeFromGroupingColumns: (params: FilterRowTreeFromTreeDataParams) => Omit<GridFilterState, "filterModel">;
27
+ export declare const getColDefOverrides: (groupingColDefProp: DataGridPremiumProcessedProps["groupingColDef"], fields: string[], strategy?: RowGroupingStrategy) => import("@mui/x-data-grid-pro").GridGroupingColDefOverride<any> | null | undefined;
28
+ export declare const mergeStateWithRowGroupingModel: (rowGroupingModel: GridRowGroupingModel) => (state: GridStatePremium) => GridStatePremium;
29
+ export declare const setStrategyAvailability: (privateApiRef: RefObject<GridPrivateApiPremium>, disableRowGrouping: boolean, dataSource?: GridDataSource) => void;
30
+ export declare const getCellGroupingCriteria: ({
31
+ row,
32
+ colDef,
33
+ groupingRule,
34
+ apiRef
35
+ }: {
36
+ row: GridRowModel;
37
+ colDef: GridColDef;
38
+ groupingRule: GridGroupingRule;
39
+ apiRef: RefObject<GridPrivateApiPremium>;
40
+ }) => {
41
+ key: GridKeyValue | null | undefined;
42
+ field: string;
43
+ };
44
+ export declare const getGroupingRules: ({
45
+ sanitizedRowGroupingModel,
46
+ columnsLookup
47
+ }: {
48
+ sanitizedRowGroupingModel: GridRowGroupingModel;
49
+ columnsLookup: GridColumnRawLookup;
50
+ }) => GridGroupingRules;
51
+ /**
52
+ * Compares two sets of grouping rules to determine if they are equal or not.
53
+ */
54
+ export declare const areGroupingRulesEqual: (newValue: GridGroupingRules, previousValue: GridGroupingRules) => boolean;
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { passFilterLogic, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn, GridStrategyGroup } from '@mui/x-data-grid-pro/internals';
2
+ import { passFilterLogic, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn, GridStrategyGroup, getRowValue } from '@mui/x-data-grid-pro/internals';
3
3
  import { gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
4
4
  export { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn };
5
5
  export let RowGroupingStrategy = /*#__PURE__*/function (RowGroupingStrategy) {
@@ -75,7 +75,9 @@ export const filterRowTreeFromGroupingColumns = params => {
75
75
  isPassingFiltering = passFilterLogic(allResults.map(result => result.passingFilterItems), allResults.map(result => result.passingQuickFilterValues), filterModel, params.apiRef, filterCache);
76
76
  }
77
77
  }
78
- filteredRowsLookup[node.id] = isPassingFiltering;
78
+ if (!isPassingFiltering) {
79
+ filteredRowsLookup[node.id] = false;
80
+ }
79
81
  if (!isPassingFiltering) {
80
82
  return 0;
81
83
  }
@@ -136,7 +138,7 @@ export const getCellGroupingCriteria = ({
136
138
  if (groupingRule.groupingValueGetter) {
137
139
  key = groupingRule.groupingValueGetter(row[groupingRule.field], row, colDef, apiRef);
138
140
  } else {
139
- key = row[groupingRule.field];
141
+ key = getRowValue(row, colDef, apiRef);
140
142
  }
141
143
  return {
142
144
  key,
@@ -0,0 +1,3 @@
1
+ export * from "./gridRowGroupingSelector.js";
2
+ export * from "./gridRowGroupingInterfaces.js";
3
+ export { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingFieldFromGroupingCriteria, isGroupingColumn } from "./gridRowGroupingUtils.js";
@@ -0,0 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
3
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
4
+ export declare const useGridDataSourceRowGroupingPreProcessors: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "disableRowGrouping" | "groupingColDef" | "rowGroupingColumnMode" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "dataSource">) => void;
@@ -5,11 +5,11 @@ import { getGroupingRules, RowGroupingStrategy } from "./gridRowGroupingUtils.js
5
5
  import { gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
6
6
  export const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
7
7
  const createRowTreeForRowGrouping = React.useCallback(params => {
8
- const getGroupKey = props.unstable_dataSource?.getGroupKey;
8
+ const getGroupKey = props.dataSource?.getGroupKey;
9
9
  if (!getGroupKey) {
10
10
  throw new Error('MUI X: No `getGroupKey` method provided with the dataSource.');
11
11
  }
12
- const getChildrenCount = props.unstable_dataSource?.getChildrenCount;
12
+ const getChildrenCount = props.dataSource?.getChildrenCount;
13
13
  if (!getChildrenCount) {
14
14
  throw new Error('MUI X: No `getChildrenCount` method provided with the dataSource.');
15
15
  }
@@ -57,7 +57,7 @@ export const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
57
57
  isGroupExpandedByDefault: props.isGroupExpandedByDefault,
58
58
  groupingName: RowGroupingStrategy.DataSource
59
59
  });
60
- }, [apiRef, props.unstable_dataSource, props.defaultGroupingExpansionDepth, props.isGroupExpandedByDefault]);
60
+ }, [apiRef, props.dataSource, props.defaultGroupingExpansionDepth, props.isGroupExpandedByDefault]);
61
61
  const filterRows = React.useCallback(() => {
62
62
  const rowTree = gridRowTreeSelector(apiRef);
63
63
  return skipFiltering(rowTree);
@@ -0,0 +1,11 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridStateInitializer } from '@mui/x-data-grid-pro/internals';
3
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
4
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
5
+ export declare const rowGroupingStateInitializer: GridStateInitializer<Pick<DataGridPremiumProcessedProps, 'rowGroupingModel' | 'initialState'>>;
6
+ /**
7
+ * @requires useGridColumns (state, method) - can be after, async only
8
+ * @requires useGridRows (state, method) - can be after, async only
9
+ * @requires useGridParamsApi (method) - can be after, async only
10
+ */
11
+ export declare const useGridRowGrouping: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "initialState" | "rowGroupingModel" | "onRowGroupingModelChange" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "groupingColDef" | "rowGroupingColumnMode" | "disableRowGrouping" | "slotProps" | "slots" | "dataSource">) => void;
@@ -37,7 +37,6 @@ export const useGridRowGrouping = (apiRef, props) => {
37
37
  if (currentModel !== model) {
38
38
  apiRef.current.setState(mergeStateWithRowGroupingModel(model));
39
39
  setStrategyAvailability(apiRef, props.disableRowGrouping);
40
- apiRef.current.forceUpdate();
41
40
  }
42
41
  }, [apiRef, props.disableRowGrouping]);
43
42
  const addRowGroupingCriteria = React.useCallback((field, groupingIndex) => {
@@ -141,13 +140,13 @@ export const useGridRowGrouping = (apiRef, props) => {
141
140
  if (!isOnGroupingCell) {
142
141
  return;
143
142
  }
144
- if (props.unstable_dataSource && !params.rowNode.childrenExpanded) {
145
- apiRef.current.unstable_dataSource.fetchRows(params.id);
143
+ if (props.dataSource && !params.rowNode.childrenExpanded) {
144
+ apiRef.current.dataSource.fetchRows(params.id);
146
145
  return;
147
146
  }
148
147
  apiRef.current.setRowChildrenExpansion(params.id, !params.rowNode.childrenExpanded);
149
148
  }
150
- }, [apiRef, props.rowGroupingColumnMode, props.unstable_dataSource]);
149
+ }, [apiRef, props.rowGroupingColumnMode, props.dataSource]);
151
150
  const checkGroupingColumnsModelDiff = React.useCallback(() => {
152
151
  const sanitizedRowGroupingModel = gridRowGroupingSanitizedModelSelector(apiRef);
153
152
  const rulesOnLastRowTreeCreation = apiRef.current.caches.rowGrouping.rulesOnLastRowTreeCreation || [];
@@ -170,7 +169,7 @@ export const useGridRowGrouping = (apiRef, props) => {
170
169
  useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
171
170
  useGridApiEventHandler(apiRef, 'columnsChange', checkGroupingColumnsModelDiff);
172
171
  useGridApiEventHandler(apiRef, 'rowGroupingModelChange', checkGroupingColumnsModelDiff);
173
- useGridApiEventHandler(apiRef, 'rowGroupingModelChange', () => apiRef.current.unstable_dataSource.fetchRows());
172
+ useGridApiEventHandler(apiRef, 'rowGroupingModelChange', () => apiRef.current.dataSource.fetchRows());
174
173
 
175
174
  /*
176
175
  * EFFECTS
@@ -0,0 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
3
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
4
+ export declare const useGridRowGroupingPreProcessors: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "disableRowGrouping" | "groupingColDef" | "rowGroupingColumnMode" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "dataSource">) => void;
@@ -9,7 +9,7 @@ export const useGridRowGroupingPreProcessors = (apiRef, props) => {
9
9
  if (props.disableRowGrouping) {
10
10
  return [];
11
11
  }
12
- const strategy = props.unstable_dataSource ? RowGroupingStrategy.DataSource : RowGroupingStrategy.Default;
12
+ const strategy = props.dataSource ? RowGroupingStrategy.DataSource : RowGroupingStrategy.Default;
13
13
  const groupingColDefProp = props.groupingColDef;
14
14
 
15
15
  // We can't use `gridGroupingRowsSanitizedModelSelector` here because the new columns are not in the state yet
@@ -43,7 +43,7 @@ export const useGridRowGroupingPreProcessors = (apiRef, props) => {
43
43
  return [];
44
44
  }
45
45
  }
46
- }, [apiRef, props.groupingColDef, props.rowGroupingColumnMode, props.disableRowGrouping, props.unstable_dataSource]);
46
+ }, [apiRef, props.groupingColDef, props.rowGroupingColumnMode, props.disableRowGrouping, props.dataSource]);
47
47
  const updateGroupingColumn = React.useCallback(columnsState => {
48
48
  const groupingColDefs = getGroupingColDefs(columnsState);
49
49
  let newColumnFields = [];
@@ -148,14 +148,14 @@ export const useGridRowGroupingPreProcessors = (apiRef, props) => {
148
148
  useGridRegisterStrategyProcessor(apiRef, RowGroupingStrategy.Default, 'sorting', sortRows);
149
149
  useGridRegisterStrategyProcessor(apiRef, RowGroupingStrategy.Default, 'visibleRowsLookupCreation', getVisibleRowsLookup);
150
150
  useFirstRender(() => {
151
- setStrategyAvailability(apiRef, props.disableRowGrouping, props.unstable_dataSource);
151
+ setStrategyAvailability(apiRef, props.disableRowGrouping, props.dataSource);
152
152
  });
153
153
  const isFirstRender = React.useRef(true);
154
154
  React.useEffect(() => {
155
155
  if (!isFirstRender.current) {
156
- setStrategyAvailability(apiRef, props.disableRowGrouping, props.unstable_dataSource);
156
+ setStrategyAvailability(apiRef, props.disableRowGrouping, props.dataSource);
157
157
  } else {
158
158
  isFirstRender.current = false;
159
159
  }
160
- }, [apiRef, props.disableRowGrouping, props.unstable_dataSource]);
160
+ }, [apiRef, props.disableRowGrouping, props.dataSource]);
161
161
  };
@@ -0,0 +1 @@
1
+ export * from "./useGridRowAriaAttributes.js";
@@ -0,0 +1 @@
1
+ export declare const useGridRowAriaAttributes: () => (rowNode: import("@mui/x-data-grid").GridTreeNode, index: number) => React.HTMLAttributes<HTMLElement>;
@@ -0,0 +1,2 @@
1
+ export * from "./features/index.js";
2
+ export * from "./utils/index.js";
@@ -0,0 +1 @@
1
+ export * from "./useKeepGroupedColumnsHidden.js";
@@ -0,0 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridApiCommon } from '@mui/x-data-grid';
3
+ import { GridApiPremium } from "../../models/gridApiPremium.js";
4
+ export declare const useGridApiContext: <Api extends GridApiCommon = GridApiPremium>() => RefObject<Api>;
@@ -0,0 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridApiCommon } from '@mui/x-data-grid';
3
+ import { GridApiPremium } from "../../models/gridApiPremium.js";
4
+ export declare const useGridApiRef: <Api extends GridApiCommon = GridApiPremium>() => RefObject<Api | null>;
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const useGridAriaAttributes: () => React.HTMLAttributes<HTMLElement>;
@@ -0,0 +1,2 @@
1
+ import { GridPrivateApiPremium } from "../../models/gridApiPremium.js";
2
+ export declare const useGridPrivateApiContext: () => import("react").RefObject<GridPrivateApiPremium>;
@@ -0,0 +1,2 @@
1
+ import { DataGridPremiumProcessedProps } from "../../models/dataGridPremiumProps.js";
2
+ export declare const useGridRootProps: () => DataGridPremiumProcessedProps;
@@ -0,0 +1,12 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridApi } from '@mui/x-data-grid-pro';
3
+ import { GridInitialStatePremium } from "../../models/gridStatePremium.js";
4
+ import { DataGridPremiumProps } from "../../models/dataGridPremiumProps.js";
5
+ /**
6
+ * Automatically hide columns when added to the row grouping model and stop hiding them when they are removed.
7
+ * Handles both the `props.initialState.rowGrouping.model` and `props.rowGroupingModel`
8
+ * Does not work when used with the `hide` property of `GridColDef`
9
+ */
10
+ export declare const useKeepGroupedColumnsHidden: (props: {
11
+ apiRef: RefObject<GridApi | null>;
12
+ } & Pick<DataGridPremiumProps, "initialState" | "rowGroupingModel">) => GridInitialStatePremium;
@@ -25,9 +25,9 @@ export const useKeepGroupedColumnsHidden = props => {
25
25
  const initialProps = React.useRef(props);
26
26
  const rowGroupingModel = React.useRef(props.rowGroupingModel ?? props.initialState?.rowGrouping?.model);
27
27
  React.useEffect(() => {
28
- props.apiRef.current.subscribeEvent('rowGroupingModelChange', newModel => {
28
+ props.apiRef.current?.subscribeEvent('rowGroupingModelChange', newModel => {
29
29
  const columnVisibilityModel = updateColumnVisibilityModel(gridColumnVisibilityModelSelector(props.apiRef), newModel, rowGroupingModel.current);
30
- props.apiRef.current.setColumnVisibilityModel(columnVisibilityModel);
30
+ props.apiRef.current?.setColumnVisibilityModel(columnVisibilityModel);
31
31
  rowGroupingModel.current = newModel;
32
32
  });
33
33
  }, [props.apiRef]);
package/esm/index.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import "./typeOverloads/index.js";
2
+ export * from '@mui/x-data-grid/components';
3
+ export * from '@mui/x-data-grid-pro/components';
4
+ export * from '@mui/x-data-grid/constants';
5
+ export * from '@mui/x-data-grid/hooks';
6
+ export * from '@mui/x-data-grid-pro/hooks';
7
+ export * from '@mui/x-data-grid/models';
8
+ export * from '@mui/x-data-grid-pro/models';
9
+ export * from '@mui/x-data-grid/context';
10
+ export * from '@mui/x-data-grid/colDef';
11
+ export * from '@mui/x-data-grid/utils';
12
+ export * from '@mui/x-data-grid-pro/utils';
13
+ export * from "./DataGridPremium/index.js";
14
+ export * from "./hooks/index.js";
15
+ export * from "./models/index.js";
16
+ export * from "./components/index.js";
17
+ export { GridColumnHeaders } from '@mui/x-data-grid-pro';
18
+ export type { GridColumnHeadersProps } from '@mui/x-data-grid-pro';
19
+ export type { DataGridPremiumProps, GridExperimentalPremiumFeatures } from './models/dataGridPremiumProps';
20
+ export { useGridApiContext, useGridApiRef, useGridRootProps } from "./typeOverloads/reexports.js";
21
+ export type { GridApi, GridInitialState, GridState } from './typeOverloads/reexports';
22
+ export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS } from "./components/reexports.js";
23
+ export type { GridGetRowsParamsPremium as GridGetRowsParams, GridGetRowsResponsePremium as GridGetRowsResponse, GridDataSourcePremium as GridDataSource, GridDataSourceApiPremium as GridDataSourceApi, GridDataSourceApiBasePremium as GridDataSourceApiBase, GridDataSourcePremiumPrivateApi as GridDataSourcePrivateApi } from './hooks/features/dataSource/models';