@mui/x-tree-view 7.9.0 → 7.11.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 (58) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/RichTreeView/RichTreeView.js +2 -0
  3. package/SimpleTreeView/SimpleTreeView.js +2 -0
  4. package/TreeItem2/TreeItem2.d.ts +1 -1
  5. package/TreeView/TreeView.js +2 -0
  6. package/index.js +1 -1
  7. package/internals/corePlugins/corePlugins.d.ts +1 -1
  8. package/internals/corePlugins/corePlugins.js +2 -1
  9. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +1 -1
  10. package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +2 -0
  11. package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +1 -0
  12. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +3 -0
  13. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +12 -0
  14. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +8 -0
  15. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +1 -0
  16. package/internals/models/plugin.d.ts +1 -0
  17. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +19 -3
  18. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +13 -8
  19. package/internals/useTreeView/useTreeView.js +9 -63
  20. package/internals/useTreeView/useTreeViewBuildContext.d.ts +10 -0
  21. package/internals/useTreeView/useTreeViewBuildContext.js +73 -0
  22. package/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  23. package/internals/useTreeView/useTreeViewPlugins.js +0 -0
  24. package/internals/utils/plugins.d.ts +2 -0
  25. package/internals/utils/plugins.js +4 -0
  26. package/modern/RichTreeView/RichTreeView.js +2 -0
  27. package/modern/SimpleTreeView/SimpleTreeView.js +2 -0
  28. package/modern/TreeView/TreeView.js +2 -0
  29. package/modern/index.js +1 -1
  30. package/modern/internals/corePlugins/corePlugins.js +2 -1
  31. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +1 -1
  32. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +1 -0
  33. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +12 -0
  34. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +1 -0
  35. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +19 -3
  36. package/modern/internals/useTreeView/useTreeView.js +9 -63
  37. package/modern/internals/useTreeView/useTreeViewBuildContext.js +73 -0
  38. package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
  39. package/modern/internals/utils/plugins.js +4 -0
  40. package/node/RichTreeView/RichTreeView.js +2 -0
  41. package/node/SimpleTreeView/SimpleTreeView.js +2 -0
  42. package/node/TreeView/TreeView.js +2 -0
  43. package/node/index.js +1 -1
  44. package/node/internals/corePlugins/corePlugins.js +2 -1
  45. package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +1 -1
  46. package/node/internals/corePlugins/useTreeViewOptionalPlugins/index.js +12 -0
  47. package/node/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +19 -0
  48. package/node/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +5 -0
  49. package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +19 -3
  50. package/node/internals/useTreeView/useTreeView.js +9 -63
  51. package/node/internals/useTreeView/useTreeViewBuildContext.js +80 -0
  52. package/node/internals/useTreeView/useTreeViewPlugins.js +1 -0
  53. package/node/internals/utils/plugins.js +11 -0
  54. package/package.json +6 -5
  55. package/internals/utils/EventManager.d.ts +0 -29
  56. package/internals/utils/EventManager.js +0 -69
  57. package/modern/internals/utils/EventManager.js +0 -69
  58. package/node/internals/utils/EventManager.js +0 -76
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-tree-view",
3
- "version": "7.9.0",
3
+ "version": "7.11.0",
4
4
  "description": "The community edition of the Tree View components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -33,14 +33,15 @@
33
33
  "directory": "packages/x-tree-view"
34
34
  },
35
35
  "dependencies": {
36
- "@babel/runtime": "^7.24.7",
36
+ "@babel/runtime": "^7.24.8",
37
37
  "@mui/base": "^5.0.0-beta.40",
38
- "@mui/system": "^5.16.0",
39
- "@mui/utils": "^5.16.0",
38
+ "@mui/system": "^5.16.2",
39
+ "@mui/utils": "^5.16.2",
40
40
  "@types/react-transition-group": "^4.4.10",
41
41
  "clsx": "^2.1.1",
42
42
  "prop-types": "^15.8.1",
43
- "react-transition-group": "^4.4.5"
43
+ "react-transition-group": "^4.4.5",
44
+ "@mui/x-internals": "7.11.0"
44
45
  },
45
46
  "peerDependencies": {
46
47
  "@emotion/react": "^11.9.0",
@@ -1,29 +0,0 @@
1
- export type EventListener = (...args: any[]) => void;
2
- export interface EventListenerOptions {
3
- isFirst?: boolean;
4
- }
5
- interface EventListenerCollection {
6
- /**
7
- * List of listeners to run before the others
8
- * They are run in the opposite order of the registration order
9
- */
10
- highPriority: Map<EventListener, true>;
11
- /**
12
- * List of events to run after the high priority listeners
13
- * They are run in the registration order
14
- */
15
- regular: Map<EventListener, true>;
16
- }
17
- export declare class EventManager {
18
- maxListeners: number;
19
- warnOnce: boolean;
20
- events: {
21
- [eventName: string]: EventListenerCollection;
22
- };
23
- on(eventName: string, listener: EventListener, options?: EventListenerOptions): void;
24
- removeListener(eventName: string, listener: EventListener): void;
25
- removeAllListeners(): void;
26
- emit(eventName: string, ...args: any[]): void;
27
- once(eventName: string, listener: EventListener): void;
28
- }
29
- export {};
@@ -1,69 +0,0 @@
1
- // Used https://gist.github.com/mudge/5830382 as a starting point.
2
- // See https://github.com/browserify/events/blob/master/events.js for
3
- // the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.
4
- export class EventManager {
5
- constructor() {
6
- this.maxListeners = 20;
7
- this.warnOnce = false;
8
- this.events = {};
9
- }
10
- on(eventName, listener, options = {}) {
11
- let collection = this.events[eventName];
12
- if (!collection) {
13
- collection = {
14
- highPriority: new Map(),
15
- regular: new Map()
16
- };
17
- this.events[eventName] = collection;
18
- }
19
- if (options.isFirst) {
20
- collection.highPriority.set(listener, true);
21
- } else {
22
- collection.regular.set(listener, true);
23
- }
24
- if (process.env.NODE_ENV !== 'production') {
25
- const collectionSize = collection.highPriority.size + collection.regular.size;
26
- if (collectionSize > this.maxListeners && !this.warnOnce) {
27
- this.warnOnce = true;
28
- console.warn([`Possible EventEmitter memory leak detected. ${collectionSize} ${eventName} listeners added.`].join('\n'));
29
- }
30
- }
31
- }
32
- removeListener(eventName, listener) {
33
- if (this.events[eventName]) {
34
- this.events[eventName].regular.delete(listener);
35
- this.events[eventName].highPriority.delete(listener);
36
- }
37
- }
38
- removeAllListeners() {
39
- this.events = {};
40
- }
41
- emit(eventName, ...args) {
42
- const collection = this.events[eventName];
43
- if (!collection) {
44
- return;
45
- }
46
- const highPriorityListeners = Array.from(collection.highPriority.keys());
47
- const regularListeners = Array.from(collection.regular.keys());
48
- for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {
49
- const listener = highPriorityListeners[i];
50
- if (collection.highPriority.has(listener)) {
51
- listener.apply(this, args);
52
- }
53
- }
54
- for (let i = 0; i < regularListeners.length; i += 1) {
55
- const listener = regularListeners[i];
56
- if (collection.regular.has(listener)) {
57
- listener.apply(this, args);
58
- }
59
- }
60
- }
61
- once(eventName, listener) {
62
- // eslint-disable-next-line consistent-this
63
- const that = this;
64
- this.on(eventName, function oneTimeListener(...args) {
65
- that.removeListener(eventName, oneTimeListener);
66
- listener.apply(that, args);
67
- });
68
- }
69
- }
@@ -1,69 +0,0 @@
1
- // Used https://gist.github.com/mudge/5830382 as a starting point.
2
- // See https://github.com/browserify/events/blob/master/events.js for
3
- // the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.
4
- export class EventManager {
5
- constructor() {
6
- this.maxListeners = 20;
7
- this.warnOnce = false;
8
- this.events = {};
9
- }
10
- on(eventName, listener, options = {}) {
11
- let collection = this.events[eventName];
12
- if (!collection) {
13
- collection = {
14
- highPriority: new Map(),
15
- regular: new Map()
16
- };
17
- this.events[eventName] = collection;
18
- }
19
- if (options.isFirst) {
20
- collection.highPriority.set(listener, true);
21
- } else {
22
- collection.regular.set(listener, true);
23
- }
24
- if (process.env.NODE_ENV !== 'production') {
25
- const collectionSize = collection.highPriority.size + collection.regular.size;
26
- if (collectionSize > this.maxListeners && !this.warnOnce) {
27
- this.warnOnce = true;
28
- console.warn([`Possible EventEmitter memory leak detected. ${collectionSize} ${eventName} listeners added.`].join('\n'));
29
- }
30
- }
31
- }
32
- removeListener(eventName, listener) {
33
- if (this.events[eventName]) {
34
- this.events[eventName].regular.delete(listener);
35
- this.events[eventName].highPriority.delete(listener);
36
- }
37
- }
38
- removeAllListeners() {
39
- this.events = {};
40
- }
41
- emit(eventName, ...args) {
42
- const collection = this.events[eventName];
43
- if (!collection) {
44
- return;
45
- }
46
- const highPriorityListeners = Array.from(collection.highPriority.keys());
47
- const regularListeners = Array.from(collection.regular.keys());
48
- for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {
49
- const listener = highPriorityListeners[i];
50
- if (collection.highPriority.has(listener)) {
51
- listener.apply(this, args);
52
- }
53
- }
54
- for (let i = 0; i < regularListeners.length; i += 1) {
55
- const listener = regularListeners[i];
56
- if (collection.regular.has(listener)) {
57
- listener.apply(this, args);
58
- }
59
- }
60
- }
61
- once(eventName, listener) {
62
- // eslint-disable-next-line consistent-this
63
- const that = this;
64
- this.on(eventName, function oneTimeListener(...args) {
65
- that.removeListener(eventName, oneTimeListener);
66
- listener.apply(that, args);
67
- });
68
- }
69
- }
@@ -1,76 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EventManager = void 0;
7
- // Used https://gist.github.com/mudge/5830382 as a starting point.
8
- // See https://github.com/browserify/events/blob/master/events.js for
9
- // the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.
10
- class EventManager {
11
- constructor() {
12
- this.maxListeners = 20;
13
- this.warnOnce = false;
14
- this.events = {};
15
- }
16
- on(eventName, listener, options = {}) {
17
- let collection = this.events[eventName];
18
- if (!collection) {
19
- collection = {
20
- highPriority: new Map(),
21
- regular: new Map()
22
- };
23
- this.events[eventName] = collection;
24
- }
25
- if (options.isFirst) {
26
- collection.highPriority.set(listener, true);
27
- } else {
28
- collection.regular.set(listener, true);
29
- }
30
- if (process.env.NODE_ENV !== 'production') {
31
- const collectionSize = collection.highPriority.size + collection.regular.size;
32
- if (collectionSize > this.maxListeners && !this.warnOnce) {
33
- this.warnOnce = true;
34
- console.warn([`Possible EventEmitter memory leak detected. ${collectionSize} ${eventName} listeners added.`].join('\n'));
35
- }
36
- }
37
- }
38
- removeListener(eventName, listener) {
39
- if (this.events[eventName]) {
40
- this.events[eventName].regular.delete(listener);
41
- this.events[eventName].highPriority.delete(listener);
42
- }
43
- }
44
- removeAllListeners() {
45
- this.events = {};
46
- }
47
- emit(eventName, ...args) {
48
- const collection = this.events[eventName];
49
- if (!collection) {
50
- return;
51
- }
52
- const highPriorityListeners = Array.from(collection.highPriority.keys());
53
- const regularListeners = Array.from(collection.regular.keys());
54
- for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {
55
- const listener = highPriorityListeners[i];
56
- if (collection.highPriority.has(listener)) {
57
- listener.apply(this, args);
58
- }
59
- }
60
- for (let i = 0; i < regularListeners.length; i += 1) {
61
- const listener = regularListeners[i];
62
- if (collection.regular.has(listener)) {
63
- listener.apply(this, args);
64
- }
65
- }
66
- }
67
- once(eventName, listener) {
68
- // eslint-disable-next-line consistent-this
69
- const that = this;
70
- this.on(eventName, function oneTimeListener(...args) {
71
- that.removeListener(eventName, oneTimeListener);
72
- listener.apply(that, args);
73
- });
74
- }
75
- }
76
- exports.EventManager = EventManager;