@mui/x-tree-view 8.0.0-beta.3 → 8.1.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 +388 -96
- package/RichTreeView/RichTreeView.js +12 -8
- package/RichTreeView/RichTreeView.plugins.d.ts +3 -6
- package/RichTreeView/RichTreeView.plugins.js +1 -2
- package/RichTreeView/RichTreeView.types.d.ts +4 -3
- package/RichTreeView/index.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.js +13 -10
- package/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
- package/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
- package/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
- package/TreeItem/TreeItem.js +5 -12
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -1
- package/TreeItemIcon/TreeItemIcon.js +15 -11
- package/TreeItemLabelInput/TreeItemLabelInput.js +1 -2
- package/esm/RichTreeView/RichTreeView.js +11 -7
- package/esm/RichTreeView/RichTreeView.plugins.d.ts +3 -6
- package/esm/RichTreeView/RichTreeView.plugins.js +1 -2
- package/esm/RichTreeView/RichTreeView.types.d.ts +4 -3
- package/esm/RichTreeView/index.d.ts +1 -1
- package/esm/SimpleTreeView/SimpleTreeView.js +12 -9
- package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
- package/esm/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
- package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
- package/esm/TreeItem/TreeItem.js +5 -12
- package/esm/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -1
- package/esm/TreeItemIcon/TreeItemIcon.js +15 -11
- package/esm/TreeItemLabelInput/TreeItemLabelInput.js +1 -2
- package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
- package/esm/internals/TreeViewProvider/TreeViewProvider.js +14 -4
- package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
- package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
- package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
- package/esm/internals/hooks/useSelector.js +1 -4
- package/esm/internals/index.d.ts +2 -3
- package/esm/internals/index.js +1 -1
- package/esm/internals/models/events.d.ts +2 -6
- package/esm/internals/models/plugin.d.ts +63 -38
- package/esm/internals/models/treeView.d.ts +0 -5
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +35 -21
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +21 -1
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -7
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -30
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +31 -0
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +12 -2
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -40
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +36 -1
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -24
- package/esm/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
- package/esm/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
- package/esm/internals/useTreeView/useTreeView.d.ts +10 -1
- package/esm/internals/useTreeView/useTreeView.js +22 -25
- package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -3
- package/esm/internals/useTreeView/useTreeViewBuildContext.js +9 -11
- package/esm/internals/utils/models.d.ts +7 -0
- package/esm/internals/utils/models.js +23 -0
- package/esm/internals/utils/selectors.d.ts +1 -1
- package/esm/utils/cache.d.ts +1 -1
- package/esm/utils/cache.js +1 -1
- package/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
- package/index.js +1 -1
- package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
- package/internals/TreeViewProvider/TreeViewProvider.js +14 -4
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
- package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
- package/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
- package/internals/hooks/useSelector.js +1 -5
- package/internals/index.d.ts +2 -3
- package/internals/index.js +13 -7
- package/internals/models/events.d.ts +2 -6
- package/internals/models/plugin.d.ts +63 -38
- package/internals/models/treeView.d.ts +0 -5
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -19
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +22 -2
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +1 -9
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -30
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
- package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +34 -2
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +13 -3
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +37 -38
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +37 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +6 -26
- package/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
- package/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
- package/internals/useTreeView/useTreeView.d.ts +10 -1
- package/internals/useTreeView/useTreeView.js +22 -25
- package/internals/useTreeView/useTreeView.types.d.ts +1 -3
- package/internals/useTreeView/useTreeViewBuildContext.js +9 -11
- package/internals/utils/models.d.ts +7 -0
- package/internals/utils/models.js +30 -0
- package/internals/utils/selectors.d.ts +1 -1
- package/package.json +4 -12
- package/utils/cache.d.ts +1 -1
- package/utils/cache.js +1 -1
- package/esm/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewIcons/index.js +0 -1
- package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
- package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
- package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
- package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
- package/esm/internals/useTreeView/useTreeViewModels.d.ts +0 -7
- package/esm/internals/useTreeView/useTreeViewModels.js +0 -62
- package/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
- package/internals/plugins/useTreeViewIcons/index.js +0 -12
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -32
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -5
- package/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
- package/internals/plugins/useTreeViewItemCustomization/index.js +0 -12
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -32
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -5
- package/internals/useTreeView/useTreeViewModels.d.ts +0 -7
- package/internals/useTreeView/useTreeViewModels.js +0 -71
- package/modern/RichTreeView/RichTreeView.d.ts +0 -18
- package/modern/RichTreeView/RichTreeView.js +0 -322
- package/modern/RichTreeView/RichTreeView.plugins.d.ts +0 -13
- package/modern/RichTreeView/RichTreeView.plugins.js +0 -10
- package/modern/RichTreeView/RichTreeView.types.d.ts +0 -52
- package/modern/RichTreeView/RichTreeView.types.js +0 -1
- package/modern/RichTreeView/index.d.ts +0 -5
- package/modern/RichTreeView/index.js +0 -3
- package/modern/RichTreeView/richTreeViewClasses.d.ts +0 -5
- package/modern/RichTreeView/richTreeViewClasses.js +0 -6
- package/modern/SimpleTreeView/SimpleTreeView.d.ts +0 -20
- package/modern/SimpleTreeView/SimpleTreeView.js +0 -265
- package/modern/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -12
- package/modern/SimpleTreeView/SimpleTreeView.plugins.js +0 -10
- package/modern/SimpleTreeView/SimpleTreeView.types.d.ts +0 -51
- package/modern/SimpleTreeView/SimpleTreeView.types.js +0 -1
- package/modern/SimpleTreeView/index.d.ts +0 -3
- package/modern/SimpleTreeView/index.js +0 -3
- package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +0 -5
- package/modern/SimpleTreeView/simpleTreeViewClasses.js +0 -6
- package/modern/TreeItem/TreeItem.d.ts +0 -33
- package/modern/TreeItem/TreeItem.js +0 -408
- package/modern/TreeItem/TreeItem.types.d.ts +0 -107
- package/modern/TreeItem/TreeItem.types.js +0 -1
- package/modern/TreeItem/index.d.ts +0 -4
- package/modern/TreeItem/index.js +0 -2
- package/modern/TreeItem/treeItemClasses.d.ts +0 -55
- package/modern/TreeItem/treeItemClasses.js +0 -8
- package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +0 -7
- package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -74
- package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +0 -6
- package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js +0 -1
- package/modern/TreeItemDragAndDropOverlay/index.d.ts +0 -2
- package/modern/TreeItemDragAndDropOverlay/index.js +0 -1
- package/modern/TreeItemIcon/TreeItemIcon.d.ts +0 -7
- package/modern/TreeItemIcon/TreeItemIcon.js +0 -74
- package/modern/TreeItemIcon/TreeItemIcon.types.d.ts +0 -40
- package/modern/TreeItemIcon/TreeItemIcon.types.js +0 -1
- package/modern/TreeItemIcon/index.d.ts +0 -2
- package/modern/TreeItemIcon/index.js +0 -1
- package/modern/TreeItemLabelInput/TreeItemLabelInput.d.ts +0 -5
- package/modern/TreeItemLabelInput/TreeItemLabelInput.js +0 -24
- package/modern/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +0 -14
- package/modern/TreeItemLabelInput/TreeItemLabelInput.types.js +0 -1
- package/modern/TreeItemLabelInput/index.d.ts +0 -2
- package/modern/TreeItemLabelInput/index.js +0 -1
- package/modern/TreeItemProvider/TreeItemProvider.d.ts +0 -7
- package/modern/TreeItemProvider/TreeItemProvider.js +0 -45
- package/modern/TreeItemProvider/TreeItemProvider.types.d.ts +0 -7
- package/modern/TreeItemProvider/TreeItemProvider.types.js +0 -1
- package/modern/TreeItemProvider/index.d.ts +0 -2
- package/modern/TreeItemProvider/index.js +0 -1
- package/modern/hooks/index.d.ts +0 -3
- package/modern/hooks/index.js +0 -3
- package/modern/hooks/useTreeItemModel.d.ts +0 -2
- package/modern/hooks/useTreeItemModel.js +0 -11
- package/modern/hooks/useTreeItemUtils/index.d.ts +0 -1
- package/modern/hooks/useTreeItemUtils/index.js +0 -1
- package/modern/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +0 -42
- package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +0 -165
- package/modern/hooks/useTreeViewApiRef.d.ts +0 -7
- package/modern/hooks/useTreeViewApiRef.js +0 -7
- package/modern/icons/icons.d.ts +0 -6
- package/modern/icons/icons.js +0 -9
- package/modern/icons/index.d.ts +0 -1
- package/modern/icons/index.js +0 -1
- package/modern/index.d.ts +0 -12
- package/modern/index.js +0 -22
- package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +0 -5
- package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js +0 -5
- package/modern/internals/TreeViewItemDepthContext/index.d.ts +0 -1
- package/modern/internals/TreeViewItemDepthContext/index.js +0 -1
- package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +0 -17
- package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +0 -49
- package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +0 -8
- package/modern/internals/TreeViewProvider/TreeViewContext.js +0 -15
- package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +0 -9
- package/modern/internals/TreeViewProvider/TreeViewProvider.js +0 -32
- package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +0 -21
- package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
- package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +0 -33
- package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +0 -13
- package/modern/internals/TreeViewProvider/index.d.ts +0 -3
- package/modern/internals/TreeViewProvider/index.js +0 -2
- package/modern/internals/components/RichTreeViewItems.d.ts +0 -32
- package/modern/internals/components/RichTreeViewItems.js +0 -68
- package/modern/internals/corePlugins/corePlugins.d.ts +0 -9
- package/modern/internals/corePlugins/corePlugins.js +0 -8
- package/modern/internals/corePlugins/index.d.ts +0 -2
- package/modern/internals/corePlugins/index.js +0 -1
- package/modern/internals/corePlugins/useTreeViewId/index.d.ts +0 -2
- package/modern/internals/corePlugins/useTreeViewId/index.js +0 -1
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -39
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -36
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.js +0 -1
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -29
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
- package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
- package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
- package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
- package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
- package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
- package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +0 -1
- package/modern/internals/hooks/useInstanceEventHandler.d.ts +0 -15
- package/modern/internals/hooks/useInstanceEventHandler.js +0 -77
- package/modern/internals/hooks/useLazyRef.d.ts +0 -1
- package/modern/internals/hooks/useLazyRef.js +0 -1
- package/modern/internals/hooks/useOnMount.d.ts +0 -1
- package/modern/internals/hooks/useOnMount.js +0 -1
- package/modern/internals/hooks/useSelector.d.ts +0 -4
- package/modern/internals/hooks/useSelector.js +0 -9
- package/modern/internals/hooks/useTimeout.d.ts +0 -1
- package/modern/internals/hooks/useTimeout.js +0 -1
- package/modern/internals/index.d.ts +0 -34
- package/modern/internals/index.js +0 -24
- package/modern/internals/models/events.d.ts +0 -9
- package/modern/internals/models/events.js +0 -1
- package/modern/internals/models/helpers.d.ts +0 -7
- package/modern/internals/models/helpers.js +0 -1
- package/modern/internals/models/index.d.ts +0 -4
- package/modern/internals/models/index.js +0 -4
- package/modern/internals/models/itemPlugin.d.ts +0 -43
- package/modern/internals/models/itemPlugin.js +0 -1
- package/modern/internals/models/plugin.d.ts +0 -151
- package/modern/internals/models/plugin.js +0 -1
- package/modern/internals/models/treeView.d.ts +0 -32
- package/modern/internals/models/treeView.js +0 -1
- package/modern/internals/plugins/useTreeViewExpansion/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewExpansion/index.js +0 -1
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -134
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -184
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +0 -24
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -102
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -7
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -19
- package/modern/internals/plugins/useTreeViewFocus/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewFocus/index.js +0 -1
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -135
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -182
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +0 -34
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
- package/modern/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewIcons/index.js +0 -1
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
- package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
- package/modern/internals/plugins/useTreeViewItems/index.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewItems/index.js +0 -2
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -325
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -1058
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -113
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -205
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -4
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +0 -8
- package/modern/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewJSXItems/index.js +0 -1
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -183
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +0 -35
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -273
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -30
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
- package/modern/internals/plugins/useTreeViewLabel/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewLabel/index.js +0 -1
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +0 -72
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -73
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -68
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +0 -24
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -60
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
- package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -1
- package/modern/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
- package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -247
- package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -27
- package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -82
- package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
- package/modern/internals/plugins/useTreeViewSelection/index.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewSelection/index.js +0 -1
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +0 -80
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -234
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -363
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +0 -46
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -145
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -38
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -126
- package/modern/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -22
- package/modern/internals/useTreeView/extractPluginParamsFromProps.js +0 -46
- package/modern/internals/useTreeView/index.d.ts +0 -1
- package/modern/internals/useTreeView/index.js +0 -1
- package/modern/internals/useTreeView/useTreeView.d.ts +0 -9
- package/modern/internals/useTreeView/useTreeView.js +0 -114
- package/modern/internals/useTreeView/useTreeView.types.d.ts +0 -23
- package/modern/internals/useTreeView/useTreeView.types.js +0 -1
- package/modern/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -18
- package/modern/internals/useTreeView/useTreeViewBuildContext.js +0 -101
- package/modern/internals/useTreeView/useTreeViewModels.d.ts +0 -7
- package/modern/internals/useTreeView/useTreeViewModels.js +0 -62
- package/modern/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
- package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
- package/modern/internals/utils/TreeViewStore.d.ts +0 -12
- package/modern/internals/utils/TreeViewStore.js +0 -24
- package/modern/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
- package/modern/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
- package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
- package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -18
- package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
- package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
- package/modern/internals/utils/plugins.d.ts +0 -2
- package/modern/internals/utils/plugins.js +0 -4
- package/modern/internals/utils/publishTreeViewEvent.d.ts +0 -5
- package/modern/internals/utils/publishTreeViewEvent.js +0 -3
- package/modern/internals/utils/selectors.d.ts +0 -16
- package/modern/internals/utils/selectors.js +0 -46
- package/modern/internals/utils/tree.d.ts +0 -32
- package/modern/internals/utils/tree.js +0 -203
- package/modern/internals/utils/utils.d.ts +0 -2
- package/modern/internals/utils/utils.js +0 -17
- package/modern/internals/zero-styled/index.d.ts +0 -3
- package/modern/internals/zero-styled/index.js +0 -7
- package/modern/models/events.d.ts +0 -4
- package/modern/models/events.js +0 -1
- package/modern/models/index.d.ts +0 -3
- package/modern/models/index.js +0 -5
- package/modern/models/items.d.ts +0 -13
- package/modern/models/items.js +0 -1
- package/modern/package.json +0 -1
- package/modern/themeAugmentation/components.d.ts +0 -21
- package/modern/themeAugmentation/index.d.ts +0 -3
- package/modern/themeAugmentation/index.js +0 -0
- package/modern/themeAugmentation/overrides.d.ts +0 -16
- package/modern/themeAugmentation/props.d.ts +0 -14
- package/modern/useTreeItem/index.d.ts +0 -2
- package/modern/useTreeItem/index.js +0 -1
- package/modern/useTreeItem/useTreeItem.d.ts +0 -2
- package/modern/useTreeItem/useTreeItem.js +0 -282
- package/modern/useTreeItem/useTreeItem.types.d.ts +0 -201
- package/modern/useTreeItem/useTreeItem.types.js +0 -1
- package/modern/utils/cache.d.ts +0 -38
- package/modern/utils/cache.js +0 -31
- package/modern/utils/index.d.ts +0 -1
- package/modern/utils/index.js +0 -1
- package/tsconfig.build.tsbuildinfo +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { warnOnce } from '@mui/x-internals/warning';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
function useAssertModelConsistencyOutsideOfProduction(parameters) {
|
|
4
|
+
const {
|
|
5
|
+
state,
|
|
6
|
+
controlled,
|
|
7
|
+
defaultValue
|
|
8
|
+
} = parameters;
|
|
9
|
+
const [{
|
|
10
|
+
initialDefaultValue,
|
|
11
|
+
isControlled
|
|
12
|
+
}] = React.useState({
|
|
13
|
+
initialDefaultValue: defaultValue,
|
|
14
|
+
isControlled: controlled !== undefined
|
|
15
|
+
});
|
|
16
|
+
if (isControlled !== (controlled !== undefined)) {
|
|
17
|
+
warnOnce([`MUI X: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of Tree View to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${state} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'], 'error');
|
|
18
|
+
}
|
|
19
|
+
if (JSON.stringify(initialDefaultValue) !== JSON.stringify(defaultValue)) {
|
|
20
|
+
warnOnce([`MUI X: A component is changing the default ${state} state of an uncontrolled Tree View after being initialized. ` + `To suppress this warning opt to use a controlled Tree View.`], 'error');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const useAssertModelConsistency = process.env.NODE_ENV === 'production' ? () => {} : useAssertModelConsistencyOutsideOfProduction;
|
|
@@ -3,7 +3,7 @@ import { TreeViewAnyPluginSignature, TreeViewState } from "../models/index.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Type of a selector that take the whole tree view state as input and returns a value based on a required plugin.
|
|
5
5
|
*/
|
|
6
|
-
export type TreeViewRootSelector<TSignature extends TreeViewAnyPluginSignature,
|
|
6
|
+
export type TreeViewRootSelector<TSignature extends TreeViewAnyPluginSignature, TIsOptional extends boolean = false> = <TSignatures extends (TIsOptional extends true ? [] : [TSignature]), TOptionalSignatures extends (TIsOptional extends true ? [TSignature] : [])>(state: TreeViewState<TSignatures, TOptionalSignatures>) => TIsOptional extends true ? TSignature['state'][keyof TSignature['state']] | undefined : TSignature['state'][keyof TSignature['state']];
|
|
7
7
|
/**
|
|
8
8
|
* Type of a selector that take the whole tree view state as input and returns a value based on an optional plugin.
|
|
9
9
|
*/
|
package/esm/utils/cache.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ type DataSourceCacheDefaultConfig = {
|
|
|
3
3
|
/**
|
|
4
4
|
* Time To Live for each cache entry in milliseconds.
|
|
5
5
|
* After this time the cache entry will become stale and the next query will result in cache miss.
|
|
6
|
-
* @default
|
|
6
|
+
* @default 300_000 (5 minutes)
|
|
7
7
|
*/
|
|
8
8
|
ttl?: number;
|
|
9
9
|
};
|
package/esm/utils/cache.js
CHANGED
|
@@ -84,7 +84,7 @@ const useTreeItemUtils = ({
|
|
|
84
84
|
if (status.disabled) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
-
if (!status.focused) {
|
|
87
|
+
if (!status.focused && !status.editing) {
|
|
88
88
|
instance.focusItem(event, itemId);
|
|
89
89
|
}
|
|
90
90
|
const multiple = isMultiSelectEnabled && (event.shiftKey || event.ctrlKey || event.metaKey);
|
package/index.js
CHANGED
|
@@ -4,5 +4,5 @@ import { TreeViewContextValue } from "./TreeViewProvider.types.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* @ignore - internal component.
|
|
6
6
|
*/
|
|
7
|
-
export declare const TreeViewContext: React.Context<TreeViewContextValue<any> | null>;
|
|
7
|
+
export declare const TreeViewContext: React.Context<TreeViewContextValue<any, []> | null>;
|
|
8
8
|
export declare const useTreeViewContext: <TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []>() => TreeViewContextValue<TSignatures, TOptionalSignatures>;
|
|
@@ -20,13 +20,23 @@ function TreeViewProvider(props) {
|
|
|
20
20
|
const {
|
|
21
21
|
contextValue,
|
|
22
22
|
classes = EMPTY_OBJECT,
|
|
23
|
+
slots = EMPTY_OBJECT,
|
|
24
|
+
slotProps = EMPTY_OBJECT,
|
|
23
25
|
children
|
|
24
26
|
} = props;
|
|
25
|
-
|
|
26
|
-
// TODO: Add the icons to this context and drop useTreeViewIcons
|
|
27
27
|
const styleContextValue = React.useMemo(() => ({
|
|
28
|
-
classes
|
|
29
|
-
|
|
28
|
+
classes,
|
|
29
|
+
slots: {
|
|
30
|
+
collapseIcon: slots.collapseIcon,
|
|
31
|
+
expandIcon: slots.expandIcon,
|
|
32
|
+
endIcon: slots.endIcon
|
|
33
|
+
},
|
|
34
|
+
slotProps: {
|
|
35
|
+
collapseIcon: slotProps.collapseIcon,
|
|
36
|
+
expandIcon: slotProps.expandIcon,
|
|
37
|
+
endIcon: slotProps.endIcon
|
|
38
|
+
}
|
|
39
|
+
}), [classes, slots.collapseIcon, slots.expandIcon, slots.endIcon, slotProps.collapseIcon, slotProps.expandIcon, slotProps.endIcon]);
|
|
30
40
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewContext.TreeViewContext.Provider, {
|
|
31
41
|
value: contextValue,
|
|
32
42
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewStyleContext.TreeViewStyleContext.Provider, {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { TreeItemWrapper, TreeRootWrapper, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewItemPluginResponse, TreeViewPublicAPI } from "../models/index.js";
|
|
3
3
|
import { TreeViewStore } from "../utils/TreeViewStore.js";
|
|
4
|
-
import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
|
|
5
4
|
import type { TreeItemProps } from '../../TreeItem/TreeItem.types';
|
|
6
|
-
import { TreeViewClasses } from "./TreeViewStyleContext.js";
|
|
5
|
+
import { TreeViewClasses, TreeViewSlotProps, TreeViewSlots } from "./TreeViewStyleContext.js";
|
|
7
6
|
export type TreeViewItemPluginsRunner = (props: TreeItemProps) => Required<TreeViewItemPluginResponse>;
|
|
8
|
-
export
|
|
7
|
+
export interface TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> {
|
|
9
8
|
instance: TreeViewInstance<TSignatures, TOptionalSignatures>;
|
|
10
9
|
publicAPI: TreeViewPublicAPI<TSignatures, TOptionalSignatures>;
|
|
11
10
|
store: TreeViewStore<TSignatures>;
|
|
@@ -13,9 +12,11 @@ export type TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginS
|
|
|
13
12
|
wrapItem: TreeItemWrapper<TSignatures>;
|
|
14
13
|
wrapRoot: TreeRootWrapper;
|
|
15
14
|
runItemPlugins: TreeViewItemPluginsRunner;
|
|
16
|
-
}
|
|
15
|
+
}
|
|
17
16
|
export interface TreeViewProviderProps<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
|
|
18
17
|
contextValue: TreeViewContextValue<TSignatures>;
|
|
19
18
|
children: React.ReactNode;
|
|
20
19
|
classes: Partial<TreeViewClasses> | undefined;
|
|
20
|
+
slots: TreeViewSlots | undefined;
|
|
21
|
+
slotProps: TreeViewSlotProps | undefined;
|
|
21
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlotComponentProps } from '@mui/utils/types';
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
export interface TreeViewClasses {
|
|
3
4
|
/** Styles applied to the root element. */
|
|
@@ -23,8 +24,30 @@ export interface TreeViewClasses {
|
|
|
23
24
|
/** Styles applied to the item's loading icon element */
|
|
24
25
|
itemLoadingIcon: string;
|
|
25
26
|
}
|
|
27
|
+
export interface TreeViewSlots {
|
|
28
|
+
/**
|
|
29
|
+
* The default icon used to collapse the item.
|
|
30
|
+
*/
|
|
31
|
+
collapseIcon?: React.ElementType;
|
|
32
|
+
/**
|
|
33
|
+
* The default icon used to expand the item.
|
|
34
|
+
*/
|
|
35
|
+
expandIcon?: React.ElementType;
|
|
36
|
+
/**
|
|
37
|
+
* The default icon displayed next to an end item.
|
|
38
|
+
* This is applied to all Tree Items and can be overridden by the TreeItem `icon` slot prop.
|
|
39
|
+
*/
|
|
40
|
+
endIcon?: React.ElementType;
|
|
41
|
+
}
|
|
42
|
+
export interface TreeViewSlotProps {
|
|
43
|
+
collapseIcon?: SlotComponentProps<'svg', {}, {}>;
|
|
44
|
+
expandIcon?: SlotComponentProps<'svg', {}, {}>;
|
|
45
|
+
endIcon?: SlotComponentProps<'svg', {}, {}>;
|
|
46
|
+
}
|
|
26
47
|
export interface TreeViewStyleContextValue {
|
|
27
48
|
classes: Partial<TreeViewClasses>;
|
|
49
|
+
slots: TreeViewSlots;
|
|
50
|
+
slotProps: TreeViewSlotProps;
|
|
28
51
|
}
|
|
29
52
|
/**
|
|
30
53
|
* @ignore - internal component.
|
|
@@ -10,7 +10,9 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
* @ignore - internal component.
|
|
11
11
|
*/
|
|
12
12
|
const TreeViewStyleContext = exports.TreeViewStyleContext = /*#__PURE__*/React.createContext({
|
|
13
|
-
classes: {}
|
|
13
|
+
classes: {},
|
|
14
|
+
slots: {},
|
|
15
|
+
slotProps: {}
|
|
14
16
|
});
|
|
15
17
|
if (process.env.NODE_ENV !== 'production') {
|
|
16
18
|
TreeViewStyleContext.displayName = 'TreeViewStyleContext';
|
|
@@ -4,11 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useSelector = void 0;
|
|
7
|
-
var _withSelector = require("use-sync-external-store/with-selector
|
|
8
|
-
// use-sync-external-store has no exports field defined
|
|
9
|
-
// See https://github.com/facebook/react/issues/30698
|
|
10
|
-
// eslint-disable-next-line import/extensions
|
|
11
|
-
|
|
7
|
+
var _withSelector = require("use-sync-external-store/with-selector");
|
|
12
8
|
const defaultCompare = Object.is;
|
|
13
9
|
const useSelector = (store, selector, args = undefined, equals = defaultCompare) => {
|
|
14
10
|
const selectorWithArgs = state => selector(state, args);
|
package/internals/index.d.ts
CHANGED
|
@@ -14,12 +14,11 @@ export { useTreeViewFocus } from "./plugins/useTreeViewFocus/index.js";
|
|
|
14
14
|
export type { UseTreeViewFocusSignature, UseTreeViewFocusParameters } from './plugins/useTreeViewFocus';
|
|
15
15
|
export { useTreeViewKeyboardNavigation } from "./plugins/useTreeViewKeyboardNavigation/index.js";
|
|
16
16
|
export type { UseTreeViewKeyboardNavigationSignature } from './plugins/useTreeViewKeyboardNavigation';
|
|
17
|
-
export { useTreeViewIcons } from "./plugins/useTreeViewIcons/index.js";
|
|
18
|
-
export type { UseTreeViewIconsSignature, UseTreeViewIconsParameters } from './plugins/useTreeViewIcons';
|
|
19
17
|
export { useTreeViewItems, buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from "./plugins/useTreeViewItems/index.js";
|
|
20
18
|
export { selectorItemMetaLookup, selectorItemMeta, selectorItemIndex, selectorItemOrderedChildrenIds } from "./plugins/useTreeViewItems/useTreeViewItems.selectors.js";
|
|
21
19
|
export type { UseTreeViewItemsSignature, UseTreeViewItemsParameters, UseTreeViewItemsState } from './plugins/useTreeViewItems';
|
|
22
20
|
export { useTreeViewLabel } from "./plugins/useTreeViewLabel/index.js";
|
|
21
|
+
export { selectorIsItemBeingEdited, selectorIsAnyItemBeingEdited as selectorIsAnItemEdited } from "./plugins/useTreeViewLabel/useTreeViewLabel.selectors.js";
|
|
23
22
|
export type { UseTreeViewLabelSignature, UseTreeViewLabelParameters } from './plugins/useTreeViewLabel';
|
|
24
23
|
export { selectorIsItemExpanded } from "./plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
|
|
25
24
|
export { selectorIsItemSelected } from "./plugins/useTreeViewSelection/useTreeViewSelection.selectors.js";
|
|
@@ -31,4 +30,4 @@ export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters } from
|
|
|
31
30
|
export { createSelector } from "./utils/selectors.js";
|
|
32
31
|
export { isTargetInDescendants } from "./utils/tree.js";
|
|
33
32
|
export { TreeViewStore } from "./utils/TreeViewStore.js";
|
|
34
|
-
export type { TreeViewClasses } from './TreeViewProvider/TreeViewStyleContext';
|
|
33
|
+
export type { TreeViewClasses, TreeViewSlots, TreeViewSlotProps } from './TreeViewProvider/TreeViewStyleContext';
|
package/internals/index.js
CHANGED
|
@@ -57,6 +57,18 @@ Object.defineProperty(exports, "selectorGetTreeItemError", {
|
|
|
57
57
|
return _useTreeViewLazyLoading.selectorGetTreeItemError;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "selectorIsAnItemEdited", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _useTreeViewLabel2.selectorIsAnyItemBeingEdited;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "selectorIsItemBeingEdited", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _useTreeViewLabel2.selectorIsItemBeingEdited;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
60
72
|
Object.defineProperty(exports, "selectorIsItemExpanded", {
|
|
61
73
|
enumerable: true,
|
|
62
74
|
get: function () {
|
|
@@ -135,12 +147,6 @@ Object.defineProperty(exports, "useTreeViewFocus", {
|
|
|
135
147
|
return _useTreeViewFocus.useTreeViewFocus;
|
|
136
148
|
}
|
|
137
149
|
});
|
|
138
|
-
Object.defineProperty(exports, "useTreeViewIcons", {
|
|
139
|
-
enumerable: true,
|
|
140
|
-
get: function () {
|
|
141
|
-
return _useTreeViewIcons.useTreeViewIcons;
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
150
|
Object.defineProperty(exports, "useTreeViewItems", {
|
|
145
151
|
enumerable: true,
|
|
146
152
|
get: function () {
|
|
@@ -180,10 +186,10 @@ var _useTreeViewExpansion = require("./plugins/useTreeViewExpansion");
|
|
|
180
186
|
var _useTreeViewSelection = require("./plugins/useTreeViewSelection");
|
|
181
187
|
var _useTreeViewFocus = require("./plugins/useTreeViewFocus");
|
|
182
188
|
var _useTreeViewKeyboardNavigation = require("./plugins/useTreeViewKeyboardNavigation");
|
|
183
|
-
var _useTreeViewIcons = require("./plugins/useTreeViewIcons");
|
|
184
189
|
var _useTreeViewItems = require("./plugins/useTreeViewItems");
|
|
185
190
|
var _useTreeViewItems2 = require("./plugins/useTreeViewItems/useTreeViewItems.selectors");
|
|
186
191
|
var _useTreeViewLabel = require("./plugins/useTreeViewLabel");
|
|
192
|
+
var _useTreeViewLabel2 = require("./plugins/useTreeViewLabel/useTreeViewLabel.selectors");
|
|
187
193
|
var _useTreeViewExpansion2 = require("./plugins/useTreeViewExpansion/useTreeViewExpansion.selectors");
|
|
188
194
|
var _useTreeViewSelection2 = require("./plugins/useTreeViewSelection/useTreeViewSelection.selectors");
|
|
189
195
|
var _useTreeViewLazyLoading = require("./plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors");
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MuiEvent } from '@mui/x-internals/types';
|
|
2
2
|
export interface TreeViewEventLookupElement {
|
|
3
3
|
params: object;
|
|
4
4
|
}
|
|
5
|
-
export type TreeViewEventListener<E extends TreeViewEventLookupElement> = (params: E['params'], event: MuiEvent<{}>) => void;
|
|
6
|
-
export type MuiBaseEvent = React.SyntheticEvent<HTMLElement> | DocumentEventMap[keyof DocumentEventMap] | {};
|
|
7
|
-
export type MuiEvent<E extends MuiBaseEvent = MuiBaseEvent> = E & {
|
|
8
|
-
defaultMuiPrevented?: boolean;
|
|
9
|
-
};
|
|
5
|
+
export type TreeViewEventListener<E extends TreeViewEventLookupElement> = (params: E['params'], event: MuiEvent<{}>) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
-
import { TreeViewExperimentalFeatures, TreeViewInstance
|
|
3
|
+
import { TreeViewExperimentalFeatures, TreeViewInstance } from "./treeView.js";
|
|
4
4
|
import type { MergeSignaturesProperty, OptionalIfEmpty } from './helpers';
|
|
5
5
|
import { TreeViewEventLookupElement } from "./events.js";
|
|
6
6
|
import type { TreeViewCorePluginSignatures } from '../corePlugins';
|
|
@@ -8,22 +8,31 @@ import { TreeViewItemPlugin } from "./itemPlugin.js";
|
|
|
8
8
|
import { TreeViewItemId } from "../../models/index.js";
|
|
9
9
|
import { TreeViewStore } from "../utils/TreeViewStore.js";
|
|
10
10
|
export interface TreeViewPluginOptions<TSignature extends TreeViewAnyPluginSignature> {
|
|
11
|
+
/**
|
|
12
|
+
* An imperative API available for internal use. Used to access methods from other plugins.
|
|
13
|
+
*/
|
|
11
14
|
instance: TreeViewUsedInstance<TSignature>;
|
|
15
|
+
/**
|
|
16
|
+
* The Tree View parameters after being processed with the default values.
|
|
17
|
+
*/
|
|
12
18
|
params: TreeViewUsedDefaultizedParams<TSignature>;
|
|
13
|
-
slots: TSignature['slots'];
|
|
14
|
-
slotProps: TSignature['slotProps'];
|
|
15
19
|
experimentalFeatures: TreeViewUsedExperimentalFeatures<TSignature>;
|
|
16
|
-
|
|
20
|
+
/**
|
|
21
|
+
* The store that can be used to access the state of other plugins.
|
|
22
|
+
*/
|
|
17
23
|
store: TreeViewUsedStore<TSignature>;
|
|
24
|
+
/**
|
|
25
|
+
* Reference to the root element.
|
|
26
|
+
*/
|
|
18
27
|
rootRef: React.RefObject<HTMLUListElement | null>;
|
|
28
|
+
/**
|
|
29
|
+
* All the plugins that are used in the tree-view.
|
|
30
|
+
*/
|
|
19
31
|
plugins: TreeViewPlugin<TreeViewAnyPluginSignature>[];
|
|
20
32
|
}
|
|
21
|
-
type TreeViewModelsInitializer<TSignature extends TreeViewAnyPluginSignature> = { [TControlled in keyof TSignature['models']]: {
|
|
22
|
-
getDefaultValue: (params: TSignature['defaultizedParams']) => Exclude<TSignature['defaultizedParams'][TControlled], undefined>;
|
|
23
|
-
} };
|
|
24
33
|
type TreeViewResponse<TSignature extends TreeViewAnyPluginSignature> = {
|
|
25
34
|
getRootProps?: <TOther extends EventHandlers = {}>(otherHandlers: TOther) => React.HTMLAttributes<HTMLUListElement>;
|
|
26
|
-
} & OptionalIfEmpty<'publicAPI', TSignature['publicAPI']> & OptionalIfEmpty<'instance', TSignature['instance']
|
|
35
|
+
} & OptionalIfEmpty<'publicAPI', TSignature['publicAPI']> & OptionalIfEmpty<'instance', TSignature['instance']>;
|
|
27
36
|
export type TreeViewPluginSignature<T extends {
|
|
28
37
|
params?: {};
|
|
29
38
|
defaultizedParams?: {};
|
|
@@ -31,61 +40,61 @@ export type TreeViewPluginSignature<T extends {
|
|
|
31
40
|
publicAPI?: {};
|
|
32
41
|
events?: { [key in keyof T['events']]: TreeViewEventLookupElement };
|
|
33
42
|
state?: {};
|
|
34
|
-
cache?: {};
|
|
35
|
-
contextValue?: {};
|
|
36
|
-
slots?: { [key in keyof T['slots']]: React.ElementType };
|
|
37
|
-
slotProps?: { [key in keyof T['slotProps']]: {} | (() => {}) };
|
|
38
|
-
modelNames?: keyof T['defaultizedParams'];
|
|
39
43
|
experimentalFeatures?: string;
|
|
40
44
|
dependencies?: readonly TreeViewAnyPluginSignature[];
|
|
41
45
|
optionalDependencies?: readonly TreeViewAnyPluginSignature[];
|
|
42
46
|
}> = {
|
|
47
|
+
/**
|
|
48
|
+
* The raw properties that can be passed to the plugin.
|
|
49
|
+
*/
|
|
43
50
|
params: T extends {
|
|
44
51
|
params: {};
|
|
45
52
|
} ? T['params'] : {};
|
|
53
|
+
/**
|
|
54
|
+
* The params after being processed with the default values.
|
|
55
|
+
*/
|
|
46
56
|
defaultizedParams: T extends {
|
|
47
57
|
defaultizedParams: {};
|
|
48
58
|
} ? T['defaultizedParams'] : {};
|
|
59
|
+
/**
|
|
60
|
+
* An imperative api available for internal use.
|
|
61
|
+
*/
|
|
49
62
|
instance: T extends {
|
|
50
63
|
instance: {};
|
|
51
64
|
} ? T['instance'] : {};
|
|
65
|
+
/**
|
|
66
|
+
* The public imperative API that will be exposed to the user.
|
|
67
|
+
* Accessed through the `apiRef` property of the plugin.
|
|
68
|
+
*/
|
|
52
69
|
publicAPI: T extends {
|
|
53
70
|
publicAPI: {};
|
|
54
71
|
} ? T['publicAPI'] : {};
|
|
55
72
|
events: T extends {
|
|
56
73
|
events: {};
|
|
57
74
|
} ? T['events'] : {};
|
|
75
|
+
/**
|
|
76
|
+
* The state is the mutable data that will actually be stored in the plugin state and can be accessed by other plugins.
|
|
77
|
+
*/
|
|
58
78
|
state: T extends {
|
|
59
79
|
state: {};
|
|
60
80
|
} ? T['state'] : {};
|
|
61
|
-
cache: T extends {
|
|
62
|
-
cache: {};
|
|
63
|
-
} ? T['cache'] : {};
|
|
64
|
-
contextValue: T extends {
|
|
65
|
-
contextValue: {};
|
|
66
|
-
} ? T['contextValue'] : {};
|
|
67
|
-
slots: T extends {
|
|
68
|
-
slots: {};
|
|
69
|
-
} ? T['slots'] : {};
|
|
70
|
-
slotProps: T extends {
|
|
71
|
-
slotProps: {};
|
|
72
|
-
} ? T['slotProps'] : {};
|
|
73
|
-
models: T extends {
|
|
74
|
-
defaultizedParams: {};
|
|
75
|
-
modelNames: keyof T['defaultizedParams'];
|
|
76
|
-
} ? { [TControlled in T['modelNames']]-?: TreeViewModel<Exclude<T['defaultizedParams'][TControlled], undefined>> } : {};
|
|
77
81
|
experimentalFeatures: T extends {
|
|
78
82
|
experimentalFeatures: string;
|
|
79
83
|
} ? { [key in T['experimentalFeatures']]?: boolean } : {};
|
|
84
|
+
/**
|
|
85
|
+
* Any plugins that this plugin depends on.
|
|
86
|
+
*/
|
|
80
87
|
dependencies: T extends {
|
|
81
88
|
dependencies: Array<any>;
|
|
82
89
|
} ? T['dependencies'] : [];
|
|
90
|
+
/**
|
|
91
|
+
* Same as dependencies but the plugin might not have been initialized. Used for dependencies on plugins of features that can be enabled conditionally.
|
|
92
|
+
*/
|
|
83
93
|
optionalDependencies: T extends {
|
|
84
94
|
optionalDependencies: Array<any>;
|
|
85
95
|
} ? T['optionalDependencies'] : [];
|
|
86
96
|
};
|
|
87
97
|
export type TreeViewAnyPluginSignature = {
|
|
88
|
-
cache: any;
|
|
89
98
|
state: any;
|
|
90
99
|
instance: any;
|
|
91
100
|
params: any;
|
|
@@ -93,10 +102,6 @@ export type TreeViewAnyPluginSignature = {
|
|
|
93
102
|
dependencies: any;
|
|
94
103
|
optionalDependencies: any;
|
|
95
104
|
events: any;
|
|
96
|
-
contextValue: any;
|
|
97
|
-
slots: any;
|
|
98
|
-
slotProps: any;
|
|
99
|
-
models: any;
|
|
100
105
|
experimentalFeatures: any;
|
|
101
106
|
publicAPI: any;
|
|
102
107
|
};
|
|
@@ -112,8 +117,6 @@ export type TreeViewUsedInstance<TSignature extends TreeViewAnyPluginSignature>
|
|
|
112
117
|
};
|
|
113
118
|
export type TreeViewUsedStore<TSignature extends TreeViewAnyPluginSignature> = TreeViewStore<[TSignature, ...TSignature['dependencies']]>;
|
|
114
119
|
type TreeViewUsedExperimentalFeatures<TSignature extends TreeViewAnyPluginSignature> = TreeViewExperimentalFeatures<[TSignature, ...TSignature['dependencies']], TSignature['optionalDependencies']>;
|
|
115
|
-
type RemoveSetValue<Models extends Record<string, TreeViewModel<any>>> = { [K in keyof Models]: Omit<Models[K], 'setValue'> };
|
|
116
|
-
export type TreeViewUsedModels<TSignature extends TreeViewAnyPluginSignature> = TSignature['models'] & RemoveSetValue<MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, 'models'>>;
|
|
117
120
|
export type TreeViewUsedEvents<TSignature extends TreeViewAnyPluginSignature> = TSignature['events'] & MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, 'events'>;
|
|
118
121
|
export type TreeItemWrapper<TSignatures extends readonly TreeViewAnyPluginSignature[]> = (params: {
|
|
119
122
|
itemId: TreeViewItemId;
|
|
@@ -125,14 +128,36 @@ export type TreeRootWrapper = (params: {
|
|
|
125
128
|
children: React.ReactNode;
|
|
126
129
|
}) => React.ReactNode;
|
|
127
130
|
export type TreeViewPlugin<TSignature extends TreeViewAnyPluginSignature> = {
|
|
131
|
+
/**
|
|
132
|
+
* The main function of the plugin that will be executed by the Tree View.
|
|
133
|
+
*
|
|
134
|
+
* This should be a valid React `use` function, as it will be executed in the render phase and can contain hooks.
|
|
135
|
+
*/
|
|
128
136
|
(options: TreeViewPluginOptions<TSignature>): TreeViewResponse<TSignature>;
|
|
137
|
+
/**
|
|
138
|
+
* A function that receives the parameters and returns them after being processed with the default values.
|
|
139
|
+
*
|
|
140
|
+
* @param {TreeViewUsedParams<TSignature>} options The options object.
|
|
141
|
+
* @param {TreeViewUsedParams<TSignature>['params']} options.params The parameters before being processed with the default values.
|
|
142
|
+
* @param {TreeViewUsedExperimentalFeatures<TSignature>} options.experimentalFeatures An object containing the experimental feature flags.
|
|
143
|
+
* @returns {TSignature['defaultizedParams']} The parameters after being processed with the default values.
|
|
144
|
+
*/
|
|
129
145
|
getDefaultizedParams?: (options: {
|
|
130
146
|
params: TreeViewUsedParams<TSignature>;
|
|
131
147
|
experimentalFeatures: TreeViewUsedExperimentalFeatures<TSignature>;
|
|
132
148
|
}) => TSignature['defaultizedParams'];
|
|
149
|
+
/**
|
|
150
|
+
* The initial state is computed after the default values are applied.
|
|
151
|
+
* It sets up the state for the first render.
|
|
152
|
+
* Other state modifications have to be done in effects and so could not be applied on the initial render.
|
|
153
|
+
*
|
|
154
|
+
* @param {TreeViewUsedDefaultizedParams<TSignature>} params The parameters after being processed with the default values.
|
|
155
|
+
* @returns {TSignature['state']} The initial state of the plugin.
|
|
156
|
+
*/
|
|
133
157
|
getInitialState?: (params: TreeViewUsedDefaultizedParams<TSignature>) => TSignature['state'];
|
|
134
|
-
|
|
135
|
-
|
|
158
|
+
/**
|
|
159
|
+
* An object where each property used by the plugin is set to `true`.
|
|
160
|
+
*/
|
|
136
161
|
params: Record<keyof TSignature['params'], true>;
|
|
137
162
|
itemPlugin?: TreeViewItemPlugin;
|
|
138
163
|
/**
|
|
@@ -16,11 +16,6 @@ export interface TreeViewItemMeta {
|
|
|
16
16
|
*/
|
|
17
17
|
label?: string;
|
|
18
18
|
}
|
|
19
|
-
export interface TreeViewModel<TValue> {
|
|
20
|
-
name: string;
|
|
21
|
-
value: TValue;
|
|
22
|
-
setControlledValue: (value: TValue | ((prevValue: TValue) => TValue)) => void;
|
|
23
|
-
}
|
|
24
19
|
export type TreeViewInstance<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'instance'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'instance'>>;
|
|
25
20
|
export type TreeViewPublicAPI<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'publicAPI'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'instance'>>;
|
|
26
21
|
export type TreeViewExperimentalFeatures<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TSignatures, ...TOptionalSignatures], 'experimentalFeatures'>;
|
|
@@ -12,19 +12,17 @@ var _useTreeViewExpansion = require("./useTreeViewExpansion.selectors");
|
|
|
12
12
|
var _useTreeViewExpansion2 = require("./useTreeViewExpansion.utils");
|
|
13
13
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
|
|
14
14
|
var _publishTreeViewEvent = require("../../utils/publishTreeViewEvent");
|
|
15
|
+
var _models = require("../../utils/models");
|
|
15
16
|
const useTreeViewExpansion = ({
|
|
16
17
|
instance,
|
|
17
18
|
store,
|
|
18
|
-
params
|
|
19
|
-
models
|
|
19
|
+
params
|
|
20
20
|
}) => {
|
|
21
|
-
(0,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}));
|
|
27
|
-
}, [store, models.expandedItems.value]);
|
|
21
|
+
(0, _models.useAssertModelConsistency)({
|
|
22
|
+
state: 'expandedItems',
|
|
23
|
+
controlled: params.expandedItems,
|
|
24
|
+
defaultValue: params.defaultExpandedItems
|
|
25
|
+
});
|
|
28
26
|
(0, _useEnhancedEffect.default)(() => {
|
|
29
27
|
store.update(prevState => {
|
|
30
28
|
const newExpansionTrigger = (0, _useTreeViewExpansion2.getExpansionTrigger)({
|
|
@@ -42,19 +40,26 @@ const useTreeViewExpansion = ({
|
|
|
42
40
|
});
|
|
43
41
|
}, [store, params.isItemEditable, params.expansionTrigger]);
|
|
44
42
|
const setExpandedItems = (event, value) => {
|
|
43
|
+
if (params.expandedItems === undefined) {
|
|
44
|
+
store.update(prevState => (0, _extends2.default)({}, prevState, {
|
|
45
|
+
expansion: (0, _extends2.default)({}, prevState.expansion, {
|
|
46
|
+
expandedItems: value
|
|
47
|
+
})
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
45
50
|
params.onExpandedItemsChange?.(event, value);
|
|
46
|
-
models.expandedItems.setControlledValue(value);
|
|
47
51
|
};
|
|
48
52
|
const applyItemExpansion = (0, _useEventCallback.default)(({
|
|
49
53
|
itemId,
|
|
50
54
|
event,
|
|
51
55
|
shouldBeExpanded
|
|
52
56
|
}) => {
|
|
57
|
+
const oldExpanded = (0, _useTreeViewExpansion.selectorExpandedItems)(store.value);
|
|
53
58
|
let newExpanded;
|
|
54
59
|
if (shouldBeExpanded) {
|
|
55
|
-
newExpanded = [itemId].concat(
|
|
60
|
+
newExpanded = [itemId].concat(oldExpanded);
|
|
56
61
|
} else {
|
|
57
|
-
newExpanded =
|
|
62
|
+
newExpanded = oldExpanded.filter(id => id !== itemId);
|
|
58
63
|
}
|
|
59
64
|
if (params.onItemExpansionToggle) {
|
|
60
65
|
params.onItemExpansionToggle(event, itemId, shouldBeExpanded);
|
|
@@ -94,7 +99,7 @@ const useTreeViewExpansion = ({
|
|
|
94
99
|
}
|
|
95
100
|
const siblings = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(store.value, itemMeta.parentId);
|
|
96
101
|
const diff = siblings.filter(child => (0, _useTreeViewExpansion.selectorIsItemExpandable)(store.value, child) && !(0, _useTreeViewExpansion.selectorIsItemExpanded)(store.value, child));
|
|
97
|
-
const newExpanded =
|
|
102
|
+
const newExpanded = (0, _useTreeViewExpansion.selectorExpandedItems)(store.value).concat(diff);
|
|
98
103
|
if (diff.length > 0) {
|
|
99
104
|
if (params.onItemExpansionToggle) {
|
|
100
105
|
diff.forEach(newlyExpandedItemId => {
|
|
@@ -104,6 +109,20 @@ const useTreeViewExpansion = ({
|
|
|
104
109
|
setExpandedItems(event, newExpanded);
|
|
105
110
|
}
|
|
106
111
|
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Update the controlled model when the `expandedItems` prop changes.
|
|
115
|
+
*/
|
|
116
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
117
|
+
const expandedItems = params.expandedItems;
|
|
118
|
+
if (expandedItems !== undefined) {
|
|
119
|
+
store.update(prevState => (0, _extends2.default)({}, prevState, {
|
|
120
|
+
expansion: (0, _extends2.default)({}, prevState.expansion, {
|
|
121
|
+
expandedItems
|
|
122
|
+
})
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
}, [store, params.expandedItems]);
|
|
107
126
|
return {
|
|
108
127
|
publicAPI: {
|
|
109
128
|
setItemExpansion
|
|
@@ -116,11 +135,6 @@ const useTreeViewExpansion = ({
|
|
|
116
135
|
};
|
|
117
136
|
};
|
|
118
137
|
exports.useTreeViewExpansion = useTreeViewExpansion;
|
|
119
|
-
useTreeViewExpansion.models = {
|
|
120
|
-
expandedItems: {
|
|
121
|
-
getDefaultValue: params => params.defaultExpandedItems
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
138
|
const DEFAULT_EXPANDED_ITEMS = [];
|
|
125
139
|
useTreeViewExpansion.getDefaultizedParams = ({
|
|
126
140
|
params
|
|
@@ -129,7 +143,7 @@ useTreeViewExpansion.getDefaultizedParams = ({
|
|
|
129
143
|
});
|
|
130
144
|
useTreeViewExpansion.getInitialState = params => ({
|
|
131
145
|
expansion: {
|
|
132
|
-
|
|
146
|
+
expandedItems: params.expandedItems === undefined ? params.defaultExpandedItems : params.expandedItems,
|
|
133
147
|
expansionTrigger: (0, _useTreeViewExpansion2.getExpansionTrigger)(params)
|
|
134
148
|
}
|
|
135
149
|
});
|