@mui/x-data-grid-premium 8.0.0-beta.2 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/CHANGELOG.md +423 -96
  2. package/DataGridPremium/DataGridPremium.js +188 -26
  3. package/DataGridPremium/useDataGridPremiumComponent.d.ts +2 -2
  4. package/DataGridPremium/useDataGridPremiumComponent.js +22 -3
  5. package/DataGridPremium/useDataGridPremiumProps.js +5 -1
  6. package/components/GridColumnMenuPivotItem.d.ts +3 -0
  7. package/components/GridColumnMenuPivotItem.js +33 -0
  8. package/components/GridEmptyPivotOverlay.d.ts +6 -0
  9. package/components/GridEmptyPivotOverlay.js +29 -0
  10. package/components/GridGroupingCriteriaCell.js +8 -3
  11. package/components/GridPremiumColumnMenu.d.ts +5 -0
  12. package/components/GridPremiumColumnMenu.js +6 -1
  13. package/components/GridPremiumToolbar.d.ts +1 -1
  14. package/components/GridPremiumToolbar.js +29 -1
  15. package/components/aiAssistantPanel/AiAssistantPanelTrigger.d.ts +33 -0
  16. package/components/aiAssistantPanel/AiAssistantPanelTrigger.js +107 -0
  17. package/components/aiAssistantPanel/GridAiAssistantPanel.d.ts +3 -0
  18. package/components/aiAssistantPanel/GridAiAssistantPanel.js +195 -0
  19. package/components/aiAssistantPanel/GridAiAssistantPanelConversation.d.ts +7 -0
  20. package/components/aiAssistantPanel/GridAiAssistantPanelConversation.js +71 -0
  21. package/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.d.ts +3 -0
  22. package/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.js +92 -0
  23. package/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.d.ts +7 -0
  24. package/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.js +86 -0
  25. package/components/aiAssistantPanel/index.d.ts +2 -0
  26. package/components/aiAssistantPanel/index.js +27 -0
  27. package/components/collapsible/Collapsible.d.ts +4 -0
  28. package/components/collapsible/Collapsible.js +70 -0
  29. package/components/collapsible/CollapsibleContext.d.ts +8 -0
  30. package/components/collapsible/CollapsibleContext.js +17 -0
  31. package/components/collapsible/CollapsiblePanel.d.ts +4 -0
  32. package/components/collapsible/CollapsiblePanel.js +64 -0
  33. package/components/collapsible/CollapsibleTrigger.d.ts +4 -0
  34. package/components/collapsible/CollapsibleTrigger.js +106 -0
  35. package/components/collapsible/index.d.ts +4 -0
  36. package/components/collapsible/index.js +49 -0
  37. package/components/export/ExportExcel.js +4 -129
  38. package/components/index.d.ts +5 -2
  39. package/components/index.js +40 -4
  40. package/components/pivotPanel/GridPivotPanel.d.ts +3 -0
  41. package/components/pivotPanel/GridPivotPanel.js +22 -0
  42. package/components/pivotPanel/GridPivotPanelBody.d.ts +11 -0
  43. package/components/pivotPanel/GridPivotPanelBody.js +368 -0
  44. package/components/pivotPanel/GridPivotPanelField.d.ts +22 -0
  45. package/components/pivotPanel/GridPivotPanelField.js +338 -0
  46. package/components/pivotPanel/GridPivotPanelFieldMenu.d.ts +8 -0
  47. package/components/pivotPanel/GridPivotPanelFieldMenu.js +177 -0
  48. package/components/pivotPanel/GridPivotPanelHeader.d.ts +7 -0
  49. package/components/pivotPanel/GridPivotPanelHeader.js +101 -0
  50. package/components/pivotPanel/GridPivotPanelSearch.d.ts +7 -0
  51. package/components/pivotPanel/GridPivotPanelSearch.js +77 -0
  52. package/components/pivotPanel/PivotPanelTrigger.d.ts +37 -0
  53. package/components/pivotPanel/PivotPanelTrigger.js +93 -0
  54. package/components/pivotPanel/index.d.ts +2 -0
  55. package/components/pivotPanel/index.js +27 -0
  56. package/components/prompt/GridPrompt.d.ts +7 -0
  57. package/components/prompt/GridPrompt.js +364 -0
  58. package/components/prompt/index.d.ts +1 -0
  59. package/components/prompt/index.js +12 -0
  60. package/components/promptField/GridPromptField.d.ts +4 -0
  61. package/components/promptField/GridPromptField.js +86 -0
  62. package/components/promptField/PromptField.d.ts +66 -0
  63. package/components/promptField/PromptField.js +95 -0
  64. package/components/promptField/PromptFieldContext.d.ts +16 -0
  65. package/components/promptField/PromptFieldContext.js +17 -0
  66. package/components/promptField/PromptFieldControl.d.ts +27 -0
  67. package/components/promptField/PromptFieldControl.js +102 -0
  68. package/components/promptField/PromptFieldRecord.d.ts +27 -0
  69. package/components/promptField/PromptFieldRecord.js +158 -0
  70. package/components/promptField/PromptFieldSend.d.ts +27 -0
  71. package/components/promptField/PromptFieldSend.js +83 -0
  72. package/components/promptField/index.d.ts +4 -0
  73. package/components/promptField/index.js +49 -0
  74. package/components/resizablePanel/ResizablePanel.d.ts +10 -0
  75. package/components/resizablePanel/ResizablePanel.js +59 -0
  76. package/components/resizablePanel/ResizablePanelContext.d.ts +7 -0
  77. package/components/resizablePanel/ResizablePanelContext.js +17 -0
  78. package/components/resizablePanel/ResizablePanelHandle.d.ts +4 -0
  79. package/components/resizablePanel/ResizablePanelHandle.js +115 -0
  80. package/components/resizablePanel/index.d.ts +3 -0
  81. package/components/resizablePanel/index.js +38 -0
  82. package/components/sidebar/Sidebar.d.ts +4 -0
  83. package/components/sidebar/Sidebar.js +54 -0
  84. package/components/sidebar/SidebarHeader.d.ts +4 -0
  85. package/components/sidebar/SidebarHeader.js +51 -0
  86. package/components/sidebar/index.d.ts +2 -0
  87. package/components/sidebar/index.js +27 -0
  88. package/constants/dataGridPremiumDefaultSlotsComponents.js +3 -0
  89. package/esm/DataGridPremium/DataGridPremium.js +190 -28
  90. package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +2 -2
  91. package/esm/DataGridPremium/useDataGridPremiumComponent.js +20 -3
  92. package/esm/DataGridPremium/useDataGridPremiumProps.js +5 -1
  93. package/esm/components/GridColumnMenuPivotItem.d.ts +3 -0
  94. package/esm/components/GridColumnMenuPivotItem.js +26 -0
  95. package/esm/components/GridEmptyPivotOverlay.d.ts +6 -0
  96. package/esm/components/GridEmptyPivotOverlay.js +22 -0
  97. package/esm/components/GridGroupingCriteriaCell.js +9 -4
  98. package/esm/components/GridPremiumColumnMenu.d.ts +5 -0
  99. package/esm/components/GridPremiumColumnMenu.js +6 -1
  100. package/esm/components/GridPremiumToolbar.d.ts +1 -1
  101. package/esm/components/GridPremiumToolbar.js +30 -2
  102. package/esm/components/aiAssistantPanel/AiAssistantPanelTrigger.d.ts +33 -0
  103. package/esm/components/aiAssistantPanel/AiAssistantPanelTrigger.js +100 -0
  104. package/esm/components/aiAssistantPanel/GridAiAssistantPanel.d.ts +3 -0
  105. package/esm/components/aiAssistantPanel/GridAiAssistantPanel.js +188 -0
  106. package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversation.d.ts +7 -0
  107. package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversation.js +64 -0
  108. package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.d.ts +3 -0
  109. package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.js +85 -0
  110. package/esm/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.d.ts +7 -0
  111. package/esm/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.js +80 -0
  112. package/esm/components/aiAssistantPanel/index.d.ts +2 -0
  113. package/esm/components/aiAssistantPanel/index.js +2 -0
  114. package/esm/components/collapsible/Collapsible.d.ts +4 -0
  115. package/esm/components/collapsible/Collapsible.js +63 -0
  116. package/esm/components/collapsible/CollapsibleContext.d.ts +8 -0
  117. package/esm/components/collapsible/CollapsibleContext.js +9 -0
  118. package/esm/components/collapsible/CollapsiblePanel.d.ts +4 -0
  119. package/esm/components/collapsible/CollapsiblePanel.js +57 -0
  120. package/esm/components/collapsible/CollapsibleTrigger.d.ts +4 -0
  121. package/esm/components/collapsible/CollapsibleTrigger.js +99 -0
  122. package/esm/components/collapsible/index.d.ts +4 -0
  123. package/esm/components/collapsible/index.js +4 -0
  124. package/esm/components/export/ExportExcel.js +4 -129
  125. package/esm/components/index.d.ts +5 -2
  126. package/esm/components/index.js +5 -2
  127. package/esm/components/pivotPanel/GridPivotPanel.d.ts +3 -0
  128. package/esm/components/pivotPanel/GridPivotPanel.js +16 -0
  129. package/esm/components/pivotPanel/GridPivotPanelBody.d.ts +11 -0
  130. package/esm/components/pivotPanel/GridPivotPanelBody.js +361 -0
  131. package/esm/components/pivotPanel/GridPivotPanelField.d.ts +22 -0
  132. package/esm/components/pivotPanel/GridPivotPanelField.js +331 -0
  133. package/esm/components/pivotPanel/GridPivotPanelFieldMenu.d.ts +8 -0
  134. package/esm/components/pivotPanel/GridPivotPanelFieldMenu.js +170 -0
  135. package/esm/components/pivotPanel/GridPivotPanelHeader.d.ts +7 -0
  136. package/esm/components/pivotPanel/GridPivotPanelHeader.js +94 -0
  137. package/esm/components/pivotPanel/GridPivotPanelSearch.d.ts +7 -0
  138. package/esm/components/pivotPanel/GridPivotPanelSearch.js +70 -0
  139. package/esm/components/pivotPanel/PivotPanelTrigger.d.ts +37 -0
  140. package/esm/components/pivotPanel/PivotPanelTrigger.js +86 -0
  141. package/esm/components/pivotPanel/index.d.ts +2 -0
  142. package/esm/components/pivotPanel/index.js +2 -0
  143. package/esm/components/prompt/GridPrompt.d.ts +7 -0
  144. package/esm/components/prompt/GridPrompt.js +357 -0
  145. package/esm/components/prompt/index.d.ts +1 -0
  146. package/esm/components/prompt/index.js +1 -0
  147. package/esm/components/promptField/GridPromptField.d.ts +4 -0
  148. package/esm/components/promptField/GridPromptField.js +79 -0
  149. package/esm/components/promptField/PromptField.d.ts +66 -0
  150. package/esm/components/promptField/PromptField.js +88 -0
  151. package/esm/components/promptField/PromptFieldContext.d.ts +16 -0
  152. package/esm/components/promptField/PromptFieldContext.js +9 -0
  153. package/esm/components/promptField/PromptFieldControl.d.ts +27 -0
  154. package/esm/components/promptField/PromptFieldControl.js +95 -0
  155. package/esm/components/promptField/PromptFieldRecord.d.ts +27 -0
  156. package/esm/components/promptField/PromptFieldRecord.js +151 -0
  157. package/esm/components/promptField/PromptFieldSend.d.ts +27 -0
  158. package/esm/components/promptField/PromptFieldSend.js +76 -0
  159. package/esm/components/promptField/index.d.ts +4 -0
  160. package/esm/components/promptField/index.js +4 -0
  161. package/esm/components/resizablePanel/ResizablePanel.d.ts +10 -0
  162. package/esm/components/resizablePanel/ResizablePanel.js +52 -0
  163. package/esm/components/resizablePanel/ResizablePanelContext.d.ts +7 -0
  164. package/esm/components/resizablePanel/ResizablePanelContext.js +9 -0
  165. package/esm/components/resizablePanel/ResizablePanelHandle.d.ts +4 -0
  166. package/esm/components/resizablePanel/ResizablePanelHandle.js +108 -0
  167. package/esm/components/resizablePanel/index.d.ts +3 -0
  168. package/esm/components/resizablePanel/index.js +3 -0
  169. package/esm/components/sidebar/Sidebar.d.ts +4 -0
  170. package/esm/components/sidebar/Sidebar.js +47 -0
  171. package/esm/components/sidebar/SidebarHeader.d.ts +4 -0
  172. package/esm/components/sidebar/SidebarHeader.js +44 -0
  173. package/esm/components/sidebar/index.d.ts +2 -0
  174. package/esm/components/sidebar/index.js +2 -0
  175. package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +3 -0
  176. package/esm/hooks/features/aggregation/gridAggregationFunctions.js +13 -0
  177. package/esm/hooks/features/aggregation/gridAggregationSelectors.d.ts +10 -1
  178. package/esm/hooks/features/aggregation/gridAggregationSelectors.js +28 -1
  179. package/esm/hooks/features/aggregation/gridAggregationUtils.d.ts +1 -1
  180. package/esm/hooks/features/aggregation/index.d.ts +1 -1
  181. package/esm/hooks/features/aggregation/index.js +1 -1
  182. package/esm/hooks/features/aggregation/useGridAggregation.js +7 -11
  183. package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.js +2 -8
  184. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +5 -25
  185. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +23 -10
  186. package/esm/hooks/features/aiAssistant/api.d.ts +12 -0
  187. package/esm/hooks/features/aiAssistant/api.js +31 -0
  188. package/esm/hooks/features/aiAssistant/gridAiAssistantInterfaces.d.ts +82 -0
  189. package/esm/hooks/features/aiAssistant/gridAiAssistantSelectors.d.ts +5 -0
  190. package/esm/hooks/features/aiAssistant/gridAiAssistantSelectors.js +5 -0
  191. package/esm/hooks/features/aiAssistant/index.d.ts +2 -0
  192. package/esm/hooks/features/aiAssistant/useGridAiAssistant.d.ts +6 -0
  193. package/esm/hooks/features/aiAssistant/useGridAiAssistant.js +293 -0
  194. package/esm/hooks/features/cellSelection/useGridCellSelection.js +6 -6
  195. package/esm/hooks/features/clipboard/useGridClipboardImport.js +4 -4
  196. package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +4 -1
  197. package/esm/hooks/features/export/useGridExcelExport.js +2 -2
  198. package/esm/hooks/features/index.d.ts +1 -1
  199. package/esm/hooks/features/index.js +1 -1
  200. package/esm/hooks/features/pivoting/gridPivotingInterfaces.d.ts +69 -0
  201. package/esm/hooks/features/pivoting/gridPivotingSelectors.d.ts +4 -0
  202. package/esm/hooks/features/pivoting/gridPivotingSelectors.js +5 -0
  203. package/esm/hooks/features/pivoting/useGridPivoting.d.ts +7 -0
  204. package/esm/hooks/features/pivoting/useGridPivoting.js +339 -0
  205. package/esm/hooks/features/pivoting/utils.d.ts +21 -0
  206. package/esm/hooks/features/pivoting/utils.js +259 -0
  207. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +1 -4
  208. package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
  209. package/esm/hooks/utils/useResize.d.ts +9 -0
  210. package/esm/hooks/utils/useResize.js +52 -0
  211. package/esm/index.d.ts +4 -1
  212. package/esm/index.js +4 -2
  213. package/esm/material/icons.d.ts +15 -15
  214. package/esm/material/icons.js +32 -5
  215. package/esm/material/index.d.ts +31 -5
  216. package/esm/material/index.js +31 -3
  217. package/esm/models/dataGridPremiumProps.d.ts +96 -2
  218. package/esm/models/gridApiPremium.d.ts +4 -2
  219. package/esm/models/gridPremiumIconSlotsComponent.d.ts +141 -8
  220. package/esm/models/gridPremiumSlotsComponent.d.ts +13 -1
  221. package/esm/models/gridStatePremium.d.ts +6 -0
  222. package/esm/package.json +1 -1
  223. package/esm/setupExcelExportWebWorker/index.d.ts +1 -0
  224. package/esm/setupExcelExportWebWorker/index.js +1 -0
  225. package/esm/typeOverloads/modules.d.ts +32 -1
  226. package/esm/utils/speechRecognition.d.ts +2 -0
  227. package/esm/utils/speechRecognition.js +2 -0
  228. package/hooks/features/aggregation/gridAggregationFunctions.js +13 -0
  229. package/hooks/features/aggregation/gridAggregationSelectors.d.ts +10 -1
  230. package/hooks/features/aggregation/gridAggregationSelectors.js +29 -2
  231. package/hooks/features/aggregation/gridAggregationUtils.d.ts +1 -1
  232. package/hooks/features/aggregation/index.d.ts +1 -1
  233. package/hooks/features/aggregation/index.js +21 -11
  234. package/hooks/features/aggregation/useGridAggregation.js +6 -10
  235. package/hooks/features/aggregation/useGridAggregationPreProcessors.js +2 -8
  236. package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +5 -25
  237. package/hooks/features/aggregation/wrapColumnWithAggregation.js +24 -11
  238. package/hooks/features/aiAssistant/api.d.ts +12 -0
  239. package/hooks/features/aiAssistant/api.js +37 -0
  240. package/hooks/features/aiAssistant/gridAiAssistantInterfaces.d.ts +82 -0
  241. package/hooks/features/aiAssistant/gridAiAssistantSelectors.d.ts +5 -0
  242. package/hooks/features/aiAssistant/gridAiAssistantSelectors.js +11 -0
  243. package/hooks/features/aiAssistant/index.d.ts +2 -0
  244. package/hooks/features/aiAssistant/useGridAiAssistant.d.ts +6 -0
  245. package/hooks/features/aiAssistant/useGridAiAssistant.js +303 -0
  246. package/hooks/features/cellSelection/useGridCellSelection.js +5 -5
  247. package/hooks/features/clipboard/useGridClipboardImport.js +3 -3
  248. package/hooks/features/dataSource/useGridDataSourcePremium.js +4 -1
  249. package/hooks/features/export/useGridExcelExport.js +1 -1
  250. package/hooks/features/index.d.ts +1 -1
  251. package/hooks/features/index.js +4 -4
  252. package/hooks/features/pivoting/gridPivotingInterfaces.d.ts +69 -0
  253. package/hooks/features/pivoting/gridPivotingInterfaces.js +5 -0
  254. package/hooks/features/pivoting/gridPivotingSelectors.d.ts +4 -0
  255. package/hooks/features/pivoting/gridPivotingSelectors.js +30 -0
  256. package/hooks/features/pivoting/useGridPivoting.d.ts +7 -0
  257. package/hooks/features/pivoting/useGridPivoting.js +349 -0
  258. package/hooks/features/pivoting/utils.d.ts +21 -0
  259. package/hooks/features/pivoting/utils.js +270 -0
  260. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +1 -4
  261. package/hooks/features/rowGrouping/useGridRowGrouping.js +3 -4
  262. package/hooks/utils/useResize.d.ts +9 -0
  263. package/hooks/utils/useResize.js +60 -0
  264. package/index.d.ts +4 -1
  265. package/index.js +19 -3
  266. package/material/icons.d.ts +15 -15
  267. package/material/icons.js +36 -9
  268. package/material/index.d.ts +31 -5
  269. package/material/index.js +30 -2
  270. package/models/dataGridPremiumProps.d.ts +96 -2
  271. package/models/gridApiPremium.d.ts +4 -2
  272. package/models/gridPremiumIconSlotsComponent.d.ts +141 -8
  273. package/models/gridPremiumSlotsComponent.d.ts +13 -1
  274. package/models/gridStatePremium.d.ts +6 -0
  275. package/package.json +12 -18
  276. package/setupExcelExportWebWorker/index.d.ts +1 -0
  277. package/{setupExcelExportWebWorker.js → setupExcelExportWebWorker/index.js} +1 -1
  278. package/typeOverloads/modules.d.ts +32 -1
  279. package/utils/speechRecognition.d.ts +2 -0
  280. package/utils/speechRecognition.js +8 -0
  281. package/components/promptControl/GridToolbarPromptControl.d.ts +0 -26
  282. package/components/promptControl/GridToolbarPromptControl.js +0 -222
  283. package/components/promptControl/RecordButton.d.ts +0 -16
  284. package/components/promptControl/RecordButton.js +0 -119
  285. package/components/promptControl/index.d.ts +0 -1
  286. package/components/promptControl/index.js +0 -12
  287. package/esm/components/promptControl/GridToolbarPromptControl.d.ts +0 -26
  288. package/esm/components/promptControl/GridToolbarPromptControl.js +0 -215
  289. package/esm/components/promptControl/RecordButton.d.ts +0 -16
  290. package/esm/components/promptControl/RecordButton.js +0 -111
  291. package/esm/components/promptControl/index.d.ts +0 -1
  292. package/esm/components/promptControl/index.js +0 -1
  293. package/esm/hooks/features/promptControl/api.d.ts +0 -2
  294. package/esm/hooks/features/promptControl/api.js +0 -22
  295. package/esm/hooks/features/promptControl/index.d.ts +0 -2
  296. package/esm/hooks/features/promptControl/types.d.ts +0 -25
  297. package/esm/setupExcelExportWebWorker.d.ts +0 -1
  298. package/esm/setupExcelExportWebWorker.js +0 -1
  299. package/esm/utils/releaseInfo.d.ts +0 -1
  300. package/esm/utils/releaseInfo.js +0 -13
  301. package/hooks/features/promptControl/api.d.ts +0 -2
  302. package/hooks/features/promptControl/api.js +0 -28
  303. package/hooks/features/promptControl/index.d.ts +0 -2
  304. package/hooks/features/promptControl/types.d.ts +0 -25
  305. package/modern/DataGridPremium/DataGrid.d.ts +0 -8
  306. package/modern/DataGridPremium/DataGrid.js +0 -19
  307. package/modern/DataGridPremium/DataGridPremium.d.ts +0 -16
  308. package/modern/DataGridPremium/DataGridPremium.js +0 -1121
  309. package/modern/DataGridPremium/index.d.ts +0 -3
  310. package/modern/DataGridPremium/index.js +0 -3
  311. package/modern/DataGridPremium/useDataGridPremiumComponent.d.ts +0 -4
  312. package/modern/DataGridPremium/useDataGridPremiumComponent.js +0 -108
  313. package/modern/DataGridPremium/useDataGridPremiumProps.d.ts +0 -6
  314. package/modern/DataGridPremium/useDataGridPremiumProps.js +0 -54
  315. package/modern/components/GridAggregationHeader.d.ts +0 -7
  316. package/modern/components/GridAggregationHeader.js +0 -89
  317. package/modern/components/GridAggregationRowOverlay.d.ts +0 -3
  318. package/modern/components/GridAggregationRowOverlay.js +0 -37
  319. package/modern/components/GridBottomContainer.d.ts +0 -3
  320. package/modern/components/GridBottomContainer.js +0 -43
  321. package/modern/components/GridColumnMenuAggregationItem.d.ts +0 -7
  322. package/modern/components/GridColumnMenuAggregationItem.js +0 -124
  323. package/modern/components/GridColumnMenuRowGroupItem.d.ts +0 -3
  324. package/modern/components/GridColumnMenuRowGroupItem.js +0 -42
  325. package/modern/components/GridColumnMenuRowUngroupItem.d.ts +0 -3
  326. package/modern/components/GridColumnMenuRowUngroupItem.js +0 -44
  327. package/modern/components/GridDataSourceGroupingCriteriaCell.d.ts +0 -7
  328. package/modern/components/GridDataSourceGroupingCriteriaCell.js +0 -121
  329. package/modern/components/GridExcelExportMenuItem.d.ts +0 -9
  330. package/modern/components/GridExcelExportMenuItem.js +0 -48
  331. package/modern/components/GridFooterCell.d.ts +0 -9
  332. package/modern/components/GridFooterCell.js +0 -43
  333. package/modern/components/GridGroupingColumnFooterCell.d.ts +0 -4
  334. package/modern/components/GridGroupingColumnFooterCell.js +0 -23
  335. package/modern/components/GridGroupingColumnLeafCell.d.ts +0 -4
  336. package/modern/components/GridGroupingColumnLeafCell.js +0 -17
  337. package/modern/components/GridGroupingCriteriaCell.d.ts +0 -7
  338. package/modern/components/GridGroupingCriteriaCell.js +0 -87
  339. package/modern/components/GridPremiumColumnMenu.d.ts +0 -33
  340. package/modern/components/GridPremiumColumnMenu.js +0 -37
  341. package/modern/components/GridPremiumToolbar.d.ts +0 -3
  342. package/modern/components/GridPremiumToolbar.js +0 -23
  343. package/modern/components/export/ExportExcel.d.ts +0 -29
  344. package/modern/components/export/ExportExcel.js +0 -209
  345. package/modern/components/export/index.d.ts +0 -1
  346. package/modern/components/export/index.js +0 -1
  347. package/modern/components/index.d.ts +0 -6
  348. package/modern/components/index.js +0 -6
  349. package/modern/components/promptControl/GridToolbarPromptControl.d.ts +0 -26
  350. package/modern/components/promptControl/GridToolbarPromptControl.js +0 -215
  351. package/modern/components/promptControl/RecordButton.d.ts +0 -16
  352. package/modern/components/promptControl/RecordButton.js +0 -111
  353. package/modern/components/promptControl/index.d.ts +0 -1
  354. package/modern/components/promptControl/index.js +0 -1
  355. package/modern/components/reexports.d.ts +0 -1
  356. package/modern/components/reexports.js +0 -1
  357. package/modern/constants/dataGridPremiumDefaultSlotsComponents.d.ts +0 -2
  358. package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +0 -11
  359. package/modern/hooks/features/aggregation/createAggregationLookup.d.ts +0 -17
  360. package/modern/hooks/features/aggregation/createAggregationLookup.js +0 -111
  361. package/modern/hooks/features/aggregation/gridAggregationFunctions.d.ts +0 -8
  362. package/modern/hooks/features/aggregation/gridAggregationFunctions.js +0 -93
  363. package/modern/hooks/features/aggregation/gridAggregationInterfaces.d.ts +0 -129
  364. package/modern/hooks/features/aggregation/gridAggregationSelectors.d.ts +0 -13
  365. package/modern/hooks/features/aggregation/gridAggregationSelectors.js +0 -15
  366. package/modern/hooks/features/aggregation/gridAggregationUtils.d.ts +0 -62
  367. package/modern/hooks/features/aggregation/gridAggregationUtils.js +0 -180
  368. package/modern/hooks/features/aggregation/index.d.ts +0 -4
  369. package/modern/hooks/features/aggregation/index.js +0 -3
  370. package/modern/hooks/features/aggregation/useGridAggregation.d.ts +0 -6
  371. package/modern/hooks/features/aggregation/useGridAggregation.js +0 -103
  372. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +0 -4
  373. package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.js +0 -96
  374. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +0 -81
  375. package/modern/hooks/features/aggregation/wrapColumnWithAggregation.js +0 -215
  376. package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +0 -40
  377. package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.js +0 -1
  378. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +0 -2
  379. package/modern/hooks/features/cellSelection/gridCellSelectionSelector.js +0 -2
  380. package/modern/hooks/features/cellSelection/index.d.ts +0 -1
  381. package/modern/hooks/features/cellSelection/index.js +0 -1
  382. package/modern/hooks/features/cellSelection/useGridCellSelection.d.ts +0 -6
  383. package/modern/hooks/features/cellSelection/useGridCellSelection.js +0 -486
  384. package/modern/hooks/features/clipboard/useGridClipboardImport.d.ts +0 -4
  385. package/modern/hooks/features/clipboard/useGridClipboardImport.js +0 -335
  386. package/modern/hooks/features/dataSource/models.d.ts +0 -54
  387. package/modern/hooks/features/dataSource/models.js +0 -1
  388. package/modern/hooks/features/dataSource/useGridDataSourcePremium.d.ts +0 -4
  389. package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +0 -59
  390. package/modern/hooks/features/export/gridExcelExportInterface.d.ts +0 -71
  391. package/modern/hooks/features/export/gridExcelExportInterface.js +0 -1
  392. package/modern/hooks/features/export/index.d.ts +0 -2
  393. package/modern/hooks/features/export/index.js +0 -2
  394. package/modern/hooks/features/export/serializer/excelSerializer.d.ts +0 -40
  395. package/modern/hooks/features/export/serializer/excelSerializer.js +0 -269
  396. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +0 -2
  397. package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.js +0 -53
  398. package/modern/hooks/features/export/serializer/utils.d.ts +0 -36
  399. package/modern/hooks/features/export/serializer/utils.js +0 -93
  400. package/modern/hooks/features/export/useGridExcelExport.d.ts +0 -11
  401. package/modern/hooks/features/export/useGridExcelExport.js +0 -139
  402. package/modern/hooks/features/index.d.ts +0 -5
  403. package/modern/hooks/features/index.js +0 -6
  404. package/modern/hooks/features/promptControl/api.d.ts +0 -2
  405. package/modern/hooks/features/promptControl/api.js +0 -22
  406. package/modern/hooks/features/promptControl/index.d.ts +0 -2
  407. package/modern/hooks/features/promptControl/index.js +0 -1
  408. package/modern/hooks/features/promptControl/types.d.ts +0 -25
  409. package/modern/hooks/features/promptControl/types.js +0 -1
  410. package/modern/hooks/features/rowGrouping/createGroupingColDef.d.ts +0 -57
  411. package/modern/hooks/features/rowGrouping/createGroupingColDef.js +0 -272
  412. package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +0 -44
  413. package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +0 -1
  414. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +0 -3
  415. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +0 -5
  416. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +0 -54
  417. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +0 -173
  418. package/modern/hooks/features/rowGrouping/index.d.ts +0 -3
  419. package/modern/hooks/features/rowGrouping/index.js +0 -3
  420. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +0 -4
  421. package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +0 -73
  422. package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +0 -11
  423. package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +0 -182
  424. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +0 -4
  425. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +0 -157
  426. package/modern/hooks/features/rows/index.d.ts +0 -1
  427. package/modern/hooks/features/rows/index.js +0 -1
  428. package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +0 -1
  429. package/modern/hooks/features/rows/useGridRowAriaAttributes.js +0 -8
  430. package/modern/hooks/index.d.ts +0 -2
  431. package/modern/hooks/index.js +0 -3
  432. package/modern/hooks/utils/index.d.ts +0 -1
  433. package/modern/hooks/utils/index.js +0 -1
  434. package/modern/hooks/utils/useGridApiContext.d.ts +0 -4
  435. package/modern/hooks/utils/useGridApiContext.js +0 -2
  436. package/modern/hooks/utils/useGridApiRef.d.ts +0 -4
  437. package/modern/hooks/utils/useGridApiRef.js +0 -2
  438. package/modern/hooks/utils/useGridAriaAttributes.d.ts +0 -2
  439. package/modern/hooks/utils/useGridAriaAttributes.js +0 -13
  440. package/modern/hooks/utils/useGridPrivateApiContext.d.ts +0 -2
  441. package/modern/hooks/utils/useGridPrivateApiContext.js +0 -2
  442. package/modern/hooks/utils/useGridRootProps.d.ts +0 -2
  443. package/modern/hooks/utils/useGridRootProps.js +0 -2
  444. package/modern/hooks/utils/useKeepGroupedColumnsHidden.d.ts +0 -12
  445. package/modern/hooks/utils/useKeepGroupedColumnsHidden.js +0 -43
  446. package/modern/index.d.ts +0 -23
  447. package/modern/index.js +0 -26
  448. package/modern/locales.d.ts +0 -1
  449. package/modern/locales.js +0 -1
  450. package/modern/material/icons.d.ts +0 -15
  451. package/modern/material/icons.js +0 -20
  452. package/modern/material/index.d.ts +0 -8
  453. package/modern/material/index.js +0 -11
  454. package/modern/models/dataGridPremiumProps.d.ts +0 -162
  455. package/modern/models/dataGridPremiumProps.js +0 -1
  456. package/modern/models/gridApiPremium.d.ts +0 -14
  457. package/modern/models/gridApiPremium.js +0 -1
  458. package/modern/models/gridGroupingValueGetter.d.ts +0 -4
  459. package/modern/models/gridGroupingValueGetter.js +0 -1
  460. package/modern/models/gridPastedValueParser.d.ts +0 -4
  461. package/modern/models/gridPastedValueParser.js +0 -1
  462. package/modern/models/gridPremiumIconSlotsComponent.d.ts +0 -28
  463. package/modern/models/gridPremiumIconSlotsComponent.js +0 -1
  464. package/modern/models/gridPremiumSlotsComponent.d.ts +0 -7
  465. package/modern/models/gridPremiumSlotsComponent.js +0 -1
  466. package/modern/models/gridStatePremium.d.ts +0 -18
  467. package/modern/models/gridStatePremium.js +0 -1
  468. package/modern/models/index.d.ts +0 -4
  469. package/modern/models/index.js +0 -4
  470. package/modern/package.json +0 -1
  471. package/modern/setupExcelExportWebWorker.d.ts +0 -1
  472. package/modern/setupExcelExportWebWorker.js +0 -1
  473. package/modern/themeAugmentation/index.d.ts +0 -2
  474. package/modern/themeAugmentation/index.js +0 -4
  475. package/modern/themeAugmentation/overrides.d.ts +0 -7
  476. package/modern/themeAugmentation/overrides.js +0 -1
  477. package/modern/themeAugmentation/props.d.ts +0 -15
  478. package/modern/themeAugmentation/props.js +0 -1
  479. package/modern/typeOverloads/index.d.ts +0 -2
  480. package/modern/typeOverloads/index.js +0 -2
  481. package/modern/typeOverloads/modules.d.ts +0 -97
  482. package/modern/typeOverloads/modules.js +0 -1
  483. package/modern/typeOverloads/reexports.d.ts +0 -17
  484. package/modern/typeOverloads/reexports.js +0 -15
  485. package/modern/utils/releaseInfo.d.ts +0 -1
  486. package/modern/utils/releaseInfo.js +0 -13
  487. package/setupExcelExportWebWorker.d.ts +0 -1
  488. package/tsconfig.build.tsbuildinfo +0 -1
  489. package/utils/releaseInfo.d.ts +0 -1
  490. package/utils/releaseInfo.js +0 -20
  491. /package/esm/hooks/features/{promptControl/types.js → aiAssistant/gridAiAssistantInterfaces.js} +0 -0
  492. /package/esm/hooks/features/{promptControl → aiAssistant}/index.js +0 -0
  493. /package/{modern/hooks/features/aggregation/gridAggregationInterfaces.js → esm/hooks/features/pivoting/gridPivotingInterfaces.js} +0 -0
  494. /package/hooks/features/{promptControl/types.js → aiAssistant/gridAiAssistantInterfaces.js} +0 -0
  495. /package/hooks/features/{promptControl → aiAssistant}/index.js +0 -0
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useGridPivoting = exports.pivotingStateInitializer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _xDataGridPro = require("@mui/x-data-grid-pro");
12
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
13
+ var _useOnMount = _interopRequireDefault(require("@mui/utils/useOnMount"));
14
+ var _internals = require("@mui/x-data-grid-pro/internals");
15
+ var _gridPivotingSelectors = require("./gridPivotingSelectors");
16
+ var _utils = require("./utils");
17
+ var _gridAggregationUtils = require("../aggregation/gridAggregationUtils");
18
+ const emptyPivotModel = {
19
+ rows: [],
20
+ columns: [],
21
+ values: []
22
+ };
23
+ const pivotingStateInitializer = (state, props, apiRef) => {
24
+ if (!(0, _utils.isPivotingAvailable)(props)) {
25
+ return (0, _extends2.default)({}, state, {
26
+ pivoting: {
27
+ active: false,
28
+ model: emptyPivotModel,
29
+ panelOpen: false
30
+ }
31
+ });
32
+ }
33
+ const initialColumns = (0, _utils.getInitialColumns)(props.columns ?? [], props.getPivotDerivedColumns, apiRef.current.getLocaleText);
34
+ return (0, _extends2.default)({}, state, {
35
+ pivoting: {
36
+ active: props.pivotActive ?? props.initialState?.pivoting?.enabled ?? false,
37
+ model: props.pivotModel ?? props.initialState?.pivoting?.model ?? emptyPivotModel,
38
+ panelOpen: props.pivotPanelOpen ?? props.initialState?.pivoting?.panelOpen ?? false,
39
+ initialColumns
40
+ }
41
+ });
42
+ };
43
+ exports.pivotingStateInitializer = pivotingStateInitializer;
44
+ const useGridPivoting = (apiRef, props, originalColumnsProp, originalRowsProp) => {
45
+ const isPivotActive = (0, _internals.useGridSelector)(apiRef, _gridPivotingSelectors.gridPivotActiveSelector);
46
+ const exportedStateRef = React.useRef(null);
47
+ const nonPivotDataRef = React.useRef(undefined);
48
+ const isPivotingAvailable = (0, _utils.isPivotingAvailable)(props);
49
+ apiRef.current.registerControlState({
50
+ stateId: 'pivotModel',
51
+ propModel: props.pivotModel,
52
+ propOnChange: props.onPivotModelChange,
53
+ stateSelector: _gridPivotingSelectors.gridPivotModelSelector,
54
+ changeEvent: 'pivotModelChange'
55
+ });
56
+ apiRef.current.registerControlState({
57
+ stateId: 'pivotMode',
58
+ propModel: props.pivotActive,
59
+ propOnChange: props.onPivotActiveChange,
60
+ stateSelector: _gridPivotingSelectors.gridPivotActiveSelector,
61
+ changeEvent: 'pivotModeChange'
62
+ });
63
+ apiRef.current.registerControlState({
64
+ stateId: 'pivotPanelOpen',
65
+ propModel: props.pivotPanelOpen,
66
+ propOnChange: props.onPivotPanelOpenChange,
67
+ stateSelector: _gridPivotingSelectors.gridPivotPanelOpenSelector,
68
+ changeEvent: 'pivotPanelOpenChange'
69
+ });
70
+ const getInitialData = React.useCallback(() => {
71
+ if (!exportedStateRef.current) {
72
+ exportedStateRef.current = apiRef.current.exportState();
73
+ }
74
+ const rowIds = (0, _xDataGridPro.gridDataRowIdsSelector)(apiRef);
75
+ const rowsLookup = (0, _xDataGridPro.gridRowsLookupSelector)(apiRef);
76
+ const rows = rowIds.map(id => rowsLookup[id]);
77
+ const initialColumns = (0, _utils.getInitialColumns)(originalColumnsProp, props.getPivotDerivedColumns, apiRef.current.getLocaleText);
78
+ return {
79
+ rows,
80
+ columns: initialColumns
81
+ };
82
+ }, [apiRef, props.getPivotDerivedColumns, originalColumnsProp]);
83
+ const computePivotingState = React.useCallback(({
84
+ active,
85
+ model: pivotModel
86
+ }) => {
87
+ if (active && pivotModel) {
88
+ const {
89
+ rows,
90
+ columns
91
+ } = nonPivotDataRef.current || {
92
+ rows: [],
93
+ columns: new Map()
94
+ };
95
+ return {
96
+ initialColumns: columns,
97
+ // TODO: fix getPivotedData called twice in controlled mode
98
+ propsOverrides: (0, _utils.getPivotedData)({
99
+ rows,
100
+ columns,
101
+ pivotModel,
102
+ apiRef: apiRef,
103
+ pivotingColDef: props.pivotingColDef
104
+ })
105
+ };
106
+ }
107
+ return undefined;
108
+ }, [apiRef, props.pivotingColDef]);
109
+ (0, _useOnMount.default)(() => {
110
+ if (!isPivotingAvailable || !isPivotActive) {
111
+ return undefined;
112
+ }
113
+ const isLoading = (0, _xDataGridPro.gridRowsLoadingSelector)(apiRef) ?? false;
114
+ const runPivoting = () => {
115
+ nonPivotDataRef.current = getInitialData();
116
+ apiRef.current.setState(state => {
117
+ const pivotingState = (0, _extends2.default)({}, state.pivoting, computePivotingState(state.pivoting));
118
+ return (0, _extends2.default)({}, state, {
119
+ pivoting: pivotingState
120
+ });
121
+ });
122
+ };
123
+ if (!isLoading) {
124
+ runPivoting();
125
+ return undefined;
126
+ }
127
+ const unsubscribe = apiRef.current?.store.subscribe(() => {
128
+ const loading = (0, _xDataGridPro.gridRowsLoadingSelector)(apiRef);
129
+ if (loading === false) {
130
+ unsubscribe();
131
+ runPivoting();
132
+ }
133
+ });
134
+ return unsubscribe;
135
+ });
136
+ (0, _useEnhancedEffect.default)(() => {
137
+ if (!isPivotingAvailable || !isPivotActive) {
138
+ if (exportedStateRef.current) {
139
+ apiRef.current.restoreState(exportedStateRef.current);
140
+ exportedStateRef.current = null;
141
+ }
142
+ if (nonPivotDataRef.current) {
143
+ apiRef.current.setRows(nonPivotDataRef.current.rows);
144
+ nonPivotDataRef.current = undefined;
145
+ }
146
+ }
147
+ }, [isPivotActive, apiRef, isPivotingAvailable]);
148
+ const setPivotModel = React.useCallback(callback => {
149
+ if (!isPivotingAvailable) {
150
+ return;
151
+ }
152
+ apiRef.current.setState(state => {
153
+ const newPivotModel = typeof callback === 'function' ? callback(state.pivoting?.model) : callback;
154
+ if (state.pivoting?.model === newPivotModel) {
155
+ return state;
156
+ }
157
+ const newPivotingState = (0, _extends2.default)({}, state.pivoting, computePivotingState((0, _extends2.default)({}, state.pivoting, {
158
+ model: newPivotModel
159
+ })), {
160
+ model: newPivotModel
161
+ });
162
+ return (0, _extends2.default)({}, state, {
163
+ pivoting: newPivotingState
164
+ });
165
+ });
166
+ }, [apiRef, computePivotingState, isPivotingAvailable]);
167
+ const updatePivotModel = React.useCallback(({
168
+ field,
169
+ targetSection,
170
+ originSection,
171
+ targetField,
172
+ targetFieldPosition
173
+ }) => {
174
+ if (field === targetField) {
175
+ return;
176
+ }
177
+ apiRef.current.setPivotModel(prev => {
178
+ const newModel = (0, _extends2.default)({}, prev);
179
+ const isSameSection = targetSection === originSection;
180
+ const hidden = originSection === null ? false : prev[originSection].find(item => item.field === field)?.hidden ?? false;
181
+ if (targetSection) {
182
+ const newSectionArray = [...prev[targetSection]];
183
+ let toIndex = newSectionArray.length;
184
+ if (targetField) {
185
+ const fromIndex = newSectionArray.findIndex(item => item.field === field);
186
+ if (fromIndex > -1) {
187
+ newSectionArray.splice(fromIndex, 1);
188
+ }
189
+ toIndex = newSectionArray.findIndex(item => item.field === targetField);
190
+ if (targetFieldPosition === 'bottom') {
191
+ toIndex += 1;
192
+ }
193
+ }
194
+ if (targetSection === 'values') {
195
+ const initialColumns = (0, _internals.gridPivotInitialColumnsSelector)(apiRef);
196
+ const aggFunc = isSameSection ? prev.values.find(item => item.field === field)?.aggFunc : (0, _gridAggregationUtils.getAvailableAggregationFunctions)({
197
+ aggregationFunctions: props.aggregationFunctions,
198
+ colDef: initialColumns.get(field),
199
+ isDataSource: false
200
+ })[0];
201
+ newSectionArray.splice(toIndex, 0, {
202
+ field,
203
+ aggFunc,
204
+ hidden
205
+ });
206
+ newModel.values = newSectionArray;
207
+ } else if (targetSection === 'columns') {
208
+ const sort = isSameSection ? prev.columns.find(item => item.field === field)?.sort : undefined;
209
+ newSectionArray.splice(toIndex, 0, {
210
+ field,
211
+ sort,
212
+ hidden
213
+ });
214
+ newModel.columns = newSectionArray;
215
+ } else if (targetSection === 'rows') {
216
+ newSectionArray.splice(toIndex, 0, {
217
+ field,
218
+ hidden
219
+ });
220
+ newModel.rows = newSectionArray;
221
+ }
222
+ }
223
+ if (!isSameSection && originSection) {
224
+ newModel[originSection] = prev[originSection].filter(f => f.field !== field);
225
+ }
226
+ return newModel;
227
+ });
228
+ }, [apiRef, props.aggregationFunctions]);
229
+ const setPivotActive = React.useCallback(callback => {
230
+ if (!isPivotingAvailable) {
231
+ return;
232
+ }
233
+ apiRef.current.selectRows([], false, true);
234
+ apiRef.current.setState(state => {
235
+ const newPivotMode = typeof callback === 'function' ? callback(state.pivoting?.active) : callback;
236
+ if (state.pivoting?.active === newPivotMode) {
237
+ return state;
238
+ }
239
+ if (newPivotMode) {
240
+ nonPivotDataRef.current = getInitialData();
241
+ }
242
+ const newPivotingState = (0, _extends2.default)({}, state.pivoting, computePivotingState((0, _extends2.default)({}, state.pivoting, {
243
+ active: newPivotMode
244
+ })), {
245
+ active: newPivotMode
246
+ });
247
+ const newState = (0, _extends2.default)({}, state, {
248
+ pivoting: newPivotingState
249
+ });
250
+ return newState;
251
+ });
252
+ }, [apiRef, computePivotingState, getInitialData, isPivotingAvailable]);
253
+ const setPivotPanelOpen = React.useCallback(callback => {
254
+ if (!isPivotingAvailable) {
255
+ return;
256
+ }
257
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
258
+ pivoting: (0, _extends2.default)({}, state.pivoting, {
259
+ panelOpen: typeof callback === 'function' ? callback(state.pivoting?.panelOpen) : callback
260
+ })
261
+ }));
262
+ }, [apiRef, isPivotingAvailable]);
263
+ const addColumnMenuButton = React.useCallback(menuItems => {
264
+ if (isPivotingAvailable) {
265
+ return [...menuItems, 'columnMenuPivotItem'];
266
+ }
267
+ return menuItems;
268
+ }, [isPivotingAvailable]);
269
+ (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'columnMenu', addColumnMenuButton);
270
+ const updateNonPivotColumns = React.useCallback((columns, keepPreviousColumns = true) => {
271
+ if (!nonPivotDataRef.current || !isPivotingAvailable) {
272
+ return;
273
+ }
274
+ if (keepPreviousColumns) {
275
+ (0, _utils.getInitialColumns)(columns, props.getPivotDerivedColumns, apiRef.current.getLocaleText).forEach(col => {
276
+ nonPivotDataRef.current.columns.set(col.field, col);
277
+ });
278
+ } else {
279
+ nonPivotDataRef.current.columns = (0, _utils.getInitialColumns)(columns, props.getPivotDerivedColumns, apiRef.current.getLocaleText);
280
+ }
281
+ apiRef.current.setState(state => {
282
+ return (0, _extends2.default)({}, state, {
283
+ pivoting: (0, _extends2.default)({}, state.pivoting, computePivotingState(state.pivoting), {
284
+ initialColumns: nonPivotDataRef.current?.columns
285
+ })
286
+ });
287
+ });
288
+ }, [isPivotingAvailable, apiRef, props.getPivotDerivedColumns, computePivotingState]);
289
+ const updateNonPivotRows = React.useCallback((rows, keepPreviousRows = true) => {
290
+ if (!nonPivotDataRef.current || !rows || rows.length === 0) {
291
+ return;
292
+ }
293
+ if (keepPreviousRows) {
294
+ const rowsMap = new Map();
295
+ nonPivotDataRef.current.rows.forEach(row => {
296
+ rowsMap.set((0, _xDataGridPro.gridRowIdSelector)(apiRef, row), row);
297
+ });
298
+ rows.forEach(row => {
299
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef, row);
300
+ // eslint-disable-next-line no-underscore-dangle
301
+ if (row._action === 'delete') {
302
+ rowsMap.delete(rowId);
303
+ } else {
304
+ rowsMap.set(rowId, row);
305
+ }
306
+ });
307
+ nonPivotDataRef.current.rows = Array.from(rowsMap.values());
308
+ } else {
309
+ nonPivotDataRef.current.rows = rows;
310
+ }
311
+ apiRef.current.setState(state => {
312
+ return (0, _extends2.default)({}, state, {
313
+ pivoting: (0, _extends2.default)({}, state.pivoting, computePivotingState(state.pivoting))
314
+ });
315
+ });
316
+ }, [apiRef, computePivotingState]);
317
+ (0, _internals.useGridApiMethod)(apiRef, {
318
+ setPivotModel,
319
+ setPivotActive,
320
+ setPivotPanelOpen
321
+ }, 'public');
322
+ (0, _internals.useGridApiMethod)(apiRef, {
323
+ updatePivotModel,
324
+ updateNonPivotColumns,
325
+ updateNonPivotRows
326
+ }, 'private');
327
+ (0, _useEnhancedEffect.default)(() => {
328
+ apiRef.current.updateNonPivotColumns(originalColumnsProp, false);
329
+ }, [originalColumnsProp, apiRef]);
330
+ (0, _useEnhancedEffect.default)(() => {
331
+ apiRef.current.updateNonPivotRows(originalRowsProp, false);
332
+ }, [originalRowsProp, apiRef]);
333
+ (0, _useEnhancedEffect.default)(() => {
334
+ if (props.pivotModel !== undefined) {
335
+ apiRef.current.setPivotModel(props.pivotModel);
336
+ }
337
+ }, [apiRef, props.pivotModel]);
338
+ (0, _useEnhancedEffect.default)(() => {
339
+ if (props.pivotActive !== undefined) {
340
+ apiRef.current.setPivotActive(props.pivotActive);
341
+ }
342
+ }, [apiRef, props.pivotActive]);
343
+ (0, _useEnhancedEffect.default)(() => {
344
+ if (props.pivotPanelOpen !== undefined) {
345
+ apiRef.current.setPivotPanelOpen(props.pivotPanelOpen);
346
+ }
347
+ }, [apiRef, props.pivotPanelOpen]);
348
+ };
349
+ exports.useGridPivoting = useGridPivoting;
@@ -0,0 +1,21 @@
1
+ import { GridColDef, GridRowModel, GridLocaleTextApi } from '@mui/x-data-grid-pro';
2
+ import type { RefObject } from '@mui/x-internals/types';
3
+ import type { DataGridPremiumProcessedProps } from '../../../models/dataGridPremiumProps';
4
+ import type { GridApiPremium } from '../../../models/gridApiPremium';
5
+ import type { GridPivotingPropsOverrides, GridPivotModel } from './gridPivotingInterfaces';
6
+ export declare const isPivotingAvailable: (props: Pick<DataGridPremiumProcessedProps, "disablePivoting">) => boolean;
7
+ export declare const defaultGetPivotDerivedColumns: DataGridPremiumProcessedProps['getPivotDerivedColumns'];
8
+ export declare const getInitialColumns: (originalColumns: DataGridPremiumProcessedProps["columns"], getPivotDerivedColumns: DataGridPremiumProcessedProps["getPivotDerivedColumns"], getLocaleText: GridLocaleTextApi["getLocaleText"]) => Map<string, GridColDef>;
9
+ export declare const getPivotedData: ({
10
+ rows,
11
+ columns,
12
+ pivotModel,
13
+ apiRef,
14
+ pivotingColDef
15
+ }: {
16
+ rows: GridRowModel[];
17
+ columns: Map<string, GridColDef>;
18
+ pivotModel: GridPivotModel;
19
+ apiRef: RefObject<GridApiPremium>;
20
+ pivotingColDef: DataGridPremiumProcessedProps["pivotingColDef"];
21
+ }) => GridPivotingPropsOverrides;
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isPivotingAvailable = exports.getPivotedData = exports.getInitialColumns = exports.defaultGetPivotDerivedColumns = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _xDataGridPro = require("@mui/x-data-grid-pro");
10
+ var _internals = require("@mui/x-data-grid-pro/internals");
11
+ var _rowGrouping = require("../rowGrouping");
12
+ const columnGroupIdSeparator = '>->';
13
+ const isPivotingAvailable = props => {
14
+ return !props.disablePivoting;
15
+ };
16
+ exports.isPivotingAvailable = isPivotingAvailable;
17
+ const defaultGetPivotDerivedColumns = (column, getLocaleText) => {
18
+ if (column.type === 'date') {
19
+ const field = column.field;
20
+ return [{
21
+ // String column type to avoid formatting the value as 2,025 instead of 2025
22
+ field: `${field}-year`,
23
+ headerName: `${column.headerName} ${getLocaleText('pivotYearColumnHeaderName')}`,
24
+ valueGetter: (value, row) => new Date(row[field]).getFullYear()
25
+ }, {
26
+ field: `${field}-quarter`,
27
+ headerName: `${column.headerName} ${getLocaleText('pivotQuarterColumnHeaderName')}`,
28
+ valueGetter: (value, row) => `Q${Math.floor(new Date(row[field]).getMonth() / 3) + 1}`
29
+ }];
30
+ }
31
+ return undefined;
32
+ };
33
+ exports.defaultGetPivotDerivedColumns = defaultGetPivotDerivedColumns;
34
+ const getInitialColumns = (originalColumns, getPivotDerivedColumns, getLocaleText) => {
35
+ const initialColumns = new Map();
36
+ for (let i = 0; i < originalColumns.length; i += 1) {
37
+ const originalColumn = originalColumns[i];
38
+ const column = (0, _extends2.default)({}, (0, _internals.getDefaultColTypeDef)(originalColumn.type), originalColumn);
39
+ const field = column.field;
40
+ if (!(0, _rowGrouping.isGroupingColumn)(field)) {
41
+ initialColumns.set(field, column);
42
+ const derivedColumns = getPivotDerivedColumns?.(column, getLocaleText);
43
+ if (derivedColumns) {
44
+ derivedColumns.forEach(col => initialColumns.set(col.field, col));
45
+ }
46
+ }
47
+ }
48
+ return initialColumns;
49
+ };
50
+ exports.getInitialColumns = getInitialColumns;
51
+ function sortColumnGroups(columnGroups, pivotModelColumns, depth = 0) {
52
+ if (depth > pivotModelColumns.length - 1) {
53
+ return;
54
+ }
55
+ const sort = pivotModelColumns[depth].sort;
56
+ columnGroups.sort((a, b) => {
57
+ if ((0, _xDataGridPro.isLeaf)(a) || (0, _xDataGridPro.isLeaf)(b)) {
58
+ return 0;
59
+ }
60
+ if (a.children) {
61
+ sortColumnGroups(a.children, pivotModelColumns, depth + 1);
62
+ }
63
+ if (b.children) {
64
+ sortColumnGroups(b.children, pivotModelColumns, depth + 1);
65
+ }
66
+ if (sort === undefined) {
67
+ return 0;
68
+ }
69
+ return (sort === 'asc' ? 1 : -1) * (0, _xDataGridPro.gridStringOrNumberComparator)(a.headerName, b.headerName, {}, {});
70
+ });
71
+ }
72
+ const getPivotedData = ({
73
+ rows,
74
+ columns,
75
+ pivotModel,
76
+ apiRef,
77
+ pivotingColDef
78
+ }) => {
79
+ const visibleColumns = pivotModel.columns.filter(column => !column.hidden);
80
+ const visibleRows = pivotModel.rows.filter(row => !row.hidden);
81
+ const visibleValues = pivotModel.values.filter(value => !value.hidden);
82
+ let pivotColumns = [];
83
+ const columnVisibilityModel = {};
84
+ const pivotColumnsIncludedInPivotValues = [];
85
+ const initialColumns = new Map();
86
+ for (const column of columns.values()) {
87
+ if (!(0, _rowGrouping.isGroupingColumn)(column.field)) {
88
+ initialColumns.set(column.field, column);
89
+ const pivotValueIndex = visibleValues.findIndex(({
90
+ field
91
+ }) => field === column.field);
92
+ const isVisiblePivotValueField = pivotValueIndex !== -1;
93
+ const columnToAdd = (0, _extends2.default)({}, column, {
94
+ aggregable: false,
95
+ groupable: false,
96
+ hideable: false,
97
+ editable: false,
98
+ disableReorder: true
99
+ });
100
+ if (isVisiblePivotValueField) {
101
+ // Store columns that are used as pivot values in a temporary array to keep them in the same order as in pivotModel.values, not in the order of the initial columns.
102
+ // `pivotColumnsIncludedInPivotValues` is concatenated to pivotColumns later.
103
+ pivotColumnsIncludedInPivotValues[pivotValueIndex] = columnToAdd;
104
+ } else {
105
+ pivotColumns.push(columnToAdd);
106
+ }
107
+ columnVisibilityModel[column.field] = false;
108
+ }
109
+ }
110
+ pivotColumns = pivotColumns.concat(pivotColumnsIncludedInPivotValues);
111
+ const getAttributesFromInitialColumn = field => {
112
+ const initialColumn = initialColumns.get(field);
113
+ if (!initialColumn) {
114
+ return undefined;
115
+ }
116
+ const attributes = {
117
+ width: initialColumn.width,
118
+ minWidth: initialColumn.minWidth,
119
+ maxWidth: initialColumn.maxWidth,
120
+ valueFormatter: initialColumn.valueFormatter,
121
+ headerName: initialColumn.headerName,
122
+ renderCell: initialColumn.renderCell,
123
+ display: initialColumn.display
124
+ };
125
+ return attributes;
126
+ };
127
+ const aggregationModel = {};
128
+ const columnGroupingModel = [];
129
+ const columnGroupingModelLookup = new Map();
130
+ let newRows = [];
131
+ if (visibleColumns.length === 0) {
132
+ newRows = rows;
133
+ visibleValues.forEach(pivotValue => {
134
+ aggregationModel[pivotValue.field] = pivotValue.aggFunc;
135
+ delete columnVisibilityModel[pivotValue.field];
136
+ });
137
+ } else {
138
+ for (let i = 0; i < rows.length; i += 1) {
139
+ const row = rows[i];
140
+ const newRow = (0, _extends2.default)({}, row);
141
+ const columnGroupPath = [];
142
+ visibleColumns.forEach(({
143
+ field: colGroupField
144
+ }, depth) => {
145
+ const column = initialColumns.get(colGroupField);
146
+ if (!column) {
147
+ return;
148
+ }
149
+ let colValue = apiRef.current.getRowValue(row, column) ?? '(No value)';
150
+ if (column.type === 'singleSelect') {
151
+ const singleSelectColumn = column;
152
+ if (singleSelectColumn.getOptionLabel) {
153
+ colValue = singleSelectColumn.getOptionLabel(colValue);
154
+ }
155
+ }
156
+ columnGroupPath.push(String(colValue));
157
+ const groupId = columnGroupPath.join(columnGroupIdSeparator);
158
+ if (!columnGroupingModelLookup.has(groupId)) {
159
+ const columnGroup = {
160
+ groupId,
161
+ headerName: String(colValue),
162
+ children: []
163
+ };
164
+ columnGroupingModelLookup.set(groupId, columnGroup);
165
+ if (depth === 0) {
166
+ columnGroupingModel.push(columnGroup);
167
+ } else {
168
+ const parentGroupId = columnGroupPath.slice(0, -1).join(columnGroupIdSeparator);
169
+ const parentGroup = columnGroupingModelLookup.get(parentGroupId);
170
+ if (parentGroup) {
171
+ parentGroup.children.push(columnGroup);
172
+ }
173
+ }
174
+ }
175
+ const isLastColumnGroupLevel = depth === visibleColumns.length - 1;
176
+ if (isLastColumnGroupLevel) {
177
+ visibleValues.forEach(pivotValue => {
178
+ const valueField = pivotValue.field;
179
+ const originalColumn = initialColumns.get(valueField);
180
+ if (!originalColumn) {
181
+ return;
182
+ }
183
+ const valueKey = `${columnGroupPath.join(columnGroupIdSeparator)}${columnGroupIdSeparator}${valueField}`;
184
+ newRow[valueKey] = apiRef.current.getRowValue(row, originalColumn);
185
+ });
186
+ }
187
+ });
188
+ newRows.push(newRow);
189
+ }
190
+ sortColumnGroups(columnGroupingModel, visibleColumns);
191
+ }
192
+ function createColumns(columnGroups, depth = 0) {
193
+ for (let i = 0; i < columnGroups.length; i += 1) {
194
+ const columnGroup = columnGroups[i];
195
+ if ((0, _xDataGridPro.isLeaf)(columnGroup)) {
196
+ continue;
197
+ }
198
+ const isLastColumnGroupLevel = depth === visibleColumns.length - 1;
199
+ if (isLastColumnGroupLevel) {
200
+ if (visibleValues.length === 0) {
201
+ // If there are no visible values, there are no actual columns added to the data grid, which leads to column groups not being visible.
202
+ // Adding an empty column to each column group ensures that the column groups are visible.
203
+ const emptyColumnField = `${columnGroup.groupId}${columnGroupIdSeparator}empty`;
204
+ const emptyColumn = {
205
+ field: emptyColumnField,
206
+ headerName: '',
207
+ sortable: false,
208
+ filterable: false,
209
+ groupable: false,
210
+ aggregable: false,
211
+ hideable: false,
212
+ disableColumnMenu: true
213
+ };
214
+ pivotColumns.push(emptyColumn);
215
+ if (columnGroup) {
216
+ columnGroup.children.push({
217
+ field: emptyColumnField
218
+ });
219
+ }
220
+ } else {
221
+ visibleValues.forEach(pivotValue => {
222
+ const valueField = pivotValue.field;
223
+ const mapValueKey = `${columnGroup.groupId}${columnGroupIdSeparator}${valueField}`;
224
+ const overrides = typeof pivotingColDef === 'function' ? pivotingColDef(valueField, columnGroup.groupId.split(columnGroupIdSeparator)) : pivotingColDef;
225
+ const column = (0, _extends2.default)({
226
+ headerName: String(valueField)
227
+ }, getAttributesFromInitialColumn(pivotValue.field), overrides, {
228
+ field: mapValueKey,
229
+ aggregable: false,
230
+ groupable: false,
231
+ filterable: false,
232
+ hideable: false,
233
+ editable: false,
234
+ disableReorder: true,
235
+ availableAggregationFunctions: [pivotValue.aggFunc]
236
+ });
237
+ pivotColumns.push(column);
238
+ aggregationModel[mapValueKey] = pivotValue.aggFunc;
239
+ if (columnGroup) {
240
+ columnGroup.children.push({
241
+ field: mapValueKey
242
+ });
243
+ }
244
+ });
245
+ }
246
+ } else {
247
+ createColumns(columnGroup.children, depth + 1);
248
+ }
249
+ }
250
+ }
251
+ createColumns(columnGroupingModel);
252
+ return {
253
+ rows: visibleRows.length > 0 ? newRows : [],
254
+ columns: pivotColumns,
255
+ rowGroupingModel: visibleRows.map(row => row.field),
256
+ aggregationModel,
257
+ getAggregationPosition: groupNode => groupNode.depth === -1 ? 'footer' : 'inline',
258
+ columnVisibilityModel,
259
+ columnGroupingModel,
260
+ groupingColDef: {
261
+ filterable: false,
262
+ aggregable: false,
263
+ hideable: false
264
+ },
265
+ headerFilters: false,
266
+ disableAggregation: false,
267
+ disableRowGrouping: false
268
+ };
269
+ };
270
+ exports.getPivotedData = getPivotedData;
@@ -29,10 +29,7 @@ const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
29
29
  apiRef.current.caches.rowGrouping.rulesOnLastRowTreeCreation = groupingRules;
30
30
  const getRowTreeBuilderNode = rowId => {
31
31
  const parentPath = params.updates.groupKeys ?? [];
32
- const row = params.dataRowIdToModelLookup[rowId];
33
- const groupingRule = groupingRules[parentPath.length];
34
- const groupingValueGetter = groupingRule?.groupingValueGetter;
35
- const leafKey = groupingValueGetter?.(row[groupingRule.field], row, columnsLookup[groupingRule.field], apiRef) ?? getGroupKey(params.dataRowIdToModelLookup[rowId]);
32
+ const leafKey = getGroupKey(params.dataRowIdToModelLookup[rowId]);
36
33
  return {
37
34
  id: rowId,
38
35
  path: [...parentPath, leafKey ?? rowId.toString()].map((key, i) => ({
@@ -175,10 +175,9 @@ const useGridRowGrouping = (apiRef, props) => {
175
175
  }
176
176
  }
177
177
  }, [apiRef, props.disableRowGrouping]);
178
- (0, _xDataGridPro.useGridApiEventHandler)(apiRef, 'cellKeyDown', handleCellKeyDown);
179
- (0, _xDataGridPro.useGridApiEventHandler)(apiRef, 'columnsChange', checkGroupingColumnsModelDiff);
180
- (0, _xDataGridPro.useGridApiEventHandler)(apiRef, 'rowGroupingModelChange', checkGroupingColumnsModelDiff);
181
- (0, _xDataGridPro.useGridApiEventHandler)(apiRef, 'rowGroupingModelChange', () => apiRef.current.dataSource.fetchRows());
178
+ (0, _xDataGridPro.useGridEvent)(apiRef, 'cellKeyDown', handleCellKeyDown);
179
+ (0, _xDataGridPro.useGridEvent)(apiRef, 'columnsChange', checkGroupingColumnsModelDiff);
180
+ (0, _xDataGridPro.useGridEvent)(apiRef, 'rowGroupingModelChange', checkGroupingColumnsModelDiff);
182
181
 
183
182
  /*
184
183
  * EFFECTS
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export type ResizeDirection = 'horizontal' | 'vertical';
3
+ export declare const useResize: <TElement extends HTMLDivElement>(options: {
4
+ getInitialSize: (handleElement: TElement) => number;
5
+ onSizeChange: (newSize: number, handleElement: TElement) => void;
6
+ direction?: ResizeDirection;
7
+ }) => {
8
+ ref: React.RefObject<TElement | null>;
9
+ };