@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,100 +0,0 @@
|
|
|
1
|
-
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
2
|
-
import { TreeViewPluginSignature } from "../../models/index.js";
|
|
3
|
-
import { DataSourceCache } from "../../../utils/index.js";
|
|
4
|
-
import { TreeViewItemId } from "../../../models/index.js";
|
|
5
|
-
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
6
|
-
import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
|
|
7
|
-
import { UseTreeViewSelectionSignature } from "../useTreeViewSelection/index.js";
|
|
8
|
-
export type DataSource<R extends {}> = {
|
|
9
|
-
/**
|
|
10
|
-
* Used to determine the number of children the item has.
|
|
11
|
-
* Only relevant for lazy-loaded trees.
|
|
12
|
-
*
|
|
13
|
-
* @template R
|
|
14
|
-
* @param {R} item The item to check.
|
|
15
|
-
* @returns {number} The number of children.
|
|
16
|
-
*/
|
|
17
|
-
getChildrenCount: (item: R) => number;
|
|
18
|
-
/**
|
|
19
|
-
* Method used for fetching the items.
|
|
20
|
-
* Only relevant for lazy-loaded tree views.
|
|
21
|
-
*
|
|
22
|
-
* @template R
|
|
23
|
-
* @param {TreeViewItemId} parentId The id of the item the children belong to.
|
|
24
|
-
* @returns { Promise<R[]>} The children of the item.
|
|
25
|
-
*/
|
|
26
|
-
getTreeItems: (parentId?: TreeViewItemId) => Promise<R[]>;
|
|
27
|
-
};
|
|
28
|
-
export interface UseTreeViewLazyLoadingPublicAPI {
|
|
29
|
-
/**
|
|
30
|
-
* Method used for updating an item's children.
|
|
31
|
-
* Only relevant for lazy-loaded tree views.
|
|
32
|
-
*
|
|
33
|
-
* @param {TreeViewItemId | null} itemId The id of the item to update the children of. If null is passed, it will update the root's children.
|
|
34
|
-
* @returns {Promise<void>} The promise resolved when the items are fetched.
|
|
35
|
-
*/
|
|
36
|
-
updateItemChildren: (itemId: TreeViewItemId | null) => Promise<void>;
|
|
37
|
-
}
|
|
38
|
-
export interface UseTreeViewLazyLoadingInstance extends UseTreeViewLazyLoadingPublicAPI {
|
|
39
|
-
/**
|
|
40
|
-
* Method used for fetching multiple items concurrently.
|
|
41
|
-
* Only relevant for lazy-loaded tree views.
|
|
42
|
-
*
|
|
43
|
-
* @param {TreeViewItemId[]} parentIds The ids of the items to fetch the children of.
|
|
44
|
-
* @returns {Promise<void>} The promise resolved when the items are fetched.
|
|
45
|
-
*/
|
|
46
|
-
fetchItems: (parentIds: TreeViewItemId[]) => Promise<void>;
|
|
47
|
-
/**
|
|
48
|
-
* Method used for fetching an item's children.
|
|
49
|
-
* Only relevant for lazy-loaded tree views.
|
|
50
|
-
*
|
|
51
|
-
* @param {object} parameters The parameters of the method.
|
|
52
|
-
* @param {TreeViewItemId} parameters.itemId The The id of the item to fetch the children of.
|
|
53
|
-
* @param {boolean} [parameters.forceRefresh] Whether to force a refresh of the children when the cache already contains some data.
|
|
54
|
-
* @returns {Promise<void>} The promise resolved when the items are fetched.
|
|
55
|
-
*/
|
|
56
|
-
fetchItemChildren: (parameters: {
|
|
57
|
-
itemId: TreeViewItemId | null;
|
|
58
|
-
forceRefresh?: boolean;
|
|
59
|
-
}) => Promise<void>;
|
|
60
|
-
/**
|
|
61
|
-
* Set the loading state of an item.
|
|
62
|
-
* @param {TreeViewItemId} itemId The id of the item to set the loading state of. If `null` is passed, it will set the loading state of the root.
|
|
63
|
-
* @param {boolean} isLoading True if the item is loading.
|
|
64
|
-
*/
|
|
65
|
-
setDataSourceLoading: (itemId: TreeViewItemId | null, isLoading: boolean) => void;
|
|
66
|
-
/**
|
|
67
|
-
* Set the error state of an item.
|
|
68
|
-
* @param {TreeViewItemId} itemId The id of the item to set the error state of. If `null` is passed, it will set the error state of the root.
|
|
69
|
-
* @param {Error | null} error The error caught on the item.
|
|
70
|
-
*/
|
|
71
|
-
setDataSourceError: (itemId: TreeViewItemId | null, error: Error | null) => void;
|
|
72
|
-
}
|
|
73
|
-
export interface UseTreeViewLazyLoadingParameters<R extends {}> {
|
|
74
|
-
/**
|
|
75
|
-
* The data source object.
|
|
76
|
-
*/
|
|
77
|
-
dataSource?: DataSource<R>;
|
|
78
|
-
/**
|
|
79
|
-
* The data source cache object.
|
|
80
|
-
*/
|
|
81
|
-
dataSourceCache?: DataSourceCache;
|
|
82
|
-
}
|
|
83
|
-
export type UseTreeViewLazyLoadingParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLazyLoadingParameters<R>, 'dataSource'>;
|
|
84
|
-
export interface UseTreeViewLazyLoadingState {
|
|
85
|
-
lazyLoading: {
|
|
86
|
-
enabled: boolean;
|
|
87
|
-
dataSource: {
|
|
88
|
-
loading: Record<TreeViewItemId, boolean>;
|
|
89
|
-
errors: Record<TreeViewItemId, Error | null>;
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
export type UseTreeViewLazyLoadingSignature = TreeViewPluginSignature<{
|
|
94
|
-
params: UseTreeViewLazyLoadingParameters<any>;
|
|
95
|
-
paramsWithDefaults: UseTreeViewLazyLoadingParametersWithDefaults<any>;
|
|
96
|
-
publicAPI: UseTreeViewLazyLoadingPublicAPI;
|
|
97
|
-
instance: UseTreeViewLazyLoadingInstance;
|
|
98
|
-
state: UseTreeViewLazyLoadingState;
|
|
99
|
-
dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewSelectionSignature];
|
|
100
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { useTreeViewSelection } from "./useTreeViewSelection.js";
|
|
2
|
-
export type { UseTreeViewSelectionSignature, UseTreeViewSelectionParameters, UseTreeViewSelectionParametersWithDefaults } from "./useTreeViewSelection.types.js";
|
|
3
|
-
export { selectionSelectors } from "./useTreeViewSelection.selectors.js";
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { useAssertModelConsistency } from '@mui/x-internals/useAssertModelConsistency';
|
|
4
|
-
import { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';
|
|
5
|
-
import { findOrderInTremauxTree, getAllNavigableItems, getFirstNavigableItem, getLastNavigableItem, getNonDisabledItemsInRange } from "../../utils/tree.js";
|
|
6
|
-
import { propagateSelection, getAddedAndRemovedItems, getLookupFromArray } from "./useTreeViewSelection.utils.js";
|
|
7
|
-
import { selectionSelectors } from "./useTreeViewSelection.selectors.js";
|
|
8
|
-
import { useTreeViewSelectionItemPlugin } from "./itemPlugin.js";
|
|
9
|
-
export const useTreeViewSelection = ({
|
|
10
|
-
store,
|
|
11
|
-
params
|
|
12
|
-
}) => {
|
|
13
|
-
useAssertModelConsistency({
|
|
14
|
-
componentName: 'Tree View',
|
|
15
|
-
propName: 'selectedItems',
|
|
16
|
-
controlled: params.selectedItems,
|
|
17
|
-
defaultValue: params.defaultSelectedItems
|
|
18
|
-
});
|
|
19
|
-
const lastSelectedItem = React.useRef(null);
|
|
20
|
-
const lastSelectedRange = React.useRef({});
|
|
21
|
-
const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
|
|
22
|
-
const oldModel = selectionSelectors.selectedItemsRaw(store.state);
|
|
23
|
-
let cleanModel;
|
|
24
|
-
const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
|
|
25
|
-
if (isMultiSelectEnabled && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
|
|
26
|
-
cleanModel = propagateSelection({
|
|
27
|
-
store,
|
|
28
|
-
selectionPropagation: params.selectionPropagation,
|
|
29
|
-
newModel: newModel,
|
|
30
|
-
oldModel: oldModel,
|
|
31
|
-
additionalItemsToPropagate
|
|
32
|
-
});
|
|
33
|
-
} else {
|
|
34
|
-
cleanModel = newModel;
|
|
35
|
-
}
|
|
36
|
-
if (params.onItemSelectionToggle) {
|
|
37
|
-
if (isMultiSelectEnabled) {
|
|
38
|
-
const changes = getAddedAndRemovedItems({
|
|
39
|
-
store,
|
|
40
|
-
newModel: cleanModel,
|
|
41
|
-
oldModel: oldModel
|
|
42
|
-
});
|
|
43
|
-
if (params.onItemSelectionToggle) {
|
|
44
|
-
changes.added.forEach(itemId => {
|
|
45
|
-
params.onItemSelectionToggle(event, itemId, true);
|
|
46
|
-
});
|
|
47
|
-
changes.removed.forEach(itemId => {
|
|
48
|
-
params.onItemSelectionToggle(event, itemId, false);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
} else if (params.onItemSelectionToggle && cleanModel !== oldModel) {
|
|
52
|
-
if (oldModel != null) {
|
|
53
|
-
params.onItemSelectionToggle(event, oldModel, false);
|
|
54
|
-
}
|
|
55
|
-
if (cleanModel != null) {
|
|
56
|
-
params.onItemSelectionToggle(event, cleanModel, true);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (params.selectedItems === undefined) {
|
|
61
|
-
store.set('selection', _extends({}, store.state.selection, {
|
|
62
|
-
selectedItems: cleanModel
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
params.onSelectedItemsChange?.(event, cleanModel);
|
|
66
|
-
};
|
|
67
|
-
const setItemSelection = ({
|
|
68
|
-
itemId,
|
|
69
|
-
event = null,
|
|
70
|
-
keepExistingSelection = false,
|
|
71
|
-
shouldBeSelected
|
|
72
|
-
}) => {
|
|
73
|
-
if (!selectionSelectors.enabled(store.state)) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
let newSelected;
|
|
77
|
-
const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
|
|
78
|
-
if (keepExistingSelection) {
|
|
79
|
-
const oldSelected = selectionSelectors.selectedItems(store.state);
|
|
80
|
-
const isSelectedBefore = selectionSelectors.isItemSelected(store.state, itemId);
|
|
81
|
-
if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {
|
|
82
|
-
newSelected = oldSelected.filter(id => id !== itemId);
|
|
83
|
-
} else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {
|
|
84
|
-
newSelected = [itemId].concat(oldSelected);
|
|
85
|
-
} else {
|
|
86
|
-
newSelected = oldSelected;
|
|
87
|
-
}
|
|
88
|
-
} else {
|
|
89
|
-
// eslint-disable-next-line no-lonely-if
|
|
90
|
-
if (shouldBeSelected === false || shouldBeSelected == null && selectionSelectors.isItemSelected(store.state, itemId)) {
|
|
91
|
-
newSelected = isMultiSelectEnabled ? [] : null;
|
|
92
|
-
} else {
|
|
93
|
-
newSelected = isMultiSelectEnabled ? [itemId] : itemId;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
setSelectedItems(event, newSelected,
|
|
97
|
-
// If shouldBeSelected === selectionSelectors.isItemSelected(store, itemId), we still want to propagate the select.
|
|
98
|
-
// This is useful when the element is in an indeterminate state.
|
|
99
|
-
[itemId]);
|
|
100
|
-
lastSelectedItem.current = itemId;
|
|
101
|
-
lastSelectedRange.current = {};
|
|
102
|
-
};
|
|
103
|
-
const selectRange = (event, [start, end]) => {
|
|
104
|
-
const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
|
|
105
|
-
if (!isMultiSelectEnabled) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
let newSelectedItems = selectionSelectors.selectedItems(store.state).slice();
|
|
109
|
-
|
|
110
|
-
// If the last selection was a range selection,
|
|
111
|
-
// remove the items that were part of the last range from the model
|
|
112
|
-
if (Object.keys(lastSelectedRange.current).length > 0) {
|
|
113
|
-
newSelectedItems = newSelectedItems.filter(id => !lastSelectedRange.current[id]);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Add to the model the items that are part of the new range and not already part of the model.
|
|
117
|
-
const selectedItemsLookup = getLookupFromArray(newSelectedItems);
|
|
118
|
-
const range = getNonDisabledItemsInRange(store.state, start, end);
|
|
119
|
-
const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);
|
|
120
|
-
newSelectedItems = newSelectedItems.concat(itemsToAddToModel);
|
|
121
|
-
setSelectedItems(event, newSelectedItems);
|
|
122
|
-
lastSelectedRange.current = getLookupFromArray(range);
|
|
123
|
-
};
|
|
124
|
-
const expandSelectionRange = (event, itemId) => {
|
|
125
|
-
if (lastSelectedItem.current != null) {
|
|
126
|
-
const [start, end] = findOrderInTremauxTree(store.state, itemId, lastSelectedItem.current);
|
|
127
|
-
selectRange(event, [start, end]);
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
const selectRangeFromStartToItem = (event, itemId) => {
|
|
131
|
-
selectRange(event, [getFirstNavigableItem(store.state), itemId]);
|
|
132
|
-
};
|
|
133
|
-
const selectRangeFromItemToEnd = (event, itemId) => {
|
|
134
|
-
selectRange(event, [itemId, getLastNavigableItem(store.state)]);
|
|
135
|
-
};
|
|
136
|
-
const selectAllNavigableItems = event => {
|
|
137
|
-
const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
|
|
138
|
-
if (!isMultiSelectEnabled) {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const navigableItems = getAllNavigableItems(store.state);
|
|
142
|
-
setSelectedItems(event, navigableItems);
|
|
143
|
-
lastSelectedRange.current = getLookupFromArray(navigableItems);
|
|
144
|
-
};
|
|
145
|
-
const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
|
|
146
|
-
const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
|
|
147
|
-
if (!isMultiSelectEnabled) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
let newSelectedItems = selectionSelectors.selectedItems(store.state).slice();
|
|
151
|
-
if (Object.keys(lastSelectedRange.current).length === 0) {
|
|
152
|
-
newSelectedItems.push(nextItem);
|
|
153
|
-
lastSelectedRange.current = {
|
|
154
|
-
[currentItem]: true,
|
|
155
|
-
[nextItem]: true
|
|
156
|
-
};
|
|
157
|
-
} else {
|
|
158
|
-
if (!lastSelectedRange.current[currentItem]) {
|
|
159
|
-
lastSelectedRange.current = {};
|
|
160
|
-
}
|
|
161
|
-
if (lastSelectedRange.current[nextItem]) {
|
|
162
|
-
newSelectedItems = newSelectedItems.filter(id => id !== currentItem);
|
|
163
|
-
delete lastSelectedRange.current[currentItem];
|
|
164
|
-
} else {
|
|
165
|
-
newSelectedItems.push(nextItem);
|
|
166
|
-
lastSelectedRange.current[nextItem] = true;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
setSelectedItems(event, newSelectedItems);
|
|
170
|
-
};
|
|
171
|
-
useIsoLayoutEffect(() => {
|
|
172
|
-
store.set('selection', {
|
|
173
|
-
selectedItems: params.selectedItems === undefined ? store.state.selection.selectedItems : params.selectedItems,
|
|
174
|
-
isEnabled: !params.disableSelection,
|
|
175
|
-
isMultiSelectEnabled: params.multiSelect,
|
|
176
|
-
isCheckboxSelectionEnabled: params.checkboxSelection,
|
|
177
|
-
selectionPropagation: {
|
|
178
|
-
descendants: params.selectionPropagation.descendants,
|
|
179
|
-
parents: params.selectionPropagation.parents
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}, [store, params.selectedItems, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
|
|
183
|
-
return {
|
|
184
|
-
getRootProps: () => ({
|
|
185
|
-
'aria-multiselectable': params.multiSelect
|
|
186
|
-
}),
|
|
187
|
-
publicAPI: {
|
|
188
|
-
setItemSelection
|
|
189
|
-
},
|
|
190
|
-
instance: {
|
|
191
|
-
setItemSelection,
|
|
192
|
-
selectAllNavigableItems,
|
|
193
|
-
expandSelectionRange,
|
|
194
|
-
selectRangeFromStartToItem,
|
|
195
|
-
selectRangeFromItemToEnd,
|
|
196
|
-
selectItemFromArrowNavigation
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
useTreeViewSelection.itemPlugin = useTreeViewSelectionItemPlugin;
|
|
201
|
-
const DEFAULT_SELECTED_ITEMS = [];
|
|
202
|
-
const EMPTY_SELECTION_PROPAGATION = {};
|
|
203
|
-
useTreeViewSelection.applyDefaultValuesToParams = ({
|
|
204
|
-
params
|
|
205
|
-
}) => _extends({}, params, {
|
|
206
|
-
disableSelection: params.disableSelection ?? false,
|
|
207
|
-
multiSelect: params.multiSelect ?? false,
|
|
208
|
-
checkboxSelection: params.checkboxSelection ?? false,
|
|
209
|
-
defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null),
|
|
210
|
-
selectionPropagation: params.selectionPropagation ?? EMPTY_SELECTION_PROPAGATION
|
|
211
|
-
});
|
|
212
|
-
useTreeViewSelection.getInitialState = params => ({
|
|
213
|
-
selection: {
|
|
214
|
-
selectedItems: params.selectedItems === undefined ? params.defaultSelectedItems : params.selectedItems,
|
|
215
|
-
isEnabled: !params.disableSelection,
|
|
216
|
-
isMultiSelectEnabled: params.multiSelect,
|
|
217
|
-
isCheckboxSelectionEnabled: params.checkboxSelection,
|
|
218
|
-
selectionPropagation: params.selectionPropagation
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
useTreeViewSelection.params = {
|
|
222
|
-
disableSelection: true,
|
|
223
|
-
multiSelect: true,
|
|
224
|
-
checkboxSelection: true,
|
|
225
|
-
defaultSelectedItems: true,
|
|
226
|
-
selectedItems: true,
|
|
227
|
-
onSelectedItemsChange: true,
|
|
228
|
-
onItemSelectionToggle: true,
|
|
229
|
-
selectionPropagation: true
|
|
230
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { TreeViewState } from "../../models/index.js";
|
|
2
|
-
import { UseTreeViewSelectionSignature } from "./useTreeViewSelection.types.js";
|
|
3
|
-
export declare const selectionSelectors: {
|
|
4
|
-
/**
|
|
5
|
-
* Gets the selected items as provided to the component.
|
|
6
|
-
*/
|
|
7
|
-
selectedItemsRaw: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => string | string[] | null;
|
|
8
|
-
/**
|
|
9
|
-
* Gets the selected items as an array.
|
|
10
|
-
*/
|
|
11
|
-
selectedItems: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>) => string[];
|
|
12
|
-
/**
|
|
13
|
-
* Gets the selected items as a Map.
|
|
14
|
-
*/
|
|
15
|
-
selectedItemsMap: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>) => Map<string, true>;
|
|
16
|
-
/**
|
|
17
|
-
* Checks whether selection is enabled.
|
|
18
|
-
*/
|
|
19
|
-
enabled: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Checks whether multi selection is enabled.
|
|
22
|
-
*/
|
|
23
|
-
isMultiSelectEnabled: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Checks whether checkbox selection is enabled.
|
|
26
|
-
*/
|
|
27
|
-
isCheckboxSelectionEnabled: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Gets the selection propagation rules.
|
|
30
|
-
*/
|
|
31
|
-
propagationRules: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => import("../../../index.js").TreeViewSelectionPropagation;
|
|
32
|
-
/**
|
|
33
|
-
* Checks whether an item is selected.
|
|
34
|
-
*/
|
|
35
|
-
isItemSelected: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>, itemId: string) => boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Checks whether an item can be selected (if selection is enabled and if the item is not disabled).
|
|
38
|
-
*/
|
|
39
|
-
canItemBeSelected: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>, _itemId: string) => boolean;
|
|
40
|
-
};
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import type { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
|
-
import type { TreeViewPluginSignature } from "../../models/index.js";
|
|
4
|
-
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
5
|
-
import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
|
|
6
|
-
import { TreeViewSelectionPropagation, TreeViewItemId } from "../../../models/index.js";
|
|
7
|
-
export interface UseTreeViewSelectionPublicAPI {
|
|
8
|
-
/**
|
|
9
|
-
* Select or deselect an item.
|
|
10
|
-
* @param {object} parameters The parameters of the method.
|
|
11
|
-
* @param {TreeViewItemId} parameters.itemId The id of the item to select or deselect.
|
|
12
|
-
* @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
|
|
13
|
-
* @param {boolean} parameters.keepExistingSelection If `true`, the other already selected items will remain selected, otherwise, they will be deselected. This parameter is only relevant when `multiSelect` is `true`
|
|
14
|
-
* @param {boolean | undefined} parameters.shouldBeSelected If `true` the item will be selected. If `false` the item will be deselected. If not defined, the item's selection status will be toggled.
|
|
15
|
-
*/
|
|
16
|
-
setItemSelection: (parameters: {
|
|
17
|
-
itemId: TreeViewItemId;
|
|
18
|
-
event?: React.SyntheticEvent;
|
|
19
|
-
shouldBeSelected?: boolean;
|
|
20
|
-
keepExistingSelection?: boolean;
|
|
21
|
-
}) => void;
|
|
22
|
-
}
|
|
23
|
-
export interface UseTreeViewSelectionInstance extends UseTreeViewSelectionPublicAPI {
|
|
24
|
-
/**
|
|
25
|
-
* Select all the navigable items in the tree.
|
|
26
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
27
|
-
*/
|
|
28
|
-
selectAllNavigableItems: (event: React.SyntheticEvent) => void;
|
|
29
|
-
/**
|
|
30
|
-
* Expand the current selection range up to the given item.
|
|
31
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
32
|
-
* @param {TreeViewItemId} itemId The id of the item to expand the selection to.
|
|
33
|
-
*/
|
|
34
|
-
expandSelectionRange: (event: React.SyntheticEvent, itemId: TreeViewItemId) => void;
|
|
35
|
-
/**
|
|
36
|
-
* Expand the current selection range from the first navigable item to the given item.
|
|
37
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
38
|
-
* @param {TreeViewItemId} itemId The id of the item up to which the selection range should be expanded.
|
|
39
|
-
*/
|
|
40
|
-
selectRangeFromStartToItem: (event: React.SyntheticEvent, itemId: TreeViewItemId) => void;
|
|
41
|
-
/**
|
|
42
|
-
* Expand the current selection range from the given item to the last navigable item.
|
|
43
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
44
|
-
* @param {TreeViewItemId} itemId The id of the item from which the selection range should be expanded.
|
|
45
|
-
*/
|
|
46
|
-
selectRangeFromItemToEnd: (event: React.SyntheticEvent, itemId: TreeViewItemId) => void;
|
|
47
|
-
/**
|
|
48
|
-
* Update the selection when navigating with ArrowUp / ArrowDown keys.
|
|
49
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
50
|
-
* @param {TreeViewItemId} currentItemId The id of the active item before the keyboard navigation.
|
|
51
|
-
* @param {TreeViewItemId} nextItemId The id of the active item after the keyboard navigation.
|
|
52
|
-
*/
|
|
53
|
-
selectItemFromArrowNavigation: (event: React.SyntheticEvent, currentItemId: TreeViewItemId, nextItemId: TreeViewItemId) => void;
|
|
54
|
-
}
|
|
55
|
-
export type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ? TreeViewItemId[] : TreeViewItemId | null;
|
|
56
|
-
export interface UseTreeViewSelectionParameters<Multiple extends boolean | undefined> {
|
|
57
|
-
/**
|
|
58
|
-
* Whether selection is disabled.
|
|
59
|
-
* @default false
|
|
60
|
-
*/
|
|
61
|
-
disableSelection?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Selected item ids. (Uncontrolled)
|
|
64
|
-
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
65
|
-
* @default []
|
|
66
|
-
*/
|
|
67
|
-
defaultSelectedItems?: TreeViewSelectionValue<Multiple>;
|
|
68
|
-
/**
|
|
69
|
-
* Selected item ids. (Controlled)
|
|
70
|
-
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
71
|
-
*/
|
|
72
|
-
selectedItems?: TreeViewSelectionValue<Multiple>;
|
|
73
|
-
/**
|
|
74
|
-
* Whether multiple items can be selected.
|
|
75
|
-
* @default false
|
|
76
|
-
*/
|
|
77
|
-
multiSelect?: Multiple;
|
|
78
|
-
/**
|
|
79
|
-
* Whether the Tree View renders a checkbox at the left of its label that allows selecting it.
|
|
80
|
-
* @default false
|
|
81
|
-
*/
|
|
82
|
-
checkboxSelection?: boolean;
|
|
83
|
-
/**
|
|
84
|
-
* When `selectionPropagation.descendants` is set to `true`.
|
|
85
|
-
*
|
|
86
|
-
* - Selecting a parent selects all its descendants automatically.
|
|
87
|
-
* - Deselecting a parent deselects all its descendants automatically.
|
|
88
|
-
*
|
|
89
|
-
* When `selectionPropagation.parents` is set to `true`.
|
|
90
|
-
*
|
|
91
|
-
* - Selecting all the descendants of a parent selects the parent automatically.
|
|
92
|
-
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
93
|
-
*
|
|
94
|
-
* Only works when `multiSelect` is `true`.
|
|
95
|
-
* On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
|
|
96
|
-
*
|
|
97
|
-
* @default { parents: false, descendants: false }
|
|
98
|
-
*/
|
|
99
|
-
selectionPropagation?: TreeViewSelectionPropagation;
|
|
100
|
-
/**
|
|
101
|
-
* Callback fired when Tree Items are selected/deselected.
|
|
102
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
|
|
103
|
-
* @param {TreeViewItemId[] | TreeViewItemId} itemIds The ids of the selected items.
|
|
104
|
-
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
105
|
-
*/
|
|
106
|
-
onSelectedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewSelectionValue<Multiple>) => void;
|
|
107
|
-
/**
|
|
108
|
-
* Callback fired when a Tree Item is selected or deselected.
|
|
109
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
|
|
110
|
-
* @param {TreeViewItemId} itemId The itemId of the modified item.
|
|
111
|
-
* @param {boolean} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
|
|
112
|
-
*/
|
|
113
|
-
onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isSelected: boolean) => void;
|
|
114
|
-
}
|
|
115
|
-
export type UseTreeViewSelectionParametersWithDefaults<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
|
|
116
|
-
export interface UseTreeViewSelectionState {
|
|
117
|
-
selection: {
|
|
118
|
-
selectedItems: TreeViewSelectionValue<boolean>;
|
|
119
|
-
isEnabled: boolean;
|
|
120
|
-
isMultiSelectEnabled: boolean;
|
|
121
|
-
isCheckboxSelectionEnabled: boolean;
|
|
122
|
-
selectionPropagation: TreeViewSelectionPropagation;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
|
|
126
|
-
params: UseTreeViewSelectionParameters<any>;
|
|
127
|
-
paramsWithDefaults: UseTreeViewSelectionParametersWithDefaults<any>;
|
|
128
|
-
instance: UseTreeViewSelectionInstance;
|
|
129
|
-
publicAPI: UseTreeViewSelectionPublicAPI;
|
|
130
|
-
state: UseTreeViewSelectionState;
|
|
131
|
-
dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewItemsSignature];
|
|
132
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { TreeViewItemId, TreeViewSelectionPropagation } from "../../../models/index.js";
|
|
2
|
-
import { TreeViewUsedStore } from "../../models/index.js";
|
|
3
|
-
import { UseTreeViewSelectionSignature } from "./useTreeViewSelection.types.js";
|
|
4
|
-
export declare const getLookupFromArray: (array: string[]) => {
|
|
5
|
-
[itemId: string]: true;
|
|
6
|
-
};
|
|
7
|
-
export declare const getAddedAndRemovedItems: ({
|
|
8
|
-
store,
|
|
9
|
-
oldModel,
|
|
10
|
-
newModel
|
|
11
|
-
}: {
|
|
12
|
-
store: TreeViewUsedStore<UseTreeViewSelectionSignature>;
|
|
13
|
-
oldModel: TreeViewItemId[];
|
|
14
|
-
newModel: TreeViewItemId[];
|
|
15
|
-
}) => {
|
|
16
|
-
added: string[];
|
|
17
|
-
removed: string[];
|
|
18
|
-
};
|
|
19
|
-
export declare const propagateSelection: ({
|
|
20
|
-
store,
|
|
21
|
-
selectionPropagation,
|
|
22
|
-
newModel,
|
|
23
|
-
oldModel,
|
|
24
|
-
additionalItemsToPropagate
|
|
25
|
-
}: {
|
|
26
|
-
store: TreeViewUsedStore<UseTreeViewSelectionSignature>;
|
|
27
|
-
selectionPropagation: TreeViewSelectionPropagation;
|
|
28
|
-
newModel: TreeViewItemId[];
|
|
29
|
-
oldModel: TreeViewItemId[];
|
|
30
|
-
additionalItemsToPropagate?: TreeViewItemId[];
|
|
31
|
-
}) => string[];
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { selectionSelectors } from "./useTreeViewSelection.selectors.js";
|
|
2
|
-
import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
|
|
3
|
-
export const getLookupFromArray = array => {
|
|
4
|
-
const lookup = {};
|
|
5
|
-
array.forEach(itemId => {
|
|
6
|
-
lookup[itemId] = true;
|
|
7
|
-
});
|
|
8
|
-
return lookup;
|
|
9
|
-
};
|
|
10
|
-
export const getAddedAndRemovedItems = ({
|
|
11
|
-
store,
|
|
12
|
-
oldModel,
|
|
13
|
-
newModel
|
|
14
|
-
}) => {
|
|
15
|
-
const newModelMap = new Map();
|
|
16
|
-
newModel.forEach(id => {
|
|
17
|
-
newModelMap.set(id, true);
|
|
18
|
-
});
|
|
19
|
-
return {
|
|
20
|
-
added: newModel.filter(itemId => !selectionSelectors.isItemSelected(store.state, itemId)),
|
|
21
|
-
removed: oldModel.filter(itemId => !newModelMap.has(itemId))
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
export const propagateSelection = ({
|
|
25
|
-
store,
|
|
26
|
-
selectionPropagation,
|
|
27
|
-
newModel,
|
|
28
|
-
oldModel,
|
|
29
|
-
additionalItemsToPropagate
|
|
30
|
-
}) => {
|
|
31
|
-
if (!selectionPropagation.descendants && !selectionPropagation.parents) {
|
|
32
|
-
return newModel;
|
|
33
|
-
}
|
|
34
|
-
let shouldRegenerateModel = false;
|
|
35
|
-
const newModelLookup = getLookupFromArray(newModel);
|
|
36
|
-
const changes = getAddedAndRemovedItems({
|
|
37
|
-
store,
|
|
38
|
-
newModel,
|
|
39
|
-
oldModel
|
|
40
|
-
});
|
|
41
|
-
additionalItemsToPropagate?.forEach(itemId => {
|
|
42
|
-
if (newModelLookup[itemId]) {
|
|
43
|
-
if (!changes.added.includes(itemId)) {
|
|
44
|
-
changes.added.push(itemId);
|
|
45
|
-
}
|
|
46
|
-
} else if (!changes.removed.includes(itemId)) {
|
|
47
|
-
changes.removed.push(itemId);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
changes.added.forEach(addedItemId => {
|
|
51
|
-
if (selectionPropagation.descendants) {
|
|
52
|
-
const selectDescendants = itemId => {
|
|
53
|
-
if (itemId !== addedItemId) {
|
|
54
|
-
shouldRegenerateModel = true;
|
|
55
|
-
newModelLookup[itemId] = true;
|
|
56
|
-
}
|
|
57
|
-
itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(selectDescendants);
|
|
58
|
-
};
|
|
59
|
-
selectDescendants(addedItemId);
|
|
60
|
-
}
|
|
61
|
-
if (selectionPropagation.parents) {
|
|
62
|
-
const checkAllDescendantsSelected = itemId => {
|
|
63
|
-
if (!newModelLookup[itemId]) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
const children = itemsSelectors.itemOrderedChildrenIds(store.state, itemId);
|
|
67
|
-
return children.every(checkAllDescendantsSelected);
|
|
68
|
-
};
|
|
69
|
-
const selectParents = itemId => {
|
|
70
|
-
const parentId = itemsSelectors.itemParentId(store.state, itemId);
|
|
71
|
-
if (parentId == null) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const siblings = itemsSelectors.itemOrderedChildrenIds(store.state, parentId);
|
|
75
|
-
if (siblings.every(checkAllDescendantsSelected)) {
|
|
76
|
-
shouldRegenerateModel = true;
|
|
77
|
-
newModelLookup[parentId] = true;
|
|
78
|
-
selectParents(parentId);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
selectParents(addedItemId);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
changes.removed.forEach(removedItemId => {
|
|
85
|
-
if (selectionPropagation.parents) {
|
|
86
|
-
let parentId = itemsSelectors.itemParentId(store.state, removedItemId);
|
|
87
|
-
while (parentId != null) {
|
|
88
|
-
if (newModelLookup[parentId]) {
|
|
89
|
-
shouldRegenerateModel = true;
|
|
90
|
-
delete newModelLookup[parentId];
|
|
91
|
-
}
|
|
92
|
-
parentId = itemsSelectors.itemParentId(store.state, parentId);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (selectionPropagation.descendants) {
|
|
96
|
-
const deSelectDescendants = itemId => {
|
|
97
|
-
if (itemId !== removedItemId) {
|
|
98
|
-
shouldRegenerateModel = true;
|
|
99
|
-
delete newModelLookup[itemId];
|
|
100
|
-
}
|
|
101
|
-
itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(deSelectDescendants);
|
|
102
|
-
};
|
|
103
|
-
deSelectDescendants(removedItemId);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
return shouldRegenerateModel ? Object.keys(newModelLookup) : newModel;
|
|
107
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeView } from "./useTreeView.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeView } from "./useTreeView.js";
|