@mui/x-data-grid-premium 8.0.0-alpha.11 → 8.0.0-alpha.13

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 (391) hide show
  1. package/CHANGELOG.md +460 -1
  2. package/DataGridPremium/DataGrid.d.ts +1 -1
  3. package/DataGridPremium/DataGridPremium.d.ts +6 -6
  4. package/DataGridPremium/DataGridPremium.js +55 -30
  5. package/DataGridPremium/index.d.ts +3 -3
  6. package/DataGridPremium/useDataGridPremiumComponent.d.ts +3 -3
  7. package/DataGridPremium/useDataGridPremiumComponent.js +3 -2
  8. package/DataGridPremium/useDataGridPremiumProps.d.ts +2 -2
  9. package/DataGridPremium/useDataGridPremiumProps.js +2 -2
  10. package/components/GridAggregationHeader.d.ts +3 -3
  11. package/components/GridAggregationHeader.js +7 -11
  12. package/components/GridAggregationRowOverlay.d.ts +3 -0
  13. package/components/GridAggregationRowOverlay.js +44 -0
  14. package/components/GridBottomContainer.d.ts +3 -0
  15. package/components/GridBottomContainer.js +51 -0
  16. package/components/GridColumnMenuAggregationItem.d.ts +2 -2
  17. package/components/GridColumnMenuAggregationItem.js +36 -46
  18. package/components/GridColumnMenuRowGroupItem.d.ts +1 -1
  19. package/components/GridColumnMenuRowUngroupItem.d.ts +1 -1
  20. package/components/GridDataSourceGroupingCriteriaCell.d.ts +2 -2
  21. package/components/GridDataSourceGroupingCriteriaCell.js +8 -12
  22. package/components/GridExcelExportMenuItem.d.ts +3 -3
  23. package/components/GridFooterCell.d.ts +2 -2
  24. package/components/GridFooterCell.js +5 -6
  25. package/components/GridGroupingColumnFooterCell.d.ts +1 -1
  26. package/components/GridGroupingColumnFooterCell.js +2 -1
  27. package/components/GridGroupingColumnLeafCell.d.ts +1 -1
  28. package/components/GridGroupingColumnLeafCell.js +3 -9
  29. package/components/GridGroupingCriteriaCell.d.ts +2 -2
  30. package/components/GridGroupingCriteriaCell.js +3 -8
  31. package/components/GridPremiumColumnMenu.d.ts +26 -26
  32. package/components/index.d.ts +5 -5
  33. package/components/promptControl/GridToolbarPromptControl.d.ts +22 -22
  34. package/components/promptControl/GridToolbarPromptControl.js +34 -32
  35. package/components/promptControl/RecordButton.d.ts +9 -9
  36. package/components/promptControl/index.d.ts +1 -1
  37. package/components/reexports.d.ts +1 -1
  38. package/constants/dataGridPremiumDefaultSlotsComponents.d.ts +1 -1
  39. package/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
  40. package/esm/DataGridPremium/DataGrid.d.ts +8 -0
  41. package/esm/DataGridPremium/DataGridPremium.d.ts +16 -0
  42. package/esm/DataGridPremium/DataGridPremium.js +55 -30
  43. package/esm/DataGridPremium/index.d.ts +3 -0
  44. package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
  45. package/esm/DataGridPremium/useDataGridPremiumComponent.js +4 -3
  46. package/esm/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
  47. package/esm/DataGridPremium/useDataGridPremiumProps.js +2 -2
  48. package/esm/components/GridAggregationHeader.d.ts +7 -0
  49. package/esm/components/GridAggregationHeader.js +7 -11
  50. package/esm/components/GridAggregationRowOverlay.d.ts +3 -0
  51. package/esm/components/GridAggregationRowOverlay.js +37 -0
  52. package/esm/components/GridBottomContainer.d.ts +3 -0
  53. package/esm/components/GridBottomContainer.js +43 -0
  54. package/esm/components/GridColumnMenuAggregationItem.d.ts +7 -0
  55. package/esm/components/GridColumnMenuAggregationItem.js +36 -46
  56. package/esm/components/GridColumnMenuRowGroupItem.d.ts +3 -0
  57. package/esm/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
  58. package/esm/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
  59. package/esm/components/GridDataSourceGroupingCriteriaCell.js +9 -13
  60. package/esm/components/GridExcelExportMenuItem.d.ts +9 -0
  61. package/esm/components/GridFooterCell.d.ts +9 -0
  62. package/esm/components/GridFooterCell.js +5 -6
  63. package/esm/components/GridGroupingColumnFooterCell.d.ts +4 -0
  64. package/esm/components/GridGroupingColumnFooterCell.js +2 -1
  65. package/esm/components/GridGroupingColumnLeafCell.d.ts +4 -0
  66. package/esm/components/GridGroupingColumnLeafCell.js +3 -8
  67. package/esm/components/GridGroupingCriteriaCell.d.ts +7 -0
  68. package/esm/components/GridGroupingCriteriaCell.js +3 -8
  69. package/esm/components/GridPremiumColumnMenu.d.ts +33 -0
  70. package/esm/components/index.d.ts +5 -0
  71. package/esm/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
  72. package/esm/components/promptControl/GridToolbarPromptControl.js +34 -32
  73. package/esm/components/promptControl/RecordButton.d.ts +16 -0
  74. package/esm/components/promptControl/index.d.ts +1 -0
  75. package/esm/components/reexports.d.ts +1 -0
  76. package/esm/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
  77. package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
  78. package/esm/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
  79. package/esm/hooks/features/aggregation/createAggregationLookup.js +3 -3
  80. package/esm/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
  81. package/esm/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
  82. package/esm/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
  83. package/esm/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
  84. package/esm/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
  85. package/esm/hooks/features/aggregation/index.d.ts +4 -0
  86. package/esm/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
  87. package/esm/hooks/features/aggregation/useGridAggregation.js +6 -6
  88. package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
  89. package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.js +6 -6
  90. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
  91. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  92. package/esm/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
  93. package/esm/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
  94. package/esm/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
  95. package/esm/hooks/features/cellSelection/index.d.ts +1 -0
  96. package/esm/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
  97. package/esm/hooks/features/cellSelection/useGridCellSelection.js +5 -6
  98. package/esm/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
  99. package/esm/hooks/features/clipboard/useGridClipboardImport.js +5 -5
  100. package/esm/hooks/features/dataSource/models.d.ts +54 -0
  101. package/esm/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
  102. package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
  103. package/esm/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
  104. package/esm/hooks/features/export/index.d.ts +2 -0
  105. package/esm/hooks/features/export/index.js +1 -1
  106. package/esm/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
  107. package/esm/hooks/features/export/serializer/excelSerializer.js +69 -180
  108. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  109. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
  110. package/esm/hooks/features/export/serializer/utils.d.ts +36 -0
  111. package/esm/hooks/features/export/serializer/utils.js +93 -0
  112. package/esm/hooks/features/export/useGridExcelExport.d.ts +11 -0
  113. package/esm/hooks/features/export/useGridExcelExport.js +11 -5
  114. package/esm/hooks/features/index.d.ts +5 -0
  115. package/esm/hooks/features/promptControl/api.d.ts +2 -0
  116. package/esm/hooks/features/promptControl/index.d.ts +2 -0
  117. package/esm/hooks/features/promptControl/types.d.ts +25 -0
  118. package/esm/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
  119. package/esm/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
  120. package/esm/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
  121. package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
  122. package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  123. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
  124. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +2 -2
  125. package/esm/hooks/features/rowGrouping/index.d.ts +3 -0
  126. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
  127. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
  128. package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
  129. package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  130. package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  131. package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
  132. package/esm/hooks/features/rows/index.d.ts +1 -0
  133. package/esm/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
  134. package/esm/hooks/index.d.ts +2 -0
  135. package/esm/hooks/utils/index.d.ts +1 -0
  136. package/esm/hooks/utils/useGridApiContext.d.ts +4 -0
  137. package/esm/hooks/utils/useGridApiRef.d.ts +4 -0
  138. package/esm/hooks/utils/useGridAriaAttributes.d.ts +2 -0
  139. package/esm/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
  140. package/esm/hooks/utils/useGridRootProps.d.ts +2 -0
  141. package/esm/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
  142. package/esm/index.d.ts +23 -0
  143. package/esm/index.js +6 -5
  144. package/esm/locales.d.ts +1 -0
  145. package/esm/material/icons.d.ts +15 -0
  146. package/esm/material/index.d.ts +8 -0
  147. package/esm/models/dataGridPremiumProps.d.ts +162 -0
  148. package/esm/models/gridApiPremium.d.ts +14 -0
  149. package/esm/models/gridGroupingValueGetter.d.ts +4 -0
  150. package/esm/models/gridPastedValueParser.d.ts +4 -0
  151. package/esm/models/gridPremiumIconSlotsComponent.d.ts +28 -0
  152. package/esm/models/gridPremiumSlotsComponent.d.ts +7 -0
  153. package/esm/models/gridStatePremium.d.ts +18 -0
  154. package/esm/models/index.d.ts +4 -0
  155. package/esm/package.json +1 -0
  156. package/esm/setupExcelExportWebWorker.d.ts +1 -0
  157. package/esm/setupExcelExportWebWorker.js +1 -0
  158. package/esm/themeAugmentation/index.d.ts +2 -0
  159. package/esm/themeAugmentation/overrides.d.ts +7 -0
  160. package/esm/themeAugmentation/props.d.ts +15 -0
  161. package/esm/typeOverloads/index.d.ts +2 -0
  162. package/esm/typeOverloads/modules.d.ts +97 -0
  163. package/esm/typeOverloads/reexports.d.ts +17 -0
  164. package/esm/utils/releaseInfo.d.ts +1 -0
  165. package/esm/utils/releaseInfo.js +1 -1
  166. package/hooks/features/aggregation/createAggregationLookup.d.ts +16 -10
  167. package/hooks/features/aggregation/createAggregationLookup.js +2 -2
  168. package/hooks/features/aggregation/gridAggregationFunctions.d.ts +7 -7
  169. package/hooks/features/aggregation/gridAggregationInterfaces.d.ts +81 -82
  170. package/hooks/features/aggregation/gridAggregationSelectors.d.ts +3 -3
  171. package/hooks/features/aggregation/gridAggregationSelectors.js +1 -2
  172. package/hooks/features/aggregation/gridAggregationUtils.d.ts +42 -25
  173. package/hooks/features/aggregation/index.d.ts +4 -4
  174. package/hooks/features/aggregation/useGridAggregation.d.ts +3 -3
  175. package/hooks/features/aggregation/useGridAggregation.js +6 -6
  176. package/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +3 -3
  177. package/hooks/features/aggregation/useGridAggregationPreProcessors.js +6 -6
  178. package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +67 -62
  179. package/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  180. package/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +34 -34
  181. package/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -2
  182. package/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -2
  183. package/hooks/features/cellSelection/index.d.ts +1 -1
  184. package/hooks/features/cellSelection/useGridCellSelection.d.ts +3 -3
  185. package/hooks/features/cellSelection/useGridCellSelection.js +5 -6
  186. package/hooks/features/clipboard/useGridClipboardImport.d.ts +2 -2
  187. package/hooks/features/clipboard/useGridClipboardImport.js +4 -4
  188. package/hooks/features/dataSource/models.d.ts +41 -34
  189. package/hooks/features/dataSource/useGridDataSourcePremium.d.ts +3 -3
  190. package/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
  191. package/hooks/features/export/gridExcelExportInterface.d.ts +52 -52
  192. package/hooks/features/export/index.d.ts +2 -2
  193. package/hooks/features/export/index.js +2 -2
  194. package/hooks/features/export/serializer/excelSerializer.d.ts +23 -51
  195. package/hooks/features/export/serializer/excelSerializer.js +74 -187
  196. package/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  197. package/hooks/features/export/serializer/setupExcelExportWebWorker.js +59 -0
  198. package/hooks/features/export/serializer/utils.d.ts +36 -0
  199. package/hooks/features/export/serializer/utils.js +106 -0
  200. package/hooks/features/export/useGridExcelExport.d.ts +3 -3
  201. package/hooks/features/export/useGridExcelExport.js +10 -3
  202. package/hooks/features/index.d.ts +5 -5
  203. package/hooks/features/promptControl/api.d.ts +2 -2
  204. package/hooks/features/promptControl/index.d.ts +2 -2
  205. package/hooks/features/promptControl/types.d.ts +15 -15
  206. package/hooks/features/rowGrouping/createGroupingColDef.d.ts +44 -32
  207. package/hooks/features/rowGrouping/createGroupingColDef.js +4 -4
  208. package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +32 -32
  209. package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +2 -2
  210. package/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  211. package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +30 -22
  212. package/hooks/features/rowGrouping/gridRowGroupingUtils.js +1 -1
  213. package/hooks/features/rowGrouping/index.d.ts +3 -3
  214. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +3 -3
  215. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
  216. package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +3 -3
  217. package/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  218. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +3 -3
  219. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
  220. package/hooks/features/rows/index.d.ts +1 -1
  221. package/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  222. package/hooks/index.d.ts +2 -2
  223. package/hooks/utils/index.d.ts +1 -1
  224. package/hooks/utils/useGridApiContext.d.ts +2 -2
  225. package/hooks/utils/useGridApiRef.d.ts +2 -2
  226. package/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  227. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -2
  228. package/hooks/utils/useGridRootProps.d.ts +2 -2
  229. package/hooks/utils/useKeepGroupedColumnsHidden.d.ts +4 -4
  230. package/index.d.ts +9 -17
  231. package/index.js +2 -11
  232. package/locales.d.ts +1 -1
  233. package/material/icons.d.ts +6 -6
  234. package/material/index.d.ts +6 -6
  235. package/models/dataGridPremiumProps.d.ts +140 -135
  236. package/models/gridApiPremium.d.ts +4 -6
  237. package/models/gridGroupingValueGetter.d.ts +2 -2
  238. package/models/gridPastedValueParser.d.ts +2 -2
  239. package/models/gridPremiumIconSlotsComponent.d.ts +26 -26
  240. package/models/gridPremiumSlotsComponent.d.ts +2 -3
  241. package/models/gridStatePremium.d.ts +7 -7
  242. package/models/index.d.ts +4 -4
  243. package/modern/DataGridPremium/DataGrid.d.ts +8 -0
  244. package/modern/DataGridPremium/DataGridPremium.d.ts +16 -0
  245. package/modern/DataGridPremium/DataGridPremium.js +55 -30
  246. package/modern/DataGridPremium/index.d.ts +3 -0
  247. package/modern/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
  248. package/modern/DataGridPremium/useDataGridPremiumComponent.js +4 -3
  249. package/modern/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
  250. package/modern/DataGridPremium/useDataGridPremiumProps.js +2 -2
  251. package/modern/components/GridAggregationHeader.d.ts +7 -0
  252. package/modern/components/GridAggregationHeader.js +7 -11
  253. package/modern/components/GridAggregationRowOverlay.d.ts +3 -0
  254. package/modern/components/GridAggregationRowOverlay.js +37 -0
  255. package/modern/components/GridBottomContainer.d.ts +3 -0
  256. package/modern/components/GridBottomContainer.js +43 -0
  257. package/modern/components/GridColumnMenuAggregationItem.d.ts +7 -0
  258. package/modern/components/GridColumnMenuAggregationItem.js +36 -46
  259. package/modern/components/GridColumnMenuRowGroupItem.d.ts +3 -0
  260. package/modern/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
  261. package/modern/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
  262. package/modern/components/GridDataSourceGroupingCriteriaCell.js +9 -13
  263. package/modern/components/GridExcelExportMenuItem.d.ts +9 -0
  264. package/modern/components/GridFooterCell.d.ts +9 -0
  265. package/modern/components/GridFooterCell.js +5 -6
  266. package/modern/components/GridGroupingColumnFooterCell.d.ts +4 -0
  267. package/modern/components/GridGroupingColumnFooterCell.js +2 -1
  268. package/modern/components/GridGroupingColumnLeafCell.d.ts +4 -0
  269. package/modern/components/GridGroupingColumnLeafCell.js +3 -8
  270. package/modern/components/GridGroupingCriteriaCell.d.ts +7 -0
  271. package/modern/components/GridGroupingCriteriaCell.js +3 -8
  272. package/modern/components/GridPremiumColumnMenu.d.ts +33 -0
  273. package/modern/components/index.d.ts +5 -0
  274. package/modern/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
  275. package/modern/components/promptControl/GridToolbarPromptControl.js +34 -32
  276. package/modern/components/promptControl/RecordButton.d.ts +16 -0
  277. package/modern/components/promptControl/index.d.ts +1 -0
  278. package/modern/components/reexports.d.ts +1 -0
  279. package/modern/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
  280. package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
  281. package/modern/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
  282. package/modern/hooks/features/aggregation/createAggregationLookup.js +3 -3
  283. package/modern/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
  284. package/modern/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
  285. package/modern/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
  286. package/modern/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
  287. package/modern/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
  288. package/modern/hooks/features/aggregation/index.d.ts +4 -0
  289. package/modern/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
  290. package/modern/hooks/features/aggregation/useGridAggregation.js +6 -6
  291. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
  292. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.js +6 -6
  293. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
  294. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  295. package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
  296. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
  297. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
  298. package/modern/hooks/features/cellSelection/index.d.ts +1 -0
  299. package/modern/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
  300. package/modern/hooks/features/cellSelection/useGridCellSelection.js +5 -6
  301. package/modern/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
  302. package/modern/hooks/features/clipboard/useGridClipboardImport.js +5 -5
  303. package/modern/hooks/features/dataSource/models.d.ts +54 -0
  304. package/modern/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
  305. package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
  306. package/modern/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
  307. package/modern/hooks/features/export/index.d.ts +2 -0
  308. package/modern/hooks/features/export/index.js +1 -1
  309. package/modern/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
  310. package/modern/hooks/features/export/serializer/excelSerializer.js +69 -180
  311. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  312. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
  313. package/modern/hooks/features/export/serializer/utils.d.ts +36 -0
  314. package/modern/hooks/features/export/serializer/utils.js +93 -0
  315. package/modern/hooks/features/export/useGridExcelExport.d.ts +11 -0
  316. package/modern/hooks/features/export/useGridExcelExport.js +11 -5
  317. package/modern/hooks/features/index.d.ts +5 -0
  318. package/modern/hooks/features/promptControl/api.d.ts +2 -0
  319. package/modern/hooks/features/promptControl/index.d.ts +2 -0
  320. package/modern/hooks/features/promptControl/types.d.ts +25 -0
  321. package/modern/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
  322. package/modern/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
  323. package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
  324. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
  325. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  326. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
  327. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +2 -2
  328. package/modern/hooks/features/rowGrouping/index.d.ts +3 -0
  329. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
  330. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
  331. package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
  332. package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  333. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  334. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
  335. package/modern/hooks/features/rows/index.d.ts +1 -0
  336. package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
  337. package/modern/hooks/index.d.ts +2 -0
  338. package/modern/hooks/utils/index.d.ts +1 -0
  339. package/modern/hooks/utils/useGridApiContext.d.ts +4 -0
  340. package/modern/hooks/utils/useGridApiRef.d.ts +4 -0
  341. package/modern/hooks/utils/useGridAriaAttributes.d.ts +2 -0
  342. package/modern/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
  343. package/modern/hooks/utils/useGridRootProps.d.ts +2 -0
  344. package/modern/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
  345. package/modern/index.d.ts +23 -0
  346. package/modern/index.js +1 -7
  347. package/modern/locales.d.ts +1 -0
  348. package/modern/material/icons.d.ts +15 -0
  349. package/modern/material/index.d.ts +8 -0
  350. package/modern/models/dataGridPremiumProps.d.ts +162 -0
  351. package/modern/models/gridApiPremium.d.ts +14 -0
  352. package/modern/models/gridGroupingValueGetter.d.ts +4 -0
  353. package/modern/models/gridPastedValueParser.d.ts +4 -0
  354. package/modern/models/gridPremiumIconSlotsComponent.d.ts +28 -0
  355. package/modern/models/gridPremiumSlotsComponent.d.ts +7 -0
  356. package/modern/models/gridStatePremium.d.ts +18 -0
  357. package/modern/models/index.d.ts +4 -0
  358. package/modern/package.json +1 -0
  359. package/modern/setupExcelExportWebWorker.d.ts +1 -0
  360. package/modern/setupExcelExportWebWorker.js +1 -0
  361. package/modern/themeAugmentation/index.d.ts +2 -0
  362. package/modern/themeAugmentation/overrides.d.ts +7 -0
  363. package/modern/themeAugmentation/props.d.ts +15 -0
  364. package/modern/typeOverloads/index.d.ts +2 -0
  365. package/modern/typeOverloads/modules.d.ts +97 -0
  366. package/modern/typeOverloads/reexports.d.ts +17 -0
  367. package/modern/utils/releaseInfo.d.ts +1 -0
  368. package/modern/utils/releaseInfo.js +1 -1
  369. package/package.json +39 -9
  370. package/setupExcelExportWebWorker.d.ts +1 -0
  371. package/setupExcelExportWebWorker.js +12 -0
  372. package/themeAugmentation/index.d.ts +2 -2
  373. package/themeAugmentation/overrides.d.ts +3 -4
  374. package/themeAugmentation/props.d.ts +9 -11
  375. package/tsconfig.build.tsbuildinfo +1 -0
  376. package/typeOverloads/index.d.ts +1 -1
  377. package/typeOverloads/modules.d.ts +75 -82
  378. package/typeOverloads/reexports.d.ts +5 -5
  379. package/utils/releaseInfo.d.ts +1 -1
  380. package/utils/releaseInfo.js +1 -1
  381. package/DataGridPremium/package.json +0 -6
  382. package/components/package.json +0 -6
  383. package/esm/hooks/features/dataSource/cache.js +0 -3
  384. package/hooks/features/dataSource/cache.d.ts +0 -2
  385. package/hooks/features/dataSource/cache.js +0 -9
  386. package/hooks/package.json +0 -6
  387. package/material/package.json +0 -6
  388. package/models/package.json +0 -6
  389. package/modern/hooks/features/dataSource/cache.js +0 -3
  390. package/themeAugmentation/package.json +0 -6
  391. package/typeOverloads/package.json +0 -6
@@ -3,6 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["formattedValue", "colDef", "cellMode", "row", "api", "id", "value", "rowNode", "field", "focusElementRef", "hasFocus", "tabIndex", "isEditable"];
4
4
  import * as React from 'react';
5
5
  import { getDataGridUtilityClass } from '@mui/x-data-grid';
6
+ import { vars } from '@mui/x-data-grid/internals';
6
7
  import { styled } from '@mui/material/styles';
7
8
  import composeClasses from '@mui/utils/composeClasses';
8
9
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
@@ -11,12 +12,10 @@ const GridFooterCellRoot = styled('div', {
11
12
  name: 'MuiDataGrid',
12
13
  slot: 'FooterCell',
13
14
  overridesResolver: (_, styles) => styles.footerCell
14
- })(({
15
- theme
16
- }) => ({
17
- fontWeight: theme.typography.fontWeightMedium,
18
- color: (theme.vars || theme).palette.primary.dark
19
- }));
15
+ })({
16
+ fontWeight: vars.typography.fontWeight.medium,
17
+ color: vars.colors.foreground.accent
18
+ });
20
19
  const useUtilityClasses = ownerState => {
21
20
  const {
22
21
  classes
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { GridRenderCellParams } from '@mui/x-data-grid-pro';
3
+ declare function GridGroupingColumnFooterCell(props: GridRenderCellParams): React.JSX.Element;
4
+ export { GridGroupingColumnFooterCell };
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
+ import { vars } from '@mui/x-data-grid/internals';
3
4
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
4
5
  import { GridFooterCell } from "./GridFooterCell.js";
5
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -13,7 +14,7 @@ function GridGroupingColumnFooterCell(props) {
13
14
  } else if (rootProps.rowGroupingColumnMode === 'multiple') {
14
15
  sx.ml = 2;
15
16
  } else {
16
- sx.ml = theme => `calc(var(--DataGrid-cellOffsetMultiplier) * ${theme.spacing(props.rowNode.depth)})`;
17
+ sx.ml = `calc(var(--DataGrid-cellOffsetMultiplier) * ${vars.spacing(props.rowNode.depth)})`;
17
18
  }
18
19
  return /*#__PURE__*/_jsx(GridFooterCell, _extends({
19
20
  sx: sx
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { GridRenderCellParams } from '@mui/x-data-grid-pro';
3
+ declare function GridGroupingColumnLeafCell(props: GridRenderCellParams): React.JSX.Element;
4
+ export { GridGroupingColumnLeafCell };
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import Box from '@mui/material/Box';
2
+ import { vars } from '@mui/x-data-grid/internals';
3
3
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  function GridGroupingColumnLeafCell(props) {
@@ -7,14 +7,9 @@ function GridGroupingColumnLeafCell(props) {
7
7
  rowNode
8
8
  } = props;
9
9
  const rootProps = useGridRootProps();
10
- return /*#__PURE__*/_jsx(Box, {
11
- sx: [rootProps.rowGroupingColumnMode === 'multiple' ? {
12
- ml: 1
13
- } : theme => ({
14
- ml: `calc(var(--DataGrid-cellOffsetMultiplier) * var(--depth) * ${theme.spacing(1)})`
15
- })],
10
+ return /*#__PURE__*/_jsx("div", {
16
11
  style: {
17
- '--depth': rowNode.depth
12
+ marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? vars.spacing(1) : `calc(var(--DataGrid-cellOffsetMultiplier) * ${vars.spacing(rowNode.depth)})`
18
13
  },
19
14
  children: props.formattedValue ?? props.value
20
15
  });
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { GridRenderCellParams, GridGroupNode } from '@mui/x-data-grid-pro';
3
+ interface GridGroupingCriteriaCellProps extends GridRenderCellParams<any, any, any, GridGroupNode> {
4
+ hideDescendantCount?: boolean;
5
+ }
6
+ export declare function GridGroupingCriteriaCell(props: GridGroupingCriteriaCellProps): React.JSX.Element;
7
+ export {};
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import composeClasses from '@mui/utils/composeClasses';
4
- import Box from '@mui/material/Box';
4
+ import { vars } from '@mui/x-data-grid/internals';
5
5
  import { useGridSelector, gridFilteredDescendantCountLookupSelector, getDataGridUtilityClass } from '@mui/x-data-grid-pro';
6
6
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
7
7
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
@@ -59,15 +59,10 @@ export function GridGroupingCriteriaCell(props) {
59
59
  children: rowNode.groupingKey
60
60
  });
61
61
  }
62
- return /*#__PURE__*/_jsxs(Box, {
62
+ return /*#__PURE__*/_jsxs("div", {
63
63
  className: classes.root,
64
- sx: [rootProps.rowGroupingColumnMode === 'multiple' ? {
65
- ml: 0
66
- } : theme => ({
67
- ml: `calc(var(--DataGrid-cellOffsetMultiplier) * var(--depth) * ${theme.spacing(1)})`
68
- })],
69
64
  style: {
70
- '--depth': rowNode.depth
65
+ marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? 0 : `calc(var(--DataGrid-cellOffsetMultiplier) * ${rowNode.depth} * ${vars.spacing(1)})`
71
66
  },
72
67
  children: [/*#__PURE__*/_jsx("div", {
73
68
  className: classes.toggle,
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import { GridColumnMenuProps, GridColumnMenuItemProps } from '@mui/x-data-grid-pro';
3
+ import { GridColumnMenuAggregationItem } from "./GridColumnMenuAggregationItem.js";
4
+ export declare function GridColumnMenuGroupingItem(props: GridColumnMenuItemProps): React.JSX.Element;
5
+ export declare const GRID_COLUMN_MENU_SLOTS_PREMIUM: {
6
+ columnMenuAggregationItem: typeof GridColumnMenuAggregationItem;
7
+ columnMenuGroupingItem: typeof GridColumnMenuGroupingItem;
8
+ columnMenuPinningItem: typeof import("@mui/x-data-grid-pro").GridColumnMenuPinningItem;
9
+ columnMenuSortItem: typeof import("@mui/x-data-grid").GridColumnMenuSortItem;
10
+ columnMenuFilterItem: typeof import("@mui/x-data-grid").GridColumnMenuFilterItem;
11
+ columnMenuColumnsItem: typeof import("@mui/x-data-grid").GridColumnMenuColumnsItem;
12
+ };
13
+ export declare const GRID_COLUMN_MENU_SLOT_PROPS_PREMIUM: {
14
+ columnMenuAggregationItem: {
15
+ displayOrder: number;
16
+ };
17
+ columnMenuGroupingItem: {
18
+ displayOrder: number;
19
+ };
20
+ columnMenuPinningItem: {
21
+ displayOrder: number;
22
+ };
23
+ columnMenuSortItem: {
24
+ displayOrder: number;
25
+ };
26
+ columnMenuFilterItem: {
27
+ displayOrder: number;
28
+ };
29
+ columnMenuColumnsItem: {
30
+ displayOrder: number;
31
+ };
32
+ };
33
+ export declare const GridPremiumColumnMenu: React.ForwardRefExoticComponent<GridColumnMenuProps> | React.ForwardRefExoticComponent<GridColumnMenuProps & React.RefAttributes<HTMLUListElement>>;
@@ -0,0 +1,5 @@
1
+ export * from "./GridExcelExportMenuItem.js";
2
+ export * from "../material/icons.js";
3
+ export * from "./GridColumnMenuAggregationItem.js";
4
+ export * from "./promptControl/index.js";
5
+ export { GridColumnMenuGroupingItem } from "./GridPremiumColumnMenu.js";
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import { PromptResponse } from "../../hooks/features/promptControl/types.js";
3
+ type GridToolbarPromptControlProps = {
4
+ /**
5
+ * Called when the new prompt is ready to be processed.
6
+ * Provides the prompt and the data context and expects the grid state updates to be returned.
7
+ * @param {string} context The context of the prompt
8
+ * @param {string} query The query to process
9
+ * @returns {Promise<PromptResponse>} The grid state updates
10
+ */
11
+ onPrompt: (context: string, query: string) => Promise<PromptResponse>;
12
+ /**
13
+ * Allow taking couple of random cell values from each column to improve the prompt context.
14
+ * If allowed, samples are taken from different rows.
15
+ * If not allowed, the column examples are used.
16
+ * @default false
17
+ */
18
+ allowDataSampling?: boolean;
19
+ /**
20
+ * The BCP 47 language tag to use for the speech recognition.
21
+ * @default HTML lang attribute value or the user agent's language setting
22
+ */
23
+ lang?: string;
24
+ };
25
+ declare function GridToolbarPromptControl(props: GridToolbarPromptControlProps): React.JSX.Element;
26
+ export { GridToolbarPromptControl };
@@ -119,10 +119,18 @@ function GridToolbarPromptControl(props) {
119
119
  sort: s.direction
120
120
  })));
121
121
  const rows = getVisibleRows(apiRef, rootProps);
122
- const selectedRowIds = result.select === -1 ? [] : rows.rows.slice(0, result.select).map(r => {
123
- return apiRef.current.getRowId(r);
124
- });
125
- apiRef.current.setRowSelectionModel(selectedRowIds);
122
+ const rowSelectionModel = {
123
+ type: 'include',
124
+ ids: new Set()
125
+ };
126
+ if (result.select !== -1) {
127
+ for (let i = 0; i < result.select; i += 1) {
128
+ const row = rows.rows[i];
129
+ const id = apiRef.current.getRowId(row);
130
+ rowSelectionModel.ids.add(id);
131
+ }
132
+ }
133
+ apiRef.current.setRowSelectionModel(rowSelectionModel);
126
134
  const columns = apiRef.current.getAllColumns();
127
135
  const targetIndex = Number(columns.find(c => c.field === GRID_CHECKBOX_SELECTION_FIELD) !== undefined) + Number(result.grouping.length);
128
136
  interestColumns.push(...Object.keys(result.aggregation));
@@ -172,35 +180,29 @@ function GridToolbarPromptControl(props) {
172
180
  helperText: error,
173
181
  slotProps: {
174
182
  input: {
175
- startAdornment: supportsSpeechRecognition && /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
176
- position: "start",
177
- children: /*#__PURE__*/_jsx(RecordButton, {
178
- className: classes.recordButton,
179
- lang: lang,
180
- recording: isRecording,
181
- setRecording: setRecording,
182
- disabled: isLoading,
183
- onUpdate: setQuery,
184
- onDone: handleDone,
185
- onError: setError
186
- })
183
+ startAdornment: supportsSpeechRecognition && /*#__PURE__*/_jsx(RecordButton, {
184
+ className: classes.recordButton,
185
+ lang: lang,
186
+ recording: isRecording,
187
+ setRecording: setRecording,
188
+ disabled: isLoading,
189
+ onUpdate: setQuery,
190
+ onDone: handleDone,
191
+ onError: setError
187
192
  }),
188
- endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
189
- position: "end",
190
- children: /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, {
191
- title: apiRef.current.getLocaleText('toolbarPromptControlSendActionLabel'),
192
- children: /*#__PURE__*/_jsx("div", {
193
- children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, {
194
- className: classes.sendButton,
195
- disabled: isLoading || isRecording || query === '',
196
- color: "primary",
197
- onClick: processPrompt,
198
- size: "small",
199
- "aria-label": apiRef.current.getLocaleText('toolbarPromptControlSendActionAriaLabel'),
200
- edge: "end",
201
- children: /*#__PURE__*/_jsx(rootProps.slots.toolbarPromptSendIcon, {
202
- fontSize: "small"
203
- })
193
+ endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, {
194
+ title: apiRef.current.getLocaleText('toolbarPromptControlSendActionLabel'),
195
+ children: /*#__PURE__*/_jsx("div", {
196
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, {
197
+ className: classes.sendButton,
198
+ disabled: isLoading || isRecording || query === '',
199
+ color: "primary",
200
+ onClick: processPrompt,
201
+ size: "small",
202
+ "aria-label": apiRef.current.getLocaleText('toolbarPromptControlSendActionAriaLabel'),
203
+ edge: "end",
204
+ children: /*#__PURE__*/_jsx(rootProps.slots.toolbarPromptSendIcon, {
205
+ fontSize: "small"
204
206
  })
205
207
  })
206
208
  })
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ export declare const BrowserSpeechRecognition: any;
3
+ type SpeechRecognitionOptions = {
4
+ onUpdate: (value: string) => void;
5
+ onDone: (value: string) => void;
6
+ onError: (error: string) => void;
7
+ };
8
+ interface RecordButtonProps extends SpeechRecognitionOptions {
9
+ disabled: boolean;
10
+ lang?: string;
11
+ recording: boolean;
12
+ setRecording: (value: boolean) => void;
13
+ className: string;
14
+ }
15
+ declare function RecordButton(props: RecordButtonProps): React.JSX.Element;
16
+ export { RecordButton };
@@ -0,0 +1 @@
1
+ export { GridToolbarPromptControl as Unstable_GridToolbarPromptControl } from "./GridToolbarPromptControl.js";
@@ -0,0 +1 @@
1
+ export { GridPremiumColumnMenu as GridColumnMenu, GRID_COLUMN_MENU_SLOTS_PREMIUM as GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS_PREMIUM as GRID_COLUMN_MENU_SLOT_PROPS } from "./GridPremiumColumnMenu.js";
@@ -0,0 +1,2 @@
1
+ import type { GridPremiumSlotsComponent } from '../models';
2
+ export declare const DATA_GRID_PREMIUM_DEFAULT_SLOTS_COMPONENTS: GridPremiumSlotsComponent;
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS } from '@mui/x-data-grid-pro/internals';
3
3
  import { GridPremiumColumnMenu } from "../components/GridPremiumColumnMenu.js";
4
4
  import materialSlots from "../material/index.js";
5
+ import { GridBottomContainer } from "../components/GridBottomContainer.js";
5
6
  export const DATA_GRID_PREMIUM_DEFAULT_SLOTS_COMPONENTS = _extends({}, DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS, materialSlots, {
6
- columnMenu: GridPremiumColumnMenu
7
+ columnMenu: GridPremiumColumnMenu,
8
+ bottomContainer: GridBottomContainer
7
9
  });
@@ -0,0 +1,17 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
3
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
4
+ import { GridAggregationFunction, GridAggregationFunctionDataSource, GridAggregationLookup } from "./gridAggregationInterfaces.js";
5
+ export declare const createAggregationLookup: ({
6
+ apiRef,
7
+ aggregationFunctions,
8
+ aggregationRowsScope,
9
+ getAggregationPosition,
10
+ isDataSource
11
+ }: {
12
+ apiRef: RefObject<GridPrivateApiPremium>;
13
+ aggregationFunctions: Record<string, GridAggregationFunction> | Record<string, GridAggregationFunctionDataSource>;
14
+ aggregationRowsScope: DataGridPremiumProcessedProps["aggregationRowsScope"];
15
+ getAggregationPosition: DataGridPremiumProcessedProps["getAggregationPosition"];
16
+ isDataSource: boolean;
17
+ }) => GridAggregationLookup;
@@ -1,4 +1,4 @@
1
- import { gridColumnLookupSelector, gridFilteredRowsLookupSelector, gridRowTreeSelector, GRID_ROOT_GROUP_ID } from '@mui/x-data-grid-pro';
1
+ import { gridColumnLookupSelector, gridFilteredRowsLookupSelector, gridRowTreeSelector, GRID_ROOT_GROUP_ID, gridRowNodeSelector } from '@mui/x-data-grid-pro';
2
2
  import { getAggregationRules } from "./gridAggregationUtils.js";
3
3
  import { gridAggregationModelSelector } from "./gridAggregationSelectors.js";
4
4
  const getGroupAggregatedValue = (groupId, apiRef, aggregationRowsScope, aggregatedFields, aggregationRules, position) => {
@@ -20,7 +20,7 @@ const getGroupAggregatedValue = (groupId, apiRef, aggregationRowsScope, aggregat
20
20
  // A.B
21
21
  // A.B.A
22
22
  // A.B.B
23
- const rowNode = apiRef.current.getRowNode(rowId);
23
+ const rowNode = gridRowNodeSelector(apiRef, rowId);
24
24
  if (rowNode.type === 'group') {
25
25
  return;
26
26
  }
@@ -70,7 +70,7 @@ const getGroupAggregatedValueDataSource = (groupId, apiRef, aggregatedFields, po
70
70
  const aggregatedField = aggregatedFields[j];
71
71
  groupAggregationLookup[aggregatedField] = {
72
72
  position,
73
- value: apiRef.current.resolveGroupAggregation(groupId, aggregatedField)
73
+ value: apiRef.current.resolveGroupAggregation?.(groupId, aggregatedField) ?? ''
74
74
  };
75
75
  }
76
76
  return groupAggregationLookup;
@@ -0,0 +1,8 @@
1
+ import { GridAggregationFunction } from "./gridAggregationInterfaces.js";
2
+ export declare const GRID_AGGREGATION_FUNCTIONS: {
3
+ sum: GridAggregationFunction<unknown, number>;
4
+ avg: GridAggregationFunction<unknown, number>;
5
+ min: GridAggregationFunction<number | Date, number | Date>;
6
+ max: GridAggregationFunction<number | Date, number | Date>;
7
+ size: GridAggregationFunction<unknown, number>;
8
+ };
@@ -0,0 +1,129 @@
1
+ import { GridRowId, GridRowModel, GridColDef, GridValueFormatter } from '@mui/x-data-grid-pro';
2
+ export interface GridAggregationState {
3
+ model: GridAggregationModel;
4
+ lookup: GridAggregationLookup;
5
+ }
6
+ export interface GridAggregationInitialState {
7
+ model?: GridAggregationModel;
8
+ }
9
+ export interface GridAggregationInternalCache {
10
+ rulesOnLastColumnHydration: GridAggregationRules;
11
+ rulesOnLastRowHydration: GridAggregationRules;
12
+ }
13
+ export interface GridAggregationApi {
14
+ /**
15
+ * Sets the aggregation model to the one given by `model`.
16
+ * @param {GridAggregationModel} model The aggregation model.
17
+ */
18
+ setAggregationModel: (model: GridAggregationModel) => void;
19
+ }
20
+ export interface GridAggregationPrivateApi {
21
+ /**
22
+ * Applies the aggregation to the rows.
23
+ */
24
+ applyAggregation: () => void;
25
+ }
26
+ export interface GridAggregationGetCellValueParams {
27
+ /**
28
+ * The row model of the row that the current cell belongs to.
29
+ */
30
+ row: GridRowModel;
31
+ }
32
+ /**
33
+ * Grid aggregation function definition interface.
34
+ * @demos
35
+ * - [Aggregation functions](/x/react-data-grid/aggregation/#aggregation-functions)
36
+ */
37
+ export interface GridAggregationFunction<V = any, AV = V> {
38
+ /**
39
+ * Function that takes the current cell values and generates the aggregated value.
40
+ * @template V, AV
41
+ * @param {GridAggregationParams<V>} params The params of the current aggregated cell.
42
+ * @returns {AV} The aggregated value.
43
+ */
44
+ apply: (params: GridAggregationParams<V>) => AV | null | undefined;
45
+ /**
46
+ * Label of the aggregation function.
47
+ * Used for adding a label to the footer of the grouping column when this aggregation function is the only one being used.
48
+ * @default apiRef.current.getLocaleText('aggregationFunctionLabel{capitalize(name)})
49
+ */
50
+ label?: string;
51
+ /**
52
+ * Column types supported by this aggregation function.
53
+ * If not defined, all types are supported (in most cases this property should be defined).
54
+ */
55
+ columnTypes?: string[];
56
+ /**
57
+ * Function for applying a formatter to the aggregated value.
58
+ * If not defined, the grid uses the formatter of the column.
59
+ */
60
+ valueFormatter?: GridValueFormatter;
61
+ /**
62
+ * Indicates if the aggregated value has the same unit as the cells used to generate it.
63
+ * It can be used to apply a custom cell renderer only if the aggregated value has the same unit.
64
+ * @default true
65
+ */
66
+ hasCellUnit?: boolean;
67
+ /**
68
+ * Function that allows to transform the value of the cell passed to the aggregation function applier.
69
+ * Useful for aggregating data from multiple row fields.
70
+ * @demo https://mui.com/x/react-data-grid/aggregation/#aggregating-data-from-multiple-row-fields
71
+ * @param {GridAggregationGetCellValueParams} params The params of the current cell
72
+ * @returns {V} The value of the cell that will be passed to the aggregation `apply` function
73
+ */
74
+ getCellValue?: (params: GridAggregationGetCellValueParams) => V;
75
+ }
76
+ /**
77
+ * Grid aggregation function data source definition interface.
78
+ * @demos
79
+ * - [Server-side aggregation](/x/react-data-grid/server-side-data/aggregation/)
80
+ */
81
+ export interface GridAggregationFunctionDataSource extends Omit<GridAggregationFunction, 'apply' | 'getCellValue'> {}
82
+ export interface GridAggregationParams<V = any> {
83
+ values: (V | undefined)[];
84
+ groupId: GridRowId;
85
+ field: GridColDef['field'];
86
+ }
87
+ export type GridAggregationModel = {
88
+ [field: string]: string;
89
+ };
90
+ export type GridAggregationLookup = {
91
+ [rowId: GridRowId]: {
92
+ [field: string]: {
93
+ position: GridAggregationPosition;
94
+ value: any;
95
+ };
96
+ };
97
+ };
98
+ export type GridAggregationPosition = 'inline' | 'footer';
99
+ export interface GridAggregationCellMeta {
100
+ /**
101
+ * If `true`, the current aggregated value has the same unit as the value of the other cells of this row.
102
+ * For instance, "min" / "max" aggregation have the same unit as the other cells.
103
+ * If `false`, the current aggregated value has another unit or not unit.
104
+ * For instance, "size" aggregation has no unit.
105
+ */
106
+ hasCellUnit: boolean;
107
+ /**
108
+ * Name of the aggregation function currently applied on this cell.
109
+ */
110
+ aggregationFunctionName: string;
111
+ }
112
+ export interface GridAggregationHeaderMeta {
113
+ aggregationRule: GridAggregationRule;
114
+ }
115
+ export interface GridAggregationRule {
116
+ aggregationFunctionName: string;
117
+ aggregationFunction: GridAggregationFunction | GridAggregationFunctionDataSource;
118
+ }
119
+ /**
120
+ * Object containing all the aggregation rules that must be applied to the current columns.
121
+ * Unlike the aggregation model, those rules are sanitized and do not contain:
122
+ * - items for non-existing columns
123
+ * - items for non-aggregable columns (GridColDef.aggregable = false)
124
+ * - items for non-existing aggregation function
125
+ * - items for non-available aggregation function on the column (GridColDef.availableAggregationFunctions)
126
+ */
127
+ export type GridAggregationRules = {
128
+ [field: string]: GridAggregationRule;
129
+ };
@@ -0,0 +1,13 @@
1
+ import { GridStatePremium } from "../../../models/gridStatePremium.js";
2
+ export declare const gridAggregationStateSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, unknown, import("./gridAggregationInterfaces").GridAggregationState>;
3
+ /**
4
+ * Get the aggregation model, containing the aggregation function of each column.
5
+ * If a column is not in the model, it is not aggregated.
6
+ * @category Aggregation
7
+ */
8
+ export declare const gridAggregationModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridAggregationInterfaces").GridAggregationState, import("./gridAggregationInterfaces").GridAggregationModel>;
9
+ /**
10
+ * Get the aggregation results as a lookup.
11
+ * @category Aggregation
12
+ */
13
+ export declare const gridAggregationLookupSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridAggregationInterfaces").GridAggregationState, import("./gridAggregationInterfaces").GridAggregationLookup>;
@@ -1,5 +1,5 @@
1
- import { createSelector } from '@mui/x-data-grid-pro/internals';
2
- export const gridAggregationStateSelector = state => state.aggregation;
1
+ import { createSelector, createRootSelector } from '@mui/x-data-grid-pro/internals';
2
+ export const gridAggregationStateSelector = createRootSelector(state => state.aggregation);
3
3
 
4
4
  /**
5
5
  * Get the aggregation model, containing the aggregation function of each column.
@@ -0,0 +1,62 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridColDef, GridRowId } from '@mui/x-data-grid-pro';
3
+ import { GridColumnRawLookup, GridHydrateRowsValue } from '@mui/x-data-grid-pro/internals';
4
+ import { GridAggregationFunction, GridAggregationFunctionDataSource, GridAggregationModel, GridAggregationRule, GridAggregationRules } from "./gridAggregationInterfaces.js";
5
+ import { GridStatePremium } from "../../../models/gridStatePremium.js";
6
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
7
+ import { GridApiPremium, GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
8
+ export declare const GRID_AGGREGATION_ROOT_FOOTER_ROW_ID = "auto-generated-group-footer-root";
9
+ export declare const getAggregationFooterRowIdFromGroupId: (groupId: GridRowId | null) => string;
10
+ type AggregationFunction = GridAggregationFunction | GridAggregationFunctionDataSource | undefined;
11
+ export declare const canColumnHaveAggregationFunction: ({
12
+ colDef,
13
+ aggregationFunctionName,
14
+ aggregationFunction,
15
+ isDataSource
16
+ }: {
17
+ colDef: GridColDef | undefined;
18
+ aggregationFunctionName: string;
19
+ aggregationFunction: AggregationFunction;
20
+ isDataSource: boolean;
21
+ }) => boolean;
22
+ export declare const getAvailableAggregationFunctions: ({
23
+ aggregationFunctions,
24
+ colDef,
25
+ isDataSource
26
+ }: {
27
+ aggregationFunctions: Record<string, GridAggregationFunction> | Record<string, GridAggregationFunctionDataSource>;
28
+ colDef: GridColDef;
29
+ isDataSource: boolean;
30
+ }) => string[];
31
+ export declare const mergeStateWithAggregationModel: (aggregationModel: GridAggregationModel) => (state: GridStatePremium) => GridStatePremium;
32
+ export declare const getAggregationRules: (columnsLookup: GridColumnRawLookup, aggregationModel: GridAggregationModel, aggregationFunctions: Record<string, GridAggregationFunction> | Record<string, GridAggregationFunctionDataSource>, isDataSource: boolean) => GridAggregationRules;
33
+ interface AddFooterRowsParams {
34
+ groupingParams: GridHydrateRowsValue;
35
+ getAggregationPosition: DataGridPremiumProcessedProps['getAggregationPosition'];
36
+ /**
37
+ * If `true`, there are some aggregation rules to apply
38
+ */
39
+ hasAggregationRule: boolean;
40
+ apiRef: RefObject<GridPrivateApiPremium>;
41
+ }
42
+ /**
43
+ * Add a footer for each group that has at least one column with an aggregated value.
44
+ */
45
+ export declare const addFooterRows: ({
46
+ groupingParams,
47
+ apiRef,
48
+ getAggregationPosition,
49
+ hasAggregationRule
50
+ }: AddFooterRowsParams) => GridHydrateRowsValue;
51
+ /**
52
+ * Compares two sets of aggregation rules to determine if they are equal or not.
53
+ */
54
+ export declare const areAggregationRulesEqual: (previousValue: GridAggregationRules | undefined, newValue: GridAggregationRules) => boolean;
55
+ export declare const getAggregationFunctionLabel: ({
56
+ apiRef,
57
+ aggregationRule
58
+ }: {
59
+ apiRef: RefObject<GridApiPremium>;
60
+ aggregationRule: GridAggregationRule;
61
+ }) => string;
62
+ export {};
@@ -0,0 +1,4 @@
1
+ export type { GridAggregationState, GridAggregationInitialState, GridAggregationInternalCache, GridAggregationApi, GridAggregationGetCellValueParams, GridAggregationFunction, GridAggregationFunctionDataSource, GridAggregationParams, GridAggregationModel, GridAggregationLookup, GridAggregationPosition, GridAggregationCellMeta, GridAggregationHeaderMeta, GridAggregationRule, GridAggregationRules } from './gridAggregationInterfaces';
2
+ export * from "./gridAggregationSelectors.js";
3
+ export * from "./gridAggregationFunctions.js";
4
+ export { GRID_AGGREGATION_ROOT_FOOTER_ROW_ID, getAggregationFooterRowIdFromGroupId } from "./gridAggregationUtils.js";
@@ -0,0 +1,6 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridStateInitializer } from '@mui/x-data-grid-pro/internals';
3
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
4
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
5
+ export declare const aggregationStateInitializer: GridStateInitializer<Pick<DataGridPremiumProcessedProps, 'aggregationModel' | 'initialState'>, GridPrivateApiPremium>;
6
+ export declare const useGridAggregation: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "onAggregationModelChange" | "initialState" | "aggregationModel" | "getAggregationPosition" | "aggregationFunctions" | "aggregationRowsScope" | "disableAggregation" | "rowGroupingColumnMode" | "dataSource">) => void;
@@ -40,14 +40,14 @@ export const useGridAggregation = (apiRef, props) => {
40
40
  getAggregationPosition: props.getAggregationPosition,
41
41
  aggregationFunctions: props.aggregationFunctions,
42
42
  aggregationRowsScope: props.aggregationRowsScope,
43
- isDataSource: !!props.unstable_dataSource
43
+ isDataSource: !!props.dataSource
44
44
  });
45
45
  apiRef.current.setState(state => _extends({}, state, {
46
46
  aggregation: _extends({}, state.aggregation, {
47
47
  lookup: aggregationLookup
48
48
  })
49
49
  }));
50
- }, [apiRef, props.getAggregationPosition, props.aggregationFunctions, props.aggregationRowsScope, props.unstable_dataSource]);
50
+ }, [apiRef, props.getAggregationPosition, props.aggregationFunctions, props.aggregationRowsScope, props.dataSource]);
51
51
  const aggregationApi = {
52
52
  setAggregationModel
53
53
  };
@@ -71,12 +71,12 @@ export const useGridAggregation = (apiRef, props) => {
71
71
  rulesOnLastRowHydration,
72
72
  rulesOnLastColumnHydration
73
73
  } = apiRef.current.caches.aggregation;
74
- const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.unstable_dataSource);
74
+ const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.dataSource);
75
75
 
76
76
  // Re-apply the row hydration to add / remove the aggregation footers
77
77
  if (!areAggregationRulesEqual(rulesOnLastRowHydration, aggregationRules)) {
78
- if (props.unstable_dataSource) {
79
- apiRef.current.unstable_dataSource.fetchRows();
78
+ if (props.dataSource) {
79
+ apiRef.current.dataSource.fetchRows();
80
80
  } else {
81
81
  apiRef.current.requestPipeProcessorsApplication('hydrateRows');
82
82
  applyAggregation();
@@ -87,7 +87,7 @@ export const useGridAggregation = (apiRef, props) => {
87
87
  if (!areAggregationRulesEqual(rulesOnLastColumnHydration, aggregationRules)) {
88
88
  apiRef.current.requestPipeProcessorsApplication('hydrateColumns');
89
89
  }
90
- }, [apiRef, applyAggregation, props.aggregationFunctions, props.disableAggregation, props.unstable_dataSource]);
90
+ }, [apiRef, applyAggregation, props.aggregationFunctions, props.disableAggregation, props.dataSource]);
91
91
  useGridApiEventHandler(apiRef, 'aggregationModelChange', checkAggregationRulesDiff);
92
92
  useGridApiEventHandler(apiRef, 'columnsChange', checkAggregationRulesDiff);
93
93
  useGridApiEventHandler(apiRef, 'filteredRowsSet', applyAggregation);
@@ -0,0 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
3
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
4
+ export declare const useGridAggregationPreProcessors: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "aggregationFunctions" | "disableAggregation" | "getAggregationPosition" | "slotProps" | "slots" | "dataSource">) => void;