@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,312 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
'use client';
|
|
3
|
-
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.useTreeViewKeyboardNavigation = void 0;
|
|
9
|
-
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _store = require("@mui/x-internals/store");
|
|
11
|
-
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
12
|
-
var _useTimeout = require("@base-ui-components/utils/useTimeout");
|
|
13
|
-
var _useEventCallback = require("@base-ui-components/utils/useEventCallback");
|
|
14
|
-
var _tree = require("../../utils/tree");
|
|
15
|
-
var _plugins = require("../../utils/plugins");
|
|
16
|
-
var _useTreeViewLabel = require("../useTreeViewLabel");
|
|
17
|
-
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
|
|
18
|
-
var _useTreeViewLabel2 = require("../useTreeViewLabel/useTreeViewLabel.selectors");
|
|
19
|
-
var _useTreeViewSelection = require("../useTreeViewSelection/useTreeViewSelection.selectors");
|
|
20
|
-
var _useTreeViewExpansion = require("../useTreeViewExpansion/useTreeViewExpansion.selectors");
|
|
21
|
-
function isPrintableKey(string) {
|
|
22
|
-
return !!string && string.length === 1 && !!string.match(/\S/);
|
|
23
|
-
}
|
|
24
|
-
const TYPEAHEAD_TIMEOUT = 500;
|
|
25
|
-
const useTreeViewKeyboardNavigation = ({
|
|
26
|
-
instance,
|
|
27
|
-
store,
|
|
28
|
-
params
|
|
29
|
-
}) => {
|
|
30
|
-
const isRtl = (0, _RtlProvider.useRtl)();
|
|
31
|
-
const labelMap = React.useRef({});
|
|
32
|
-
const typeaheadQueryRef = React.useRef('');
|
|
33
|
-
const typeaheadTimeout = (0, _useTimeout.useTimeout)();
|
|
34
|
-
const updateLabelMap = (0, _useEventCallback.useEventCallback)(callback => {
|
|
35
|
-
labelMap.current = callback(labelMap.current);
|
|
36
|
-
});
|
|
37
|
-
const itemMetaLookup = (0, _store.useStore)(store, _useTreeViewItems.itemsSelectors.itemMetaLookup);
|
|
38
|
-
React.useEffect(() => {
|
|
39
|
-
if (instance.areItemUpdatesPrevented()) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const newLabelMap = {};
|
|
43
|
-
const processItem = item => {
|
|
44
|
-
newLabelMap[item.id] = item.label.toLowerCase();
|
|
45
|
-
};
|
|
46
|
-
Object.values(itemMetaLookup).forEach(processItem);
|
|
47
|
-
labelMap.current = newLabelMap;
|
|
48
|
-
}, [itemMetaLookup, params.getItemId, instance]);
|
|
49
|
-
const getNextItem = itemIdToCheck => {
|
|
50
|
-
const nextItemId = (0, _tree.getNextNavigableItem)(store.state, itemIdToCheck);
|
|
51
|
-
// We reached the end of the tree, check from the beginning
|
|
52
|
-
if (nextItemId === null) {
|
|
53
|
-
return (0, _tree.getFirstNavigableItem)(store.state);
|
|
54
|
-
}
|
|
55
|
-
return nextItemId;
|
|
56
|
-
};
|
|
57
|
-
const getNextMatchingItemId = (itemId, query) => {
|
|
58
|
-
let matchingItemId = null;
|
|
59
|
-
const checkedItems = {};
|
|
60
|
-
// If query length > 1, first check if current item matches
|
|
61
|
-
let currentItemId = query.length > 1 ? itemId : getNextItem(itemId);
|
|
62
|
-
// The "!checkedItems[currentItemId]" condition avoids an infinite loop when there is no matching item.
|
|
63
|
-
while (matchingItemId == null && !checkedItems[currentItemId]) {
|
|
64
|
-
const itemLabel = labelMap.current[currentItemId];
|
|
65
|
-
if (itemLabel?.startsWith(query)) {
|
|
66
|
-
matchingItemId = currentItemId;
|
|
67
|
-
} else {
|
|
68
|
-
checkedItems[currentItemId] = true;
|
|
69
|
-
currentItemId = getNextItem(currentItemId);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return matchingItemId;
|
|
73
|
-
};
|
|
74
|
-
const getFirstMatchingItem = (itemId, newKey) => {
|
|
75
|
-
const cleanNewKey = newKey.toLowerCase();
|
|
76
|
-
|
|
77
|
-
// Try matching with accumulated query + new key
|
|
78
|
-
const concatenatedQuery = `${typeaheadQueryRef.current}${cleanNewKey}`;
|
|
79
|
-
|
|
80
|
-
// check if the entire typed query matches an item
|
|
81
|
-
const concatenatedQueryMatchingItemId = getNextMatchingItemId(itemId, concatenatedQuery);
|
|
82
|
-
if (concatenatedQueryMatchingItemId != null) {
|
|
83
|
-
typeaheadQueryRef.current = concatenatedQuery;
|
|
84
|
-
return concatenatedQueryMatchingItemId;
|
|
85
|
-
}
|
|
86
|
-
const newKeyMatchingItemId = getNextMatchingItemId(itemId, cleanNewKey);
|
|
87
|
-
if (newKeyMatchingItemId != null) {
|
|
88
|
-
typeaheadQueryRef.current = cleanNewKey;
|
|
89
|
-
return newKeyMatchingItemId;
|
|
90
|
-
}
|
|
91
|
-
typeaheadQueryRef.current = '';
|
|
92
|
-
return null;
|
|
93
|
-
};
|
|
94
|
-
const canToggleItemSelection = itemId => _useTreeViewSelection.selectionSelectors.enabled(store.state) && !_useTreeViewItems.itemsSelectors.isItemDisabled(store.state, itemId);
|
|
95
|
-
const canToggleItemExpansion = itemId => {
|
|
96
|
-
return !_useTreeViewItems.itemsSelectors.isItemDisabled(store.state, itemId) && _useTreeViewExpansion.expansionSelectors.isItemExpandable(store.state, itemId);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
// ARIA specification: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction
|
|
100
|
-
const handleItemKeyDown = async (event, itemId) => {
|
|
101
|
-
if (event.defaultMuiPrevented) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (event.altKey || (0, _tree.isTargetInDescendants)(event.target, event.currentTarget)) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
const ctrlPressed = event.ctrlKey || event.metaKey;
|
|
108
|
-
const key = event.key;
|
|
109
|
-
const isMultiSelectEnabled = _useTreeViewSelection.selectionSelectors.isMultiSelectEnabled(store.state);
|
|
110
|
-
|
|
111
|
-
// eslint-disable-next-line default-case
|
|
112
|
-
switch (true) {
|
|
113
|
-
// Select the item when pressing "Space"
|
|
114
|
-
case key === ' ' && canToggleItemSelection(itemId):
|
|
115
|
-
{
|
|
116
|
-
event.preventDefault();
|
|
117
|
-
if (isMultiSelectEnabled && event.shiftKey) {
|
|
118
|
-
instance.expandSelectionRange(event, itemId);
|
|
119
|
-
} else {
|
|
120
|
-
instance.setItemSelection({
|
|
121
|
-
event,
|
|
122
|
-
itemId,
|
|
123
|
-
keepExistingSelection: isMultiSelectEnabled,
|
|
124
|
-
shouldBeSelected: undefined
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// If the focused item has children, we expand it.
|
|
131
|
-
// If the focused item has no children, we select it.
|
|
132
|
-
case key === 'Enter':
|
|
133
|
-
{
|
|
134
|
-
if ((0, _plugins.hasPlugin)(instance, _useTreeViewLabel.useTreeViewLabel) && _useTreeViewLabel2.labelSelectors.isItemEditable(store.state, itemId) && !_useTreeViewLabel2.labelSelectors.isItemBeingEdited(store.state, itemId)) {
|
|
135
|
-
instance.setEditedItem(itemId);
|
|
136
|
-
} else if (canToggleItemExpansion(itemId)) {
|
|
137
|
-
instance.setItemExpansion({
|
|
138
|
-
event,
|
|
139
|
-
itemId
|
|
140
|
-
});
|
|
141
|
-
event.preventDefault();
|
|
142
|
-
} else if (canToggleItemSelection(itemId)) {
|
|
143
|
-
if (isMultiSelectEnabled) {
|
|
144
|
-
event.preventDefault();
|
|
145
|
-
instance.setItemSelection({
|
|
146
|
-
event,
|
|
147
|
-
itemId,
|
|
148
|
-
keepExistingSelection: true
|
|
149
|
-
});
|
|
150
|
-
} else if (!_useTreeViewSelection.selectionSelectors.isItemSelected(store.state, itemId)) {
|
|
151
|
-
instance.setItemSelection({
|
|
152
|
-
event,
|
|
153
|
-
itemId
|
|
154
|
-
});
|
|
155
|
-
event.preventDefault();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Focus the next focusable item
|
|
162
|
-
case key === 'ArrowDown':
|
|
163
|
-
{
|
|
164
|
-
const nextItem = (0, _tree.getNextNavigableItem)(store.state, itemId);
|
|
165
|
-
if (nextItem) {
|
|
166
|
-
event.preventDefault();
|
|
167
|
-
instance.focusItem(event, nextItem);
|
|
168
|
-
|
|
169
|
-
// Multi select behavior when pressing Shift + ArrowDown
|
|
170
|
-
// Toggles the selection state of the next item
|
|
171
|
-
if (isMultiSelectEnabled && event.shiftKey && canToggleItemSelection(nextItem)) {
|
|
172
|
-
instance.selectItemFromArrowNavigation(event, itemId, nextItem);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Focuses the previous focusable item
|
|
179
|
-
case key === 'ArrowUp':
|
|
180
|
-
{
|
|
181
|
-
const previousItem = (0, _tree.getPreviousNavigableItem)(store.state, itemId);
|
|
182
|
-
if (previousItem) {
|
|
183
|
-
event.preventDefault();
|
|
184
|
-
instance.focusItem(event, previousItem);
|
|
185
|
-
|
|
186
|
-
// Multi select behavior when pressing Shift + ArrowUp
|
|
187
|
-
// Toggles the selection state of the previous item
|
|
188
|
-
if (isMultiSelectEnabled && event.shiftKey && canToggleItemSelection(previousItem)) {
|
|
189
|
-
instance.selectItemFromArrowNavigation(event, itemId, previousItem);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
break;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// If the focused item is expanded, we move the focus to its first child
|
|
196
|
-
// If the focused item is collapsed and has children, we expand it
|
|
197
|
-
case key === 'ArrowRight' && !isRtl || key === 'ArrowLeft' && isRtl:
|
|
198
|
-
{
|
|
199
|
-
if (ctrlPressed) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
if (_useTreeViewExpansion.expansionSelectors.isItemExpanded(store.state, itemId)) {
|
|
203
|
-
const nextItemId = (0, _tree.getNextNavigableItem)(store.state, itemId);
|
|
204
|
-
if (nextItemId) {
|
|
205
|
-
instance.focusItem(event, nextItemId);
|
|
206
|
-
event.preventDefault();
|
|
207
|
-
}
|
|
208
|
-
} else if (canToggleItemExpansion(itemId)) {
|
|
209
|
-
instance.setItemExpansion({
|
|
210
|
-
event,
|
|
211
|
-
itemId
|
|
212
|
-
});
|
|
213
|
-
event.preventDefault();
|
|
214
|
-
}
|
|
215
|
-
break;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
// If the focused item is expanded, we collapse it
|
|
219
|
-
// If the focused item is collapsed and has a parent, we move the focus to this parent
|
|
220
|
-
case key === 'ArrowLeft' && !isRtl || key === 'ArrowRight' && isRtl:
|
|
221
|
-
{
|
|
222
|
-
if (ctrlPressed) {
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
if (canToggleItemExpansion(itemId) && _useTreeViewExpansion.expansionSelectors.isItemExpanded(store.state, itemId)) {
|
|
226
|
-
instance.setItemExpansion({
|
|
227
|
-
event,
|
|
228
|
-
itemId
|
|
229
|
-
});
|
|
230
|
-
event.preventDefault();
|
|
231
|
-
} else {
|
|
232
|
-
const parent = _useTreeViewItems.itemsSelectors.itemParentId(store.state, itemId);
|
|
233
|
-
if (parent) {
|
|
234
|
-
instance.focusItem(event, parent);
|
|
235
|
-
event.preventDefault();
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// Focuses the first item in the tree
|
|
242
|
-
case key === 'Home':
|
|
243
|
-
{
|
|
244
|
-
// Multi select behavior when pressing Ctrl + Shift + Home
|
|
245
|
-
// Selects the focused item and all items up to the first item.
|
|
246
|
-
if (canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
|
|
247
|
-
instance.selectRangeFromStartToItem(event, itemId);
|
|
248
|
-
} else {
|
|
249
|
-
instance.focusItem(event, (0, _tree.getFirstNavigableItem)(store.state));
|
|
250
|
-
}
|
|
251
|
-
event.preventDefault();
|
|
252
|
-
break;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// Focuses the last item in the tree
|
|
256
|
-
case key === 'End':
|
|
257
|
-
{
|
|
258
|
-
// Multi select behavior when pressing Ctrl + Shirt + End
|
|
259
|
-
// Selects the focused item and all the items down to the last item.
|
|
260
|
-
if (canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
|
|
261
|
-
instance.selectRangeFromItemToEnd(event, itemId);
|
|
262
|
-
} else {
|
|
263
|
-
instance.focusItem(event, (0, _tree.getLastNavigableItem)(store.state));
|
|
264
|
-
}
|
|
265
|
-
event.preventDefault();
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// Expand all siblings that are at the same level as the focused item
|
|
270
|
-
case key === '*':
|
|
271
|
-
{
|
|
272
|
-
instance.expandAllSiblings(event, itemId);
|
|
273
|
-
event.preventDefault();
|
|
274
|
-
break;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// Multi select behavior when pressing Ctrl + a
|
|
278
|
-
// Selects all the items
|
|
279
|
-
case String.fromCharCode(event.keyCode) === 'A' && ctrlPressed && isMultiSelectEnabled && _useTreeViewSelection.selectionSelectors.enabled(store.state):
|
|
280
|
-
{
|
|
281
|
-
instance.selectAllNavigableItems(event);
|
|
282
|
-
event.preventDefault();
|
|
283
|
-
break;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
// Type-ahead
|
|
287
|
-
case !ctrlPressed && !event.shiftKey && isPrintableKey(key):
|
|
288
|
-
{
|
|
289
|
-
typeaheadTimeout.clear();
|
|
290
|
-
const matchingItem = getFirstMatchingItem(itemId, key);
|
|
291
|
-
if (matchingItem != null) {
|
|
292
|
-
instance.focusItem(event, matchingItem);
|
|
293
|
-
event.preventDefault();
|
|
294
|
-
} else {
|
|
295
|
-
typeaheadQueryRef.current = '';
|
|
296
|
-
}
|
|
297
|
-
typeaheadTimeout.start(TYPEAHEAD_TIMEOUT, () => {
|
|
298
|
-
typeaheadQueryRef.current = '';
|
|
299
|
-
});
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
};
|
|
304
|
-
return {
|
|
305
|
-
instance: {
|
|
306
|
-
updateLabelMap,
|
|
307
|
-
handleItemKeyDown
|
|
308
|
-
}
|
|
309
|
-
};
|
|
310
|
-
};
|
|
311
|
-
exports.useTreeViewKeyboardNavigation = useTreeViewKeyboardNavigation;
|
|
312
|
-
useTreeViewKeyboardNavigation.params = {};
|
package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { TreeViewPluginSignature } from "../../models/index.js";
|
|
3
|
-
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
4
|
-
import { UseTreeViewSelectionSignature } from "../useTreeViewSelection/index.js";
|
|
5
|
-
import { UseTreeViewFocusSignature } from "../useTreeViewFocus/index.js";
|
|
6
|
-
import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
|
|
7
|
-
import { UseTreeViewLabelSignature } from "../useTreeViewLabel/index.js";
|
|
8
|
-
import { TreeViewItemId, TreeViewCancellableEvent } from "../../../models/index.js";
|
|
9
|
-
export interface UseTreeViewKeyboardNavigationInstance {
|
|
10
|
-
/**
|
|
11
|
-
* Updates the `labelMap` to add/remove the first character of some item's labels.
|
|
12
|
-
* This map is used to navigate the tree using type-ahead search.
|
|
13
|
-
* This method is only used by the `useTreeViewJSXItems` plugin, otherwise the updates are handled internally.
|
|
14
|
-
* @param {(map: TreeViewLabelMap) => TreeViewLabelMap} updater The function to update the map.
|
|
15
|
-
*/
|
|
16
|
-
updateLabelMap: (updater: (map: TreeViewLabelMap) => TreeViewLabelMap) => void;
|
|
17
|
-
/**
|
|
18
|
-
* Callback fired when a key is pressed on an item.
|
|
19
|
-
* Handles all the keyboard navigation logic.
|
|
20
|
-
* @param {React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent} event The keyboard event that triggered the callback.
|
|
21
|
-
* @param {TreeViewItemId} itemId The id of the item that the event was triggered on.
|
|
22
|
-
*/
|
|
23
|
-
handleItemKeyDown: (event: React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent, itemId: TreeViewItemId) => void;
|
|
24
|
-
}
|
|
25
|
-
export type UseTreeViewKeyboardNavigationSignature = TreeViewPluginSignature<{
|
|
26
|
-
instance: UseTreeViewKeyboardNavigationInstance;
|
|
27
|
-
dependencies: [UseTreeViewItemsSignature, UseTreeViewSelectionSignature, UseTreeViewFocusSignature, UseTreeViewExpansionSignature];
|
|
28
|
-
optionalDependencies: [UseTreeViewLabelSignature];
|
|
29
|
-
}>;
|
|
30
|
-
export type TreeViewLabelMap = {
|
|
31
|
-
[itemId: string]: string;
|
|
32
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "labelSelectors", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _useTreeViewLabel2.labelSelectors;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "useTreeViewLabel", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _useTreeViewLabel.useTreeViewLabel;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
var _useTreeViewLabel = require("./useTreeViewLabel");
|
|
19
|
-
var _useTreeViewLabel2 = require("./useTreeViewLabel.selectors");
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.useTreeViewLabel = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect");
|
|
10
|
-
var _itemPlugin = require("./itemPlugin");
|
|
11
|
-
var _useTreeViewLabel = require("./useTreeViewLabel.selectors");
|
|
12
|
-
const useTreeViewLabel = ({
|
|
13
|
-
store,
|
|
14
|
-
params
|
|
15
|
-
}) => {
|
|
16
|
-
const setEditedItem = editedItemId => {
|
|
17
|
-
if (editedItemId !== null) {
|
|
18
|
-
const isEditable = _useTreeViewLabel.labelSelectors.isItemEditable(store.state, editedItemId);
|
|
19
|
-
if (!isEditable) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
store.set('label', (0, _extends2.default)({}, store.state.label, {
|
|
24
|
-
editedItemId
|
|
25
|
-
}));
|
|
26
|
-
};
|
|
27
|
-
const updateItemLabel = (itemId, label) => {
|
|
28
|
-
if (!label) {
|
|
29
|
-
throw new Error(['MUI X: The Tree View component requires all items to have a `label` property.', 'The label of an item cannot be empty.', itemId].join('\n'));
|
|
30
|
-
}
|
|
31
|
-
const item = store.state.items.itemMetaLookup[itemId];
|
|
32
|
-
if (item.label === label) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
store.set('items', (0, _extends2.default)({}, store.state.items, {
|
|
36
|
-
itemMetaLookup: (0, _extends2.default)({}, store.state.items.itemMetaLookup, {
|
|
37
|
-
[itemId]: (0, _extends2.default)({}, item, {
|
|
38
|
-
label
|
|
39
|
-
})
|
|
40
|
-
})
|
|
41
|
-
}));
|
|
42
|
-
if (params.onItemLabelChange) {
|
|
43
|
-
params.onItemLabelChange(itemId, label);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
47
|
-
store.set('label', (0, _extends2.default)({}, store.state.label, {
|
|
48
|
-
isItemEditable: params.isItemEditable
|
|
49
|
-
}));
|
|
50
|
-
}, [store, params.isItemEditable]);
|
|
51
|
-
return {
|
|
52
|
-
instance: {
|
|
53
|
-
setEditedItem,
|
|
54
|
-
updateItemLabel
|
|
55
|
-
},
|
|
56
|
-
publicAPI: {
|
|
57
|
-
setEditedItem,
|
|
58
|
-
updateItemLabel
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
exports.useTreeViewLabel = useTreeViewLabel;
|
|
63
|
-
useTreeViewLabel.itemPlugin = _itemPlugin.useTreeViewLabelItemPlugin;
|
|
64
|
-
useTreeViewLabel.applyDefaultValuesToParams = ({
|
|
65
|
-
params
|
|
66
|
-
}) => (0, _extends2.default)({}, params, {
|
|
67
|
-
isItemEditable: params.isItemEditable ?? false
|
|
68
|
-
});
|
|
69
|
-
useTreeViewLabel.getInitialState = params => ({
|
|
70
|
-
label: {
|
|
71
|
-
isItemEditable: params.isItemEditable,
|
|
72
|
-
editedItemId: null
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
useTreeViewLabel.params = {
|
|
76
|
-
onItemLabelChange: true,
|
|
77
|
-
isItemEditable: true
|
|
78
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { UseTreeViewLabelSignature } from "./useTreeViewLabel.types.js";
|
|
2
|
-
import { TreeViewState } from "../../models/index.js";
|
|
3
|
-
export declare const labelSelectors: {
|
|
4
|
-
/**
|
|
5
|
-
* Checks whether an item is editable.
|
|
6
|
-
*/
|
|
7
|
-
isItemEditable: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("../useTreeViewItems/index.js").UseTreeViewItemsState<import("../../../index.js").TreeViewDefaultItemModelProperties> & Partial<{}>, _itemId: string) => boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Checks whether an item is being edited.
|
|
10
|
-
*/
|
|
11
|
-
isItemBeingEdited: (state: TreeViewState<[], [UseTreeViewLabelSignature]>, itemId: string | null) => boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Checks whether any item is being edited.
|
|
14
|
-
*/
|
|
15
|
-
isAnyItemBeingEdited: (state: TreeViewState<[], [UseTreeViewLabelSignature]>) => boolean;
|
|
16
|
-
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
2
|
-
import { TreeViewPluginSignature } from "../../models/index.js";
|
|
3
|
-
import { TreeViewItemId } from "../../../models/index.js";
|
|
4
|
-
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
5
|
-
export interface UseTreeViewLabelPublicAPI {
|
|
6
|
-
/**
|
|
7
|
-
* Used to update the label of an item.
|
|
8
|
-
* @param {TreeViewItemId} itemId The id of the item to update the label of.
|
|
9
|
-
* @param {string} newLabel The new label of the item.
|
|
10
|
-
*/
|
|
11
|
-
updateItemLabel: (itemId: TreeViewItemId, newLabel: string) => void;
|
|
12
|
-
/**
|
|
13
|
-
* Set which item is currently being edited.
|
|
14
|
-
* You can pass `null` to exit editing mode.
|
|
15
|
-
* @param {TreeViewItemId | null} itemId The id of the item to edit, or `null` to exit editing mode.
|
|
16
|
-
*/
|
|
17
|
-
setEditedItem: (itemId: TreeViewItemId | null) => void;
|
|
18
|
-
}
|
|
19
|
-
export interface UseTreeViewLabelInstance extends UseTreeViewLabelPublicAPI {}
|
|
20
|
-
export interface UseTreeViewLabelParameters<R extends {}> {
|
|
21
|
-
/**
|
|
22
|
-
* Callback fired when the label of an item changes.
|
|
23
|
-
* @param {TreeViewItemId} itemId The id of the item that was edited.
|
|
24
|
-
* @param {string} newLabel The new label of the items.
|
|
25
|
-
*/
|
|
26
|
-
onItemLabelChange?: (itemId: TreeViewItemId, newLabel: string) => void;
|
|
27
|
-
/**
|
|
28
|
-
* Determine if a given item can be edited.
|
|
29
|
-
* @template R
|
|
30
|
-
* @param {R} item The item to check.
|
|
31
|
-
* @returns {boolean} `true` if the item can be edited.
|
|
32
|
-
* @default () => false
|
|
33
|
-
*/
|
|
34
|
-
isItemEditable?: boolean | ((item: R) => boolean);
|
|
35
|
-
}
|
|
36
|
-
export type UseTreeViewLabelParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
|
|
37
|
-
export interface UseTreeViewLabelState {
|
|
38
|
-
label: {
|
|
39
|
-
isItemEditable: ((item: any) => boolean) | boolean;
|
|
40
|
-
editedItemId: TreeViewItemId | null;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
|
|
44
|
-
params: UseTreeViewLabelParameters<any>;
|
|
45
|
-
paramsWithDefaults: UseTreeViewLabelParametersWithDefaults<any>;
|
|
46
|
-
publicAPI: UseTreeViewLabelPublicAPI;
|
|
47
|
-
instance: UseTreeViewLabelInstance;
|
|
48
|
-
state: UseTreeViewLabelState;
|
|
49
|
-
dependencies: [UseTreeViewItemsSignature];
|
|
50
|
-
}>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "lazyLoadingSelectors", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _useTreeViewLazyLoading.lazyLoadingSelectors;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
var _useTreeViewLazyLoading = require("./useTreeViewLazyLoading.selectors");
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { TreeViewItemId } from "../../../models/index.js";
|
|
2
|
-
import { UseTreeViewLazyLoadingSignature } from "./useTreeViewLazyLoading.types.js";
|
|
3
|
-
import { TreeViewState } from "../../models/index.js";
|
|
4
|
-
export declare const lazyLoadingSelectors: {
|
|
5
|
-
/**
|
|
6
|
-
* Gets the data source used to lazy load items.
|
|
7
|
-
*/
|
|
8
|
-
dataSource: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>) => {
|
|
9
|
-
loading: Record<TreeViewItemId, boolean>;
|
|
10
|
-
errors: Record<TreeViewItemId, Error | null>;
|
|
11
|
-
} | undefined;
|
|
12
|
-
/**
|
|
13
|
-
* Checks whether an item is loading.
|
|
14
|
-
*/
|
|
15
|
-
isItemLoading: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>, itemId: string | null) => boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Checks whether an item has errors.
|
|
18
|
-
*/
|
|
19
|
-
itemHasError: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>, itemId: string | null) => boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Get an item error.
|
|
22
|
-
*/
|
|
23
|
-
itemError: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>, itemId: string | null) => Error | null | undefined;
|
|
24
|
-
};
|
|
@@ -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
|
-
}>;
|