@mui/x-tree-view 9.6.0 → 9.8.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 +241 -2
- package/RichTreeView/RichTreeView.d.mts +1 -1
- package/RichTreeView/RichTreeView.d.ts +1 -1
- package/RichTreeView/RichTreeView.types.d.mts +10 -10
- package/RichTreeView/RichTreeView.types.d.ts +10 -10
- package/RichTreeView/richTreeViewClasses.d.mts +1 -1
- package/RichTreeView/richTreeViewClasses.d.ts +1 -1
- package/RichTreeView/useExtractRichTreeViewParameters.d.mts +4 -4
- package/RichTreeView/useExtractRichTreeViewParameters.d.ts +4 -4
- package/SimpleTreeView/SimpleTreeView.d.mts +1 -1
- package/SimpleTreeView/SimpleTreeView.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.types.d.mts +9 -9
- package/SimpleTreeView/SimpleTreeView.types.d.ts +9 -9
- package/SimpleTreeView/simpleTreeViewClasses.d.mts +1 -1
- package/SimpleTreeView/simpleTreeViewClasses.d.ts +1 -1
- package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.mts +3 -3
- package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +3 -3
- package/TreeItem/TreeItem.d.mts +3 -3
- package/TreeItem/TreeItem.d.ts +3 -3
- package/TreeItem/TreeItem.types.d.mts +10 -10
- package/TreeItem/TreeItem.types.d.ts +10 -10
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.mts +1 -1
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +1 -1
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.mts +2 -2
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +2 -2
- package/TreeItemIcon/TreeItemIcon.d.mts +1 -1
- package/TreeItemIcon/TreeItemIcon.d.ts +1 -1
- package/TreeItemIcon/TreeItemIcon.types.d.mts +3 -3
- package/TreeItemIcon/TreeItemIcon.types.d.ts +3 -3
- package/TreeItemLabelInput/TreeItemLabelInput.types.d.mts +2 -2
- package/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +2 -2
- package/TreeItemProvider/TreeItemProvider.d.mts +1 -1
- package/TreeItemProvider/TreeItemProvider.d.ts +1 -1
- package/TreeItemProvider/TreeItemProvider.types.d.mts +2 -2
- package/TreeItemProvider/TreeItemProvider.types.d.ts +2 -2
- package/hooks/useApplyPropagationToSelectedItemsOnMount.d.mts +1 -1
- package/hooks/useApplyPropagationToSelectedItemsOnMount.d.ts +1 -1
- package/hooks/useRichTreeViewApiRef.d.mts +3 -3
- package/hooks/useRichTreeViewApiRef.d.ts +3 -3
- package/hooks/useSimpleTreeViewApiRef.d.mts +2 -2
- package/hooks/useSimpleTreeViewApiRef.d.ts +2 -2
- package/hooks/useTreeItemModel.d.mts +1 -1
- package/hooks/useTreeItemModel.d.ts +1 -1
- package/hooks/useTreeItemUtils/useTreeItemUtils.d.mts +3 -3
- package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +3 -3
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.mts +15 -5
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +15 -5
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +32 -8
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.mjs +32 -8
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.mts +2 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +2 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.mts +2 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +2 -2
- package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.mts +1 -1
- package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +1 -1
- package/internals/RichTreeViewStore/RichTreeViewStore.d.mts +2 -2
- package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +2 -2
- package/internals/RichTreeViewStore/RichTreeViewStore.types.d.mts +3 -3
- package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +3 -3
- package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.mts +2 -2
- package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +2 -2
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.mts +1 -1
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +1 -1
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.mts +1 -1
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +1 -1
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.mts +2 -2
- package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +2 -2
- package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.mts +2 -2
- package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -2
- package/internals/TreeViewProvider/TreeViewContext.d.mts +2 -2
- package/internals/TreeViewProvider/TreeViewContext.d.ts +2 -2
- package/internals/TreeViewProvider/TreeViewProvider.d.mts +2 -2
- package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
- package/internals/TreeViewProvider/TreeViewProvider.types.d.mts +6 -5
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
- package/internals/TreeViewProvider/TreeViewStyleContext.d.mts +1 -1
- package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +1 -1
- package/internals/TreeViewProvider/useTreeViewBuildContext.d.mts +2 -2
- package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +2 -2
- package/internals/components/RichTreeViewItems.d.mts +4 -3
- package/internals/components/RichTreeViewItems.d.ts +4 -3
- package/internals/hooks/useTreeViewRootProps.d.mts +5 -5
- package/internals/hooks/useTreeViewRootProps.d.ts +5 -5
- package/internals/hooks/useTreeViewStore.d.mts +1 -1
- package/internals/hooks/useTreeViewStore.d.ts +1 -1
- package/internals/hooks/useTreeViewStore.js +7 -4
- package/internals/hooks/useTreeViewStore.mjs +7 -4
- package/internals/models/events.d.mts +2 -2
- package/internals/models/events.d.ts +2 -2
- package/internals/models/itemPlugin.d.mts +5 -5
- package/internals/models/itemPlugin.d.ts +5 -5
- package/internals/models/treeView.d.mts +1 -1
- package/internals/models/treeView.d.ts +1 -1
- package/internals/plugins/expansion/TreeViewExpansionPlugin.d.mts +1 -1
- package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +1 -1
- package/internals/plugins/expansion/selectors.d.mts +1 -1
- package/internals/plugins/expansion/selectors.d.ts +1 -1
- package/internals/plugins/expansion/utils.d.mts +1 -1
- package/internals/plugins/expansion/utils.d.ts +1 -1
- package/internals/plugins/focus/TreeViewFocusPlugin.d.mts +1 -1
- package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +1 -1
- package/internals/plugins/focus/TreeViewFocusPlugin.js +2 -2
- package/internals/plugins/focus/TreeViewFocusPlugin.mjs +2 -2
- package/internals/plugins/focus/selectors.d.mts +1 -1
- package/internals/plugins/focus/selectors.d.ts +1 -1
- package/internals/plugins/id/selectors.d.mts +1 -1
- package/internals/plugins/id/selectors.d.ts +1 -1
- package/internals/plugins/items/TreeViewItemsPlugin.d.mts +2 -2
- package/internals/plugins/items/TreeViewItemsPlugin.d.ts +2 -2
- package/internals/plugins/items/selectors.d.mts +3 -3
- package/internals/plugins/items/selectors.d.ts +3 -3
- package/internals/plugins/items/utils.d.mts +2 -2
- package/internals/plugins/items/utils.d.ts +2 -2
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.d.mts +2 -2
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.d.ts +2 -2
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +2 -1
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.mjs +2 -1
- package/internals/plugins/jsxItems/itemPlugin.d.mts +2 -2
- package/internals/plugins/jsxItems/itemPlugin.d.ts +2 -2
- package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.mts +1 -1
- package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +1 -1
- package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.mts +2 -2
- package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +2 -2
- package/internals/plugins/labelEditing/itemPlugin.d.mts +2 -2
- package/internals/plugins/labelEditing/itemPlugin.d.ts +2 -2
- package/internals/plugins/labelEditing/selectors.d.mts +1 -1
- package/internals/plugins/labelEditing/selectors.d.ts +1 -1
- package/internals/plugins/lazyLoading/selectors.d.mts +1 -1
- package/internals/plugins/lazyLoading/selectors.d.ts +1 -1
- package/internals/plugins/lazyLoading/types.d.mts +1 -1
- package/internals/plugins/lazyLoading/types.d.ts +1 -1
- package/internals/plugins/selection/itemPlugin.d.mts +3 -3
- package/internals/plugins/selection/itemPlugin.d.ts +3 -3
- package/internals/plugins/selection/selectors.d.mts +1 -1
- package/internals/plugins/selection/selectors.d.ts +1 -1
- package/internals/utils/tree.d.mts +1 -1
- package/internals/utils/tree.d.ts +1 -1
- package/package.json +4 -4
- package/themeAugmentation/components.d.mts +1 -1
- package/themeAugmentation/components.d.ts +1 -1
- package/themeAugmentation/overrides.d.mts +3 -3
- package/themeAugmentation/overrides.d.ts +3 -3
- package/themeAugmentation/props.d.mts +3 -3
- package/themeAugmentation/props.d.ts +3 -3
- package/useTreeItem/useTreeItem.d.mts +4 -4
- package/useTreeItem/useTreeItem.d.ts +4 -4
- package/useTreeItem/useTreeItem.types.d.mts +3 -3
- package/useTreeItem/useTreeItem.types.d.ts +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewProviderProps } from "./TreeViewProvider.types.js";
|
|
2
|
-
import { TreeViewAnyStore } from "../models/index.js";
|
|
1
|
+
import type { TreeViewProviderProps } from "./TreeViewProvider.types.js";
|
|
2
|
+
import type { TreeViewAnyStore } from "../models/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Sets up the contexts for the underlying Tree Item components.
|
|
5
5
|
*
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { disposeSymbol } from '@mui/x-internals/disposable';
|
|
3
|
+
import type { TreeItemWrapper, TreeViewItemPluginResponse, TreeViewPublicAPI, TreeViewAnyStore } from "../models/index.mjs";
|
|
3
4
|
import type { TreeItemProps } from "../../TreeItem/TreeItem.types.mjs";
|
|
4
|
-
import { TreeViewClasses, TreeViewSlotProps, TreeViewSlots } from "./TreeViewStyleContext.mjs";
|
|
5
|
-
import { UseTreeViewBuildContextParameters } from "./useTreeViewBuildContext.mjs";
|
|
5
|
+
import type { TreeViewClasses, TreeViewSlotProps, TreeViewSlots } from "./TreeViewStyleContext.mjs";
|
|
6
|
+
import type { UseTreeViewBuildContextParameters } from "./useTreeViewBuildContext.mjs";
|
|
6
7
|
export type TreeViewItemPluginsRunner = (props: TreeItemProps) => Required<TreeViewItemPluginResponse>;
|
|
7
|
-
export type TreeViewStoreInContext<TStore extends TreeViewAnyStore> = Omit<TStore, 'setState' | 'update' | 'set' | 'updateStateFromParameters' | '
|
|
8
|
+
export type TreeViewStoreInContext<TStore extends TreeViewAnyStore> = Omit<TStore, 'setState' | 'update' | 'set' | 'updateStateFromParameters' | 'disposables' | typeof disposeSymbol | 'mountEffect' | 'registerStoreEffect' | 'itemPluginManager' | 'parameters'>;
|
|
8
9
|
export interface TreeViewContextValue<TStore extends TreeViewAnyStore> {
|
|
9
10
|
publicAPI: TreeViewPublicAPI<TStore>;
|
|
10
11
|
store: TreeViewStoreInContext<TStore>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { disposeSymbol } from '@mui/x-internals/disposable';
|
|
3
|
+
import type { TreeItemWrapper, TreeViewItemPluginResponse, TreeViewPublicAPI, TreeViewAnyStore } from "../models/index.js";
|
|
3
4
|
import type { TreeItemProps } from "../../TreeItem/TreeItem.types.js";
|
|
4
|
-
import { TreeViewClasses, TreeViewSlotProps, TreeViewSlots } from "./TreeViewStyleContext.js";
|
|
5
|
-
import { UseTreeViewBuildContextParameters } from "./useTreeViewBuildContext.js";
|
|
5
|
+
import type { TreeViewClasses, TreeViewSlotProps, TreeViewSlots } from "./TreeViewStyleContext.js";
|
|
6
|
+
import type { UseTreeViewBuildContextParameters } from "./useTreeViewBuildContext.js";
|
|
6
7
|
export type TreeViewItemPluginsRunner = (props: TreeItemProps) => Required<TreeViewItemPluginResponse>;
|
|
7
|
-
export type TreeViewStoreInContext<TStore extends TreeViewAnyStore> = Omit<TStore, 'setState' | 'update' | 'set' | 'updateStateFromParameters' | '
|
|
8
|
+
export type TreeViewStoreInContext<TStore extends TreeViewAnyStore> = Omit<TStore, 'setState' | 'update' | 'set' | 'updateStateFromParameters' | 'disposables' | typeof disposeSymbol | 'mountEffect' | 'registerStoreEffect' | 'itemPluginManager' | 'parameters'>;
|
|
8
9
|
export interface TreeViewContextValue<TStore extends TreeViewAnyStore> {
|
|
9
10
|
publicAPI: TreeViewPublicAPI<TStore>;
|
|
10
11
|
store: TreeViewStoreInContext<TStore>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { TreeViewContextValue, TreeViewItemPluginsRunner, TreeViewStoreInContext } from "./TreeViewProvider.types.mjs";
|
|
3
|
-
import { TreeViewAnyStore, TreeViewPublicAPI, TreeItemWrapper } from "../models/index.mjs";
|
|
2
|
+
import type { TreeViewContextValue, TreeViewItemPluginsRunner, TreeViewStoreInContext } from "./TreeViewProvider.types.mjs";
|
|
3
|
+
import type { TreeViewAnyStore, TreeViewPublicAPI, TreeItemWrapper } from "../models/index.mjs";
|
|
4
4
|
export declare const useTreeViewBuildContext: <TStore extends TreeViewAnyStore>(parameters: UseTreeViewBuildContextParameters<TStore>) => TreeViewContextValue<TStore>;
|
|
5
5
|
export interface UseTreeViewBuildContextParameters<TStore extends TreeViewAnyStore> {
|
|
6
6
|
store: TStore;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { TreeViewContextValue, TreeViewItemPluginsRunner, TreeViewStoreInContext } from "./TreeViewProvider.types.js";
|
|
3
|
-
import { TreeViewAnyStore, TreeViewPublicAPI, TreeItemWrapper } from "../models/index.js";
|
|
2
|
+
import type { TreeViewContextValue, TreeViewItemPluginsRunner, TreeViewStoreInContext } from "./TreeViewProvider.types.js";
|
|
3
|
+
import type { TreeViewAnyStore, TreeViewPublicAPI, TreeItemWrapper } from "../models/index.js";
|
|
4
4
|
export declare const useTreeViewBuildContext: <TStore extends TreeViewAnyStore>(parameters: UseTreeViewBuildContextParameters<TStore>) => TreeViewContextValue<TStore>;
|
|
5
5
|
export interface UseTreeViewBuildContextParameters<TStore extends TreeViewAnyStore> {
|
|
6
6
|
store: TStore;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { SlotComponentProps } from '@mui/utils/types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import type { SlotComponentProps } from '@mui/utils/types';
|
|
3
|
+
import type { TreeItemProps } from "../../TreeItem/index.mjs";
|
|
4
|
+
import { TreeItem } from "../../TreeItem/index.mjs";
|
|
5
|
+
import type { TreeViewItemId } from "../../models/index.mjs";
|
|
5
6
|
export declare const RichTreeViewItem: React.MemoExoticComponent<({
|
|
6
7
|
itemSlot,
|
|
7
8
|
itemSlotProps,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { SlotComponentProps } from '@mui/utils/types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import type { SlotComponentProps } from '@mui/utils/types';
|
|
3
|
+
import type { TreeItemProps } from "../../TreeItem/index.js";
|
|
4
|
+
import { TreeItem } from "../../TreeItem/index.js";
|
|
5
|
+
import type { TreeViewItemId } from "../../models/index.js";
|
|
5
6
|
export declare const RichTreeViewItem: React.MemoExoticComponent<({
|
|
6
7
|
itemSlot,
|
|
7
8
|
itemSlotProps,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
-
import { TreeViewCancellableEvent } from "../../models/index.mjs";
|
|
4
|
-
import { TreeViewAnyStore } from "../models/index.mjs";
|
|
5
|
-
import { TreeViewStoreInContext } from "../TreeViewProvider/index.mjs";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { EventHandlers } from '@mui/utils/types';
|
|
3
|
+
import type { TreeViewCancellableEvent } from "../../models/index.mjs";
|
|
4
|
+
import type { TreeViewAnyStore } from "../models/index.mjs";
|
|
5
|
+
import type { TreeViewStoreInContext } from "../TreeViewProvider/index.mjs";
|
|
6
6
|
export declare function useTreeViewRootProps<TStore extends TreeViewAnyStore>(store: TreeViewStoreInContext<TStore>, forwardedProps: React.HTMLAttributes<HTMLUListElement>, ref: React.Ref<HTMLUListElement | null> | undefined): (otherHandlers: EventHandlers) => {
|
|
7
7
|
style: React.CSSProperties;
|
|
8
8
|
onFocus: (event: React.FocusEvent<HTMLUListElement> & TreeViewCancellableEvent) => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
-
import { TreeViewCancellableEvent } from "../../models/index.js";
|
|
4
|
-
import { TreeViewAnyStore } from "../models/index.js";
|
|
5
|
-
import { TreeViewStoreInContext } from "../TreeViewProvider/index.js";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { EventHandlers } from '@mui/utils/types';
|
|
3
|
+
import type { TreeViewCancellableEvent } from "../../models/index.js";
|
|
4
|
+
import type { TreeViewAnyStore } from "../models/index.js";
|
|
5
|
+
import type { TreeViewStoreInContext } from "../TreeViewProvider/index.js";
|
|
6
6
|
export declare function useTreeViewRootProps<TStore extends TreeViewAnyStore>(store: TreeViewStoreInContext<TStore>, forwardedProps: React.HTMLAttributes<HTMLUListElement>, ref: React.Ref<HTMLUListElement | null> | undefined): (otherHandlers: EventHandlers) => {
|
|
7
7
|
style: React.CSSProperties;
|
|
8
8
|
onFocus: (event: React.FocusEvent<HTMLUListElement> & TreeViewCancellableEvent) => void;
|
|
@@ -7,21 +7,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.useTreeViewStore = useTreeViewStore;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _useRefWithInit = require("@base-ui/utils/useRefWithInit");
|
|
11
10
|
var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
|
|
12
11
|
var _useOnMount = require("@base-ui/utils/useOnMount");
|
|
12
|
+
var _useDisposable = require("@mui/x-internals/useDisposable");
|
|
13
13
|
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
14
14
|
/**
|
|
15
15
|
* Creates a Tree View store and keep it in sync with the provided parameters.
|
|
16
16
|
*/
|
|
17
17
|
function useTreeViewStore(StoreClass, parameters) {
|
|
18
18
|
const isRtl = (0, _RtlProvider.useRtl)();
|
|
19
|
-
const store = (0,
|
|
19
|
+
const store = (0, _useDisposable.useDisposable)(() => new StoreClass((0, _extends2.default)({}, parameters, {
|
|
20
20
|
isRtl
|
|
21
|
-
})))
|
|
21
|
+
})));
|
|
22
22
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => store.updateStateFromParameters((0, _extends2.default)({}, parameters, {
|
|
23
23
|
isRtl
|
|
24
24
|
})), [store, isRtl, parameters]);
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
// Mount-time side effects (e.g. kicking off lazy-loading fetches). The store is
|
|
27
|
+
// created during render by `useDisposable`, so these can't run in the factory.
|
|
28
|
+
(0, _useOnMount.useOnMount)(store.mountEffect);
|
|
26
29
|
return store;
|
|
27
30
|
}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import { useRefWithInit } from '@base-ui/utils/useRefWithInit';
|
|
5
4
|
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
|
|
6
5
|
import { useOnMount } from '@base-ui/utils/useOnMount';
|
|
6
|
+
import { useDisposable } from '@mui/x-internals/useDisposable';
|
|
7
7
|
import { useRtl } from '@mui/system/RtlProvider';
|
|
8
8
|
/**
|
|
9
9
|
* Creates a Tree View store and keep it in sync with the provided parameters.
|
|
10
10
|
*/
|
|
11
11
|
export function useTreeViewStore(StoreClass, parameters) {
|
|
12
12
|
const isRtl = useRtl();
|
|
13
|
-
const store =
|
|
13
|
+
const store = useDisposable(() => new StoreClass(_extends({}, parameters, {
|
|
14
14
|
isRtl
|
|
15
|
-
})))
|
|
15
|
+
})));
|
|
16
16
|
useIsoLayoutEffect(() => store.updateStateFromParameters(_extends({}, parameters, {
|
|
17
17
|
isRtl
|
|
18
18
|
})), [store, isRtl, parameters]);
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
// Mount-time side effects (e.g. kicking off lazy-loading fetches). The store is
|
|
21
|
+
// created during render by `useDisposable`, so these can't run in the factory.
|
|
22
|
+
useOnMount(store.mountEffect);
|
|
20
23
|
return store;
|
|
21
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MuiEvent } from '@mui/x-internals/types';
|
|
2
|
-
import { TreeViewItemId } from "../../models/index.mjs";
|
|
1
|
+
import type { MuiEvent } from '@mui/x-internals/types';
|
|
2
|
+
import type { TreeViewItemId } from "../../models/index.mjs";
|
|
3
3
|
interface TreeViewEventLookup {
|
|
4
4
|
/**
|
|
5
5
|
* Fired before an item is expanded or collapsed.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MuiEvent } from '@mui/x-internals/types';
|
|
2
|
-
import { TreeViewItemId } from "../../models/index.js";
|
|
1
|
+
import type { MuiEvent } from '@mui/x-internals/types';
|
|
2
|
+
import type { TreeViewItemId } from "../../models/index.js";
|
|
3
3
|
interface TreeViewEventLookup {
|
|
4
4
|
/**
|
|
5
5
|
* Fired before an item is expanded or collapsed.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
-
import { TreeViewItemId } from "../../models/index.mjs";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { EventHandlers } from '@mui/utils/types';
|
|
3
|
+
import type { TreeViewItemId } from "../../models/index.mjs";
|
|
4
4
|
import type { UseTreeItemContentSlotOwnProps, UseTreeItemDragAndDropOverlaySlotOwnProps, UseTreeItemLabelInputSlotOwnProps, UseTreeItemRootSlotOwnProps, UseTreeItemCheckboxSlotOwnProps, UseTreeItemLabelSlotOwnProps } from "../../useTreeItem/index.mjs";
|
|
5
5
|
import type { UseTreeItemInteractions } from "../../hooks/useTreeItemUtils/useTreeItemUtils.mjs";
|
|
6
6
|
import type { TreeItemProps } from "../../TreeItem/TreeItem.types.mjs";
|
|
7
|
-
import { TreeViewAnyStore } from "./treeView.mjs";
|
|
8
|
-
import { TreeViewStoreInContext } from "../TreeViewProvider/index.mjs";
|
|
7
|
+
import type { TreeViewAnyStore } from "./treeView.mjs";
|
|
8
|
+
import type { TreeViewStoreInContext } from "../TreeViewProvider/index.mjs";
|
|
9
9
|
export interface TreeViewItemPluginSlotPropsEnhancerParams {
|
|
10
10
|
rootRefObject: React.RefObject<HTMLLIElement | null>;
|
|
11
11
|
contentRefObject: React.RefObject<HTMLDivElement | null>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { EventHandlers } from '@mui/utils/types';
|
|
3
|
-
import { TreeViewItemId } from "../../models/index.js";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { EventHandlers } from '@mui/utils/types';
|
|
3
|
+
import type { TreeViewItemId } from "../../models/index.js";
|
|
4
4
|
import type { UseTreeItemContentSlotOwnProps, UseTreeItemDragAndDropOverlaySlotOwnProps, UseTreeItemLabelInputSlotOwnProps, UseTreeItemRootSlotOwnProps, UseTreeItemCheckboxSlotOwnProps, UseTreeItemLabelSlotOwnProps } from "../../useTreeItem/index.js";
|
|
5
5
|
import type { UseTreeItemInteractions } from "../../hooks/useTreeItemUtils/useTreeItemUtils.js";
|
|
6
6
|
import type { TreeItemProps } from "../../TreeItem/TreeItem.types.js";
|
|
7
|
-
import { TreeViewAnyStore } from "./treeView.js";
|
|
8
|
-
import { TreeViewStoreInContext } from "../TreeViewProvider/index.js";
|
|
7
|
+
import type { TreeViewAnyStore } from "./treeView.js";
|
|
8
|
+
import type { TreeViewStoreInContext } from "../TreeViewProvider/index.js";
|
|
9
9
|
export interface TreeViewItemPluginSlotPropsEnhancerParams {
|
|
10
10
|
rootRefObject: React.RefObject<HTMLLIElement | null>;
|
|
11
11
|
contentRefObject: React.RefObject<HTMLDivElement | null>;
|
|
@@ -17,7 +17,7 @@ class TreeViewFocusPlugin {
|
|
|
17
17
|
// Whenever the items change, we need to ensure the focused item is still present.
|
|
18
18
|
// If the focused item was removed, focus the closest neighbor instead of the first item.
|
|
19
19
|
let previousState = store.state;
|
|
20
|
-
this.store.subscribe(newState => {
|
|
20
|
+
this.store.disposables.defer(this.store.subscribe(newState => {
|
|
21
21
|
// Only run when items actually changed.
|
|
22
22
|
if (newState.itemMetaLookup === previousState.itemMetaLookup) {
|
|
23
23
|
previousState = newState;
|
|
@@ -36,7 +36,7 @@ class TreeViewFocusPlugin {
|
|
|
36
36
|
this.applyItemFocus(null, itemToFocusId);
|
|
37
37
|
}
|
|
38
38
|
previousState = newState;
|
|
39
|
-
});
|
|
39
|
+
}));
|
|
40
40
|
}
|
|
41
41
|
setFocusedItemId = itemId => {
|
|
42
42
|
const focusedItemId = _selectors.focusSelectors.focusedItemId(this.store.state);
|
|
@@ -11,7 +11,7 @@ export class TreeViewFocusPlugin {
|
|
|
11
11
|
// Whenever the items change, we need to ensure the focused item is still present.
|
|
12
12
|
// If the focused item was removed, focus the closest neighbor instead of the first item.
|
|
13
13
|
let previousState = store.state;
|
|
14
|
-
this.store.subscribe(newState => {
|
|
14
|
+
this.store.disposables.defer(this.store.subscribe(newState => {
|
|
15
15
|
// Only run when items actually changed.
|
|
16
16
|
if (newState.itemMetaLookup === previousState.itemMetaLookup) {
|
|
17
17
|
previousState = newState;
|
|
@@ -30,7 +30,7 @@ export class TreeViewFocusPlugin {
|
|
|
30
30
|
this.applyItemFocus(null, itemToFocusId);
|
|
31
31
|
}
|
|
32
32
|
previousState = newState;
|
|
33
|
-
});
|
|
33
|
+
}));
|
|
34
34
|
}
|
|
35
35
|
setFocusedItemId = itemId => {
|
|
36
36
|
const focusedItemId = focusSelectors.focusedItemId(this.store.state);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.mjs";
|
|
1
|
+
import type { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.mjs";
|
|
2
2
|
export declare const focusSelectors: {
|
|
3
3
|
/**
|
|
4
4
|
* Gets the item that should be sequentially focusable (usually with the Tab key).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
1
|
+
import type { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
2
2
|
export declare const focusSelectors: {
|
|
3
3
|
/**
|
|
4
4
|
* Gets the item that should be sequentially focusable (usually with the Tab key).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewItemId, TreeViewValidItem } from "../../../models/index.mjs";
|
|
2
|
-
import { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/MinimalTreeViewStore.types.mjs";
|
|
1
|
+
import type { TreeViewItemId, TreeViewValidItem } from "../../../models/index.mjs";
|
|
2
|
+
import type { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/MinimalTreeViewStore.types.mjs";
|
|
3
3
|
export declare class TreeViewItemsPlugin<R extends TreeViewValidItem<R>> {
|
|
4
4
|
private store;
|
|
5
5
|
constructor(store: any);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewItemId, TreeViewValidItem } from "../../../models/index.js";
|
|
2
|
-
import { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/MinimalTreeViewStore.types.js";
|
|
1
|
+
import type { TreeViewItemId, TreeViewValidItem } from "../../../models/index.js";
|
|
2
|
+
import type { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/MinimalTreeViewStore.types.js";
|
|
3
3
|
export declare class TreeViewItemsPlugin<R extends TreeViewValidItem<R>> {
|
|
4
4
|
private store;
|
|
5
5
|
constructor(store: any);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TreeViewItemMeta } from "../../models/index.mjs";
|
|
2
|
-
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.mjs";
|
|
3
|
-
import { RichTreeViewState } from "../../RichTreeViewStore/index.mjs";
|
|
1
|
+
import type { TreeViewItemMeta } from "../../models/index.mjs";
|
|
2
|
+
import type { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.mjs";
|
|
3
|
+
import type { RichTreeViewState } from "../../RichTreeViewStore/index.mjs";
|
|
4
4
|
export declare const itemsSelectors: {
|
|
5
5
|
/**
|
|
6
6
|
* Gets the DOM structure of the Tree View.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TreeViewItemMeta } from "../../models/index.js";
|
|
2
|
-
import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
3
|
-
import { RichTreeViewState } from "../../RichTreeViewStore/index.js";
|
|
1
|
+
import type { TreeViewItemMeta } from "../../models/index.js";
|
|
2
|
+
import type { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
|
|
3
|
+
import type { RichTreeViewState } from "../../RichTreeViewStore/index.js";
|
|
4
4
|
export declare const itemsSelectors: {
|
|
5
5
|
/**
|
|
6
6
|
* Gets the DOM structure of the Tree View.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewValidItem, TreeViewItemId } from "../../../models/index.mjs";
|
|
2
|
-
import { TreeViewItemMeta } from "../../models/index.mjs";
|
|
1
|
+
import type { TreeViewValidItem, TreeViewItemId } from "../../../models/index.mjs";
|
|
2
|
+
import type { TreeViewItemMeta } from "../../models/index.mjs";
|
|
3
3
|
import type { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/index.mjs";
|
|
4
4
|
export declare const TREE_VIEW_ROOT_PARENT_ID = "__TREE_VIEW_ROOT_PARENT_ID__";
|
|
5
5
|
export declare const buildSiblingIndexes: (siblings: string[]) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewValidItem, TreeViewItemId } from "../../../models/index.js";
|
|
2
|
-
import { TreeViewItemMeta } from "../../models/index.js";
|
|
1
|
+
import type { TreeViewValidItem, TreeViewItemId } from "../../../models/index.js";
|
|
2
|
+
import type { TreeViewItemMeta } from "../../models/index.js";
|
|
3
3
|
import type { MinimalTreeViewParameters } from "../../MinimalTreeViewStore/index.js";
|
|
4
4
|
export declare const TREE_VIEW_ROOT_PARENT_ID = "__TREE_VIEW_ROOT_PARENT_ID__";
|
|
5
5
|
export declare const buildSiblingIndexes: (siblings: string[]) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewItemId } from "../../../models/index.mjs";
|
|
2
|
-
import { TreeViewItemMeta } from "../../models/index.mjs";
|
|
1
|
+
import type { TreeViewItemId } from "../../../models/index.mjs";
|
|
2
|
+
import type { TreeViewItemMeta } from "../../models/index.mjs";
|
|
3
3
|
import type { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.mjs";
|
|
4
4
|
export declare class TreeViewJSXItemsPlugin {
|
|
5
5
|
private store;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewItemId } from "../../../models/index.js";
|
|
2
|
-
import { TreeViewItemMeta } from "../../models/index.js";
|
|
1
|
+
import type { TreeViewItemId } from "../../../models/index.js";
|
|
2
|
+
import type { TreeViewItemMeta } from "../../models/index.js";
|
|
3
3
|
import type { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.js";
|
|
4
4
|
export declare class TreeViewJSXItemsPlugin {
|
|
5
5
|
private store;
|
|
@@ -118,7 +118,8 @@ Two items were provided with the same id in the \`items\` prop: "${item.id}"` :
|
|
|
118
118
|
|
|
119
119
|
// If a parent was selected while its children were unmounted (collapsed with unmountOnExit),
|
|
120
120
|
// re-run selection propagation now that the children are registered.
|
|
121
|
-
|
|
121
|
+
// The multiSelect guard matches the documented contract: selectionPropagation only works with multiSelect.
|
|
122
|
+
if (parentId !== null && _selectors.selectionSelectors.isMultiSelectEnabled(this.store.state) && _selectors.selectionSelectors.propagationRules(this.store.state).descendants && _selectors.selectionSelectors.isItemSelected(this.store.state, parentId)) {
|
|
122
123
|
this.store.selection.setItemSelection({
|
|
123
124
|
itemId: parentId,
|
|
124
125
|
shouldBeSelected: true,
|
|
@@ -111,7 +111,8 @@ Two items were provided with the same id in the \`items\` prop: "${item.id}"` :
|
|
|
111
111
|
|
|
112
112
|
// If a parent was selected while its children were unmounted (collapsed with unmountOnExit),
|
|
113
113
|
// re-run selection propagation now that the children are registered.
|
|
114
|
-
|
|
114
|
+
// The multiSelect guard matches the documented contract: selectionPropagation only works with multiSelect.
|
|
115
|
+
if (parentId !== null && selectionSelectors.isMultiSelectEnabled(this.store.state) && selectionSelectors.propagationRules(this.store.state).descendants && selectionSelectors.isItemSelected(this.store.state, parentId)) {
|
|
115
116
|
this.store.selection.setItemSelection({
|
|
116
117
|
itemId: parentId,
|
|
117
118
|
shouldBeSelected: true,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TreeItemWrapper, TreeViewItemPlugin } from "../../models/index.mjs";
|
|
2
|
-
import { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.mjs";
|
|
1
|
+
import type { TreeItemWrapper, TreeViewItemPlugin } from "../../models/index.mjs";
|
|
2
|
+
import type { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.mjs";
|
|
3
3
|
export declare const useJSXItemsItemPlugin: TreeViewItemPlugin;
|
|
4
4
|
export declare const jsxItemsitemWrapper: TreeItemWrapper<SimpleTreeViewStore<any>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TreeItemWrapper, TreeViewItemPlugin } from "../../models/index.js";
|
|
2
|
-
import { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.js";
|
|
1
|
+
import type { TreeItemWrapper, TreeViewItemPlugin } from "../../models/index.js";
|
|
2
|
+
import type { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.js";
|
|
3
3
|
export declare const useJSXItemsItemPlugin: TreeViewItemPlugin;
|
|
4
4
|
export declare const jsxItemsitemWrapper: TreeItemWrapper<SimpleTreeViewStore<any>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ExtendableRichTreeViewStore } from "../../RichTreeViewStore/RichTreeViewStore.mjs";
|
|
2
|
-
import { TreeViewItemId } from "../../../models/index.mjs";
|
|
1
|
+
import type { ExtendableRichTreeViewStore } from "../../RichTreeViewStore/RichTreeViewStore.mjs";
|
|
2
|
+
import type { TreeViewItemId } from "../../../models/index.mjs";
|
|
3
3
|
export declare class TreeViewLabelEditingPlugin {
|
|
4
4
|
private store;
|
|
5
5
|
constructor(store: ExtendableRichTreeViewStore<any, any>);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ExtendableRichTreeViewStore } from "../../RichTreeViewStore/RichTreeViewStore.js";
|
|
2
|
-
import { TreeViewItemId } from "../../../models/index.js";
|
|
1
|
+
import type { ExtendableRichTreeViewStore } from "../../RichTreeViewStore/RichTreeViewStore.js";
|
|
2
|
+
import type { TreeViewItemId } from "../../../models/index.js";
|
|
3
3
|
export declare class TreeViewLabelEditingPlugin {
|
|
4
4
|
private store;
|
|
5
5
|
constructor(store: ExtendableRichTreeViewStore<any, any>);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewItemPlugin } from "../../models/index.mjs";
|
|
2
|
-
import { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.mjs";
|
|
1
|
+
import type { TreeViewItemPlugin } from "../../models/index.mjs";
|
|
2
|
+
import type { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.mjs";
|
|
3
3
|
export declare const useLabelEditingItemPlugin: TreeViewItemPlugin;
|
|
4
4
|
interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
|
|
5
5
|
interface UseTreeItemLabelSlotPropsFromLabelEditing {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeViewItemPlugin } from "../../models/index.js";
|
|
2
|
-
import { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.js";
|
|
1
|
+
import type { TreeViewItemPlugin } from "../../models/index.js";
|
|
2
|
+
import type { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.js";
|
|
3
3
|
export declare const useLabelEditingItemPlugin: TreeViewItemPlugin;
|
|
4
4
|
interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
|
|
5
5
|
interface UseTreeItemLabelSlotPropsFromLabelEditing {
|