@mui/x-tree-view 8.23.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 +111 -1
- package/RichTreeView/RichTreeView.d.ts +1 -1
- package/RichTreeView/RichTreeView.js +34 -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/TreeItemProvider/TreeItemProvider.js +3 -10
- package/esm/RichTreeView/RichTreeView.d.ts +1 -1
- package/esm/RichTreeView/RichTreeView.js +33 -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/TreeItemProvider/TreeItemProvider.js +3 -10
- package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +1 -1
- 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 +25 -34
- package/esm/hooks/useTreeViewApiRef.d.ts +2 -4
- package/esm/hooks/useTreeViewApiRef.js +3 -2
- 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 +5 -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 -50
- 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/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +29 -17
- 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 +3 -3
- package/esm/internals/plugins/selection/selectors.d.ts +48 -0
- package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -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 +14 -18
- package/esm/useTreeItem/useTreeItem.types.d.ts +4 -19
- package/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
- 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 +2 -4
- package/hooks/useTreeViewApiRef.js +2 -4
- 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 +5 -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} +16 -16
- package/internals/plugins/items/utils.d.ts +43 -0
- package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -51
- 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 +30 -17
- 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 +13 -13
- package/internals/plugins/selection/selectors.d.ts +48 -0
- package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -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 +2 -2
- package/useTreeItem/useTreeItem.d.ts +18 -2
- package/useTreeItem/useTreeItem.js +18 -23
- package/useTreeItem/useTreeItem.types.d.ts +4 -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 -223
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -64
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
- 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/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 -231
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
- 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 -231
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
- 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 -240
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
- 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
package/esm/internals/index.d.ts
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
export { useTreeView } from "./useTreeView/index.js";
|
|
2
1
|
export { TreeViewProvider, useTreeViewContext } from "./TreeViewProvider/index.js";
|
|
3
2
|
export { RichTreeViewItems } from "./components/RichTreeViewItems.js";
|
|
4
3
|
export type { RichTreeViewItemsSlots, RichTreeViewItemsSlotProps } from "./components/RichTreeViewItems.js";
|
|
5
|
-
export {
|
|
6
|
-
export
|
|
7
|
-
export type {
|
|
8
|
-
export {
|
|
9
|
-
export
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
12
|
-
export {
|
|
13
|
-
export
|
|
14
|
-
export { useTreeViewKeyboardNavigation } from "./plugins/useTreeViewKeyboardNavigation/index.js";
|
|
15
|
-
export type { UseTreeViewKeyboardNavigationSignature } from "./plugins/useTreeViewKeyboardNavigation/index.js";
|
|
16
|
-
export { useTreeViewItems, buildSiblingIndexes, itemsSelectors, TREE_VIEW_ROOT_PARENT_ID } from "./plugins/useTreeViewItems/index.js";
|
|
17
|
-
export type { UseTreeViewItemsSignature, UseTreeViewItemsParameters, UseTreeViewItemsState } from "./plugins/useTreeViewItems/index.js";
|
|
18
|
-
export { useTreeViewLabel, labelSelectors } from "./plugins/useTreeViewLabel/index.js";
|
|
19
|
-
export type { UseTreeViewLabelSignature, UseTreeViewLabelParameters } from "./plugins/useTreeViewLabel/index.js";
|
|
20
|
-
export type { UseTreeViewLazyLoadingSignature, UseTreeViewLazyLoadingParameters, UseTreeViewLazyLoadingInstance, DataSource } from "./plugins/useTreeViewLazyLoading/index.js";
|
|
21
|
-
export { lazyLoadingSelectors } from "./plugins/useTreeViewLazyLoading/index.js";
|
|
22
|
-
export { useTreeViewJSXItems } from "./plugins/useTreeViewJSXItems/index.js";
|
|
23
|
-
export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters } from "./plugins/useTreeViewJSXItems/index.js";
|
|
4
|
+
export { useTreeViewRootProps } from "./hooks/useTreeViewRootProps.js";
|
|
5
|
+
export { useTreeViewStore } from "./hooks/useTreeViewStore.js";
|
|
6
|
+
export type { UseTreeViewStoreParameters } from "./hooks/useTreeViewStore.js";
|
|
7
|
+
export type { TreeViewItemMeta, TreeViewItemPlugin, TreeViewEventParameters, TreeViewEventEvent, TreeViewPublicAPI } from "./models/index.js";
|
|
8
|
+
export { expansionSelectors } from "./plugins/expansion/index.js";
|
|
9
|
+
export { selectionSelectors } from "./plugins/selection/index.js";
|
|
10
|
+
export { buildSiblingIndexes, itemsSelectors, TREE_VIEW_ROOT_PARENT_ID } from "./plugins/items/index.js";
|
|
11
|
+
export { labelSelectors } from "./plugins/labelEditing/index.js";
|
|
12
|
+
export { lazyLoadingSelectors } from "./plugins/lazyLoading/index.js";
|
|
24
13
|
export { isTargetInDescendants } from "./utils/tree.js";
|
|
25
|
-
export type { TreeViewClasses, TreeViewSlots, TreeViewSlotProps } from "./TreeViewProvider/TreeViewStyleContext.js";
|
|
14
|
+
export type { TreeViewClasses, TreeViewSlots, TreeViewSlotProps } from "./TreeViewProvider/TreeViewStyleContext.js";
|
|
15
|
+
export { MinimalTreeViewStore } from "./MinimalTreeViewStore/index.js";
|
|
16
|
+
export type { TreeViewParametersToStateMapper } from "./MinimalTreeViewStore/index.js";
|
|
17
|
+
export { ExtendableRichTreeViewStore } from "./RichTreeViewStore/index.js";
|
|
18
|
+
export type { RichTreeViewState, RichTreeViewStoreParameters } from "./RichTreeViewStore/index.js";
|
|
19
|
+
export { TreeViewItemDepthContext } from "./TreeViewItemDepthContext/index.js";
|
package/esm/internals/index.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
export { useTreeView } from "./useTreeView/index.js";
|
|
2
1
|
export { TreeViewProvider, useTreeViewContext } from "./TreeViewProvider/index.js";
|
|
3
2
|
export { RichTreeViewItems } from "./components/RichTreeViewItems.js";
|
|
4
|
-
export {
|
|
5
|
-
|
|
6
|
-
// Core plugins
|
|
7
|
-
|
|
3
|
+
export { useTreeViewRootProps } from "./hooks/useTreeViewRootProps.js";
|
|
4
|
+
export { useTreeViewStore } from "./hooks/useTreeViewStore.js";
|
|
8
5
|
// Plugins
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
6
|
+
export { expansionSelectors } from "./plugins/expansion/index.js";
|
|
7
|
+
export { selectionSelectors } from "./plugins/selection/index.js";
|
|
8
|
+
export { buildSiblingIndexes, itemsSelectors, TREE_VIEW_ROOT_PARENT_ID } from "./plugins/items/index.js";
|
|
9
|
+
export { labelSelectors } from "./plugins/labelEditing/index.js";
|
|
10
|
+
export { lazyLoadingSelectors } from "./plugins/lazyLoading/index.js";
|
|
11
|
+
export { isTargetInDescendants } from "./utils/tree.js";
|
|
12
|
+
export { MinimalTreeViewStore } from "./MinimalTreeViewStore/index.js";
|
|
13
|
+
export { ExtendableRichTreeViewStore } from "./RichTreeViewStore/index.js";
|
|
14
|
+
export { TreeViewItemDepthContext } from "./TreeViewItemDepthContext/index.js";
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import { MuiEvent } from '@mui/x-internals/types';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { TreeViewItemId } from "../../models/index.js";
|
|
3
|
+
interface TreeViewEventLookup {
|
|
4
|
+
/**
|
|
5
|
+
* Fired before an item is expanded or collapsed.
|
|
6
|
+
*/
|
|
7
|
+
beforeItemToggleExpansion: {
|
|
8
|
+
parameters: {
|
|
9
|
+
isExpansionPrevented: boolean;
|
|
10
|
+
shouldBeExpanded: boolean;
|
|
11
|
+
itemId: TreeViewItemId;
|
|
12
|
+
};
|
|
13
|
+
event: React.SyntheticEvent | null;
|
|
14
|
+
};
|
|
4
15
|
}
|
|
5
|
-
export type
|
|
16
|
+
export type TreeViewEvents = keyof TreeViewEventLookup;
|
|
17
|
+
export type TreeViewEventListener<E extends TreeViewEvents> = (params: TreeViewEventParameters<E>, event: TreeViewEventLookup[E] extends {
|
|
18
|
+
event: any;
|
|
19
|
+
} ? MuiEvent<TreeViewEventLookup[E]['event']> : MuiEvent<{}>) => void;
|
|
20
|
+
export type TreeViewEventParameters<E extends TreeViewEvents> = TreeViewEventLookup[E] extends {
|
|
21
|
+
parameters: infer P;
|
|
22
|
+
} ? P : undefined;
|
|
23
|
+
export type TreeViewEventEvent<E extends TreeViewEvents> = TreeViewEventLookup[E] extends {
|
|
24
|
+
event: infer EV;
|
|
25
|
+
} ? EV : undefined;
|
|
26
|
+
export {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
+
import { TreeViewItemId } from "../../models/index.js";
|
|
3
4
|
import type { UseTreeItemContentSlotOwnProps, UseTreeItemDragAndDropOverlaySlotOwnProps, UseTreeItemLabelInputSlotOwnProps, UseTreeItemRootSlotOwnProps, UseTreeItemCheckboxSlotOwnProps, UseTreeItemLabelSlotOwnProps } from "../../useTreeItem/index.js";
|
|
4
5
|
import type { UseTreeItemInteractions } from "../../hooks/useTreeItemUtils/useTreeItemUtils.js";
|
|
5
6
|
import type { TreeItemProps } from "../../TreeItem/TreeItem.types.js";
|
|
7
|
+
import { TreeViewAnyStore } from "./treeView.js";
|
|
8
|
+
import { TreeViewStoreInContext } from "../TreeViewProvider/index.js";
|
|
6
9
|
export interface TreeViewItemPluginSlotPropsEnhancerParams {
|
|
7
10
|
rootRefObject: React.RefObject<HTMLLIElement | null>;
|
|
8
11
|
contentRefObject: React.RefObject<HTMLDivElement | null>;
|
|
@@ -40,4 +43,10 @@ export interface TreeViewItemPluginOptions extends Omit<TreeViewItemPluginRespon
|
|
|
40
43
|
props: TreeItemProps;
|
|
41
44
|
}
|
|
42
45
|
export type TreeViewItemPlugin = (options: TreeViewItemPluginOptions) => void | TreeViewItemPluginResponse;
|
|
46
|
+
export type TreeItemWrapper<TStore extends TreeViewAnyStore> = (params: {
|
|
47
|
+
itemId: TreeViewItemId;
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
store: TreeViewStoreInContext<TStore>;
|
|
50
|
+
idAttribute: string;
|
|
51
|
+
}) => React.ReactNode;
|
|
43
52
|
export {};
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { TreeViewAnyPluginSignature } from "./plugin.js";
|
|
3
|
-
import type { MergeSignaturesProperty } from "./helpers.js";
|
|
4
|
-
import type { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
|
|
1
|
+
import { MinimalTreeViewStore } from "../MinimalTreeViewStore/index.js";
|
|
5
2
|
export interface TreeViewItemMeta {
|
|
6
3
|
id: string;
|
|
7
4
|
idAttribute: string | undefined;
|
|
@@ -18,8 +15,7 @@ export interface TreeViewItemMeta {
|
|
|
18
15
|
*/
|
|
19
16
|
label?: string;
|
|
20
17
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export type
|
|
25
|
-
export type TreeViewReadonlyStore<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = ReadonlyStore<TreeViewState<TSignatures, TOptionalSignatures>>;
|
|
18
|
+
export interface TreeViewAnyStore extends MinimalTreeViewStore<any, any, any, any> {
|
|
19
|
+
itemPluginManager: any;
|
|
20
|
+
}
|
|
21
|
+
export type TreeViewPublicAPI<TStore extends TreeViewAnyStore> = ReturnType<TStore['buildPublicAPI']>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { TreeViewItemId } from "../../../models/index.js";
|
|
2
|
+
export declare class TreeViewExpansionPlugin {
|
|
3
|
+
private store;
|
|
4
|
+
constructor(store: any);
|
|
5
|
+
private setExpandedItems;
|
|
6
|
+
/**
|
|
7
|
+
* Check if an item is expanded.
|
|
8
|
+
* @param {TreeViewItemId} itemId The id of the item to check.
|
|
9
|
+
* @returns {boolean} `true` if the item is expanded, `false` otherwise.
|
|
10
|
+
*/
|
|
11
|
+
private isItemExpanded;
|
|
12
|
+
buildPublicAPI: () => {
|
|
13
|
+
isItemExpanded: (itemId: TreeViewItemId) => boolean;
|
|
14
|
+
setItemExpansion: ({
|
|
15
|
+
itemId,
|
|
16
|
+
event,
|
|
17
|
+
shouldBeExpanded
|
|
18
|
+
}: {
|
|
19
|
+
itemId: TreeViewItemId;
|
|
20
|
+
event?: React.SyntheticEvent | null;
|
|
21
|
+
shouldBeExpanded?: boolean;
|
|
22
|
+
}) => void;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Change the expansion status of a given item.
|
|
26
|
+
* @param {object} parameters The parameters of the method.
|
|
27
|
+
* @param {TreeViewItemId} parameters.itemId The id of the item to expand of collapse.
|
|
28
|
+
* @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
|
|
29
|
+
* @param {boolean} parameters.shouldBeExpanded If `true` the item will be expanded. If `false` the item will be collapsed. If not defined, the item's expansion status will be the toggled.
|
|
30
|
+
*/
|
|
31
|
+
setItemExpansion: ({
|
|
32
|
+
itemId,
|
|
33
|
+
event,
|
|
34
|
+
shouldBeExpanded
|
|
35
|
+
}: {
|
|
36
|
+
itemId: TreeViewItemId;
|
|
37
|
+
event?: React.SyntheticEvent | null;
|
|
38
|
+
shouldBeExpanded?: boolean;
|
|
39
|
+
}) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Apply the new expansion status of a given item.
|
|
42
|
+
* Is used by the `setItemExpansion` method and by the `useTreeViewLazyLoading` plugin.
|
|
43
|
+
* Unlike `setItemExpansion`, this method does not trigger the lazy loading.
|
|
44
|
+
* @param {object} parameters The parameters of the method.
|
|
45
|
+
* @param {TreeViewItemId} parameters.itemId The id of the item to expand of collapse.
|
|
46
|
+
* @param {React.SyntheticEvent | null} parameters.event The DOM event that triggered the change.
|
|
47
|
+
* @param {boolean} parameters.shouldBeExpanded If `true` the item will be expanded. If `false` the item will be collapsed.
|
|
48
|
+
*/
|
|
49
|
+
applyItemExpansion: ({
|
|
50
|
+
itemId,
|
|
51
|
+
event,
|
|
52
|
+
shouldBeExpanded
|
|
53
|
+
}: {
|
|
54
|
+
itemId: TreeViewItemId;
|
|
55
|
+
event: React.SyntheticEvent | null;
|
|
56
|
+
shouldBeExpanded: boolean;
|
|
57
|
+
}) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Expand all the siblings (i.e.: the items that have the same parent) of a given item.
|
|
60
|
+
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
61
|
+
* @param {TreeViewItemId} itemId The id of the item whose siblings will be expanded.
|
|
62
|
+
*/
|
|
63
|
+
expandAllSiblings: (event: React.KeyboardEvent, itemId: TreeViewItemId) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Mark a list of items as expandable.
|
|
66
|
+
* @param {TreeViewItemId[]} items The ids of the items to mark as expandable.
|
|
67
|
+
*/
|
|
68
|
+
addExpandableItems: (items: TreeViewItemId[]) => void;
|
|
69
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import { expansionSelectors } from "./selectors.js";
|
|
3
|
+
import { itemsSelectors } from "../items/selectors.js";
|
|
4
|
+
export class TreeViewExpansionPlugin {
|
|
5
|
+
// We can't type `store`, otherwise we get the following TS error:
|
|
6
|
+
// 'expansion' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
|
|
7
|
+
constructor(store) {
|
|
8
|
+
this.store = store;
|
|
9
|
+
}
|
|
10
|
+
setExpandedItems = (event, value) => {
|
|
11
|
+
if (this.store.parameters.expandedItems === undefined) {
|
|
12
|
+
this.store.set('expandedItems', value);
|
|
13
|
+
}
|
|
14
|
+
this.store.parameters.onExpandedItemsChange?.(event, value);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Check if an item is expanded.
|
|
19
|
+
* @param {TreeViewItemId} itemId The id of the item to check.
|
|
20
|
+
* @returns {boolean} `true` if the item is expanded, `false` otherwise.
|
|
21
|
+
*/
|
|
22
|
+
isItemExpanded = itemId => expansionSelectors.isItemExpanded(this.store.state, itemId);
|
|
23
|
+
buildPublicAPI = () => {
|
|
24
|
+
return {
|
|
25
|
+
isItemExpanded: this.isItemExpanded,
|
|
26
|
+
setItemExpansion: this.setItemExpansion
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Change the expansion status of a given item.
|
|
32
|
+
* @param {object} parameters The parameters of the method.
|
|
33
|
+
* @param {TreeViewItemId} parameters.itemId The id of the item to expand of collapse.
|
|
34
|
+
* @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
|
|
35
|
+
* @param {boolean} parameters.shouldBeExpanded If `true` the item will be expanded. If `false` the item will be collapsed. If not defined, the item's expansion status will be the toggled.
|
|
36
|
+
*/
|
|
37
|
+
setItemExpansion = ({
|
|
38
|
+
itemId,
|
|
39
|
+
event = null,
|
|
40
|
+
shouldBeExpanded
|
|
41
|
+
}) => {
|
|
42
|
+
const isExpandedBefore = expansionSelectors.isItemExpanded(this.store.state, itemId);
|
|
43
|
+
const cleanShouldBeExpanded = shouldBeExpanded ?? !isExpandedBefore;
|
|
44
|
+
if (isExpandedBefore === cleanShouldBeExpanded) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const eventParameters = {
|
|
48
|
+
isExpansionPrevented: false,
|
|
49
|
+
shouldBeExpanded: cleanShouldBeExpanded,
|
|
50
|
+
itemId
|
|
51
|
+
};
|
|
52
|
+
this.store.publishEvent('beforeItemToggleExpansion', eventParameters, event);
|
|
53
|
+
if (eventParameters.isExpansionPrevented) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.applyItemExpansion({
|
|
57
|
+
itemId,
|
|
58
|
+
event,
|
|
59
|
+
shouldBeExpanded: cleanShouldBeExpanded
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Apply the new expansion status of a given item.
|
|
65
|
+
* Is used by the `setItemExpansion` method and by the `useTreeViewLazyLoading` plugin.
|
|
66
|
+
* Unlike `setItemExpansion`, this method does not trigger the lazy loading.
|
|
67
|
+
* @param {object} parameters The parameters of the method.
|
|
68
|
+
* @param {TreeViewItemId} parameters.itemId The id of the item to expand of collapse.
|
|
69
|
+
* @param {React.SyntheticEvent | null} parameters.event The DOM event that triggered the change.
|
|
70
|
+
* @param {boolean} parameters.shouldBeExpanded If `true` the item will be expanded. If `false` the item will be collapsed.
|
|
71
|
+
*/
|
|
72
|
+
applyItemExpansion = ({
|
|
73
|
+
itemId,
|
|
74
|
+
event,
|
|
75
|
+
shouldBeExpanded
|
|
76
|
+
}) => {
|
|
77
|
+
const oldExpanded = expansionSelectors.expandedItemsRaw(this.store.state);
|
|
78
|
+
let newExpanded;
|
|
79
|
+
if (shouldBeExpanded) {
|
|
80
|
+
newExpanded = [itemId].concat(oldExpanded);
|
|
81
|
+
} else {
|
|
82
|
+
newExpanded = oldExpanded.filter(id => id !== itemId);
|
|
83
|
+
}
|
|
84
|
+
this.store.parameters.onItemExpansionToggle?.(event, itemId, shouldBeExpanded);
|
|
85
|
+
this.setExpandedItems(event, newExpanded);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Expand all the siblings (i.e.: the items that have the same parent) of a given item.
|
|
90
|
+
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
91
|
+
* @param {TreeViewItemId} itemId The id of the item whose siblings will be expanded.
|
|
92
|
+
*/
|
|
93
|
+
expandAllSiblings = (event, itemId) => {
|
|
94
|
+
const itemMeta = itemsSelectors.itemMeta(this.store.state, itemId);
|
|
95
|
+
if (itemMeta == null) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const siblings = itemsSelectors.itemOrderedChildrenIds(this.store.state, itemMeta.parentId);
|
|
99
|
+
const diff = siblings.filter(child => expansionSelectors.isItemExpandable(this.store.state, child) && !expansionSelectors.isItemExpanded(this.store.state, child));
|
|
100
|
+
const newExpanded = expansionSelectors.expandedItemsRaw(this.store.state).concat(diff);
|
|
101
|
+
if (diff.length > 0) {
|
|
102
|
+
if (this.store.parameters.onItemExpansionToggle) {
|
|
103
|
+
diff.forEach(newlyExpandedItemId => {
|
|
104
|
+
this.store.parameters.onItemExpansionToggle(event, newlyExpandedItemId, true);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
this.setExpandedItems(event, newExpanded);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Mark a list of items as expandable.
|
|
113
|
+
* @param {TreeViewItemId[]} items The ids of the items to mark as expandable.
|
|
114
|
+
*/
|
|
115
|
+
addExpandableItems = items => {
|
|
116
|
+
const newItemMetaLookup = _extends({}, this.store.state.itemMetaLookup);
|
|
117
|
+
for (const itemId of items) {
|
|
118
|
+
newItemMetaLookup[itemId] = _extends({}, newItemMetaLookup[itemId], {
|
|
119
|
+
expandable: true
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
this.store.set('itemMetaLookup', newItemMetaLookup);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
2
|
+
export declare const expansionSelectors: {
|
|
3
|
+
/**
|
|
4
|
+
* Gets the expanded items as provided to the component.
|
|
5
|
+
*/
|
|
6
|
+
expandedItemsRaw: (state: MinimalTreeViewState<any, any>) => readonly string[];
|
|
7
|
+
/**
|
|
8
|
+
* Gets the expanded items as a Map.
|
|
9
|
+
*/
|
|
10
|
+
expandedItemsMap: (args_0: MinimalTreeViewState<any, any>) => Map<string, true>;
|
|
11
|
+
/**
|
|
12
|
+
* Gets the items to render as a flat list (the descendants of an expanded item are listed as siblings of the item).
|
|
13
|
+
*/
|
|
14
|
+
flatList: (args_0: MinimalTreeViewState<any, any>) => string[];
|
|
15
|
+
/**
|
|
16
|
+
* Gets the slot that triggers the item's expansion when clicked.
|
|
17
|
+
*/
|
|
18
|
+
triggerSlot: (state: MinimalTreeViewState<any, any>) => "content" | "iconContainer";
|
|
19
|
+
/**
|
|
20
|
+
* Checks whether an item is expanded.
|
|
21
|
+
*/
|
|
22
|
+
isItemExpanded: (args_0: MinimalTreeViewState<any, any>, itemId: string) => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Checks whether an item is expandable.
|
|
25
|
+
*/
|
|
26
|
+
isItemExpandable: (args_0: MinimalTreeViewState<any, any>, _itemId: string) => boolean;
|
|
27
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
|
|
2
|
-
import { itemsSelectors } from "../
|
|
3
|
-
import { TREE_VIEW_ROOT_PARENT_ID } from "../
|
|
4
|
-
const expandedItemMapSelector = createSelectorMemoized(state => state.
|
|
2
|
+
import { itemsSelectors } from "../items/selectors.js";
|
|
3
|
+
import { TREE_VIEW_ROOT_PARENT_ID } from "../items/index.js";
|
|
4
|
+
const expandedItemMapSelector = createSelectorMemoized(state => state.expandedItems, expandedItems => {
|
|
5
5
|
const expandedItemsMap = new Map();
|
|
6
6
|
expandedItems.forEach(id => {
|
|
7
7
|
expandedItemsMap.set(id, true);
|
|
@@ -12,7 +12,7 @@ export const expansionSelectors = {
|
|
|
12
12
|
/**
|
|
13
13
|
* Gets the expanded items as provided to the component.
|
|
14
14
|
*/
|
|
15
|
-
expandedItemsRaw: createSelector(state => state.
|
|
15
|
+
expandedItemsRaw: createSelector(state => state.expandedItems),
|
|
16
16
|
/**
|
|
17
17
|
* Gets the expanded items as a Map.
|
|
18
18
|
*/
|
|
@@ -37,7 +37,7 @@ export const expansionSelectors = {
|
|
|
37
37
|
/**
|
|
38
38
|
* Gets the slot that triggers the item's expansion when clicked.
|
|
39
39
|
*/
|
|
40
|
-
triggerSlot: createSelector(state => state.
|
|
40
|
+
triggerSlot: createSelector(state => state.expansionTrigger),
|
|
41
41
|
/**
|
|
42
42
|
* Checks whether an item is expanded.
|
|
43
43
|
*/
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RichTreeViewStoreParameters } from "../../RichTreeViewStore/index.js";
|
|
2
|
+
export declare const getExpansionTrigger: ({
|
|
3
|
+
isItemEditable,
|
|
4
|
+
expansionTrigger
|
|
5
|
+
}: Pick<RichTreeViewStoreParameters<any, any>, "isItemEditable" | "expansionTrigger">) => "content" | "iconContainer";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { TreeViewCancellableEvent, TreeViewItemId } from "../../../models/index.js";
|
|
2
|
+
export declare class TreeViewFocusPlugin {
|
|
3
|
+
private store;
|
|
4
|
+
constructor(store: any);
|
|
5
|
+
private setFocusedItemId;
|
|
6
|
+
private applyItemFocus;
|
|
7
|
+
buildPublicAPI: () => {
|
|
8
|
+
focusItem: (event: React.SyntheticEvent | null, itemId: TreeViewItemId) => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Focus the item with the given id.
|
|
12
|
+
*
|
|
13
|
+
* If the item is the child of a collapsed item, then this method will do nothing.
|
|
14
|
+
* Make sure to expand the ancestors of the item before calling this method if needed.
|
|
15
|
+
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change.
|
|
16
|
+
* @param {TreeViewItemId} itemId The id of the item to focus.
|
|
17
|
+
*/
|
|
18
|
+
focusItem: (event: React.SyntheticEvent | null, itemId: TreeViewItemId) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Remove the focus from the currently focused item (both from the internal state and the DOM).
|
|
21
|
+
*/
|
|
22
|
+
removeFocusedItem: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Event handler to fire when the `root` slot of the Tree View is focused.
|
|
25
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
26
|
+
*/
|
|
27
|
+
handleRootFocus: (event: React.FocusEvent<HTMLUListElement> & TreeViewCancellableEvent) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Event handler to fire when the `root` slot of the Tree View is blurred.
|
|
30
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
31
|
+
*/
|
|
32
|
+
handleRootBlur: (event: React.FocusEvent<HTMLUListElement> & TreeViewCancellableEvent) => void;
|
|
33
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { expansionSelectors } from "../expansion/index.js";
|
|
2
|
+
import { focusSelectors } from "./selectors.js";
|
|
3
|
+
import { itemsSelectors } from "../items/index.js";
|
|
4
|
+
export class TreeViewFocusPlugin {
|
|
5
|
+
// We can't type `store`, otherwise we get the following TS error:
|
|
6
|
+
// 'focus' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
|
|
7
|
+
constructor(store) {
|
|
8
|
+
this.store = store;
|
|
9
|
+
|
|
10
|
+
// Whenever the items change, we need to ensure the focused item is still present.
|
|
11
|
+
this.store.registerStoreEffect(itemsSelectors.itemMetaLookup, () => {
|
|
12
|
+
const focusedItemId = focusSelectors.focusedItemId(store.state);
|
|
13
|
+
if (focusedItemId == null) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const hasItemBeenRemoved = !itemsSelectors.itemMeta(store.state, focusedItemId);
|
|
17
|
+
if (!hasItemBeenRemoved) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const defaultFocusableItemId = focusSelectors.defaultFocusableItemId(store.state);
|
|
21
|
+
if (defaultFocusableItemId == null) {
|
|
22
|
+
this.setFocusedItemId(null);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.applyItemFocus(null, defaultFocusableItemId);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
setFocusedItemId = itemId => {
|
|
29
|
+
const focusedItemId = focusSelectors.focusedItemId(this.store.state);
|
|
30
|
+
if (focusedItemId === itemId) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.store.set('focusedItemId', itemId);
|
|
34
|
+
};
|
|
35
|
+
applyItemFocus = (event, itemId) => {
|
|
36
|
+
this.store.items.getItemDOMElement(itemId)?.focus();
|
|
37
|
+
this.setFocusedItemId(itemId);
|
|
38
|
+
this.store.parameters.onItemFocus?.(event, itemId);
|
|
39
|
+
};
|
|
40
|
+
buildPublicAPI = () => {
|
|
41
|
+
return {
|
|
42
|
+
focusItem: this.focusItem
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Focus the item with the given id.
|
|
48
|
+
*
|
|
49
|
+
* If the item is the child of a collapsed item, then this method will do nothing.
|
|
50
|
+
* Make sure to expand the ancestors of the item before calling this method if needed.
|
|
51
|
+
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change.
|
|
52
|
+
* @param {TreeViewItemId} itemId The id of the item to focus.
|
|
53
|
+
*/
|
|
54
|
+
focusItem = (event, itemId) => {
|
|
55
|
+
// If we receive an itemId, and it is visible, the focus will be set to it
|
|
56
|
+
const itemMeta = itemsSelectors.itemMeta(this.store.state, itemId);
|
|
57
|
+
const isItemVisible = itemMeta && (itemMeta.parentId == null || expansionSelectors.isItemExpanded(this.store.state, itemMeta.parentId));
|
|
58
|
+
if (isItemVisible) {
|
|
59
|
+
this.applyItemFocus(event, itemId);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Remove the focus from the currently focused item (both from the internal state and the DOM).
|
|
65
|
+
*/
|
|
66
|
+
removeFocusedItem = () => {
|
|
67
|
+
const focusedItemId = focusSelectors.focusedItemId(this.store.state);
|
|
68
|
+
if (focusedItemId == null) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const itemMeta = itemsSelectors.itemMeta(this.store.state, focusedItemId);
|
|
72
|
+
if (itemMeta) {
|
|
73
|
+
const itemElement = this.store.items.getItemDOMElement(focusedItemId);
|
|
74
|
+
if (itemElement) {
|
|
75
|
+
itemElement.blur();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
this.setFocusedItemId(null);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Event handler to fire when the `root` slot of the Tree View is focused.
|
|
83
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
84
|
+
*/
|
|
85
|
+
handleRootFocus = event => {
|
|
86
|
+
if (event.defaultMuiPrevented) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// if the event bubbled (which is React specific) we don't want to steal focus
|
|
91
|
+
const defaultFocusableItemId = focusSelectors.defaultFocusableItemId(this.store.state);
|
|
92
|
+
if (event.target === event.currentTarget && defaultFocusableItemId != null) {
|
|
93
|
+
this.applyItemFocus(event, defaultFocusableItemId);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Event handler to fire when the `root` slot of the Tree View is blurred.
|
|
99
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
100
|
+
*/
|
|
101
|
+
handleRootBlur = event => {
|
|
102
|
+
if (event.defaultMuiPrevented) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
this.setFocusedItemId(null);
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
2
|
+
export declare const focusSelectors: {
|
|
3
|
+
/**
|
|
4
|
+
* Gets the item that should be sequentially focusable (usually with the Tab key).
|
|
5
|
+
* At any point in time, there is a single item that can be sequentially focused in the Tree View.
|
|
6
|
+
* This item is the first selected item (that is both visible and navigable), if any, or the first navigable item if no item is selected.
|
|
7
|
+
*/
|
|
8
|
+
defaultFocusableItemId: (args_0: MinimalTreeViewState<any, any>) => any;
|
|
9
|
+
/**
|
|
10
|
+
* Checks whether an item is the default focusable item.
|
|
11
|
+
*/
|
|
12
|
+
isItemTheDefaultFocusableItem: (args_0: MinimalTreeViewState<any, any>, itemId: any) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Gets the id of the item that is currently focused.
|
|
15
|
+
*/
|
|
16
|
+
focusedItemId: (state: MinimalTreeViewState<any, any>) => string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Checks whether an item is focused.
|
|
19
|
+
*/
|
|
20
|
+
isItemFocused: (state: MinimalTreeViewState<any, any>, itemId: string) => boolean;
|
|
21
|
+
};
|
package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
|
|
2
|
-
import { selectionSelectors } from "../
|
|
3
|
-
import { itemsSelectors } from "../
|
|
4
|
-
import { isItemDisabled } from "../
|
|
5
|
-
import { expansionSelectors } from "../
|
|
2
|
+
import { selectionSelectors } from "../selection/selectors.js";
|
|
3
|
+
import { itemsSelectors } from "../items/selectors.js";
|
|
4
|
+
import { isItemDisabled } from "../items/utils.js";
|
|
5
|
+
import { expansionSelectors } from "../expansion/selectors.js";
|
|
6
6
|
const defaultFocusableItemIdSelector = createSelectorMemoized(selectionSelectors.selectedItems, expansionSelectors.expandedItemsMap, itemsSelectors.itemMetaLookup, itemsSelectors.disabledItemFocusable, state => itemsSelectors.itemOrderedChildrenIds(state, null), (selectedItems, expandedItemsMap, itemMetaLookup, disabledItemsFocusable, orderedRootItemIds) => {
|
|
7
7
|
const firstSelectedItem = selectedItems.find(itemId => {
|
|
8
8
|
if (!disabledItemsFocusable && isItemDisabled(itemMetaLookup, itemId)) {
|
|
@@ -34,9 +34,9 @@ export const focusSelectors = {
|
|
|
34
34
|
/**
|
|
35
35
|
* Gets the id of the item that is currently focused.
|
|
36
36
|
*/
|
|
37
|
-
focusedItemId: createSelector(state => state.
|
|
37
|
+
focusedItemId: createSelector(state => state.focusedItemId),
|
|
38
38
|
/**
|
|
39
39
|
* Checks whether an item is focused.
|
|
40
40
|
*/
|
|
41
|
-
isItemFocused: createSelector((state, itemId) => state.
|
|
41
|
+
isItemFocused: createSelector((state, itemId) => state.focusedItemId === itemId)
|
|
42
42
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./selectors.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./selectors.js";
|