@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
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { TreeViewItemId } from "../../../models/index.js";
|
|
2
|
-
export declare const createTreeViewDefaultId: () => string;
|
|
3
|
-
/**
|
|
4
|
-
* Generate the id attribute (i.e.: the `id` attribute passed to the DOM element) of a Tree Item.
|
|
5
|
-
* If the user explicitly defined an id attribute, it will be returned.
|
|
6
|
-
* Otherwise, the method creates a unique id for the item based on the Tree View id attribute and the item `itemId`
|
|
7
|
-
* @param {object} params The parameters to determine the id attribute of the item.
|
|
8
|
-
* @param {TreeViewItemId} params.itemId The id of the item to get the id attribute of.
|
|
9
|
-
* @param {string | undefined} params.idAttribute The id attribute of the item if explicitly defined by the user.
|
|
10
|
-
* @param {string} params.treeId The id attribute of the Tree View.
|
|
11
|
-
* @returns {string} The id attribute of the item.
|
|
12
|
-
*/
|
|
13
|
-
export declare const generateTreeItemIdAttribute: ({
|
|
14
|
-
id,
|
|
15
|
-
treeId,
|
|
16
|
-
itemId
|
|
17
|
-
}: {
|
|
18
|
-
id: TreeViewItemId | undefined;
|
|
19
|
-
treeId: string | undefined;
|
|
20
|
-
itemId: string;
|
|
21
|
-
}) => string;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
let globalTreeViewDefaultId = 0;
|
|
2
|
-
export const createTreeViewDefaultId = () => {
|
|
3
|
-
globalTreeViewDefaultId += 1;
|
|
4
|
-
return `mui-tree-view-${globalTreeViewDefaultId}`;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Generate the id attribute (i.e.: the `id` attribute passed to the DOM element) of a Tree Item.
|
|
9
|
-
* If the user explicitly defined an id attribute, it will be returned.
|
|
10
|
-
* Otherwise, the method creates a unique id for the item based on the Tree View id attribute and the item `itemId`
|
|
11
|
-
* @param {object} params The parameters to determine the id attribute of the item.
|
|
12
|
-
* @param {TreeViewItemId} params.itemId The id of the item to get the id attribute of.
|
|
13
|
-
* @param {string | undefined} params.idAttribute The id attribute of the item if explicitly defined by the user.
|
|
14
|
-
* @param {string} params.treeId The id attribute of the Tree View.
|
|
15
|
-
* @returns {string} The id attribute of the item.
|
|
16
|
-
*/
|
|
17
|
-
export const generateTreeItemIdAttribute = ({
|
|
18
|
-
id,
|
|
19
|
-
treeId = '',
|
|
20
|
-
itemId
|
|
21
|
-
}) => {
|
|
22
|
-
if (id != null) {
|
|
23
|
-
return id;
|
|
24
|
-
}
|
|
25
|
-
return `${treeId}-${itemId}`;
|
|
26
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewInstanceEvents } from "./useTreeViewInstanceEvents.js";
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { EventManager } from '@mui/x-internals/EventManager';
|
|
5
|
-
const isSyntheticEvent = event => {
|
|
6
|
-
return event.isPropagationStopped !== undefined;
|
|
7
|
-
};
|
|
8
|
-
export const useTreeViewInstanceEvents = () => {
|
|
9
|
-
const [eventManager] = React.useState(() => new EventManager());
|
|
10
|
-
const publishEvent = React.useCallback((...args) => {
|
|
11
|
-
const [name, params, event = {}] = args;
|
|
12
|
-
event.defaultMuiPrevented = false;
|
|
13
|
-
if (isSyntheticEvent(event) && event.isPropagationStopped()) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
eventManager.emit(name, params, event);
|
|
17
|
-
}, [eventManager]);
|
|
18
|
-
const subscribeEvent = React.useCallback((event, handler) => {
|
|
19
|
-
eventManager.on(event, handler);
|
|
20
|
-
return () => {
|
|
21
|
-
eventManager.removeListener(event, handler);
|
|
22
|
-
};
|
|
23
|
-
}, [eventManager]);
|
|
24
|
-
return {
|
|
25
|
-
instance: {
|
|
26
|
-
$$publishEvent: publishEvent,
|
|
27
|
-
$$subscribeEvent: subscribeEvent
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
useTreeViewInstanceEvents.params = {};
|
package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { TreeViewPluginSignature } from "../../models/index.js";
|
|
2
|
-
import { TreeViewEventListener } from "../../models/events.js";
|
|
3
|
-
export interface UseTreeViewInstanceEventsInstance {
|
|
4
|
-
/**
|
|
5
|
-
* Should never be used directly.
|
|
6
|
-
* Please use `useInstanceEventHandler` instead.
|
|
7
|
-
* @param {string} eventName Name of the event to subscribe to.
|
|
8
|
-
* @param {TreeViewEventListener<any>} handler Event handler to call when the event is published.
|
|
9
|
-
* @returns {() => void} Cleanup function.
|
|
10
|
-
*/
|
|
11
|
-
$$subscribeEvent: (eventName: string, handler: TreeViewEventListener<any>) => () => void;
|
|
12
|
-
/**
|
|
13
|
-
* Should never be used directly.
|
|
14
|
-
* Please use `publishTreeViewEvent` instead.
|
|
15
|
-
* @param {string} eventName Name of the event to publish.
|
|
16
|
-
* @param {any} params The params to publish with the event.
|
|
17
|
-
*/
|
|
18
|
-
$$publishEvent: (eventName: string, params: any) => void;
|
|
19
|
-
}
|
|
20
|
-
export type UseTreeViewInstanceEventsSignature = TreeViewPluginSignature<{
|
|
21
|
-
instance: UseTreeViewInstanceEventsInstance;
|
|
22
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewOptionalPlugins } from "./useTreeViewOptionalPlugins.js";
|
package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { TreeViewPlugin, TreeViewAnyPluginSignature, TreeViewPluginSignature } from "../../models/index.js";
|
|
2
|
-
interface UseTreeViewOptionalPluginsInstance {
|
|
3
|
-
getAvailablePlugins: () => Set<TreeViewPlugin<TreeViewAnyPluginSignature>>;
|
|
4
|
-
}
|
|
5
|
-
export type UseTreeViewOptionalPluginsSignature = TreeViewPluginSignature<{
|
|
6
|
-
instance: UseTreeViewOptionalPluginsInstance;
|
|
7
|
-
}>;
|
|
8
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CleanupTracking } from "../utils/cleanupTracking/CleanupTracking.js";
|
|
2
|
-
import { TreeViewAnyPluginSignature, TreeViewUsedEvents } from "../models/index.js";
|
|
3
|
-
import { TreeViewEventListener } from "../models/events.js";
|
|
4
|
-
import { UseTreeViewInstanceEventsInstance } from "../corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js";
|
|
5
|
-
interface RegistryContainer {
|
|
6
|
-
registry: CleanupTracking | null;
|
|
7
|
-
}
|
|
8
|
-
export declare function createUseInstanceEventHandler(registryContainer: RegistryContainer): <Instance extends UseTreeViewInstanceEventsInstance & {
|
|
9
|
-
$$signature: TreeViewAnyPluginSignature;
|
|
10
|
-
}, E extends keyof TreeViewUsedEvents<Instance["$$signature"]>>(instance: Instance, eventName: E, handler: TreeViewEventListener<TreeViewUsedEvents<Instance["$$signature"]>[E]>) => void;
|
|
11
|
-
export declare const unstable_resetCleanupTracking: () => void;
|
|
12
|
-
export declare const useInstanceEventHandler: <Instance extends UseTreeViewInstanceEventsInstance & {
|
|
13
|
-
$$signature: TreeViewAnyPluginSignature;
|
|
14
|
-
}, E extends keyof TreeViewUsedEvents<Instance["$$signature"]>>(instance: Instance, eventName: E, handler: TreeViewEventListener<TreeViewUsedEvents<Instance["$$signature"]>[E]>) => void;
|
|
15
|
-
export {};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { TimerBasedCleanupTracking } from "../utils/cleanupTracking/TimerBasedCleanupTracking.js";
|
|
5
|
-
import { FinalizationRegistryBasedCleanupTracking } from "../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js";
|
|
6
|
-
// We use class to make it easier to detect in heap snapshots by name
|
|
7
|
-
class ObjectToBeRetainedByReact {}
|
|
8
|
-
|
|
9
|
-
// Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts
|
|
10
|
-
// Check https://github.com/facebook/react/issues/15317 to get more information
|
|
11
|
-
export function createUseInstanceEventHandler(registryContainer) {
|
|
12
|
-
let cleanupTokensCounter = 0;
|
|
13
|
-
return function useInstanceEventHandler(instance, eventName, handler) {
|
|
14
|
-
if (registryContainer.registry === null) {
|
|
15
|
-
registryContainer.registry = typeof FinalizationRegistry !== 'undefined' ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();
|
|
16
|
-
}
|
|
17
|
-
const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());
|
|
18
|
-
const subscription = React.useRef(null);
|
|
19
|
-
const handlerRef = React.useRef(undefined);
|
|
20
|
-
handlerRef.current = handler;
|
|
21
|
-
const cleanupTokenRef = React.useRef(null);
|
|
22
|
-
if (!subscription.current && handlerRef.current) {
|
|
23
|
-
const enhancedHandler = (params, event) => {
|
|
24
|
-
if (!event.defaultMuiPrevented) {
|
|
25
|
-
handlerRef.current?.(params, event);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);
|
|
29
|
-
cleanupTokensCounter += 1;
|
|
30
|
-
cleanupTokenRef.current = {
|
|
31
|
-
cleanupToken: cleanupTokensCounter
|
|
32
|
-
};
|
|
33
|
-
registryContainer.registry.register(objectRetainedByReact,
|
|
34
|
-
// The callback below will be called once this reference stops being retained
|
|
35
|
-
() => {
|
|
36
|
-
subscription.current?.();
|
|
37
|
-
subscription.current = null;
|
|
38
|
-
cleanupTokenRef.current = null;
|
|
39
|
-
}, cleanupTokenRef.current);
|
|
40
|
-
} else if (!handlerRef.current && subscription.current) {
|
|
41
|
-
subscription.current();
|
|
42
|
-
subscription.current = null;
|
|
43
|
-
if (cleanupTokenRef.current) {
|
|
44
|
-
registryContainer.registry.unregister(cleanupTokenRef.current);
|
|
45
|
-
cleanupTokenRef.current = null;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
React.useEffect(() => {
|
|
49
|
-
if (!subscription.current && handlerRef.current) {
|
|
50
|
-
const enhancedHandler = (params, event) => {
|
|
51
|
-
if (!event.defaultMuiPrevented) {
|
|
52
|
-
handlerRef.current?.(params, event);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);
|
|
56
|
-
}
|
|
57
|
-
if (cleanupTokenRef.current && registryContainer.registry) {
|
|
58
|
-
// If the effect was called, it means that this render was committed
|
|
59
|
-
// so we can trust the cleanup function to remove the listener.
|
|
60
|
-
registryContainer.registry.unregister(cleanupTokenRef.current);
|
|
61
|
-
cleanupTokenRef.current = null;
|
|
62
|
-
}
|
|
63
|
-
return () => {
|
|
64
|
-
subscription.current?.();
|
|
65
|
-
subscription.current = null;
|
|
66
|
-
};
|
|
67
|
-
}, [instance, eventName]);
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
const registryContainer = {
|
|
71
|
-
registry: null
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
75
|
-
export const unstable_resetCleanupTracking = () => {
|
|
76
|
-
registryContainer.registry?.reset();
|
|
77
|
-
registryContainer.registry = null;
|
|
78
|
-
};
|
|
79
|
-
export const useInstanceEventHandler = createUseInstanceEventHandler(registryContainer);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { TreeViewAnyPluginSignature, TreeViewPlugin } from "./plugin.js";
|
|
2
|
-
type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
3
|
-
export type OptionalIfEmpty<A extends string, B> = keyof B extends never ? Partial<Record<A, B>> : IsAny<B> extends true ? Partial<Record<A, B>> : Record<A, B>;
|
|
4
|
-
export type MergeSignaturesProperty<TSignatures extends readonly any[], TProperty extends keyof TreeViewAnyPluginSignature> = TSignatures extends readonly [plugin: infer P, ...otherPlugin: infer R] ? P extends TreeViewAnyPluginSignature ? P[TProperty] & MergeSignaturesProperty<R, TProperty> : {} : {};
|
|
5
|
-
export type ConvertPluginsIntoSignatures<TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[]> = TPlugins extends readonly [plugin: infer TPlugin, ...otherPlugin: infer R] ? R extends readonly TreeViewPlugin<any>[] ? TPlugin extends TreeViewPlugin<infer TSignature> ? readonly [TSignature, ...ConvertPluginsIntoSignatures<R>] : never : never : [];
|
|
6
|
-
export type ConvertSignaturesIntoPlugins<TSignatures extends readonly TreeViewAnyPluginSignature[]> = TSignatures extends readonly [signature: infer TSignature, ...otherSignatures: infer R] ? R extends readonly TreeViewAnyPluginSignature[] ? TSignature extends TreeViewAnyPluginSignature ? readonly [TreeViewPlugin<TSignature>, ...ConvertSignaturesIntoPlugins<R>] : never : never : [];
|
|
7
|
-
export {};
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
-
import { TreeViewInstance, TreeViewStore } from "./treeView.js";
|
|
4
|
-
import type { MergeSignaturesProperty, OptionalIfEmpty } from "./helpers.js";
|
|
5
|
-
import { TreeViewEventLookupElement } from "./events.js";
|
|
6
|
-
import type { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
|
|
7
|
-
import { TreeViewItemPlugin } from "./itemPlugin.js";
|
|
8
|
-
import { TreeViewItemId } from "../../models/index.js";
|
|
9
|
-
export interface TreeViewPluginOptions<TSignature extends TreeViewAnyPluginSignature> {
|
|
10
|
-
/**
|
|
11
|
-
* An imperative API available for internal use. Used to access methods from other plugins.
|
|
12
|
-
*/
|
|
13
|
-
instance: TreeViewUsedInstance<TSignature>;
|
|
14
|
-
/**
|
|
15
|
-
* The Tree View parameters after being processed with the default values.
|
|
16
|
-
*/
|
|
17
|
-
params: TreeViewUsedParamsWithDefaults<TSignature>;
|
|
18
|
-
/**
|
|
19
|
-
* The store that can be used to access the state of other plugins.
|
|
20
|
-
*/
|
|
21
|
-
store: TreeViewUsedStore<TSignature>;
|
|
22
|
-
/**
|
|
23
|
-
* Reference to the root element.
|
|
24
|
-
*/
|
|
25
|
-
rootRef: React.RefObject<HTMLUListElement | null>;
|
|
26
|
-
/**
|
|
27
|
-
* All the plugins that are used in the tree-view.
|
|
28
|
-
*/
|
|
29
|
-
plugins: TreeViewPlugin<TreeViewAnyPluginSignature>[];
|
|
30
|
-
}
|
|
31
|
-
type TreeViewResponse<TSignature extends TreeViewAnyPluginSignature> = {
|
|
32
|
-
getRootProps?: <TOther extends EventHandlers = {}>(otherHandlers: TOther) => React.HTMLAttributes<HTMLUListElement>;
|
|
33
|
-
} & OptionalIfEmpty<'publicAPI', TSignature['publicAPI']> & OptionalIfEmpty<'instance', TSignature['instance']>;
|
|
34
|
-
export type TreeViewPluginSignature<T extends {
|
|
35
|
-
params?: {};
|
|
36
|
-
paramsWithDefaults?: {};
|
|
37
|
-
instance?: {};
|
|
38
|
-
publicAPI?: {};
|
|
39
|
-
events?: { [key in keyof T['events']]: TreeViewEventLookupElement };
|
|
40
|
-
state?: {};
|
|
41
|
-
dependencies?: readonly TreeViewAnyPluginSignature[];
|
|
42
|
-
optionalDependencies?: readonly TreeViewAnyPluginSignature[];
|
|
43
|
-
}> = {
|
|
44
|
-
/**
|
|
45
|
-
* The raw properties that can be passed to the plugin.
|
|
46
|
-
*/
|
|
47
|
-
params: T extends {
|
|
48
|
-
params: {};
|
|
49
|
-
} ? T['params'] : {};
|
|
50
|
-
/**
|
|
51
|
-
* The params after being processed with the default values.
|
|
52
|
-
*/
|
|
53
|
-
paramsWithDefaults: T extends {
|
|
54
|
-
paramsWithDefaults: {};
|
|
55
|
-
} ? T['paramsWithDefaults'] : {};
|
|
56
|
-
/**
|
|
57
|
-
* An imperative api available for internal use.
|
|
58
|
-
*/
|
|
59
|
-
instance: T extends {
|
|
60
|
-
instance: {};
|
|
61
|
-
} ? T['instance'] : {};
|
|
62
|
-
/**
|
|
63
|
-
* The public imperative API that will be exposed to the user.
|
|
64
|
-
* Accessed through the `apiRef` property of the plugin.
|
|
65
|
-
*/
|
|
66
|
-
publicAPI: T extends {
|
|
67
|
-
publicAPI: {};
|
|
68
|
-
} ? T['publicAPI'] : {};
|
|
69
|
-
events: T extends {
|
|
70
|
-
events: {};
|
|
71
|
-
} ? T['events'] : {};
|
|
72
|
-
/**
|
|
73
|
-
* The state is the mutable data that will actually be stored in the plugin state and can be accessed by other plugins.
|
|
74
|
-
*/
|
|
75
|
-
state: T extends {
|
|
76
|
-
state: {};
|
|
77
|
-
} ? T['state'] : {};
|
|
78
|
-
/**
|
|
79
|
-
* Any plugins that this plugin depends on.
|
|
80
|
-
*/
|
|
81
|
-
dependencies: T extends {
|
|
82
|
-
dependencies: Array<any>;
|
|
83
|
-
} ? T['dependencies'] : [];
|
|
84
|
-
/**
|
|
85
|
-
* Same as dependencies but the plugin might not have been initialized. Used for dependencies on plugins of features that can be enabled conditionally.
|
|
86
|
-
*/
|
|
87
|
-
optionalDependencies: T extends {
|
|
88
|
-
optionalDependencies: Array<any>;
|
|
89
|
-
} ? T['optionalDependencies'] : [];
|
|
90
|
-
};
|
|
91
|
-
export type TreeViewAnyPluginSignature = {
|
|
92
|
-
state: any;
|
|
93
|
-
instance: any;
|
|
94
|
-
params: any;
|
|
95
|
-
paramsWithDefaults: any;
|
|
96
|
-
dependencies: any;
|
|
97
|
-
optionalDependencies: any;
|
|
98
|
-
events: any;
|
|
99
|
-
publicAPI: any;
|
|
100
|
-
};
|
|
101
|
-
type TreeViewRequiredPlugins<TSignature extends TreeViewAnyPluginSignature> = [...TreeViewCorePluginSignatures, ...TSignature['dependencies']];
|
|
102
|
-
type PluginPropertyWithDependencies<TSignature extends TreeViewAnyPluginSignature, TProperty extends keyof TreeViewAnyPluginSignature> = TSignature[TProperty] & MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, TProperty> & Partial<MergeSignaturesProperty<TSignature['optionalDependencies'], TProperty>>;
|
|
103
|
-
export type TreeViewUsedParams<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'params'>;
|
|
104
|
-
export type TreeViewUsedParamsWithDefaults<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'paramsWithDefaults'>;
|
|
105
|
-
export type TreeViewUsedInstance<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'instance'> & {
|
|
106
|
-
/**
|
|
107
|
-
* Private property only defined in TypeScript to be able to access the plugin signature from the instance object.
|
|
108
|
-
*/
|
|
109
|
-
$$signature: TSignature;
|
|
110
|
-
};
|
|
111
|
-
export type TreeViewUsedStore<TSignature extends TreeViewAnyPluginSignature> = TreeViewStore<[TSignature, ...TSignature['dependencies']], TSignature['optionalDependencies']>;
|
|
112
|
-
export type TreeViewUsedEvents<TSignature extends TreeViewAnyPluginSignature> = TSignature['events'] & MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, 'events'>;
|
|
113
|
-
export type TreeItemWrapper<TSignatures extends readonly TreeViewAnyPluginSignature[]> = (params: {
|
|
114
|
-
itemId: TreeViewItemId;
|
|
115
|
-
children: React.ReactNode;
|
|
116
|
-
instance: TreeViewInstance<TSignatures>;
|
|
117
|
-
idAttribute: string;
|
|
118
|
-
}) => React.ReactNode;
|
|
119
|
-
export type TreeRootWrapper = (params: {
|
|
120
|
-
children: React.ReactNode;
|
|
121
|
-
}) => React.ReactNode;
|
|
122
|
-
export type TreeViewPlugin<TSignature extends TreeViewAnyPluginSignature> = {
|
|
123
|
-
/**
|
|
124
|
-
* The main function of the plugin that will be executed by the Tree View.
|
|
125
|
-
*
|
|
126
|
-
* This should be a valid React `use` function, as it will be executed in the render phase and can contain hooks.
|
|
127
|
-
*/
|
|
128
|
-
(options: TreeViewPluginOptions<TSignature>): TreeViewResponse<TSignature>;
|
|
129
|
-
/**
|
|
130
|
-
* A function that receives the parameters and returns them after being processed with the default values.
|
|
131
|
-
*
|
|
132
|
-
* @param {TreeViewUsedParams<TSignature>} options The options object.
|
|
133
|
-
* @param {TreeViewUsedParams<TSignature>['params']} options.params The parameters before being processed with the default values.
|
|
134
|
-
* @returns {TSignature['paramsWithDefaults']} The parameters after being processed with the default values.
|
|
135
|
-
*/
|
|
136
|
-
applyDefaultValuesToParams?: (options: {
|
|
137
|
-
params: TreeViewUsedParams<TSignature>;
|
|
138
|
-
}) => TSignature['paramsWithDefaults'];
|
|
139
|
-
/**
|
|
140
|
-
* The initial state is computed after the default values are applied.
|
|
141
|
-
* It sets up the state for the first render.
|
|
142
|
-
* Other state modifications have to be done in effects and so could not be applied on the initial render.
|
|
143
|
-
*
|
|
144
|
-
* @param {TreeViewUsedParamsWithDefaults<TSignature>} params The parameters after being processed with the default values.
|
|
145
|
-
* @returns {TSignature['state']} The initial state of the plugin.
|
|
146
|
-
*/
|
|
147
|
-
getInitialState?: (params: TreeViewUsedParamsWithDefaults<TSignature>) => TSignature['state'];
|
|
148
|
-
/**
|
|
149
|
-
* An object where each property used by the plugin is set to `true`.
|
|
150
|
-
*/
|
|
151
|
-
params: Record<keyof TSignature['params'], true>;
|
|
152
|
-
itemPlugin?: TreeViewItemPlugin;
|
|
153
|
-
/**
|
|
154
|
-
* Render function used to add React wrappers around the TreeItem.
|
|
155
|
-
* @param {{ nodeId: TreeViewItemId; children: React.ReactNode; }} params The params of the item.
|
|
156
|
-
* @returns {React.ReactNode} The wrapped item.
|
|
157
|
-
*/
|
|
158
|
-
wrapItem?: TreeItemWrapper<[TSignature, ...TSignature['dependencies']]>;
|
|
159
|
-
/**
|
|
160
|
-
* Render function used to add React wrappers around the TreeView.
|
|
161
|
-
* @param {{ children: React.ReactNode; }} params The params of the root.
|
|
162
|
-
* @returns {React.ReactNode} The wrapped root.
|
|
163
|
-
*/
|
|
164
|
-
wrapRoot?: TreeRootWrapper;
|
|
165
|
-
};
|
|
166
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { useTreeViewExpansion } from "./useTreeViewExpansion.js";
|
|
2
|
-
export type { UseTreeViewExpansionSignature, UseTreeViewExpansionParameters, UseTreeViewExpansionParametersWithDefaults } from "./useTreeViewExpansion.types.js";
|
|
3
|
-
export { expansionSelectors } from "./useTreeViewExpansion.selectors.js";
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { useAssertModelConsistency } from '@mui/x-internals/useAssertModelConsistency';
|
|
3
|
-
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
4
|
-
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
|
|
5
|
-
import { expansionSelectors } from "./useTreeViewExpansion.selectors.js";
|
|
6
|
-
import { getExpansionTrigger } from "./useTreeViewExpansion.utils.js";
|
|
7
|
-
import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
|
|
8
|
-
import { publishTreeViewEvent } from "../../utils/publishTreeViewEvent.js";
|
|
9
|
-
export const useTreeViewExpansion = ({
|
|
10
|
-
instance,
|
|
11
|
-
store,
|
|
12
|
-
params
|
|
13
|
-
}) => {
|
|
14
|
-
useAssertModelConsistency({
|
|
15
|
-
componentName: 'Tree View',
|
|
16
|
-
propName: 'expandedItems',
|
|
17
|
-
controlled: params.expandedItems,
|
|
18
|
-
defaultValue: params.defaultExpandedItems
|
|
19
|
-
});
|
|
20
|
-
useIsoLayoutEffect(() => {
|
|
21
|
-
const newExpansionTrigger = getExpansionTrigger({
|
|
22
|
-
isItemEditable: params.isItemEditable,
|
|
23
|
-
expansionTrigger: params.expansionTrigger
|
|
24
|
-
});
|
|
25
|
-
if (store.state.expansion.expansionTrigger === newExpansionTrigger) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
store.set('expansion', _extends({}, store.state.expansion, {
|
|
29
|
-
expansionTrigger: newExpansionTrigger
|
|
30
|
-
}));
|
|
31
|
-
}, [store, params.isItemEditable, params.expansionTrigger]);
|
|
32
|
-
const setExpandedItems = (event, value) => {
|
|
33
|
-
if (params.expandedItems === undefined) {
|
|
34
|
-
store.set('expansion', _extends({}, store.state.expansion, {
|
|
35
|
-
expandedItems: value
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
params.onExpandedItemsChange?.(event, value);
|
|
39
|
-
};
|
|
40
|
-
const resetItemExpansion = useStableCallback(() => {
|
|
41
|
-
setExpandedItems(null, []);
|
|
42
|
-
});
|
|
43
|
-
const applyItemExpansion = useStableCallback(({
|
|
44
|
-
itemId,
|
|
45
|
-
event,
|
|
46
|
-
shouldBeExpanded
|
|
47
|
-
}) => {
|
|
48
|
-
const oldExpanded = expansionSelectors.expandedItemsRaw(store.state);
|
|
49
|
-
let newExpanded;
|
|
50
|
-
if (shouldBeExpanded) {
|
|
51
|
-
newExpanded = [itemId].concat(oldExpanded);
|
|
52
|
-
} else {
|
|
53
|
-
newExpanded = oldExpanded.filter(id => id !== itemId);
|
|
54
|
-
}
|
|
55
|
-
if (params.onItemExpansionToggle) {
|
|
56
|
-
params.onItemExpansionToggle(event, itemId, shouldBeExpanded);
|
|
57
|
-
}
|
|
58
|
-
setExpandedItems(event, newExpanded);
|
|
59
|
-
});
|
|
60
|
-
const setItemExpansion = useStableCallback(({
|
|
61
|
-
itemId,
|
|
62
|
-
event = null,
|
|
63
|
-
shouldBeExpanded
|
|
64
|
-
}) => {
|
|
65
|
-
const isExpandedBefore = expansionSelectors.isItemExpanded(store.state, itemId);
|
|
66
|
-
const cleanShouldBeExpanded = shouldBeExpanded ?? !isExpandedBefore;
|
|
67
|
-
if (isExpandedBefore === cleanShouldBeExpanded) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const eventParameters = {
|
|
71
|
-
isExpansionPrevented: false,
|
|
72
|
-
shouldBeExpanded: cleanShouldBeExpanded,
|
|
73
|
-
event,
|
|
74
|
-
itemId
|
|
75
|
-
};
|
|
76
|
-
publishTreeViewEvent(instance, 'beforeItemToggleExpansion', eventParameters);
|
|
77
|
-
if (eventParameters.isExpansionPrevented) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
instance.applyItemExpansion({
|
|
81
|
-
itemId,
|
|
82
|
-
event,
|
|
83
|
-
shouldBeExpanded: cleanShouldBeExpanded
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
const isItemExpanded = useStableCallback(itemId => {
|
|
87
|
-
return expansionSelectors.isItemExpanded(store.state, itemId);
|
|
88
|
-
});
|
|
89
|
-
const expandAllSiblings = (event, itemId) => {
|
|
90
|
-
const itemMeta = itemsSelectors.itemMeta(store.state, itemId);
|
|
91
|
-
if (itemMeta == null) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const siblings = itemsSelectors.itemOrderedChildrenIds(store.state, itemMeta.parentId);
|
|
95
|
-
const diff = siblings.filter(child => expansionSelectors.isItemExpandable(store.state, child) && !expansionSelectors.isItemExpanded(store.state, child));
|
|
96
|
-
const newExpanded = expansionSelectors.expandedItemsRaw(store.state).concat(diff);
|
|
97
|
-
if (diff.length > 0) {
|
|
98
|
-
if (params.onItemExpansionToggle) {
|
|
99
|
-
diff.forEach(newlyExpandedItemId => {
|
|
100
|
-
params.onItemExpansionToggle(event, newlyExpandedItemId, true);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
setExpandedItems(event, newExpanded);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Update the controlled model when the `expandedItems` prop changes.
|
|
109
|
-
*/
|
|
110
|
-
useIsoLayoutEffect(() => {
|
|
111
|
-
const expandedItems = params.expandedItems;
|
|
112
|
-
if (expandedItems !== undefined) {
|
|
113
|
-
store.set('expansion', _extends({}, store.state.expansion, {
|
|
114
|
-
expandedItems
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
117
|
-
}, [store, params.expandedItems]);
|
|
118
|
-
return {
|
|
119
|
-
publicAPI: {
|
|
120
|
-
setItemExpansion,
|
|
121
|
-
isItemExpanded
|
|
122
|
-
},
|
|
123
|
-
instance: {
|
|
124
|
-
setItemExpansion,
|
|
125
|
-
applyItemExpansion,
|
|
126
|
-
expandAllSiblings,
|
|
127
|
-
resetItemExpansion
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
};
|
|
131
|
-
const DEFAULT_EXPANDED_ITEMS = [];
|
|
132
|
-
useTreeViewExpansion.applyDefaultValuesToParams = ({
|
|
133
|
-
params
|
|
134
|
-
}) => _extends({}, params, {
|
|
135
|
-
defaultExpandedItems: params.defaultExpandedItems ?? DEFAULT_EXPANDED_ITEMS
|
|
136
|
-
});
|
|
137
|
-
useTreeViewExpansion.getInitialState = params => ({
|
|
138
|
-
expansion: {
|
|
139
|
-
expandedItems: params.expandedItems === undefined ? params.defaultExpandedItems : params.expandedItems,
|
|
140
|
-
expansionTrigger: getExpansionTrigger(params)
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
useTreeViewExpansion.params = {
|
|
144
|
-
expandedItems: true,
|
|
145
|
-
defaultExpandedItems: true,
|
|
146
|
-
onExpandedItemsChange: true,
|
|
147
|
-
onItemExpansionToggle: true,
|
|
148
|
-
expansionTrigger: true
|
|
149
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { TreeViewState } from "../../models/index.js";
|
|
2
|
-
import { UseTreeViewExpansionSignature } from "./useTreeViewExpansion.types.js";
|
|
3
|
-
export declare const expansionSelectors: {
|
|
4
|
-
/**
|
|
5
|
-
* Gets the expanded items as provided to the component.
|
|
6
|
-
*/
|
|
7
|
-
expandedItemsRaw: (state: TreeViewState<[UseTreeViewExpansionSignature]>) => readonly string[];
|
|
8
|
-
/**
|
|
9
|
-
* Gets the expanded items as a Map.
|
|
10
|
-
*/
|
|
11
|
-
expandedItemsMap: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewExpansion.types.js").UseTreeViewExpansionState & Partial<{}>) => Map<string, true>;
|
|
12
|
-
/**
|
|
13
|
-
* Gets the items to render as a flat list (the descendants of an expanded item are listed as siblings of the item).
|
|
14
|
-
*/
|
|
15
|
-
flatList: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewExpansion.types.js").UseTreeViewExpansionState & Partial<{}>) => string[];
|
|
16
|
-
/**
|
|
17
|
-
* Gets the slot that triggers the item's expansion when clicked.
|
|
18
|
-
*/
|
|
19
|
-
triggerSlot: (state: TreeViewState<[UseTreeViewExpansionSignature]>) => "content" | "iconContainer";
|
|
20
|
-
/**
|
|
21
|
-
* Checks whether an item is expanded.
|
|
22
|
-
*/
|
|
23
|
-
isItemExpanded: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewExpansion.types.js").UseTreeViewExpansionState & Partial<{}>, itemId: string) => boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Checks whether an item is expandable.
|
|
26
|
-
*/
|
|
27
|
-
isItemExpandable: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("../useTreeViewItems/index.js").UseTreeViewItemsState<import("../../../index.js").TreeViewDefaultItemModelProperties> & Partial<{}>, _itemId: string) => boolean;
|
|
28
|
-
};
|