@mui/x-tree-view 8.2.0 → 8.3.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 +107 -0
- package/RichTreeView/RichTreeView.js +0 -6
- package/RichTreeView/RichTreeView.types.d.ts +1 -7
- package/SimpleTreeView/SimpleTreeView.js +0 -6
- package/SimpleTreeView/SimpleTreeView.types.d.ts +1 -7
- package/esm/RichTreeView/RichTreeView.js +0 -6
- package/esm/RichTreeView/RichTreeView.types.d.ts +1 -7
- package/esm/SimpleTreeView/SimpleTreeView.js +0 -6
- package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +1 -7
- package/esm/index.js +1 -1
- package/esm/internals/corePlugins/useTreeViewId/index.d.ts +1 -1
- package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +2 -2
- package/esm/internals/index.d.ts +2 -2
- package/esm/internals/index.js +1 -1
- package/esm/internals/models/plugin.d.ts +13 -22
- package/esm/internals/models/treeView.d.ts +0 -1
- package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +4 -3
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +2 -2
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +2 -2
- package/esm/internals/plugins/useTreeViewFocus/index.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +2 -2
- package/esm/internals/plugins/useTreeViewItems/index.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +1 -1
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +2 -2
- package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +2 -2
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +1 -1
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +2 -2
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
- package/esm/internals/plugins/useTreeViewSelection/index.d.ts +1 -1
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +4 -3
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +2 -2
- package/esm/internals/useTreeView/{extractPluginParamsFromProps.d.ts → useExtractPluginParamsFromProps.d.ts} +8 -9
- package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +51 -0
- package/esm/internals/useTreeView/useTreeView.js +3 -5
- package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -2
- package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +4 -8
- package/esm/internals/useTreeView/useTreeViewBuildContext.js +8 -7
- package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +1 -1
- package/esm/internals/utils/tree.js +1 -1
- package/index.js +1 -1
- package/internals/corePlugins/useTreeViewId/index.d.ts +1 -1
- package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +2 -2
- package/internals/index.d.ts +2 -2
- package/internals/index.js +1 -1
- package/internals/models/plugin.d.ts +13 -22
- package/internals/models/treeView.d.ts +0 -1
- package/internals/plugins/useTreeViewExpansion/index.d.ts +1 -1
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +5 -4
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +2 -2
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +2 -2
- package/internals/plugins/useTreeViewFocus/index.d.ts +1 -1
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +2 -2
- package/internals/plugins/useTreeViewItems/index.d.ts +1 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.js +1 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +2 -2
- package/internals/plugins/useTreeViewJSXItems/index.d.ts +1 -1
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +2 -2
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +1 -1
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +2 -2
- package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
- package/internals/plugins/useTreeViewSelection/index.d.ts +1 -1
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +5 -4
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +2 -2
- package/internals/useTreeView/{extractPluginParamsFromProps.d.ts → useExtractPluginParamsFromProps.d.ts} +8 -9
- package/internals/useTreeView/useExtractPluginParamsFromProps.js +60 -0
- package/internals/useTreeView/useTreeView.js +3 -5
- package/internals/useTreeView/useTreeView.types.d.ts +1 -2
- package/internals/useTreeView/useTreeViewBuildContext.d.ts +4 -8
- package/internals/useTreeView/useTreeViewBuildContext.js +8 -7
- package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +1 -1
- package/internals/utils/tree.js +1 -1
- package/package.json +4 -4
- package/esm/internals/useTreeView/extractPluginParamsFromProps.js +0 -42
- package/esm/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
- package/esm/internals/useTreeView/useTreeViewPlugins.js +0 -0
- package/esm/internals/utils/models.d.ts +0 -7
- package/esm/internals/utils/models.js +0 -23
- package/internals/useTreeView/extractPluginParamsFromProps.js +0 -50
- package/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
- package/internals/useTreeView/useTreeViewPlugins.js +0 -1
- package/internals/utils/models.d.ts +0 -7
- package/internals/utils/models.js +0 -30
|
@@ -60,7 +60,7 @@ export interface UseTreeViewLazyLoadingParameters<R extends {}> {
|
|
|
60
60
|
dataSource?: DataSource<R>;
|
|
61
61
|
dataSourceCache?: DataSourceCache;
|
|
62
62
|
}
|
|
63
|
-
export type
|
|
63
|
+
export type UseTreeViewLazyLoadingParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLazyLoadingParameters<R>, 'dataSource'>;
|
|
64
64
|
export interface UseTreeViewLazyLoadingState {
|
|
65
65
|
lazyLoading: {
|
|
66
66
|
enabled: boolean;
|
|
@@ -72,11 +72,10 @@ export interface UseTreeViewLazyLoadingState {
|
|
|
72
72
|
}
|
|
73
73
|
export type UseTreeViewLazyLoadingSignature = TreeViewPluginSignature<{
|
|
74
74
|
params: UseTreeViewLazyLoadingParameters<any>;
|
|
75
|
-
|
|
75
|
+
paramsWithDefaults: UseTreeViewLazyLoadingParametersWithDefaults<any>;
|
|
76
76
|
publicAPI: UseTreeViewLazyLoadingPublicAPI;
|
|
77
77
|
instance: UseTreeViewLazyLoadingInstance;
|
|
78
78
|
state: UseTreeViewLazyLoadingState;
|
|
79
|
-
experimentalFeatures: 'lazyLoading';
|
|
80
79
|
dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewSelectionSignature];
|
|
81
80
|
}>;
|
|
82
81
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { useTreeViewSelection } from "./useTreeViewSelection.js";
|
|
2
|
-
export type { UseTreeViewSelectionSignature, UseTreeViewSelectionParameters,
|
|
2
|
+
export type { UseTreeViewSelectionSignature, UseTreeViewSelectionParameters, UseTreeViewSelectionParametersWithDefaults } from "./useTreeViewSelection.types.js";
|
|
@@ -8,18 +8,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.useTreeViewSelection = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _useAssertModelConsistency = require("@mui/x-internals/useAssertModelConsistency");
|
|
11
12
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
12
13
|
var _tree = require("../../utils/tree");
|
|
13
14
|
var _useTreeViewSelection = require("./useTreeViewSelection.utils");
|
|
14
15
|
var _useTreeViewSelection2 = require("./useTreeViewSelection.selectors");
|
|
15
16
|
var _useTreeViewSelection3 = require("./useTreeViewSelection.itemPlugin");
|
|
16
|
-
var _models = require("../../utils/models");
|
|
17
17
|
const useTreeViewSelection = ({
|
|
18
18
|
store,
|
|
19
19
|
params
|
|
20
20
|
}) => {
|
|
21
|
-
(0,
|
|
22
|
-
|
|
21
|
+
(0, _useAssertModelConsistency.useAssertModelConsistency)({
|
|
22
|
+
componentName: 'Tree View',
|
|
23
|
+
propName: 'selectedItems',
|
|
23
24
|
controlled: params.selectedItems,
|
|
24
25
|
defaultValue: params.defaultSelectedItems
|
|
25
26
|
});
|
|
@@ -212,7 +213,7 @@ exports.useTreeViewSelection = useTreeViewSelection;
|
|
|
212
213
|
useTreeViewSelection.itemPlugin = _useTreeViewSelection3.useTreeViewSelectionItemPlugin;
|
|
213
214
|
const DEFAULT_SELECTED_ITEMS = [];
|
|
214
215
|
const EMPTY_SELECTION_PROPAGATION = {};
|
|
215
|
-
useTreeViewSelection.
|
|
216
|
+
useTreeViewSelection.applyDefaultValuesToParams = ({
|
|
216
217
|
params
|
|
217
218
|
}) => (0, _extends2.default)({}, params, {
|
|
218
219
|
disableSelection: params.disableSelection ?? false,
|
|
@@ -112,7 +112,7 @@ export interface UseTreeViewSelectionParameters<Multiple extends boolean | undef
|
|
|
112
112
|
*/
|
|
113
113
|
onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: string, isSelected: boolean) => void;
|
|
114
114
|
}
|
|
115
|
-
export type
|
|
115
|
+
export type UseTreeViewSelectionParametersWithDefaults<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
|
|
116
116
|
export interface UseTreeViewSelectionState {
|
|
117
117
|
selection: {
|
|
118
118
|
selectedItems: TreeViewSelectionValue<boolean>;
|
|
@@ -124,7 +124,7 @@ export interface UseTreeViewSelectionState {
|
|
|
124
124
|
}
|
|
125
125
|
export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
|
|
126
126
|
params: UseTreeViewSelectionParameters<any>;
|
|
127
|
-
|
|
127
|
+
paramsWithDefaults: UseTreeViewSelectionParametersWithDefaults<any>;
|
|
128
128
|
instance: UseTreeViewSelectionInstance;
|
|
129
129
|
publicAPI: UseTreeViewSelectionPublicAPI;
|
|
130
130
|
state: UseTreeViewSelectionState;
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { ConvertSignaturesIntoPlugins, MergeSignaturesProperty, TreeViewAnyPluginSignature, TreeViewPluginSignature } from "../models/index.js";
|
|
2
2
|
import { UseTreeViewBaseProps } from "./useTreeView.types.js";
|
|
3
3
|
import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
|
|
4
|
+
export declare const useExtractPluginParamsFromProps: <TSignatures extends readonly TreeViewPluginSignature<any>[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>>({
|
|
5
|
+
props: {
|
|
6
|
+
apiRef,
|
|
7
|
+
...props
|
|
8
|
+
},
|
|
9
|
+
plugins
|
|
10
|
+
}: ExtractPluginParamsFromPropsParameters<TSignatures, TProps>) => ExtractPluginParamsFromPropsReturnValue<TSignatures, TProps>;
|
|
4
11
|
interface ExtractPluginParamsFromPropsParameters<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> {
|
|
5
12
|
plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
|
|
6
13
|
props: TProps;
|
|
7
14
|
}
|
|
8
15
|
interface ExtractPluginParamsFromPropsReturnValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> extends UseTreeViewBaseProps<TSignatures> {
|
|
9
|
-
pluginParams: MergeSignaturesProperty<TSignatures, '
|
|
16
|
+
pluginParams: MergeSignaturesProperty<TSignatures, 'paramsWithDefaults'>;
|
|
10
17
|
forwardedProps: Omit<TProps, keyof MergeSignaturesProperty<TSignatures, 'params'>>;
|
|
11
18
|
}
|
|
12
|
-
export declare const extractPluginParamsFromProps: <TSignatures extends readonly TreeViewPluginSignature<any>[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>>({
|
|
13
|
-
props: {
|
|
14
|
-
apiRef,
|
|
15
|
-
experimentalFeatures: inExperimentalFeatures,
|
|
16
|
-
...props
|
|
17
|
-
},
|
|
18
|
-
plugins
|
|
19
|
-
}: ExtractPluginParamsFromPropsParameters<TSignatures, TProps>) => ExtractPluginParamsFromPropsReturnValue<TSignatures, TProps>;
|
|
20
19
|
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useExtractPluginParamsFromProps = void 0;
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
const _excluded = ["apiRef"];
|
|
12
|
+
const useExtractPluginParamsFromProps = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
props: {
|
|
15
|
+
apiRef
|
|
16
|
+
},
|
|
17
|
+
plugins
|
|
18
|
+
} = _ref,
|
|
19
|
+
props = (0, _objectWithoutPropertiesLoose2.default)(_ref.props, _excluded);
|
|
20
|
+
const paramsLookup = React.useMemo(() => {
|
|
21
|
+
const tempParamsLookup = {};
|
|
22
|
+
plugins.forEach(plugin => {
|
|
23
|
+
Object.assign(tempParamsLookup, plugin.params);
|
|
24
|
+
});
|
|
25
|
+
return tempParamsLookup;
|
|
26
|
+
}, [plugins]);
|
|
27
|
+
const {
|
|
28
|
+
forwardedProps,
|
|
29
|
+
pluginParams
|
|
30
|
+
} = React.useMemo(() => {
|
|
31
|
+
const tempPluginParams = {};
|
|
32
|
+
const tempForwardedProps = {};
|
|
33
|
+
Object.keys(props).forEach(propName => {
|
|
34
|
+
const prop = props[propName];
|
|
35
|
+
if (paramsLookup[propName]) {
|
|
36
|
+
tempPluginParams[propName] = prop;
|
|
37
|
+
} else {
|
|
38
|
+
tempForwardedProps[propName] = prop;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const pluginParamsWithDefaults = plugins.reduce((acc, plugin) => {
|
|
42
|
+
if (plugin.applyDefaultValuesToParams) {
|
|
43
|
+
return plugin.applyDefaultValuesToParams({
|
|
44
|
+
params: acc
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return acc;
|
|
48
|
+
}, tempPluginParams);
|
|
49
|
+
return {
|
|
50
|
+
forwardedProps: tempForwardedProps,
|
|
51
|
+
pluginParams: pluginParamsWithDefaults
|
|
52
|
+
};
|
|
53
|
+
}, [plugins, props, paramsLookup]);
|
|
54
|
+
return {
|
|
55
|
+
forwardedProps,
|
|
56
|
+
pluginParams,
|
|
57
|
+
apiRef
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
exports.useExtractPluginParamsFromProps = useExtractPluginParamsFromProps;
|
|
@@ -11,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
13
13
|
var _corePlugins = require("../corePlugins");
|
|
14
|
-
var
|
|
14
|
+
var _useExtractPluginParamsFromProps = require("./useExtractPluginParamsFromProps");
|
|
15
15
|
var _useTreeViewBuildContext = require("./useTreeViewBuildContext");
|
|
16
16
|
var _TreeViewStore = require("../utils/TreeViewStore");
|
|
17
17
|
function initializeInputApiRef(inputApiRef) {
|
|
@@ -47,9 +47,8 @@ const useTreeView = ({
|
|
|
47
47
|
const {
|
|
48
48
|
pluginParams,
|
|
49
49
|
forwardedProps,
|
|
50
|
-
apiRef
|
|
51
|
-
|
|
52
|
-
} = (0, _extractPluginParamsFromProps.extractPluginParamsFromProps)({
|
|
50
|
+
apiRef
|
|
51
|
+
} = (0, _useExtractPluginParamsFromProps.useExtractPluginParamsFromProps)({
|
|
53
52
|
plugins,
|
|
54
53
|
props
|
|
55
54
|
});
|
|
@@ -85,7 +84,6 @@ const useTreeView = ({
|
|
|
85
84
|
const pluginResponse = plugin({
|
|
86
85
|
instance,
|
|
87
86
|
params: pluginParams,
|
|
88
|
-
experimentalFeatures,
|
|
89
87
|
rootRef: innerRootRef,
|
|
90
88
|
plugins,
|
|
91
89
|
store: storeRef.current
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EventHandlers } from '@mui/utils/types';
|
|
3
3
|
import type { TreeViewContextValue } from "../TreeViewProvider/index.js";
|
|
4
|
-
import { TreeViewAnyPluginSignature, ConvertSignaturesIntoPlugins, TreeViewPublicAPI
|
|
4
|
+
import { TreeViewAnyPluginSignature, ConvertSignaturesIntoPlugins, TreeViewPublicAPI } from "../models/index.js";
|
|
5
5
|
export interface UseTreeViewParameters<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> {
|
|
6
6
|
plugins: ConvertSignaturesIntoPlugins<TSignatures>;
|
|
7
7
|
rootRef?: React.Ref<HTMLUListElement> | undefined;
|
|
@@ -9,7 +9,6 @@ export interface UseTreeViewParameters<TSignatures extends readonly TreeViewAnyP
|
|
|
9
9
|
}
|
|
10
10
|
export interface UseTreeViewBaseProps<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
|
|
11
11
|
apiRef: React.RefObject<TreeViewPublicAPI<TSignatures> | undefined> | undefined;
|
|
12
|
-
experimentalFeatures: TreeViewExperimentalFeatures<TSignatures>;
|
|
13
12
|
}
|
|
14
13
|
export interface UseTreeViewRootSlotProps extends Pick<React.HTMLAttributes<HTMLUListElement>, 'onFocus' | 'onBlur' | 'onKeyDown' | 'id' | 'aria-multiselectable' | 'role' | 'tabIndex'> {
|
|
15
14
|
ref: React.Ref<HTMLUListElement>;
|
|
@@ -3,16 +3,12 @@ import { TreeViewContextValue } from "../TreeViewProvider/index.js";
|
|
|
3
3
|
import { ConvertSignaturesIntoPlugins, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewPublicAPI } from "../models/index.js";
|
|
4
4
|
import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
|
|
5
5
|
import { TreeViewStore } from "../utils/TreeViewStore.js";
|
|
6
|
-
export declare const useTreeViewBuildContext: <TSignatures extends readonly TreeViewAnyPluginSignature[]>(
|
|
7
|
-
|
|
8
|
-
instance,
|
|
9
|
-
publicAPI,
|
|
10
|
-
store,
|
|
11
|
-
rootRef
|
|
12
|
-
}: {
|
|
6
|
+
export declare const useTreeViewBuildContext: <TSignatures extends readonly TreeViewAnyPluginSignature[]>(parameters: UseTreeViewBuildContextParameters<TSignatures>) => TreeViewContextValue<TSignatures>;
|
|
7
|
+
interface UseTreeViewBuildContextParameters<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
|
|
13
8
|
plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
|
|
14
9
|
instance: TreeViewInstance<TSignatures>;
|
|
15
10
|
publicAPI: TreeViewPublicAPI<TSignatures>;
|
|
16
11
|
store: TreeViewStore<TSignatures>;
|
|
17
12
|
rootRef: React.RefObject<HTMLUListElement | null>;
|
|
18
|
-
}
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -6,13 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useTreeViewBuildContext = void 0;
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
|
-
const useTreeViewBuildContext =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
const useTreeViewBuildContext = parameters => {
|
|
10
|
+
const {
|
|
11
|
+
plugins,
|
|
12
|
+
instance,
|
|
13
|
+
publicAPI,
|
|
14
|
+
store,
|
|
15
|
+
rootRef
|
|
16
|
+
} = parameters;
|
|
16
17
|
const runItemPlugins = React.useCallback(itemPluginProps => {
|
|
17
18
|
let finalRootRef = null;
|
|
18
19
|
let finalContentRef = null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CleanupTracking, UnregisterToken, UnsubscribeFn } from "./CleanupTracking.js";
|
|
2
2
|
export declare class TimerBasedCleanupTracking implements CleanupTracking {
|
|
3
|
-
timeouts?: Map<number,
|
|
3
|
+
timeouts?: Map<number, number> | undefined;
|
|
4
4
|
cleanupTimeout: number;
|
|
5
5
|
constructor(timeout?: number);
|
|
6
6
|
register(object: any, unsubscribe: UnsubscribeFn, unregisterToken: UnregisterToken): void;
|
package/internals/utils/tree.js
CHANGED
|
@@ -50,7 +50,7 @@ const getPreviousNavigableItem = (state, itemId) => {
|
|
|
50
50
|
let lastNavigableChild = getLastNavigableItemInArray(state, (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, currentItemId));
|
|
51
51
|
while ((0, _useTreeViewExpansion.selectorIsItemExpanded)(state, currentItemId) && lastNavigableChild != null) {
|
|
52
52
|
currentItemId = lastNavigableChild;
|
|
53
|
-
lastNavigableChild = (
|
|
53
|
+
lastNavigableChild = getLastNavigableItemInArray(state, (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, currentItemId));
|
|
54
54
|
}
|
|
55
55
|
return currentItemId;
|
|
56
56
|
};
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-tree-view",
|
|
3
|
-
"version": "8.
|
|
4
|
-
"description": "The community edition of the Tree View components (MUI X).",
|
|
3
|
+
"version": "8.3.0",
|
|
5
4
|
"author": "MUI Team",
|
|
5
|
+
"description": "The community edition of the MUI X Tree View components.",
|
|
6
6
|
"main": "./index.js",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"bugs": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"directory": "packages/x-tree-view"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@babel/runtime": "^7.27.
|
|
36
|
+
"@babel/runtime": "^7.27.1",
|
|
37
37
|
"@mui/utils": "^7.0.2",
|
|
38
38
|
"@types/react-transition-group": "^4.4.12",
|
|
39
39
|
"clsx": "^2.1.1",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"react-transition-group": "^4.4.5",
|
|
42
42
|
"reselect": "^5.1.1",
|
|
43
43
|
"use-sync-external-store": "^1.5.0",
|
|
44
|
-
"@mui/x-internals": "8.
|
|
44
|
+
"@mui/x-internals": "8.3.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@emotion/react": "^11.9.0",
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
-
const _excluded = ["apiRef", "experimentalFeatures"];
|
|
3
|
-
export const extractPluginParamsFromProps = _ref => {
|
|
4
|
-
let {
|
|
5
|
-
props: {
|
|
6
|
-
apiRef,
|
|
7
|
-
experimentalFeatures: inExperimentalFeatures
|
|
8
|
-
},
|
|
9
|
-
plugins
|
|
10
|
-
} = _ref,
|
|
11
|
-
props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
|
|
12
|
-
const paramsLookup = {};
|
|
13
|
-
plugins.forEach(plugin => {
|
|
14
|
-
Object.assign(paramsLookup, plugin.params);
|
|
15
|
-
});
|
|
16
|
-
const pluginParams = {};
|
|
17
|
-
const forwardedProps = {};
|
|
18
|
-
Object.keys(props).forEach(propName => {
|
|
19
|
-
const prop = props[propName];
|
|
20
|
-
if (paramsLookup[propName]) {
|
|
21
|
-
pluginParams[propName] = prop;
|
|
22
|
-
} else {
|
|
23
|
-
forwardedProps[propName] = prop;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
const experimentalFeatures = inExperimentalFeatures ?? {};
|
|
27
|
-
const defaultizedPluginParams = plugins.reduce((acc, plugin) => {
|
|
28
|
-
if (plugin.getDefaultizedParams) {
|
|
29
|
-
return plugin.getDefaultizedParams({
|
|
30
|
-
params: acc,
|
|
31
|
-
experimentalFeatures
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
return acc;
|
|
35
|
-
}, pluginParams);
|
|
36
|
-
return {
|
|
37
|
-
apiRef,
|
|
38
|
-
forwardedProps,
|
|
39
|
-
pluginParams: defaultizedPluginParams,
|
|
40
|
-
experimentalFeatures
|
|
41
|
-
};
|
|
42
|
-
};
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
declare function useAssertModelConsistencyOutsideOfProduction<T>(parameters: {
|
|
2
|
-
state: string;
|
|
3
|
-
controlled: T | undefined;
|
|
4
|
-
defaultValue: T;
|
|
5
|
-
}): void;
|
|
6
|
-
export declare const useAssertModelConsistency: typeof useAssertModelConsistencyOutsideOfProduction;
|
|
7
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
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;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.extractPluginParamsFromProps = void 0;
|
|
8
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
-
const _excluded = ["apiRef", "experimentalFeatures"];
|
|
10
|
-
const extractPluginParamsFromProps = _ref => {
|
|
11
|
-
let {
|
|
12
|
-
props: {
|
|
13
|
-
apiRef,
|
|
14
|
-
experimentalFeatures: inExperimentalFeatures
|
|
15
|
-
},
|
|
16
|
-
plugins
|
|
17
|
-
} = _ref,
|
|
18
|
-
props = (0, _objectWithoutPropertiesLoose2.default)(_ref.props, _excluded);
|
|
19
|
-
const paramsLookup = {};
|
|
20
|
-
plugins.forEach(plugin => {
|
|
21
|
-
Object.assign(paramsLookup, plugin.params);
|
|
22
|
-
});
|
|
23
|
-
const pluginParams = {};
|
|
24
|
-
const forwardedProps = {};
|
|
25
|
-
Object.keys(props).forEach(propName => {
|
|
26
|
-
const prop = props[propName];
|
|
27
|
-
if (paramsLookup[propName]) {
|
|
28
|
-
pluginParams[propName] = prop;
|
|
29
|
-
} else {
|
|
30
|
-
forwardedProps[propName] = prop;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
const experimentalFeatures = inExperimentalFeatures ?? {};
|
|
34
|
-
const defaultizedPluginParams = plugins.reduce((acc, plugin) => {
|
|
35
|
-
if (plugin.getDefaultizedParams) {
|
|
36
|
-
return plugin.getDefaultizedParams({
|
|
37
|
-
params: acc,
|
|
38
|
-
experimentalFeatures
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return acc;
|
|
42
|
-
}, pluginParams);
|
|
43
|
-
return {
|
|
44
|
-
apiRef,
|
|
45
|
-
forwardedProps,
|
|
46
|
-
pluginParams: defaultizedPluginParams,
|
|
47
|
-
experimentalFeatures
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
exports.extractPluginParamsFromProps = extractPluginParamsFromProps;
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
declare function useAssertModelConsistencyOutsideOfProduction<T>(parameters: {
|
|
2
|
-
state: string;
|
|
3
|
-
controlled: T | undefined;
|
|
4
|
-
defaultValue: T;
|
|
5
|
-
}): void;
|
|
6
|
-
export declare const useAssertModelConsistency: typeof useAssertModelConsistencyOutsideOfProduction;
|
|
7
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.useAssertModelConsistency = void 0;
|
|
8
|
-
var _warning = require("@mui/x-internals/warning");
|
|
9
|
-
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
function useAssertModelConsistencyOutsideOfProduction(parameters) {
|
|
11
|
-
const {
|
|
12
|
-
state,
|
|
13
|
-
controlled,
|
|
14
|
-
defaultValue
|
|
15
|
-
} = parameters;
|
|
16
|
-
const [{
|
|
17
|
-
initialDefaultValue,
|
|
18
|
-
isControlled
|
|
19
|
-
}] = React.useState({
|
|
20
|
-
initialDefaultValue: defaultValue,
|
|
21
|
-
isControlled: controlled !== undefined
|
|
22
|
-
});
|
|
23
|
-
if (isControlled !== (controlled !== undefined)) {
|
|
24
|
-
(0, _warning.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');
|
|
25
|
-
}
|
|
26
|
-
if (JSON.stringify(initialDefaultValue) !== JSON.stringify(defaultValue)) {
|
|
27
|
-
(0, _warning.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');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
const useAssertModelConsistency = exports.useAssertModelConsistency = process.env.NODE_ENV === 'production' ? () => {} : useAssertModelConsistencyOutsideOfProduction;
|