@mui/x-data-grid-pro 7.28.3 → 7.29.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 (308) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/DataGridPro/DataGrid.js +2 -9
  3. package/DataGridPro/DataGridPro.js +232 -238
  4. package/DataGridPro/index.js +3 -39
  5. package/DataGridPro/package.json +2 -2
  6. package/DataGridPro/useDataGridProComponent.js +91 -99
  7. package/DataGridPro/useDataGridProProps.js +17 -26
  8. package/components/GridColumnHeaderCollapseIcon.js +0 -1
  9. package/components/GridColumnHeaders.js +39 -46
  10. package/components/GridColumnMenuPinningItem.js +39 -46
  11. package/components/GridDataSourceTreeDataGroupingCell.js +30 -38
  12. package/components/GridDetailPanel.js +14 -18
  13. package/components/GridDetailPanelToggleCell.js +35 -42
  14. package/components/GridDetailPanels.js +19 -25
  15. package/components/GridPinnedRows.js +12 -20
  16. package/components/GridProColumnMenu.js +11 -19
  17. package/components/GridRowReorderCell.js +36 -45
  18. package/components/GridTreeDataGroupingCell.js +37 -44
  19. package/components/headerFiltering/GridHeaderFilterCell.js +71 -78
  20. package/components/headerFiltering/GridHeaderFilterClearButton.js +9 -16
  21. package/components/headerFiltering/GridHeaderFilterMenu.js +36 -43
  22. package/components/headerFiltering/GridHeaderFilterMenuContainer.js +41 -48
  23. package/components/headerFiltering/index.js +3 -38
  24. package/components/index.js +7 -71
  25. package/components/package.json +2 -2
  26. package/components/reexports.js +1 -24
  27. package/constants/dataGridProDefaultSlotsComponents.js +16 -23
  28. package/hooks/features/columnHeaders/useGridColumnHeaders.js +30 -39
  29. package/hooks/features/columnPinning/gridColumnPinningInterface.js +1 -5
  30. package/hooks/features/columnPinning/index.js +1 -16
  31. package/hooks/features/columnPinning/useGridColumnPinning.js +32 -42
  32. package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +10 -19
  33. package/hooks/features/columnReorder/columnReorderInterfaces.js +1 -5
  34. package/hooks/features/columnReorder/columnReorderSelector.js +3 -10
  35. package/hooks/features/columnReorder/index.js +2 -16
  36. package/hooks/features/columnReorder/useGridColumnReorder.js +25 -35
  37. package/hooks/features/dataSource/cache.js +3 -11
  38. package/hooks/features/dataSource/gridDataSourceSelector.js +10 -18
  39. package/hooks/features/dataSource/interfaces.js +1 -5
  40. package/hooks/features/dataSource/useGridDataSource.js +34 -44
  41. package/hooks/features/dataSource/utils.js +9 -17
  42. package/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -5
  43. package/hooks/features/detailPanel/gridDetailPanelSelector.js +5 -14
  44. package/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +14 -27
  45. package/hooks/features/detailPanel/index.js +3 -53
  46. package/hooks/features/detailPanel/useGridDetailPanel.js +39 -48
  47. package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +18 -27
  48. package/hooks/features/index.js +9 -99
  49. package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +18 -27
  50. package/hooks/features/lazyLoader/useGridLazyLoader.js +14 -22
  51. package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +13 -22
  52. package/hooks/features/rowPinning/gridRowPinningInterface.js +1 -5
  53. package/hooks/features/rowPinning/gridRowPinningSelector.js +1 -18
  54. package/hooks/features/rowPinning/index.js +1 -16
  55. package/hooks/features/rowPinning/useGridRowPinning.js +13 -23
  56. package/hooks/features/rowPinning/useGridRowPinningPreProcessors.d.ts +1 -1
  57. package/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +24 -34
  58. package/hooks/features/rowReorder/gridRowReorderColDef.js +5 -12
  59. package/hooks/features/rowReorder/index.js +1 -16
  60. package/hooks/features/rowReorder/useGridRowReorder.js +20 -29
  61. package/hooks/features/rowReorder/useGridRowReorderPreProcessors.js +12 -21
  62. package/hooks/features/rows/index.js +1 -16
  63. package/hooks/features/rows/useGridRowAriaAttributes.js +14 -22
  64. package/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.js +37 -46
  65. package/hooks/features/serverSideTreeData/utils.js +6 -13
  66. package/hooks/features/treeData/gridTreeDataGroupColDef.js +9 -20
  67. package/hooks/features/treeData/gridTreeDataUtils.js +6 -12
  68. package/hooks/features/treeData/index.js +1 -12
  69. package/hooks/features/treeData/useGridTreeData.js +7 -15
  70. package/hooks/features/treeData/useGridTreeDataPreProcessors.js +37 -46
  71. package/hooks/index.js +1 -16
  72. package/hooks/package.json +2 -2
  73. package/hooks/utils/useGridApiContext.js +2 -8
  74. package/hooks/utils/useGridApiRef.js +2 -8
  75. package/hooks/utils/useGridAriaAttributes.js +8 -16
  76. package/hooks/utils/useGridPrivateApiContext.js +2 -8
  77. package/hooks/utils/useGridRootProps.js +2 -8
  78. package/index.js +19 -210
  79. package/internals/index.js +34 -301
  80. package/internals/package.json +2 -2
  81. package/internals/propValidation.js +2 -8
  82. package/locales/package.json +6 -0
  83. package/material/icons.js +7 -14
  84. package/material/index.js +6 -13
  85. package/material/package.json +2 -2
  86. package/models/dataGridProProps.js +1 -5
  87. package/models/gridApiPro.js +1 -5
  88. package/models/gridFetchRowsParams.js +1 -5
  89. package/models/gridGroupingColDefOverride.js +1 -5
  90. package/models/gridProIconSlotsComponent.js +1 -5
  91. package/models/gridProSlotProps.js +1 -5
  92. package/models/gridProSlotsComponent.js +1 -5
  93. package/models/gridRowOrderChangeParams.js +1 -5
  94. package/models/gridRowScrollEndParams.js +1 -5
  95. package/models/gridStatePro.js +1 -5
  96. package/models/index.js +8 -82
  97. package/models/package.json +2 -2
  98. package/modern/DataGridPro/DataGridPro.js +2 -1
  99. package/modern/components/GridDetailPanel.js +2 -0
  100. package/modern/components/GridDetailPanels.js +2 -0
  101. package/modern/components/headerFiltering/GridHeaderFilterMenu.js +2 -2
  102. package/modern/hooks/features/detailPanel/useGridDetailPanel.js +3 -2
  103. package/modern/index.js +1 -1
  104. package/modern/utils/releaseInfo.js +1 -1
  105. package/{esm → node}/DataGridPro/DataGrid.js +9 -2
  106. package/{esm → node}/DataGridPro/DataGridPro.js +239 -231
  107. package/node/DataGridPro/index.js +39 -0
  108. package/node/DataGridPro/useDataGridProComponent.js +111 -0
  109. package/node/DataGridPro/useDataGridProProps.js +61 -0
  110. package/node/components/GridColumnHeaderCollapseIcon.js +1 -0
  111. package/node/components/GridColumnHeaders.js +99 -0
  112. package/node/components/GridColumnMenuPinningItem.js +97 -0
  113. package/node/components/GridDataSourceTreeDataGroupingCell.js +118 -0
  114. package/{esm → node}/components/GridDetailPanel.js +20 -13
  115. package/node/components/GridDetailPanelToggleCell.js +128 -0
  116. package/node/components/GridDetailPanels.js +69 -0
  117. package/node/components/GridPinnedRows.js +48 -0
  118. package/node/components/GridProColumnMenu.js +29 -0
  119. package/{esm → node}/components/GridRowReorderCell.js +45 -36
  120. package/{esm → node}/components/GridTreeDataGroupingCell.js +44 -37
  121. package/{esm → node}/components/headerFiltering/GridHeaderFilterCell.js +78 -71
  122. package/node/components/headerFiltering/GridHeaderFilterClearButton.js +28 -0
  123. package/node/components/headerFiltering/GridHeaderFilterMenu.js +95 -0
  124. package/node/components/headerFiltering/GridHeaderFilterMenuContainer.js +106 -0
  125. package/node/components/headerFiltering/index.js +38 -0
  126. package/node/components/index.js +71 -0
  127. package/node/components/reexports.js +24 -0
  128. package/node/constants/dataGridProDefaultSlotsComponents.js +24 -0
  129. package/{esm → node}/hooks/features/columnHeaders/useGridColumnHeaders.js +39 -30
  130. package/node/hooks/features/columnPinning/gridColumnPinningInterface.js +5 -0
  131. package/node/hooks/features/columnPinning/index.js +16 -0
  132. package/{esm → node}/hooks/features/columnPinning/useGridColumnPinning.js +42 -32
  133. package/{esm → node}/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +19 -10
  134. package/node/hooks/features/columnReorder/columnReorderInterfaces.js +5 -0
  135. package/node/hooks/features/columnReorder/columnReorderSelector.js +10 -0
  136. package/node/hooks/features/columnReorder/index.js +16 -0
  137. package/{esm → node}/hooks/features/columnReorder/useGridColumnReorder.js +35 -25
  138. package/{esm → node}/hooks/features/dataSource/cache.js +11 -3
  139. package/node/hooks/features/dataSource/gridDataSourceSelector.js +32 -0
  140. package/node/hooks/features/dataSource/interfaces.js +5 -0
  141. package/{esm → node}/hooks/features/dataSource/useGridDataSource.js +44 -34
  142. package/{esm → node}/hooks/features/dataSource/utils.js +17 -9
  143. package/node/hooks/features/detailPanel/gridDetailPanelInterface.js +5 -0
  144. package/node/hooks/features/detailPanel/gridDetailPanelSelector.js +21 -0
  145. package/node/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +47 -0
  146. package/node/hooks/features/detailPanel/index.js +53 -0
  147. package/{esm → node}/hooks/features/detailPanel/useGridDetailPanel.js +49 -38
  148. package/node/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +52 -0
  149. package/node/hooks/features/index.js +99 -0
  150. package/{esm → node}/hooks/features/infiniteLoader/useGridInfiniteLoader.js +27 -18
  151. package/{esm → node}/hooks/features/lazyLoader/useGridLazyLoader.js +22 -14
  152. package/node/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +43 -0
  153. package/node/hooks/features/rowPinning/gridRowPinningInterface.js +5 -0
  154. package/node/hooks/features/rowPinning/gridRowPinningSelector.js +18 -0
  155. package/node/hooks/features/rowPinning/index.js +16 -0
  156. package/node/hooks/features/rowPinning/useGridRowPinning.js +62 -0
  157. package/{esm → node}/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +34 -24
  158. package/node/hooks/features/rowReorder/gridRowReorderColDef.js +27 -0
  159. package/node/hooks/features/rowReorder/index.js +16 -0
  160. package/{esm → node}/hooks/features/rowReorder/useGridRowReorder.js +29 -20
  161. package/{esm → node}/hooks/features/rowReorder/useGridRowReorderPreProcessors.js +21 -12
  162. package/node/hooks/features/rows/index.js +16 -0
  163. package/node/hooks/features/rows/useGridRowAriaAttributes.js +45 -0
  164. package/{esm → node}/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.js +46 -37
  165. package/node/hooks/features/serverSideTreeData/utils.js +27 -0
  166. package/node/hooks/features/treeData/gridTreeDataGroupColDef.js +38 -0
  167. package/{esm → node}/hooks/features/treeData/gridTreeDataUtils.js +12 -6
  168. package/node/hooks/features/treeData/index.js +12 -0
  169. package/node/hooks/features/treeData/useGridTreeData.js +30 -0
  170. package/{esm → node}/hooks/features/treeData/useGridTreeDataPreProcessors.js +46 -37
  171. package/node/hooks/index.js +16 -0
  172. package/node/hooks/utils/useGridApiContext.js +8 -0
  173. package/node/hooks/utils/useGridApiRef.js +8 -0
  174. package/node/hooks/utils/useGridAriaAttributes.js +19 -0
  175. package/node/hooks/utils/useGridPrivateApiContext.js +8 -0
  176. package/node/hooks/utils/useGridRootProps.js +8 -0
  177. package/node/index.js +220 -0
  178. package/node/internals/index.js +302 -0
  179. package/node/internals/propValidation.js +8 -0
  180. package/node/material/icons.js +24 -0
  181. package/node/material/index.js +15 -0
  182. package/node/models/dataGridProProps.js +5 -0
  183. package/node/models/gridApiPro.js +5 -0
  184. package/node/models/gridFetchRowsParams.js +5 -0
  185. package/node/models/gridGroupingColDefOverride.js +5 -0
  186. package/node/models/gridProIconSlotsComponent.js +5 -0
  187. package/node/models/gridProSlotProps.js +5 -0
  188. package/node/models/gridProSlotsComponent.js +5 -0
  189. package/node/models/gridRowOrderChangeParams.js +5 -0
  190. package/node/models/gridRowScrollEndParams.js +5 -0
  191. package/node/models/gridStatePro.js +5 -0
  192. package/node/models/index.js +82 -0
  193. package/node/themeAugmentation/index.js +27 -0
  194. package/node/themeAugmentation/overrides.js +5 -0
  195. package/node/themeAugmentation/props.js +5 -0
  196. package/node/typeOverloads/index.js +16 -0
  197. package/node/typeOverloads/modules.js +5 -0
  198. package/node/typeOverloads/reexports.js +26 -0
  199. package/node/utils/index.js +16 -0
  200. package/node/utils/releaseInfo.js +20 -0
  201. package/{esm → node}/utils/tree/createRowTree.js +14 -7
  202. package/node/utils/tree/index.js +12 -0
  203. package/{esm → node}/utils/tree/insertDataRowInTree.js +18 -11
  204. package/node/utils/tree/models.js +5 -0
  205. package/{esm → node}/utils/tree/removeDataRowFromTree.js +16 -9
  206. package/{esm → node}/utils/tree/sortRowTree.js +12 -5
  207. package/{esm → node}/utils/tree/updateRowTree.js +26 -18
  208. package/{esm → node}/utils/tree/utils.js +34 -18
  209. package/package.json +9 -9
  210. package/themeAugmentation/index.js +4 -27
  211. package/themeAugmentation/overrides.js +1 -5
  212. package/themeAugmentation/package.json +2 -2
  213. package/themeAugmentation/props.js +1 -5
  214. package/typeOverloads/index.js +1 -16
  215. package/typeOverloads/modules.js +1 -5
  216. package/typeOverloads/package.json +2 -2
  217. package/typeOverloads/reexports.js +14 -25
  218. package/utils/index.js +1 -16
  219. package/utils/package.json +2 -2
  220. package/utils/releaseInfo.js +5 -12
  221. package/utils/tree/createRowTree.js +7 -14
  222. package/utils/tree/index.js +1 -12
  223. package/utils/tree/insertDataRowInTree.js +11 -18
  224. package/utils/tree/models.js +1 -5
  225. package/utils/tree/removeDataRowFromTree.js +9 -16
  226. package/utils/tree/sortRowTree.js +5 -12
  227. package/utils/tree/updateRowTree.js +18 -26
  228. package/utils/tree/utils.js +18 -34
  229. package/esm/DataGridPro/index.js +0 -3
  230. package/esm/DataGridPro/useDataGridProComponent.js +0 -103
  231. package/esm/DataGridPro/useDataGridProProps.js +0 -52
  232. package/esm/components/GridColumnHeaderCollapseIcon.js +0 -0
  233. package/esm/components/GridColumnHeaders.js +0 -92
  234. package/esm/components/GridColumnMenuPinningItem.js +0 -90
  235. package/esm/components/GridDataSourceTreeDataGroupingCell.js +0 -110
  236. package/esm/components/GridDetailPanelToggleCell.js +0 -121
  237. package/esm/components/GridDetailPanels.js +0 -60
  238. package/esm/components/GridPinnedRows.js +0 -40
  239. package/esm/components/GridProColumnMenu.js +0 -21
  240. package/esm/components/headerFiltering/GridHeaderFilterClearButton.js +0 -21
  241. package/esm/components/headerFiltering/GridHeaderFilterMenu.js +0 -88
  242. package/esm/components/headerFiltering/GridHeaderFilterMenuContainer.js +0 -99
  243. package/esm/components/headerFiltering/index.js +0 -3
  244. package/esm/components/index.js +0 -7
  245. package/esm/components/reexports.js +0 -1
  246. package/esm/constants/dataGridProDefaultSlotsComponents.js +0 -17
  247. package/esm/hooks/features/columnPinning/gridColumnPinningInterface.js +0 -1
  248. package/esm/hooks/features/columnPinning/index.js +0 -1
  249. package/esm/hooks/features/columnReorder/columnReorderInterfaces.js +0 -1
  250. package/esm/hooks/features/columnReorder/columnReorderSelector.js +0 -3
  251. package/esm/hooks/features/columnReorder/index.js +0 -2
  252. package/esm/hooks/features/dataSource/gridDataSourceSelector.js +0 -24
  253. package/esm/hooks/features/dataSource/interfaces.js +0 -1
  254. package/esm/hooks/features/detailPanel/gridDetailPanelInterface.js +0 -1
  255. package/esm/hooks/features/detailPanel/gridDetailPanelSelector.js +0 -12
  256. package/esm/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +0 -34
  257. package/esm/hooks/features/detailPanel/index.js +0 -3
  258. package/esm/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +0 -43
  259. package/esm/hooks/features/index.js +0 -9
  260. package/esm/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +0 -34
  261. package/esm/hooks/features/rowPinning/gridRowPinningInterface.js +0 -1
  262. package/esm/hooks/features/rowPinning/gridRowPinningSelector.js +0 -1
  263. package/esm/hooks/features/rowPinning/index.js +0 -1
  264. package/esm/hooks/features/rowPinning/useGridRowPinning.js +0 -52
  265. package/esm/hooks/features/rowReorder/gridRowReorderColDef.js +0 -20
  266. package/esm/hooks/features/rowReorder/index.js +0 -1
  267. package/esm/hooks/features/rows/index.js +0 -1
  268. package/esm/hooks/features/rows/useGridRowAriaAttributes.js +0 -37
  269. package/esm/hooks/features/serverSideTreeData/utils.js +0 -20
  270. package/esm/hooks/features/treeData/gridTreeDataGroupColDef.js +0 -27
  271. package/esm/hooks/features/treeData/index.js +0 -1
  272. package/esm/hooks/features/treeData/useGridTreeData.js +0 -22
  273. package/esm/hooks/index.js +0 -1
  274. package/esm/hooks/utils/useGridApiContext.js +0 -2
  275. package/esm/hooks/utils/useGridApiRef.js +0 -2
  276. package/esm/hooks/utils/useGridAriaAttributes.js +0 -11
  277. package/esm/hooks/utils/useGridPrivateApiContext.js +0 -2
  278. package/esm/hooks/utils/useGridRootProps.js +0 -2
  279. package/esm/index.js +0 -22
  280. package/esm/internals/index.js +0 -35
  281. package/esm/internals/propValidation.js +0 -2
  282. package/esm/material/icons.js +0 -17
  283. package/esm/material/index.js +0 -8
  284. package/esm/models/dataGridProProps.js +0 -1
  285. package/esm/models/gridApiPro.js +0 -1
  286. package/esm/models/gridFetchRowsParams.js +0 -1
  287. package/esm/models/gridGroupingColDefOverride.js +0 -1
  288. package/esm/models/gridProIconSlotsComponent.js +0 -1
  289. package/esm/models/gridProSlotProps.js +0 -1
  290. package/esm/models/gridProSlotsComponent.js +0 -1
  291. package/esm/models/gridRowOrderChangeParams.js +0 -1
  292. package/esm/models/gridRowScrollEndParams.js +0 -1
  293. package/esm/models/gridStatePro.js +0 -1
  294. package/esm/models/index.js +0 -8
  295. package/esm/themeAugmentation/index.js +0 -4
  296. package/esm/themeAugmentation/overrides.js +0 -1
  297. package/esm/themeAugmentation/props.js +0 -1
  298. package/esm/typeOverloads/index.js +0 -1
  299. package/esm/typeOverloads/modules.js +0 -1
  300. package/esm/typeOverloads/reexports.js +0 -15
  301. package/esm/utils/index.js +0 -1
  302. package/esm/utils/releaseInfo.js +0 -13
  303. package/esm/utils/tree/index.js +0 -1
  304. package/esm/utils/tree/models.js +0 -1
  305. /package/{locales.d.ts → locales/index.d.ts} +0 -0
  306. /package/{esm/locales.js → locales/index.js} +0 -0
  307. /package/modern/{locales.js → locales/index.js} +0 -0
  308. /package/{locales.js → node/locales/index.js} +0 -0
@@ -1,12 +1,20 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import useLazyRef from '@mui/utils/useLazyRef';
4
- import { useGridApiEventHandler, gridRowsLoadingSelector, useGridApiMethod, useGridSelector } from '@mui/x-data-grid';
5
- import { gridRowGroupsToFetchSelector } from '@mui/x-data-grid/internals';
6
- import { unstable_debounce as debounce } from '@mui/utils';
7
- import { gridGetRowsParamsSelector, gridDataSourceErrorsSelector } from "./gridDataSourceSelector.js";
8
- import { NestedDataManager, RequestStatus, runIfServerMode } from "./utils.js";
9
- import { GridDataSourceCacheDefault } from "./cache.js";
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.useGridDataSource = exports.dataSourceStateInitializer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _useLazyRef = _interopRequireDefault(require("@mui/utils/useLazyRef"));
12
+ var _xDataGrid = require("@mui/x-data-grid");
13
+ var _internals = require("@mui/x-data-grid/internals");
14
+ var _utils = require("@mui/utils");
15
+ var _gridDataSourceSelector = require("./gridDataSourceSelector");
16
+ var _utils2 = require("./utils");
17
+ var _cache = require("./cache");
10
18
  const INITIAL_STATE = {
11
19
  loading: {},
12
20
  errors: {}
@@ -20,16 +28,17 @@ function getCache(cacheProp) {
20
28
  if (cacheProp === null) {
21
29
  return noopCache;
22
30
  }
23
- return cacheProp ?? new GridDataSourceCacheDefault({});
31
+ return cacheProp ?? new _cache.GridDataSourceCacheDefault({});
24
32
  }
25
- export const dataSourceStateInitializer = state => {
26
- return _extends({}, state, {
33
+ const dataSourceStateInitializer = state => {
34
+ return (0, _extends2.default)({}, state, {
27
35
  dataSource: INITIAL_STATE
28
36
  });
29
37
  };
30
- export const useGridDataSource = (apiRef, props) => {
31
- const nestedDataManager = useLazyRef(() => new NestedDataManager(apiRef)).current;
32
- const groupsToAutoFetch = useGridSelector(apiRef, gridRowGroupsToFetchSelector);
38
+ exports.dataSourceStateInitializer = dataSourceStateInitializer;
39
+ const useGridDataSource = (apiRef, props) => {
40
+ const nestedDataManager = (0, _useLazyRef.default)(() => new _utils2.NestedDataManager(apiRef)).current;
41
+ const groupsToAutoFetch = (0, _xDataGrid.useGridSelector)(apiRef, _internals.gridRowGroupsToFetchSelector);
33
42
  const scheduledGroups = React.useRef(0);
34
43
  const onError = props.unstable_onDataSourceError;
35
44
  const [cache, setCache] = React.useState(() => getCache(props.unstable_dataSourceCache));
@@ -48,7 +57,7 @@ export const useGridDataSource = (apiRef, props) => {
48
57
  if (dataSourceState !== INITIAL_STATE) {
49
58
  apiRef.current.resetDataSourceState();
50
59
  }
51
- const fetchParams = _extends({}, gridGetRowsParamsSelector(apiRef), apiRef.current.unstable_applyPipeProcessors('getRowsParams', {}));
60
+ const fetchParams = (0, _extends2.default)({}, (0, _gridDataSourceSelector.gridGetRowsParamsSelector)(apiRef), apiRef.current.unstable_applyPipeProcessors('getRowsParams', {}));
52
61
  const cachedData = apiRef.current.unstable_dataSource.cache.get(fetchParams);
53
62
  if (cachedData !== undefined) {
54
63
  const rows = cachedData.rows;
@@ -58,7 +67,7 @@ export const useGridDataSource = (apiRef, props) => {
58
67
  }
59
68
  return;
60
69
  }
61
- const isLoading = gridRowsLoadingSelector(apiRef);
70
+ const isLoading = (0, _xDataGrid.gridRowsLoadingSelector)(apiRef);
62
71
  if (!isLoading) {
63
72
  apiRef.current.setLoading(true);
64
73
  }
@@ -92,7 +101,7 @@ export const useGridDataSource = (apiRef, props) => {
92
101
  nestedDataManager.clearPendingRequest(id);
93
102
  return;
94
103
  }
95
- const fetchParams = _extends({}, gridGetRowsParamsSelector(apiRef), pipedParams, {
104
+ const fetchParams = (0, _extends2.default)({}, (0, _gridDataSourceSelector.gridGetRowsParamsSelector)(apiRef), pipedParams, {
96
105
  groupKeys: rowNode.path
97
106
  });
98
107
  const cachedData = apiRef.current.unstable_dataSource.cache.get(fetchParams);
@@ -107,7 +116,7 @@ export const useGridDataSource = (apiRef, props) => {
107
116
  apiRef.current.unstable_dataSource.setChildrenLoading(id, false);
108
117
  return;
109
118
  }
110
- const existingError = gridDataSourceErrorsSelector(apiRef)[id] ?? null;
119
+ const existingError = (0, _gridDataSourceSelector.gridDataSourceErrorsSelector)(apiRef)[id] ?? null;
111
120
  if (existingError) {
112
121
  apiRef.current.unstable_dataSource.setChildrenFetchError(id, null);
113
122
  }
@@ -118,7 +127,7 @@ export const useGridDataSource = (apiRef, props) => {
118
127
  nestedDataManager.clearPendingRequest(id);
119
128
  return;
120
129
  }
121
- if (nestedDataManager.getRequestStatus(id) === RequestStatus.UNKNOWN) {
130
+ if (nestedDataManager.getRequestStatus(id) === _utils2.RequestStatus.UNKNOWN) {
122
131
  apiRef.current.unstable_dataSource.setChildrenLoading(id, false);
123
132
  return;
124
133
  }
@@ -143,14 +152,14 @@ export const useGridDataSource = (apiRef, props) => {
143
152
  if (!state.dataSource.loading[parentId] && isLoading === false) {
144
153
  return state;
145
154
  }
146
- const newLoadingState = _extends({}, state.dataSource.loading);
155
+ const newLoadingState = (0, _extends2.default)({}, state.dataSource.loading);
147
156
  if (isLoading === false) {
148
157
  delete newLoadingState[parentId];
149
158
  } else {
150
159
  newLoadingState[parentId] = isLoading;
151
160
  }
152
- return _extends({}, state, {
153
- dataSource: _extends({}, state.dataSource, {
161
+ return (0, _extends2.default)({}, state, {
162
+ dataSource: (0, _extends2.default)({}, state.dataSource, {
154
163
  loading: newLoadingState
155
164
  })
156
165
  });
@@ -158,14 +167,14 @@ export const useGridDataSource = (apiRef, props) => {
158
167
  }, [apiRef]);
159
168
  const setChildrenFetchError = React.useCallback((parentId, error) => {
160
169
  apiRef.current.setState(state => {
161
- const newErrorsState = _extends({}, state.dataSource.errors);
170
+ const newErrorsState = (0, _extends2.default)({}, state.dataSource.errors);
162
171
  if (error === null && newErrorsState[parentId] !== undefined) {
163
172
  delete newErrorsState[parentId];
164
173
  } else {
165
174
  newErrorsState[parentId] = error;
166
175
  }
167
- return _extends({}, state, {
168
- dataSource: _extends({}, state.dataSource, {
176
+ return (0, _extends2.default)({}, state, {
177
+ dataSource: (0, _extends2.default)({}, state.dataSource, {
169
178
  errors: newErrorsState
170
179
  })
171
180
  });
@@ -173,12 +182,12 @@ export const useGridDataSource = (apiRef, props) => {
173
182
  }, [apiRef]);
174
183
  const resetDataSourceState = React.useCallback(() => {
175
184
  apiRef.current.setState(state => {
176
- return _extends({}, state, {
185
+ return (0, _extends2.default)({}, state, {
177
186
  dataSource: INITIAL_STATE
178
187
  });
179
188
  });
180
189
  }, [apiRef]);
181
- const debouncedFetchRows = React.useMemo(() => debounce(fetchRows, 0), [fetchRows]);
190
+ const debouncedFetchRows = React.useMemo(() => (0, _utils.unstable_debounce)(fetchRows, 0), [fetchRows]);
182
191
  const dataSourceApi = {
183
192
  unstable_dataSource: {
184
193
  setChildrenLoading,
@@ -191,11 +200,11 @@ export const useGridDataSource = (apiRef, props) => {
191
200
  fetchRowChildren,
192
201
  resetDataSourceState
193
202
  };
194
- useGridApiMethod(apiRef, dataSourceApi, 'public');
195
- useGridApiMethod(apiRef, dataSourcePrivateApi, 'private');
196
- useGridApiEventHandler(apiRef, 'sortModelChange', runIfServerMode(props.sortingMode, debouncedFetchRows));
197
- useGridApiEventHandler(apiRef, 'filterModelChange', runIfServerMode(props.filterMode, debouncedFetchRows));
198
- useGridApiEventHandler(apiRef, 'paginationModelChange', runIfServerMode(props.paginationMode, debouncedFetchRows));
203
+ (0, _xDataGrid.useGridApiMethod)(apiRef, dataSourceApi, 'public');
204
+ (0, _xDataGrid.useGridApiMethod)(apiRef, dataSourcePrivateApi, 'private');
205
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, 'sortModelChange', (0, _utils2.runIfServerMode)(props.sortingMode, debouncedFetchRows));
206
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, 'filterModelChange', (0, _utils2.runIfServerMode)(props.filterMode, debouncedFetchRows));
207
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, 'paginationModelChange', (0, _utils2.runIfServerMode)(props.paginationMode, debouncedFetchRows));
199
208
  const isFirstRender = React.useRef(true);
200
209
  React.useEffect(() => {
201
210
  if (isFirstRender.current) {
@@ -218,4 +227,5 @@ export const useGridDataSource = (apiRef, props) => {
218
227
  scheduledGroups.current = groupsToAutoFetch.length;
219
228
  }
220
229
  }, [apiRef, nestedDataManager, groupsToAutoFetch]);
221
- };
230
+ };
231
+ exports.useGridDataSource = useGridDataSource;
@@ -1,24 +1,31 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.runIfServerMode = exports.RequestStatus = exports.NestedDataManager = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
2
9
  const MAX_CONCURRENT_REQUESTS = Infinity;
3
- export const runIfServerMode = (modeProp, fn) => () => {
10
+ const runIfServerMode = (modeProp, fn) => () => {
4
11
  if (modeProp === 'server') {
5
12
  fn();
6
13
  }
7
14
  };
8
- export let RequestStatus = /*#__PURE__*/function (RequestStatus) {
15
+ exports.runIfServerMode = runIfServerMode;
16
+ let RequestStatus = exports.RequestStatus = /*#__PURE__*/function (RequestStatus) {
9
17
  RequestStatus[RequestStatus["QUEUED"] = 0] = "QUEUED";
10
18
  RequestStatus[RequestStatus["PENDING"] = 1] = "PENDING";
11
19
  RequestStatus[RequestStatus["SETTLED"] = 2] = "SETTLED";
12
20
  RequestStatus[RequestStatus["UNKNOWN"] = 3] = "UNKNOWN";
13
21
  return RequestStatus;
14
22
  }({});
15
-
16
23
  /**
17
24
  * Fetches row children from the server with option to limit the number of concurrent requests
18
25
  * Determines the status of a request based on the enum `RequestStatus`
19
26
  * Uses `GridRowId` to uniquely identify a request
20
27
  */
21
- export class NestedDataManager {
28
+ class NestedDataManager {
22
29
  constructor(privateApiRef, maxConcurrentRequests = MAX_CONCURRENT_REQUESTS) {
23
30
  this.pendingRequests = new Set();
24
31
  this.queuedRequests = new Set();
@@ -47,9 +54,9 @@ export class NestedDataManager {
47
54
  this.queuedRequests.add(id);
48
55
  loadingIds[id] = true;
49
56
  });
50
- this.api.setState(state => _extends({}, state, {
51
- dataSource: _extends({}, state.dataSource, {
52
- loading: _extends({}, state.dataSource.loading, loadingIds)
57
+ this.api.setState(state => (0, _extends2.default)({}, state, {
58
+ dataSource: (0, _extends2.default)({}, state.dataSource, {
59
+ loading: (0, _extends2.default)({}, state.dataSource.loading, loadingIds)
53
60
  })
54
61
  }));
55
62
  this.processQueue();
@@ -84,4 +91,5 @@ export class NestedDataManager {
84
91
  this.api = privateApiRef.current;
85
92
  this.maxConcurrentRequests = maxConcurrentRequests;
86
93
  }
87
- }
94
+ }
95
+ exports.NestedDataManager = NestedDataManager;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.gridDetailPanelRawHeightCacheSelector = exports.gridDetailPanelExpandedRowsHeightCacheSelector = exports.gridDetailPanelExpandedRowsContentCacheSelector = exports.gridDetailPanelExpandedRowIdsSelector = void 0;
7
+ var _internals = require("@mui/x-data-grid/internals");
8
+ const gridDetailPanelExpandedRowIdsSelector = state => state.detailPanel.expandedRowIds;
9
+ exports.gridDetailPanelExpandedRowIdsSelector = gridDetailPanelExpandedRowIdsSelector;
10
+ const gridDetailPanelExpandedRowsContentCacheSelector = state => state.detailPanel.contentCache;
11
+ exports.gridDetailPanelExpandedRowsContentCacheSelector = gridDetailPanelExpandedRowsContentCacheSelector;
12
+ const gridDetailPanelRawHeightCacheSelector = state => state.detailPanel.heightCache;
13
+
14
+ // TODO v6: Make this selector return the full object, including the autoHeight flag
15
+ exports.gridDetailPanelRawHeightCacheSelector = gridDetailPanelRawHeightCacheSelector;
16
+ const gridDetailPanelExpandedRowsHeightCacheSelector = exports.gridDetailPanelExpandedRowsHeightCacheSelector = (0, _internals.createSelectorMemoized)(gridDetailPanelRawHeightCacheSelector, heightCache => Object.entries(heightCache).reduce((acc, [id, {
17
+ height
18
+ }]) => {
19
+ acc[id] = height || 0;
20
+ return acc;
21
+ }, {}));
@@ -0,0 +1,47 @@
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.GRID_DETAIL_PANEL_TOGGLE_COL_DEF = void 0;
9
+ Object.defineProperty(exports, "GRID_DETAIL_PANEL_TOGGLE_FIELD", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _internals.GRID_DETAIL_PANEL_TOGGLE_FIELD;
13
+ }
14
+ });
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
+ var React = _interopRequireWildcard(require("react"));
17
+ var _xDataGrid = require("@mui/x-data-grid");
18
+ var _internals = require("@mui/x-data-grid/internals");
19
+ var _GridDetailPanelToggleCell = require("../../../components/GridDetailPanelToggleCell");
20
+ var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+ const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = exports.GRID_DETAIL_PANEL_TOGGLE_COL_DEF = (0, _extends2.default)({}, _xDataGrid.GRID_STRING_COL_DEF, {
23
+ type: 'custom',
24
+ field: _internals.GRID_DETAIL_PANEL_TOGGLE_FIELD,
25
+ editable: false,
26
+ sortable: false,
27
+ filterable: false,
28
+ resizable: false,
29
+ // @ts-ignore
30
+ aggregable: false,
31
+ disableColumnMenu: true,
32
+ disableReorder: true,
33
+ disableExport: true,
34
+ align: 'left',
35
+ width: 40,
36
+ valueGetter: (value, row, column, apiRef) => {
37
+ const rowId = (0, _xDataGrid.gridRowIdSelector)(apiRef.current.state, row);
38
+ const expandedRowIds = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(apiRef.current.state);
39
+ return expandedRowIds.includes(rowId);
40
+ },
41
+ renderCell: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridDetailPanelToggleCell.GridDetailPanelToggleCell, (0, _extends2.default)({}, params)),
42
+ renderHeader: ({
43
+ colDef
44
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
45
+ "aria-label": colDef.headerName
46
+ })
47
+ });
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ gridDetailPanelExpandedRowIdsSelector: true,
8
+ gridDetailPanelExpandedRowsContentCacheSelector: true,
9
+ gridDetailPanelExpandedRowsHeightCacheSelector: true
10
+ };
11
+ Object.defineProperty(exports, "gridDetailPanelExpandedRowIdsSelector", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "gridDetailPanelExpandedRowsContentCacheSelector", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _gridDetailPanelSelector.gridDetailPanelExpandedRowsContentCacheSelector;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "gridDetailPanelExpandedRowsHeightCacheSelector", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _gridDetailPanelSelector.gridDetailPanelExpandedRowsHeightCacheSelector;
27
+ }
28
+ });
29
+ var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef");
30
+ Object.keys(_gridDetailPanelToggleColDef).forEach(function (key) {
31
+ if (key === "default" || key === "__esModule") return;
32
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
33
+ if (key in exports && exports[key] === _gridDetailPanelToggleColDef[key]) return;
34
+ Object.defineProperty(exports, key, {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _gridDetailPanelToggleColDef[key];
38
+ }
39
+ });
40
+ });
41
+ var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
42
+ var _gridDetailPanelInterface = require("./gridDetailPanelInterface");
43
+ Object.keys(_gridDetailPanelInterface).forEach(function (key) {
44
+ if (key === "default" || key === "__esModule") return;
45
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
46
+ if (key in exports && exports[key] === _gridDetailPanelInterface[key]) return;
47
+ Object.defineProperty(exports, key, {
48
+ enumerable: true,
49
+ get: function () {
50
+ return _gridDetailPanelInterface[key];
51
+ }
52
+ });
53
+ });
@@ -1,17 +1,26 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import { useGridSelector, useGridApiEventHandler, useGridApiMethod, gridDataRowIdsSelector } from '@mui/x-data-grid';
4
- import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
5
- import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from "./gridDetailPanelToggleColDef.js";
6
- import { gridDetailPanelExpandedRowIdsSelector, gridDetailPanelExpandedRowsContentCacheSelector, gridDetailPanelExpandedRowsHeightCacheSelector, gridDetailPanelRawHeightCacheSelector } from "./gridDetailPanelSelector.js";
7
- export const detailPanelStateInitializer = (state, props) => {
8
- return _extends({}, state, {
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.useGridDetailPanel = exports.detailPanelStateInitializer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _xDataGrid = require("@mui/x-data-grid");
12
+ var _internals = require("@mui/x-data-grid/internals");
13
+ var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef");
14
+ var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
15
+ const detailPanelStateInitializer = (state, props) => {
16
+ return (0, _extends2.default)({}, state, {
9
17
  detailPanel: {
10
18
  heightCache: {},
11
19
  expandedRowIds: props.detailPanelExpandedRowIds ?? props.initialState?.detailPanel?.expandedRowIds ?? []
12
20
  }
13
21
  });
14
22
  };
23
+ exports.detailPanelStateInitializer = detailPanelStateInitializer;
15
24
  function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeight, previousHeightCache) {
16
25
  if (typeof getDetailPanelContent !== 'function') {
17
26
  return {};
@@ -19,7 +28,7 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
19
28
 
20
29
  // TODO change to lazy approach using a Proxy
21
30
  // only call getDetailPanelContent when asked for an id
22
- const rowIds = gridDataRowIdsSelector(apiRef);
31
+ const rowIds = (0, _xDataGrid.gridDataRowIdsSelector)(apiRef);
23
32
  const contentCache = rowIds.reduce((acc, id) => {
24
33
  const params = apiRef.current.getRowParams(id);
25
34
  acc[id] = getDetailPanelContent(params);
@@ -43,11 +52,10 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
43
52
  heightCache
44
53
  };
45
54
  }
46
- export const useGridDetailPanel = (apiRef, props) => {
47
- const expandedRowIds = useGridSelector(apiRef, gridDetailPanelExpandedRowIdsSelector);
48
- const contentCache = useGridSelector(apiRef, gridDetailPanelExpandedRowsContentCacheSelector);
55
+ const useGridDetailPanel = (apiRef, props) => {
56
+ const contentCache = (0, _xDataGrid.useGridSelector)(apiRef, _gridDetailPanelSelector.gridDetailPanelExpandedRowsContentCacheSelector);
49
57
  const handleCellClick = React.useCallback((params, event) => {
50
- if (params.field !== GRID_DETAIL_PANEL_TOGGLE_FIELD || props.getDetailPanelContent == null) {
58
+ if (params.field !== _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD || props.getDetailPanelContent == null) {
51
59
  return;
52
60
  }
53
61
  const content = contentCache[params.id];
@@ -65,17 +73,17 @@ export const useGridDetailPanel = (apiRef, props) => {
65
73
  if (props.getDetailPanelContent == null) {
66
74
  return;
67
75
  }
68
- if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD && event.key === ' ') {
76
+ if (params.field === _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD && event.key === ' ') {
69
77
  apiRef.current.toggleDetailPanel(params.id);
70
78
  }
71
79
  }, [apiRef, props.getDetailPanelContent]);
72
- useGridApiEventHandler(apiRef, 'cellClick', handleCellClick);
73
- useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
80
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, 'cellClick', handleCellClick);
81
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, 'cellKeyDown', handleCellKeyDown);
74
82
  apiRef.current.registerControlState({
75
83
  stateId: 'detailPanels',
76
84
  propModel: props.detailPanelExpandedRowIds,
77
85
  propOnChange: props.onDetailPanelExpandedRowIdsChange,
78
- stateSelector: gridDetailPanelExpandedRowIdsSelector,
86
+ stateSelector: _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector,
79
87
  changeEvent: 'detailPanelsExpandedRowIdsChange'
80
88
  });
81
89
  const toggleDetailPanel = React.useCallback(id => {
@@ -89,26 +97,27 @@ export const useGridDetailPanel = (apiRef, props) => {
89
97
  const ids = apiRef.current.getExpandedDetailPanels();
90
98
  apiRef.current.setExpandedDetailPanels(ids.includes(id) ? ids.filter(rowId => rowId !== id) : [...ids, id]);
91
99
  }, [apiRef, contentCache, props.getDetailPanelContent]);
92
- const getExpandedDetailPanels = React.useCallback(() => gridDetailPanelExpandedRowIdsSelector(apiRef.current.state), [apiRef]);
100
+ const getExpandedDetailPanels = React.useCallback(() => (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(apiRef.current.state), [apiRef]);
93
101
  const setExpandedDetailPanels = React.useCallback(ids => {
94
102
  apiRef.current.setState(state => {
95
- return _extends({}, state, {
96
- detailPanel: _extends({}, state.detailPanel, {
103
+ return (0, _extends2.default)({}, state, {
104
+ detailPanel: (0, _extends2.default)({}, state.detailPanel, {
97
105
  expandedRowIds: ids
98
106
  })
99
107
  });
100
108
  });
109
+ apiRef.current.requestPipeProcessorsApplication('rowHeight');
101
110
  }, [apiRef]);
102
111
  const storeDetailPanelHeight = React.useCallback((id, height) => {
103
- const heightCache = gridDetailPanelRawHeightCacheSelector(apiRef.current.state);
112
+ const heightCache = (0, _gridDetailPanelSelector.gridDetailPanelRawHeightCacheSelector)(apiRef.current.state);
104
113
  if (!heightCache[id] || heightCache[id].height === height) {
105
114
  return;
106
115
  }
107
116
  apiRef.current.setState(state => {
108
- return _extends({}, state, {
109
- detailPanel: _extends({}, state.detailPanel, {
110
- heightCache: _extends({}, heightCache, {
111
- [id]: _extends({}, heightCache[id], {
117
+ return (0, _extends2.default)({}, state, {
118
+ detailPanel: (0, _extends2.default)({}, state.detailPanel, {
119
+ heightCache: (0, _extends2.default)({}, heightCache, {
120
+ [id]: (0, _extends2.default)({}, heightCache[id], {
112
121
  height
113
122
  })
114
123
  })
@@ -118,7 +127,7 @@ export const useGridDetailPanel = (apiRef, props) => {
118
127
  apiRef.current.requestPipeProcessorsApplication('rowHeight');
119
128
  }, [apiRef]);
120
129
  const detailPanelHasAutoHeight = React.useCallback(id => {
121
- const heightCache = gridDetailPanelRawHeightCacheSelector(apiRef.current.state);
130
+ const heightCache = (0, _gridDetailPanelSelector.gridDetailPanelRawHeightCacheSelector)(apiRef.current.state);
122
131
  return heightCache[id] ? heightCache[id].autoHeight : false;
123
132
  }, [apiRef]);
124
133
  const detailPanelPubicApi = {
@@ -130,11 +139,11 @@ export const useGridDetailPanel = (apiRef, props) => {
130
139
  storeDetailPanelHeight,
131
140
  detailPanelHasAutoHeight
132
141
  };
133
- useGridApiMethod(apiRef, detailPanelPubicApi, 'public');
134
- useGridApiMethod(apiRef, detailPanelPrivateApi, 'private');
142
+ (0, _xDataGrid.useGridApiMethod)(apiRef, detailPanelPubicApi, 'public');
143
+ (0, _xDataGrid.useGridApiMethod)(apiRef, detailPanelPrivateApi, 'private');
135
144
  React.useEffect(() => {
136
145
  if (props.detailPanelExpandedRowIds) {
137
- const currentModel = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
146
+ const currentModel = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(apiRef.current.state);
138
147
  if (currentModel !== props.detailPanelExpandedRowIds) {
139
148
  apiRef.current.setExpandedDetailPanels(props.detailPanelExpandedRowIds);
140
149
  }
@@ -145,13 +154,13 @@ export const useGridDetailPanel = (apiRef, props) => {
145
154
  return;
146
155
  }
147
156
  apiRef.current.setState(state => {
148
- return _extends({}, state, {
149
- detailPanel: _extends({}, state.detailPanel, cacheContentAndHeight(apiRef, props.getDetailPanelContent, props.getDetailPanelHeight, state.detailPanel.heightCache))
157
+ return (0, _extends2.default)({}, state, {
158
+ detailPanel: (0, _extends2.default)({}, state.detailPanel, cacheContentAndHeight(apiRef, props.getDetailPanelContent, props.getDetailPanelHeight, state.detailPanel.heightCache))
150
159
  });
151
160
  });
152
161
  apiRef.current.forceUpdate();
153
162
  }, [apiRef, props.getDetailPanelContent, props.getDetailPanelHeight]);
154
- useGridApiEventHandler(apiRef, 'sortedRowsSet', updateCachesAndForceUpdate);
163
+ (0, _xDataGrid.useGridApiEventHandler)(apiRef, 'sortedRowsSet', updateCachesAndForceUpdate);
155
164
  const previousGetDetailPanelContentProp = React.useRef(undefined);
156
165
  const previousGetDetailPanelHeightProp = React.useRef(undefined);
157
166
  const updateCachesIfNeeded = React.useCallback(() => {
@@ -159,25 +168,26 @@ export const useGridDetailPanel = (apiRef, props) => {
159
168
  return;
160
169
  }
161
170
  apiRef.current.setState(state => {
162
- return _extends({}, state, {
163
- detailPanel: _extends({}, state.detailPanel, cacheContentAndHeight(apiRef, props.getDetailPanelContent, props.getDetailPanelHeight, state.detailPanel.heightCache))
171
+ return (0, _extends2.default)({}, state, {
172
+ detailPanel: (0, _extends2.default)({}, state.detailPanel, cacheContentAndHeight(apiRef, props.getDetailPanelContent, props.getDetailPanelHeight, state.detailPanel.heightCache))
164
173
  });
165
174
  });
166
175
  previousGetDetailPanelContentProp.current = props.getDetailPanelContent;
167
176
  previousGetDetailPanelHeightProp.current = props.getDetailPanelHeight;
168
177
  }, [apiRef, props.getDetailPanelContent, props.getDetailPanelHeight]);
169
178
  const addDetailHeight = React.useCallback((initialValue, row) => {
179
+ const expandedRowIds = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(apiRef.current.state);
170
180
  if (!expandedRowIds || expandedRowIds.length === 0 || !expandedRowIds.includes(row.id)) {
171
181
  initialValue.detail = 0;
172
182
  return initialValue;
173
183
  }
174
184
  updateCachesIfNeeded();
175
- const heightCache = gridDetailPanelExpandedRowsHeightCacheSelector(apiRef);
185
+ const heightCache = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowsHeightCacheSelector)(apiRef);
176
186
  initialValue.detail = heightCache[row.id] ?? 0; // Fallback to zero because the cache might not be ready yet (for example page was changed)
177
187
  return initialValue;
178
- }, [apiRef, expandedRowIds, updateCachesIfNeeded]);
188
+ }, [apiRef, updateCachesIfNeeded]);
179
189
  const enabled = props.getDetailPanelContent !== undefined;
180
- useGridRegisterPipeProcessor(apiRef, 'rowHeight', addDetailHeight, enabled);
190
+ (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'rowHeight', addDetailHeight, enabled);
181
191
  const isFirstRender = React.useRef(true);
182
192
  if (isFirstRender.current) {
183
193
  updateCachesIfNeeded();
@@ -188,4 +198,5 @@ export const useGridDetailPanel = (apiRef, props) => {
188
198
  }
189
199
  isFirstRender.current = false;
190
200
  }, [apiRef, updateCachesIfNeeded]);
191
- };
201
+ };
202
+ exports.useGridDetailPanel = useGridDetailPanel;
@@ -0,0 +1,52 @@
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.useGridDetailPanelPreProcessors = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _xDataGrid = require("@mui/x-data-grid");
12
+ var _internals = require("@mui/x-data-grid/internals");
13
+ var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef");
14
+ var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
15
+ const useGridDetailPanelPreProcessors = (privateApiRef, props) => {
16
+ const addToggleColumn = React.useCallback(columnsState => {
17
+ if (props.getDetailPanelContent == null) {
18
+ // Remove the toggle column, when it exists
19
+ if (columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD]) {
20
+ delete columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD];
21
+ columnsState.orderedFields = columnsState.orderedFields.filter(field => field !== _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD);
22
+ }
23
+ return columnsState;
24
+ }
25
+
26
+ // Don't add the toggle column if there's already one
27
+ // The user might have manually added it to have it in a custom position
28
+ if (columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD]) {
29
+ return columnsState;
30
+ }
31
+
32
+ // Otherwise, add the toggle column at the beginning
33
+ columnsState.orderedFields = [_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD, ...columnsState.orderedFields];
34
+ columnsState.lookup[_gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD] = (0, _extends2.default)({}, _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_COL_DEF, {
35
+ headerName: privateApiRef.current.getLocaleText('detailPanelToggle')
36
+ });
37
+ return columnsState;
38
+ }, [privateApiRef, props.getDetailPanelContent]);
39
+ const addExpandedClassToRow = React.useCallback((classes, id) => {
40
+ if (props.getDetailPanelContent == null) {
41
+ return classes;
42
+ }
43
+ const expandedRowIds = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(privateApiRef.current.state);
44
+ if (!expandedRowIds.includes(id)) {
45
+ return classes;
46
+ }
47
+ return [...classes, _xDataGrid.gridClasses['row--detailPanelExpanded']];
48
+ }, [privateApiRef, props.getDetailPanelContent]);
49
+ (0, _internals.useGridRegisterPipeProcessor)(privateApiRef, 'hydrateColumns', addToggleColumn);
50
+ (0, _internals.useGridRegisterPipeProcessor)(privateApiRef, 'rowClassName', addExpandedClassToRow);
51
+ };
52
+ exports.useGridDetailPanelPreProcessors = useGridDetailPanelPreProcessors;