@mui/x-tree-view 8.22.0 → 8.24.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.
- package/CHANGELOG.md +312 -0
- package/RichTreeView/RichTreeView.d.ts +1 -1
- package/RichTreeView/RichTreeView.js +41 -28
- package/RichTreeView/RichTreeView.types.d.ts +6 -4
- package/RichTreeView/index.d.ts +1 -3
- package/RichTreeView/index.js +1 -13
- package/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
- package/RichTreeView/useExtractRichTreeViewParameters.js +91 -0
- package/SimpleTreeView/SimpleTreeView.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.js +30 -24
- package/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
- package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
- package/SimpleTreeView/useExtractSimpleTreeViewParameters.js +78 -0
- package/TreeItem/TreeItem.d.ts +1 -1
- package/TreeItem/TreeItem.js +9 -2
- package/TreeItemProvider/TreeItemProvider.js +3 -10
- package/esm/RichTreeView/RichTreeView.d.ts +1 -1
- package/esm/RichTreeView/RichTreeView.js +40 -27
- package/esm/RichTreeView/RichTreeView.types.d.ts +6 -4
- package/esm/RichTreeView/index.d.ts +1 -3
- package/esm/RichTreeView/index.js +1 -1
- package/esm/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
- package/esm/RichTreeView/useExtractRichTreeViewParameters.js +83 -0
- package/esm/SimpleTreeView/SimpleTreeView.d.ts +1 -1
- package/esm/SimpleTreeView/SimpleTreeView.js +29 -23
- package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
- package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
- package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +70 -0
- package/esm/TreeItem/TreeItem.d.ts +1 -1
- package/esm/TreeItem/TreeItem.js +9 -2
- package/esm/TreeItemProvider/TreeItemProvider.js +3 -10
- package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
- package/esm/hooks/useRichTreeViewApiRef.d.ts +2 -2
- package/esm/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
- package/esm/hooks/useTreeItemModel.d.ts +2 -2
- package/esm/hooks/useTreeItemModel.js +1 -1
- package/esm/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
- package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +26 -35
- package/esm/hooks/useTreeViewApiRef.d.ts +3 -5
- package/esm/hooks/useTreeViewApiRef.js +4 -3
- package/esm/index.d.ts +0 -1
- package/esm/index.js +1 -2
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +126 -0
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +49 -0
- package/esm/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
- package/esm/internals/MinimalTreeViewStore/TimeoutManager.js +39 -0
- package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
- package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +16 -0
- package/esm/internals/MinimalTreeViewStore/index.d.ts +2 -0
- package/esm/internals/MinimalTreeViewStore/index.js +2 -0
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.js +21 -0
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +15 -0
- package/esm/internals/RichTreeViewStore/index.d.ts +3 -0
- package/esm/internals/RichTreeViewStore/index.js +3 -0
- package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
- package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +18 -0
- package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
- package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
- package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +5 -0
- package/esm/internals/SimpleTreeViewStore/index.d.ts +2 -0
- package/esm/internals/SimpleTreeViewStore/index.js +2 -0
- package/esm/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
- package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -3
- package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
- package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
- package/esm/internals/TreeViewProvider/TreeViewProvider.js +11 -6
- package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
- package/esm/internals/TreeViewProvider/index.d.ts +1 -1
- package/esm/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
- package/esm/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
- package/esm/internals/components/RichTreeViewItems.js +3 -3
- package/esm/internals/hooks/useTreeViewRootProps.d.ts +287 -0
- package/esm/internals/hooks/useTreeViewRootProps.js +30 -0
- package/esm/internals/hooks/useTreeViewStore.d.ts +10 -0
- package/esm/internals/hooks/useTreeViewStore.js +19 -0
- package/esm/internals/index.d.ts +15 -21
- package/esm/internals/index.js +11 -14
- package/esm/internals/models/events.d.ts +24 -3
- package/esm/internals/models/index.d.ts +2 -3
- package/esm/internals/models/index.js +2 -3
- package/esm/internals/models/itemPlugin.d.ts +9 -0
- package/esm/internals/models/treeView.d.ts +6 -9
- package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
- package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.js +124 -0
- package/esm/internals/plugins/expansion/index.d.ts +2 -0
- package/esm/internals/plugins/expansion/index.js +2 -0
- package/esm/internals/plugins/expansion/selectors.d.ts +27 -0
- package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +5 -5
- package/esm/internals/plugins/expansion/utils.d.ts +5 -0
- package/esm/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
- package/esm/internals/plugins/focus/TreeViewFocusPlugin.js +107 -0
- package/esm/internals/plugins/focus/index.d.ts +2 -0
- package/esm/internals/plugins/focus/index.js +2 -0
- package/esm/internals/plugins/focus/selectors.d.ts +21 -0
- package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +6 -6
- package/esm/internals/plugins/id/index.d.ts +1 -0
- package/esm/internals/plugins/id/index.js +1 -0
- package/esm/internals/plugins/id/selectors.d.ts +13 -0
- package/esm/internals/plugins/id/selectors.js +18 -0
- package/esm/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
- package/esm/internals/plugins/items/TreeViewItemsPlugin.js +223 -0
- package/esm/internals/plugins/items/index.d.ts +3 -0
- package/esm/internals/plugins/items/index.js +3 -0
- package/esm/internals/plugins/items/selectors.d.ts +60 -0
- package/esm/internals/plugins/items/selectors.js +64 -0
- package/esm/internals/plugins/items/utils.d.ts +43 -0
- package/esm/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -49
- package/esm/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
- package/esm/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +81 -0
- package/esm/internals/plugins/jsxItems/index.d.ts +1 -0
- package/esm/internals/plugins/jsxItems/index.js +1 -0
- package/esm/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
- package/esm/internals/plugins/jsxItems/itemPlugin.js +88 -0
- package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
- package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +306 -0
- package/esm/internals/plugins/keyboardNavigation/index.d.ts +1 -0
- package/esm/internals/plugins/keyboardNavigation/index.js +1 -0
- package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
- package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +50 -0
- package/esm/internals/plugins/labelEditing/index.d.ts +2 -0
- package/esm/internals/plugins/labelEditing/index.js +2 -0
- package/{internals/plugins/useTreeViewLabel → esm/internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
- package/esm/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +2 -2
- package/esm/internals/plugins/labelEditing/selectors.d.ts +15 -0
- package/esm/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
- package/esm/internals/plugins/lazyLoading/index.d.ts +2 -0
- package/esm/internals/plugins/lazyLoading/index.js +2 -0
- package/esm/internals/plugins/lazyLoading/selectors.d.ts +19 -0
- package/esm/internals/plugins/lazyLoading/selectors.js +25 -0
- package/esm/internals/plugins/lazyLoading/types.d.ts +5 -0
- package/esm/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
- package/esm/internals/plugins/selection/TreeViewSelectionPlugin.js +319 -0
- package/esm/internals/plugins/selection/index.d.ts +2 -0
- package/esm/internals/plugins/selection/index.js +2 -0
- package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
- package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +8 -8
- package/esm/internals/plugins/selection/selectors.d.ts +48 -0
- package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +19 -9
- package/esm/internals/utils/tree.d.ts +8 -10
- package/esm/internals/utils/tree.js +2 -2
- package/esm/models/items.d.ts +5 -2
- package/esm/useTreeItem/useTreeItem.d.ts +18 -2
- package/esm/useTreeItem/useTreeItem.js +15 -19
- package/esm/useTreeItem/useTreeItem.types.d.ts +9 -19
- package/hooks/useApplyPropagationToSelectedItemsOnMount.js +3 -3
- package/hooks/useRichTreeViewApiRef.d.ts +2 -2
- package/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
- package/hooks/useTreeItemModel.d.ts +2 -2
- package/hooks/useTreeItemModel.js +2 -2
- package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
- package/hooks/useTreeItemUtils/useTreeItemUtils.js +41 -49
- package/hooks/useTreeViewApiRef.d.ts +3 -5
- package/hooks/useTreeViewApiRef.js +3 -5
- package/index.d.ts +0 -1
- package/index.js +1 -22
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +134 -0
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +58 -0
- package/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
- package/internals/MinimalTreeViewStore/TimeoutManager.js +46 -0
- package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
- package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +23 -0
- package/internals/MinimalTreeViewStore/index.d.ts +2 -0
- package/internals/MinimalTreeViewStore/index.js +27 -0
- package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
- package/internals/RichTreeViewStore/RichTreeViewStore.js +30 -0
- package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
- package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
- package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +22 -0
- package/internals/RichTreeViewStore/index.d.ts +3 -0
- package/internals/RichTreeViewStore/index.js +38 -0
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +26 -0
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +11 -0
- package/internals/SimpleTreeViewStore/index.d.ts +2 -0
- package/internals/SimpleTreeViewStore/index.js +27 -0
- package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
- package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +3 -4
- package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
- package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
- package/internals/TreeViewProvider/TreeViewProvider.js +14 -9
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
- package/internals/TreeViewProvider/index.d.ts +1 -1
- package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
- package/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
- package/internals/components/RichTreeViewItems.js +9 -9
- package/internals/hooks/useTreeViewRootProps.d.ts +287 -0
- package/internals/hooks/useTreeViewRootProps.js +36 -0
- package/internals/hooks/useTreeViewStore.d.ts +10 -0
- package/internals/hooks/useTreeViewStore.js +26 -0
- package/internals/index.d.ts +15 -21
- package/internals/index.js +40 -70
- package/internals/models/events.d.ts +24 -3
- package/internals/models/index.d.ts +2 -3
- package/internals/models/index.js +11 -22
- package/internals/models/itemPlugin.d.ts +9 -0
- package/internals/models/treeView.d.ts +6 -9
- package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
- package/internals/plugins/expansion/TreeViewExpansionPlugin.js +132 -0
- package/internals/plugins/expansion/index.d.ts +2 -0
- package/internals/plugins/expansion/index.js +27 -0
- package/internals/plugins/expansion/selectors.d.ts +27 -0
- package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +8 -8
- package/internals/plugins/expansion/utils.d.ts +5 -0
- package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
- package/internals/plugins/focus/TreeViewFocusPlugin.js +114 -0
- package/internals/plugins/focus/index.d.ts +2 -0
- package/internals/plugins/focus/index.js +27 -0
- package/internals/plugins/focus/selectors.d.ts +21 -0
- package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +9 -9
- package/internals/plugins/id/index.d.ts +1 -0
- package/internals/plugins/id/index.js +16 -0
- package/internals/plugins/id/selectors.d.ts +13 -0
- package/internals/plugins/id/selectors.js +24 -0
- package/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
- package/internals/plugins/items/TreeViewItemsPlugin.js +231 -0
- package/internals/plugins/items/index.d.ts +3 -0
- package/internals/plugins/items/index.js +46 -0
- package/internals/plugins/items/selectors.d.ts +60 -0
- package/internals/plugins/{useTreeViewItems/useTreeViewItems.selectors.js → items/selectors.js} +18 -14
- package/internals/plugins/items/utils.d.ts +43 -0
- package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -50
- package/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +89 -0
- package/internals/plugins/jsxItems/index.d.ts +1 -0
- package/internals/plugins/jsxItems/index.js +16 -0
- package/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
- package/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +35 -20
- package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
- package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +313 -0
- package/internals/plugins/keyboardNavigation/index.d.ts +1 -0
- package/internals/plugins/keyboardNavigation/index.js +16 -0
- package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
- package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +58 -0
- package/internals/plugins/labelEditing/index.d.ts +2 -0
- package/internals/plugins/labelEditing/index.js +27 -0
- package/{esm/internals/plugins/useTreeViewLabel → internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
- package/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +6 -6
- package/internals/plugins/labelEditing/selectors.d.ts +15 -0
- package/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
- package/internals/plugins/lazyLoading/index.d.ts +2 -0
- package/internals/plugins/lazyLoading/index.js +27 -0
- package/internals/plugins/lazyLoading/selectors.d.ts +19 -0
- package/internals/plugins/{useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js → lazyLoading/selectors.js} +11 -6
- package/internals/plugins/lazyLoading/types.d.ts +5 -0
- package/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
- package/internals/plugins/selection/TreeViewSelectionPlugin.js +327 -0
- package/internals/plugins/selection/index.d.ts +2 -0
- package/internals/plugins/selection/index.js +27 -0
- package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
- package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +16 -16
- package/internals/plugins/selection/selectors.d.ts +48 -0
- package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +19 -9
- package/internals/utils/tree.d.ts +8 -10
- package/internals/utils/tree.js +33 -33
- package/models/items.d.ts +5 -2
- package/package.json +3 -3
- package/useTreeItem/useTreeItem.d.ts +18 -2
- package/useTreeItem/useTreeItem.js +19 -24
- package/useTreeItem/useTreeItem.types.d.ts +9 -19
- package/RichTreeView/RichTreeView.plugins.d.ts +0 -10
- package/RichTreeView/RichTreeView.plugins.js +0 -15
- package/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
- package/SimpleTreeView/SimpleTreeView.plugins.js +0 -15
- package/esm/RichTreeView/RichTreeView.plugins.d.ts +0 -10
- package/esm/RichTreeView/RichTreeView.plugins.js +0 -9
- package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
- package/esm/SimpleTreeView/SimpleTreeView.plugins.js +0 -9
- package/esm/internals/corePlugins/corePlugins.d.ts +0 -9
- package/esm/internals/corePlugins/corePlugins.js +0 -8
- package/esm/internals/corePlugins/index.d.ts +0 -2
- package/esm/internals/corePlugins/index.js +0 -1
- package/esm/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
- package/esm/internals/corePlugins/useTreeViewId/index.js +0 -2
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -38
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
- package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
- package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
- package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
- package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -31
- package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
- package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
- package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
- package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
- package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
- package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
- package/esm/internals/hooks/useInstanceEventHandler.d.ts +0 -15
- package/esm/internals/hooks/useInstanceEventHandler.js +0 -79
- package/esm/internals/models/helpers.d.ts +0 -7
- package/esm/internals/models/plugin.d.ts +0 -166
- package/esm/internals/models/plugin.js +0 -1
- package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewExpansion/index.js +0 -2
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -149
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
- package/esm/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewFocus/index.js +0 -2
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -113
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
- package/esm/internals/plugins/useTreeViewItems/index.d.ts +0 -4
- package/esm/internals/plugins/useTreeViewItems/index.js +0 -3
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -218
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -56
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -60
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -197
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
- package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewJSXItems/index.js +0 -1
- package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.js +0 -74
- package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -104
- package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -305
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
- package/esm/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewLabel/index.js +0 -2
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -70
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
- package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -20
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
- package/esm/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewSelection/index.js +0 -2
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -230
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -40
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -107
- package/esm/internals/useTreeView/index.d.ts +0 -1
- package/esm/internals/useTreeView/index.js +0 -1
- package/esm/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
- package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -51
- package/esm/internals/useTreeView/useTreeView.d.ts +0 -18
- package/esm/internals/useTreeView/useTreeView.js +0 -102
- package/esm/internals/useTreeView/useTreeView.types.d.ts +0 -20
- package/esm/internals/useTreeView/useTreeView.types.js +0 -1
- package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
- package/esm/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
- package/esm/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
- package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
- package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -14
- package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
- package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
- package/esm/internals/utils/plugins.d.ts +0 -2
- package/esm/internals/utils/plugins.js +0 -4
- package/esm/internals/utils/publishTreeViewEvent.d.ts +0 -5
- package/esm/internals/utils/publishTreeViewEvent.js +0 -3
- package/internals/corePlugins/corePlugins.d.ts +0 -9
- package/internals/corePlugins/corePlugins.js +0 -14
- package/internals/corePlugins/index.d.ts +0 -2
- package/internals/corePlugins/index.js +0 -12
- package/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
- package/internals/corePlugins/useTreeViewId/index.js +0 -19
- package/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
- package/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -46
- package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
- package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -15
- package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
- package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
- package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -34
- package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
- package/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -12
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -38
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
- package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
- package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -12
- package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
- package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -19
- package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
- package/internals/hooks/useInstanceEventHandler.d.ts +0 -15
- package/internals/hooks/useInstanceEventHandler.js +0 -87
- package/internals/models/helpers.d.ts +0 -7
- package/internals/models/plugin.d.ts +0 -166
- package/internals/models/plugin.js +0 -5
- package/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
- package/internals/plugins/useTreeViewExpansion/index.js +0 -19
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -157
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -5
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
- package/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
- package/internals/plugins/useTreeViewFocus/index.js +0 -19
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -121
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -5
- package/internals/plugins/useTreeViewItems/index.d.ts +0 -4
- package/internals/plugins/useTreeViewItems/index.js +0 -32
- package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
- package/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -226
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -56
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -197
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -5
- package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
- package/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
- package/internals/plugins/useTreeViewJSXItems/index.js +0 -12
- package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -112
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -5
- package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
- package/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -12
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -312
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -5
- package/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
- package/internals/plugins/useTreeViewLabel/index.js +0 -19
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -78
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -5
- package/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
- package/internals/plugins/useTreeViewLazyLoading/index.js +0 -12
- package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
- package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
- package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -5
- package/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
- package/internals/plugins/useTreeViewSelection/index.js +0 -19
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -239
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -40
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -5
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -116
- package/internals/useTreeView/index.d.ts +0 -1
- package/internals/useTreeView/index.js +0 -12
- package/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
- package/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -60
- package/internals/useTreeView/useTreeView.d.ts +0 -18
- package/internals/useTreeView/useTreeView.js +0 -112
- package/internals/useTreeView/useTreeView.types.d.ts +0 -20
- package/internals/useTreeView/useTreeView.types.js +0 -5
- package/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
- package/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
- package/internals/utils/cleanupTracking/CleanupTracking.js +0 -5
- package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
- package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -21
- package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
- package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -45
- package/internals/utils/plugins.d.ts +0 -2
- package/internals/utils/plugins.js +0 -11
- package/internals/utils/publishTreeViewEvent.d.ts +0 -5
- package/internals/utils/publishTreeViewEvent.js +0 -10
- /package/esm/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
- /package/esm/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
- /package/esm/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
- /package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
- /package/esm/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
- /package/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
- /package/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
- /package/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
- /package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
- /package/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
|
@@ -2,23 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import { useStore } from '@mui/x-internals/store';
|
|
4
4
|
import { useTreeViewContext } from "../../internals/TreeViewProvider/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { lazyLoadingSelectors } from "../../internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js";
|
|
12
|
-
import { labelSelectors } from "../../internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Plugins that need to be present in the Tree View in order for `useTreeItemUtils` to work correctly.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Plugins that `useTreeItemUtils` can use if they are present, but are not required.
|
|
20
|
-
*/
|
|
21
|
-
|
|
5
|
+
import { expansionSelectors } from "../../internals/plugins/expansion/selectors.js";
|
|
6
|
+
import { focusSelectors } from "../../internals/plugins/focus/selectors.js";
|
|
7
|
+
import { itemsSelectors } from "../../internals/plugins/items/selectors.js";
|
|
8
|
+
import { selectionSelectors } from "../../internals/plugins/selection/selectors.js";
|
|
9
|
+
import { lazyLoadingSelectors } from "../../internals/plugins/lazyLoading/selectors.js";
|
|
10
|
+
import { labelSelectors } from "../../internals/plugins/labelEditing/selectors.js";
|
|
22
11
|
export const itemHasChildren = reactChildren => {
|
|
23
12
|
if (Array.isArray(reactChildren)) {
|
|
24
13
|
return reactChildren.length > 0 && reactChildren.some(itemHasChildren);
|
|
@@ -30,7 +19,6 @@ export const useTreeItemUtils = ({
|
|
|
30
19
|
children
|
|
31
20
|
}) => {
|
|
32
21
|
const {
|
|
33
|
-
instance,
|
|
34
22
|
store,
|
|
35
23
|
publicAPI
|
|
36
24
|
} = useTreeViewContext();
|
|
@@ -60,39 +48,39 @@ export const useTreeItemUtils = ({
|
|
|
60
48
|
return;
|
|
61
49
|
}
|
|
62
50
|
if (!status.focused) {
|
|
63
|
-
|
|
51
|
+
store.focus.focusItem(event, itemId);
|
|
64
52
|
}
|
|
65
53
|
const multiple = selectionSelectors.isMultiSelectEnabled(store.state) && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
66
54
|
|
|
67
55
|
// If already expanded and trying to toggle selection don't close
|
|
68
56
|
if (status.expandable && !(multiple && expansionSelectors.isItemExpanded(store.state, itemId))) {
|
|
69
57
|
// make sure the children selection is propagated again
|
|
70
|
-
|
|
58
|
+
store.expansion.setItemExpansion({
|
|
71
59
|
event,
|
|
72
60
|
itemId
|
|
73
61
|
});
|
|
74
62
|
}
|
|
75
63
|
};
|
|
76
64
|
const handleSelection = event => {
|
|
77
|
-
if (
|
|
65
|
+
if (!selectionSelectors.canItemBeSelected(store.state, itemId)) {
|
|
78
66
|
return;
|
|
79
67
|
}
|
|
80
68
|
if (!status.focused && !status.editing) {
|
|
81
|
-
|
|
69
|
+
store.focus.focusItem(event, itemId);
|
|
82
70
|
}
|
|
83
71
|
const multiple = selectionSelectors.isMultiSelectEnabled(store.state) && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
84
72
|
if (multiple) {
|
|
85
73
|
if (event.shiftKey) {
|
|
86
|
-
|
|
74
|
+
store.selection.expandSelectionRange(event, itemId);
|
|
87
75
|
} else {
|
|
88
|
-
|
|
76
|
+
store.selection.setItemSelection({
|
|
89
77
|
event,
|
|
90
78
|
itemId,
|
|
91
79
|
keepExistingSelection: true
|
|
92
80
|
});
|
|
93
81
|
}
|
|
94
82
|
} else {
|
|
95
|
-
|
|
83
|
+
store.selection.setItemSelection({
|
|
96
84
|
event,
|
|
97
85
|
itemId,
|
|
98
86
|
shouldBeSelected: true
|
|
@@ -103,9 +91,9 @@ export const useTreeItemUtils = ({
|
|
|
103
91
|
const hasShift = event.nativeEvent.shiftKey;
|
|
104
92
|
const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
|
|
105
93
|
if (isMultiSelectEnabled && hasShift) {
|
|
106
|
-
|
|
94
|
+
store.selection.expandSelectionRange(event, itemId);
|
|
107
95
|
} else {
|
|
108
|
-
|
|
96
|
+
store.selection.setItemSelection({
|
|
109
97
|
event,
|
|
110
98
|
itemId,
|
|
111
99
|
keepExistingSelection: isMultiSelectEnabled,
|
|
@@ -114,17 +102,19 @@ export const useTreeItemUtils = ({
|
|
|
114
102
|
}
|
|
115
103
|
};
|
|
116
104
|
const toggleItemEditing = () => {
|
|
117
|
-
|
|
105
|
+
// If the store doesn't support label editing, do nothing
|
|
106
|
+
if (!store.labelEditing) {
|
|
118
107
|
return;
|
|
119
108
|
}
|
|
120
109
|
if (isEditing) {
|
|
121
|
-
|
|
110
|
+
store.labelEditing.setEditedItem(null);
|
|
122
111
|
} else {
|
|
123
|
-
|
|
112
|
+
store.labelEditing.setEditedItem(itemId);
|
|
124
113
|
}
|
|
125
114
|
};
|
|
126
115
|
const handleSaveItemLabel = (event, newLabel) => {
|
|
127
|
-
|
|
116
|
+
// If the store doesn't support label editing, do nothing
|
|
117
|
+
if (!store.labelEditing) {
|
|
128
118
|
return;
|
|
129
119
|
}
|
|
130
120
|
|
|
@@ -132,18 +122,19 @@ export const useTreeItemUtils = ({
|
|
|
132
122
|
// The `onBlur` event is triggered, which calls `handleSaveItemLabel` again.
|
|
133
123
|
// To avoid creating an unwanted behavior we need to check if the item is being edited before calling `updateItemLabel`
|
|
134
124
|
if (labelSelectors.isItemBeingEdited(store.state, itemId)) {
|
|
135
|
-
|
|
125
|
+
store.labelEditing.updateItemLabel(itemId, newLabel);
|
|
136
126
|
toggleItemEditing();
|
|
137
|
-
|
|
127
|
+
store.focus.focusItem(event, itemId);
|
|
138
128
|
}
|
|
139
129
|
};
|
|
140
130
|
const handleCancelItemLabelEditing = event => {
|
|
141
|
-
|
|
131
|
+
// If the store doesn't support label editing, do nothing
|
|
132
|
+
if (!store.labelEditing) {
|
|
142
133
|
return;
|
|
143
134
|
}
|
|
144
135
|
if (labelSelectors.isItemBeingEdited(store.state, itemId)) {
|
|
145
136
|
toggleItemEditing();
|
|
146
|
-
|
|
137
|
+
store.focus.focusItem(event, itemId);
|
|
147
138
|
}
|
|
148
139
|
};
|
|
149
140
|
const interactions = {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { TreeViewAnyPluginSignature, TreeViewPublicAPI } from "../internals/models/index.js";
|
|
3
|
-
import { RichTreeViewPluginSignatures } from "../RichTreeView/RichTreeView.plugins.js";
|
|
1
|
+
import { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.js";
|
|
4
2
|
/**
|
|
5
3
|
* Hook that instantiates a [[TreeViewApiRef]].
|
|
6
|
-
* @deprecated Use `useRichTreeViewApiRef`, `useRichTreeViewProApiRef` or `useSimpleTreeViewApiRef` instead.
|
|
4
|
+
* @deprecated Use `useRichTreeViewApiRef()`, `useRichTreeViewProApiRef()` or `useSimpleTreeViewApiRef()` instead.
|
|
7
5
|
*/
|
|
8
|
-
export declare const useTreeViewApiRef:
|
|
6
|
+
export declare const useTreeViewApiRef: typeof useRichTreeViewApiRef;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.js";
|
|
4
|
+
|
|
4
5
|
/**
|
|
5
6
|
* Hook that instantiates a [[TreeViewApiRef]].
|
|
6
|
-
* @deprecated Use `useRichTreeViewApiRef`, `useRichTreeViewProApiRef` or `useSimpleTreeViewApiRef` instead.
|
|
7
|
+
* @deprecated Use `useRichTreeViewApiRef()`, `useRichTreeViewProApiRef()` or `useSimpleTreeViewApiRef()` instead.
|
|
7
8
|
*/
|
|
8
|
-
export const useTreeViewApiRef =
|
|
9
|
+
export const useTreeViewApiRef = useRichTreeViewApiRef;
|
package/esm/index.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export * from "./TreeItemIcon/index.js";
|
|
|
6
6
|
export * from "./TreeItemProvider/index.js";
|
|
7
7
|
export * from "./TreeItemDragAndDropOverlay/index.js";
|
|
8
8
|
export * from "./TreeItemLabelInput/index.js";
|
|
9
|
-
export { unstable_resetCleanupTracking } from "./internals/hooks/useInstanceEventHandler.js";
|
|
10
9
|
export * from "./models/index.js";
|
|
11
10
|
export * from "./icons/index.js";
|
|
12
11
|
export * from "./hooks/index.js";
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-tree-view v8.
|
|
2
|
+
* @mui/x-tree-view v8.24.0
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -16,7 +16,6 @@ export * from "./TreeItemIcon/index.js";
|
|
|
16
16
|
export * from "./TreeItemProvider/index.js";
|
|
17
17
|
export * from "./TreeItemDragAndDropOverlay/index.js";
|
|
18
18
|
export * from "./TreeItemLabelInput/index.js";
|
|
19
|
-
export { unstable_resetCleanupTracking } from "./internals/hooks/useInstanceEventHandler.js";
|
|
20
19
|
export * from "./models/index.js";
|
|
21
20
|
export * from "./icons/index.js";
|
|
22
21
|
export * from "./hooks/index.js";
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Store } from '@mui/x-internals/store';
|
|
2
|
+
import { MinimalTreeViewParameters, TreeViewParametersToStateMapper, MinimalTreeViewState } from "./MinimalTreeViewStore.types.js";
|
|
3
|
+
import { TreeViewValidItem } from "../../models/index.js";
|
|
4
|
+
import { TimeoutManager } from "./TimeoutManager.js";
|
|
5
|
+
import { TreeViewKeyboardNavigationPlugin } from "../plugins/keyboardNavigation/index.js";
|
|
6
|
+
import { TreeViewFocusPlugin } from "../plugins/focus/TreeViewFocusPlugin.js";
|
|
7
|
+
import { TreeViewItemsPlugin } from "../plugins/items/TreeViewItemsPlugin.js";
|
|
8
|
+
import { TreeViewSelectionPlugin } from "../plugins/selection/TreeViewSelectionPlugin.js";
|
|
9
|
+
import { TreeViewExpansionPlugin } from "../plugins/expansion/index.js";
|
|
10
|
+
import { TreeViewItemPluginManager } from "./TreeViewItemPluginManager.js";
|
|
11
|
+
import { TreeViewEventEvent, TreeViewEventListener, TreeViewEventParameters, TreeViewEvents } from "../models/index.js";
|
|
12
|
+
export declare class MinimalTreeViewStore<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined, State extends MinimalTreeViewState<R, Multiple> = MinimalTreeViewState<R, Multiple>, Parameters extends MinimalTreeViewParameters<R, Multiple> = MinimalTreeViewParameters<R, Multiple>> extends Store<State> {
|
|
13
|
+
private initialParameters;
|
|
14
|
+
private mapper;
|
|
15
|
+
private eventManager;
|
|
16
|
+
instanceName: string;
|
|
17
|
+
parameters: Parameters;
|
|
18
|
+
timeoutManager: TimeoutManager;
|
|
19
|
+
itemPluginManager: TreeViewItemPluginManager<this>;
|
|
20
|
+
items: TreeViewItemsPlugin<R>;
|
|
21
|
+
focus: TreeViewFocusPlugin;
|
|
22
|
+
expansion: TreeViewExpansionPlugin;
|
|
23
|
+
selection: TreeViewSelectionPlugin<Multiple>;
|
|
24
|
+
keyboardNavigation: TreeViewKeyboardNavigationPlugin;
|
|
25
|
+
constructor(parameters: Parameters, instanceName: string, mapper: TreeViewParametersToStateMapper<R, Multiple, State, Parameters>);
|
|
26
|
+
/**
|
|
27
|
+
* Builds an object containing the method that should be exposed publicly by the Tree View components.
|
|
28
|
+
*/
|
|
29
|
+
buildPublicAPI(): {
|
|
30
|
+
setItemSelection: ({
|
|
31
|
+
itemId,
|
|
32
|
+
event,
|
|
33
|
+
keepExistingSelection,
|
|
34
|
+
shouldBeSelected
|
|
35
|
+
}: {
|
|
36
|
+
itemId: string;
|
|
37
|
+
event?: React.SyntheticEvent | null;
|
|
38
|
+
shouldBeSelected?: boolean;
|
|
39
|
+
keepExistingSelection?: boolean;
|
|
40
|
+
}) => void;
|
|
41
|
+
isItemExpanded: (itemId: import("../../index.js").TreeViewItemId) => boolean;
|
|
42
|
+
setItemExpansion: ({
|
|
43
|
+
itemId,
|
|
44
|
+
event,
|
|
45
|
+
shouldBeExpanded
|
|
46
|
+
}: {
|
|
47
|
+
itemId: import("../../index.js").TreeViewItemId;
|
|
48
|
+
event?: React.SyntheticEvent | null;
|
|
49
|
+
shouldBeExpanded?: boolean;
|
|
50
|
+
}) => void;
|
|
51
|
+
focusItem: (event: React.SyntheticEvent | null, itemId: import("../../index.js").TreeViewItemId) => void;
|
|
52
|
+
getItem: (itemId: import("../../index.js").TreeViewItemId) => R;
|
|
53
|
+
getItemDOMElement: (itemId: import("../../index.js").TreeViewItemId) => HTMLElement | null;
|
|
54
|
+
getItemOrderedChildrenIds: (itemId: import("../../index.js").TreeViewItemId | null) => import("../../index.js").TreeViewItemId[];
|
|
55
|
+
getItemTree: () => R[];
|
|
56
|
+
getParentId: (itemId: import("../../index.js").TreeViewItemId) => import("../../index.js").TreeViewItemId | null;
|
|
57
|
+
setIsItemDisabled: ({
|
|
58
|
+
itemId,
|
|
59
|
+
shouldBeDisabled
|
|
60
|
+
}: {
|
|
61
|
+
itemId: import("../../index.js").TreeViewItemId;
|
|
62
|
+
shouldBeDisabled?: boolean;
|
|
63
|
+
}) => void;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Updates the state of the Tree View based on the new parameters provided to the root component.
|
|
67
|
+
*/
|
|
68
|
+
updateStateFromParameters(parameters: Parameters): void;
|
|
69
|
+
/**
|
|
70
|
+
* Returns a cleanup function that need to be called when the store is destroyed.
|
|
71
|
+
*/
|
|
72
|
+
disposeEffect: () => () => void;
|
|
73
|
+
/**
|
|
74
|
+
* Whether updates based on `props.items` change should be ignored.
|
|
75
|
+
*/
|
|
76
|
+
shouldIgnoreItemsStateUpdate: () => boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Registers an effect to be run when the value returned by the selector changes.
|
|
79
|
+
*/
|
|
80
|
+
registerStoreEffect: <Value>(selector: (state: State) => Value, effect: (previous: Value, next: Value) => void) => void;
|
|
81
|
+
/**
|
|
82
|
+
* Publishes an event to all its subscribers.
|
|
83
|
+
*/
|
|
84
|
+
publishEvent: <E extends TreeViewEvents>(name: E, params: TreeViewEventParameters<E>, event: TreeViewEventEvent<E>) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Subscribe to an event emitted by the store.
|
|
87
|
+
* For now, the subscription is only removed when the store is destroyed.
|
|
88
|
+
*/
|
|
89
|
+
subscribeEvent: <E extends TreeViewEvents>(eventName: E, handler: TreeViewEventListener<E>) => void;
|
|
90
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import { Store } from '@mui/x-internals/store';
|
|
3
|
+
import { warnOnce } from '@mui/x-internals/warning';
|
|
4
|
+
import { EventManager } from '@mui/x-internals/EventManager';
|
|
5
|
+
import { createMinimalInitialState, createTreeViewDefaultId, deriveStateFromParameters } from "./MinimalTreeViewStore.utils.js";
|
|
6
|
+
import { TimeoutManager } from "./TimeoutManager.js";
|
|
7
|
+
import { TreeViewKeyboardNavigationPlugin } from "../plugins/keyboardNavigation/index.js";
|
|
8
|
+
import { TreeViewFocusPlugin } from "../plugins/focus/TreeViewFocusPlugin.js";
|
|
9
|
+
import { TreeViewItemsPlugin } from "../plugins/items/TreeViewItemsPlugin.js";
|
|
10
|
+
import { TreeViewSelectionPlugin } from "../plugins/selection/TreeViewSelectionPlugin.js";
|
|
11
|
+
import { TreeViewExpansionPlugin } from "../plugins/expansion/index.js";
|
|
12
|
+
import { TreeViewItemPluginManager } from "./TreeViewItemPluginManager.js";
|
|
13
|
+
export class MinimalTreeViewStore extends Store {
|
|
14
|
+
initialParameters = null;
|
|
15
|
+
eventManager = (() => new EventManager())();
|
|
16
|
+
timeoutManager = (() => new TimeoutManager())();
|
|
17
|
+
itemPluginManager = (() => new TreeViewItemPluginManager())();
|
|
18
|
+
constructor(parameters, instanceName, mapper) {
|
|
19
|
+
const minimalInitialState = createMinimalInitialState(parameters);
|
|
20
|
+
const initialState = mapper.getInitialState(minimalInitialState, parameters);
|
|
21
|
+
super(initialState);
|
|
22
|
+
this.parameters = parameters;
|
|
23
|
+
this.instanceName = instanceName;
|
|
24
|
+
this.mapper = mapper;
|
|
25
|
+
|
|
26
|
+
// We mount the plugins in the constructor to make sure all the methods of the store are available to the plugins during their construction.
|
|
27
|
+
this.items = new TreeViewItemsPlugin(this);
|
|
28
|
+
this.focus = new TreeViewFocusPlugin(this);
|
|
29
|
+
this.expansion = new TreeViewExpansionPlugin(this);
|
|
30
|
+
this.selection = new TreeViewSelectionPlugin(this);
|
|
31
|
+
this.keyboardNavigation = new TreeViewKeyboardNavigationPlugin(this);
|
|
32
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
33
|
+
this.initialParameters = parameters;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Builds an object containing the method that should be exposed publicly by the Tree View components.
|
|
39
|
+
*/
|
|
40
|
+
buildPublicAPI() {
|
|
41
|
+
return _extends({}, this.items.buildPublicAPI(), this.focus.buildPublicAPI(), this.expansion.buildPublicAPI(), this.selection.buildPublicAPI());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Updates the state of the Tree View based on the new parameters provided to the root component.
|
|
46
|
+
*/
|
|
47
|
+
updateStateFromParameters(parameters) {
|
|
48
|
+
const updateModel = (mutableNewState, controlledProp, defaultProp) => {
|
|
49
|
+
if (parameters[controlledProp] !== undefined) {
|
|
50
|
+
mutableNewState[controlledProp] = parameters[controlledProp];
|
|
51
|
+
}
|
|
52
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
53
|
+
const defaultValue = parameters[defaultProp];
|
|
54
|
+
const isControlled = parameters[controlledProp] !== undefined;
|
|
55
|
+
const initialDefaultValue = this.initialParameters?.[defaultProp];
|
|
56
|
+
const initialIsControlled = this.initialParameters?.[controlledProp] !== undefined;
|
|
57
|
+
if (initialIsControlled !== isControlled) {
|
|
58
|
+
warnOnce([`MUI X Tree View: A component is changing the ${initialIsControlled ? '' : 'un'}controlled ${controlledProp} state of ${this.instanceName} to be ${initialIsControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${controlledProp} element for the lifetime of the component.`, "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'], 'error');
|
|
59
|
+
} else if (JSON.stringify(initialDefaultValue) !== JSON.stringify(defaultValue)) {
|
|
60
|
+
warnOnce([`MUI X Tree View: A component is changing the default ${controlledProp} state of an uncontrolled ${this.instanceName} after being initialized. `, `To suppress this warning opt to use a controlled ${this.instanceName}.`], 'error');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const newMinimalState = deriveStateFromParameters(parameters);
|
|
65
|
+
updateModel(newMinimalState, 'expandedItems', 'defaultExpandedItems');
|
|
66
|
+
updateModel(newMinimalState, 'selectedItems', 'defaultSelectedItems');
|
|
67
|
+
if (this.state.providedTreeId !== parameters.id || this.state.treeId === undefined) {
|
|
68
|
+
newMinimalState.treeId = createTreeViewDefaultId();
|
|
69
|
+
}
|
|
70
|
+
if (!this.mapper.shouldIgnoreItemsStateUpdate(parameters) && TreeViewItemsPlugin.shouldRebuildItemsState(parameters, this.parameters)) {
|
|
71
|
+
Object.assign(newMinimalState, TreeViewItemsPlugin.buildItemsStateIfNeeded(parameters));
|
|
72
|
+
}
|
|
73
|
+
const newState = this.mapper.updateStateFromParameters(newMinimalState, parameters, updateModel);
|
|
74
|
+
this.update(newState);
|
|
75
|
+
this.parameters = parameters;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Returns a cleanup function that need to be called when the store is destroyed.
|
|
80
|
+
*/
|
|
81
|
+
disposeEffect = () => {
|
|
82
|
+
return this.timeoutManager.clearAll;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Whether updates based on `props.items` change should be ignored.
|
|
87
|
+
*/
|
|
88
|
+
shouldIgnoreItemsStateUpdate = () => {
|
|
89
|
+
return this.mapper.shouldIgnoreItemsStateUpdate(this.parameters);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Registers an effect to be run when the value returned by the selector changes.
|
|
94
|
+
*/
|
|
95
|
+
registerStoreEffect = (selector, effect) => {
|
|
96
|
+
let previousValue = selector(this.state);
|
|
97
|
+
this.subscribe(state => {
|
|
98
|
+
const nextValue = selector(state);
|
|
99
|
+
if (nextValue !== previousValue) {
|
|
100
|
+
effect(previousValue, nextValue);
|
|
101
|
+
previousValue = nextValue;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Publishes an event to all its subscribers.
|
|
108
|
+
*/
|
|
109
|
+
publishEvent = (name, params, event) => {
|
|
110
|
+
if (isSyntheticEvent(event) && event.isPropagationStopped()) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.eventManager.emit(name, params, event);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Subscribe to an event emitted by the store.
|
|
118
|
+
* For now, the subscription is only removed when the store is destroyed.
|
|
119
|
+
*/
|
|
120
|
+
subscribeEvent = (eventName, handler) => {
|
|
121
|
+
this.eventManager.on(eventName, handler);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function isSyntheticEvent(event) {
|
|
125
|
+
return event.isPropagationStopped !== undefined;
|
|
126
|
+
}
|