@mui/x-tree-view 6.0.0-alpha.2 → 6.0.0-alpha.4

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 (267) hide show
  1. package/CHANGELOG.md +162 -1
  2. package/README.md +3 -9
  3. package/TreeItem/TreeItem.d.ts +2 -2
  4. package/TreeItem/TreeItem.js +25 -34
  5. package/TreeItem/useTreeItem.js +18 -27
  6. package/TreeView/TreeView.d.ts +6 -3
  7. package/TreeView/TreeView.js +67 -710
  8. package/TreeView/TreeView.types.d.ts +4 -147
  9. package/index.d.ts +1 -0
  10. package/index.js +3 -2
  11. package/{TreeView/descendants.d.ts → internals/TreeViewProvider/DescendantProvider.d.ts} +1 -5
  12. package/internals/TreeViewProvider/TreeViewContext.d.ts +7 -0
  13. package/{TreeView → internals/TreeViewProvider}/TreeViewContext.js +8 -18
  14. package/internals/TreeViewProvider/TreeViewProvider.d.ts +9 -0
  15. package/internals/TreeViewProvider/TreeViewProvider.js +21 -0
  16. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +18 -0
  17. package/internals/TreeViewProvider/index.d.ts +2 -0
  18. package/internals/TreeViewProvider/index.js +1 -0
  19. package/internals/TreeViewProvider/useTreeViewContext.d.ts +3 -0
  20. package/internals/TreeViewProvider/useTreeViewContext.js +3 -0
  21. package/internals/corePlugins/corePlugins.d.ts +7 -0
  22. package/internals/corePlugins/corePlugins.js +6 -0
  23. package/internals/corePlugins/index.d.ts +2 -0
  24. package/internals/corePlugins/index.js +1 -0
  25. package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +2 -0
  26. package/internals/corePlugins/useTreeViewInstanceEvents/index.js +1 -0
  27. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +8 -0
  28. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +35 -0
  29. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +21 -0
  30. package/internals/hooks/useInstanceEventHandler.d.ts +15 -0
  31. package/internals/hooks/useInstanceEventHandler.js +82 -0
  32. package/internals/models/events.d.ts +9 -0
  33. package/internals/models/helpers.d.ts +13 -0
  34. package/internals/models/helpers.js +1 -0
  35. package/internals/models/index.d.ts +3 -0
  36. package/internals/models/index.js +3 -0
  37. package/internals/models/plugin.d.ts +69 -0
  38. package/internals/models/plugin.js +1 -0
  39. package/internals/models/treeView.d.ts +23 -0
  40. package/internals/models/treeView.js +1 -0
  41. package/internals/plugins/defaultPlugins.d.ts +10 -0
  42. package/internals/plugins/defaultPlugins.js +9 -0
  43. package/internals/plugins/index.d.ts +2 -0
  44. package/internals/plugins/index.js +1 -0
  45. package/internals/plugins/useTreeViewContextValueBuilder/index.d.ts +2 -0
  46. package/internals/plugins/useTreeViewContextValueBuilder/index.js +1 -0
  47. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.d.ts +3 -0
  48. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +24 -0
  49. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.d.ts +34 -0
  50. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +1 -0
  51. package/internals/plugins/useTreeViewExpansion/index.d.ts +2 -0
  52. package/internals/plugins/useTreeViewExpansion/index.js +1 -0
  53. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +3 -0
  54. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +63 -0
  55. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +32 -0
  56. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +1 -0
  57. package/internals/plugins/useTreeViewFocus/index.d.ts +2 -0
  58. package/internals/plugins/useTreeViewFocus/index.js +1 -0
  59. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +3 -0
  60. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +77 -0
  61. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +25 -0
  62. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +1 -0
  63. package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +2 -0
  64. package/internals/plugins/useTreeViewKeyboardNavigation/index.js +1 -0
  65. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +3 -0
  66. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +223 -0
  67. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +14 -0
  68. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +1 -0
  69. package/internals/plugins/useTreeViewNodes/index.d.ts +2 -0
  70. package/internals/plugins/useTreeViewNodes/index.js +1 -0
  71. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.d.ts +3 -0
  72. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +60 -0
  73. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +27 -0
  74. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +1 -0
  75. package/internals/plugins/useTreeViewSelection/index.d.ts +2 -0
  76. package/internals/plugins/useTreeViewSelection/index.js +1 -0
  77. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +3 -0
  78. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +172 -0
  79. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +49 -0
  80. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +1 -0
  81. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +17 -0
  82. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +55 -0
  83. package/internals/useTreeView/index.d.ts +2 -0
  84. package/internals/useTreeView/index.js +1 -0
  85. package/internals/useTreeView/useTreeView.d.ts +3 -0
  86. package/internals/useTreeView/useTreeView.js +65 -0
  87. package/internals/useTreeView/useTreeView.types.d.ts +20 -0
  88. package/internals/useTreeView/useTreeView.types.js +1 -0
  89. package/internals/useTreeView/useTreeView.utils.d.ts +8 -0
  90. package/internals/useTreeView/useTreeView.utils.js +43 -0
  91. package/internals/useTreeView/useTreeViewModels.d.ts +6 -0
  92. package/internals/useTreeView/useTreeViewModels.js +63 -0
  93. package/internals/utils/EventManager.d.ts +29 -0
  94. package/internals/utils/EventManager.js +69 -0
  95. package/internals/utils/cleanupTracking/CleanupTracking.d.ts +9 -0
  96. package/internals/utils/cleanupTracking/CleanupTracking.js +1 -0
  97. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +7 -0
  98. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +18 -0
  99. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +10 -0
  100. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +38 -0
  101. package/internals/utils/publishTreeViewEvent.d.ts +5 -0
  102. package/internals/utils/publishTreeViewEvent.js +3 -0
  103. package/legacy/TreeItem/TreeItem.js +28 -35
  104. package/legacy/TreeItem/useTreeItem.js +18 -27
  105. package/legacy/TreeView/TreeView.js +67 -768
  106. package/legacy/index.js +3 -2
  107. package/legacy/internals/TreeViewProvider/TreeViewContext.js +21 -0
  108. package/legacy/internals/TreeViewProvider/TreeViewProvider.js +19 -0
  109. package/legacy/internals/TreeViewProvider/TreeViewProvider.types.js +1 -0
  110. package/legacy/internals/TreeViewProvider/index.js +1 -0
  111. package/legacy/internals/TreeViewProvider/useTreeViewContext.js +5 -0
  112. package/legacy/internals/corePlugins/corePlugins.js +6 -0
  113. package/legacy/internals/corePlugins/index.js +1 -0
  114. package/legacy/internals/corePlugins/useTreeViewInstanceEvents/index.js +1 -0
  115. package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +45 -0
  116. package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +1 -0
  117. package/legacy/internals/hooks/useInstanceEventHandler.js +87 -0
  118. package/legacy/internals/models/events.js +1 -0
  119. package/legacy/internals/models/helpers.js +1 -0
  120. package/legacy/internals/models/index.js +3 -0
  121. package/legacy/internals/models/plugin.js +1 -0
  122. package/legacy/internals/models/treeView.js +1 -0
  123. package/legacy/internals/plugins/defaultPlugins.js +9 -0
  124. package/legacy/internals/plugins/index.js +1 -0
  125. package/legacy/internals/plugins/useTreeViewContextValueBuilder/index.js +1 -0
  126. package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +25 -0
  127. package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +1 -0
  128. package/legacy/internals/plugins/useTreeViewExpansion/index.js +1 -0
  129. package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +66 -0
  130. package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +1 -0
  131. package/legacy/internals/plugins/useTreeViewFocus/index.js +1 -0
  132. package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +87 -0
  133. package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +1 -0
  134. package/legacy/internals/plugins/useTreeViewKeyboardNavigation/index.js +1 -0
  135. package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +226 -0
  136. package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +1 -0
  137. package/legacy/internals/plugins/useTreeViewNodes/index.js +1 -0
  138. package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +71 -0
  139. package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +1 -0
  140. package/legacy/internals/plugins/useTreeViewSelection/index.js +1 -0
  141. package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +188 -0
  142. package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +1 -0
  143. package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +55 -0
  144. package/legacy/internals/useTreeView/index.js +1 -0
  145. package/legacy/internals/useTreeView/useTreeView.js +71 -0
  146. package/legacy/internals/useTreeView/useTreeView.types.js +1 -0
  147. package/legacy/internals/useTreeView/useTreeView.utils.js +46 -0
  148. package/legacy/internals/useTreeView/useTreeViewModels.js +76 -0
  149. package/legacy/internals/utils/EventManager.js +91 -0
  150. package/legacy/internals/utils/cleanupTracking/CleanupTracking.js +1 -0
  151. package/legacy/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +29 -0
  152. package/legacy/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +52 -0
  153. package/legacy/internals/utils/publishTreeViewEvent.js +3 -0
  154. package/modern/TreeItem/TreeItem.js +25 -34
  155. package/modern/TreeItem/useTreeItem.js +18 -27
  156. package/modern/TreeView/TreeView.js +67 -709
  157. package/modern/index.js +3 -2
  158. package/modern/{TreeView → internals/TreeViewProvider}/TreeViewContext.js +8 -18
  159. package/modern/internals/TreeViewProvider/TreeViewProvider.js +21 -0
  160. package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +1 -0
  161. package/modern/internals/TreeViewProvider/index.js +1 -0
  162. package/modern/internals/TreeViewProvider/useTreeViewContext.js +3 -0
  163. package/modern/internals/corePlugins/corePlugins.js +6 -0
  164. package/modern/internals/corePlugins/index.js +1 -0
  165. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +1 -0
  166. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +35 -0
  167. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +1 -0
  168. package/modern/internals/hooks/useInstanceEventHandler.js +77 -0
  169. package/modern/internals/models/events.js +1 -0
  170. package/modern/internals/models/helpers.js +1 -0
  171. package/modern/internals/models/index.js +3 -0
  172. package/modern/internals/models/plugin.js +1 -0
  173. package/modern/internals/models/treeView.js +1 -0
  174. package/modern/internals/plugins/defaultPlugins.js +9 -0
  175. package/modern/internals/plugins/index.js +1 -0
  176. package/modern/internals/plugins/useTreeViewContextValueBuilder/index.js +1 -0
  177. package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +24 -0
  178. package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +1 -0
  179. package/modern/internals/plugins/useTreeViewExpansion/index.js +1 -0
  180. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +57 -0
  181. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +1 -0
  182. package/modern/internals/plugins/useTreeViewFocus/index.js +1 -0
  183. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +72 -0
  184. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +1 -0
  185. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +1 -0
  186. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +222 -0
  187. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +1 -0
  188. package/modern/internals/plugins/useTreeViewNodes/index.js +1 -0
  189. package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +60 -0
  190. package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +1 -0
  191. package/modern/internals/plugins/useTreeViewSelection/index.js +1 -0
  192. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +169 -0
  193. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +1 -0
  194. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +55 -0
  195. package/modern/internals/useTreeView/index.js +1 -0
  196. package/modern/internals/useTreeView/useTreeView.js +65 -0
  197. package/modern/internals/useTreeView/useTreeView.types.js +1 -0
  198. package/modern/internals/useTreeView/useTreeView.utils.js +43 -0
  199. package/modern/internals/useTreeView/useTreeViewModels.js +63 -0
  200. package/modern/internals/utils/EventManager.js +69 -0
  201. package/modern/internals/utils/cleanupTracking/CleanupTracking.js +1 -0
  202. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +18 -0
  203. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +38 -0
  204. package/modern/internals/utils/publishTreeViewEvent.js +3 -0
  205. package/node/TreeItem/TreeItem.js +27 -36
  206. package/node/TreeItem/useTreeItem.js +18 -29
  207. package/node/TreeView/TreeView.js +67 -709
  208. package/node/index.js +14 -2
  209. package/node/{TreeView → internals/TreeViewProvider}/TreeViewContext.js +10 -19
  210. package/node/internals/TreeViewProvider/TreeViewProvider.js +29 -0
  211. package/node/internals/TreeViewProvider/index.js +12 -0
  212. package/node/internals/TreeViewProvider/useTreeViewContext.js +12 -0
  213. package/node/internals/corePlugins/corePlugins.js +13 -0
  214. package/node/internals/corePlugins/index.js +12 -0
  215. package/node/internals/corePlugins/useTreeViewInstanceEvents/index.js +12 -0
  216. package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +44 -0
  217. package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +5 -0
  218. package/node/internals/hooks/useInstanceEventHandler.js +88 -0
  219. package/node/internals/models/events.js +5 -0
  220. package/node/internals/models/helpers.js +5 -0
  221. package/node/internals/models/index.js +38 -0
  222. package/node/internals/models/plugin.js +5 -0
  223. package/node/internals/models/treeView.js +5 -0
  224. package/node/internals/plugins/defaultPlugins.js +16 -0
  225. package/node/internals/plugins/index.js +12 -0
  226. package/node/internals/plugins/useTreeViewContextValueBuilder/index.js +12 -0
  227. package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +32 -0
  228. package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +5 -0
  229. package/node/internals/plugins/useTreeViewExpansion/index.js +12 -0
  230. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +67 -0
  231. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +5 -0
  232. package/node/internals/plugins/useTreeViewFocus/index.js +12 -0
  233. package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +82 -0
  234. package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +5 -0
  235. package/node/internals/plugins/useTreeViewKeyboardNavigation/index.js +12 -0
  236. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +232 -0
  237. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +5 -0
  238. package/node/internals/plugins/useTreeViewNodes/index.js +12 -0
  239. package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +70 -0
  240. package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +5 -0
  241. package/node/internals/plugins/useTreeViewSelection/index.js +12 -0
  242. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +179 -0
  243. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +5 -0
  244. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +62 -0
  245. package/node/internals/useTreeView/index.js +12 -0
  246. package/node/internals/useTreeView/useTreeView.js +75 -0
  247. package/node/internals/useTreeView/useTreeView.types.js +5 -0
  248. package/node/internals/useTreeView/useTreeView.utils.js +54 -0
  249. package/node/internals/useTreeView/useTreeViewModels.js +73 -0
  250. package/node/internals/utils/EventManager.js +76 -0
  251. package/node/internals/utils/cleanupTracking/CleanupTracking.js +5 -0
  252. package/node/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +25 -0
  253. package/node/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +45 -0
  254. package/node/internals/utils/publishTreeViewEvent.js +10 -0
  255. package/package.json +3 -3
  256. package/themeAugmentation/props.d.ts +1 -1
  257. package/TreeView/TreeViewContext.d.ts +0 -6
  258. package/internals/models.d.ts +0 -1
  259. package/legacy/TreeView/TreeViewContext.js +0 -41
  260. /package/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
  261. /package/internals/{models.js → TreeViewProvider/TreeViewProvider.types.js} +0 -0
  262. /package/{legacy/internals/models.js → internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js} +0 -0
  263. /package/{modern/internals/models.js → internals/models/events.js} +0 -0
  264. /package/legacy/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
  265. /package/modern/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
  266. /package/node/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
  267. /package/node/internals/{models.js → TreeViewProvider/TreeViewProvider.types.js} +0 -0
package/legacy/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
- * @mui/x-tree-view v6.0.0-alpha.2
2
+ * @mui/x-tree-view v6.0.0-alpha.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  export * from './TreeItem';
9
- export * from './TreeView';
9
+ export * from './TreeView';
10
+ export { unstable_resetCleanupTracking } from './internals/hooks/useInstanceEventHandler';
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ export var DEFAULT_TREE_VIEW_CONTEXT_VALUE = {
3
+ instance: null,
4
+ multiSelect: false,
5
+ disabledItemsFocusable: false,
6
+ treeId: undefined,
7
+ icons: {
8
+ defaultCollapseIcon: null,
9
+ defaultExpandIcon: null,
10
+ defaultParentIcon: null,
11
+ defaultEndIcon: null
12
+ }
13
+ };
14
+
15
+ /**
16
+ * @ignore - internal component.
17
+ */
18
+ export var TreeViewContext = /*#__PURE__*/React.createContext(DEFAULT_TREE_VIEW_CONTEXT_VALUE);
19
+ if (process.env.NODE_ENV !== 'production') {
20
+ TreeViewContext.displayName = 'TreeViewContext';
21
+ }
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { TreeViewContext } from './TreeViewContext';
3
+ import { DescendantProvider } from './DescendantProvider';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ /**
6
+ * Sets up the contexts for the underlying TreeItem components.
7
+ *
8
+ * @ignore - do not document.
9
+ */
10
+ export function TreeViewProvider(props) {
11
+ var value = props.value,
12
+ children = props.children;
13
+ return /*#__PURE__*/_jsx(TreeViewContext.Provider, {
14
+ value: value,
15
+ children: /*#__PURE__*/_jsx(DescendantProvider, {
16
+ children: children
17
+ })
18
+ });
19
+ }
@@ -0,0 +1 @@
1
+ export { TreeViewProvider } from './TreeViewProvider';
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { TreeViewContext } from './TreeViewContext';
3
+ export var useTreeViewContext = function useTreeViewContext() {
4
+ return React.useContext(TreeViewContext);
5
+ };
@@ -0,0 +1,6 @@
1
+ import { useTreeViewInstanceEvents } from './useTreeViewInstanceEvents';
2
+ /**
3
+ * Internal plugins that creates the tools used by the other plugins.
4
+ * These plugins are used by the tree view components.
5
+ */
6
+ export var TREE_VIEW_CORE_PLUGINS = [useTreeViewInstanceEvents];
@@ -0,0 +1 @@
1
+ export { TREE_VIEW_CORE_PLUGINS } from './corePlugins';
@@ -0,0 +1 @@
1
+ export { useTreeViewInstanceEvents } from './useTreeViewInstanceEvents';
@@ -0,0 +1,45 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import * as React from 'react';
3
+ import { EventManager } from '../../utils/EventManager';
4
+ import { populateInstance } from '../../useTreeView/useTreeView.utils';
5
+ var isSyntheticEvent = function isSyntheticEvent(event) {
6
+ return event.isPropagationStopped !== undefined;
7
+ };
8
+
9
+ /**
10
+ * Plugin responsible for the registration of the nodes defined as JSX children of the TreeView.
11
+ * When we will have both a SimpleTreeView using JSX children and a TreeView using a data prop,
12
+ * this plugin will only be used by SimpleTreeView.
13
+ */
14
+ export var useTreeViewInstanceEvents = function useTreeViewInstanceEvents(_ref) {
15
+ var instance = _ref.instance;
16
+ var _React$useState = React.useState(function () {
17
+ return new EventManager();
18
+ }),
19
+ _React$useState2 = _slicedToArray(_React$useState, 1),
20
+ eventManager = _React$useState2[0];
21
+ var publishEvent = React.useCallback(function () {
22
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23
+ args[_key] = arguments[_key];
24
+ }
25
+ var name = args[0],
26
+ params = args[1],
27
+ _args$ = args[2],
28
+ event = _args$ === void 0 ? {} : _args$;
29
+ event.defaultMuiPrevented = false;
30
+ if (isSyntheticEvent(event) && event.isPropagationStopped()) {
31
+ return;
32
+ }
33
+ eventManager.emit(name, params, event);
34
+ }, [eventManager]);
35
+ var subscribeEvent = React.useCallback(function (event, handler) {
36
+ eventManager.on(event, handler);
37
+ return function () {
38
+ eventManager.removeListener(event, handler);
39
+ };
40
+ }, [eventManager]);
41
+ populateInstance(instance, {
42
+ $$publishEvent: publishEvent,
43
+ $$subscribeEvent: subscribeEvent
44
+ });
45
+ };
@@ -0,0 +1,87 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import * as React from 'react';
5
+ import { TimerBasedCleanupTracking } from '../utils/cleanupTracking/TimerBasedCleanupTracking';
6
+ import { FinalizationRegistryBasedCleanupTracking } from '../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking';
7
+ // We use class to make it easier to detect in heap snapshots by name
8
+ var ObjectToBeRetainedByReact = /*#__PURE__*/_createClass(function ObjectToBeRetainedByReact() {
9
+ _classCallCheck(this, ObjectToBeRetainedByReact);
10
+ }); // Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts
11
+ // Check https://github.com/facebook/react/issues/15317 to get more information
12
+ export function createUseInstanceEventHandler(registryContainer) {
13
+ var cleanupTokensCounter = 0;
14
+ return function useInstanceEventHandler(instance, eventName, handler) {
15
+ if (registryContainer.registry === null) {
16
+ registryContainer.registry = typeof FinalizationRegistry !== 'undefined' ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();
17
+ }
18
+ var _React$useState = React.useState(new ObjectToBeRetainedByReact()),
19
+ _React$useState2 = _slicedToArray(_React$useState, 1),
20
+ objectRetainedByReact = _React$useState2[0];
21
+ var subscription = React.useRef(null);
22
+ var handlerRef = React.useRef();
23
+ handlerRef.current = handler;
24
+ var cleanupTokenRef = React.useRef(null);
25
+ if (!subscription.current && handlerRef.current) {
26
+ var enhancedHandler = function enhancedHandler(params, event) {
27
+ if (!event.defaultMuiPrevented) {
28
+ var _handlerRef$current;
29
+ (_handlerRef$current = handlerRef.current) == null || _handlerRef$current.call(handlerRef, params, event);
30
+ }
31
+ };
32
+ subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);
33
+ cleanupTokensCounter += 1;
34
+ cleanupTokenRef.current = {
35
+ cleanupToken: cleanupTokensCounter
36
+ };
37
+ registryContainer.registry.register(objectRetainedByReact,
38
+ // The callback below will be called once this reference stops being retained
39
+ function () {
40
+ var _subscription$current;
41
+ (_subscription$current = subscription.current) == null || _subscription$current.call(subscription);
42
+ subscription.current = null;
43
+ cleanupTokenRef.current = null;
44
+ }, cleanupTokenRef.current);
45
+ } else if (!handlerRef.current && subscription.current) {
46
+ subscription.current();
47
+ subscription.current = null;
48
+ if (cleanupTokenRef.current) {
49
+ registryContainer.registry.unregister(cleanupTokenRef.current);
50
+ cleanupTokenRef.current = null;
51
+ }
52
+ }
53
+ React.useEffect(function () {
54
+ if (!subscription.current && handlerRef.current) {
55
+ var _enhancedHandler = function _enhancedHandler(params, event) {
56
+ if (!event.defaultMuiPrevented) {
57
+ var _handlerRef$current2;
58
+ (_handlerRef$current2 = handlerRef.current) == null || _handlerRef$current2.call(handlerRef, params, event);
59
+ }
60
+ };
61
+ subscription.current = instance.$$subscribeEvent(eventName, _enhancedHandler);
62
+ }
63
+ if (cleanupTokenRef.current && registryContainer.registry) {
64
+ // If the effect was called, it means that this render was committed
65
+ // so we can trust the cleanup function to remove the listener.
66
+ registryContainer.registry.unregister(cleanupTokenRef.current);
67
+ cleanupTokenRef.current = null;
68
+ }
69
+ return function () {
70
+ var _subscription$current2;
71
+ (_subscription$current2 = subscription.current) == null || _subscription$current2.call(subscription);
72
+ subscription.current = null;
73
+ };
74
+ }, [instance, eventName]);
75
+ };
76
+ }
77
+ var registryContainer = {
78
+ registry: null
79
+ };
80
+
81
+ // eslint-disable-next-line @typescript-eslint/naming-convention
82
+ export var unstable_resetCleanupTracking = function unstable_resetCleanupTracking() {
83
+ var _registryContainer$re;
84
+ (_registryContainer$re = registryContainer.registry) == null || _registryContainer$re.reset();
85
+ registryContainer.registry = null;
86
+ };
87
+ export var useInstanceEventHandler = createUseInstanceEventHandler(registryContainer);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './helpers';
2
+ export * from './plugin';
3
+ export * from './treeView';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { useTreeViewNodes } from './useTreeViewNodes';
2
+ import { useTreeViewExpansion } from './useTreeViewExpansion';
3
+ import { useTreeViewSelection } from './useTreeViewSelection';
4
+ import { useTreeViewFocus } from './useTreeViewFocus';
5
+ import { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';
6
+ import { useTreeViewContextValueBuilder } from './useTreeViewContextValueBuilder';
7
+ export var DEFAULT_TREE_VIEW_PLUGINS = [useTreeViewNodes, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewContextValueBuilder];
8
+
9
+ // We can't infer this type from the plugin, otherwise we would lose the generics.
@@ -0,0 +1 @@
1
+ export { DEFAULT_TREE_VIEW_PLUGINS } from './defaultPlugins';
@@ -0,0 +1 @@
1
+ export { useTreeViewContextValueBuilder } from './useTreeViewContextValueBuilder';
@@ -0,0 +1,25 @@
1
+ import useId from '@mui/utils/useId';
2
+ export var useTreeViewContextValueBuilder = function useTreeViewContextValueBuilder(_ref) {
3
+ var instance = _ref.instance,
4
+ params = _ref.params;
5
+ var treeId = useId(params.id);
6
+ return {
7
+ getRootProps: function getRootProps() {
8
+ return {
9
+ id: treeId
10
+ };
11
+ },
12
+ contextValue: {
13
+ treeId: treeId,
14
+ instance: instance,
15
+ multiSelect: params.multiSelect,
16
+ disabledItemsFocusable: params.disabledItemsFocusable,
17
+ icons: {
18
+ defaultCollapseIcon: params.defaultCollapseIcon,
19
+ defaultEndIcon: params.defaultEndIcon,
20
+ defaultExpandIcon: params.defaultExpandIcon,
21
+ defaultParentIcon: params.defaultParentIcon
22
+ }
23
+ }
24
+ };
25
+ };
@@ -0,0 +1 @@
1
+ export { useTreeViewExpansion } from './useTreeViewExpansion';
@@ -0,0 +1,66 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import useEventCallback from '@mui/utils/useEventCallback';
4
+ import { populateInstance } from '../../useTreeView/useTreeView.utils';
5
+ export var useTreeViewExpansion = function useTreeViewExpansion(_ref) {
6
+ var instance = _ref.instance,
7
+ params = _ref.params,
8
+ models = _ref.models;
9
+ var isNodeExpanded = React.useCallback(function (nodeId) {
10
+ return Array.isArray(models.expanded.value) ? models.expanded.value.indexOf(nodeId) !== -1 : false;
11
+ }, [models.expanded.value]);
12
+ var isNodeExpandable = React.useCallback(function (nodeId) {
13
+ var _instance$getNode;
14
+ return !!((_instance$getNode = instance.getNode(nodeId)) != null && _instance$getNode.expandable);
15
+ }, [instance]);
16
+ var toggleNodeExpansion = useEventCallback(function (event, nodeId) {
17
+ if (nodeId == null) {
18
+ return;
19
+ }
20
+ var newExpanded;
21
+ if (models.expanded.value.indexOf(nodeId) !== -1) {
22
+ newExpanded = models.expanded.value.filter(function (id) {
23
+ return id !== nodeId;
24
+ });
25
+ } else {
26
+ newExpanded = [nodeId].concat(models.expanded.value);
27
+ }
28
+ if (params.onNodeToggle) {
29
+ params.onNodeToggle(event, newExpanded);
30
+ }
31
+ models.expanded.setValue(newExpanded);
32
+ });
33
+ var expandAllSiblings = function expandAllSiblings(event, nodeId) {
34
+ var node = instance.getNode(nodeId);
35
+ var siblings = instance.getChildrenIds(node.parentId);
36
+ var diff = siblings.filter(function (child) {
37
+ return instance.isNodeExpandable(child) && !instance.isNodeExpanded(child);
38
+ });
39
+ var newExpanded = models.expanded.value.concat(diff);
40
+ if (diff.length > 0) {
41
+ models.expanded.setValue(newExpanded);
42
+ if (params.onNodeToggle) {
43
+ params.onNodeToggle(event, newExpanded);
44
+ }
45
+ }
46
+ };
47
+ populateInstance(instance, {
48
+ isNodeExpanded: isNodeExpanded,
49
+ isNodeExpandable: isNodeExpandable,
50
+ toggleNodeExpansion: toggleNodeExpansion,
51
+ expandAllSiblings: expandAllSiblings
52
+ });
53
+ };
54
+ useTreeViewExpansion.models = {
55
+ expanded: {
56
+ controlledProp: 'expanded',
57
+ defaultProp: 'defaultExpanded'
58
+ }
59
+ };
60
+ var DEFAULT_EXPANDED = [];
61
+ useTreeViewExpansion.getDefaultizedParams = function (params) {
62
+ var _params$defaultExpand;
63
+ return _extends({}, params, {
64
+ defaultExpanded: (_params$defaultExpand = params.defaultExpanded) != null ? _params$defaultExpand : DEFAULT_EXPANDED
65
+ });
66
+ };
@@ -0,0 +1 @@
1
+ export { useTreeViewFocus } from './useTreeViewFocus';
@@ -0,0 +1,87 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import useEventCallback from '@mui/utils/useEventCallback';
4
+ import ownerDocument from '@mui/utils/ownerDocument';
5
+ import { populateInstance } from '../../useTreeView/useTreeView.utils';
6
+ import { useInstanceEventHandler } from '../../hooks/useInstanceEventHandler';
7
+ export var useTreeViewFocus = function useTreeViewFocus(_ref) {
8
+ var instance = _ref.instance,
9
+ params = _ref.params,
10
+ state = _ref.state,
11
+ setState = _ref.setState,
12
+ models = _ref.models,
13
+ rootRef = _ref.rootRef;
14
+ var setFocusedNodeId = useEventCallback(function (nodeId) {
15
+ var cleanNodeId = typeof nodeId === 'function' ? nodeId(state.focusedNodeId) : nodeId;
16
+ setState(function (prevState) {
17
+ return _extends({}, prevState, {
18
+ focusedNodeId: cleanNodeId
19
+ });
20
+ });
21
+ });
22
+ var isNodeFocused = React.useCallback(function (nodeId) {
23
+ return state.focusedNodeId === nodeId;
24
+ }, [state.focusedNodeId]);
25
+ var focusNode = useEventCallback(function (event, nodeId) {
26
+ if (nodeId) {
27
+ setFocusedNodeId(nodeId);
28
+ if (params.onNodeFocus) {
29
+ params.onNodeFocus(event, nodeId);
30
+ }
31
+ }
32
+ });
33
+ populateInstance(instance, {
34
+ isNodeFocused: isNodeFocused,
35
+ focusNode: focusNode
36
+ });
37
+ useInstanceEventHandler(instance, 'removeNode', function (_ref2) {
38
+ var id = _ref2.id;
39
+ setFocusedNodeId(function (oldFocusedNodeId) {
40
+ if (oldFocusedNodeId === id && rootRef.current === ownerDocument(rootRef.current).activeElement) {
41
+ return instance.getChildrenIds(null)[0];
42
+ }
43
+ return oldFocusedNodeId;
44
+ });
45
+ });
46
+ var createHandleFocus = function createHandleFocus(otherHandlers) {
47
+ return function (event) {
48
+ var _otherHandlers$onFocu;
49
+ (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);
50
+
51
+ // if the event bubbled (which is React specific) we don't want to steal focus
52
+ if (event.target === event.currentTarget) {
53
+ var firstSelected = Array.isArray(models.selected.value) ? models.selected.value[0] : models.selected.value;
54
+ instance.focusNode(event, firstSelected || instance.getNavigableChildrenIds(null)[0]);
55
+ }
56
+ };
57
+ };
58
+ var createHandleBlur = function createHandleBlur(otherHandlers) {
59
+ return function (event) {
60
+ var _otherHandlers$onBlur;
61
+ (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);
62
+ setFocusedNodeId(null);
63
+ };
64
+ };
65
+ var focusedNode = instance.getNode(state.focusedNodeId);
66
+ var activeDescendant = focusedNode ? focusedNode.idAttribute : null;
67
+ return {
68
+ getRootProps: function getRootProps(otherHandlers) {
69
+ return {
70
+ onFocus: createHandleFocus(otherHandlers),
71
+ onBlur: createHandleBlur(otherHandlers),
72
+ 'aria-activedescendant': activeDescendant != null ? activeDescendant : undefined
73
+ };
74
+ }
75
+ };
76
+ };
77
+ useTreeViewFocus.getInitialState = function () {
78
+ return {
79
+ focusedNodeId: null
80
+ };
81
+ };
82
+ useTreeViewFocus.getDefaultizedParams = function (params) {
83
+ var _params$disabledItems;
84
+ return _extends({}, params, {
85
+ disabledItemsFocusable: (_params$disabledItems = params.disabledItemsFocusable) != null ? _params$disabledItems : false
86
+ });
87
+ };
@@ -0,0 +1 @@
1
+ export { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';