@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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TreeViewFocusPlugin = void 0;
|
|
7
|
+
var _expansion = require("../expansion");
|
|
8
|
+
var _selectors = require("./selectors");
|
|
9
|
+
var _items = require("../items");
|
|
10
|
+
class TreeViewFocusPlugin {
|
|
11
|
+
// We can't type `store`, otherwise we get the following TS error:
|
|
12
|
+
// 'focus' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
|
|
13
|
+
constructor(store) {
|
|
14
|
+
this.store = store;
|
|
15
|
+
|
|
16
|
+
// Whenever the items change, we need to ensure the focused item is still present.
|
|
17
|
+
this.store.registerStoreEffect(_items.itemsSelectors.itemMetaLookup, () => {
|
|
18
|
+
const focusedItemId = _selectors.focusSelectors.focusedItemId(store.state);
|
|
19
|
+
if (focusedItemId == null) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const hasItemBeenRemoved = !_items.itemsSelectors.itemMeta(store.state, focusedItemId);
|
|
23
|
+
if (!hasItemBeenRemoved) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const defaultFocusableItemId = _selectors.focusSelectors.defaultFocusableItemId(store.state);
|
|
27
|
+
if (defaultFocusableItemId == null) {
|
|
28
|
+
this.setFocusedItemId(null);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.applyItemFocus(null, defaultFocusableItemId);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
setFocusedItemId = itemId => {
|
|
35
|
+
const focusedItemId = _selectors.focusSelectors.focusedItemId(this.store.state);
|
|
36
|
+
if (focusedItemId === itemId) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.store.set('focusedItemId', itemId);
|
|
40
|
+
};
|
|
41
|
+
applyItemFocus = (event, itemId) => {
|
|
42
|
+
this.store.items.getItemDOMElement(itemId)?.focus();
|
|
43
|
+
this.setFocusedItemId(itemId);
|
|
44
|
+
this.store.parameters.onItemFocus?.(event, itemId);
|
|
45
|
+
};
|
|
46
|
+
buildPublicAPI = () => {
|
|
47
|
+
return {
|
|
48
|
+
focusItem: this.focusItem
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Focus the item with the given id.
|
|
54
|
+
*
|
|
55
|
+
* If the item is the child of a collapsed item, then this method will do nothing.
|
|
56
|
+
* Make sure to expand the ancestors of the item before calling this method if needed.
|
|
57
|
+
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change.
|
|
58
|
+
* @param {TreeViewItemId} itemId The id of the item to focus.
|
|
59
|
+
*/
|
|
60
|
+
focusItem = (event, itemId) => {
|
|
61
|
+
// If we receive an itemId, and it is visible, the focus will be set to it
|
|
62
|
+
const itemMeta = _items.itemsSelectors.itemMeta(this.store.state, itemId);
|
|
63
|
+
const isItemVisible = itemMeta && (itemMeta.parentId == null || _expansion.expansionSelectors.isItemExpanded(this.store.state, itemMeta.parentId));
|
|
64
|
+
if (isItemVisible) {
|
|
65
|
+
this.applyItemFocus(event, itemId);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Remove the focus from the currently focused item (both from the internal state and the DOM).
|
|
71
|
+
*/
|
|
72
|
+
removeFocusedItem = () => {
|
|
73
|
+
const focusedItemId = _selectors.focusSelectors.focusedItemId(this.store.state);
|
|
74
|
+
if (focusedItemId == null) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const itemMeta = _items.itemsSelectors.itemMeta(this.store.state, focusedItemId);
|
|
78
|
+
if (itemMeta) {
|
|
79
|
+
const itemElement = this.store.items.getItemDOMElement(focusedItemId);
|
|
80
|
+
if (itemElement) {
|
|
81
|
+
itemElement.blur();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.setFocusedItemId(null);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Event handler to fire when the `root` slot of the Tree View is focused.
|
|
89
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
90
|
+
*/
|
|
91
|
+
handleRootFocus = event => {
|
|
92
|
+
if (event.defaultMuiPrevented) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// if the event bubbled (which is React specific) we don't want to steal focus
|
|
97
|
+
const defaultFocusableItemId = _selectors.focusSelectors.defaultFocusableItemId(this.store.state);
|
|
98
|
+
if (event.target === event.currentTarget && defaultFocusableItemId != null) {
|
|
99
|
+
this.applyItemFocus(event, defaultFocusableItemId);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Event handler to fire when the `root` slot of the Tree View is blurred.
|
|
105
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
106
|
+
*/
|
|
107
|
+
handleRootBlur = event => {
|
|
108
|
+
if (event.defaultMuiPrevented) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.setFocusedItemId(null);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
exports.TreeViewFocusPlugin = TreeViewFocusPlugin;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _TreeViewFocusPlugin = require("./TreeViewFocusPlugin");
|
|
7
|
+
Object.keys(_TreeViewFocusPlugin).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _TreeViewFocusPlugin[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _TreeViewFocusPlugin[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _selectors = require("./selectors");
|
|
18
|
+
Object.keys(_selectors).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _selectors[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _selectors[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
2
|
+
export declare const focusSelectors: {
|
|
3
|
+
/**
|
|
4
|
+
* Gets the item that should be sequentially focusable (usually with the Tab key).
|
|
5
|
+
* At any point in time, there is a single item that can be sequentially focused in the Tree View.
|
|
6
|
+
* This item is the first selected item (that is both visible and navigable), if any, or the first navigable item if no item is selected.
|
|
7
|
+
*/
|
|
8
|
+
defaultFocusableItemId: (args_0: MinimalTreeViewState<any, any>) => any;
|
|
9
|
+
/**
|
|
10
|
+
* Checks whether an item is the default focusable item.
|
|
11
|
+
*/
|
|
12
|
+
isItemTheDefaultFocusableItem: (args_0: MinimalTreeViewState<any, any>, itemId: any) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Gets the id of the item that is currently focused.
|
|
15
|
+
*/
|
|
16
|
+
focusedItemId: (state: MinimalTreeViewState<any, any>) => string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Checks whether an item is focused.
|
|
19
|
+
*/
|
|
20
|
+
isItemFocused: (state: MinimalTreeViewState<any, any>, itemId: string) => boolean;
|
|
21
|
+
};
|
package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js}
RENAMED
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.focusSelectors = void 0;
|
|
7
7
|
var _store = require("@mui/x-internals/store");
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
const defaultFocusableItemIdSelector = (0, _store.createSelectorMemoized)(
|
|
8
|
+
var _selectors = require("../selection/selectors");
|
|
9
|
+
var _selectors2 = require("../items/selectors");
|
|
10
|
+
var _utils = require("../items/utils");
|
|
11
|
+
var _selectors3 = require("../expansion/selectors");
|
|
12
|
+
const defaultFocusableItemIdSelector = (0, _store.createSelectorMemoized)(_selectors.selectionSelectors.selectedItems, _selectors3.expansionSelectors.expandedItemsMap, _selectors2.itemsSelectors.itemMetaLookup, _selectors2.itemsSelectors.disabledItemFocusable, state => _selectors2.itemsSelectors.itemOrderedChildrenIds(state, null), (selectedItems, expandedItemsMap, itemMetaLookup, disabledItemsFocusable, orderedRootItemIds) => {
|
|
13
13
|
const firstSelectedItem = selectedItems.find(itemId => {
|
|
14
|
-
if (!disabledItemsFocusable && (0,
|
|
14
|
+
if (!disabledItemsFocusable && (0, _utils.isItemDisabled)(itemMetaLookup, itemId)) {
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
const itemMeta = itemMetaLookup[itemId];
|
|
@@ -20,7 +20,7 @@ const defaultFocusableItemIdSelector = (0, _store.createSelectorMemoized)(_useTr
|
|
|
20
20
|
if (firstSelectedItem != null) {
|
|
21
21
|
return firstSelectedItem;
|
|
22
22
|
}
|
|
23
|
-
const firstNavigableItem = orderedRootItemIds.find(itemId => disabledItemsFocusable || !(0,
|
|
23
|
+
const firstNavigableItem = orderedRootItemIds.find(itemId => disabledItemsFocusable || !(0, _utils.isItemDisabled)(itemMetaLookup, itemId));
|
|
24
24
|
if (firstNavigableItem != null) {
|
|
25
25
|
return firstNavigableItem;
|
|
26
26
|
}
|
|
@@ -40,9 +40,9 @@ const focusSelectors = exports.focusSelectors = {
|
|
|
40
40
|
/**
|
|
41
41
|
* Gets the id of the item that is currently focused.
|
|
42
42
|
*/
|
|
43
|
-
focusedItemId: (0, _store.createSelector)(state => state.
|
|
43
|
+
focusedItemId: (0, _store.createSelector)(state => state.focusedItemId),
|
|
44
44
|
/**
|
|
45
45
|
* Checks whether an item is focused.
|
|
46
46
|
*/
|
|
47
|
-
isItemFocused: (0, _store.createSelector)((state, itemId) => state.
|
|
47
|
+
isItemFocused: (0, _store.createSelector)((state, itemId) => state.focusedItemId === itemId)
|
|
48
48
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./selectors.js";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _selectors = require("./selectors");
|
|
7
|
+
Object.keys(_selectors).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _selectors[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _selectors[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
2
|
+
export declare const idSelectors: {
|
|
3
|
+
/**
|
|
4
|
+
* Get the id attribute of the tree view.
|
|
5
|
+
*/
|
|
6
|
+
treeId: (state: MinimalTreeViewState<any, any>) => string | undefined;
|
|
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
|
+
*/
|
|
12
|
+
treeItemIdAttribute: (args_0: MinimalTreeViewState<any, any>, itemId: string, providedIdAttribute: string | undefined) => string;
|
|
13
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.idSelectors = void 0;
|
|
7
|
+
var _store = require("@mui/x-internals/store");
|
|
8
|
+
const idSelectors = exports.idSelectors = {
|
|
9
|
+
/**
|
|
10
|
+
* Get the id attribute of the tree view.
|
|
11
|
+
*/
|
|
12
|
+
treeId: (0, _store.createSelector)(state => state.treeId),
|
|
13
|
+
/**
|
|
14
|
+
* Generate the id attribute (i.e.: the `id` attribute passed to the DOM element) of a Tree Item.
|
|
15
|
+
* If the user explicitly defined an id attribute, it will be returned.
|
|
16
|
+
* Otherwise, the method creates a unique id for the item based on the Tree View id attribute and the item `itemId`
|
|
17
|
+
*/
|
|
18
|
+
treeItemIdAttribute: (0, _store.createSelector)(state => state.treeId, (treeId, itemId, providedIdAttribute) => {
|
|
19
|
+
if (providedIdAttribute != null) {
|
|
20
|
+
return providedIdAttribute;
|
|
21
|
+
}
|
|
22
|
+
return `${treeId ?? ''}-${itemId}`;
|
|
23
|
+
})
|
|
24
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { TreeViewItemId, TreeViewValidItem } from "../../../models/index.js";
|
|
2
|
+
import { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/MinimalTreeViewStore.types.js";
|
|
3
|
+
export declare class TreeViewItemsPlugin<R extends TreeViewValidItem<R>> {
|
|
4
|
+
private store;
|
|
5
|
+
constructor(store: any);
|
|
6
|
+
/**
|
|
7
|
+
* Determines if the items state should be rebuilt based on the new and previous parameters.
|
|
8
|
+
*/
|
|
9
|
+
static shouldRebuildItemsState: <R2 extends TreeViewValidItem<R2>>(newParameters: MinimalTreeViewParameters<R2, any>, previousParameters: MinimalTreeViewParameters<R2, any>) => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Builds the state properties derived from the `items` prop.
|
|
12
|
+
*/
|
|
13
|
+
static buildItemsStateIfNeeded: <R2 extends TreeViewValidItem<R2>>(parameters: Pick<MinimalTreeViewParameters<R2, any>, "items" | "isItemDisabled" | "isItemSelectionDisabled" | "getItemId" | "getItemLabel" | "getItemChildren">) => {
|
|
14
|
+
itemMetaLookup: {
|
|
15
|
+
[itemId: string]: import("../../index.js").TreeViewItemMeta;
|
|
16
|
+
};
|
|
17
|
+
itemModelLookup: {
|
|
18
|
+
[itemId: string]: R2;
|
|
19
|
+
};
|
|
20
|
+
itemOrderedChildrenIdsLookup: {
|
|
21
|
+
[parentItemId: string]: string[];
|
|
22
|
+
};
|
|
23
|
+
itemChildrenIndexesLookup: {
|
|
24
|
+
[parentItemId: string]: {
|
|
25
|
+
[itemId: string]: number;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Get the item with the given id.
|
|
31
|
+
* When used in the Simple Tree View, it returns an object with the `id` and `label` properties.
|
|
32
|
+
* @param {TreeViewItemId} itemId The id of the item to retrieve.
|
|
33
|
+
* @returns {R} The item with the given id.
|
|
34
|
+
*/
|
|
35
|
+
private getItem;
|
|
36
|
+
/**
|
|
37
|
+
* Get all the items in the same format as provided by `props.items`.
|
|
38
|
+
* @returns {R[]} The items in the tree.
|
|
39
|
+
*/
|
|
40
|
+
private getItemTree;
|
|
41
|
+
/**
|
|
42
|
+
* Get the ids of a given item's children.
|
|
43
|
+
* Those ids are returned in the order they should be rendered.
|
|
44
|
+
* To get the root items, pass `null` as the `itemId`.
|
|
45
|
+
* @param {TreeViewItemId | null} itemId The id of the item to get the children of.
|
|
46
|
+
* @returns {TreeViewItemId[]} The ids of the item's children.
|
|
47
|
+
*/
|
|
48
|
+
private getItemOrderedChildrenIds;
|
|
49
|
+
/** * Get the id of the parent item.
|
|
50
|
+
* @param {TreeViewItemId} itemId The id of the item to whose parentId we want to retrieve.
|
|
51
|
+
* @returns {TreeViewItemId | null} The id of the parent item.
|
|
52
|
+
*/
|
|
53
|
+
private getParentId;
|
|
54
|
+
/**
|
|
55
|
+
* Toggle the disabled state of the item with the given id.
|
|
56
|
+
* @param {object} parameters The params of the method.
|
|
57
|
+
* @param {TreeViewItemId } parameters.itemId The id of the item to get the children of.
|
|
58
|
+
* @param {boolean } parameters.shouldBeDisabled true if the item should be disabled.
|
|
59
|
+
*/
|
|
60
|
+
private setIsItemDisabled;
|
|
61
|
+
buildPublicAPI: () => {
|
|
62
|
+
getItem: (itemId: TreeViewItemId) => R;
|
|
63
|
+
getItemDOMElement: (itemId: TreeViewItemId) => HTMLElement | null;
|
|
64
|
+
getItemOrderedChildrenIds: (itemId: TreeViewItemId | null) => TreeViewItemId[];
|
|
65
|
+
getItemTree: () => R[];
|
|
66
|
+
getParentId: (itemId: TreeViewItemId) => TreeViewItemId | null;
|
|
67
|
+
setIsItemDisabled: ({
|
|
68
|
+
itemId,
|
|
69
|
+
shouldBeDisabled
|
|
70
|
+
}: {
|
|
71
|
+
itemId: TreeViewItemId;
|
|
72
|
+
shouldBeDisabled?: boolean;
|
|
73
|
+
}) => void;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Get the DOM element of the item with the given id.
|
|
77
|
+
* @param {TreeViewItemId} itemId The id of the item to get the DOM element of.
|
|
78
|
+
* @returns {HTMLElement | null} The DOM element of the item with the given id.
|
|
79
|
+
*/
|
|
80
|
+
getItemDOMElement: (itemId: TreeViewItemId) => HTMLElement | null;
|
|
81
|
+
/**
|
|
82
|
+
* Add an array of items to the tree.
|
|
83
|
+
* @param {SetItemChildrenParameters<R>} args The items to add to the tree and information about their ancestors.
|
|
84
|
+
*/
|
|
85
|
+
setItemChildren: ({
|
|
86
|
+
items,
|
|
87
|
+
parentId,
|
|
88
|
+
getChildrenCount
|
|
89
|
+
}: {
|
|
90
|
+
items: readonly R[];
|
|
91
|
+
parentId: TreeViewItemId | null;
|
|
92
|
+
getChildrenCount: (item: R) => number;
|
|
93
|
+
}) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Remove the children of an item.
|
|
96
|
+
* @param {TreeViewItemId | null} parentId The id of the item to remove the children of.
|
|
97
|
+
*/
|
|
98
|
+
removeChildren: (parentId: TreeViewItemId | null) => void;
|
|
99
|
+
/**
|
|
100
|
+
* Callback fired when the `content` slot of a given Tree Item is clicked.
|
|
101
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
102
|
+
* @param {TreeViewItemId} itemId The id of the item being clicked.
|
|
103
|
+
*/
|
|
104
|
+
handleItemClick: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
|
|
105
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TreeViewItemsPlugin = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _id = require("../id");
|
|
10
|
+
var _selectors = require("./selectors");
|
|
11
|
+
var _utils = require("./utils");
|
|
12
|
+
class TreeViewItemsPlugin {
|
|
13
|
+
// We can't type `store`, otherwise we get the following TS error:
|
|
14
|
+
// 'items' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
|
|
15
|
+
constructor(store) {
|
|
16
|
+
this.store = store;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Determines if the items state should be rebuilt based on the new and previous parameters.
|
|
21
|
+
*/
|
|
22
|
+
static shouldRebuildItemsState = (newParameters, previousParameters) => {
|
|
23
|
+
return ['items', 'isItemDisabled', 'isItemSelectionDisabled', 'getItemId', 'getItemLabel', 'getItemChildren'].some(key => {
|
|
24
|
+
const typedKey = key;
|
|
25
|
+
return newParameters[typedKey] !== previousParameters[typedKey];
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Builds the state properties derived from the `items` prop.
|
|
31
|
+
*/
|
|
32
|
+
static buildItemsStateIfNeeded = parameters => {
|
|
33
|
+
const itemMetaLookup = {};
|
|
34
|
+
const itemModelLookup = {};
|
|
35
|
+
const itemOrderedChildrenIdsLookup = {};
|
|
36
|
+
const itemChildrenIndexesLookup = {};
|
|
37
|
+
function processSiblings(items, parentId, depth) {
|
|
38
|
+
const parentIdWithDefault = parentId ?? _utils.TREE_VIEW_ROOT_PARENT_ID;
|
|
39
|
+
const {
|
|
40
|
+
metaLookup,
|
|
41
|
+
modelLookup,
|
|
42
|
+
orderedChildrenIds,
|
|
43
|
+
childrenIndexes,
|
|
44
|
+
itemsChildren
|
|
45
|
+
} = (0, _utils.buildItemsLookups)({
|
|
46
|
+
storeParameters: parameters,
|
|
47
|
+
items,
|
|
48
|
+
parentId,
|
|
49
|
+
depth,
|
|
50
|
+
isItemExpandable: (item, children) => !!children && children.length > 0,
|
|
51
|
+
otherItemsMetaLookup: itemMetaLookup
|
|
52
|
+
});
|
|
53
|
+
Object.assign(itemMetaLookup, metaLookup);
|
|
54
|
+
Object.assign(itemModelLookup, modelLookup);
|
|
55
|
+
itemOrderedChildrenIdsLookup[parentIdWithDefault] = orderedChildrenIds;
|
|
56
|
+
itemChildrenIndexesLookup[parentIdWithDefault] = childrenIndexes;
|
|
57
|
+
for (const item of itemsChildren) {
|
|
58
|
+
processSiblings(item.children || [], item.id, depth + 1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
processSiblings(parameters.items, null, 0);
|
|
62
|
+
return {
|
|
63
|
+
itemMetaLookup,
|
|
64
|
+
itemModelLookup,
|
|
65
|
+
itemOrderedChildrenIdsLookup,
|
|
66
|
+
itemChildrenIndexesLookup
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Get the item with the given id.
|
|
72
|
+
* When used in the Simple Tree View, it returns an object with the `id` and `label` properties.
|
|
73
|
+
* @param {TreeViewItemId} itemId The id of the item to retrieve.
|
|
74
|
+
* @returns {R} The item with the given id.
|
|
75
|
+
*/
|
|
76
|
+
getItem = itemId => _selectors.itemsSelectors.itemModel(this.store.state, itemId);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Get all the items in the same format as provided by `props.items`.
|
|
80
|
+
* @returns {R[]} The items in the tree.
|
|
81
|
+
*/
|
|
82
|
+
getItemTree = () => {
|
|
83
|
+
const getItemFromItemId = itemId => {
|
|
84
|
+
const item = _selectors.itemsSelectors.itemModel(this.store.state, itemId);
|
|
85
|
+
const itemToMutate = (0, _extends2.default)({}, item);
|
|
86
|
+
const newChildren = _selectors.itemsSelectors.itemOrderedChildrenIds(this.store.state, itemId);
|
|
87
|
+
if (newChildren.length > 0) {
|
|
88
|
+
itemToMutate.children = newChildren.map(getItemFromItemId);
|
|
89
|
+
} else {
|
|
90
|
+
delete itemToMutate.children;
|
|
91
|
+
}
|
|
92
|
+
return itemToMutate;
|
|
93
|
+
};
|
|
94
|
+
return _selectors.itemsSelectors.itemOrderedChildrenIds(this.store.state, null).map(getItemFromItemId);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Get the ids of a given item's children.
|
|
99
|
+
* Those ids are returned in the order they should be rendered.
|
|
100
|
+
* To get the root items, pass `null` as the `itemId`.
|
|
101
|
+
* @param {TreeViewItemId | null} itemId The id of the item to get the children of.
|
|
102
|
+
* @returns {TreeViewItemId[]} The ids of the item's children.
|
|
103
|
+
*/
|
|
104
|
+
getItemOrderedChildrenIds = itemId => _selectors.itemsSelectors.itemOrderedChildrenIds(this.store.state, itemId);
|
|
105
|
+
|
|
106
|
+
/** * Get the id of the parent item.
|
|
107
|
+
* @param {TreeViewItemId} itemId The id of the item to whose parentId we want to retrieve.
|
|
108
|
+
* @returns {TreeViewItemId | null} The id of the parent item.
|
|
109
|
+
*/
|
|
110
|
+
getParentId = itemId => {
|
|
111
|
+
const itemMeta = _selectors.itemsSelectors.itemMeta(this.store.state, itemId);
|
|
112
|
+
return itemMeta?.parentId || null;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Toggle the disabled state of the item with the given id.
|
|
117
|
+
* @param {object} parameters The params of the method.
|
|
118
|
+
* @param {TreeViewItemId } parameters.itemId The id of the item to get the children of.
|
|
119
|
+
* @param {boolean } parameters.shouldBeDisabled true if the item should be disabled.
|
|
120
|
+
*/
|
|
121
|
+
setIsItemDisabled = ({
|
|
122
|
+
itemId,
|
|
123
|
+
shouldBeDisabled
|
|
124
|
+
}) => {
|
|
125
|
+
if (!this.store.state.itemMetaLookup[itemId]) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const itemMetaLookup = (0, _extends2.default)({}, this.store.state.itemMetaLookup);
|
|
129
|
+
itemMetaLookup[itemId] = (0, _extends2.default)({}, itemMetaLookup[itemId], {
|
|
130
|
+
disabled: shouldBeDisabled ?? !itemMetaLookup[itemId].disabled
|
|
131
|
+
});
|
|
132
|
+
this.store.set('itemMetaLookup', itemMetaLookup);
|
|
133
|
+
};
|
|
134
|
+
buildPublicAPI = () => {
|
|
135
|
+
return {
|
|
136
|
+
getItem: this.getItem,
|
|
137
|
+
getItemDOMElement: this.getItemDOMElement,
|
|
138
|
+
getItemOrderedChildrenIds: this.getItemOrderedChildrenIds,
|
|
139
|
+
getItemTree: this.getItemTree,
|
|
140
|
+
getParentId: this.getParentId,
|
|
141
|
+
setIsItemDisabled: this.setIsItemDisabled
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Get the DOM element of the item with the given id.
|
|
147
|
+
* @param {TreeViewItemId} itemId The id of the item to get the DOM element of.
|
|
148
|
+
* @returns {HTMLElement | null} The DOM element of the item with the given id.
|
|
149
|
+
*/
|
|
150
|
+
getItemDOMElement = itemId => {
|
|
151
|
+
const itemMeta = _selectors.itemsSelectors.itemMeta(this.store.state, itemId);
|
|
152
|
+
if (itemMeta == null) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
const idAttribute = _id.idSelectors.treeItemIdAttribute(this.store.state, itemId, itemMeta.idAttribute);
|
|
156
|
+
return document.getElementById(idAttribute);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Add an array of items to the tree.
|
|
161
|
+
* @param {SetItemChildrenParameters<R>} args The items to add to the tree and information about their ancestors.
|
|
162
|
+
*/
|
|
163
|
+
setItemChildren = ({
|
|
164
|
+
items,
|
|
165
|
+
parentId,
|
|
166
|
+
getChildrenCount
|
|
167
|
+
}) => {
|
|
168
|
+
const parentIdWithDefault = parentId ?? _utils.TREE_VIEW_ROOT_PARENT_ID;
|
|
169
|
+
const parentDepth = parentId == null ? -1 : _selectors.itemsSelectors.itemDepth(this.store.state, parentId);
|
|
170
|
+
const {
|
|
171
|
+
metaLookup,
|
|
172
|
+
modelLookup,
|
|
173
|
+
orderedChildrenIds,
|
|
174
|
+
childrenIndexes
|
|
175
|
+
} = (0, _utils.buildItemsLookups)({
|
|
176
|
+
storeParameters: this.store.parameters,
|
|
177
|
+
items,
|
|
178
|
+
parentId,
|
|
179
|
+
depth: parentDepth + 1,
|
|
180
|
+
isItemExpandable: getChildrenCount ? item => getChildrenCount(item) !== 0 : () => false,
|
|
181
|
+
otherItemsMetaLookup: _selectors.itemsSelectors.itemMetaLookup(this.store.state)
|
|
182
|
+
});
|
|
183
|
+
this.store.update({
|
|
184
|
+
itemModelLookup: (0, _extends2.default)({}, this.store.state.itemModelLookup, modelLookup),
|
|
185
|
+
itemMetaLookup: (0, _extends2.default)({}, this.store.state.itemMetaLookup, metaLookup),
|
|
186
|
+
itemOrderedChildrenIdsLookup: (0, _extends2.default)({}, this.store.state.itemOrderedChildrenIdsLookup, {
|
|
187
|
+
[parentIdWithDefault]: orderedChildrenIds
|
|
188
|
+
}),
|
|
189
|
+
itemChildrenIndexesLookup: (0, _extends2.default)({}, this.store.state.itemChildrenIndexesLookup, {
|
|
190
|
+
[parentIdWithDefault]: childrenIndexes
|
|
191
|
+
})
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Remove the children of an item.
|
|
197
|
+
* @param {TreeViewItemId | null} parentId The id of the item to remove the children of.
|
|
198
|
+
*/
|
|
199
|
+
removeChildren = parentId => {
|
|
200
|
+
const itemMetaLookup = this.store.state.itemMetaLookup;
|
|
201
|
+
const newMetaMap = Object.keys(itemMetaLookup).reduce((acc, key) => {
|
|
202
|
+
const item = itemMetaLookup[key];
|
|
203
|
+
if (item.parentId === parentId) {
|
|
204
|
+
return acc;
|
|
205
|
+
}
|
|
206
|
+
return (0, _extends2.default)({}, acc, {
|
|
207
|
+
[item.id]: item
|
|
208
|
+
});
|
|
209
|
+
}, {});
|
|
210
|
+
const newItemOrderedChildrenIdsLookup = (0, _extends2.default)({}, this.store.state.itemOrderedChildrenIdsLookup);
|
|
211
|
+
const newItemChildrenIndexesLookup = (0, _extends2.default)({}, this.store.state.itemChildrenIndexesLookup);
|
|
212
|
+
const cleanId = parentId ?? _utils.TREE_VIEW_ROOT_PARENT_ID;
|
|
213
|
+
delete newItemChildrenIndexesLookup[cleanId];
|
|
214
|
+
delete newItemOrderedChildrenIdsLookup[cleanId];
|
|
215
|
+
this.store.update({
|
|
216
|
+
itemMetaLookup: newMetaMap,
|
|
217
|
+
itemOrderedChildrenIdsLookup: newItemOrderedChildrenIdsLookup,
|
|
218
|
+
itemChildrenIndexesLookup: newItemChildrenIndexesLookup
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Callback fired when the `content` slot of a given Tree Item is clicked.
|
|
224
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
225
|
+
* @param {TreeViewItemId} itemId The id of the item being clicked.
|
|
226
|
+
*/
|
|
227
|
+
handleItemClick = (event, itemId) => {
|
|
228
|
+
this.store.parameters.onItemClick?.(event, itemId);
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
exports.TreeViewItemsPlugin = TreeViewItemsPlugin;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
buildSiblingIndexes: true,
|
|
8
|
+
TREE_VIEW_ROOT_PARENT_ID: true
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "TREE_VIEW_ROOT_PARENT_ID", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _utils.TREE_VIEW_ROOT_PARENT_ID;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "buildSiblingIndexes", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _utils.buildSiblingIndexes;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _TreeViewItemsPlugin = require("./TreeViewItemsPlugin");
|
|
23
|
+
Object.keys(_TreeViewItemsPlugin).forEach(function (key) {
|
|
24
|
+
if (key === "default" || key === "__esModule") return;
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
26
|
+
if (key in exports && exports[key] === _TreeViewItemsPlugin[key]) return;
|
|
27
|
+
Object.defineProperty(exports, key, {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () {
|
|
30
|
+
return _TreeViewItemsPlugin[key];
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
var _selectors = require("./selectors");
|
|
35
|
+
Object.keys(_selectors).forEach(function (key) {
|
|
36
|
+
if (key === "default" || key === "__esModule") return;
|
|
37
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
38
|
+
if (key in exports && exports[key] === _selectors[key]) return;
|
|
39
|
+
Object.defineProperty(exports, key, {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () {
|
|
42
|
+
return _selectors[key];
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
var _utils = require("./utils");
|