@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,272 @@
|
|
|
1
|
+
import { TreeViewItemId, TreeViewSelectionPropagation, TreeViewValidItem } from "../../models/index.js";
|
|
2
|
+
import { TreeViewItemMeta } from "../models/index.js";
|
|
3
|
+
export interface MinimalTreeViewState<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the button should be focusable when disabled.
|
|
6
|
+
* Always equal to `props.disabledItemsFocusable` (or `false` if not provided).
|
|
7
|
+
*/
|
|
8
|
+
disabledItemsFocusable: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Model of each item as provided by `props.items` or by imperative items updates.
|
|
11
|
+
* It is not updated when properties derived from the model are updated:
|
|
12
|
+
* - when the label of an item is updated, `itemMetaLookup` is updated, not `itemModelLookup`.
|
|
13
|
+
* - when the children of an item are updated, `itemOrderedChildrenIdsLookup` and `itemChildrenIndexesLookup` are updated, not `itemModelLookup`.
|
|
14
|
+
* This means that the `children`, `label` or `id` properties of an item model should never be used directly, always use the structured sub-states instead.
|
|
15
|
+
*/
|
|
16
|
+
itemModelLookup: {
|
|
17
|
+
[itemId: string]: R;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Meta data of each item.
|
|
21
|
+
*/
|
|
22
|
+
itemMetaLookup: {
|
|
23
|
+
[itemId: string]: TreeViewItemMeta;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Ordered children ids of each item.
|
|
27
|
+
*/
|
|
28
|
+
itemOrderedChildrenIdsLookup: {
|
|
29
|
+
[parentItemId: string]: TreeViewItemId[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Index of each child in the ordered children ids of its parent.
|
|
33
|
+
*/
|
|
34
|
+
itemChildrenIndexesLookup: {
|
|
35
|
+
[parentItemId: string]: {
|
|
36
|
+
[itemId: string]: number;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* When equal to 'flat', the tree is rendered as a flat list (children are rendered as siblings of their parents).
|
|
41
|
+
* When equal to 'nested', the tree is rendered with nested children (children are rendered inside the groupTransition slot of their children).
|
|
42
|
+
* Nested DOM structure is not compatible with collapse / expansion animations.
|
|
43
|
+
*/
|
|
44
|
+
domStructure: 'flat' | 'nested';
|
|
45
|
+
/**
|
|
46
|
+
* Horizontal indentation between an item and its children.
|
|
47
|
+
* Examples: 24, "24px", "2rem", "2em".
|
|
48
|
+
*/
|
|
49
|
+
itemChildrenIndentation: string | number;
|
|
50
|
+
/**
|
|
51
|
+
* The id of the Tree View as provided by the `id` parameter.
|
|
52
|
+
*/
|
|
53
|
+
providedTreeId: string | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* The id of the Tree View used for accessibility attributes.
|
|
56
|
+
*/
|
|
57
|
+
treeId: string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* The ids of the items currently expanded.
|
|
60
|
+
*/
|
|
61
|
+
expandedItems: readonly TreeViewItemId[];
|
|
62
|
+
/**
|
|
63
|
+
* The slot that triggers the item's expansion when clicked.
|
|
64
|
+
*/
|
|
65
|
+
expansionTrigger: 'content' | 'iconContainer';
|
|
66
|
+
/**
|
|
67
|
+
* The ids of the items currently selected.
|
|
68
|
+
*/
|
|
69
|
+
selectedItems: TreeViewSelectionReadonlyValue<Multiple>;
|
|
70
|
+
/**
|
|
71
|
+
* Whether selection is disabled.
|
|
72
|
+
*/
|
|
73
|
+
disableSelection: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Whether multi-selection is enabled.
|
|
76
|
+
*/
|
|
77
|
+
multiSelect: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Whether the Tree View renders a checkbox at the left of its label that allows selecting it.
|
|
80
|
+
*/
|
|
81
|
+
checkboxSelection: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* The selection propagation behavior.
|
|
84
|
+
*/
|
|
85
|
+
selectionPropagation: TreeViewSelectionPropagation;
|
|
86
|
+
/**
|
|
87
|
+
* The id of the currently focused item.
|
|
88
|
+
*/
|
|
89
|
+
focusedItemId: TreeViewItemId | null;
|
|
90
|
+
}
|
|
91
|
+
export interface MinimalTreeViewParameters<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> {
|
|
92
|
+
/**
|
|
93
|
+
* Whether the layout is right-to-left.
|
|
94
|
+
*/
|
|
95
|
+
isRtl: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Whether the items should be focusable when disabled.
|
|
98
|
+
* @default false
|
|
99
|
+
*/
|
|
100
|
+
disabledItemsFocusable?: boolean;
|
|
101
|
+
items: readonly R[];
|
|
102
|
+
/**
|
|
103
|
+
* Used to determine if a given item should be disabled.
|
|
104
|
+
* @template R
|
|
105
|
+
* @param {R} item The item to check.
|
|
106
|
+
* @returns {boolean} `true` if the item should be disabled.
|
|
107
|
+
*/
|
|
108
|
+
isItemDisabled?: (item: R) => boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Used to determine if a given item should have selection disabled.
|
|
111
|
+
* @template R
|
|
112
|
+
* @param {R} item The item to check.
|
|
113
|
+
* @returns {boolean} `true` if the item should have selection disabled.
|
|
114
|
+
*/
|
|
115
|
+
isItemSelectionDisabled?: (item: R) => boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Used to determine the string label for a given item.
|
|
118
|
+
*
|
|
119
|
+
* @template R
|
|
120
|
+
* @param {R} item The item to check.
|
|
121
|
+
* @returns {string} The label of the item.
|
|
122
|
+
* @default (item) => item.label
|
|
123
|
+
*/
|
|
124
|
+
getItemLabel?: (item: R) => string;
|
|
125
|
+
/**
|
|
126
|
+
* Used to determine the children of a given item.
|
|
127
|
+
*
|
|
128
|
+
* @template R
|
|
129
|
+
* @param {R} item The item to check.
|
|
130
|
+
* @returns {R[]} The children of the item.
|
|
131
|
+
* @default (item) => item.children
|
|
132
|
+
*/
|
|
133
|
+
getItemChildren?: (item: R) => R[] | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Used to determine the id of a given item.
|
|
136
|
+
*
|
|
137
|
+
* @template R
|
|
138
|
+
* @param {R} item The item to check.
|
|
139
|
+
* @returns {TreeViewItemId} The id of the item.
|
|
140
|
+
* @default (item) => item.id
|
|
141
|
+
*/
|
|
142
|
+
getItemId?: (item: R) => TreeViewItemId;
|
|
143
|
+
/**
|
|
144
|
+
* Callback fired when the `content` slot of a given Tree Item is clicked.
|
|
145
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
146
|
+
* @param {TreeViewItemId} itemId The id of the focused item.
|
|
147
|
+
*/
|
|
148
|
+
onItemClick?: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
|
|
149
|
+
/**
|
|
150
|
+
* Horizontal indentation between an item and its children.
|
|
151
|
+
* Examples: 24, "24px", "2rem", "2em".
|
|
152
|
+
* @default 12px
|
|
153
|
+
*/
|
|
154
|
+
itemChildrenIndentation?: string | number;
|
|
155
|
+
/**
|
|
156
|
+
* This prop is used to help implement the accessibility logic.
|
|
157
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
158
|
+
*/
|
|
159
|
+
id?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Expanded item ids.
|
|
162
|
+
* Used when the item's expansion is controlled.
|
|
163
|
+
*/
|
|
164
|
+
expandedItems?: readonly TreeViewItemId[];
|
|
165
|
+
/**
|
|
166
|
+
* Expanded item ids.
|
|
167
|
+
* Used when the item's expansion is not controlled.
|
|
168
|
+
* @default []
|
|
169
|
+
*/
|
|
170
|
+
defaultExpandedItems?: readonly TreeViewItemId[];
|
|
171
|
+
/**
|
|
172
|
+
* Callback fired when Tree Items are expanded/collapsed.
|
|
173
|
+
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemExpansion()` method.
|
|
174
|
+
* @param {TreeViewItemId[]} itemIds The ids of the expanded items.
|
|
175
|
+
*/
|
|
176
|
+
onExpandedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewItemId[]) => void;
|
|
177
|
+
/**
|
|
178
|
+
* Callback fired when a Tree Item is expanded or collapsed.
|
|
179
|
+
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemExpansion()` method.
|
|
180
|
+
* @param {TreeViewItemId} itemId The itemId of the modified item.
|
|
181
|
+
* @param {boolean} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.
|
|
182
|
+
*/
|
|
183
|
+
onItemExpansionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isExpanded: boolean) => void;
|
|
184
|
+
/**
|
|
185
|
+
* The slot that triggers the item's expansion when clicked.
|
|
186
|
+
* @default 'content'
|
|
187
|
+
*/
|
|
188
|
+
expansionTrigger?: 'content' | 'iconContainer';
|
|
189
|
+
/**
|
|
190
|
+
* Whether selection is disabled.
|
|
191
|
+
* @default false
|
|
192
|
+
*/
|
|
193
|
+
disableSelection?: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Selected item ids. (Controlled)
|
|
196
|
+
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
197
|
+
*/
|
|
198
|
+
selectedItems?: TreeViewSelectionReadonlyValue<Multiple>;
|
|
199
|
+
/**
|
|
200
|
+
* Selected item ids. (Uncontrolled)
|
|
201
|
+
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
202
|
+
* @default []
|
|
203
|
+
*/
|
|
204
|
+
defaultSelectedItems?: TreeViewSelectionReadonlyValue<Multiple>;
|
|
205
|
+
/**
|
|
206
|
+
* Whether multiple items can be selected.
|
|
207
|
+
* @default false
|
|
208
|
+
*/
|
|
209
|
+
multiSelect?: Multiple;
|
|
210
|
+
/**
|
|
211
|
+
* Whether the Tree View renders a checkbox at the left of its label that allows selecting it.
|
|
212
|
+
* @default false
|
|
213
|
+
*/
|
|
214
|
+
checkboxSelection?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* When `selectionPropagation.descendants` is set to `true`.
|
|
217
|
+
*
|
|
218
|
+
* - Selecting a parent selects all its descendants automatically.
|
|
219
|
+
* - Deselecting a parent deselects all its descendants automatically.
|
|
220
|
+
*
|
|
221
|
+
* When `selectionPropagation.parents` is set to `true`.
|
|
222
|
+
*
|
|
223
|
+
* - Selecting all the descendants of a parent selects the parent automatically.
|
|
224
|
+
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
225
|
+
*
|
|
226
|
+
* Only works when `multiSelect` is `true`.
|
|
227
|
+
* On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
|
|
228
|
+
*
|
|
229
|
+
* @default { parents: false, descendants: false }
|
|
230
|
+
*/
|
|
231
|
+
selectionPropagation?: TreeViewSelectionPropagation;
|
|
232
|
+
/**
|
|
233
|
+
* Callback fired when Tree Items are selected/deselected.
|
|
234
|
+
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
|
|
235
|
+
* @param {TreeViewItemId[] | TreeViewItemId} itemIds The ids of the selected items.
|
|
236
|
+
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
237
|
+
*/
|
|
238
|
+
onSelectedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewSelectionValue<Multiple>) => void;
|
|
239
|
+
/**
|
|
240
|
+
* Callback fired when a Tree Item is selected or deselected.
|
|
241
|
+
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
|
|
242
|
+
* @param {TreeViewItemId} itemId The itemId of the modified item.
|
|
243
|
+
* @param {boolean} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
|
|
244
|
+
*/
|
|
245
|
+
onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isSelected: boolean) => void;
|
|
246
|
+
/**
|
|
247
|
+
* Callback fired when a given Tree Item is focused.
|
|
248
|
+
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.
|
|
249
|
+
* @param {TreeViewItemId} itemId The id of the focused item.
|
|
250
|
+
*/
|
|
251
|
+
onItemFocus?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId) => void;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Mapper between a Tree View instance's state and parameters.
|
|
255
|
+
* Used by classes extending `TreeViewStore` to manage the state based on the parameters.
|
|
256
|
+
*/
|
|
257
|
+
export interface TreeViewParametersToStateMapper<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined, State extends MinimalTreeViewState<R, Multiple>, Parameters extends MinimalTreeViewParameters<R, Multiple>> {
|
|
258
|
+
getInitialState: (treeViewInitialState: MinimalTreeViewState<R, Multiple>, parameters: Parameters) => State;
|
|
259
|
+
updateStateFromParameters: (newState: Partial<MinimalTreeViewState<R, Multiple>>, parameters: Parameters, updateModel: TreeViewModelUpdater<State, Parameters>) => Partial<State>;
|
|
260
|
+
shouldIgnoreItemsStateUpdate: (parameters: Parameters) => boolean;
|
|
261
|
+
}
|
|
262
|
+
export type TreeViewModelUpdater<State extends MinimalTreeViewState<any, any>, Parameters extends MinimalTreeViewParameters<any, any>> = (newState: Partial<State>, controlledProp: keyof Parameters & keyof State & string, defaultProp: keyof Parameters) => void;
|
|
263
|
+
export type TreeViewSelectionReadonlyValue<Multiple extends boolean | undefined> = Multiple extends true ? Multiple extends false ?
|
|
264
|
+
// Multiple === boolean, the type cannot be simplified further
|
|
265
|
+
TreeViewItemId | null | readonly TreeViewItemId[] : readonly TreeViewItemId[] :
|
|
266
|
+
// Multiple === false | undefined, the selection is single
|
|
267
|
+
TreeViewItemId | null;
|
|
268
|
+
export type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ? Multiple extends false ?
|
|
269
|
+
// Multiple === boolean, the type cannot be simplified further
|
|
270
|
+
TreeViewItemId | null | TreeViewItemId[] : TreeViewItemId[] :
|
|
271
|
+
// Multiple === false | undefined, the selection is single
|
|
272
|
+
TreeViewItemId | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TreeViewValidItem } from "../../models/index.js";
|
|
2
|
+
import { MinimalTreeViewParameters, MinimalTreeViewState } from "./MinimalTreeViewStore.types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Returns the properties of the state that are derived from the parameters.
|
|
5
|
+
* This do not contain state properties that don't update whenever the parameters update.
|
|
6
|
+
*/
|
|
7
|
+
export declare function deriveStateFromParameters<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined>(parameters: MinimalTreeViewParameters<R, Multiple> & {
|
|
8
|
+
isItemEditable?: any;
|
|
9
|
+
}): {
|
|
10
|
+
disabledItemsFocusable: boolean;
|
|
11
|
+
domStructure: "nested";
|
|
12
|
+
itemChildrenIndentation: string | number;
|
|
13
|
+
providedTreeId: string | undefined;
|
|
14
|
+
expansionTrigger: "content" | "iconContainer";
|
|
15
|
+
disableSelection: boolean;
|
|
16
|
+
multiSelect: boolean | NonNullable<Multiple>;
|
|
17
|
+
checkboxSelection: boolean;
|
|
18
|
+
selectionPropagation: Readonly<{}>;
|
|
19
|
+
};
|
|
20
|
+
export declare function createMinimalInitialState<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined>(parameters: MinimalTreeViewParameters<R, Multiple>): MinimalTreeViewState<R, Multiple>;
|
|
21
|
+
export declare const createTreeViewDefaultId: () => string;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import { EMPTY_ARRAY, EMPTY_OBJECT } from '@base-ui/utils/empty';
|
|
3
|
+
import { getExpansionTrigger } from "../plugins/expansion/utils.js";
|
|
4
|
+
import { TreeViewItemsPlugin } from "../plugins/items/index.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Returns the properties of the state that are derived from the parameters.
|
|
8
|
+
* This do not contain state properties that don't update whenever the parameters update.
|
|
9
|
+
*/
|
|
10
|
+
export function deriveStateFromParameters(parameters) {
|
|
11
|
+
return {
|
|
12
|
+
disabledItemsFocusable: parameters.disabledItemsFocusable ?? false,
|
|
13
|
+
domStructure: 'nested',
|
|
14
|
+
itemChildrenIndentation: parameters.itemChildrenIndentation ?? '12px',
|
|
15
|
+
providedTreeId: parameters.id,
|
|
16
|
+
// TODO: Fix
|
|
17
|
+
expansionTrigger: getExpansionTrigger({
|
|
18
|
+
isItemEditable: parameters.isItemEditable,
|
|
19
|
+
expansionTrigger: parameters.expansionTrigger
|
|
20
|
+
}),
|
|
21
|
+
disableSelection: parameters.disableSelection ?? false,
|
|
22
|
+
multiSelect: parameters.multiSelect ?? false,
|
|
23
|
+
checkboxSelection: parameters.checkboxSelection ?? false,
|
|
24
|
+
selectionPropagation: parameters.selectionPropagation ?? EMPTY_OBJECT
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function applyModelInitialValue(controlledValue, defaultValue, fallback) {
|
|
28
|
+
if (controlledValue !== undefined) {
|
|
29
|
+
return controlledValue;
|
|
30
|
+
}
|
|
31
|
+
if (defaultValue !== undefined) {
|
|
32
|
+
return defaultValue;
|
|
33
|
+
}
|
|
34
|
+
return fallback;
|
|
35
|
+
}
|
|
36
|
+
export function createMinimalInitialState(parameters) {
|
|
37
|
+
return _extends({
|
|
38
|
+
treeId: undefined,
|
|
39
|
+
focusedItemId: null
|
|
40
|
+
}, deriveStateFromParameters(parameters), TreeViewItemsPlugin.buildItemsStateIfNeeded(parameters), {
|
|
41
|
+
expandedItems: applyModelInitialValue(parameters.expandedItems, parameters.defaultExpandedItems, []),
|
|
42
|
+
selectedItems: applyModelInitialValue(parameters.selectedItems, parameters.defaultSelectedItems, parameters.multiSelect ? EMPTY_ARRAY : null)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
let globalTreeViewDefaultId = 0;
|
|
46
|
+
export const createTreeViewDefaultId = () => {
|
|
47
|
+
globalTreeViewDefaultId += 1;
|
|
48
|
+
return `mui-tree-view-${globalTreeViewDefaultId}`;
|
|
49
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class TimeoutManager {
|
|
2
|
+
private timeoutIds;
|
|
3
|
+
private intervalIds;
|
|
4
|
+
startTimeout: (key: string, delay: number, fn: Function) => void;
|
|
5
|
+
startInterval: (key: string, delay: number, fn: Function) => void;
|
|
6
|
+
clearTimeout: (key: string) => void;
|
|
7
|
+
clearInterval: (key: string) => void;
|
|
8
|
+
clearAll: () => void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export class TimeoutManager {
|
|
2
|
+
timeoutIds = (() => new Map())();
|
|
3
|
+
intervalIds = (() => new Map())();
|
|
4
|
+
startTimeout = (key, delay, fn) => {
|
|
5
|
+
this.clearTimeout(key);
|
|
6
|
+
const id = setTimeout(() => {
|
|
7
|
+
this.timeoutIds.delete(key);
|
|
8
|
+
fn();
|
|
9
|
+
}, delay); /* Node.js types are enabled in development */
|
|
10
|
+
|
|
11
|
+
this.timeoutIds.set(key, id);
|
|
12
|
+
};
|
|
13
|
+
startInterval = (key, delay, fn) => {
|
|
14
|
+
this.clearTimeout(key);
|
|
15
|
+
const id = setInterval(fn, delay); /* Node.js types are enabled in development */
|
|
16
|
+
|
|
17
|
+
this.intervalIds.set(key, id);
|
|
18
|
+
};
|
|
19
|
+
clearTimeout = key => {
|
|
20
|
+
const id = this.timeoutIds.get(key);
|
|
21
|
+
if (id != null) {
|
|
22
|
+
clearTimeout(id);
|
|
23
|
+
this.timeoutIds.delete(key);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
clearInterval = key => {
|
|
27
|
+
const id = this.intervalIds.get(key);
|
|
28
|
+
if (id != null) {
|
|
29
|
+
clearInterval(id);
|
|
30
|
+
this.intervalIds.delete(key);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
clearAll = () => {
|
|
34
|
+
this.timeoutIds.forEach(clearTimeout);
|
|
35
|
+
this.timeoutIds.clear();
|
|
36
|
+
this.intervalIds.forEach(clearInterval);
|
|
37
|
+
this.intervalIds.clear();
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TreeItemWrapper, TreeViewAnyStore, TreeViewItemPlugin } from "../models/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Manages the registration and application of plugins for the Tree Item.
|
|
4
|
+
* This will be replaced with a proper implementation in the future.
|
|
5
|
+
*/
|
|
6
|
+
export declare class TreeViewItemPluginManager<TStore extends TreeViewAnyStore> {
|
|
7
|
+
private itemPlugins;
|
|
8
|
+
private itemWrappers;
|
|
9
|
+
register: (plugin: TreeViewItemPlugin, wrapItem: TreeItemWrapper<TStore> | null) => void;
|
|
10
|
+
listPlugins: () => TreeViewItemPlugin[];
|
|
11
|
+
listWrappers: () => TreeItemWrapper<TStore>[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages the registration and application of plugins for the Tree Item.
|
|
3
|
+
* This will be replaced with a proper implementation in the future.
|
|
4
|
+
*/
|
|
5
|
+
export class TreeViewItemPluginManager {
|
|
6
|
+
itemPlugins = [];
|
|
7
|
+
itemWrappers = [];
|
|
8
|
+
register = (plugin, wrapItem) => {
|
|
9
|
+
this.itemPlugins.push(plugin);
|
|
10
|
+
if (wrapItem) {
|
|
11
|
+
this.itemWrappers.push(wrapItem);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
listPlugins = () => this.itemPlugins;
|
|
15
|
+
listWrappers = () => this.itemWrappers;
|
|
16
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { TreeViewValidItem } from "../../models/index.js";
|
|
2
|
+
import { TreeViewLabelEditingPlugin } from "../plugins/labelEditing/index.js";
|
|
3
|
+
import { MinimalTreeViewStore } from "../MinimalTreeViewStore/index.js";
|
|
4
|
+
import { RichTreeViewStoreParameters, RichTreeViewState } from "./RichTreeViewStore.types.js";
|
|
5
|
+
export declare class ExtendableRichTreeViewStore<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined, State extends RichTreeViewState<R, Multiple> = RichTreeViewState<R, Multiple>, Parameters extends RichTreeViewStoreParameters<R, Multiple> = RichTreeViewStoreParameters<R, Multiple>> extends MinimalTreeViewStore<R, Multiple, State, Parameters> {
|
|
6
|
+
labelEditing: TreeViewLabelEditingPlugin;
|
|
7
|
+
/**
|
|
8
|
+
* Mapper of the RichTreeViewStore.
|
|
9
|
+
* Can be used by classes extending the RichTreeViewStore to create their own mapper.
|
|
10
|
+
*/
|
|
11
|
+
static rawMapper: import("../index.js").TreeViewParametersToStateMapper<any, any, RichTreeViewState<any, any>, RichTreeViewStoreParameters<any, any>>;
|
|
12
|
+
buildPublicAPI(): {
|
|
13
|
+
setEditedItem: (itemId: import("../../index.js").TreeViewItemId | null) => void;
|
|
14
|
+
updateItemLabel: (itemId: import("../../index.js").TreeViewItemId, label: string) => void;
|
|
15
|
+
setItemSelection: ({
|
|
16
|
+
itemId,
|
|
17
|
+
event,
|
|
18
|
+
keepExistingSelection,
|
|
19
|
+
shouldBeSelected
|
|
20
|
+
}: {
|
|
21
|
+
itemId: string;
|
|
22
|
+
event?: React.SyntheticEvent | null;
|
|
23
|
+
shouldBeSelected?: boolean;
|
|
24
|
+
keepExistingSelection?: boolean;
|
|
25
|
+
}) => void;
|
|
26
|
+
isItemExpanded: (itemId: import("../../index.js").TreeViewItemId) => boolean;
|
|
27
|
+
setItemExpansion: ({
|
|
28
|
+
itemId,
|
|
29
|
+
event,
|
|
30
|
+
shouldBeExpanded
|
|
31
|
+
}: {
|
|
32
|
+
itemId: import("../../index.js").TreeViewItemId;
|
|
33
|
+
event?: React.SyntheticEvent | null;
|
|
34
|
+
shouldBeExpanded?: boolean;
|
|
35
|
+
}) => void;
|
|
36
|
+
focusItem: (event: React.SyntheticEvent | null, itemId: import("../../index.js").TreeViewItemId) => void;
|
|
37
|
+
getItem: (itemId: import("../../index.js").TreeViewItemId) => R;
|
|
38
|
+
getItemDOMElement: (itemId: import("../../index.js").TreeViewItemId) => HTMLElement | null;
|
|
39
|
+
getItemOrderedChildrenIds: (itemId: import("../../index.js").TreeViewItemId | null) => import("../../index.js").TreeViewItemId[];
|
|
40
|
+
getItemTree: () => R[];
|
|
41
|
+
getParentId: (itemId: import("../../index.js").TreeViewItemId) => import("../../index.js").TreeViewItemId | null;
|
|
42
|
+
setIsItemDisabled: ({
|
|
43
|
+
itemId,
|
|
44
|
+
shouldBeDisabled
|
|
45
|
+
}: {
|
|
46
|
+
itemId: import("../../index.js").TreeViewItemId;
|
|
47
|
+
shouldBeDisabled?: boolean;
|
|
48
|
+
}) => void;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export declare class RichTreeViewStore<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> extends ExtendableRichTreeViewStore<R, Multiple, RichTreeViewState<R, Multiple>, RichTreeViewStoreParameters<R, Multiple>> {
|
|
52
|
+
constructor(parameters: RichTreeViewStoreParameters<R, Multiple>);
|
|
53
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import { TreeViewLabelEditingPlugin } from "../plugins/labelEditing/index.js";
|
|
3
|
+
import { MinimalTreeViewStore } from "../MinimalTreeViewStore/index.js";
|
|
4
|
+
import { parametersToStateMapper } from "./RichTreeViewStore.utils.js";
|
|
5
|
+
export class ExtendableRichTreeViewStore extends MinimalTreeViewStore {
|
|
6
|
+
labelEditing = (() => new TreeViewLabelEditingPlugin(this))();
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Mapper of the RichTreeViewStore.
|
|
10
|
+
* Can be used by classes extending the RichTreeViewStore to create their own mapper.
|
|
11
|
+
*/
|
|
12
|
+
static rawMapper = (() => parametersToStateMapper)();
|
|
13
|
+
buildPublicAPI() {
|
|
14
|
+
return _extends({}, super.buildPublicAPI(), this.labelEditing.buildPublicAPI());
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class RichTreeViewStore extends ExtendableRichTreeViewStore {
|
|
18
|
+
constructor(parameters) {
|
|
19
|
+
super(parameters, 'RichTreeView', parametersToStateMapper);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TreeViewItemId, TreeViewValidItem } from "../../models/index.js";
|
|
2
|
+
import { MinimalTreeViewParameters, MinimalTreeViewState } from "../MinimalTreeViewStore/index.js";
|
|
3
|
+
import { RichTreeViewLazyLoadedItemsStatus } from "../plugins/lazyLoading/index.js";
|
|
4
|
+
export interface RichTreeViewState<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> extends MinimalTreeViewState<R, Multiple> {
|
|
5
|
+
/**
|
|
6
|
+
* Determine if a given item can be edited.
|
|
7
|
+
*/
|
|
8
|
+
isItemEditable: ((item: any) => boolean) | boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The id of the item currently being edited.
|
|
11
|
+
*/
|
|
12
|
+
editedItemId: string | null;
|
|
13
|
+
/**
|
|
14
|
+
* The status of the items loaded using lazy loading.
|
|
15
|
+
* Is null if lazy loading is not enabled.
|
|
16
|
+
*/
|
|
17
|
+
lazyLoadedItems: RichTreeViewLazyLoadedItemsStatus | null;
|
|
18
|
+
}
|
|
19
|
+
export interface RichTreeViewStoreParameters<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> extends MinimalTreeViewParameters<R, Multiple> {
|
|
20
|
+
/**
|
|
21
|
+
* Callback fired when the label of an item changes.
|
|
22
|
+
* @param {TreeViewItemId} itemId The id of the item that was edited.
|
|
23
|
+
* @param {string} newLabel The new label of the items.
|
|
24
|
+
*/
|
|
25
|
+
onItemLabelChange?: (itemId: TreeViewItemId, newLabel: string) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Determine if a given item can be edited.
|
|
28
|
+
* @template R
|
|
29
|
+
* @param {R} item The item to check.
|
|
30
|
+
* @returns {boolean} `true` if the item can be edited.
|
|
31
|
+
* @default () => false
|
|
32
|
+
*/
|
|
33
|
+
isItemEditable?: boolean | ((item: R) => boolean);
|
|
34
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { TreeViewParametersToStateMapper } from "../MinimalTreeViewStore/index.js";
|
|
2
|
+
import { RichTreeViewStoreParameters, RichTreeViewState } from "./RichTreeViewStore.types.js";
|
|
3
|
+
export declare const parametersToStateMapper: TreeViewParametersToStateMapper<any, any, RichTreeViewState<any, any>, RichTreeViewStoreParameters<any, any>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
const deriveStateFromParameters = parameters => ({
|
|
3
|
+
isItemEditable: parameters.isItemEditable ?? false
|
|
4
|
+
});
|
|
5
|
+
export const parametersToStateMapper = {
|
|
6
|
+
getInitialState: (minimalInitialState, parameters) => _extends({}, minimalInitialState, deriveStateFromParameters(parameters), {
|
|
7
|
+
editedItemId: null,
|
|
8
|
+
lazyLoadedItems: null
|
|
9
|
+
}),
|
|
10
|
+
updateStateFromParameters: (newMinimalState, parameters) => {
|
|
11
|
+
const newState = _extends({}, newMinimalState, deriveStateFromParameters(parameters));
|
|
12
|
+
return newState;
|
|
13
|
+
},
|
|
14
|
+
shouldIgnoreItemsStateUpdate: () => false
|
|
15
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MinimalTreeViewStore } from "../MinimalTreeViewStore/index.js";
|
|
2
|
+
import { InnerSimpleTreeViewParameters, SimpleTreeViewItem, SimpleTreeViewStoreParameters, SimpleTreeViewState } from "./SimpleTreeViewStore.types.js";
|
|
3
|
+
import { TreeViewJSXItemsPlugin } from "../plugins/jsxItems/index.js";
|
|
4
|
+
export declare class SimpleTreeViewStore<Multiple extends boolean | undefined> extends MinimalTreeViewStore<SimpleTreeViewItem, Multiple, SimpleTreeViewState<Multiple>, InnerSimpleTreeViewParameters<Multiple>> {
|
|
5
|
+
jsxItems: TreeViewJSXItemsPlugin;
|
|
6
|
+
constructor(parameters: SimpleTreeViewStoreParameters<Multiple>);
|
|
7
|
+
updateStateFromParameters(parameters: SimpleTreeViewStoreParameters<Multiple>): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import { EMPTY_ARRAY } from '@base-ui/utils/empty';
|
|
3
|
+
import { MinimalTreeViewStore } from "../MinimalTreeViewStore/index.js";
|
|
4
|
+
import { TreeViewJSXItemsPlugin } from "../plugins/jsxItems/index.js";
|
|
5
|
+
import { parametersToStateMapper } from "./SimpleTreeViewStore.utils.js";
|
|
6
|
+
export class SimpleTreeViewStore extends MinimalTreeViewStore {
|
|
7
|
+
jsxItems = (() => new TreeViewJSXItemsPlugin(this))();
|
|
8
|
+
constructor(parameters) {
|
|
9
|
+
super(_extends({}, parameters, {
|
|
10
|
+
items: EMPTY_ARRAY
|
|
11
|
+
}), 'SimpleTreeView', parametersToStateMapper);
|
|
12
|
+
}
|
|
13
|
+
updateStateFromParameters(parameters) {
|
|
14
|
+
super.updateStateFromParameters(_extends({}, parameters, {
|
|
15
|
+
items: EMPTY_ARRAY
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MinimalTreeViewParameters, MinimalTreeViewState } from "../MinimalTreeViewStore/index.js";
|
|
2
|
+
export interface SimpleTreeViewState<Multiple extends boolean | undefined> extends MinimalTreeViewState<SimpleTreeViewItem, Multiple> {}
|
|
3
|
+
export interface InnerSimpleTreeViewParameters<Multiple extends boolean | undefined> extends MinimalTreeViewParameters<SimpleTreeViewItem, Multiple> {}
|
|
4
|
+
export interface SimpleTreeViewStoreParameters<Multiple extends boolean | undefined> extends Omit<InnerSimpleTreeViewParameters<Multiple>, 'items' | 'isItemDisabled' | 'isItemSelectionDisabled' | 'getItemLabel' | 'getItemChildren' | 'getItemId'> {}
|
|
5
|
+
export interface SimpleTreeViewItem {
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
children?: SimpleTreeViewItem[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { TreeViewParametersToStateMapper } from "../MinimalTreeViewStore/index.js";
|
|
2
|
+
import { InnerSimpleTreeViewParameters, SimpleTreeViewState } from "./SimpleTreeViewStore.types.js";
|
|
3
|
+
export declare const parametersToStateMapper: TreeViewParametersToStateMapper<any, any, SimpleTreeViewState<any>, InnerSimpleTreeViewParameters<any>>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TreeViewItemId } from "../../models/index.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export declare const TreeViewItemDepthContext: React.Context<number | ((state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: TreeViewItemId) => number)>;
|
|
3
|
+
import { MinimalTreeViewState } from "../MinimalTreeViewStore/index.js";
|
|
4
|
+
export declare const TreeViewItemDepthContext: React.Context<number | ((state: MinimalTreeViewState<any, any>, itemId: TreeViewItemId) => number)>;
|