@mui/x-data-grid-pro 5.5.0 → 5.6.1

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 (356) hide show
  1. package/CHANGELOG.md +309 -101
  2. package/DataGridPro/DataGridPro.d.ts +3 -0
  3. package/DataGridPro/DataGridPro.js +910 -0
  4. package/DataGridPro/index.d.ts +2 -0
  5. package/DataGridPro/index.js +2 -0
  6. package/DataGridPro/package.json +6 -0
  7. package/DataGridPro/useDataGridProComponent.d.ts +4 -0
  8. package/DataGridPro/useDataGridProComponent.js +82 -0
  9. package/DataGridPro/useDataGridProProps.d.ts +6 -0
  10. package/DataGridPro/useDataGridProProps.js +49 -0
  11. package/components/DataGridProColumnHeaders.d.ts +6 -0
  12. package/components/DataGridProColumnHeaders.js +165 -0
  13. package/components/DataGridProVirtualScroller.d.ts +8 -0
  14. package/components/DataGridProVirtualScroller.js +270 -0
  15. package/components/GridColumnPinningMenuItems.d.ts +11 -0
  16. package/components/GridColumnPinningMenuItems.js +71 -0
  17. package/components/GridDetailPanelToggleCell.d.ts +7 -0
  18. package/components/GridDetailPanelToggleCell.js +125 -0
  19. package/components/GridGroupingColumnLeafCell.d.ts +4 -0
  20. package/components/GridGroupingColumnLeafCell.js +22 -0
  21. package/components/GridGroupingCriteriaCell.d.ts +10 -0
  22. package/components/GridGroupingCriteriaCell.js +150 -0
  23. package/components/GridRowGroupableColumnMenuItems.d.ts +11 -0
  24. package/components/GridRowGroupableColumnMenuItems.js +63 -0
  25. package/components/GridRowGroupingColumnMenuItems.d.ts +11 -0
  26. package/components/GridRowGroupingColumnMenuItems.js +58 -0
  27. package/components/GridTreeDataGroupingCell.d.ts +10 -0
  28. package/components/GridTreeDataGroupingCell.js +160 -0
  29. package/components/Watermark.d.ts +2 -0
  30. package/components/Watermark.js +43 -0
  31. package/components/index.d.ts +3 -0
  32. package/components/index.js +4 -0
  33. package/components/package.json +6 -0
  34. package/hooks/features/columnPinning/gridColumnPinningInterface.d.ts +42 -0
  35. package/hooks/features/columnPinning/gridColumnPinningInterface.js +11 -0
  36. package/hooks/features/columnPinning/gridColumnPinningSelector.d.ts +2 -0
  37. package/hooks/features/columnPinning/gridColumnPinningSelector.js +1 -0
  38. package/hooks/features/columnPinning/index.d.ts +2 -0
  39. package/hooks/features/columnPinning/index.js +2 -0
  40. package/hooks/features/columnPinning/useGridColumnPinning.d.ts +6 -0
  41. package/hooks/features/columnPinning/useGridColumnPinning.js +274 -0
  42. package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.d.ts +4 -0
  43. package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +45 -0
  44. package/hooks/features/columnReorder/columnReorderInterfaces.d.ts +6 -0
  45. package/hooks/features/columnReorder/columnReorderInterfaces.js +1 -0
  46. package/hooks/features/columnReorder/columnReorderSelector.d.ts +3 -0
  47. package/hooks/features/columnReorder/columnReorderSelector.js +3 -0
  48. package/hooks/features/columnReorder/index.d.ts +2 -0
  49. package/hooks/features/columnReorder/index.js +2 -0
  50. package/hooks/features/columnReorder/useGridColumnReorder.d.ts +10 -0
  51. package/hooks/features/columnReorder/useGridColumnReorder.js +165 -0
  52. package/hooks/features/columnResize/columnResizeSelector.d.ts +3 -0
  53. package/hooks/features/columnResize/columnResizeSelector.js +3 -0
  54. package/hooks/features/columnResize/columnResizeState.d.ts +3 -0
  55. package/hooks/features/columnResize/columnResizeState.js +1 -0
  56. package/hooks/features/columnResize/index.d.ts +2 -0
  57. package/hooks/features/columnResize/index.js +2 -0
  58. package/hooks/features/columnResize/useGridColumnResize.d.ts +11 -0
  59. package/hooks/features/columnResize/useGridColumnResize.js +305 -0
  60. package/hooks/features/detailPanel/gridDetailPanelInterface.d.ts +28 -0
  61. package/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -0
  62. package/hooks/features/detailPanel/gridDetailPanelSelector.d.ts +5 -0
  63. package/hooks/features/detailPanel/gridDetailPanelSelector.js +3 -0
  64. package/hooks/features/detailPanel/gridDetailPanelToggleColDef.d.ts +3 -0
  65. package/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +26 -0
  66. package/hooks/features/detailPanel/index.d.ts +3 -0
  67. package/hooks/features/detailPanel/index.js +3 -0
  68. package/hooks/features/detailPanel/useGridDetailPanel.d.ts +6 -0
  69. package/hooks/features/detailPanel/useGridDetailPanel.js +109 -0
  70. package/hooks/features/detailPanel/useGridDetailPanelCache.d.ts +4 -0
  71. package/hooks/features/detailPanel/useGridDetailPanelCache.js +57 -0
  72. package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.d.ts +4 -0
  73. package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +28 -0
  74. package/hooks/features/index.d.ts +6 -0
  75. package/hooks/features/index.js +7 -0
  76. package/hooks/features/infiniteLoader/useGridInfiniteLoader.d.ts +10 -0
  77. package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +52 -0
  78. package/hooks/features/rowGrouping/createGroupingColDef.d.ts +43 -0
  79. package/hooks/features/rowGrouping/createGroupingColDef.js +318 -0
  80. package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +31 -0
  81. package/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +1 -0
  82. package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +4 -0
  83. package/hooks/features/rowGrouping/gridRowGroupingSelector.js +5 -0
  84. package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +24 -0
  85. package/hooks/features/rowGrouping/gridRowGroupingUtils.js +124 -0
  86. package/hooks/features/rowGrouping/index.d.ts +3 -0
  87. package/hooks/features/rowGrouping/index.js +3 -0
  88. package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +13 -0
  89. package/hooks/features/rowGrouping/useGridRowGrouping.js +325 -0
  90. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
  91. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +76 -0
  92. package/hooks/features/treeData/gridTreeDataGroupColDef.d.ts +7 -0
  93. package/hooks/features/treeData/gridTreeDataGroupColDef.js +22 -0
  94. package/hooks/features/treeData/gridTreeDataUtils.d.ts +14 -0
  95. package/hooks/features/treeData/gridTreeDataUtils.js +86 -0
  96. package/hooks/features/treeData/index.d.ts +1 -0
  97. package/hooks/features/treeData/index.js +1 -0
  98. package/hooks/features/treeData/useGridTreeData.d.ts +10 -0
  99. package/hooks/features/treeData/useGridTreeData.js +108 -0
  100. package/hooks/features/treeData/useGridTreeDataPreProcessors.d.ts +4 -0
  101. package/hooks/features/treeData/useGridTreeDataPreProcessors.js +69 -0
  102. package/hooks/index.d.ts +1 -0
  103. package/hooks/index.js +1 -0
  104. package/hooks/package.json +6 -0
  105. package/hooks/utils/useGridApiContext.d.ts +4 -0
  106. package/hooks/utils/useGridApiContext.js +2 -0
  107. package/hooks/utils/useGridApiRef.d.ts +4 -0
  108. package/hooks/utils/useGridApiRef.js +2 -0
  109. package/hooks/utils/useGridRootProps.d.ts +2 -0
  110. package/hooks/utils/useGridRootProps.js +2 -0
  111. package/index.d.ts +16 -0
  112. package/index.js +20 -0
  113. package/legacy/DataGridPro/DataGridPro.js +910 -0
  114. package/legacy/DataGridPro/index.js +2 -0
  115. package/legacy/DataGridPro/useDataGridProComponent.js +82 -0
  116. package/legacy/DataGridPro/useDataGridProProps.js +58 -0
  117. package/legacy/components/DataGridProColumnHeaders.js +173 -0
  118. package/legacy/components/DataGridProVirtualScroller.js +287 -0
  119. package/legacy/components/GridColumnPinningMenuItems.js +71 -0
  120. package/legacy/components/GridDetailPanelToggleCell.js +121 -0
  121. package/legacy/components/GridGroupingColumnLeafCell.js +20 -0
  122. package/legacy/components/GridGroupingCriteriaCell.js +146 -0
  123. package/legacy/components/GridRowGroupableColumnMenuItems.js +61 -0
  124. package/legacy/components/GridRowGroupingColumnMenuItems.js +56 -0
  125. package/legacy/components/GridTreeDataGroupingCell.js +156 -0
  126. package/legacy/components/Watermark.js +43 -0
  127. package/legacy/components/index.js +4 -0
  128. package/legacy/hooks/features/columnPinning/gridColumnPinningInterface.js +11 -0
  129. package/legacy/hooks/features/columnPinning/gridColumnPinningSelector.js +3 -0
  130. package/legacy/hooks/features/columnPinning/index.js +2 -0
  131. package/legacy/hooks/features/columnPinning/useGridColumnPinning.js +298 -0
  132. package/legacy/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +48 -0
  133. package/legacy/hooks/features/columnReorder/columnReorderInterfaces.js +1 -0
  134. package/legacy/hooks/features/columnReorder/columnReorderSelector.js +7 -0
  135. package/legacy/hooks/features/columnReorder/index.js +2 -0
  136. package/legacy/hooks/features/columnReorder/useGridColumnReorder.js +171 -0
  137. package/legacy/hooks/features/columnResize/columnResizeSelector.js +7 -0
  138. package/legacy/hooks/features/columnResize/columnResizeState.js +1 -0
  139. package/legacy/hooks/features/columnResize/index.js +2 -0
  140. package/legacy/hooks/features/columnResize/useGridColumnResize.js +310 -0
  141. package/legacy/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -0
  142. package/legacy/hooks/features/detailPanel/gridDetailPanelSelector.js +9 -0
  143. package/legacy/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +28 -0
  144. package/legacy/hooks/features/detailPanel/index.js +3 -0
  145. package/legacy/hooks/features/detailPanel/useGridDetailPanel.js +114 -0
  146. package/legacy/hooks/features/detailPanel/useGridDetailPanelCache.js +57 -0
  147. package/legacy/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +31 -0
  148. package/legacy/hooks/features/index.js +7 -0
  149. package/legacy/hooks/features/infiniteLoader/useGridInfiniteLoader.js +51 -0
  150. package/legacy/hooks/features/rowGrouping/createGroupingColDef.js +319 -0
  151. package/legacy/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +1 -0
  152. package/legacy/hooks/features/rowGrouping/gridRowGroupingSelector.js +13 -0
  153. package/legacy/hooks/features/rowGrouping/gridRowGroupingUtils.js +130 -0
  154. package/legacy/hooks/features/rowGrouping/index.js +3 -0
  155. package/legacy/hooks/features/rowGrouping/useGridRowGrouping.js +334 -0
  156. package/legacy/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +83 -0
  157. package/legacy/hooks/features/treeData/gridTreeDataGroupColDef.js +24 -0
  158. package/legacy/hooks/features/treeData/gridTreeDataUtils.js +84 -0
  159. package/legacy/hooks/features/treeData/index.js +1 -0
  160. package/legacy/hooks/features/treeData/useGridTreeData.js +116 -0
  161. package/legacy/hooks/features/treeData/useGridTreeDataPreProcessors.js +72 -0
  162. package/legacy/hooks/index.js +1 -0
  163. package/legacy/hooks/utils/useGridApiContext.js +2 -0
  164. package/legacy/hooks/utils/useGridApiRef.js +2 -0
  165. package/legacy/hooks/utils/useGridRootProps.js +2 -0
  166. package/legacy/index.js +20 -0
  167. package/legacy/models/dataGridProProps.js +1 -0
  168. package/legacy/models/gridApiPro.js +1 -0
  169. package/legacy/models/gridGroupingColDefOverride.js +1 -0
  170. package/legacy/models/gridGroupingValueGetterParams.js +1 -0
  171. package/legacy/models/gridRowScrollEndParams.js +1 -0
  172. package/legacy/models/gridStatePro.js +1 -0
  173. package/legacy/models/index.js +4 -0
  174. package/legacy/themeAugmentation/index.js +3 -0
  175. package/legacy/themeAugmentation/overrides.js +1 -0
  176. package/legacy/themeAugmentation/props.js +1 -0
  177. package/legacy/typeOverloads/modules.js +1 -0
  178. package/legacy/typeOverloads/reexports.js +6 -0
  179. package/legacy/utils/domUtils.js +19 -0
  180. package/legacy/utils/tree/buildRowTree.js +188 -0
  181. package/legacy/utils/tree/sortRowTree.js +63 -0
  182. package/models/dataGridProProps.d.ts +174 -0
  183. package/models/dataGridProProps.js +1 -0
  184. package/models/gridApiPro.d.ts +12 -0
  185. package/models/gridApiPro.js +1 -0
  186. package/models/gridGroupingColDefOverride.d.ts +30 -0
  187. package/models/gridGroupingColDefOverride.js +1 -0
  188. package/models/gridGroupingValueGetterParams.d.ts +31 -0
  189. package/models/gridGroupingValueGetterParams.js +1 -0
  190. package/models/gridRowScrollEndParams.d.ts +18 -0
  191. package/models/gridRowScrollEndParams.js +1 -0
  192. package/models/gridStatePro.d.ts +20 -0
  193. package/models/gridStatePro.js +1 -0
  194. package/models/index.d.ts +4 -0
  195. package/models/index.js +4 -0
  196. package/models/package.json +6 -0
  197. package/modern/DataGridPro/DataGridPro.js +910 -0
  198. package/modern/DataGridPro/index.js +2 -0
  199. package/modern/DataGridPro/useDataGridProComponent.js +82 -0
  200. package/modern/DataGridPro/useDataGridProProps.js +45 -0
  201. package/modern/components/DataGridProColumnHeaders.js +163 -0
  202. package/modern/components/DataGridProVirtualScroller.js +268 -0
  203. package/modern/components/GridColumnPinningMenuItems.js +71 -0
  204. package/modern/components/GridDetailPanelToggleCell.js +125 -0
  205. package/modern/components/GridGroupingColumnLeafCell.js +20 -0
  206. package/modern/components/GridGroupingCriteriaCell.js +148 -0
  207. package/modern/components/GridRowGroupableColumnMenuItems.js +61 -0
  208. package/modern/components/GridRowGroupingColumnMenuItems.js +56 -0
  209. package/modern/components/GridTreeDataGroupingCell.js +158 -0
  210. package/modern/components/Watermark.js +43 -0
  211. package/modern/components/index.js +4 -0
  212. package/modern/hooks/features/columnPinning/gridColumnPinningInterface.js +11 -0
  213. package/modern/hooks/features/columnPinning/gridColumnPinningSelector.js +1 -0
  214. package/modern/hooks/features/columnPinning/index.js +2 -0
  215. package/modern/hooks/features/columnPinning/useGridColumnPinning.js +268 -0
  216. package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +45 -0
  217. package/modern/hooks/features/columnReorder/columnReorderInterfaces.js +1 -0
  218. package/modern/hooks/features/columnReorder/columnReorderSelector.js +3 -0
  219. package/modern/hooks/features/columnReorder/index.js +2 -0
  220. package/modern/hooks/features/columnReorder/useGridColumnReorder.js +165 -0
  221. package/modern/hooks/features/columnResize/columnResizeSelector.js +3 -0
  222. package/modern/hooks/features/columnResize/columnResizeState.js +1 -0
  223. package/modern/hooks/features/columnResize/index.js +2 -0
  224. package/modern/hooks/features/columnResize/useGridColumnResize.js +295 -0
  225. package/modern/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -0
  226. package/modern/hooks/features/detailPanel/gridDetailPanelSelector.js +3 -0
  227. package/modern/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +26 -0
  228. package/modern/hooks/features/detailPanel/index.js +3 -0
  229. package/modern/hooks/features/detailPanel/useGridDetailPanel.js +105 -0
  230. package/modern/hooks/features/detailPanel/useGridDetailPanelCache.js +57 -0
  231. package/modern/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +28 -0
  232. package/modern/hooks/features/index.js +7 -0
  233. package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.js +52 -0
  234. package/modern/hooks/features/rowGrouping/createGroupingColDef.js +302 -0
  235. package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +1 -0
  236. package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +5 -0
  237. package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +122 -0
  238. package/modern/hooks/features/rowGrouping/index.js +3 -0
  239. package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +317 -0
  240. package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +76 -0
  241. package/modern/hooks/features/treeData/gridTreeDataGroupColDef.js +22 -0
  242. package/modern/hooks/features/treeData/gridTreeDataUtils.js +82 -0
  243. package/modern/hooks/features/treeData/index.js +1 -0
  244. package/modern/hooks/features/treeData/useGridTreeData.js +106 -0
  245. package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.js +67 -0
  246. package/modern/hooks/index.js +1 -0
  247. package/modern/hooks/utils/useGridApiContext.js +2 -0
  248. package/modern/hooks/utils/useGridApiRef.js +2 -0
  249. package/modern/hooks/utils/useGridRootProps.js +2 -0
  250. package/modern/index.js +20 -0
  251. package/modern/models/dataGridProProps.js +1 -0
  252. package/modern/models/gridApiPro.js +1 -0
  253. package/modern/models/gridGroupingColDefOverride.js +1 -0
  254. package/modern/models/gridGroupingValueGetterParams.js +1 -0
  255. package/modern/models/gridRowScrollEndParams.js +1 -0
  256. package/modern/models/gridStatePro.js +1 -0
  257. package/modern/models/index.js +4 -0
  258. package/modern/themeAugmentation/index.js +3 -0
  259. package/modern/themeAugmentation/overrides.js +1 -0
  260. package/modern/themeAugmentation/props.js +1 -0
  261. package/modern/typeOverloads/modules.js +1 -0
  262. package/modern/typeOverloads/reexports.js +6 -0
  263. package/modern/utils/domUtils.js +19 -0
  264. package/modern/utils/tree/buildRowTree.js +167 -0
  265. package/modern/utils/tree/sortRowTree.js +60 -0
  266. package/node/DataGridPro/DataGridPro.js +935 -0
  267. package/node/DataGridPro/index.js +30 -0
  268. package/node/DataGridPro/useDataGridProComponent.js +104 -0
  269. package/node/DataGridPro/useDataGridProProps.js +69 -0
  270. package/node/components/DataGridProColumnHeaders.js +189 -0
  271. package/node/components/DataGridProVirtualScroller.js +297 -0
  272. package/node/components/GridColumnPinningMenuItems.js +88 -0
  273. package/node/components/GridDetailPanelToggleCell.js +146 -0
  274. package/node/components/GridGroupingColumnLeafCell.js +38 -0
  275. package/node/components/GridGroupingCriteriaCell.js +170 -0
  276. package/node/components/GridRowGroupableColumnMenuItems.js +82 -0
  277. package/node/components/GridRowGroupingColumnMenuItems.js +78 -0
  278. package/node/components/GridTreeDataGroupingCell.js +181 -0
  279. package/node/components/Watermark.js +56 -0
  280. package/node/components/index.js +44 -0
  281. package/node/hooks/features/columnPinning/gridColumnPinningInterface.js +17 -0
  282. package/node/hooks/features/columnPinning/gridColumnPinningSelector.js +10 -0
  283. package/node/hooks/features/columnPinning/index.js +31 -0
  284. package/node/hooks/features/columnPinning/useGridColumnPinning.js +297 -0
  285. package/node/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +66 -0
  286. package/node/hooks/features/columnReorder/columnReorderInterfaces.js +5 -0
  287. package/node/hooks/features/columnReorder/columnReorderSelector.js +14 -0
  288. package/node/hooks/features/columnReorder/index.js +18 -0
  289. package/node/hooks/features/columnReorder/useGridColumnReorder.js +188 -0
  290. package/node/hooks/features/columnResize/columnResizeSelector.js +14 -0
  291. package/node/hooks/features/columnResize/columnResizeState.js +5 -0
  292. package/node/hooks/features/columnResize/index.js +31 -0
  293. package/node/hooks/features/columnResize/useGridColumnResize.js +329 -0
  294. package/node/hooks/features/detailPanel/gridDetailPanelInterface.js +5 -0
  295. package/node/hooks/features/detailPanel/gridDetailPanelSelector.js +18 -0
  296. package/node/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +47 -0
  297. package/node/hooks/features/detailPanel/index.js +44 -0
  298. package/node/hooks/features/detailPanel/useGridDetailPanel.js +133 -0
  299. package/node/hooks/features/detailPanel/useGridDetailPanelCache.js +74 -0
  300. package/node/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +44 -0
  301. package/node/hooks/features/index.js +83 -0
  302. package/node/hooks/features/infiniteLoader/useGridInfiniteLoader.js +67 -0
  303. package/node/hooks/features/rowGrouping/createGroupingColDef.js +341 -0
  304. package/node/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +5 -0
  305. package/node/hooks/features/rowGrouping/gridRowGroupingSelector.js +18 -0
  306. package/node/hooks/features/rowGrouping/gridRowGroupingUtils.js +153 -0
  307. package/node/hooks/features/rowGrouping/index.js +51 -0
  308. package/node/hooks/features/rowGrouping/useGridRowGrouping.js +355 -0
  309. package/node/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +94 -0
  310. package/node/hooks/features/treeData/gridTreeDataGroupColDef.js +35 -0
  311. package/node/hooks/features/treeData/gridTreeDataUtils.js +95 -0
  312. package/node/hooks/features/treeData/index.js +13 -0
  313. package/node/hooks/features/treeData/useGridTreeData.js +132 -0
  314. package/node/hooks/features/treeData/useGridTreeDataPreProcessors.js +92 -0
  315. package/node/hooks/index.js +18 -0
  316. package/node/hooks/utils/useGridApiContext.js +11 -0
  317. package/node/hooks/utils/useGridApiRef.js +11 -0
  318. package/node/hooks/utils/useGridRootProps.js +11 -0
  319. package/node/index.js +214 -0
  320. package/node/models/dataGridProProps.js +5 -0
  321. package/node/models/gridApiPro.js +5 -0
  322. package/node/models/gridGroupingColDefOverride.js +5 -0
  323. package/node/models/gridGroupingValueGetterParams.js +5 -0
  324. package/node/models/gridRowScrollEndParams.js +5 -0
  325. package/node/models/gridStatePro.js +5 -0
  326. package/node/models/index.js +44 -0
  327. package/node/themeAugmentation/index.js +31 -0
  328. package/node/themeAugmentation/overrides.js +5 -0
  329. package/node/themeAugmentation/props.js +5 -0
  330. package/node/typeOverloads/modules.js +5 -0
  331. package/node/typeOverloads/reexports.js +29 -0
  332. package/node/utils/domUtils.js +32 -0
  333. package/node/utils/tree/buildRowTree.js +185 -0
  334. package/node/utils/tree/sortRowTree.js +69 -0
  335. package/package.json +13 -14
  336. package/themeAugmentation/index.d.ts +2 -2
  337. package/themeAugmentation/index.js +3 -0
  338. package/themeAugmentation/overrides.d.ts +8 -8
  339. package/themeAugmentation/overrides.js +1 -0
  340. package/themeAugmentation/package.json +6 -0
  341. package/themeAugmentation/props.d.ts +19 -19
  342. package/themeAugmentation/props.js +1 -0
  343. package/typeOverloads/modules.d.ts +41 -0
  344. package/typeOverloads/modules.js +1 -0
  345. package/typeOverloads/reexports.d.ts +22 -0
  346. package/typeOverloads/reexports.js +6 -0
  347. package/utils/domUtils.d.ts +3 -0
  348. package/utils/domUtils.js +19 -0
  349. package/utils/tree/buildRowTree.d.ts +47 -0
  350. package/utils/tree/buildRowTree.js +179 -0
  351. package/utils/tree/sortRowTree.d.ts +10 -0
  352. package/utils/tree/sortRowTree.js +60 -0
  353. package/LICENSE +0 -12
  354. package/index-cjs.js +0 -15
  355. package/index-esm.js +0 -15
  356. package/x-data-grid-pro.d.ts +0 -5438
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useGridColumnPinning = exports.columnPinningStateInitializer = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var React = _interopRequireWildcard(require("react"));
13
+
14
+ var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
15
+
16
+ var _xDataGrid = require("@mui/x-data-grid");
17
+
18
+ var _internals = require("@mui/x-data-grid/internals");
19
+
20
+ var _GridColumnPinningMenuItems = require("../../../components/GridColumnPinningMenuItems");
21
+
22
+ var _gridColumnPinningInterface = require("./gridColumnPinningInterface");
23
+
24
+ var _gridColumnPinningSelector = require("./gridColumnPinningSelector");
25
+
26
+ var _DataGridProVirtualScroller = require("../../../components/DataGridProVirtualScroller");
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ const Divider = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
35
+ onClick: event => event.stopPropagation()
36
+ });
37
+
38
+ const columnPinningStateInitializer = (state, props) => {
39
+ var _props$initialState;
40
+
41
+ let model;
42
+
43
+ if (props.disableColumnPinning) {
44
+ model = {};
45
+ } else if (props.pinnedColumns) {
46
+ model = props.pinnedColumns;
47
+ } else if ((_props$initialState = props.initialState) != null && _props$initialState.pinnedColumns) {
48
+ var _props$initialState2;
49
+
50
+ model = (_props$initialState2 = props.initialState) == null ? void 0 : _props$initialState2.pinnedColumns;
51
+ } else {
52
+ model = {};
53
+ }
54
+
55
+ return (0, _extends2.default)({}, state, {
56
+ pinnedColumns: model
57
+ });
58
+ };
59
+
60
+ exports.columnPinningStateInitializer = columnPinningStateInitializer;
61
+
62
+ const mergeStateWithPinnedColumns = pinnedColumns => state => (0, _extends2.default)({}, state, {
63
+ pinnedColumns
64
+ });
65
+
66
+ const useGridColumnPinning = (apiRef, props) => {
67
+ const pinnedColumns = (0, _xDataGrid.useGridSelector)(apiRef, _gridColumnPinningSelector.gridPinnedColumnsSelector); // Each visible row (not to be confused with a filter result) is composed of a central .MuiDataGrid-row element
68
+ // and up to two additional .MuiDataGrid-row's, one for the columns pinned to the left and another
69
+ // for those on the right side. When hovering any of these elements, the :hover styles are applied only to
70
+ // the row element that was actually hovered, not its additional siblings. To make it look like a contiguous row,
71
+ // this method adds/removes the .Mui-hovered class to all of the row elements inside one visible row.
72
+
73
+ const updateHoveredClassOnSiblingRows = React.useCallback(event => {
74
+ var _pinnedColumns$left$l, _pinnedColumns$left, _pinnedColumns$right$, _pinnedColumns$right;
75
+
76
+ if (props.disableColumnPinning) {
77
+ return;
78
+ }
79
+
80
+ if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
81
+ return;
82
+ }
83
+
84
+ const nbLeftPinnedColumns = (_pinnedColumns$left$l = (_pinnedColumns$left = pinnedColumns.left) == null ? void 0 : _pinnedColumns$left.length) != null ? _pinnedColumns$left$l : 0;
85
+ const nbRightPinnedColumns = (_pinnedColumns$right$ = (_pinnedColumns$right = pinnedColumns.right) == null ? void 0 : _pinnedColumns$right.length) != null ? _pinnedColumns$right$ : 0;
86
+
87
+ if (nbLeftPinnedColumns + nbRightPinnedColumns === 0) {
88
+ return;
89
+ }
90
+
91
+ const index = event.currentTarget.dataset.rowindex;
92
+ const rowElements = apiRef.current.windowRef.current.querySelectorAll(`.${_xDataGrid.gridClasses.row}[data-rowindex="${index}"]`);
93
+ rowElements.forEach(row => {
94
+ // Ignore rows from other grid inside the hovered row
95
+ if (row.closest(`.${_xDataGrid.gridClasses.virtualScroller}`) === apiRef.current.windowRef.current) {
96
+ if (event.type === 'mouseenter') {
97
+ row.classList.add('Mui-hovered');
98
+ } else {
99
+ row.classList.remove('Mui-hovered');
100
+ }
101
+ }
102
+ });
103
+ }, [apiRef, pinnedColumns.left, pinnedColumns.right, props.disableColumnPinning]);
104
+ const handleMouseEnter = React.useCallback((params, event) => {
105
+ updateHoveredClassOnSiblingRows(event);
106
+ }, [updateHoveredClassOnSiblingRows]);
107
+ const handleMouseLeave = React.useCallback((params, event) => {
108
+ updateHoveredClassOnSiblingRows(event);
109
+ }, [updateHoveredClassOnSiblingRows]);
110
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.rowMouseEnter, handleMouseEnter);
111
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.rowMouseLeave, handleMouseLeave);
112
+ /**
113
+ * PRE-PROCESSING
114
+ */
115
+
116
+ const calculateScrollLeft = React.useCallback((initialValue, params) => {
117
+ if (props.disableColumnPinning) {
118
+ return initialValue;
119
+ }
120
+
121
+ const visibleColumnFields = (0, _xDataGrid.gridVisibleColumnFieldsSelector)(apiRef);
122
+ const [leftPinnedColumns, rightPinnedColumns] = (0, _DataGridProVirtualScroller.filterColumns)(pinnedColumns, visibleColumnFields);
123
+
124
+ if (!params.colIndex || leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
125
+ return initialValue;
126
+ }
127
+
128
+ const visibleColumns = (0, _xDataGrid.gridVisibleColumnDefinitionsSelector)(apiRef);
129
+ const columnsTotalWidth = (0, _xDataGrid.gridColumnsTotalWidthSelector)(apiRef);
130
+ const columnPositions = (0, _xDataGrid.gridColumnPositionsSelector)(apiRef);
131
+ const clientWidth = apiRef.current.windowRef.current.clientWidth;
132
+ const scrollLeft = apiRef.current.windowRef.current.scrollLeft;
133
+ const offsetWidth = visibleColumns[params.colIndex].computedWidth;
134
+ const offsetLeft = columnPositions[params.colIndex];
135
+ const leftPinnedColumnsWidth = columnPositions[leftPinnedColumns.length];
136
+ const rightPinnedColumnsWidth = columnsTotalWidth - columnPositions[columnPositions.length - rightPinnedColumns.length];
137
+ const elementBottom = offsetLeft + offsetWidth;
138
+
139
+ if (elementBottom - (clientWidth - rightPinnedColumnsWidth) > scrollLeft) {
140
+ const left = elementBottom - (clientWidth - rightPinnedColumnsWidth);
141
+ return (0, _extends2.default)({}, initialValue, {
142
+ left
143
+ });
144
+ }
145
+
146
+ if (offsetLeft < scrollLeft + leftPinnedColumnsWidth) {
147
+ const left = offsetLeft - leftPinnedColumnsWidth;
148
+ return (0, _extends2.default)({}, initialValue, {
149
+ left
150
+ });
151
+ }
152
+
153
+ return initialValue;
154
+ }, [apiRef, pinnedColumns, props.disableColumnPinning]);
155
+ const addColumnMenuButtons = React.useCallback((initialValue, column) => {
156
+ if (props.disableColumnPinning) {
157
+ return initialValue;
158
+ }
159
+
160
+ if (column.pinnable === false) {
161
+ return initialValue;
162
+ }
163
+
164
+ return [...initialValue, /*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnPinningMenuItems.GridColumnPinningMenuItems, {})];
165
+ }, [props.disableColumnPinning]);
166
+ const checkIfCanBeReordered = React.useCallback((initialValue, {
167
+ targetIndex
168
+ }) => {
169
+ const visibleColumnFields = (0, _xDataGrid.gridVisibleColumnFieldsSelector)(apiRef);
170
+ const [leftPinnedColumns, rightPinnedColumns] = (0, _DataGridProVirtualScroller.filterColumns)(pinnedColumns, visibleColumnFields);
171
+
172
+ if (leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
173
+ return initialValue;
174
+ }
175
+
176
+ if (leftPinnedColumns.length > 0 && targetIndex < leftPinnedColumns.length) {
177
+ return false;
178
+ }
179
+
180
+ if (rightPinnedColumns.length > 0) {
181
+ const visibleColumns = (0, _xDataGrid.gridVisibleColumnDefinitionsSelector)(apiRef);
182
+ const firstRightPinnedColumnIndex = visibleColumns.length - rightPinnedColumns.length;
183
+ return targetIndex >= firstRightPinnedColumnIndex ? false : initialValue;
184
+ }
185
+
186
+ return initialValue;
187
+ }, [apiRef, pinnedColumns]);
188
+ const stateExportPreProcessing = React.useCallback(prevState => {
189
+ const pinnedColumnsToExport = (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(apiRef.current.state);
190
+
191
+ if ((!pinnedColumnsToExport.left || pinnedColumnsToExport.left.length === 0) && (!pinnedColumnsToExport.right || pinnedColumnsToExport.right.length === 0)) {
192
+ return prevState;
193
+ }
194
+
195
+ return (0, _extends2.default)({}, prevState, {
196
+ pinnedColumns: pinnedColumnsToExport
197
+ });
198
+ }, [apiRef]);
199
+ const stateRestorePreProcessing = React.useCallback((params, context) => {
200
+ const newPinnedColumns = context.stateToRestore.pinnedColumns;
201
+
202
+ if (newPinnedColumns != null) {
203
+ apiRef.current.setState(mergeStateWithPinnedColumns(newPinnedColumns));
204
+ }
205
+
206
+ return params;
207
+ }, [apiRef]);
208
+ (0, _internals.useGridRegisterPreProcessor)(apiRef, 'scrollToIndexes', calculateScrollLeft);
209
+ (0, _internals.useGridRegisterPreProcessor)(apiRef, 'columnMenu', addColumnMenuButtons);
210
+ (0, _internals.useGridRegisterPreProcessor)(apiRef, 'canBeReordered', checkIfCanBeReordered);
211
+ (0, _internals.useGridRegisterPreProcessor)(apiRef, 'exportState', stateExportPreProcessing);
212
+ (0, _internals.useGridRegisterPreProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
213
+ apiRef.current.unstable_updateControlState({
214
+ stateId: 'pinnedColumns',
215
+ propModel: props.pinnedColumns,
216
+ propOnChange: props.onPinnedColumnsChange,
217
+ stateSelector: _gridColumnPinningSelector.gridPinnedColumnsSelector,
218
+ changeEvent: _xDataGrid.GridEvents.pinnedColumnsChange
219
+ });
220
+ const checkIfEnabled = React.useCallback(methodName => {
221
+ if (props.disableColumnPinning) {
222
+ throw new Error(`MUI: You cannot call \`apiRef.current.${methodName}\` when \`disableColumnPinning\` is true.`);
223
+ }
224
+ }, [props.disableColumnPinning]);
225
+ const pinColumn = React.useCallback((field, side) => {
226
+ checkIfEnabled('pinColumn');
227
+
228
+ if (apiRef.current.isColumnPinned(field) === side) {
229
+ return;
230
+ }
231
+
232
+ apiRef.current.setState(state => {
233
+ const otherSide = side === _gridColumnPinningInterface.GridPinnedPosition.right ? _gridColumnPinningInterface.GridPinnedPosition.left : _gridColumnPinningInterface.GridPinnedPosition.right;
234
+ const newPinnedColumns = (0, _extends2.default)({}, state.pinnedColumns, {
235
+ [side]: [...(state.pinnedColumns[side] || []), field],
236
+ [otherSide]: (state.pinnedColumns[otherSide] || []).filter(column => column !== field)
237
+ });
238
+ return (0, _extends2.default)({}, state, {
239
+ pinnedColumns: newPinnedColumns
240
+ });
241
+ });
242
+ apiRef.current.forceUpdate();
243
+ }, [apiRef, checkIfEnabled]);
244
+ const unpinColumn = React.useCallback(field => {
245
+ checkIfEnabled('unpinColumn');
246
+ apiRef.current.setState(state => {
247
+ const newPinnedColumns = (0, _extends2.default)({}, state.pinnedColumns, {
248
+ left: (state.pinnedColumns.left || []).filter(column => column !== field),
249
+ right: (state.pinnedColumns.right || []).filter(column => column !== field)
250
+ });
251
+ return (0, _extends2.default)({}, state, {
252
+ pinnedColumns: newPinnedColumns
253
+ });
254
+ });
255
+ apiRef.current.forceUpdate();
256
+ }, [apiRef, checkIfEnabled]);
257
+ const getPinnedColumns = React.useCallback(() => {
258
+ checkIfEnabled('getPinnedColumns');
259
+ return (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(apiRef.current.state);
260
+ }, [apiRef, checkIfEnabled]);
261
+ const setPinnedColumns = React.useCallback(newPinnedColumns => {
262
+ checkIfEnabled('setPinnedColumns');
263
+ apiRef.current.setState(mergeStateWithPinnedColumns(newPinnedColumns));
264
+ apiRef.current.forceUpdate();
265
+ }, [apiRef, checkIfEnabled]);
266
+ const isColumnPinned = React.useCallback(field => {
267
+ checkIfEnabled('isColumnPinned');
268
+ const leftPinnedColumns = pinnedColumns.left || [];
269
+
270
+ if (leftPinnedColumns.includes(field)) {
271
+ return _gridColumnPinningInterface.GridPinnedPosition.left;
272
+ }
273
+
274
+ const rightPinnedColumns = pinnedColumns.right || [];
275
+
276
+ if (rightPinnedColumns.includes(field)) {
277
+ return _gridColumnPinningInterface.GridPinnedPosition.right;
278
+ }
279
+
280
+ return false;
281
+ }, [pinnedColumns.left, pinnedColumns.right, checkIfEnabled]);
282
+ const columnPinningApi = {
283
+ pinColumn,
284
+ unpinColumn,
285
+ getPinnedColumns,
286
+ setPinnedColumns,
287
+ isColumnPinned
288
+ };
289
+ (0, _xDataGrid.useGridApiMethod)(apiRef, columnPinningApi, 'columnPinningApi');
290
+ React.useEffect(() => {
291
+ if (props.pinnedColumns) {
292
+ apiRef.current.setPinnedColumns(props.pinnedColumns);
293
+ }
294
+ }, [apiRef, props.pinnedColumns]);
295
+ };
296
+
297
+ exports.useGridColumnPinning = useGridColumnPinning;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useGridColumnPinningPreProcessors = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var React = _interopRequireWildcard(require("react"));
13
+
14
+ var _internals = require("@mui/x-data-grid/internals");
15
+
16
+ var _gridColumnPinningSelector = require("./gridColumnPinningSelector");
17
+
18
+ var _useGridColumnPinning = require("./useGridColumnPinning");
19
+
20
+ var _DataGridProVirtualScroller = require("../../../components/DataGridProVirtualScroller");
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ const useGridColumnPinningPreProcessors = (apiRef, props) => {
27
+ const {
28
+ disableColumnPinning,
29
+ pinnedColumns: pinnedColumnsProp,
30
+ initialState
31
+ } = props;
32
+ let pinnedColumns = (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(apiRef.current.state);
33
+
34
+ if (pinnedColumns == null) {
35
+ // Since the state is not ready yet lets use the initializer to get which
36
+ // columns should be pinned initially.
37
+ const initializedState = (0, _useGridColumnPinning.columnPinningStateInitializer)(apiRef.current.state, {
38
+ disableColumnPinning,
39
+ pinnedColumns: pinnedColumnsProp,
40
+ initialState
41
+ }, apiRef);
42
+ pinnedColumns = (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(initializedState);
43
+ }
44
+
45
+ const reorderPinnedColumns = React.useCallback(columnsState => {
46
+ if (columnsState.all.length === 0 || disableColumnPinning) {
47
+ return columnsState;
48
+ }
49
+
50
+ const [leftPinnedColumns, rightPinnedColumns] = (0, _DataGridProVirtualScroller.filterColumns)(pinnedColumns, columnsState.all);
51
+
52
+ if (leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
53
+ return columnsState;
54
+ }
55
+
56
+ const centerColumns = columnsState.all.filter(field => {
57
+ return !leftPinnedColumns.includes(field) && !rightPinnedColumns.includes(field);
58
+ });
59
+ return (0, _extends2.default)({}, columnsState, {
60
+ all: [...leftPinnedColumns, ...centerColumns, ...rightPinnedColumns]
61
+ });
62
+ }, [disableColumnPinning, pinnedColumns]);
63
+ (0, _internals.useGridRegisterPreProcessor)(apiRef, 'hydrateColumns', reorderPinnedColumns);
64
+ };
65
+
66
+ exports.useGridColumnPinningPreProcessors = useGridColumnPinningPreProcessors;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.gridColumnReorderSelector = exports.gridColumnReorderDragColSelector = void 0;
7
+
8
+ var _internals = require("@mui/x-data-grid/internals");
9
+
10
+ const gridColumnReorderSelector = state => state.columnReorder;
11
+
12
+ exports.gridColumnReorderSelector = gridColumnReorderSelector;
13
+ const gridColumnReorderDragColSelector = (0, _internals.createSelector)(gridColumnReorderSelector, columnReorder => columnReorder.dragCol);
14
+ exports.gridColumnReorderDragColSelector = gridColumnReorderDragColSelector;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _columnReorderSelector = require("./columnReorderSelector");
8
+
9
+ Object.keys(_columnReorderSelector).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _columnReorderSelector[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _columnReorderSelector[key];
16
+ }
17
+ });
18
+ });
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useGridColumnReorder = exports.columnReorderStateInitializer = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var React = _interopRequireWildcard(require("react"));
13
+
14
+ var _material = require("@mui/material");
15
+
16
+ var _xDataGrid = require("@mui/x-data-grid");
17
+
18
+ var _columnReorderSelector = require("./columnReorderSelector");
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ const CURSOR_MOVE_DIRECTION_LEFT = 'left';
25
+ const CURSOR_MOVE_DIRECTION_RIGHT = 'right';
26
+
27
+ const getCursorMoveDirectionX = (currentCoordinates, nextCoordinates) => {
28
+ return currentCoordinates.x <= nextCoordinates.x ? CURSOR_MOVE_DIRECTION_RIGHT : CURSOR_MOVE_DIRECTION_LEFT;
29
+ };
30
+
31
+ const hasCursorPositionChanged = (currentCoordinates, nextCoordinates) => currentCoordinates.x !== nextCoordinates.x || currentCoordinates.y !== nextCoordinates.y;
32
+
33
+ const useUtilityClasses = ownerState => {
34
+ const {
35
+ classes
36
+ } = ownerState;
37
+ const slots = {
38
+ columnHeaderDragging: ['columnHeader--dragging']
39
+ };
40
+ return (0, _material.unstable_composeClasses)(slots, _xDataGrid.getDataGridUtilityClass, classes);
41
+ };
42
+
43
+ const columnReorderStateInitializer = state => (0, _extends2.default)({}, state, {
44
+ columnReorder: {
45
+ dragCol: ''
46
+ }
47
+ });
48
+ /**
49
+ * Only available in DataGridPro
50
+ * @requires useGridColumns (method)
51
+ */
52
+
53
+
54
+ exports.columnReorderStateInitializer = columnReorderStateInitializer;
55
+
56
+ const useGridColumnReorder = (apiRef, props) => {
57
+ const logger = (0, _xDataGrid.useGridLogger)(apiRef, 'useGridColumnReorder');
58
+ const dragColNode = React.useRef(null);
59
+ const cursorPosition = React.useRef({
60
+ x: 0,
61
+ y: 0
62
+ });
63
+ const originColumnIndex = React.useRef(null);
64
+ const removeDnDStylesTimeout = React.useRef();
65
+ const ownerState = {
66
+ classes: props.classes
67
+ };
68
+ const classes = useUtilityClasses(ownerState);
69
+ React.useEffect(() => {
70
+ return () => {
71
+ clearTimeout(removeDnDStylesTimeout.current);
72
+ };
73
+ }, []);
74
+ const handleColumnHeaderDragStart = React.useCallback((params, event) => {
75
+ if (props.disableColumnReorder || params.colDef.disableReorder) {
76
+ return;
77
+ }
78
+
79
+ logger.debug(`Start dragging col ${params.field}`); // Prevent drag events propagation.
80
+ // For more information check here https://github.com/mui/mui-x/issues/2680.
81
+
82
+ event.stopPropagation();
83
+ dragColNode.current = event.currentTarget;
84
+ dragColNode.current.classList.add(classes.columnHeaderDragging);
85
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
86
+ columnReorder: (0, _extends2.default)({}, state.columnReorder, {
87
+ dragCol: params.field
88
+ })
89
+ }));
90
+ apiRef.current.forceUpdate();
91
+ removeDnDStylesTimeout.current = setTimeout(() => {
92
+ dragColNode.current.classList.remove(classes.columnHeaderDragging);
93
+ });
94
+ originColumnIndex.current = apiRef.current.getColumnIndex(params.field, false);
95
+ }, [props.disableColumnReorder, classes.columnHeaderDragging, logger, apiRef]);
96
+ const handleDragEnter = React.useCallback((params, event) => {
97
+ event.preventDefault(); // Prevent drag events propagation.
98
+ // For more information check here https://github.com/mui/mui-x/issues/2680.
99
+
100
+ event.stopPropagation();
101
+ }, []);
102
+ const handleDragOver = React.useCallback((params, event) => {
103
+ const dragColField = (0, _columnReorderSelector.gridColumnReorderDragColSelector)(apiRef);
104
+
105
+ if (!dragColField) {
106
+ return;
107
+ }
108
+
109
+ logger.debug(`Dragging over col ${params.field}`);
110
+ event.preventDefault(); // Prevent drag events propagation.
111
+ // For more information check here https://github.com/mui/mui-x/issues/2680.
112
+
113
+ event.stopPropagation();
114
+ const coordinates = {
115
+ x: event.clientX,
116
+ y: event.clientY
117
+ };
118
+
119
+ if (params.field !== dragColField && hasCursorPositionChanged(cursorPosition.current, coordinates)) {
120
+ const targetColIndex = apiRef.current.getColumnIndex(params.field, false);
121
+ const targetColVisibleIndex = apiRef.current.getColumnIndex(params.field, true);
122
+ const targetCol = apiRef.current.getColumn(params.field);
123
+ const dragColIndex = apiRef.current.getColumnIndex(dragColField, false);
124
+ const visibleColumns = apiRef.current.getVisibleColumns();
125
+ const cursorMoveDirectionX = getCursorMoveDirectionX(cursorPosition.current, coordinates);
126
+ const hasMovedLeft = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_LEFT && targetColIndex < dragColIndex;
127
+ const hasMovedRight = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_RIGHT && dragColIndex < targetColIndex;
128
+
129
+ if (hasMovedLeft || hasMovedRight) {
130
+ let canBeReordered;
131
+
132
+ if (!targetCol.disableReorder) {
133
+ canBeReordered = true;
134
+ } else if (hasMovedLeft) {
135
+ canBeReordered = targetColIndex > 0 && !visibleColumns[targetColIndex - 1].disableReorder;
136
+ } else {
137
+ canBeReordered = targetColIndex < visibleColumns.length - 1 && !visibleColumns[targetColIndex + 1].disableReorder;
138
+ }
139
+
140
+ const canBeReorderedProcessed = apiRef.current.unstable_applyPreProcessors('canBeReordered', canBeReordered, {
141
+ targetIndex: targetColVisibleIndex
142
+ });
143
+
144
+ if (canBeReorderedProcessed) {
145
+ apiRef.current.setColumnIndex(dragColField, targetColIndex);
146
+ }
147
+ }
148
+
149
+ cursorPosition.current = coordinates;
150
+ }
151
+ }, [apiRef, logger]);
152
+ const handleDragEnd = React.useCallback((params, event) => {
153
+ const dragColField = (0, _columnReorderSelector.gridColumnReorderDragColSelector)(apiRef);
154
+
155
+ if (props.disableColumnReorder || !dragColField) {
156
+ return;
157
+ }
158
+
159
+ logger.debug('End dragging col');
160
+ event.preventDefault(); // Prevent drag events propagation.
161
+ // For more information check here https://github.com/mui/mui-x/issues/2680.
162
+
163
+ event.stopPropagation();
164
+ clearTimeout(removeDnDStylesTimeout.current);
165
+ dragColNode.current = null; // Check if the column was dropped outside the grid.
166
+
167
+ if (event.dataTransfer.dropEffect === 'none') {
168
+ // Accessing params.field may contain the wrong field as header elements are reused
169
+ apiRef.current.setColumnIndex(dragColField, originColumnIndex.current);
170
+ originColumnIndex.current = null;
171
+ }
172
+
173
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
174
+ columnReorder: (0, _extends2.default)({}, state.columnReorder, {
175
+ dragCol: ''
176
+ })
177
+ }));
178
+ apiRef.current.forceUpdate();
179
+ }, [props.disableColumnReorder, logger, apiRef]);
180
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragStart, handleColumnHeaderDragStart);
181
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragEnter, handleDragEnter);
182
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragOver, handleDragOver);
183
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragEnd, handleDragEnd);
184
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.cellDragEnter, handleDragEnter);
185
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.cellDragOver, handleDragOver);
186
+ };
187
+
188
+ exports.useGridColumnReorder = useGridColumnReorder;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.gridResizingColumnFieldSelector = exports.gridColumnResizeSelector = void 0;
7
+
8
+ var _internals = require("@mui/x-data-grid/internals");
9
+
10
+ const gridColumnResizeSelector = state => state.columnResize;
11
+
12
+ exports.gridColumnResizeSelector = gridColumnResizeSelector;
13
+ const gridResizingColumnFieldSelector = (0, _internals.createSelector)(gridColumnResizeSelector, columnResize => columnResize.resizingColumnField);
14
+ exports.gridResizingColumnFieldSelector = gridResizingColumnFieldSelector;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _columnResizeSelector = require("./columnResizeSelector");
8
+
9
+ Object.keys(_columnResizeSelector).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _columnResizeSelector[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _columnResizeSelector[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _columnResizeState = require("./columnResizeState");
21
+
22
+ Object.keys(_columnResizeState).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _columnResizeState[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _columnResizeState[key];
29
+ }
30
+ });
31
+ });