@mui/x-tree-view 6.0.0-alpha.3 → 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.
- package/CHANGELOG.md +83 -0
- package/TreeItem/TreeItem.js +18 -31
- package/TreeItem/useTreeItem.js +18 -27
- package/TreeView/TreeView.d.ts +4 -1
- package/TreeView/TreeView.js +65 -708
- package/TreeView/TreeView.types.d.ts +4 -147
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/{TreeView/descendants.d.ts → internals/TreeViewProvider/DescendantProvider.d.ts} +1 -5
- package/internals/TreeViewProvider/TreeViewContext.d.ts +7 -0
- package/{TreeView → internals/TreeViewProvider}/TreeViewContext.js +8 -18
- package/internals/TreeViewProvider/TreeViewProvider.d.ts +9 -0
- package/internals/TreeViewProvider/TreeViewProvider.js +21 -0
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +18 -0
- package/internals/TreeViewProvider/index.d.ts +2 -0
- package/internals/TreeViewProvider/index.js +1 -0
- package/internals/TreeViewProvider/useTreeViewContext.d.ts +3 -0
- package/internals/TreeViewProvider/useTreeViewContext.js +3 -0
- package/internals/corePlugins/corePlugins.d.ts +7 -0
- package/internals/corePlugins/corePlugins.js +6 -0
- package/internals/corePlugins/index.d.ts +2 -0
- package/internals/corePlugins/index.js +1 -0
- package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +2 -0
- package/internals/corePlugins/useTreeViewInstanceEvents/index.js +1 -0
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +8 -0
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +35 -0
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +21 -0
- package/internals/hooks/useInstanceEventHandler.d.ts +15 -0
- package/internals/hooks/useInstanceEventHandler.js +82 -0
- package/internals/models/events.d.ts +9 -0
- package/internals/models/helpers.d.ts +13 -0
- package/internals/models/helpers.js +1 -0
- package/internals/models/index.d.ts +3 -0
- package/internals/models/index.js +3 -0
- package/internals/models/plugin.d.ts +69 -0
- package/internals/models/plugin.js +1 -0
- package/internals/models/treeView.d.ts +23 -0
- package/internals/models/treeView.js +1 -0
- package/internals/plugins/defaultPlugins.d.ts +10 -0
- package/internals/plugins/defaultPlugins.js +9 -0
- package/internals/plugins/index.d.ts +2 -0
- package/internals/plugins/index.js +1 -0
- package/internals/plugins/useTreeViewContextValueBuilder/index.d.ts +2 -0
- package/internals/plugins/useTreeViewContextValueBuilder/index.js +1 -0
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.d.ts +3 -0
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +24 -0
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.d.ts +34 -0
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +1 -0
- package/internals/plugins/useTreeViewExpansion/index.d.ts +2 -0
- package/internals/plugins/useTreeViewExpansion/index.js +1 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +3 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +63 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +32 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +1 -0
- package/internals/plugins/useTreeViewFocus/index.d.ts +2 -0
- package/internals/plugins/useTreeViewFocus/index.js +1 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +3 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +77 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +25 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +1 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +2 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/index.js +1 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +3 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +223 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +14 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +1 -0
- package/internals/plugins/useTreeViewNodes/index.d.ts +2 -0
- package/internals/plugins/useTreeViewNodes/index.js +1 -0
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.d.ts +3 -0
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +60 -0
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +27 -0
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +1 -0
- package/internals/plugins/useTreeViewSelection/index.d.ts +2 -0
- package/internals/plugins/useTreeViewSelection/index.js +1 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +3 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +172 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +49 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +1 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +17 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +55 -0
- package/internals/useTreeView/index.d.ts +2 -0
- package/internals/useTreeView/index.js +1 -0
- package/internals/useTreeView/useTreeView.d.ts +3 -0
- package/internals/useTreeView/useTreeView.js +65 -0
- package/internals/useTreeView/useTreeView.types.d.ts +20 -0
- package/internals/useTreeView/useTreeView.types.js +1 -0
- package/internals/useTreeView/useTreeView.utils.d.ts +8 -0
- package/internals/useTreeView/useTreeView.utils.js +43 -0
- package/internals/useTreeView/useTreeViewModels.d.ts +6 -0
- package/internals/useTreeView/useTreeViewModels.js +63 -0
- package/internals/utils/EventManager.d.ts +29 -0
- package/internals/utils/EventManager.js +69 -0
- package/internals/utils/cleanupTracking/CleanupTracking.d.ts +9 -0
- package/internals/utils/cleanupTracking/CleanupTracking.js +1 -0
- package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +7 -0
- package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +18 -0
- package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +10 -0
- package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +38 -0
- package/internals/utils/publishTreeViewEvent.d.ts +5 -0
- package/internals/utils/publishTreeViewEvent.js +3 -0
- package/legacy/TreeItem/TreeItem.js +21 -32
- package/legacy/TreeItem/useTreeItem.js +18 -27
- package/legacy/TreeView/TreeView.js +65 -766
- package/legacy/index.js +3 -2
- package/legacy/internals/TreeViewProvider/TreeViewContext.js +21 -0
- package/legacy/internals/TreeViewProvider/TreeViewProvider.js +19 -0
- package/legacy/internals/TreeViewProvider/TreeViewProvider.types.js +1 -0
- package/legacy/internals/TreeViewProvider/index.js +1 -0
- package/legacy/internals/TreeViewProvider/useTreeViewContext.js +5 -0
- package/legacy/internals/corePlugins/corePlugins.js +6 -0
- package/legacy/internals/corePlugins/index.js +1 -0
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/index.js +1 -0
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +45 -0
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +1 -0
- package/legacy/internals/hooks/useInstanceEventHandler.js +87 -0
- package/legacy/internals/models/events.js +1 -0
- package/legacy/internals/models/helpers.js +1 -0
- package/legacy/internals/models/index.js +3 -0
- package/legacy/internals/models/plugin.js +1 -0
- package/legacy/internals/models/treeView.js +1 -0
- package/legacy/internals/plugins/defaultPlugins.js +9 -0
- package/legacy/internals/plugins/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +25 -0
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewExpansion/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +66 -0
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewFocus/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +87 -0
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +226 -0
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewNodes/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +71 -0
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewSelection/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +188 -0
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +55 -0
- package/legacy/internals/useTreeView/index.js +1 -0
- package/legacy/internals/useTreeView/useTreeView.js +71 -0
- package/legacy/internals/useTreeView/useTreeView.types.js +1 -0
- package/legacy/internals/useTreeView/useTreeView.utils.js +46 -0
- package/legacy/internals/useTreeView/useTreeViewModels.js +76 -0
- package/legacy/internals/utils/EventManager.js +91 -0
- package/legacy/internals/utils/cleanupTracking/CleanupTracking.js +1 -0
- package/legacy/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +29 -0
- package/legacy/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +52 -0
- package/legacy/internals/utils/publishTreeViewEvent.js +3 -0
- package/modern/TreeItem/TreeItem.js +18 -31
- package/modern/TreeItem/useTreeItem.js +18 -27
- package/modern/TreeView/TreeView.js +65 -707
- package/modern/index.js +3 -2
- package/modern/{TreeView → internals/TreeViewProvider}/TreeViewContext.js +8 -18
- package/modern/internals/TreeViewProvider/TreeViewProvider.js +21 -0
- package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +1 -0
- package/modern/internals/TreeViewProvider/index.js +1 -0
- package/modern/internals/TreeViewProvider/useTreeViewContext.js +3 -0
- package/modern/internals/corePlugins/corePlugins.js +6 -0
- package/modern/internals/corePlugins/index.js +1 -0
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +1 -0
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +35 -0
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +1 -0
- package/modern/internals/hooks/useInstanceEventHandler.js +77 -0
- package/modern/internals/models/events.js +1 -0
- package/modern/internals/models/helpers.js +1 -0
- package/modern/internals/models/index.js +3 -0
- package/modern/internals/models/plugin.js +1 -0
- package/modern/internals/models/treeView.js +1 -0
- package/modern/internals/plugins/defaultPlugins.js +9 -0
- package/modern/internals/plugins/index.js +1 -0
- package/modern/internals/plugins/useTreeViewContextValueBuilder/index.js +1 -0
- package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +24 -0
- package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +1 -0
- package/modern/internals/plugins/useTreeViewExpansion/index.js +1 -0
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +57 -0
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +1 -0
- package/modern/internals/plugins/useTreeViewFocus/index.js +1 -0
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +72 -0
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +1 -0
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +1 -0
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +222 -0
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +1 -0
- package/modern/internals/plugins/useTreeViewNodes/index.js +1 -0
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +60 -0
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +1 -0
- package/modern/internals/plugins/useTreeViewSelection/index.js +1 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +169 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +1 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +55 -0
- package/modern/internals/useTreeView/index.js +1 -0
- package/modern/internals/useTreeView/useTreeView.js +65 -0
- package/modern/internals/useTreeView/useTreeView.types.js +1 -0
- package/modern/internals/useTreeView/useTreeView.utils.js +43 -0
- package/modern/internals/useTreeView/useTreeViewModels.js +63 -0
- package/modern/internals/utils/EventManager.js +69 -0
- package/modern/internals/utils/cleanupTracking/CleanupTracking.js +1 -0
- package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +18 -0
- package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +38 -0
- package/modern/internals/utils/publishTreeViewEvent.js +3 -0
- package/node/TreeItem/TreeItem.js +20 -33
- package/node/TreeItem/useTreeItem.js +18 -29
- package/node/TreeView/TreeView.js +65 -707
- package/node/index.js +14 -2
- package/node/{TreeView → internals/TreeViewProvider}/TreeViewContext.js +10 -19
- package/node/internals/TreeViewProvider/TreeViewProvider.js +29 -0
- package/node/internals/TreeViewProvider/index.js +12 -0
- package/node/internals/TreeViewProvider/useTreeViewContext.js +12 -0
- package/node/internals/corePlugins/corePlugins.js +13 -0
- package/node/internals/corePlugins/index.js +12 -0
- package/node/internals/corePlugins/useTreeViewInstanceEvents/index.js +12 -0
- package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +44 -0
- package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +5 -0
- package/node/internals/hooks/useInstanceEventHandler.js +88 -0
- package/node/internals/models/events.js +5 -0
- package/node/internals/models/helpers.js +5 -0
- package/node/internals/models/index.js +38 -0
- package/node/internals/models/plugin.js +5 -0
- package/node/internals/models/treeView.js +5 -0
- package/node/internals/plugins/defaultPlugins.js +16 -0
- package/node/internals/plugins/index.js +12 -0
- package/node/internals/plugins/useTreeViewContextValueBuilder/index.js +12 -0
- package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +32 -0
- package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js +5 -0
- package/node/internals/plugins/useTreeViewExpansion/index.js +12 -0
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +67 -0
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +5 -0
- package/node/internals/plugins/useTreeViewFocus/index.js +12 -0
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +82 -0
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +5 -0
- package/node/internals/plugins/useTreeViewKeyboardNavigation/index.js +12 -0
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +232 -0
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +5 -0
- package/node/internals/plugins/useTreeViewNodes/index.js +12 -0
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +70 -0
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +5 -0
- package/node/internals/plugins/useTreeViewSelection/index.js +12 -0
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +179 -0
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +5 -0
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +62 -0
- package/node/internals/useTreeView/index.js +12 -0
- package/node/internals/useTreeView/useTreeView.js +75 -0
- package/node/internals/useTreeView/useTreeView.types.js +5 -0
- package/node/internals/useTreeView/useTreeView.utils.js +54 -0
- package/node/internals/useTreeView/useTreeViewModels.js +73 -0
- package/node/internals/utils/EventManager.js +76 -0
- package/node/internals/utils/cleanupTracking/CleanupTracking.js +5 -0
- package/node/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +25 -0
- package/node/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +45 -0
- package/node/internals/utils/publishTreeViewEvent.js +10 -0
- package/package.json +1 -1
- package/themeAugmentation/props.d.ts +1 -1
- package/TreeView/TreeViewContext.d.ts +0 -6
- package/internals/models.d.ts +0 -1
- package/legacy/TreeView/TreeViewContext.js +0 -41
- /package/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
- /package/internals/{models.js → TreeViewProvider/TreeViewProvider.types.js} +0 -0
- /package/{legacy/internals/models.js → internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js} +0 -0
- /package/{modern/internals/models.js → internals/models/events.js} +0 -0
- /package/legacy/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
- /package/modern/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
- /package/node/{TreeView/descendants.js → internals/TreeViewProvider/DescendantProvider.js} +0 -0
- /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
|
+
* @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 {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TreeViewProvider } from './TreeViewProvider';
|
|
@@ -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
|
+
};
|
package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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 @@
|
|
|
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';
|
package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js
ADDED
|
@@ -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 {};
|
|
@@ -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 {};
|
|
@@ -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 {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';
|