@mui/x-data-grid-pro 8.0.0-beta.3 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +282 -96
  2. package/DataGridPro/DataGridPro.js +8 -7
  3. package/DataGridPro/useDataGridProComponent.d.ts +2 -2
  4. package/DataGridPro/useDataGridProComponent.js +2 -3
  5. package/esm/DataGridPro/DataGridPro.js +9 -8
  6. package/esm/DataGridPro/useDataGridProComponent.d.ts +2 -2
  7. package/esm/DataGridPro/useDataGridProComponent.js +2 -3
  8. package/esm/hooks/features/dataSource/useGridDataSourceBasePro.d.ts +3 -6
  9. package/esm/hooks/features/dataSource/useGridDataSourceBasePro.js +36 -8
  10. package/esm/hooks/features/dataSource/utils.d.ts +3 -2
  11. package/esm/hooks/features/dataSource/utils.js +13 -1
  12. package/esm/hooks/features/lazyLoader/useGridLazyLoader.d.ts +1 -1
  13. package/esm/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.d.ts +1 -1
  14. package/esm/hooks/features/rowPinning/useGridRowPinning.d.ts +1 -1
  15. package/esm/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.js +38 -1
  16. package/esm/index.js +1 -1
  17. package/esm/internals/index.d.ts +1 -0
  18. package/esm/internals/index.js +1 -0
  19. package/esm/material/icons.d.ts +3 -6
  20. package/esm/material/icons.js +1 -1
  21. package/esm/material/index.d.ts +2 -2
  22. package/esm/models/dataGridProProps.d.ts +3 -3
  23. package/esm/models/gridProIconSlotsComponent.d.ts +6 -3
  24. package/esm/package.json +1 -1
  25. package/hooks/features/dataSource/useGridDataSourceBasePro.d.ts +3 -6
  26. package/hooks/features/dataSource/useGridDataSourceBasePro.js +34 -6
  27. package/hooks/features/dataSource/utils.d.ts +3 -2
  28. package/hooks/features/dataSource/utils.js +15 -2
  29. package/hooks/features/lazyLoader/useGridLazyLoader.d.ts +1 -1
  30. package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.d.ts +1 -1
  31. package/hooks/features/rowPinning/useGridRowPinning.d.ts +1 -1
  32. package/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.js +37 -0
  33. package/index.js +1 -1
  34. package/internals/index.d.ts +1 -0
  35. package/internals/index.js +15 -7
  36. package/material/icons.d.ts +3 -6
  37. package/material/icons.js +3 -3
  38. package/material/index.d.ts +2 -2
  39. package/models/dataGridProProps.d.ts +3 -3
  40. package/models/gridProIconSlotsComponent.d.ts +6 -3
  41. package/package.json +8 -14
  42. package/esm/utils/releaseInfo.d.ts +0 -1
  43. package/esm/utils/releaseInfo.js +0 -13
  44. package/modern/DataGridPro/DataGrid.d.ts +0 -8
  45. package/modern/DataGridPro/DataGrid.js +0 -19
  46. package/modern/DataGridPro/DataGridPro.d.ts +0 -16
  47. package/modern/DataGridPro/DataGridPro.js +0 -1020
  48. package/modern/DataGridPro/index.d.ts +0 -3
  49. package/modern/DataGridPro/index.js +0 -3
  50. package/modern/DataGridPro/useDataGridProComponent.d.ts +0 -4
  51. package/modern/DataGridPro/useDataGridProComponent.js +0 -105
  52. package/modern/DataGridPro/useDataGridProProps.d.ts +0 -7
  53. package/modern/DataGridPro/useDataGridProProps.js +0 -54
  54. package/modern/components/GridColumnHeaders.d.ts +0 -5
  55. package/modern/components/GridColumnHeaders.js +0 -92
  56. package/modern/components/GridColumnMenuPinningItem.d.ts +0 -7
  57. package/modern/components/GridColumnMenuPinningItem.js +0 -77
  58. package/modern/components/GridDataSourceTreeDataGroupingCell.d.ts +0 -12
  59. package/modern/components/GridDataSourceTreeDataGroupingCell.js +0 -107
  60. package/modern/components/GridDetailPanel.d.ts +0 -14
  61. package/modern/components/GridDetailPanel.js +0 -53
  62. package/modern/components/GridDetailPanelToggleCell.d.ts +0 -7
  63. package/modern/components/GridDetailPanelToggleCell.js +0 -121
  64. package/modern/components/GridDetailPanels.d.ts +0 -3
  65. package/modern/components/GridDetailPanels.js +0 -67
  66. package/modern/components/GridPinnedRows.d.ts +0 -6
  67. package/modern/components/GridPinnedRows.js +0 -40
  68. package/modern/components/GridProColumnMenu.d.ts +0 -24
  69. package/modern/components/GridProColumnMenu.js +0 -21
  70. package/modern/components/GridRowReorderCell.d.ts +0 -8
  71. package/modern/components/GridRowReorderCell.js +0 -140
  72. package/modern/components/GridTreeDataGroupingCell.d.ts +0 -15
  73. package/modern/components/GridTreeDataGroupingCell.js +0 -133
  74. package/modern/components/headerFiltering/GridHeaderFilterCell.d.ts +0 -26
  75. package/modern/components/headerFiltering/GridHeaderFilterCell.js +0 -362
  76. package/modern/components/headerFiltering/GridHeaderFilterClearButton.d.ts +0 -6
  77. package/modern/components/headerFiltering/GridHeaderFilterClearButton.js +0 -17
  78. package/modern/components/headerFiltering/GridHeaderFilterMenu.d.ts +0 -30
  79. package/modern/components/headerFiltering/GridHeaderFilterMenu.js +0 -137
  80. package/modern/components/headerFiltering/GridHeaderFilterMenuContainer.d.ts +0 -17
  81. package/modern/components/headerFiltering/GridHeaderFilterMenuContainer.js +0 -138
  82. package/modern/components/headerFiltering/index.d.ts +0 -3
  83. package/modern/components/headerFiltering/index.js +0 -3
  84. package/modern/components/index.d.ts +0 -6
  85. package/modern/components/index.js +0 -7
  86. package/modern/components/reexports.d.ts +0 -1
  87. package/modern/components/reexports.js +0 -1
  88. package/modern/constants/dataGridProDefaultSlotsComponents.d.ts +0 -2
  89. package/modern/constants/dataGridProDefaultSlotsComponents.js +0 -17
  90. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -12
  91. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -143
  92. package/modern/hooks/features/columnPinning/gridColumnPinningInterface.d.ts +0 -40
  93. package/modern/hooks/features/columnPinning/gridColumnPinningInterface.js +0 -1
  94. package/modern/hooks/features/columnPinning/index.d.ts +0 -1
  95. package/modern/hooks/features/columnPinning/index.js +0 -1
  96. package/modern/hooks/features/columnPinning/useGridColumnPinning.d.ts +0 -6
  97. package/modern/hooks/features/columnPinning/useGridColumnPinning.js +0 -228
  98. package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.d.ts +0 -4
  99. package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +0 -105
  100. package/modern/hooks/features/columnReorder/columnReorderInterfaces.d.ts +0 -6
  101. package/modern/hooks/features/columnReorder/columnReorderInterfaces.js +0 -1
  102. package/modern/hooks/features/columnReorder/columnReorderSelector.d.ts +0 -3
  103. package/modern/hooks/features/columnReorder/columnReorderSelector.js +0 -3
  104. package/modern/hooks/features/columnReorder/index.d.ts +0 -2
  105. package/modern/hooks/features/columnReorder/index.js +0 -2
  106. package/modern/hooks/features/columnReorder/useGridColumnReorder.d.ts +0 -9
  107. package/modern/hooks/features/columnReorder/useGridColumnReorder.js +0 -242
  108. package/modern/hooks/features/dataSource/gridDataSourceSelector.d.ts +0 -7
  109. package/modern/hooks/features/dataSource/gridDataSourceSelector.js +0 -6
  110. package/modern/hooks/features/dataSource/models.d.ts +0 -75
  111. package/modern/hooks/features/dataSource/models.js +0 -1
  112. package/modern/hooks/features/dataSource/useGridDataSourceBasePro.d.ts +0 -33
  113. package/modern/hooks/features/dataSource/useGridDataSourceBasePro.js +0 -179
  114. package/modern/hooks/features/dataSource/useGridDataSourcePro.d.ts +0 -6
  115. package/modern/hooks/features/dataSource/useGridDataSourcePro.js +0 -35
  116. package/modern/hooks/features/dataSource/utils.d.ts +0 -29
  117. package/modern/hooks/features/dataSource/utils.js +0 -82
  118. package/modern/hooks/features/detailPanel/gridDetailPanelInterface.d.ts +0 -41
  119. package/modern/hooks/features/detailPanel/gridDetailPanelInterface.js +0 -1
  120. package/modern/hooks/features/detailPanel/gridDetailPanelSelector.d.ts +0 -14
  121. package/modern/hooks/features/detailPanel/gridDetailPanelSelector.js +0 -5
  122. package/modern/hooks/features/detailPanel/gridDetailPanelToggleColDef.d.ts +0 -4
  123. package/modern/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +0 -34
  124. package/modern/hooks/features/detailPanel/index.d.ts +0 -3
  125. package/modern/hooks/features/detailPanel/index.js +0 -3
  126. package/modern/hooks/features/detailPanel/useGridDetailPanel.d.ts +0 -6
  127. package/modern/hooks/features/detailPanel/useGridDetailPanel.js +0 -191
  128. package/modern/hooks/features/detailPanel/useGridDetailPanelPreProcessors.d.ts +0 -4
  129. package/modern/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +0 -43
  130. package/modern/hooks/features/index.d.ts +0 -7
  131. package/modern/hooks/features/index.js +0 -8
  132. package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.d.ts +0 -9
  133. package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.js +0 -104
  134. package/modern/hooks/features/lazyLoader/useGridLazyLoader.d.ts +0 -10
  135. package/modern/hooks/features/lazyLoader/useGridLazyLoader.js +0 -90
  136. package/modern/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.d.ts +0 -5
  137. package/modern/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +0 -34
  138. package/modern/hooks/features/lazyLoader/utils.d.ts +0 -18
  139. package/modern/hooks/features/lazyLoader/utils.js +0 -34
  140. package/modern/hooks/features/rowPinning/gridRowPinningInterface.d.ts +0 -17
  141. package/modern/hooks/features/rowPinning/gridRowPinningInterface.js +0 -1
  142. package/modern/hooks/features/rowPinning/gridRowPinningSelector.d.ts +0 -1
  143. package/modern/hooks/features/rowPinning/gridRowPinningSelector.js +0 -1
  144. package/modern/hooks/features/rowPinning/index.d.ts +0 -1
  145. package/modern/hooks/features/rowPinning/index.js +0 -1
  146. package/modern/hooks/features/rowPinning/useGridRowPinning.d.ts +0 -6
  147. package/modern/hooks/features/rowPinning/useGridRowPinning.js +0 -52
  148. package/modern/hooks/features/rowPinning/useGridRowPinningPreProcessors.d.ts +0 -38
  149. package/modern/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +0 -119
  150. package/modern/hooks/features/rowReorder/gridRowReorderColDef.d.ts +0 -2
  151. package/modern/hooks/features/rowReorder/gridRowReorderColDef.js +0 -20
  152. package/modern/hooks/features/rowReorder/index.d.ts +0 -1
  153. package/modern/hooks/features/rowReorder/index.js +0 -1
  154. package/modern/hooks/features/rowReorder/useGridRowReorder.d.ts +0 -8
  155. package/modern/hooks/features/rowReorder/useGridRowReorder.js +0 -141
  156. package/modern/hooks/features/rowReorder/useGridRowReorderPreProcessors.d.ts +0 -4
  157. package/modern/hooks/features/rowReorder/useGridRowReorderPreProcessors.js +0 -46
  158. package/modern/hooks/features/rows/index.d.ts +0 -1
  159. package/modern/hooks/features/rows/index.js +0 -1
  160. package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +0 -3
  161. package/modern/hooks/features/rows/useGridRowAriaAttributes.js +0 -37
  162. package/modern/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.d.ts +0 -10
  163. package/modern/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.js +0 -325
  164. package/modern/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.d.ts +0 -4
  165. package/modern/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.js +0 -148
  166. package/modern/hooks/features/serverSideTreeData/utils.d.ts +0 -7
  167. package/modern/hooks/features/serverSideTreeData/utils.js +0 -18
  168. package/modern/hooks/features/treeData/gridTreeDataGroupColDef.d.ts +0 -8
  169. package/modern/hooks/features/treeData/gridTreeDataGroupColDef.js +0 -27
  170. package/modern/hooks/features/treeData/gridTreeDataUtils.d.ts +0 -22
  171. package/modern/hooks/features/treeData/gridTreeDataUtils.js +0 -95
  172. package/modern/hooks/features/treeData/index.d.ts +0 -1
  173. package/modern/hooks/features/treeData/index.js +0 -1
  174. package/modern/hooks/features/treeData/useGridTreeData.d.ts +0 -4
  175. package/modern/hooks/features/treeData/useGridTreeData.js +0 -22
  176. package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.d.ts +0 -4
  177. package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.js +0 -148
  178. package/modern/hooks/index.d.ts +0 -1
  179. package/modern/hooks/index.js +0 -1
  180. package/modern/hooks/utils/useGridApiContext.d.ts +0 -4
  181. package/modern/hooks/utils/useGridApiContext.js +0 -2
  182. package/modern/hooks/utils/useGridApiRef.d.ts +0 -4
  183. package/modern/hooks/utils/useGridApiRef.js +0 -2
  184. package/modern/hooks/utils/useGridAriaAttributes.d.ts +0 -2
  185. package/modern/hooks/utils/useGridAriaAttributes.js +0 -11
  186. package/modern/hooks/utils/useGridPrivateApiContext.d.ts +0 -2
  187. package/modern/hooks/utils/useGridPrivateApiContext.js +0 -2
  188. package/modern/hooks/utils/useGridRootProps.d.ts +0 -2
  189. package/modern/hooks/utils/useGridRootProps.js +0 -2
  190. package/modern/index.d.ts +0 -22
  191. package/modern/index.js +0 -25
  192. package/modern/internals/index.d.ts +0 -33
  193. package/modern/internals/index.js +0 -38
  194. package/modern/internals/propValidation.d.ts +0 -3
  195. package/modern/internals/propValidation.js +0 -2
  196. package/modern/locales.d.ts +0 -1
  197. package/modern/locales.js +0 -1
  198. package/modern/material/icons.d.ts +0 -6
  199. package/modern/material/icons.js +0 -17
  200. package/modern/material/index.d.ts +0 -5
  201. package/modern/material/index.js +0 -8
  202. package/modern/models/dataGridProProps.d.ts +0 -222
  203. package/modern/models/dataGridProProps.js +0 -1
  204. package/modern/models/gridApiPro.d.ts +0 -11
  205. package/modern/models/gridApiPro.js +0 -1
  206. package/modern/models/gridFetchRowsParams.d.ts +0 -22
  207. package/modern/models/gridFetchRowsParams.js +0 -1
  208. package/modern/models/gridGroupingColDefOverride.d.ts +0 -30
  209. package/modern/models/gridGroupingColDefOverride.js +0 -1
  210. package/modern/models/gridProIconSlotsComponent.d.ts +0 -13
  211. package/modern/models/gridProIconSlotsComponent.js +0 -1
  212. package/modern/models/gridProSlotProps.d.ts +0 -8
  213. package/modern/models/gridProSlotProps.js +0 -1
  214. package/modern/models/gridProSlotsComponent.d.ts +0 -18
  215. package/modern/models/gridProSlotsComponent.js +0 -1
  216. package/modern/models/gridRowOrderChangeParams.d.ts +0 -18
  217. package/modern/models/gridRowOrderChangeParams.js +0 -1
  218. package/modern/models/gridRowScrollEndParams.d.ts +0 -18
  219. package/modern/models/gridRowScrollEndParams.js +0 -1
  220. package/modern/models/gridStatePro.d.ts +0 -19
  221. package/modern/models/gridStatePro.js +0 -1
  222. package/modern/models/index.d.ts +0 -7
  223. package/modern/models/index.js +0 -7
  224. package/modern/package.json +0 -1
  225. package/modern/themeAugmentation/index.d.ts +0 -2
  226. package/modern/themeAugmentation/index.js +0 -4
  227. package/modern/themeAugmentation/overrides.d.ts +0 -7
  228. package/modern/themeAugmentation/overrides.js +0 -1
  229. package/modern/themeAugmentation/props.d.ts +0 -15
  230. package/modern/themeAugmentation/props.js +0 -1
  231. package/modern/typeOverloads/index.d.ts +0 -1
  232. package/modern/typeOverloads/index.js +0 -1
  233. package/modern/typeOverloads/modules.d.ts +0 -70
  234. package/modern/typeOverloads/modules.js +0 -1
  235. package/modern/typeOverloads/reexports.d.ts +0 -17
  236. package/modern/typeOverloads/reexports.js +0 -15
  237. package/modern/utils/index.d.ts +0 -1
  238. package/modern/utils/index.js +0 -1
  239. package/modern/utils/releaseInfo.d.ts +0 -1
  240. package/modern/utils/releaseInfo.js +0 -13
  241. package/modern/utils/tree/createRowTree.d.ts +0 -17
  242. package/modern/utils/tree/createRowTree.js +0 -37
  243. package/modern/utils/tree/index.d.ts +0 -1
  244. package/modern/utils/tree/index.js +0 -1
  245. package/modern/utils/tree/insertDataRowInTree.d.ts +0 -69
  246. package/modern/utils/tree/insertDataRowInTree.js +0 -141
  247. package/modern/utils/tree/models.d.ts +0 -14
  248. package/modern/utils/tree/models.js +0 -1
  249. package/modern/utils/tree/removeDataRowFromTree.d.ts +0 -45
  250. package/modern/utils/tree/removeDataRowFromTree.js +0 -94
  251. package/modern/utils/tree/sortRowTree.d.ts +0 -15
  252. package/modern/utils/tree/sortRowTree.js +0 -114
  253. package/modern/utils/tree/updateRowTree.d.ts +0 -20
  254. package/modern/utils/tree/updateRowTree.js +0 -88
  255. package/modern/utils/tree/utils.d.ts +0 -54
  256. package/modern/utils/tree/utils.js +0 -197
  257. package/tsconfig.build.tsbuildinfo +0 -1
  258. package/utils/releaseInfo.d.ts +0 -1
  259. package/utils/releaseInfo.js +0 -20
@@ -1,114 +0,0 @@
1
- import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
2
- // Single-linked list node
3
- class Node {
4
- constructor(data, next) {
5
- this.next = void 0;
6
- this.data = void 0;
7
- this.next = next;
8
- this.data = data;
9
- }
10
- insertAfter(list) {
11
- if (!list.first || !list.last) {
12
- return;
13
- }
14
- const next = this.next;
15
- this.next = list.first;
16
- list.last.next = next;
17
- }
18
- }
19
-
20
- // Single-linked list container
21
- class List {
22
- constructor(first, last) {
23
- this.first = void 0;
24
- this.last = void 0;
25
- this.first = first;
26
- this.last = last;
27
- }
28
- data() {
29
- const array = [];
30
- this.forEach(node => {
31
- array.push(node.data);
32
- });
33
- return array;
34
- }
35
- forEach(fn) {
36
- let current = this.first;
37
- while (current !== null) {
38
- fn(current);
39
- current = current.next;
40
- }
41
- }
42
- static from(array) {
43
- if (array.length === 0) {
44
- return new List(null, null);
45
- }
46
- let index = 0;
47
- const first = new Node(array[index], null);
48
- let current = first;
49
- while (index + 1 < array.length) {
50
- index += 1;
51
- const node = new Node(array[index], null);
52
- current.next = node;
53
- current = node;
54
- }
55
- return new List(first, current);
56
- }
57
- }
58
- export const sortRowTree = params => {
59
- const {
60
- rowTree,
61
- disableChildrenSorting,
62
- sortRowList,
63
- shouldRenderGroupBelowLeaves
64
- } = params;
65
- const sortedGroupedByParentRows = new Map();
66
- const sortGroup = node => {
67
- const shouldSortGroup = !!sortRowList && (!disableChildrenSorting || node.depth === -1);
68
- let sortedRowIds;
69
- if (shouldSortGroup) {
70
- for (let i = 0; i < node.children.length; i += 1) {
71
- const childNode = rowTree[node.children[i]];
72
- if (childNode.type === 'group') {
73
- sortGroup(childNode);
74
- }
75
- }
76
- sortedRowIds = sortRowList(node.children.map(childId => rowTree[childId]));
77
- } else if (shouldRenderGroupBelowLeaves) {
78
- const childrenLeaves = [];
79
- const childrenGroups = [];
80
- for (let i = 0; i < node.children.length; i += 1) {
81
- const childId = node.children[i];
82
- const childNode = rowTree[childId];
83
- if (childNode.type === 'group') {
84
- sortGroup(childNode);
85
- childrenGroups.push(childId);
86
- } else if (childNode.type === 'leaf') {
87
- childrenLeaves.push(childId);
88
- }
89
- }
90
- sortedRowIds = [...childrenLeaves, ...childrenGroups];
91
- } else {
92
- for (let i = 0; i < node.children.length; i += 1) {
93
- const childNode = rowTree[node.children[i]];
94
- if (childNode.type === 'group') {
95
- sortGroup(childNode);
96
- }
97
- }
98
- sortedRowIds = [...node.children];
99
- }
100
- if (node.footerId != null) {
101
- sortedRowIds.push(node.footerId);
102
- }
103
- sortedGroupedByParentRows.set(node.id, sortedRowIds);
104
- };
105
- sortGroup(rowTree[GRID_ROOT_GROUP_ID]);
106
- const rootList = List.from(sortedGroupedByParentRows.get(GRID_ROOT_GROUP_ID));
107
- rootList.forEach(node => {
108
- const children = sortedGroupedByParentRows.get(node.data);
109
- if (children?.length) {
110
- node.insertAfter(List.from(children));
111
- }
112
- });
113
- return rootList.data();
114
- };
@@ -1,20 +0,0 @@
1
- import { GridGroupNode, GridRowId, GridRowTreeConfig } from '@mui/x-data-grid';
2
- import { GridRowTreeCreationValue, GridTreeDepths } from '@mui/x-data-grid/internals';
3
- import { GridTreePathDuplicateHandler, RowTreeBuilderNode } from "./models.js";
4
- export interface UpdateRowTreeNodes {
5
- inserted: RowTreeBuilderNode[];
6
- modified: RowTreeBuilderNode[];
7
- removed: GridRowId[];
8
- }
9
- interface UpdateRowTreeParams {
10
- previousTree: GridRowTreeConfig;
11
- previousTreeDepth: GridTreeDepths;
12
- nodes: UpdateRowTreeNodes;
13
- defaultGroupingExpansionDepth: number;
14
- isGroupExpandedByDefault?: (node: GridGroupNode) => boolean;
15
- groupingName: string;
16
- onDuplicatePath?: GridTreePathDuplicateHandler;
17
- previousGroupsToFetch?: GridRowId[];
18
- }
19
- export declare const updateRowTree: (params: UpdateRowTreeParams) => GridRowTreeCreationValue;
20
- export {};
@@ -1,88 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
3
- import { getTreeNodeDescendants } from '@mui/x-data-grid/internals';
4
- import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
5
- import { insertDataRowInTree } from "./insertDataRowInTree.js";
6
- import { removeDataRowFromTree } from "./removeDataRowFromTree.js";
7
- import { createUpdatedGroupsManager, getNodePathInTree } from "./utils.js";
8
- export const updateRowTree = params => {
9
- const tree = _extends({}, params.previousTree);
10
- const treeDepths = _extends({}, params.previousTreeDepth);
11
- const updatedGroupsManager = createUpdatedGroupsManager();
12
- const groupsToFetch = params.previousGroupsToFetch ? new Set([...params.previousGroupsToFetch]) : new Set([]);
13
- for (let i = 0; i < params.nodes.inserted.length; i += 1) {
14
- const {
15
- id,
16
- path,
17
- serverChildrenCount
18
- } = params.nodes.inserted[i];
19
- insertDataRowInTree({
20
- previousTree: params.previousTree,
21
- tree,
22
- treeDepths,
23
- updatedGroupsManager,
24
- id,
25
- path,
26
- serverChildrenCount,
27
- onDuplicatePath: params.onDuplicatePath,
28
- isGroupExpandedByDefault: params.isGroupExpandedByDefault,
29
- defaultGroupingExpansionDepth: params.defaultGroupingExpansionDepth,
30
- groupsToFetch
31
- });
32
- }
33
- for (let i = 0; i < params.nodes.removed.length; i += 1) {
34
- const nodeId = params.nodes.removed[i];
35
- removeDataRowFromTree({
36
- tree,
37
- treeDepths,
38
- updatedGroupsManager,
39
- id: nodeId
40
- });
41
- }
42
- for (let i = 0; i < params.nodes.modified.length; i += 1) {
43
- const {
44
- id,
45
- path,
46
- serverChildrenCount
47
- } = params.nodes.modified[i];
48
- const pathInPreviousTree = getNodePathInTree({
49
- tree,
50
- id
51
- });
52
- const isInSameGroup = isDeepEqual(pathInPreviousTree, path);
53
- if (!isInSameGroup) {
54
- removeDataRowFromTree({
55
- tree,
56
- treeDepths,
57
- updatedGroupsManager,
58
- id
59
- });
60
- insertDataRowInTree({
61
- previousTree: params.previousTree,
62
- tree,
63
- treeDepths,
64
- updatedGroupsManager,
65
- id,
66
- path,
67
- serverChildrenCount,
68
- onDuplicatePath: params.onDuplicatePath,
69
- isGroupExpandedByDefault: params.isGroupExpandedByDefault,
70
- defaultGroupingExpansionDepth: params.defaultGroupingExpansionDepth,
71
- groupsToFetch
72
- });
73
- } else {
74
- updatedGroupsManager?.addAction(tree[id].parent, 'modifyChildren');
75
- }
76
- }
77
-
78
- // TODO rows v6: Avoid walking the whole tree, we should be able to generate the new list only using slices.
79
- const dataRowIds = getTreeNodeDescendants(tree, GRID_ROOT_GROUP_ID, true);
80
- return {
81
- tree,
82
- treeDepths,
83
- groupingName: params.groupingName,
84
- dataRowIds,
85
- updatedGroupsManager,
86
- groupsToFetch: Array.from(groupsToFetch)
87
- };
88
- };
@@ -1,54 +0,0 @@
1
- import { GridFilterState, GridGroupNode, GridRowId, GridRowTreeConfig, GridRowsState, GridTreeNode } from '@mui/x-data-grid';
2
- import { GridTreeDepths, GridRowTreeUpdatedGroupsManager } from '@mui/x-data-grid/internals';
3
- import { RowTreeBuilderGroupingCriterion } from "./models.js";
4
- import { DataGridProProps } from "../../models/dataGridProProps.js";
5
- export declare const getGroupRowIdFromPath: (path: RowTreeBuilderGroupingCriterion[]) => string;
6
- export declare const getNodePathInTree: ({
7
- id,
8
- tree
9
- }: {
10
- id: GridRowId;
11
- tree: GridRowTreeConfig;
12
- }) => RowTreeBuilderGroupingCriterion[];
13
- export declare const checkGroupChildrenExpansion: (node: GridGroupNode, defaultGroupingExpansionDepth: number, isGroupExpandedByDefault?: DataGridProProps["isGroupExpandedByDefault"]) => boolean;
14
- export declare const updateGroupDefaultExpansion: (node: GridGroupNode, defaultGroupingExpansionDepth: number, isGroupExpandedByDefault?: DataGridProProps["isGroupExpandedByDefault"]) => GridGroupNode;
15
- /**
16
- * Insert a node in the tree
17
- */
18
- export declare const insertNodeInTree: (node: GridTreeNode, tree: GridRowTreeConfig, treeDepths: GridTreeDepths, previousTree: GridRowTreeConfig | null) => void;
19
- /**
20
- * Removes a node from the tree
21
- */
22
- export declare const removeNodeFromTree: ({
23
- node,
24
- tree,
25
- treeDepths
26
- }: {
27
- node: GridTreeNode;
28
- tree: GridRowTreeConfig;
29
- treeDepths: GridTreeDepths;
30
- }) => void;
31
- /**
32
- * Updates the `id` and `isAutoGenerated` properties of a group node.
33
- */
34
- export declare const updateGroupNodeIdAndAutoGenerated: ({
35
- node,
36
- updatedNode,
37
- previousTree,
38
- tree,
39
- treeDepths
40
- }: {
41
- previousTree: GridRowTreeConfig | null;
42
- node: GridGroupNode;
43
- updatedNode: Pick<GridGroupNode, "id" | "isAutoGenerated">;
44
- tree: GridRowTreeConfig;
45
- treeDepths: GridTreeDepths;
46
- }) => void;
47
- export declare const createUpdatedGroupsManager: () => GridRowTreeUpdatedGroupsManager;
48
- export declare const getVisibleRowsLookup: ({
49
- tree,
50
- filteredRowsLookup
51
- }: {
52
- tree: GridRowsState["tree"];
53
- filteredRowsLookup: GridFilterState["filteredRowsLookup"];
54
- }) => import("@mui/x-data-grid/hooks/features/filter/gridFilterState").GridVisibleRowsLookupState;
@@ -1,197 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
3
- export const getGroupRowIdFromPath = path => {
4
- const pathStr = path.map(groupingCriteria => `${groupingCriteria.field}/${groupingCriteria.key}`).join('-');
5
- return `auto-generated-row-${pathStr}`;
6
- };
7
- export const getNodePathInTree = ({
8
- id,
9
- tree
10
- }) => {
11
- const path = [];
12
- let node = tree[id];
13
- while (node.id !== GRID_ROOT_GROUP_ID) {
14
- path.push({
15
- field: node.type === 'leaf' ? null : node.groupingField,
16
- key: node.groupingKey
17
- });
18
- node = tree[node.parent];
19
- }
20
- path.reverse();
21
- return path;
22
- };
23
- export const checkGroupChildrenExpansion = (node, defaultGroupingExpansionDepth, isGroupExpandedByDefault) => {
24
- let childrenExpanded;
25
- if (node.id === GRID_ROOT_GROUP_ID) {
26
- childrenExpanded = true;
27
- } else if (isGroupExpandedByDefault) {
28
- childrenExpanded = isGroupExpandedByDefault(node);
29
- } else {
30
- childrenExpanded = defaultGroupingExpansionDepth === -1 || defaultGroupingExpansionDepth > node.depth;
31
- }
32
- return childrenExpanded;
33
- };
34
- export const updateGroupDefaultExpansion = (node, defaultGroupingExpansionDepth, isGroupExpandedByDefault) => {
35
- const childrenExpanded = checkGroupChildrenExpansion(node, defaultGroupingExpansionDepth, isGroupExpandedByDefault);
36
- node.childrenExpanded = childrenExpanded;
37
- return node;
38
- };
39
-
40
- /**
41
- * Insert a node in the tree
42
- */
43
- export const insertNodeInTree = (node, tree, treeDepths, previousTree) => {
44
- // 1. Insert node in the tree.
45
- tree[node.id] = node;
46
-
47
- // 2. Increment the `treeDepths` object for the node's depth.
48
- treeDepths[node.depth] = (treeDepths[node.depth] ?? 0) + 1;
49
-
50
- // 3. Register the new node in its parent.
51
- const parentNode = tree[node.parent];
52
- if (node.type === 'group' || node.type === 'leaf') {
53
- // For groups and leaves,
54
- // Register the node from its parents `children` and `childrenFromPath` properties.
55
- const groupingFieldName = node.groupingField ?? '__no_field__';
56
- const groupingKeyName = node.groupingKey ?? '__no_key__';
57
- const groupingField = parentNode.childrenFromPath?.[groupingFieldName];
58
- if (previousTree !== null && previousTree[parentNode.id] === tree[parentNode.id]) {
59
- parentNode.children = [...parentNode.children, node.id];
60
- } else {
61
- parentNode.children.push(node.id);
62
- }
63
- if (groupingField == null) {
64
- parentNode.childrenFromPath[groupingFieldName] = {
65
- [groupingKeyName.toString()]: node.id
66
- };
67
- } else {
68
- groupingField[groupingKeyName.toString()] = node.id;
69
- }
70
- } else if (node.type === 'footer') {
71
- // For footers,
72
- // Register the node from its parent `footerId` property.
73
- parentNode.footerId = node.id;
74
- }
75
- };
76
-
77
- /**
78
- * Removes a node from the tree
79
- */
80
- export const removeNodeFromTree = ({
81
- node,
82
- tree,
83
- treeDepths
84
- }) => {
85
- // 1. Remove node from the tree.
86
- delete tree[node.id];
87
-
88
- // 2. Decrement the `treeDepths` object for the node's depth.
89
- const nodeDepth = node.depth;
90
- const currentNodeCount = treeDepths[nodeDepth];
91
- if (currentNodeCount === 1) {
92
- delete treeDepths[nodeDepth];
93
- } else {
94
- treeDepths[nodeDepth] = currentNodeCount - 1;
95
- }
96
-
97
- // 3. Unregister the new node in its parent.
98
- const parentNode = tree[node.parent];
99
- // For footers,
100
- // Unregister the node from its parent `footerId` property.
101
- if (node.type === 'footer') {
102
- tree[parentNode.id] = _extends({}, parentNode, {
103
- footerId: null
104
- });
105
- }
106
- // For groups and leaves,
107
- // Unregister the node from its parents `children` and `childrenFromPath` properties.
108
- else {
109
- const groupingField = node.groupingField ?? '__no_field__';
110
- const groupingKey = node.groupingKey ?? '__no_key__';
111
-
112
- // TODO rows v6: Can we avoid this linear complexity ?
113
- const children = parentNode.children.filter(childId => childId !== node.id);
114
- const childrenFromPath = parentNode.childrenFromPath;
115
- delete childrenFromPath[groupingField][groupingKey.toString()];
116
- tree[parentNode.id] = _extends({}, parentNode, {
117
- children,
118
- childrenFromPath
119
- });
120
- }
121
- };
122
-
123
- /**
124
- * Updates the `id` and `isAutoGenerated` properties of a group node.
125
- */
126
- export const updateGroupNodeIdAndAutoGenerated = ({
127
- node,
128
- updatedNode,
129
- previousTree,
130
- tree,
131
- treeDepths
132
- }) => {
133
- // 1. Set the new parent for all children from the old group
134
- node.children.forEach(childId => {
135
- tree[childId] = _extends({}, tree[childId], {
136
- parent: updatedNode.id
137
- });
138
- });
139
-
140
- // 2. Remove the old group from the tree
141
- removeNodeFromTree({
142
- node,
143
- tree,
144
- treeDepths
145
- });
146
-
147
- // 3. Add the new group in the tree
148
- const groupNode = _extends({}, node, updatedNode);
149
- insertNodeInTree(groupNode, tree, treeDepths, previousTree);
150
- };
151
- export const createUpdatedGroupsManager = () => ({
152
- value: {},
153
- addAction(groupId, action) {
154
- if (!this.value[groupId]) {
155
- this.value[groupId] = {};
156
- }
157
- this.value[groupId][action] = true;
158
- }
159
- });
160
- export const getVisibleRowsLookup = ({
161
- tree,
162
- filteredRowsLookup
163
- }) => {
164
- if (!filteredRowsLookup) {
165
- return {};
166
- }
167
- const visibleRowsLookup = {};
168
- const handleTreeNode = (node, areAncestorsExpanded) => {
169
- const isPassingFiltering = filteredRowsLookup[node.id] !== false;
170
- if (node.type === 'group') {
171
- node.children.forEach(childId => {
172
- const childNode = tree[childId];
173
- handleTreeNode(childNode, areAncestorsExpanded && !!node.childrenExpanded);
174
- });
175
- }
176
- const isVisible = isPassingFiltering && areAncestorsExpanded;
177
- if (!isVisible) {
178
- visibleRowsLookup[node.id] = isVisible;
179
- }
180
-
181
- // TODO rows v6: Should we keep storing the visibility status of footer independently or rely on the group visibility in the selector ?
182
- if (node.type === 'group' && node.footerId != null) {
183
- const isFooterVisible = isPassingFiltering && areAncestorsExpanded && !!node.childrenExpanded;
184
- if (!isFooterVisible) {
185
- visibleRowsLookup[node.footerId] = isFooterVisible;
186
- }
187
- }
188
- };
189
- const nodes = Object.values(tree);
190
- for (let i = 0; i < nodes.length; i += 1) {
191
- const node = nodes[i];
192
- if (node.depth === 0) {
193
- handleTreeNode(node, true);
194
- }
195
- }
196
- return visibleRowsLookup;
197
- };