@mui/x-data-grid-premium 8.0.0-alpha.10 → 8.0.0-alpha.12

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 (364) hide show
  1. package/CHANGELOG.md +267 -2
  2. package/DataGridPremium/DataGrid.d.ts +1 -1
  3. package/DataGridPremium/DataGridPremium.d.ts +6 -6
  4. package/DataGridPremium/DataGridPremium.js +20 -6
  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/components/GridAggregationHeader.d.ts +2 -2
  10. package/components/GridAggregationRowOverlay.d.ts +3 -0
  11. package/components/GridAggregationRowOverlay.js +44 -0
  12. package/components/GridBottomContainer.d.ts +3 -0
  13. package/components/GridBottomContainer.js +51 -0
  14. package/components/GridColumnMenuAggregationItem.d.ts +2 -2
  15. package/components/GridColumnMenuAggregationItem.js +32 -42
  16. package/components/GridColumnMenuRowGroupItem.d.ts +1 -1
  17. package/components/GridColumnMenuRowUngroupItem.d.ts +1 -1
  18. package/components/GridDataSourceGroupingCriteriaCell.d.ts +2 -2
  19. package/components/GridDataSourceGroupingCriteriaCell.js +3 -6
  20. package/components/GridExcelExportMenuItem.d.ts +3 -3
  21. package/components/GridFooterCell.d.ts +2 -2
  22. package/components/GridGroupingColumnFooterCell.d.ts +1 -1
  23. package/components/GridGroupingColumnLeafCell.d.ts +1 -1
  24. package/components/GridGroupingCriteriaCell.d.ts +2 -2
  25. package/components/GridPremiumColumnMenu.d.ts +26 -26
  26. package/components/index.d.ts +5 -5
  27. package/components/promptControl/GridToolbarPromptControl.d.ts +22 -22
  28. package/components/promptControl/RecordButton.d.ts +9 -9
  29. package/components/promptControl/index.d.ts +1 -1
  30. package/components/reexports.d.ts +1 -1
  31. package/constants/dataGridPremiumDefaultSlotsComponents.d.ts +1 -1
  32. package/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
  33. package/esm/DataGridPremium/DataGrid.d.ts +8 -0
  34. package/esm/DataGridPremium/DataGridPremium.d.ts +16 -0
  35. package/esm/DataGridPremium/DataGridPremium.js +20 -6
  36. package/esm/DataGridPremium/index.d.ts +3 -0
  37. package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
  38. package/esm/DataGridPremium/useDataGridPremiumComponent.js +6 -5
  39. package/esm/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
  40. package/esm/components/GridAggregationHeader.d.ts +7 -0
  41. package/esm/components/GridAggregationRowOverlay.d.ts +3 -0
  42. package/esm/components/GridAggregationRowOverlay.js +37 -0
  43. package/esm/components/GridBottomContainer.d.ts +3 -0
  44. package/esm/components/GridBottomContainer.js +43 -0
  45. package/esm/components/GridColumnMenuAggregationItem.d.ts +7 -0
  46. package/esm/components/GridColumnMenuAggregationItem.js +32 -42
  47. package/esm/components/GridColumnMenuRowGroupItem.d.ts +3 -0
  48. package/esm/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
  49. package/esm/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
  50. package/esm/components/GridDataSourceGroupingCriteriaCell.js +4 -7
  51. package/esm/components/GridExcelExportMenuItem.d.ts +9 -0
  52. package/esm/components/GridFooterCell.d.ts +9 -0
  53. package/esm/components/GridGroupingColumnFooterCell.d.ts +4 -0
  54. package/esm/components/GridGroupingColumnLeafCell.d.ts +4 -0
  55. package/esm/components/GridGroupingCriteriaCell.d.ts +7 -0
  56. package/esm/components/GridPremiumColumnMenu.d.ts +33 -0
  57. package/esm/components/index.d.ts +5 -0
  58. package/esm/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
  59. package/esm/components/promptControl/RecordButton.d.ts +16 -0
  60. package/esm/components/promptControl/index.d.ts +1 -0
  61. package/esm/components/reexports.d.ts +1 -0
  62. package/esm/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
  63. package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
  64. package/esm/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
  65. package/esm/hooks/features/aggregation/createAggregationLookup.js +3 -3
  66. package/esm/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
  67. package/esm/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
  68. package/esm/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
  69. package/esm/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
  70. package/esm/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
  71. package/esm/hooks/features/aggregation/gridAggregationUtils.js +1 -1
  72. package/esm/hooks/features/aggregation/index.d.ts +4 -0
  73. package/esm/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
  74. package/esm/hooks/features/aggregation/useGridAggregation.js +0 -2
  75. package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
  76. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
  77. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  78. package/esm/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
  79. package/esm/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
  80. package/esm/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
  81. package/esm/hooks/features/cellSelection/index.d.ts +1 -0
  82. package/esm/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
  83. package/esm/hooks/features/cellSelection/useGridCellSelection.js +15 -13
  84. package/esm/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
  85. package/esm/hooks/features/clipboard/useGridClipboardImport.js +2 -2
  86. package/esm/hooks/features/dataSource/models.d.ts +54 -0
  87. package/esm/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
  88. package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +10 -4
  89. package/esm/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
  90. package/esm/hooks/features/export/index.d.ts +2 -0
  91. package/esm/hooks/features/export/index.js +1 -1
  92. package/esm/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
  93. package/esm/hooks/features/export/serializer/excelSerializer.js +69 -180
  94. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  95. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
  96. package/esm/hooks/features/export/serializer/utils.d.ts +36 -0
  97. package/esm/hooks/features/export/serializer/utils.js +93 -0
  98. package/esm/hooks/features/export/useGridExcelExport.d.ts +11 -0
  99. package/esm/hooks/features/export/useGridExcelExport.js +11 -5
  100. package/esm/hooks/features/index.d.ts +5 -0
  101. package/esm/hooks/features/promptControl/api.d.ts +2 -0
  102. package/esm/hooks/features/promptControl/index.d.ts +2 -0
  103. package/esm/hooks/features/promptControl/types.d.ts +25 -0
  104. package/esm/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
  105. package/esm/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
  106. package/esm/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
  107. package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
  108. package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  109. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
  110. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +3 -1
  111. package/esm/hooks/features/rowGrouping/index.d.ts +3 -0
  112. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
  113. package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
  114. package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +0 -1
  115. package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  116. package/esm/hooks/features/rows/index.d.ts +1 -0
  117. package/esm/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
  118. package/esm/hooks/index.d.ts +2 -0
  119. package/esm/hooks/utils/index.d.ts +1 -0
  120. package/esm/hooks/utils/useGridApiContext.d.ts +4 -0
  121. package/esm/hooks/utils/useGridApiRef.d.ts +4 -0
  122. package/esm/hooks/utils/useGridAriaAttributes.d.ts +2 -0
  123. package/esm/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
  124. package/esm/hooks/utils/useGridRootProps.d.ts +2 -0
  125. package/esm/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
  126. package/esm/index.d.ts +29 -0
  127. package/esm/index.js +7 -0
  128. package/esm/locales.d.ts +1 -0
  129. package/esm/material/icons.d.ts +15 -0
  130. package/esm/material/index.d.ts +8 -0
  131. package/esm/models/dataGridPremiumProps.d.ts +163 -0
  132. package/esm/models/gridApiPremium.d.ts +14 -0
  133. package/esm/models/gridGroupingValueGetter.d.ts +4 -0
  134. package/esm/models/gridPastedValueParser.d.ts +4 -0
  135. package/esm/models/gridPremiumIconSlotsComponent.d.ts +28 -0
  136. package/esm/models/gridPremiumSlotsComponent.d.ts +7 -0
  137. package/esm/models/gridStatePremium.d.ts +18 -0
  138. package/esm/models/index.d.ts +4 -0
  139. package/esm/package.json +1 -0
  140. package/esm/setupExcelExportWebWorker.d.ts +1 -0
  141. package/esm/setupExcelExportWebWorker.js +1 -0
  142. package/esm/themeAugmentation/index.d.ts +2 -0
  143. package/esm/themeAugmentation/overrides.d.ts +7 -0
  144. package/esm/themeAugmentation/props.d.ts +15 -0
  145. package/esm/typeOverloads/index.d.ts +2 -0
  146. package/esm/typeOverloads/modules.d.ts +97 -0
  147. package/esm/typeOverloads/reexports.d.ts +17 -0
  148. package/esm/utils/releaseInfo.d.ts +1 -0
  149. package/esm/utils/releaseInfo.js +1 -1
  150. package/hooks/features/aggregation/createAggregationLookup.d.ts +16 -10
  151. package/hooks/features/aggregation/createAggregationLookup.js +2 -2
  152. package/hooks/features/aggregation/gridAggregationFunctions.d.ts +7 -7
  153. package/hooks/features/aggregation/gridAggregationInterfaces.d.ts +81 -82
  154. package/hooks/features/aggregation/gridAggregationSelectors.d.ts +3 -3
  155. package/hooks/features/aggregation/gridAggregationSelectors.js +1 -2
  156. package/hooks/features/aggregation/gridAggregationUtils.d.ts +42 -25
  157. package/hooks/features/aggregation/gridAggregationUtils.js +1 -1
  158. package/hooks/features/aggregation/index.d.ts +4 -4
  159. package/hooks/features/aggregation/useGridAggregation.d.ts +3 -3
  160. package/hooks/features/aggregation/useGridAggregation.js +0 -2
  161. package/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +3 -3
  162. package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +67 -62
  163. package/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  164. package/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +34 -34
  165. package/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -2
  166. package/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -2
  167. package/hooks/features/cellSelection/index.d.ts +1 -1
  168. package/hooks/features/cellSelection/useGridCellSelection.d.ts +3 -3
  169. package/hooks/features/cellSelection/useGridCellSelection.js +13 -11
  170. package/hooks/features/clipboard/useGridClipboardImport.d.ts +2 -2
  171. package/hooks/features/clipboard/useGridClipboardImport.js +2 -2
  172. package/hooks/features/dataSource/models.d.ts +41 -34
  173. package/hooks/features/dataSource/useGridDataSourcePremium.d.ts +3 -3
  174. package/hooks/features/dataSource/useGridDataSourcePremium.js +10 -4
  175. package/hooks/features/export/gridExcelExportInterface.d.ts +52 -52
  176. package/hooks/features/export/index.d.ts +2 -2
  177. package/hooks/features/export/index.js +2 -2
  178. package/hooks/features/export/serializer/excelSerializer.d.ts +23 -51
  179. package/hooks/features/export/serializer/excelSerializer.js +74 -187
  180. package/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  181. package/hooks/features/export/serializer/setupExcelExportWebWorker.js +59 -0
  182. package/hooks/features/export/serializer/utils.d.ts +36 -0
  183. package/hooks/features/export/serializer/utils.js +106 -0
  184. package/hooks/features/export/useGridExcelExport.d.ts +3 -3
  185. package/hooks/features/export/useGridExcelExport.js +10 -3
  186. package/hooks/features/index.d.ts +5 -5
  187. package/hooks/features/promptControl/api.d.ts +2 -2
  188. package/hooks/features/promptControl/index.d.ts +2 -2
  189. package/hooks/features/promptControl/types.d.ts +15 -15
  190. package/hooks/features/rowGrouping/createGroupingColDef.d.ts +44 -32
  191. package/hooks/features/rowGrouping/createGroupingColDef.js +4 -4
  192. package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +32 -32
  193. package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +2 -2
  194. package/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  195. package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +30 -22
  196. package/hooks/features/rowGrouping/gridRowGroupingUtils.js +3 -1
  197. package/hooks/features/rowGrouping/index.d.ts +3 -3
  198. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +3 -3
  199. package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +3 -3
  200. package/hooks/features/rowGrouping/useGridRowGrouping.js +0 -1
  201. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +3 -3
  202. package/hooks/features/rows/index.d.ts +1 -1
  203. package/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  204. package/hooks/index.d.ts +2 -2
  205. package/hooks/utils/index.d.ts +1 -1
  206. package/hooks/utils/useGridApiContext.d.ts +4 -2
  207. package/hooks/utils/useGridApiRef.d.ts +2 -2
  208. package/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  209. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -2
  210. package/hooks/utils/useGridRootProps.d.ts +2 -2
  211. package/hooks/utils/useKeepGroupedColumnsHidden.d.ts +4 -4
  212. package/index.d.ts +10 -12
  213. package/index.js +1 -1
  214. package/locales.d.ts +1 -1
  215. package/material/icons.d.ts +6 -6
  216. package/material/index.d.ts +6 -6
  217. package/models/dataGridPremiumProps.d.ts +140 -134
  218. package/models/gridApiPremium.d.ts +4 -6
  219. package/models/gridGroupingValueGetter.d.ts +2 -2
  220. package/models/gridPastedValueParser.d.ts +2 -2
  221. package/models/gridPremiumIconSlotsComponent.d.ts +26 -26
  222. package/models/gridPremiumSlotsComponent.d.ts +2 -3
  223. package/models/gridStatePremium.d.ts +7 -7
  224. package/models/index.d.ts +4 -4
  225. package/modern/DataGridPremium/DataGrid.d.ts +8 -0
  226. package/modern/DataGridPremium/DataGridPremium.d.ts +16 -0
  227. package/modern/DataGridPremium/DataGridPremium.js +20 -6
  228. package/modern/DataGridPremium/index.d.ts +3 -0
  229. package/modern/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
  230. package/modern/DataGridPremium/useDataGridPremiumComponent.js +6 -5
  231. package/modern/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
  232. package/modern/components/GridAggregationHeader.d.ts +7 -0
  233. package/modern/components/GridAggregationRowOverlay.d.ts +3 -0
  234. package/modern/components/GridAggregationRowOverlay.js +37 -0
  235. package/modern/components/GridBottomContainer.d.ts +3 -0
  236. package/modern/components/GridBottomContainer.js +43 -0
  237. package/modern/components/GridColumnMenuAggregationItem.d.ts +7 -0
  238. package/modern/components/GridColumnMenuAggregationItem.js +32 -42
  239. package/modern/components/GridColumnMenuRowGroupItem.d.ts +3 -0
  240. package/modern/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
  241. package/modern/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
  242. package/modern/components/GridDataSourceGroupingCriteriaCell.js +4 -7
  243. package/modern/components/GridExcelExportMenuItem.d.ts +9 -0
  244. package/modern/components/GridFooterCell.d.ts +9 -0
  245. package/modern/components/GridGroupingColumnFooterCell.d.ts +4 -0
  246. package/modern/components/GridGroupingColumnLeafCell.d.ts +4 -0
  247. package/modern/components/GridGroupingCriteriaCell.d.ts +7 -0
  248. package/modern/components/GridPremiumColumnMenu.d.ts +33 -0
  249. package/modern/components/index.d.ts +5 -0
  250. package/modern/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
  251. package/modern/components/promptControl/RecordButton.d.ts +16 -0
  252. package/modern/components/promptControl/index.d.ts +1 -0
  253. package/modern/components/reexports.d.ts +1 -0
  254. package/modern/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
  255. package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
  256. package/modern/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
  257. package/modern/hooks/features/aggregation/createAggregationLookup.js +3 -3
  258. package/modern/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
  259. package/modern/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
  260. package/modern/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
  261. package/modern/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
  262. package/modern/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
  263. package/modern/hooks/features/aggregation/gridAggregationUtils.js +1 -1
  264. package/modern/hooks/features/aggregation/index.d.ts +4 -0
  265. package/modern/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
  266. package/modern/hooks/features/aggregation/useGridAggregation.js +0 -2
  267. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
  268. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
  269. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
  270. package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
  271. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
  272. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
  273. package/modern/hooks/features/cellSelection/index.d.ts +1 -0
  274. package/modern/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
  275. package/modern/hooks/features/cellSelection/useGridCellSelection.js +15 -13
  276. package/modern/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
  277. package/modern/hooks/features/clipboard/useGridClipboardImport.js +2 -2
  278. package/modern/hooks/features/dataSource/models.d.ts +54 -0
  279. package/modern/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
  280. package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +10 -4
  281. package/modern/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
  282. package/modern/hooks/features/export/index.d.ts +2 -0
  283. package/modern/hooks/features/export/index.js +1 -1
  284. package/modern/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
  285. package/modern/hooks/features/export/serializer/excelSerializer.js +69 -180
  286. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
  287. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
  288. package/modern/hooks/features/export/serializer/utils.d.ts +36 -0
  289. package/modern/hooks/features/export/serializer/utils.js +93 -0
  290. package/modern/hooks/features/export/useGridExcelExport.d.ts +11 -0
  291. package/modern/hooks/features/export/useGridExcelExport.js +11 -5
  292. package/modern/hooks/features/index.d.ts +5 -0
  293. package/modern/hooks/features/promptControl/api.d.ts +2 -0
  294. package/modern/hooks/features/promptControl/index.d.ts +2 -0
  295. package/modern/hooks/features/promptControl/types.d.ts +25 -0
  296. package/modern/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
  297. package/modern/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
  298. package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
  299. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
  300. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
  301. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
  302. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +3 -1
  303. package/modern/hooks/features/rowGrouping/index.d.ts +3 -0
  304. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
  305. package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
  306. package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +0 -1
  307. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  308. package/modern/hooks/features/rows/index.d.ts +1 -0
  309. package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
  310. package/modern/hooks/index.d.ts +2 -0
  311. package/modern/hooks/utils/index.d.ts +1 -0
  312. package/modern/hooks/utils/useGridApiContext.d.ts +4 -0
  313. package/modern/hooks/utils/useGridApiRef.d.ts +4 -0
  314. package/modern/hooks/utils/useGridAriaAttributes.d.ts +2 -0
  315. package/modern/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
  316. package/modern/hooks/utils/useGridRootProps.d.ts +2 -0
  317. package/modern/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
  318. package/modern/index.d.ts +29 -0
  319. package/modern/index.js +1 -1
  320. package/modern/locales.d.ts +1 -0
  321. package/modern/material/icons.d.ts +15 -0
  322. package/modern/material/index.d.ts +8 -0
  323. package/modern/models/dataGridPremiumProps.d.ts +163 -0
  324. package/modern/models/gridApiPremium.d.ts +14 -0
  325. package/modern/models/gridGroupingValueGetter.d.ts +4 -0
  326. package/modern/models/gridPastedValueParser.d.ts +4 -0
  327. package/modern/models/gridPremiumIconSlotsComponent.d.ts +28 -0
  328. package/modern/models/gridPremiumSlotsComponent.d.ts +7 -0
  329. package/modern/models/gridStatePremium.d.ts +18 -0
  330. package/modern/models/index.d.ts +4 -0
  331. package/modern/package.json +1 -0
  332. package/modern/setupExcelExportWebWorker.d.ts +1 -0
  333. package/modern/setupExcelExportWebWorker.js +1 -0
  334. package/modern/themeAugmentation/index.d.ts +2 -0
  335. package/modern/themeAugmentation/overrides.d.ts +7 -0
  336. package/modern/themeAugmentation/props.d.ts +15 -0
  337. package/modern/typeOverloads/index.d.ts +2 -0
  338. package/modern/typeOverloads/modules.d.ts +97 -0
  339. package/modern/typeOverloads/reexports.d.ts +17 -0
  340. package/modern/utils/releaseInfo.d.ts +1 -0
  341. package/modern/utils/releaseInfo.js +1 -1
  342. package/package.json +39 -9
  343. package/setupExcelExportWebWorker.d.ts +1 -0
  344. package/setupExcelExportWebWorker.js +12 -0
  345. package/themeAugmentation/index.d.ts +2 -2
  346. package/themeAugmentation/overrides.d.ts +3 -4
  347. package/themeAugmentation/props.d.ts +9 -11
  348. package/tsconfig.build.tsbuildinfo +1 -0
  349. package/typeOverloads/index.d.ts +1 -1
  350. package/typeOverloads/modules.d.ts +75 -82
  351. package/typeOverloads/reexports.d.ts +5 -5
  352. package/utils/releaseInfo.d.ts +1 -1
  353. package/utils/releaseInfo.js +1 -1
  354. package/DataGridPremium/package.json +0 -6
  355. package/components/package.json +0 -6
  356. package/esm/hooks/features/dataSource/cache.js +0 -3
  357. package/hooks/features/dataSource/cache.d.ts +0 -2
  358. package/hooks/features/dataSource/cache.js +0 -9
  359. package/hooks/package.json +0 -6
  360. package/material/package.json +0 -6
  361. package/models/package.json +0 -6
  362. package/modern/hooks/features/dataSource/cache.js +0 -3
  363. package/themeAugmentation/package.json +0 -6
  364. package/typeOverloads/package.json +0 -6
@@ -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 {};
@@ -111,7 +111,7 @@ export const addFooterRows = ({
111
111
  }
112
112
  };
113
113
  const updateRootGroupFooter = groupNode => {
114
- const shouldHaveFooter = hasAggregationRule && getAggregationPosition(groupNode) === 'footer';
114
+ const shouldHaveFooter = hasAggregationRule && getAggregationPosition(groupNode) === 'footer' && groupNode.children.length > 0;
115
115
  if (shouldHaveFooter) {
116
116
  const rowId = getAggregationFooterRowIdFromGroupId(null);
117
117
  newGroupingParams = addPinnedRow({
@@ -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" | "unstable_dataSource">) => void;
@@ -32,7 +32,6 @@ export const useGridAggregation = (apiRef, props) => {
32
32
  const currentModel = gridAggregationModelSelector(apiRef);
33
33
  if (currentModel !== model) {
34
34
  apiRef.current.setState(mergeStateWithAggregationModel(model));
35
- apiRef.current.forceUpdate();
36
35
  }
37
36
  }, [apiRef]);
38
37
  const applyAggregation = React.useCallback(() => {
@@ -86,7 +85,6 @@ export const useGridAggregation = (apiRef, props) => {
86
85
 
87
86
  // Re-apply the column hydration to wrap / unwrap the aggregated columns
88
87
  if (!areAggregationRulesEqual(rulesOnLastColumnHydration, aggregationRules)) {
89
- apiRef.current.caches.aggregation.rulesOnLastColumnHydration = aggregationRules;
90
88
  apiRef.current.requestPipeProcessorsApplication('hydrateColumns');
91
89
  }
92
90
  }, [apiRef, applyAggregation, props.aggregationFunctions, props.disableAggregation, props.unstable_dataSource]);
@@ -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" | "unstable_dataSource">) => void;
@@ -0,0 +1,81 @@
1
+ import * as React from 'react';
2
+ import { RefObject } from '@mui/x-internals/types';
3
+ import { GridColDef, GridFilterOperator } from '@mui/x-data-grid-pro';
4
+ import { type GridBaseColDef } from '@mui/x-data-grid-pro/internals';
5
+ import { GridApiPremium } from "../../../models/gridApiPremium.js";
6
+ import type { GridAggregationRule } from './gridAggregationInterfaces';
7
+ type WrappableColumnProperty = 'valueGetter' | 'valueFormatter' | 'renderCell' | 'renderHeader' | 'filterOperators';
8
+ interface GridColDefWithAggregationWrappers extends GridBaseColDef {
9
+ aggregationWrappedProperties: {
10
+ name: WrappableColumnProperty;
11
+ originalValue: GridBaseColDef[WrappableColumnProperty];
12
+ wrappedValue: GridBaseColDef[WrappableColumnProperty];
13
+ }[];
14
+ }
15
+ /**
16
+ * Add a wrapper around each wrappable property of the column to customize the behavior of the aggregation cells.
17
+ */
18
+ export declare const wrapColumnWithAggregationValue: ({
19
+ column,
20
+ apiRef,
21
+ aggregationRule
22
+ }: {
23
+ column: GridBaseColDef;
24
+ apiRef: RefObject<GridApiPremium>;
25
+ aggregationRule: GridAggregationRule;
26
+ }) => GridBaseColDef;
27
+ /**
28
+ * Remove the aggregation wrappers around the wrappable properties of the column.
29
+ */
30
+ export declare const unwrapColumnFromAggregation: ({
31
+ column
32
+ }: {
33
+ column: GridColDef | GridColDefWithAggregationWrappers;
34
+ }) => GridBaseColDef<any, any, any> | {
35
+ field: string;
36
+ headerName?: string;
37
+ description?: string;
38
+ width?: number;
39
+ flex?: number;
40
+ minWidth?: number;
41
+ maxWidth?: number;
42
+ hideable?: boolean;
43
+ sortable?: boolean;
44
+ sortingOrder?: readonly import("@mui/x-data-grid").GridSortDirection[];
45
+ resizable?: boolean;
46
+ editable?: boolean;
47
+ groupable?: boolean;
48
+ pinnable?: boolean;
49
+ sortComparator?: import("@mui/x-data-grid").GridComparatorFn<any> | undefined;
50
+ getSortComparator?: ((sortDirection: import("@mui/x-data-grid").GridSortDirection) => import("@mui/x-data-grid").GridComparatorFn<any> | undefined) | undefined;
51
+ type?: import("@mui/x-data-grid").GridColType;
52
+ align?: import("@mui/x-data-grid").GridAlignment;
53
+ valueGetter?: import("@mui/x-data-grid").GridValueGetter<import("@mui/x-data-grid").GridValidRowModel, any, any, never> | undefined;
54
+ rowSpanValueGetter?: import("@mui/x-data-grid").GridValueGetter<import("@mui/x-data-grid").GridValidRowModel, any, any, never> | undefined;
55
+ valueSetter?: import("@mui/x-data-grid").GridValueSetter<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
56
+ valueFormatter?: import("@mui/x-data-grid").GridValueFormatter<import("@mui/x-data-grid").GridValidRowModel, any, any, never> | undefined;
57
+ valueParser?: import("@mui/x-data-grid").GridValueParser<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
58
+ cellClassName?: import("@mui/x-data-grid").GridCellClassNamePropType<import("@mui/x-data-grid").GridValidRowModel, any> | undefined;
59
+ display?: "text" | "flex";
60
+ renderCell?: ((params: import("@mui/x-data-grid").GridRenderCellParams<import("@mui/x-data-grid").GridValidRowModel, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => React.ReactNode) | undefined;
61
+ renderEditCell?: ((params: import("@mui/x-data-grid").GridRenderEditCellParams<import("@mui/x-data-grid").GridValidRowModel, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => React.ReactNode) | undefined;
62
+ preProcessEditCellProps?: ((params: import("@mui/x-data-grid").GridPreProcessEditCellProps) => import("@mui/x-data-grid").GridEditCellProps | Promise<import("@mui/x-data-grid").GridEditCellProps>) | undefined;
63
+ headerClassName?: import("@mui/x-data-grid").GridColumnHeaderClassNamePropType;
64
+ renderHeader?: ((params: import("@mui/x-data-grid").GridColumnHeaderParams<import("@mui/x-data-grid").GridValidRowModel, any, any>) => React.ReactNode) | undefined;
65
+ headerAlign?: import("@mui/x-data-grid").GridAlignment;
66
+ hideSortIcons?: boolean;
67
+ disableColumnMenu?: boolean;
68
+ filterable?: boolean;
69
+ filterOperators?: readonly GridFilterOperator<import("@mui/x-data-grid").GridValidRowModel, any, any, any>[] | undefined;
70
+ getApplyQuickFilterFn?: import("@mui/x-data-grid").GetApplyQuickFilterFn<import("@mui/x-data-grid").GridValidRowModel, any> | undefined;
71
+ disableReorder?: boolean;
72
+ disableExport?: boolean;
73
+ colSpan?: number | import("@mui/x-data-grid").GridColSpanFn<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
74
+ unstable_examples?: any[] | undefined;
75
+ renderHeaderFilter?: (params: import("@mui/x-data-grid-pro").GridRenderHeaderFilterProps) => React.ReactNode;
76
+ aggregable?: boolean;
77
+ availableAggregationFunctions?: string[];
78
+ groupingValueGetter?: import("../../..").GridGroupingValueGetter<import("@mui/x-data-grid").GridValidRowModel> | undefined;
79
+ pastedValueParser?: import("../../..").GridPastedValueParser<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
80
+ };
81
+ export {};
@@ -2,17 +2,17 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["aggregationWrappedProperties"];
4
4
  import * as React from 'react';
5
+ import { gridRowIdSelector, gridRowNodeSelector } from '@mui/x-data-grid-pro';
5
6
  import { gridAggregationLookupSelector } from "./gridAggregationSelectors.js";
6
7
  import { GridFooterCell } from "../../../components/GridFooterCell.js";
7
8
  import { GridAggregationHeader } from "../../../components/GridAggregationHeader.js";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
- const AGGREGATION_WRAPPABLE_PROPERTIES = ['valueGetter', 'valueFormatter', 'renderCell', 'renderHeader', 'filterOperators'];
10
10
  const getAggregationValueWrappedValueGetter = ({
11
11
  value: valueGetter,
12
12
  getCellAggregationResult
13
13
  }) => {
14
14
  const wrappedValueGetter = (value, row, column, apiRef) => {
15
- const rowId = apiRef.current.getRowId?.(row);
15
+ const rowId = gridRowIdSelector(apiRef, row);
16
16
  const cellAggregationResult = rowId ? getCellAggregationResult(rowId, column.field) : null;
17
17
  if (cellAggregationResult != null) {
18
18
  return cellAggregationResult?.value ?? null;
@@ -35,7 +35,7 @@ const getAggregationValueWrappedValueFormatter = ({
35
35
  return valueFormatter;
36
36
  }
37
37
  const wrappedValueFormatter = (value, row, column, apiRef) => {
38
- const rowId = apiRef.current.getRowId(row);
38
+ const rowId = gridRowIdSelector(apiRef, row);
39
39
  if (rowId != null) {
40
40
  const cellAggregationResult = getCellAggregationResult(rowId, column.field);
41
41
  if (cellAggregationResult != null) {
@@ -94,7 +94,8 @@ const getWrappedFilterOperators = ({
94
94
  return null;
95
95
  }
96
96
  return (value, row, column, api) => {
97
- if (getCellAggregationResult(apiRef.current.getRowId(row), column.field) != null) {
97
+ const rowId = gridRowIdSelector(apiRef, row);
98
+ if (getCellAggregationResult(rowId, column.field) != null) {
98
99
  return true;
99
100
  }
100
101
  return filterFn(value, row, column, api);
@@ -133,7 +134,7 @@ export const wrapColumnWithAggregationValue = ({
133
134
  }) => {
134
135
  const getCellAggregationResult = (id, field) => {
135
136
  let cellAggregationPosition = null;
136
- const rowNode = apiRef.current.getRowNode(id);
137
+ const rowNode = gridRowNodeSelector(apiRef, id);
137
138
  if (rowNode.type === 'group') {
138
139
  cellAggregationPosition = 'inline';
139
140
  } else if (id.toString().startsWith('auto-generated-group-footer-')) {
@@ -0,0 +1,40 @@
1
+ import { GridCellCoordinates, GridColDef, GridRowId } from '@mui/x-data-grid-pro';
2
+ export type GridCellSelectionModel = Record<GridRowId, Record<GridColDef['field'], boolean>>;
3
+ /**
4
+ * The cell selection API interface that is available in the grid [[apiRef]].
5
+ */
6
+ export interface GridCellSelectionApi {
7
+ /**
8
+ * Determines if a cell is selected or not.
9
+ * @param {GridRowId} id The id of the row.
10
+ * @param {GridColDef['field']} field The field.
11
+ * @returns {boolean} A boolean indicating if the cell is selected.
12
+ */
13
+ isCellSelected: (id: GridRowId, field: GridColDef['field']) => boolean;
14
+ /**
15
+ * Returns an object containing the selection state of the cells.
16
+ * The keys of the object correspond to the row IDs.
17
+ * The value of each key is also an object, which has a column field for a key and a boolean value for its selection state.
18
+ * @returns {GridCellSelectionModel} Object containing the selection state of the cells
19
+ */
20
+ getCellSelectionModel: () => GridCellSelectionModel;
21
+ /**
22
+ * Updates the cell selection model according to the value passed to the `newModel` argument.
23
+ * Any cell already selected will be unselected.
24
+ * @param {GridCellSelectionModel} newModel The cells to select.
25
+ */
26
+ setCellSelectionModel: (newModel: GridCellSelectionModel) => void;
27
+ /**
28
+ * Selects all cells that are inside the range given by `start` and `end` coordinates.
29
+ * @param {GridCellCoordinates} start Object containing the row ID and field of the first cell to select.
30
+ * @param {GridCellCoordinates} end Object containing the row ID and field of the last cell to select.
31
+ * @param {boolean} keepOtherSelected Whether to keep current selected cells or discard. Default is false.
32
+ */
33
+ selectCellRange: (start: GridCellCoordinates, end: GridCellCoordinates, keepOtherSelected?: boolean) => void;
34
+ /**
35
+ * Returns an array containing only the selected cells.
36
+ * Each item is an object with the ID and field of the cell.
37
+ * @returns {GridCellCoordinates[]} Array with the selected cells.
38
+ */
39
+ getSelectedCellsAsArray: () => GridCellCoordinates[];
40
+ }
@@ -0,0 +1,2 @@
1
+ import { GridStatePremium } from "../../../models/gridStatePremium.js";
2
+ export declare const gridCellSelectionStateSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, unknown, import("./gridCellSelectionInterfaces").GridCellSelectionModel>;
@@ -1 +1,2 @@
1
- export const gridCellSelectionStateSelector = state => state.cellSelection;
1
+ import { createRootSelector } from '@mui/x-data-grid-pro/internals';
2
+ export const gridCellSelectionStateSelector = createRootSelector(state => state.cellSelection);
@@ -0,0 +1 @@
1
+ export * from "./gridCellSelectionInterfaces.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 cellSelectionStateInitializer: GridStateInitializer<Pick<DataGridPremiumProcessedProps, 'cellSelectionModel' | 'initialState'>>;
6
+ export declare const useGridCellSelection: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "cellSelection" | "cellSelectionModel" | "onCellSelectionModelChange" | "pagination" | "paginationMode" | "ignoreValueFormatterDuringExport" | "clipboardCopyCellDelimiter" | "columnHeaderHeight">) => void;
@@ -2,8 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import ownerDocument from '@mui/utils/ownerDocument';
4
4
  import useEventCallback from '@mui/utils/useEventCallback';
5
- import { getTotalHeaderHeight, getVisibleRows, isNavigationKey, serializeCellValue, useGridRegisterPipeProcessor, useGridVisibleRows } from '@mui/x-data-grid-pro/internals';
6
- import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD, gridClasses, gridFocusCellSelector, GRID_REORDER_COL_DEF, useGridSelector, gridSortedRowIdsSelector, gridDimensionsSelector } from '@mui/x-data-grid-pro';
5
+ import { getTotalHeaderHeight, getVisibleRows, isNavigationKey, serializeCellValue, useGridRegisterPipeProcessor } from '@mui/x-data-grid-pro/internals';
6
+ import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD, gridClasses, gridFocusCellSelector, GRID_REORDER_COL_DEF, gridSortedRowIdsSelector, gridDimensionsSelector } from '@mui/x-data-grid-pro';
7
7
  import { gridCellSelectionStateSelector } from "./gridCellSelectionSelector.js";
8
8
  export const cellSelectionStateInitializer = (state, props) => _extends({}, state, {
9
9
  cellSelection: _extends({}, props.cellSelectionModel ?? props.initialState?.cellSelection)
@@ -16,13 +16,10 @@ const AUTO_SCROLL_SPEED = 20; // The speed to scroll once the mouse enters the s
16
16
 
17
17
  export const useGridCellSelection = (apiRef, props) => {
18
18
  const hasRootReference = apiRef.current.rootElementRef.current !== null;
19
- const visibleRows = useGridVisibleRows(apiRef, props);
20
19
  const cellWithVirtualFocus = React.useRef(null);
21
20
  const lastMouseDownCell = React.useRef(null);
22
21
  const mousePosition = React.useRef(null);
23
22
  const autoScrollRAF = React.useRef(null);
24
- const sortedRowIds = useGridSelector(apiRef, gridSortedRowIdsSelector);
25
- const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
26
23
  const totalHeaderHeight = getTotalHeaderHeight(apiRef, props);
27
24
  const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
28
25
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
@@ -43,11 +40,11 @@ export const useGridCellSelection = (apiRef, props) => {
43
40
  if (!props.cellSelection) {
44
41
  return false;
45
42
  }
46
- const cellSelectionModel = gridCellSelectionStateSelector(apiRef.current.state);
43
+ const cellSelectionModel = gridCellSelectionStateSelector(apiRef);
47
44
  return cellSelectionModel[id] ? !!cellSelectionModel[id][field] : false;
48
45
  }, [apiRef, props.cellSelection]);
49
46
  const getCellSelectionModel = React.useCallback(() => {
50
- return gridCellSelectionStateSelector(apiRef.current.state);
47
+ return gridCellSelectionStateSelector(apiRef);
51
48
  }, [apiRef]);
52
49
  const setCellSelectionModel = React.useCallback(newModel => {
53
50
  if (!props.cellSelection) {
@@ -56,7 +53,6 @@ export const useGridCellSelection = (apiRef, props) => {
56
53
  apiRef.current.setState(prevState => _extends({}, prevState, {
57
54
  cellSelection: newModel
58
55
  }));
59
- apiRef.current.forceUpdate();
60
56
  }, [apiRef, props.cellSelection]);
61
57
  const selectCellRange = React.useCallback((start, end, keepOtherSelected = false) => {
62
58
  const startRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(start.id);
@@ -76,6 +72,7 @@ export const useGridCellSelection = (apiRef, props) => {
76
72
  finalEndColumnIndex = startColumnIndex;
77
73
  }
78
74
  const visibleColumns = apiRef.current.getVisibleColumns();
75
+ const visibleRows = getVisibleRows(apiRef);
79
76
  const rowsInRange = visibleRows.rows.slice(finalStartRowIndex, finalEndRowIndex + 1);
80
77
  const columnsInRange = visibleColumns.slice(finalStartColumnIndex, finalEndColumnIndex + 1);
81
78
  const newModel = keepOtherSelected ? _extends({}, apiRef.current.getCellSelectionModel()) : {};
@@ -88,7 +85,7 @@ export const useGridCellSelection = (apiRef, props) => {
88
85
  }, {});
89
86
  });
90
87
  apiRef.current.setCellSelectionModel(newModel);
91
- }, [apiRef, visibleRows.rows]);
88
+ }, [apiRef]);
92
89
  const getSelectedCellsAsArray = React.useCallback(() => {
93
90
  const selectionModel = apiRef.current.getCellSelectionModel();
94
91
  const currentVisibleRows = getVisibleRows(apiRef, props);
@@ -186,6 +183,7 @@ export const useGridCellSelection = (apiRef, props) => {
186
183
  if (!mousePosition.current || !apiRef.current.virtualScrollerRef?.current) {
187
184
  return;
188
185
  }
186
+ const dimensions = gridDimensionsSelector(apiRef);
189
187
  const {
190
188
  x: mouseX,
191
189
  y: mouseY
@@ -228,7 +226,7 @@ export const useGridCellSelection = (apiRef, props) => {
228
226
  autoScrollRAF.current = requestAnimationFrame(autoScroll);
229
227
  }
230
228
  autoScroll();
231
- }, [apiRef, dimensions, totalHeaderHeight]);
229
+ }, [apiRef, totalHeaderHeight]);
232
230
  const handleCellMouseOver = React.useCallback((params, event) => {
233
231
  if (!lastMouseDownCell.current) {
234
232
  return;
@@ -245,6 +243,7 @@ export const useGridCellSelection = (apiRef, props) => {
245
243
  if (!virtualScrollerRect) {
246
244
  return;
247
245
  }
246
+ const dimensions = gridDimensionsSelector(apiRef);
248
247
  const {
249
248
  x,
250
249
  y
@@ -270,7 +269,7 @@ export const useGridCellSelection = (apiRef, props) => {
270
269
  // Mouse has left the sensitivity area while auto scroll is on
271
270
  stopAutoScroll();
272
271
  }
273
- }, [apiRef, startAutoScroll, stopAutoScroll, totalHeaderHeight, dimensions]);
272
+ }, [apiRef, startAutoScroll, stopAutoScroll, totalHeaderHeight]);
274
273
  const handleCellClick = useEventCallback((params, event) => {
275
274
  const {
276
275
  id,
@@ -330,6 +329,7 @@ export const useGridCellSelection = (apiRef, props) => {
330
329
  } else if (event.key === 'ArrowLeft') {
331
330
  endColumnIndex -= 1;
332
331
  }
332
+ const visibleRows = getVisibleRows(apiRef);
333
333
  if (endRowIndex < 0 || endRowIndex >= visibleRows.rows.length) {
334
334
  return;
335
335
  }
@@ -382,6 +382,7 @@ export const useGridCellSelection = (apiRef, props) => {
382
382
  id,
383
383
  field
384
384
  }) => {
385
+ const visibleRows = getVisibleRows(apiRef);
385
386
  if (!visibleRows.range || !apiRef.current.isCellSelected(id, field)) {
386
387
  return classes;
387
388
  }
@@ -430,7 +431,7 @@ export const useGridCellSelection = (apiRef, props) => {
430
431
  newClasses.push(gridClasses['cell--rangeRight']);
431
432
  }
432
433
  return newClasses;
433
- }, [apiRef, visibleRows.range, visibleRows.rows]);
434
+ }, [apiRef]);
434
435
  const canUpdateFocus = React.useCallback((initialValue, {
435
436
  event,
436
437
  cell
@@ -451,6 +452,7 @@ export const useGridCellSelection = (apiRef, props) => {
451
452
  if (apiRef.current.getSelectedCellsAsArray().length <= 1) {
452
453
  return value;
453
454
  }
455
+ const sortedRowIds = gridSortedRowIdsSelector(apiRef);
454
456
  const cellSelectionModel = apiRef.current.getCellSelectionModel();
455
457
  const unsortedSelectedRowIds = Object.keys(cellSelectionModel);
456
458
  const sortedSelectedRowIds = sortedRowIds.filter(id => unsortedSelectedRowIds.includes(`${id}`));
@@ -476,7 +478,7 @@ export const useGridCellSelection = (apiRef, props) => {
476
478
  return acc === '' ? rowString : [acc, rowString].join('\r\n');
477
479
  }, '');
478
480
  return copyData;
479
- }, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter, sortedRowIds]);
481
+ }, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter]);
480
482
  useGridRegisterPipeProcessor(apiRef, 'isCellSelected', checkIfCellIsSelected);
481
483
  useGridRegisterPipeProcessor(apiRef, 'cellClassName', addClassesToCells);
482
484
  useGridRegisterPipeProcessor(apiRef, 'canUpdateFocus', canUpdateFocus);
@@ -0,0 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
3
+ import type { DataGridPremiumProcessedProps } from '../../../models/dataGridPremiumProps';
4
+ export declare const useGridClipboardImport: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "pagination" | "paginationMode" | "processRowUpdate" | "onProcessRowUpdateError" | "getRowId" | "onClipboardPasteStart" | "onClipboardPasteEnd" | "splitClipboardPastedText" | "disableClipboardPaste" | "onBeforeClipboardPasteStart">) => void;
@@ -255,7 +255,6 @@ export const useGridClipboardImport = (apiRef, props) => {
255
255
  const onProcessRowUpdateError = props.onProcessRowUpdateError;
256
256
  const getRowId = props.getRowId;
257
257
  const enableClipboardPaste = !props.disableClipboardPaste;
258
- const rootEl = apiRef.current.rootElementRef?.current;
259
258
  const logger = useGridLogger(apiRef, 'useGridClipboardImport');
260
259
  const splitClipboardPastedText = props.splitClipboardPastedText;
261
260
  const {
@@ -278,6 +277,7 @@ export const useGridClipboardImport = (apiRef, props) => {
278
277
  return;
279
278
  }
280
279
  }
280
+ const rootEl = apiRef.current.rootElementRef?.current;
281
281
  if (!rootEl) {
282
282
  return;
283
283
  }
@@ -318,7 +318,7 @@ export const useGridClipboardImport = (apiRef, props) => {
318
318
  paginationMode
319
319
  });
320
320
  cellUpdater.applyUpdates();
321
- }, [apiRef, processRowUpdate, onProcessRowUpdateError, getRowId, enableClipboardPaste, rootEl, splitClipboardPastedText, pagination, paginationMode, onBeforeClipboardPasteStart, logger]);
321
+ }, [apiRef, processRowUpdate, onProcessRowUpdateError, getRowId, enableClipboardPaste, splitClipboardPastedText, pagination, paginationMode, onBeforeClipboardPasteStart, logger]);
322
322
  const checkIfCanStartEditing = React.useCallback((initialValue, {
323
323
  event
324
324
  }) => {