@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
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import { useEventCallback } from '@base-ui-components/utils/useEventCallback';
|
|
6
|
-
import { buildItemsLookups, buildItemsState, TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
|
|
7
|
-
import { TreeViewItemDepthContext } from "../../TreeViewItemDepthContext/index.js";
|
|
8
|
-
import { itemsSelectors } from "./useTreeViewItems.selectors.js";
|
|
9
|
-
import { idSelectors } from "../../corePlugins/useTreeViewId/index.js";
|
|
10
|
-
import { generateTreeItemIdAttribute } from "../../corePlugins/useTreeViewId/useTreeViewId.utils.js";
|
|
11
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
export const useTreeViewItems = ({
|
|
13
|
-
instance,
|
|
14
|
-
params,
|
|
15
|
-
store
|
|
16
|
-
}) => {
|
|
17
|
-
const itemsConfig = React.useMemo(() => ({
|
|
18
|
-
isItemDisabled: params.isItemDisabled,
|
|
19
|
-
getItemLabel: params.getItemLabel,
|
|
20
|
-
getItemChildren: params.getItemChildren,
|
|
21
|
-
getItemId: params.getItemId
|
|
22
|
-
}), [params.isItemDisabled, params.getItemLabel, params.getItemChildren, params.getItemId]);
|
|
23
|
-
const getItem = React.useCallback(itemId => itemsSelectors.itemModel(store.state, itemId), [store]);
|
|
24
|
-
const getParentId = React.useCallback(itemId => {
|
|
25
|
-
const itemMeta = itemsSelectors.itemMeta(store.state, itemId);
|
|
26
|
-
return itemMeta?.parentId || null;
|
|
27
|
-
}, [store]);
|
|
28
|
-
const setIsItemDisabled = useEventCallback(({
|
|
29
|
-
itemId,
|
|
30
|
-
shouldBeDisabled
|
|
31
|
-
}) => {
|
|
32
|
-
if (!store.state.items.itemMetaLookup[itemId]) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const itemMetaLookup = _extends({}, store.state.items.itemMetaLookup);
|
|
36
|
-
itemMetaLookup[itemId] = _extends({}, itemMetaLookup[itemId], {
|
|
37
|
-
disabled: shouldBeDisabled ?? !itemMetaLookup[itemId].disabled
|
|
38
|
-
});
|
|
39
|
-
store.set('items', _extends({}, store.state.items, {
|
|
40
|
-
itemMetaLookup
|
|
41
|
-
}));
|
|
42
|
-
});
|
|
43
|
-
const getItemTree = React.useCallback(() => {
|
|
44
|
-
const getItemFromItemId = itemId => {
|
|
45
|
-
const item = itemsSelectors.itemModel(store.state, itemId);
|
|
46
|
-
const itemToMutate = _extends({}, item);
|
|
47
|
-
const newChildren = itemsSelectors.itemOrderedChildrenIds(store.state, itemId);
|
|
48
|
-
if (newChildren.length > 0) {
|
|
49
|
-
itemToMutate.children = newChildren.map(getItemFromItemId);
|
|
50
|
-
} else {
|
|
51
|
-
delete itemToMutate.children;
|
|
52
|
-
}
|
|
53
|
-
return itemToMutate;
|
|
54
|
-
};
|
|
55
|
-
return itemsSelectors.itemOrderedChildrenIds(store.state, null).map(getItemFromItemId);
|
|
56
|
-
}, [store]);
|
|
57
|
-
const getItemOrderedChildrenIds = React.useCallback(itemId => itemsSelectors.itemOrderedChildrenIds(store.state, itemId), [store]);
|
|
58
|
-
const getItemDOMElement = itemId => {
|
|
59
|
-
const itemMeta = itemsSelectors.itemMeta(store.state, itemId);
|
|
60
|
-
if (itemMeta == null) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
const idAttribute = generateTreeItemIdAttribute({
|
|
64
|
-
treeId: idSelectors.treeId(store.state),
|
|
65
|
-
itemId,
|
|
66
|
-
id: itemMeta.idAttribute
|
|
67
|
-
});
|
|
68
|
-
return document.getElementById(idAttribute);
|
|
69
|
-
};
|
|
70
|
-
const areItemUpdatesPreventedRef = React.useRef(false);
|
|
71
|
-
const preventItemUpdates = React.useCallback(() => {
|
|
72
|
-
areItemUpdatesPreventedRef.current = true;
|
|
73
|
-
}, []);
|
|
74
|
-
const areItemUpdatesPrevented = React.useCallback(() => areItemUpdatesPreventedRef.current, []);
|
|
75
|
-
const setItemChildren = ({
|
|
76
|
-
items,
|
|
77
|
-
parentId,
|
|
78
|
-
getChildrenCount
|
|
79
|
-
}) => {
|
|
80
|
-
const parentIdWithDefault = parentId ?? TREE_VIEW_ROOT_PARENT_ID;
|
|
81
|
-
const parentDepth = parentId == null ? -1 : itemsSelectors.itemDepth(store.state, parentId);
|
|
82
|
-
const {
|
|
83
|
-
metaLookup,
|
|
84
|
-
modelLookup,
|
|
85
|
-
orderedChildrenIds,
|
|
86
|
-
childrenIndexes
|
|
87
|
-
} = buildItemsLookups({
|
|
88
|
-
config: itemsConfig,
|
|
89
|
-
items,
|
|
90
|
-
parentId,
|
|
91
|
-
depth: parentDepth + 1,
|
|
92
|
-
isItemExpandable: getChildrenCount ? item => getChildrenCount(item) > 0 : () => false,
|
|
93
|
-
otherItemsMetaLookup: itemsSelectors.itemMetaLookup(store.state)
|
|
94
|
-
});
|
|
95
|
-
const lookups = {
|
|
96
|
-
itemModelLookup: _extends({}, store.state.items.itemModelLookup, modelLookup),
|
|
97
|
-
itemMetaLookup: _extends({}, store.state.items.itemMetaLookup, metaLookup),
|
|
98
|
-
itemOrderedChildrenIdsLookup: _extends({}, store.state.items.itemOrderedChildrenIdsLookup, {
|
|
99
|
-
[parentIdWithDefault]: orderedChildrenIds
|
|
100
|
-
}),
|
|
101
|
-
itemChildrenIndexesLookup: _extends({}, store.state.items.itemChildrenIndexesLookup, {
|
|
102
|
-
[parentIdWithDefault]: childrenIndexes
|
|
103
|
-
})
|
|
104
|
-
};
|
|
105
|
-
store.set('items', _extends({}, store.state.items, lookups));
|
|
106
|
-
};
|
|
107
|
-
const removeChildren = useEventCallback(parentId => {
|
|
108
|
-
const newMetaMap = Object.keys(store.state.items.itemMetaLookup).reduce((acc, key) => {
|
|
109
|
-
const item = store.state.items.itemMetaLookup[key];
|
|
110
|
-
if (item.parentId === parentId) {
|
|
111
|
-
return acc;
|
|
112
|
-
}
|
|
113
|
-
return _extends({}, acc, {
|
|
114
|
-
[item.id]: item
|
|
115
|
-
});
|
|
116
|
-
}, {});
|
|
117
|
-
const newItemOrderedChildrenIdsLookup = _extends({}, store.state.items.itemOrderedChildrenIdsLookup);
|
|
118
|
-
const newItemChildrenIndexesLookup = _extends({}, store.state.items.itemChildrenIndexesLookup);
|
|
119
|
-
const cleanId = parentId ?? TREE_VIEW_ROOT_PARENT_ID;
|
|
120
|
-
delete newItemChildrenIndexesLookup[cleanId];
|
|
121
|
-
delete newItemOrderedChildrenIdsLookup[cleanId];
|
|
122
|
-
store.set('items', _extends({}, store.state.items, {
|
|
123
|
-
itemMetaLookup: newMetaMap,
|
|
124
|
-
itemOrderedChildrenIdsLookup: newItemOrderedChildrenIdsLookup,
|
|
125
|
-
itemChildrenIndexesLookup: newItemChildrenIndexesLookup
|
|
126
|
-
}));
|
|
127
|
-
});
|
|
128
|
-
const addExpandableItems = useEventCallback(items => {
|
|
129
|
-
const newItemMetaLookup = _extends({}, store.state.items.itemMetaLookup);
|
|
130
|
-
for (const itemId of items) {
|
|
131
|
-
newItemMetaLookup[itemId] = _extends({}, newItemMetaLookup[itemId], {
|
|
132
|
-
expandable: true
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
store.set('items', _extends({}, store.state.items, {
|
|
136
|
-
itemMetaLookup: newItemMetaLookup
|
|
137
|
-
}));
|
|
138
|
-
});
|
|
139
|
-
React.useEffect(() => {
|
|
140
|
-
if (instance.areItemUpdatesPrevented()) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
const newState = buildItemsState({
|
|
144
|
-
disabledItemsFocusable: params.disabledItemsFocusable,
|
|
145
|
-
items: params.items,
|
|
146
|
-
config: itemsConfig
|
|
147
|
-
});
|
|
148
|
-
store.set('items', _extends({}, store.state.items, newState));
|
|
149
|
-
}, [instance, store, params.items, params.disabledItemsFocusable, itemsConfig]);
|
|
150
|
-
|
|
151
|
-
// Wrap `props.onItemClick` with `useEventCallback` to prevent unneeded context updates.
|
|
152
|
-
const handleItemClick = useEventCallback((event, itemId) => {
|
|
153
|
-
if (params.onItemClick) {
|
|
154
|
-
params.onItemClick(event, itemId);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
return {
|
|
158
|
-
getRootProps: () => ({
|
|
159
|
-
style: {
|
|
160
|
-
'--TreeView-itemChildrenIndentation': typeof params.itemChildrenIndentation === 'number' ? `${params.itemChildrenIndentation}px` : params.itemChildrenIndentation
|
|
161
|
-
}
|
|
162
|
-
}),
|
|
163
|
-
publicAPI: {
|
|
164
|
-
getItem,
|
|
165
|
-
getItemDOMElement,
|
|
166
|
-
getItemTree,
|
|
167
|
-
getItemOrderedChildrenIds,
|
|
168
|
-
setIsItemDisabled,
|
|
169
|
-
getParentId
|
|
170
|
-
},
|
|
171
|
-
instance: {
|
|
172
|
-
getItemDOMElement,
|
|
173
|
-
preventItemUpdates,
|
|
174
|
-
areItemUpdatesPrevented,
|
|
175
|
-
setItemChildren,
|
|
176
|
-
removeChildren,
|
|
177
|
-
addExpandableItems,
|
|
178
|
-
handleItemClick
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
};
|
|
182
|
-
useTreeViewItems.getInitialState = params => ({
|
|
183
|
-
items: buildItemsState({
|
|
184
|
-
items: params.items,
|
|
185
|
-
disabledItemsFocusable: params.disabledItemsFocusable,
|
|
186
|
-
config: {
|
|
187
|
-
isItemDisabled: params.isItemDisabled,
|
|
188
|
-
getItemId: params.getItemId,
|
|
189
|
-
getItemLabel: params.getItemLabel,
|
|
190
|
-
getItemChildren: params.getItemChildren
|
|
191
|
-
}
|
|
192
|
-
})
|
|
193
|
-
});
|
|
194
|
-
useTreeViewItems.applyDefaultValuesToParams = ({
|
|
195
|
-
params
|
|
196
|
-
}) => _extends({}, params, {
|
|
197
|
-
disabledItemsFocusable: params.disabledItemsFocusable ?? false,
|
|
198
|
-
itemChildrenIndentation: params.itemChildrenIndentation ?? '12px'
|
|
199
|
-
});
|
|
200
|
-
useTreeViewItems.wrapRoot = ({
|
|
201
|
-
children
|
|
202
|
-
}) => {
|
|
203
|
-
return /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {
|
|
204
|
-
value: itemsSelectors.itemDepth,
|
|
205
|
-
children: children
|
|
206
|
-
});
|
|
207
|
-
};
|
|
208
|
-
if (process.env.NODE_ENV !== "production") useTreeViewItems.wrapRoot.displayName = "useTreeViewItems.wrapRoot";
|
|
209
|
-
useTreeViewItems.params = {
|
|
210
|
-
disabledItemsFocusable: true,
|
|
211
|
-
items: true,
|
|
212
|
-
isItemDisabled: true,
|
|
213
|
-
getItemLabel: true,
|
|
214
|
-
getItemChildren: true,
|
|
215
|
-
getItemId: true,
|
|
216
|
-
onItemClick: true,
|
|
217
|
-
itemChildrenIndentation: true
|
|
218
|
-
};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { TreeViewItemMeta, TreeViewState } from "../../models/index.js";
|
|
2
|
-
import { UseTreeViewItemsSignature } from "./useTreeViewItems.types.js";
|
|
3
|
-
export declare const itemsSelectors: {
|
|
4
|
-
/**
|
|
5
|
-
* Gets the DOM structure of the Tree View.
|
|
6
|
-
*/
|
|
7
|
-
domStructure: (state: TreeViewState<[UseTreeViewItemsSignature]>) => "flat" | "nested";
|
|
8
|
-
/**
|
|
9
|
-
* Checks whether the disabled items are focusable.
|
|
10
|
-
*/
|
|
11
|
-
disabledItemFocusable: (state: TreeViewState<[UseTreeViewItemsSignature]>) => boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Gets the meta-information of all items.
|
|
14
|
-
*/
|
|
15
|
-
itemMetaLookup: (state: TreeViewState<[UseTreeViewItemsSignature]>) => {
|
|
16
|
-
[itemId: string]: TreeViewItemMeta;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Gets the ordered children ids of all items.
|
|
20
|
-
*/
|
|
21
|
-
itemOrderedChildrenIdsLookup: (state: TreeViewState<[UseTreeViewItemsSignature]>) => {
|
|
22
|
-
[parentItemId: string]: string[];
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Gets the meta-information of an item.
|
|
26
|
-
*/
|
|
27
|
-
itemMeta: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string | null) => TreeViewItemMeta | null;
|
|
28
|
-
/**
|
|
29
|
-
* Gets the ordered children ids of an item.
|
|
30
|
-
*/
|
|
31
|
-
itemOrderedChildrenIds: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string | null) => string[];
|
|
32
|
-
/**
|
|
33
|
-
* Gets the model of an item.
|
|
34
|
-
*/
|
|
35
|
-
itemModel: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => import("../../../index.js").TreeViewBaseItem<import("../../../index.js").TreeViewDefaultItemModelProperties>;
|
|
36
|
-
/**
|
|
37
|
-
* Checks whether an item is disabled.
|
|
38
|
-
*/
|
|
39
|
-
isItemDisabled: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Gets the index of an item in its parent's children.
|
|
42
|
-
*/
|
|
43
|
-
itemIndex: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => number;
|
|
44
|
-
/**
|
|
45
|
-
* Gets the id of an item's parent.
|
|
46
|
-
*/
|
|
47
|
-
itemParentId: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => string | null;
|
|
48
|
-
/**
|
|
49
|
-
* Gets the depth of an item (items at the root level have a depth of 0).
|
|
50
|
-
*/
|
|
51
|
-
itemDepth: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => number;
|
|
52
|
-
/**
|
|
53
|
-
* Checks whether an item can be focused.
|
|
54
|
-
*/
|
|
55
|
-
canItemBeFocused: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => boolean;
|
|
56
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { createSelector } from '@mui/x-internals/store';
|
|
2
|
-
import { isItemDisabled, TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
|
|
3
|
-
const EMPTY_CHILDREN = [];
|
|
4
|
-
export const itemsSelectors = {
|
|
5
|
-
/**
|
|
6
|
-
* Gets the DOM structure of the Tree View.
|
|
7
|
-
*/
|
|
8
|
-
domStructure: createSelector(state => state.items.domStructure),
|
|
9
|
-
/**
|
|
10
|
-
* Checks whether the disabled items are focusable.
|
|
11
|
-
*/
|
|
12
|
-
disabledItemFocusable: createSelector(state => state.items.disabledItemsFocusable),
|
|
13
|
-
/**
|
|
14
|
-
* Gets the meta-information of all items.
|
|
15
|
-
*/
|
|
16
|
-
itemMetaLookup: createSelector(state => state.items.itemMetaLookup),
|
|
17
|
-
/**
|
|
18
|
-
* Gets the ordered children ids of all items.
|
|
19
|
-
*/
|
|
20
|
-
itemOrderedChildrenIdsLookup: createSelector(state => state.items.itemOrderedChildrenIdsLookup),
|
|
21
|
-
/**
|
|
22
|
-
* Gets the meta-information of an item.
|
|
23
|
-
*/
|
|
24
|
-
itemMeta: createSelector((state, itemId) => state.items.itemMetaLookup[itemId ?? TREE_VIEW_ROOT_PARENT_ID] ?? null),
|
|
25
|
-
/**
|
|
26
|
-
* Gets the ordered children ids of an item.
|
|
27
|
-
*/
|
|
28
|
-
itemOrderedChildrenIds: createSelector((state, itemId) => state.items.itemOrderedChildrenIdsLookup[itemId ?? TREE_VIEW_ROOT_PARENT_ID] ?? EMPTY_CHILDREN),
|
|
29
|
-
/**
|
|
30
|
-
* Gets the model of an item.
|
|
31
|
-
*/
|
|
32
|
-
itemModel: createSelector((state, itemId) => state.items.itemModelLookup[itemId]),
|
|
33
|
-
/**
|
|
34
|
-
* Checks whether an item is disabled.
|
|
35
|
-
*/
|
|
36
|
-
isItemDisabled: createSelector((state, itemId) => isItemDisabled(state.items.itemMetaLookup, itemId)),
|
|
37
|
-
/**
|
|
38
|
-
* Gets the index of an item in its parent's children.
|
|
39
|
-
*/
|
|
40
|
-
itemIndex: createSelector((state, itemId) => {
|
|
41
|
-
const itemMeta = state.items.itemMetaLookup[itemId];
|
|
42
|
-
if (itemMeta == null) {
|
|
43
|
-
return -1;
|
|
44
|
-
}
|
|
45
|
-
const parentIndexes = state.items.itemChildrenIndexesLookup[itemMeta.parentId ?? TREE_VIEW_ROOT_PARENT_ID];
|
|
46
|
-
return parentIndexes[itemMeta.id];
|
|
47
|
-
}),
|
|
48
|
-
/**
|
|
49
|
-
* Gets the id of an item's parent.
|
|
50
|
-
*/
|
|
51
|
-
itemParentId: createSelector((state, itemId) => state.items.itemMetaLookup[itemId]?.parentId ?? null),
|
|
52
|
-
/**
|
|
53
|
-
* Gets the depth of an item (items at the root level have a depth of 0).
|
|
54
|
-
*/
|
|
55
|
-
itemDepth: createSelector((state, itemId) => state.items.itemMetaLookup[itemId]?.depth ?? 0),
|
|
56
|
-
/**
|
|
57
|
-
* Checks whether an item can be focused.
|
|
58
|
-
*/
|
|
59
|
-
canItemBeFocused: createSelector((state, itemId) => state.items.disabledItemsFocusable || !isItemDisabled(state.items.itemMetaLookup, itemId))
|
|
60
|
-
};
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
|
-
import { TreeViewItemMeta, TreeViewPluginSignature } from "../../models/index.js";
|
|
4
|
-
import { TreeViewBaseItem, TreeViewDefaultItemModelProperties, TreeViewItemId } from "../../../models/index.js";
|
|
5
|
-
export type SetItemChildrenParameters<R> = {
|
|
6
|
-
items: readonly R[];
|
|
7
|
-
parentId: TreeViewItemId | null;
|
|
8
|
-
getChildrenCount: (item: R) => number;
|
|
9
|
-
};
|
|
10
|
-
export interface UseTreeViewItemsPublicAPI<R extends {}> {
|
|
11
|
-
/**
|
|
12
|
-
* Get the item with the given id.
|
|
13
|
-
* When used in the Simple Tree View, it returns an object with the `id` and `label` properties.
|
|
14
|
-
* @param {TreeViewItemId} itemId The id of the item to retrieve.
|
|
15
|
-
* @returns {R} The item with the given id.
|
|
16
|
-
*/
|
|
17
|
-
getItem: (itemId: TreeViewItemId) => R;
|
|
18
|
-
/**
|
|
19
|
-
* Get the DOM element of the item with the given id.
|
|
20
|
-
* @param {TreeViewItemId} itemId The id of the item to get the DOM element of.
|
|
21
|
-
* @returns {HTMLElement | null} The DOM element of the item with the given id.
|
|
22
|
-
*/
|
|
23
|
-
getItemDOMElement: (itemId: TreeViewItemId) => HTMLElement | null;
|
|
24
|
-
/**
|
|
25
|
-
* Get the ids of a given item's children.
|
|
26
|
-
* Those ids are returned in the order they should be rendered.
|
|
27
|
-
* To get the root items, pass `null` as the `itemId`.
|
|
28
|
-
* @param {TreeViewItemId | null} itemId The id of the item to get the children of.
|
|
29
|
-
* @returns {TreeViewItemId[]} The ids of the item's children.
|
|
30
|
-
*/
|
|
31
|
-
getItemOrderedChildrenIds: (itemId: TreeViewItemId | null) => TreeViewItemId[];
|
|
32
|
-
/**
|
|
33
|
-
* Get all the items in the same format as provided by `props.items`.
|
|
34
|
-
* @returns {TreeViewBaseItem[]} The items in the tree.
|
|
35
|
-
*/
|
|
36
|
-
getItemTree: () => TreeViewBaseItem[];
|
|
37
|
-
/**
|
|
38
|
-
* Toggle the disabled state of the item with the given id.
|
|
39
|
-
* @param {object} parameters The params of the method.
|
|
40
|
-
* @param {TreeViewItemId } parameters.itemId The id of the item to get the children of.
|
|
41
|
-
* @param {boolean } parameters.shouldBeDisabled true if the item should be disabled.
|
|
42
|
-
*/
|
|
43
|
-
setIsItemDisabled: (parameters: {
|
|
44
|
-
itemId: TreeViewItemId;
|
|
45
|
-
shouldBeDisabled?: boolean;
|
|
46
|
-
}) => void;
|
|
47
|
-
/** * Get the id of the parent item.
|
|
48
|
-
* @param {TreeViewItemId} itemId The id of the item to whose parentId we want to retrieve.
|
|
49
|
-
* @returns {TreeViewItemId | null} The id of the parent item.
|
|
50
|
-
*/
|
|
51
|
-
getParentId: (itemId: TreeViewItemId) => TreeViewItemId | null;
|
|
52
|
-
}
|
|
53
|
-
export interface UseTreeViewItemsInstance<R extends {}> extends Pick<UseTreeViewItemsPublicAPI<R>, 'getItemDOMElement'> {
|
|
54
|
-
/**
|
|
55
|
-
* Freeze any future update to the state based on the `items` prop.
|
|
56
|
-
* This is useful when `useTreeViewJSXItems` is used to avoid having conflicting sources of truth.
|
|
57
|
-
*/
|
|
58
|
-
preventItemUpdates: () => void;
|
|
59
|
-
/**
|
|
60
|
-
* Check if the updates to the state based on the `items` prop are prevented.
|
|
61
|
-
* This is useful when `useTreeViewJSXItems` is used to avoid having conflicting sources of truth.
|
|
62
|
-
* @returns {boolean} `true` if the updates to the state based on the `items` prop are prevented.
|
|
63
|
-
*/
|
|
64
|
-
areItemUpdatesPrevented: () => boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Add an array of items to the tree.
|
|
67
|
-
* @param {SetItemChildrenParameters<R>} args The items to add to the tree and information about their ancestors.
|
|
68
|
-
*/
|
|
69
|
-
setItemChildren: (args: SetItemChildrenParameters<R>) => void;
|
|
70
|
-
/**
|
|
71
|
-
* Remove the children of an item.
|
|
72
|
-
* @param {TreeViewItemId | null} parentId The id of the item to remove the children of.
|
|
73
|
-
*/
|
|
74
|
-
removeChildren: (parentId: TreeViewItemId | null) => void;
|
|
75
|
-
/**
|
|
76
|
-
* Event handler to fire when the `content` slot of a given Tree Item is clicked.
|
|
77
|
-
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
78
|
-
* @param {TreeViewItemId} itemId The id of the item being clicked.
|
|
79
|
-
*/
|
|
80
|
-
handleItemClick: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
|
|
81
|
-
/**
|
|
82
|
-
* Mark a list of items as expandable.
|
|
83
|
-
* @param {TreeViewItemId[]} items The ids of the items to mark as expandable.
|
|
84
|
-
*/
|
|
85
|
-
addExpandableItems: (items: TreeViewItemId[]) => void;
|
|
86
|
-
}
|
|
87
|
-
export interface UseTreeViewItemsParameters<R extends {
|
|
88
|
-
children?: R[];
|
|
89
|
-
}> {
|
|
90
|
-
/**
|
|
91
|
-
* Whether the items should be focusable when disabled.
|
|
92
|
-
* @default false
|
|
93
|
-
*/
|
|
94
|
-
disabledItemsFocusable?: boolean;
|
|
95
|
-
items: readonly R[];
|
|
96
|
-
/**
|
|
97
|
-
* Used to determine if a given item should be disabled.
|
|
98
|
-
* @template R
|
|
99
|
-
* @param {R} item The item to check.
|
|
100
|
-
* @returns {boolean} `true` if the item should be disabled.
|
|
101
|
-
*/
|
|
102
|
-
isItemDisabled?: (item: R) => boolean;
|
|
103
|
-
/**
|
|
104
|
-
* Used to determine the string label for a given item.
|
|
105
|
-
*
|
|
106
|
-
* @template R
|
|
107
|
-
* @param {R} item The item to check.
|
|
108
|
-
* @returns {string} The label of the item.
|
|
109
|
-
* @default (item) => item.label
|
|
110
|
-
*/
|
|
111
|
-
getItemLabel?: (item: R) => string;
|
|
112
|
-
/**
|
|
113
|
-
* Used to determine the children of a given item.
|
|
114
|
-
*
|
|
115
|
-
* @template R
|
|
116
|
-
* @param {R} item The item to check.
|
|
117
|
-
* @returns {R[]} The children of the item.
|
|
118
|
-
* @default (item) => item.children
|
|
119
|
-
*/
|
|
120
|
-
getItemChildren?: (item: R) => R[] | undefined;
|
|
121
|
-
/**
|
|
122
|
-
* Used to determine the id of a given item.
|
|
123
|
-
*
|
|
124
|
-
* @template R
|
|
125
|
-
* @param {R} item The item to check.
|
|
126
|
-
* @returns {TreeViewItemId} The id of the item.
|
|
127
|
-
* @default (item) => item.id
|
|
128
|
-
*/
|
|
129
|
-
getItemId?: (item: R) => TreeViewItemId;
|
|
130
|
-
/**
|
|
131
|
-
* Callback fired when the `content` slot of a given Tree Item is clicked.
|
|
132
|
-
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
133
|
-
* @param {TreeViewItemId} itemId The id of the focused item.
|
|
134
|
-
*/
|
|
135
|
-
onItemClick?: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
|
|
136
|
-
/**
|
|
137
|
-
* Horizontal indentation between an item and its children.
|
|
138
|
-
* Examples: 24, "24px", "2rem", "2em".
|
|
139
|
-
* @default 12px
|
|
140
|
-
*/
|
|
141
|
-
itemChildrenIndentation?: string | number;
|
|
142
|
-
}
|
|
143
|
-
export type UseTreeViewItemsParametersWithDefaults<R extends {
|
|
144
|
-
children?: R[];
|
|
145
|
-
}> = DefaultizedProps<UseTreeViewItemsParameters<R>, 'disabledItemsFocusable' | 'itemChildrenIndentation'>;
|
|
146
|
-
export interface UseTreeViewItemsState<R extends {}> {
|
|
147
|
-
items: {
|
|
148
|
-
/**
|
|
149
|
-
* Whether the items should be focusable when disabled.
|
|
150
|
-
* Always equal to `props.disabledItemsFocusable` (or `false` if not provided).
|
|
151
|
-
*/
|
|
152
|
-
disabledItemsFocusable: boolean;
|
|
153
|
-
/**
|
|
154
|
-
* Model of each item as provided by `props.items` or by imperative items updates.
|
|
155
|
-
* It is not updated when properties derived from the model are updated:
|
|
156
|
-
* - when the label of an item is updated, `itemMetaLookup` is updated, not `itemModelLookup`.
|
|
157
|
-
* - when the children of an item are updated, `itemOrderedChildrenIdsLookup` and `itemChildrenIndexesLookup` are updated, not `itemModelLookup`.
|
|
158
|
-
* This means that the `children`, `label` or `id` properties of an item model should never be used directly, always use the structured sub-states instead.
|
|
159
|
-
*/
|
|
160
|
-
itemModelLookup: {
|
|
161
|
-
[itemId: string]: TreeViewBaseItem<R>;
|
|
162
|
-
};
|
|
163
|
-
/**
|
|
164
|
-
* Meta data of each item.
|
|
165
|
-
*/
|
|
166
|
-
itemMetaLookup: {
|
|
167
|
-
[itemId: string]: TreeViewItemMeta;
|
|
168
|
-
};
|
|
169
|
-
/**
|
|
170
|
-
* Ordered children ids of each item.
|
|
171
|
-
*/
|
|
172
|
-
itemOrderedChildrenIdsLookup: {
|
|
173
|
-
[parentItemId: string]: TreeViewItemId[];
|
|
174
|
-
};
|
|
175
|
-
/**
|
|
176
|
-
* Index of each child in the ordered children ids of its parent.
|
|
177
|
-
*/
|
|
178
|
-
itemChildrenIndexesLookup: {
|
|
179
|
-
[parentItemId: string]: {
|
|
180
|
-
[itemId: string]: number;
|
|
181
|
-
};
|
|
182
|
-
};
|
|
183
|
-
/**
|
|
184
|
-
* When equal to 'flat', the tree is rendered as a flat list (children are rendered as siblings of their parents).
|
|
185
|
-
* When equal to 'nested', the tree is rendered with nested children (children are rendered inside the groupTransition slot of their children).
|
|
186
|
-
* Nested DOM structure is not compatible with collapse / expansion animations.
|
|
187
|
-
*/
|
|
188
|
-
domStructure: 'flat' | 'nested';
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
export type UseTreeViewItemsSignature = TreeViewPluginSignature<{
|
|
192
|
-
params: UseTreeViewItemsParameters<any>;
|
|
193
|
-
paramsWithDefaults: UseTreeViewItemsParametersWithDefaults<any>;
|
|
194
|
-
instance: UseTreeViewItemsInstance<any>;
|
|
195
|
-
publicAPI: UseTreeViewItemsPublicAPI<any>;
|
|
196
|
-
state: UseTreeViewItemsState<TreeViewDefaultItemModelProperties>;
|
|
197
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { TreeViewBaseItem, TreeViewItemId } from "../../../models/index.js";
|
|
2
|
-
import { TreeViewItemMeta } from "../../models/index.js";
|
|
3
|
-
import { UseTreeViewItemsParametersWithDefaults, UseTreeViewItemsState } from "./useTreeViewItems.types.js";
|
|
4
|
-
export declare const TREE_VIEW_ROOT_PARENT_ID = "__TREE_VIEW_ROOT_PARENT_ID__";
|
|
5
|
-
export declare const buildSiblingIndexes: (siblings: string[]) => {
|
|
6
|
-
[itemId: string]: number;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Check if an item is disabled.
|
|
10
|
-
* This method should only be used in selectors that are checking if several items are disabled.
|
|
11
|
-
* Otherwise, use the `itemsSelector.isItemDisabled` selector.
|
|
12
|
-
* @returns
|
|
13
|
-
*/
|
|
14
|
-
export declare const isItemDisabled: (itemMetaLookup: {
|
|
15
|
-
[itemId: string]: TreeViewItemMeta;
|
|
16
|
-
}, itemId: TreeViewItemId) => boolean;
|
|
17
|
-
type State = UseTreeViewItemsState<any>['items'];
|
|
18
|
-
export declare function buildItemsState(parameters: BuildItemsStateParameters): State;
|
|
19
|
-
interface BuildItemsStateParameters extends Pick<BuildItemsLookupsParameters, 'items' | 'config'> {
|
|
20
|
-
disabledItemsFocusable: boolean;
|
|
21
|
-
}
|
|
22
|
-
export declare function buildItemsLookups(parameters: BuildItemsLookupsParameters): {
|
|
23
|
-
metaLookup: {
|
|
24
|
-
[itemId: string]: TreeViewItemMeta;
|
|
25
|
-
};
|
|
26
|
-
modelLookup: {
|
|
27
|
-
[itemId: string]: any;
|
|
28
|
-
};
|
|
29
|
-
orderedChildrenIds: string[];
|
|
30
|
-
childrenIndexes: {
|
|
31
|
-
[itemId: string]: number;
|
|
32
|
-
};
|
|
33
|
-
itemsChildren: {
|
|
34
|
-
id: string | null;
|
|
35
|
-
children: TreeViewBaseItem[];
|
|
36
|
-
}[];
|
|
37
|
-
};
|
|
38
|
-
interface BuildItemsLookupsParameters {
|
|
39
|
-
items: readonly TreeViewBaseItem[];
|
|
40
|
-
config: BuildItemsLookupConfig;
|
|
41
|
-
parentId: string | null;
|
|
42
|
-
depth: number;
|
|
43
|
-
isItemExpandable: (item: TreeViewBaseItem, children: TreeViewBaseItem[] | undefined) => boolean;
|
|
44
|
-
otherItemsMetaLookup: {
|
|
45
|
-
[itemId: string]: TreeViewItemMeta;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export interface BuildItemsLookupConfig extends Pick<UseTreeViewItemsParametersWithDefaults<TreeViewBaseItem>, 'isItemDisabled' | 'getItemLabel' | 'getItemChildren' | 'getItemId'> {}
|
|
49
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewJSXItems } from "./useTreeViewJSXItems.js";
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { useStore } from '@mui/x-internals/store';
|
|
5
|
-
import { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';
|
|
6
|
-
import { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';
|
|
7
|
-
import { useTreeViewContext } from "../../TreeViewProvider/index.js";
|
|
8
|
-
import { TreeViewChildrenItemContext } from "../../TreeViewProvider/TreeViewChildrenItemProvider.js";
|
|
9
|
-
import { itemHasChildren } from "../../../hooks/useTreeItemUtils/useTreeItemUtils.js";
|
|
10
|
-
import { idSelectors } from "../../corePlugins/useTreeViewId/index.js";
|
|
11
|
-
import { generateTreeItemIdAttribute } from "../../corePlugins/useTreeViewId/useTreeViewId.utils.js";
|
|
12
|
-
export const useTreeViewJSXItemsItemPlugin = ({
|
|
13
|
-
props,
|
|
14
|
-
rootRef,
|
|
15
|
-
contentRef
|
|
16
|
-
}) => {
|
|
17
|
-
const {
|
|
18
|
-
instance,
|
|
19
|
-
store
|
|
20
|
-
} = useTreeViewContext();
|
|
21
|
-
const {
|
|
22
|
-
children,
|
|
23
|
-
disabled = false,
|
|
24
|
-
label,
|
|
25
|
-
itemId,
|
|
26
|
-
id
|
|
27
|
-
} = props;
|
|
28
|
-
const parentContext = React.useContext(TreeViewChildrenItemContext);
|
|
29
|
-
if (parentContext == null) {
|
|
30
|
-
throw new Error(['MUI X: Could not find the Tree View Children Item context.', 'It looks like you rendered your component outside of a SimpleTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
|
|
31
|
-
}
|
|
32
|
-
const {
|
|
33
|
-
registerChild,
|
|
34
|
-
unregisterChild,
|
|
35
|
-
parentId
|
|
36
|
-
} = parentContext;
|
|
37
|
-
const expandable = itemHasChildren(children);
|
|
38
|
-
const pluginContentRef = React.useRef(null);
|
|
39
|
-
const handleContentRef = useMergedRefs(pluginContentRef, contentRef);
|
|
40
|
-
const treeId = useStore(store, idSelectors.treeId);
|
|
41
|
-
|
|
42
|
-
// Prevent any flashing
|
|
43
|
-
useIsoLayoutEffect(() => {
|
|
44
|
-
const idAttribute = generateTreeItemIdAttribute({
|
|
45
|
-
itemId,
|
|
46
|
-
treeId,
|
|
47
|
-
id
|
|
48
|
-
});
|
|
49
|
-
registerChild(idAttribute, itemId);
|
|
50
|
-
return () => {
|
|
51
|
-
unregisterChild(idAttribute);
|
|
52
|
-
unregisterChild(idAttribute);
|
|
53
|
-
};
|
|
54
|
-
}, [store, instance, registerChild, unregisterChild, itemId, id, treeId]);
|
|
55
|
-
useIsoLayoutEffect(() => {
|
|
56
|
-
return instance.insertJSXItem({
|
|
57
|
-
id: itemId,
|
|
58
|
-
idAttribute: id,
|
|
59
|
-
parentId,
|
|
60
|
-
expandable,
|
|
61
|
-
disabled
|
|
62
|
-
});
|
|
63
|
-
}, [instance, parentId, itemId, expandable, disabled, id]);
|
|
64
|
-
React.useEffect(() => {
|
|
65
|
-
if (label) {
|
|
66
|
-
return instance.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
|
|
67
|
-
}
|
|
68
|
-
return undefined;
|
|
69
|
-
}, [instance, itemId, label]);
|
|
70
|
-
return {
|
|
71
|
-
contentRef: handleContentRef,
|
|
72
|
-
rootRef
|
|
73
|
-
};
|
|
74
|
-
};
|