@mui/x-tree-view-pro 8.10.0 → 8.10.2

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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,188 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.10.2
9
+
10
+ _Aug 20, 2025_
11
+
12
+ We'd like to extend a big thank you to the 10 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🌎 Improve Finnish (fi-FI) locale on the Data Grid
15
+
16
+ Special thanks go out to the community members for their valuable contributions:
17
+ @lauri-heinonen-2025-04, @Methuselah96, @sai6855, @wilcoschoneveld
18
+
19
+ The following are all team members who have contributed to this release:
20
+ @alexfauquette, @cherniavskii, @flaviendelangle, @Janpot, @oliviertassinari, @rita-codes
21
+
22
+ ### Data Grid
23
+
24
+ #### `@mui/x-data-grid@8.10.2`
25
+
26
+ - [DataGrid] Fix display for `<GridEditSingleSelect />` when `density='compact'` (#19249) @sai6855
27
+ - [DataGrid] Fix column header sortable classname when using `disableColumnSorting` (#19222) @wilcoschoneveld
28
+ - [l10n] Improve finnish (fi-FI) locale (#19163) @lauri-heinonen-2025-04
29
+
30
+ #### `@mui/x-data-grid-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
31
+
32
+ Same changes as in `@mui/x-data-grid@8.10.2`, plus:
33
+
34
+ - [DataGridPro] Fix quick filter not working in List View mode (#19254) @cherniavskii
35
+
36
+ #### `@mui/x-data-grid-premium@8.10.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
37
+
38
+ Same changes as in `@mui/x-data-grid-pro@8.10.2`.
39
+
40
+ ### Date and Time Pickers
41
+
42
+ #### `@mui/x-date-pickers@8.10.2`
43
+
44
+ Internal changes.
45
+
46
+ #### `@mui/x-date-pickers-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
47
+
48
+ Same changes as in `@mui/x-date-pickers@8.10.2`.
49
+
50
+ ### Charts
51
+
52
+ #### `@mui/x-charts@8.10.2`
53
+
54
+ Internal changes.
55
+
56
+ #### `@mui/x-charts-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
57
+
58
+ Same changes as in `@mui/x-charts@8.10.2`.
59
+
60
+ ### Tree View
61
+
62
+ #### `@mui/x-tree-view@8.10.2`
63
+
64
+ - [tree view] Add `aria-hidden` to the Tree Item Checkbox (#19246) @flaviendelangle
65
+
66
+ #### `@mui/x-tree-view-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
67
+
68
+ Same changes as in `@mui/x-tree-view@8.10.2`.
69
+
70
+ ### Codemod
71
+
72
+ #### `@mui/x-codemod@8.10.2`
73
+
74
+ Internal changes.
75
+
76
+ ### Docs
77
+
78
+ - [docs] Fix links to the pyramid chart (#19250) @alexfauquette
79
+
80
+ ### Core
81
+
82
+ - [internal] Avoid script for CI only @oliviertassinari
83
+ - [internal] Fix `renovate.json` @oliviertassinari
84
+ - [internal] Polish renovate config @oliviertassinari
85
+ - [internal] Rename core to internal (#19203) @oliviertassinari
86
+ - [internal] Update link to GitHub labels @oliviertassinari
87
+
88
+ ### Miscellaneous
89
+
90
+ - [code-infra] Prepare for incoming `execa` update (#19229) @Janpot
91
+ - [virtualizer] Fix type import (#19192) @Methuselah96
92
+ - [virtualizer] Improve type export (#19192) @Methuselah96
93
+
94
+ ## 8.10.1
95
+
96
+ _Aug 15, 2025_
97
+
98
+ We'd like to extend a big thank you to the 8 contributors who made this release possible. Here are some highlights ✨:
99
+
100
+ - 📊 Y-axes can now be grouped by category when using `band` and `point` scales.
101
+ - 📚 Documentation improvements
102
+
103
+ The following are all team members who have contributed to this release:
104
+ @alexfauquette, @bernardobelchior, @Janpot, @JCQuintas, @mnajdova, @oliviertassinari, @prakhargupta1, @romgrk
105
+
106
+ ### Data Grid
107
+
108
+ #### `@mui/x-data-grid@8.10.1`
109
+
110
+ - [DataGrid] Fix scroll jumping (#19156) @romgrk
111
+ - [DataGrid] Fix scroll restoration (#19182) @romgrk
112
+ - [DataGrid] Fix "no row with id" error (#19193) @romgrk
113
+
114
+ #### `@mui/x-data-grid-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
115
+
116
+ Same changes as in `@mui/x-data-grid@8.10.1`.
117
+
118
+ #### `@mui/x-data-grid-premium@8.10.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
119
+
120
+ Same changes as in `@mui/x-data-grid-pro@8.10.1`.
121
+
122
+ ### Date and Time Pickers
123
+
124
+ #### `@mui/x-date-pickers@8.10.0`
125
+
126
+ Internal changes.
127
+
128
+ #### `@mui/x-date-pickers-pro@8.10.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
129
+
130
+ Same changes as in `@mui/x-date-pickers@8.10.0`.
131
+
132
+ ### Charts
133
+
134
+ - Axes can now be grouped by category when using `band` and `point` scales
135
+
136
+ <img width="643" height="455" alt="Bar chart with y-axis grouped per categories" src="https://github.com/user-attachments/assets/59044afe-bcc5-4152-8bf1-225db0635025" />
137
+
138
+ #### `@mui/x-charts@8.10.1`
139
+
140
+ - [charts] Allow y-axis to be grouped (#19081) @JCQuintas
141
+ - [charts] Fix default axis highlight for axes without data attribute (#18985) @alexfauquette
142
+ - [charts] Fix tooltip mark unexpected wrapping in mobile (#19122) @bernardobelchior
143
+ - [charts] Prevent overflow on charts tooltip (#19123) @bernardobelchior
144
+
145
+ #### `@mui/x-charts-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
146
+
147
+ Same changes as in `@mui/x-charts@8.10.1`.
148
+
149
+ ### Tree View
150
+
151
+ #### `@mui/x-tree-view@8.10.1`
152
+
153
+ Internal changes.
154
+
155
+ #### `@mui/x-tree-view-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
156
+
157
+ Same changes as in `@mui/x-tree-view@8.10.1`.
158
+
159
+ ### Codemod
160
+
161
+ #### `@mui/x-codemod@8.10.1`
162
+
163
+ Internal changes.
164
+
165
+ ### Docs
166
+
167
+ - [docs] Add all planned charts on the overview page (#19077) @prakhargupta1
168
+ - [docs] Add future charts components link in the sidebar (#19140) @prakhargupta1
169
+ - [docs] Fix Heatmap docs duplicate text (#19138) @JCQuintas
170
+ - [docs] Remove preview from Toolbar & Funnel (#19131) @mnajdova
171
+ - [docs] Reproduce npm sparkline (#19089) @alexfauquette
172
+
173
+ ### Core
174
+
175
+ - [core] Fix licensing model name (#19025) @oliviertassinari
176
+ - [core] Fix usage of `:catalog` for `@babel/runtime` (#19028) @oliviertassinari
177
+ - [core] Refactor virtualizer API (#18995) @romgrk
178
+
179
+ ### Miscellaneous
180
+
181
+ - [code-infra] Remove namespaces (#19071) @Janpot
182
+ - [code-infra] Fix `fs-extra` removal from `formattedTSDemos` script (#19132) @bernardobelchior
183
+ - [code-infra] Remove unused code and dependency (#19139) @bernardobelchior
184
+ - [code-infra] Replace `fs-extra` with `node:fs` where possible (#19127) @bernardobelchior
185
+ - [internal] Edit, keep `lockFileMaintenance` simple @oliviertassinari
186
+ - [internal] Fix writing style action name @oliviertassinari
187
+ - [internal] Make it clear that `lockFileMaintenance` is enabled @oliviertassinari
188
+ - [support-infra] Remove default issue label (#19104) @oliviertassinari
189
+
8
190
  ## 8.10.0
9
191
 
10
192
  _Aug 8, 2025_
@@ -52,7 +52,7 @@ const RichTreeViewProRoot = exports.RichTreeViewProRoot = (0, _zeroStyled.styled
52
52
  outline: 0,
53
53
  position: 'relative'
54
54
  });
55
- const releaseInfo = "MTc1NDYwNDAwMDAwMA==";
55
+ const releaseInfo = "MTc1NTY0MDgwMDAwMA==";
56
56
 
57
57
  /**
58
58
  *
@@ -45,7 +45,7 @@ export const RichTreeViewProRoot = styled('ul', {
45
45
  outline: 0,
46
46
  position: 'relative'
47
47
  });
48
- const releaseInfo = "MTc1NDYwNDAwMDAwMA==";
48
+ const releaseInfo = "MTc1NTY0MDgwMDAwMA==";
49
49
 
50
50
  /**
51
51
  *
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view-pro v8.10.0
2
+ * @mui/x-tree-view-pro v8.10.2
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import useLazyRef from '@mui/utils/useLazyRef';
6
6
  import useEventCallback from '@mui/utils/useEventCallback';
7
- import { selectorItemMeta, selectorIsItemSelected, useInstanceEventHandler, selectorDataSourceState, selectorGetTreeItemError } from '@mui/x-tree-view/internals';
7
+ import { selectorItemMeta, selectorIsItemSelected, useInstanceEventHandler, selectorDataSourceState, selectorGetTreeItemError, selectorExpandedItems } from '@mui/x-tree-view/internals';
8
8
  import { DataSourceCacheDefault } from '@mui/x-tree-view/utils';
9
9
  import { NestedDataManager } from "./utils.js";
10
10
  const INITIAL_STATE = {
@@ -99,19 +99,23 @@ export const useTreeViewLazyLoading = ({
99
99
  return;
100
100
  }
101
101
  nestedDataManager.clear();
102
-
102
+ // handle loading here
103
+ instance.setTreeViewLoading(true);
103
104
  // reset the state if we are refetching the first visible items
104
105
  if (selectorDataSourceState(store.value) !== INITIAL_STATE) {
105
106
  resetDataSourceState();
106
107
  }
107
108
  // handle caching here
108
109
  const cachedData = cacheRef.current.get('root');
109
- if (cachedData !== undefined) {
110
+ if (cachedData !== undefined && cachedData !== -1) {
111
+ instance.addItems({
112
+ items: cachedData,
113
+ depth: 0,
114
+ getChildrenCount
115
+ });
116
+ instance.setTreeViewLoading(false);
110
117
  return;
111
118
  }
112
-
113
- // handle loading here
114
- instance.setTreeViewLoading(true);
115
119
  try {
116
120
  const getTreeItemsResponse = await getTreeItems();
117
121
 
@@ -206,6 +210,8 @@ export const useTreeViewLazyLoading = ({
206
210
  if (!isLazyLoadingEnabled || !eventParameters.shouldBeExpanded) {
207
211
  return;
208
212
  }
213
+ // prevent the default expansion behavior
214
+
209
215
  eventParameters.isExpansionPrevented = true;
210
216
  await instance.fetchItems([eventParameters.itemId]);
211
217
  const fetchErrors = Boolean(selectorGetTreeItemError(store.value, eventParameters.itemId));
@@ -241,6 +247,10 @@ export const useTreeViewLazyLoading = ({
241
247
  getChildrenCount
242
248
  });
243
249
  } else {
250
+ const expandedItems = selectorExpandedItems(store.value);
251
+ if (expandedItems.length > 0) {
252
+ instance.resetItemExpansion();
253
+ }
244
254
  instance.fetchItems();
245
255
  }
246
256
  firstRenderRef.current = false;
@@ -21,65 +21,63 @@ export let RequestStatus = /*#__PURE__*/function (RequestStatus) {
21
21
  * Uses `ParentId` to uniquely identify a request
22
22
  */
23
23
  export class NestedDataManager {
24
+ pendingRequests = (() => new Set())();
25
+ queuedRequests = (() => new Set())();
26
+ settledRequests = (() => new Set())();
24
27
  constructor(instance, maxConcurrentRequests = MAX_CONCURRENT_REQUESTS) {
25
- this.pendingRequests = new Set();
26
- this.queuedRequests = new Set();
27
- this.settledRequests = new Set();
28
- this.instance = void 0;
29
- this.maxConcurrentRequests = void 0;
30
- this.processQueue = async () => {
31
- if (this.queuedRequests.size === 0 || this.pendingRequests.size >= this.maxConcurrentRequests) {
32
- return;
33
- }
34
- const loopLength = Math.min(this.maxConcurrentRequests - this.pendingRequests.size, this.queuedRequests.size);
35
- if (loopLength === 0) {
36
- return;
37
- }
38
- const fetchQueue = Array.from(this.queuedRequests);
39
- const fetchPromises = [];
40
- for (let i = 0; i < loopLength; i += 1) {
41
- const id = fetchQueue[i];
42
- this.queuedRequests.delete(id);
43
- this.pendingRequests.add(id);
44
- fetchPromises.push(this.instance.fetchItemChildren(id));
45
- }
46
- await Promise.all(fetchPromises);
47
- };
48
- this.queue = async ids => {
49
- const loadingIds = {};
50
- ids.forEach(id => {
51
- this.queuedRequests.add(id);
52
- loadingIds[id] = true;
53
- });
54
- await this.processQueue();
55
- };
56
- this.setRequestSettled = async id => {
57
- this.pendingRequests.delete(id);
58
- this.settledRequests.add(id);
59
- await this.processQueue();
60
- };
61
- this.clear = () => {
62
- this.queuedRequests.clear();
63
- Array.from(this.pendingRequests).forEach(id => this.clearPendingRequest(id));
64
- };
65
- this.clearPendingRequest = async id => {
66
- this.pendingRequests.delete(id);
67
- await this.processQueue();
68
- };
69
- this.getRequestStatus = id => {
70
- if (this.pendingRequests.has(id)) {
71
- return RequestStatus.PENDING;
72
- }
73
- if (this.queuedRequests.has(id)) {
74
- return RequestStatus.QUEUED;
75
- }
76
- if (this.settledRequests.has(id)) {
77
- return RequestStatus.SETTLED;
78
- }
79
- return RequestStatus.UNKNOWN;
80
- };
81
- this.getActiveRequestsCount = () => this.pendingRequests.size + this.queuedRequests.size;
82
28
  this.instance = instance;
83
29
  this.maxConcurrentRequests = maxConcurrentRequests;
84
30
  }
31
+ processQueue = async () => {
32
+ if (this.queuedRequests.size === 0 || this.pendingRequests.size >= this.maxConcurrentRequests) {
33
+ return;
34
+ }
35
+ const loopLength = Math.min(this.maxConcurrentRequests - this.pendingRequests.size, this.queuedRequests.size);
36
+ if (loopLength === 0) {
37
+ return;
38
+ }
39
+ const fetchQueue = Array.from(this.queuedRequests);
40
+ const fetchPromises = [];
41
+ for (let i = 0; i < loopLength; i += 1) {
42
+ const id = fetchQueue[i];
43
+ this.queuedRequests.delete(id);
44
+ this.pendingRequests.add(id);
45
+ fetchPromises.push(this.instance.fetchItemChildren(id));
46
+ }
47
+ await Promise.all(fetchPromises);
48
+ };
49
+ queue = async ids => {
50
+ const loadingIds = {};
51
+ ids.forEach(id => {
52
+ this.queuedRequests.add(id);
53
+ loadingIds[id] = true;
54
+ });
55
+ await this.processQueue();
56
+ };
57
+ setRequestSettled = async id => {
58
+ this.pendingRequests.delete(id);
59
+ this.settledRequests.add(id);
60
+ await this.processQueue();
61
+ };
62
+ clear = () => {
63
+ this.queuedRequests.clear();
64
+ Array.from(this.pendingRequests).forEach(id => this.clearPendingRequest(id));
65
+ };
66
+ clearPendingRequest = async id => {
67
+ this.pendingRequests.delete(id);
68
+ await this.processQueue();
69
+ };
70
+ getRequestStatus = id => {
71
+ if (this.pendingRequests.has(id)) {
72
+ return RequestStatus.PENDING;
73
+ }
74
+ if (this.queuedRequests.has(id)) {
75
+ return RequestStatus.QUEUED;
76
+ }
77
+ if (this.settledRequests.has(id)) {
78
+ return RequestStatus.SETTLED;
79
+ }
80
+ return RequestStatus.UNKNOWN;
81
+ };
82
+ getActiveRequestsCount = () => this.pendingRequests.size + this.queuedRequests.size;
85
83
  }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view-pro v8.10.0
2
+ * @mui/x-tree-view-pro v8.10.2
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
@@ -106,19 +106,23 @@ const useTreeViewLazyLoading = ({
106
106
  return;
107
107
  }
108
108
  nestedDataManager.clear();
109
-
109
+ // handle loading here
110
+ instance.setTreeViewLoading(true);
110
111
  // reset the state if we are refetching the first visible items
111
112
  if ((0, _internals.selectorDataSourceState)(store.value) !== INITIAL_STATE) {
112
113
  resetDataSourceState();
113
114
  }
114
115
  // handle caching here
115
116
  const cachedData = cacheRef.current.get('root');
116
- if (cachedData !== undefined) {
117
+ if (cachedData !== undefined && cachedData !== -1) {
118
+ instance.addItems({
119
+ items: cachedData,
120
+ depth: 0,
121
+ getChildrenCount
122
+ });
123
+ instance.setTreeViewLoading(false);
117
124
  return;
118
125
  }
119
-
120
- // handle loading here
121
- instance.setTreeViewLoading(true);
122
126
  try {
123
127
  const getTreeItemsResponse = await getTreeItems();
124
128
 
@@ -213,6 +217,8 @@ const useTreeViewLazyLoading = ({
213
217
  if (!isLazyLoadingEnabled || !eventParameters.shouldBeExpanded) {
214
218
  return;
215
219
  }
220
+ // prevent the default expansion behavior
221
+
216
222
  eventParameters.isExpansionPrevented = true;
217
223
  await instance.fetchItems([eventParameters.itemId]);
218
224
  const fetchErrors = Boolean((0, _internals.selectorGetTreeItemError)(store.value, eventParameters.itemId));
@@ -248,6 +254,10 @@ const useTreeViewLazyLoading = ({
248
254
  getChildrenCount
249
255
  });
250
256
  } else {
257
+ const expandedItems = (0, _internals.selectorExpandedItems)(store.value);
258
+ if (expandedItems.length > 0) {
259
+ instance.resetItemExpansion();
260
+ }
251
261
  instance.fetchItems();
252
262
  }
253
263
  firstRenderRef.current = false;
@@ -24,66 +24,64 @@ let RequestStatus = exports.RequestStatus = /*#__PURE__*/function (RequestStatus
24
24
  * Uses `ParentId` to uniquely identify a request
25
25
  */
26
26
  class NestedDataManager {
27
+ pendingRequests = new Set();
28
+ queuedRequests = new Set();
29
+ settledRequests = new Set();
27
30
  constructor(instance, maxConcurrentRequests = MAX_CONCURRENT_REQUESTS) {
28
- this.pendingRequests = new Set();
29
- this.queuedRequests = new Set();
30
- this.settledRequests = new Set();
31
- this.instance = void 0;
32
- this.maxConcurrentRequests = void 0;
33
- this.processQueue = async () => {
34
- if (this.queuedRequests.size === 0 || this.pendingRequests.size >= this.maxConcurrentRequests) {
35
- return;
36
- }
37
- const loopLength = Math.min(this.maxConcurrentRequests - this.pendingRequests.size, this.queuedRequests.size);
38
- if (loopLength === 0) {
39
- return;
40
- }
41
- const fetchQueue = Array.from(this.queuedRequests);
42
- const fetchPromises = [];
43
- for (let i = 0; i < loopLength; i += 1) {
44
- const id = fetchQueue[i];
45
- this.queuedRequests.delete(id);
46
- this.pendingRequests.add(id);
47
- fetchPromises.push(this.instance.fetchItemChildren(id));
48
- }
49
- await Promise.all(fetchPromises);
50
- };
51
- this.queue = async ids => {
52
- const loadingIds = {};
53
- ids.forEach(id => {
54
- this.queuedRequests.add(id);
55
- loadingIds[id] = true;
56
- });
57
- await this.processQueue();
58
- };
59
- this.setRequestSettled = async id => {
60
- this.pendingRequests.delete(id);
61
- this.settledRequests.add(id);
62
- await this.processQueue();
63
- };
64
- this.clear = () => {
65
- this.queuedRequests.clear();
66
- Array.from(this.pendingRequests).forEach(id => this.clearPendingRequest(id));
67
- };
68
- this.clearPendingRequest = async id => {
69
- this.pendingRequests.delete(id);
70
- await this.processQueue();
71
- };
72
- this.getRequestStatus = id => {
73
- if (this.pendingRequests.has(id)) {
74
- return RequestStatus.PENDING;
75
- }
76
- if (this.queuedRequests.has(id)) {
77
- return RequestStatus.QUEUED;
78
- }
79
- if (this.settledRequests.has(id)) {
80
- return RequestStatus.SETTLED;
81
- }
82
- return RequestStatus.UNKNOWN;
83
- };
84
- this.getActiveRequestsCount = () => this.pendingRequests.size + this.queuedRequests.size;
85
31
  this.instance = instance;
86
32
  this.maxConcurrentRequests = maxConcurrentRequests;
87
33
  }
34
+ processQueue = async () => {
35
+ if (this.queuedRequests.size === 0 || this.pendingRequests.size >= this.maxConcurrentRequests) {
36
+ return;
37
+ }
38
+ const loopLength = Math.min(this.maxConcurrentRequests - this.pendingRequests.size, this.queuedRequests.size);
39
+ if (loopLength === 0) {
40
+ return;
41
+ }
42
+ const fetchQueue = Array.from(this.queuedRequests);
43
+ const fetchPromises = [];
44
+ for (let i = 0; i < loopLength; i += 1) {
45
+ const id = fetchQueue[i];
46
+ this.queuedRequests.delete(id);
47
+ this.pendingRequests.add(id);
48
+ fetchPromises.push(this.instance.fetchItemChildren(id));
49
+ }
50
+ await Promise.all(fetchPromises);
51
+ };
52
+ queue = async ids => {
53
+ const loadingIds = {};
54
+ ids.forEach(id => {
55
+ this.queuedRequests.add(id);
56
+ loadingIds[id] = true;
57
+ });
58
+ await this.processQueue();
59
+ };
60
+ setRequestSettled = async id => {
61
+ this.pendingRequests.delete(id);
62
+ this.settledRequests.add(id);
63
+ await this.processQueue();
64
+ };
65
+ clear = () => {
66
+ this.queuedRequests.clear();
67
+ Array.from(this.pendingRequests).forEach(id => this.clearPendingRequest(id));
68
+ };
69
+ clearPendingRequest = async id => {
70
+ this.pendingRequests.delete(id);
71
+ await this.processQueue();
72
+ };
73
+ getRequestStatus = id => {
74
+ if (this.pendingRequests.has(id)) {
75
+ return RequestStatus.PENDING;
76
+ }
77
+ if (this.queuedRequests.has(id)) {
78
+ return RequestStatus.QUEUED;
79
+ }
80
+ if (this.settledRequests.has(id)) {
81
+ return RequestStatus.SETTLED;
82
+ }
83
+ return RequestStatus.UNKNOWN;
84
+ };
85
+ getActiveRequestsCount = () => this.pendingRequests.size + this.queuedRequests.size;
88
86
  }
89
87
  exports.NestedDataManager = NestedDataManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-tree-view-pro",
3
- "version": "8.10.0",
3
+ "version": "8.10.2",
4
4
  "author": "MUI Team",
5
5
  "description": "The Pro plan edition of the MUI X Tree View components.",
6
6
  "main": "./index.js",
@@ -33,16 +33,16 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@babel/runtime": "^7.28.2",
36
- "@mui/utils": "^7.2.0",
36
+ "@mui/utils": "^7.3.1",
37
37
  "@types/react-transition-group": "^4.4.12",
38
38
  "clsx": "^2.1.1",
39
39
  "prop-types": "^15.8.1",
40
40
  "react-transition-group": "^4.4.5",
41
41
  "reselect": "^5.1.1",
42
42
  "use-sync-external-store": "^1.5.0",
43
- "@mui/x-internals": "8.10.0",
44
- "@mui/x-tree-view": "8.10.0",
45
- "@mui/x-license": "8.10.0"
43
+ "@mui/x-internals": "8.10.2",
44
+ "@mui/x-tree-view": "8.10.2",
45
+ "@mui/x-license": "8.10.2"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@emotion/react": "^11.9.0",
@@ -63,31 +63,30 @@
63
63
  "engines": {
64
64
  "node": ">=14.0.0"
65
65
  },
66
- "private": false,
66
+ "type": "commonjs",
67
+ "types": "./index.d.ts",
67
68
  "exports": {
68
69
  "./package.json": "./package.json",
69
70
  ".": {
70
- "require": {
71
- "types": "./index.d.ts",
72
- "default": "./index.js"
73
- },
74
71
  "import": {
75
72
  "types": "./esm/index.d.ts",
76
73
  "default": "./esm/index.js"
74
+ },
75
+ "require": {
76
+ "types": "./index.d.ts",
77
+ "default": "./index.js"
77
78
  }
78
79
  },
79
80
  "./*": {
80
- "require": {
81
- "types": "./*/index.d.ts",
82
- "default": "./*/index.js"
83
- },
84
81
  "import": {
85
82
  "types": "./esm/*/index.d.ts",
86
83
  "default": "./esm/*/index.js"
84
+ },
85
+ "require": {
86
+ "types": "./*/index.d.ts",
87
+ "default": "./*/index.js"
87
88
  }
88
89
  },
89
- "./esm": null,
90
- "./modern": null
91
- },
92
- "types": "./index.d.ts"
90
+ "./esm": null
91
+ }
93
92
  }