@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.
Files changed (84) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/RichTreeView/RichTreeView.js +0 -6
  3. package/RichTreeView/RichTreeView.types.d.ts +1 -7
  4. package/SimpleTreeView/SimpleTreeView.js +0 -6
  5. package/SimpleTreeView/SimpleTreeView.types.d.ts +1 -7
  6. package/esm/RichTreeView/RichTreeView.js +0 -6
  7. package/esm/RichTreeView/RichTreeView.types.d.ts +1 -7
  8. package/esm/SimpleTreeView/SimpleTreeView.js +0 -6
  9. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +1 -7
  10. package/esm/index.js +1 -1
  11. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +1 -1
  12. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +2 -2
  13. package/esm/internals/index.d.ts +2 -2
  14. package/esm/internals/index.js +1 -1
  15. package/esm/internals/models/plugin.d.ts +13 -22
  16. package/esm/internals/models/treeView.d.ts +0 -1
  17. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +1 -1
  18. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +4 -3
  19. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +2 -2
  20. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +2 -2
  21. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +1 -1
  22. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +2 -2
  23. package/esm/internals/plugins/useTreeViewItems/index.d.ts +1 -1
  24. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +1 -1
  25. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +2 -2
  26. package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +1 -1
  27. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +2 -2
  28. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +1 -1
  29. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +2 -2
  30. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
  31. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +1 -1
  32. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +4 -3
  33. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +2 -2
  34. package/esm/internals/useTreeView/{extractPluginParamsFromProps.d.ts → useExtractPluginParamsFromProps.d.ts} +8 -9
  35. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +51 -0
  36. package/esm/internals/useTreeView/useTreeView.js +3 -5
  37. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -2
  38. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +4 -8
  39. package/esm/internals/useTreeView/useTreeViewBuildContext.js +8 -7
  40. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +1 -1
  41. package/esm/internals/utils/tree.js +1 -1
  42. package/index.js +1 -1
  43. package/internals/corePlugins/useTreeViewId/index.d.ts +1 -1
  44. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +2 -2
  45. package/internals/index.d.ts +2 -2
  46. package/internals/index.js +1 -1
  47. package/internals/models/plugin.d.ts +13 -22
  48. package/internals/models/treeView.d.ts +0 -1
  49. package/internals/plugins/useTreeViewExpansion/index.d.ts +1 -1
  50. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +5 -4
  51. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +2 -2
  52. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +2 -2
  53. package/internals/plugins/useTreeViewFocus/index.d.ts +1 -1
  54. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +2 -2
  55. package/internals/plugins/useTreeViewItems/index.d.ts +1 -1
  56. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +1 -1
  57. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +2 -2
  58. package/internals/plugins/useTreeViewJSXItems/index.d.ts +1 -1
  59. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +2 -2
  60. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +1 -1
  61. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +2 -2
  62. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
  63. package/internals/plugins/useTreeViewSelection/index.d.ts +1 -1
  64. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +5 -4
  65. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +2 -2
  66. package/internals/useTreeView/{extractPluginParamsFromProps.d.ts → useExtractPluginParamsFromProps.d.ts} +8 -9
  67. package/internals/useTreeView/useExtractPluginParamsFromProps.js +60 -0
  68. package/internals/useTreeView/useTreeView.js +3 -5
  69. package/internals/useTreeView/useTreeView.types.d.ts +1 -2
  70. package/internals/useTreeView/useTreeViewBuildContext.d.ts +4 -8
  71. package/internals/useTreeView/useTreeViewBuildContext.js +8 -7
  72. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +1 -1
  73. package/internals/utils/tree.js +1 -1
  74. package/package.json +4 -4
  75. package/esm/internals/useTreeView/extractPluginParamsFromProps.js +0 -42
  76. package/esm/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  77. package/esm/internals/useTreeView/useTreeViewPlugins.js +0 -0
  78. package/esm/internals/utils/models.d.ts +0 -7
  79. package/esm/internals/utils/models.js +0 -23
  80. package/internals/useTreeView/extractPluginParamsFromProps.js +0 -50
  81. package/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  82. package/internals/useTreeView/useTreeViewPlugins.js +0 -1
  83. package/internals/utils/models.d.ts +0 -7
  84. 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 UseTreeViewLazyLoadingDefaultizedParameters<R extends {}> = DefaultizedProps<UseTreeViewLazyLoadingParameters<R>, 'dataSource'>;
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
- defaultizedParams: UseTreeViewLazyLoadingDefaultizedParameters<any>;
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, UseTreeViewSelectionDefaultizedParameters } from "./useTreeViewSelection.types.js";
2
+ export type { UseTreeViewSelectionSignature, UseTreeViewSelectionParameters, UseTreeViewSelectionParametersWithDefaults } from "./useTreeViewSelection.types.js";
@@ -1,17 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
+ import { useAssertModelConsistency } from '@mui/x-internals/useAssertModelConsistency';
3
4
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
5
  import { findOrderInTremauxTree, getAllNavigableItems, getFirstNavigableItem, getLastNavigableItem, getNonDisabledItemsInRange } from "../../utils/tree.js";
5
6
  import { propagateSelection, getAddedAndRemovedItems, getLookupFromArray } from "./useTreeViewSelection.utils.js";
6
7
  import { selectorIsItemSelected, selectorIsMultiSelectEnabled, selectorIsSelectionEnabled, selectorSelectionModel, selectorSelectionModelArray } from "./useTreeViewSelection.selectors.js";
7
8
  import { useTreeViewSelectionItemPlugin } from "./useTreeViewSelection.itemPlugin.js";
8
- import { useAssertModelConsistency } from "../../utils/models.js";
9
9
  export const useTreeViewSelection = ({
10
10
  store,
11
11
  params
12
12
  }) => {
13
13
  useAssertModelConsistency({
14
- state: 'selectedItems',
14
+ componentName: 'Tree View',
15
+ propName: 'selectedItems',
15
16
  controlled: params.selectedItems,
16
17
  defaultValue: params.defaultSelectedItems
17
18
  });
@@ -203,7 +204,7 @@ export const useTreeViewSelection = ({
203
204
  useTreeViewSelection.itemPlugin = useTreeViewSelectionItemPlugin;
204
205
  const DEFAULT_SELECTED_ITEMS = [];
205
206
  const EMPTY_SELECTION_PROPAGATION = {};
206
- useTreeViewSelection.getDefaultizedParams = ({
207
+ useTreeViewSelection.applyDefaultValuesToParams = ({
207
208
  params
208
209
  }) => _extends({}, params, {
209
210
  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 UseTreeViewSelectionDefaultizedParameters<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
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
- defaultizedParams: UseTreeViewSelectionDefaultizedParameters<any>;
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, 'defaultizedParams'>;
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,51 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["apiRef"];
3
+ import * as React from 'react';
4
+ export const useExtractPluginParamsFromProps = _ref => {
5
+ let {
6
+ props: {
7
+ apiRef
8
+ },
9
+ plugins
10
+ } = _ref,
11
+ props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
12
+ const paramsLookup = React.useMemo(() => {
13
+ const tempParamsLookup = {};
14
+ plugins.forEach(plugin => {
15
+ Object.assign(tempParamsLookup, plugin.params);
16
+ });
17
+ return tempParamsLookup;
18
+ }, [plugins]);
19
+ const {
20
+ forwardedProps,
21
+ pluginParams
22
+ } = React.useMemo(() => {
23
+ const tempPluginParams = {};
24
+ const tempForwardedProps = {};
25
+ Object.keys(props).forEach(propName => {
26
+ const prop = props[propName];
27
+ if (paramsLookup[propName]) {
28
+ tempPluginParams[propName] = prop;
29
+ } else {
30
+ tempForwardedProps[propName] = prop;
31
+ }
32
+ });
33
+ const pluginParamsWithDefaults = plugins.reduce((acc, plugin) => {
34
+ if (plugin.applyDefaultValuesToParams) {
35
+ return plugin.applyDefaultValuesToParams({
36
+ params: acc
37
+ });
38
+ }
39
+ return acc;
40
+ }, tempPluginParams);
41
+ return {
42
+ forwardedProps: tempForwardedProps,
43
+ pluginParams: pluginParamsWithDefaults
44
+ };
45
+ }, [plugins, props, paramsLookup]);
46
+ return {
47
+ forwardedProps,
48
+ pluginParams,
49
+ apiRef
50
+ };
51
+ };
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useForkRef from '@mui/utils/useForkRef';
4
4
  import { TREE_VIEW_CORE_PLUGINS } from "../corePlugins/index.js";
5
- import { extractPluginParamsFromProps } from "./extractPluginParamsFromProps.js";
5
+ import { useExtractPluginParamsFromProps } from "./useExtractPluginParamsFromProps.js";
6
6
  import { useTreeViewBuildContext } from "./useTreeViewBuildContext.js";
7
7
  import { TreeViewStore } from "../utils/TreeViewStore.js";
8
8
  function initializeInputApiRef(inputApiRef) {
@@ -38,9 +38,8 @@ export const useTreeView = ({
38
38
  const {
39
39
  pluginParams,
40
40
  forwardedProps,
41
- apiRef,
42
- experimentalFeatures
43
- } = extractPluginParamsFromProps({
41
+ apiRef
42
+ } = useExtractPluginParamsFromProps({
44
43
  plugins,
45
44
  props
46
45
  });
@@ -76,7 +75,6 @@ export const useTreeView = ({
76
75
  const pluginResponse = plugin({
77
76
  instance,
78
77
  params: pluginParams,
79
- experimentalFeatures,
80
78
  rootRef: innerRootRef,
81
79
  plugins,
82
80
  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, TreeViewExperimentalFeatures } from "../models/index.js";
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
- plugins,
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
- }) => TreeViewContextValue<TSignatures>;
13
+ }
14
+ export {};
@@ -1,11 +1,12 @@
1
1
  import * as React from 'react';
2
- export const useTreeViewBuildContext = ({
3
- plugins,
4
- instance,
5
- publicAPI,
6
- store,
7
- rootRef
8
- }) => {
2
+ export const useTreeViewBuildContext = parameters => {
3
+ const {
4
+ plugins,
5
+ instance,
6
+ publicAPI,
7
+ store,
8
+ rootRef
9
+ } = parameters;
9
10
  const runItemPlugins = React.useCallback(itemPluginProps => {
10
11
  let finalRootRef = null;
11
12
  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, NodeJS.Timeout> | undefined;
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;
@@ -44,7 +44,7 @@ export const getPreviousNavigableItem = (state, itemId) => {
44
44
  let lastNavigableChild = getLastNavigableItemInArray(state, selectorItemOrderedChildrenIds(state, currentItemId));
45
45
  while (selectorIsItemExpanded(state, currentItemId) && lastNavigableChild != null) {
46
46
  currentItemId = lastNavigableChild;
47
- lastNavigableChild = selectorItemOrderedChildrenIds(state, currentItemId).find(childId => selectorCanItemBeFocused(state, childId));
47
+ lastNavigableChild = getLastNavigableItemInArray(state, selectorItemOrderedChildrenIds(state, currentItemId));
48
48
  }
49
49
  return currentItemId;
50
50
  };
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view v8.2.0
2
+ * @mui/x-tree-view v8.3.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,2 +1,2 @@
1
1
  export { useTreeViewId } from "./useTreeViewId.js";
2
- export type { UseTreeViewIdSignature, UseTreeViewIdParameters, UseTreeViewIdDefaultizedParameters } from "./useTreeViewId.types.js";
2
+ export type { UseTreeViewIdSignature, UseTreeViewIdParameters, UseTreeViewIdParametersWithDefaults } from "./useTreeViewId.types.js";
@@ -6,7 +6,7 @@ export interface UseTreeViewIdParameters {
6
6
  */
7
7
  id?: string;
8
8
  }
9
- export type UseTreeViewIdDefaultizedParameters = UseTreeViewIdParameters;
9
+ export type UseTreeViewIdParametersWithDefaults = UseTreeViewIdParameters;
10
10
  export interface UseTreeViewIdState {
11
11
  id: {
12
12
  treeId: string | undefined;
@@ -15,6 +15,6 @@ export interface UseTreeViewIdState {
15
15
  }
16
16
  export type UseTreeViewIdSignature = TreeViewPluginSignature<{
17
17
  params: UseTreeViewIdParameters;
18
- defaultizedParams: UseTreeViewIdDefaultizedParameters;
18
+ paramsWithDefaults: UseTreeViewIdParametersWithDefaults;
19
19
  state: UseTreeViewIdState;
20
20
  }>;
@@ -4,7 +4,7 @@ export { RichTreeViewItems } from "./components/RichTreeViewItems.js";
4
4
  export type { RichTreeViewItemsSlots, RichTreeViewItemsSlotProps } from "./components/RichTreeViewItems.js";
5
5
  export { unstable_resetCleanupTracking, useInstanceEventHandler } from "./hooks/useInstanceEventHandler.js";
6
6
  export { useSelector } from "./hooks/useSelector.js";
7
- export type { TreeViewPlugin, TreeViewPluginSignature, ConvertPluginsIntoSignatures, MergeSignaturesProperty, TreeViewPublicAPI, TreeViewState, TreeViewExperimentalFeatures, TreeViewItemMeta, TreeViewInstance, TreeViewItemPlugin, TreeViewUsedStore } from "./models/index.js";
7
+ export type { TreeViewPlugin, TreeViewPluginSignature, ConvertPluginsIntoSignatures, MergeSignaturesProperty, TreeViewPublicAPI, TreeViewState, TreeViewItemMeta, TreeViewInstance, TreeViewItemPlugin, TreeViewUsedStore } from "./models/index.js";
8
8
  export type { TreeViewCorePluginParameters } from "./corePlugins/index.js";
9
9
  export { useTreeViewExpansion } from "./plugins/useTreeViewExpansion/index.js";
10
10
  export type { UseTreeViewExpansionSignature, UseTreeViewExpansionParameters } from "./plugins/useTreeViewExpansion/index.js";
@@ -18,7 +18,7 @@ export { useTreeViewItems, buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from
18
18
  export { selectorItemMetaLookup, selectorItemMeta, selectorItemIndex, selectorItemOrderedChildrenIds } from "./plugins/useTreeViewItems/useTreeViewItems.selectors.js";
19
19
  export type { UseTreeViewItemsSignature, UseTreeViewItemsParameters, UseTreeViewItemsState } from "./plugins/useTreeViewItems/index.js";
20
20
  export { useTreeViewLabel } from "./plugins/useTreeViewLabel/index.js";
21
- export { selectorIsItemBeingEdited, selectorIsAnyItemBeingEdited as selectorIsAnItemEdited } from "./plugins/useTreeViewLabel/useTreeViewLabel.selectors.js";
21
+ export { selectorIsItemBeingEdited, selectorIsAnyItemBeingEdited } from "./plugins/useTreeViewLabel/useTreeViewLabel.selectors.js";
22
22
  export type { UseTreeViewLabelSignature, UseTreeViewLabelParameters } from "./plugins/useTreeViewLabel/index.js";
23
23
  export { selectorIsItemExpanded } from "./plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
24
24
  export { selectorIsItemSelected } from "./plugins/useTreeViewSelection/useTreeViewSelection.selectors.js";
@@ -57,7 +57,7 @@ Object.defineProperty(exports, "selectorGetTreeItemError", {
57
57
  return _useTreeViewLazyLoading.selectorGetTreeItemError;
58
58
  }
59
59
  });
60
- Object.defineProperty(exports, "selectorIsAnItemEdited", {
60
+ Object.defineProperty(exports, "selectorIsAnyItemBeingEdited", {
61
61
  enumerable: true,
62
62
  get: function () {
63
63
  return _useTreeViewLabel2.selectorIsAnyItemBeingEdited;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { EventHandlers } from '@mui/utils/types';
3
- import { TreeViewExperimentalFeatures, TreeViewInstance } from "./treeView.js";
3
+ import { TreeViewInstance } from "./treeView.js";
4
4
  import type { MergeSignaturesProperty, OptionalIfEmpty } from "./helpers.js";
5
5
  import { TreeViewEventLookupElement } from "./events.js";
6
6
  import type { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
@@ -15,8 +15,7 @@ export interface TreeViewPluginOptions<TSignature extends TreeViewAnyPluginSigna
15
15
  /**
16
16
  * The Tree View parameters after being processed with the default values.
17
17
  */
18
- params: TreeViewUsedDefaultizedParams<TSignature>;
19
- experimentalFeatures: TreeViewUsedExperimentalFeatures<TSignature>;
18
+ params: TreeViewUsedParamsWithDefaults<TSignature>;
20
19
  /**
21
20
  * The store that can be used to access the state of other plugins.
22
21
  */
@@ -35,12 +34,11 @@ type TreeViewResponse<TSignature extends TreeViewAnyPluginSignature> = {
35
34
  } & OptionalIfEmpty<'publicAPI', TSignature['publicAPI']> & OptionalIfEmpty<'instance', TSignature['instance']>;
36
35
  export type TreeViewPluginSignature<T extends {
37
36
  params?: {};
38
- defaultizedParams?: {};
37
+ paramsWithDefaults?: {};
39
38
  instance?: {};
40
39
  publicAPI?: {};
41
40
  events?: { [key in keyof T['events']]: TreeViewEventLookupElement };
42
41
  state?: {};
43
- experimentalFeatures?: string;
44
42
  dependencies?: readonly TreeViewAnyPluginSignature[];
45
43
  optionalDependencies?: readonly TreeViewAnyPluginSignature[];
46
44
  }> = {
@@ -53,9 +51,9 @@ export type TreeViewPluginSignature<T extends {
53
51
  /**
54
52
  * The params after being processed with the default values.
55
53
  */
56
- defaultizedParams: T extends {
57
- defaultizedParams: {};
58
- } ? T['defaultizedParams'] : {};
54
+ paramsWithDefaults: T extends {
55
+ paramsWithDefaults: {};
56
+ } ? T['paramsWithDefaults'] : {};
59
57
  /**
60
58
  * An imperative api available for internal use.
61
59
  */
@@ -78,9 +76,6 @@ export type TreeViewPluginSignature<T extends {
78
76
  state: T extends {
79
77
  state: {};
80
78
  } ? T['state'] : {};
81
- experimentalFeatures: T extends {
82
- experimentalFeatures: string;
83
- } ? { [key in T['experimentalFeatures']]?: boolean } : {};
84
79
  /**
85
80
  * Any plugins that this plugin depends on.
86
81
  */
@@ -98,17 +93,16 @@ export type TreeViewAnyPluginSignature = {
98
93
  state: any;
99
94
  instance: any;
100
95
  params: any;
101
- defaultizedParams: any;
96
+ paramsWithDefaults: any;
102
97
  dependencies: any;
103
98
  optionalDependencies: any;
104
99
  events: any;
105
- experimentalFeatures: any;
106
100
  publicAPI: any;
107
101
  };
108
102
  type TreeViewRequiredPlugins<TSignature extends TreeViewAnyPluginSignature> = [...TreeViewCorePluginSignatures, ...TSignature['dependencies']];
109
103
  type PluginPropertyWithDependencies<TSignature extends TreeViewAnyPluginSignature, TProperty extends keyof TreeViewAnyPluginSignature> = TSignature[TProperty] & MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, TProperty> & Partial<MergeSignaturesProperty<TSignature['optionalDependencies'], TProperty>>;
110
104
  export type TreeViewUsedParams<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'params'>;
111
- export type TreeViewUsedDefaultizedParams<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'defaultizedParams'>;
105
+ export type TreeViewUsedParamsWithDefaults<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'paramsWithDefaults'>;
112
106
  export type TreeViewUsedInstance<TSignature extends TreeViewAnyPluginSignature> = PluginPropertyWithDependencies<TSignature, 'instance'> & {
113
107
  /**
114
108
  * Private property only defined in TypeScript to be able to access the plugin signature from the instance object.
@@ -116,7 +110,6 @@ export type TreeViewUsedInstance<TSignature extends TreeViewAnyPluginSignature>
116
110
  $$signature: TSignature;
117
111
  };
118
112
  export type TreeViewUsedStore<TSignature extends TreeViewAnyPluginSignature> = TreeViewStore<[TSignature, ...TSignature['dependencies']]>;
119
- type TreeViewUsedExperimentalFeatures<TSignature extends TreeViewAnyPluginSignature> = TreeViewExperimentalFeatures<[TSignature, ...TSignature['dependencies']], TSignature['optionalDependencies']>;
120
113
  export type TreeViewUsedEvents<TSignature extends TreeViewAnyPluginSignature> = TSignature['events'] & MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, 'events'>;
121
114
  export type TreeItemWrapper<TSignatures extends readonly TreeViewAnyPluginSignature[]> = (params: {
122
115
  itemId: TreeViewItemId;
@@ -139,22 +132,20 @@ export type TreeViewPlugin<TSignature extends TreeViewAnyPluginSignature> = {
139
132
  *
140
133
  * @param {TreeViewUsedParams<TSignature>} options The options object.
141
134
  * @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.
135
+ * @returns {TSignature['paramsWithDefaults']} The parameters after being processed with the default values.
144
136
  */
145
- getDefaultizedParams?: (options: {
137
+ applyDefaultValuesToParams?: (options: {
146
138
  params: TreeViewUsedParams<TSignature>;
147
- experimentalFeatures: TreeViewUsedExperimentalFeatures<TSignature>;
148
- }) => TSignature['defaultizedParams'];
139
+ }) => TSignature['paramsWithDefaults'];
149
140
  /**
150
141
  * The initial state is computed after the default values are applied.
151
142
  * It sets up the state for the first render.
152
143
  * Other state modifications have to be done in effects and so could not be applied on the initial render.
153
144
  *
154
- * @param {TreeViewUsedDefaultizedParams<TSignature>} params The parameters after being processed with the default values.
145
+ * @param {TreeViewUsedParamsWithDefaults<TSignature>} params The parameters after being processed with the default values.
155
146
  * @returns {TSignature['state']} The initial state of the plugin.
156
147
  */
157
- getInitialState?: (params: TreeViewUsedDefaultizedParams<TSignature>) => TSignature['state'];
148
+ getInitialState?: (params: TreeViewUsedParamsWithDefaults<TSignature>) => TSignature['state'];
158
149
  /**
159
150
  * An object where each property used by the plugin is set to `true`.
160
151
  */
@@ -18,7 +18,6 @@ export interface TreeViewItemMeta {
18
18
  }
19
19
  export type TreeViewInstance<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'instance'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'instance'>>;
20
20
  export type TreeViewPublicAPI<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'publicAPI'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'instance'>>;
21
- export type TreeViewExperimentalFeatures<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TSignatures, ...TOptionalSignatures], 'experimentalFeatures'>;
22
21
  export type TreeViewStateCacheKey = {
23
22
  id: number;
24
23
  };
@@ -1,2 +1,2 @@
1
1
  export { useTreeViewExpansion } from "./useTreeViewExpansion.js";
2
- export type { UseTreeViewExpansionSignature, UseTreeViewExpansionParameters, UseTreeViewExpansionDefaultizedParameters } from "./useTreeViewExpansion.types.js";
2
+ export type { UseTreeViewExpansionSignature, UseTreeViewExpansionParameters, UseTreeViewExpansionParametersWithDefaults } from "./useTreeViewExpansion.types.js";
@@ -6,20 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useTreeViewExpansion = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _useAssertModelConsistency = require("@mui/x-internals/useAssertModelConsistency");
9
10
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
10
11
  var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
11
12
  var _useTreeViewExpansion = require("./useTreeViewExpansion.selectors");
12
13
  var _useTreeViewExpansion2 = require("./useTreeViewExpansion.utils");
13
14
  var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
14
15
  var _publishTreeViewEvent = require("../../utils/publishTreeViewEvent");
15
- var _models = require("../../utils/models");
16
16
  const useTreeViewExpansion = ({
17
17
  instance,
18
18
  store,
19
19
  params
20
20
  }) => {
21
- (0, _models.useAssertModelConsistency)({
22
- state: 'expandedItems',
21
+ (0, _useAssertModelConsistency.useAssertModelConsistency)({
22
+ componentName: 'Tree View',
23
+ propName: 'expandedItems',
23
24
  controlled: params.expandedItems,
24
25
  defaultValue: params.defaultExpandedItems
25
26
  });
@@ -136,7 +137,7 @@ const useTreeViewExpansion = ({
136
137
  };
137
138
  exports.useTreeViewExpansion = useTreeViewExpansion;
138
139
  const DEFAULT_EXPANDED_ITEMS = [];
139
- useTreeViewExpansion.getDefaultizedParams = ({
140
+ useTreeViewExpansion.applyDefaultValuesToParams = ({
140
141
  params
141
142
  }) => (0, _extends2.default)({}, params, {
142
143
  defaultExpandedItems: params.defaultExpandedItems ?? DEFAULT_EXPANDED_ITEMS
@@ -71,7 +71,7 @@ export interface UseTreeViewExpansionParameters {
71
71
  */
72
72
  expansionTrigger?: 'content' | 'iconContainer';
73
73
  }
74
- export type UseTreeViewExpansionDefaultizedParameters = DefaultizedProps<UseTreeViewExpansionParameters, 'defaultExpandedItems'>;
74
+ export type UseTreeViewExpansionParametersWithDefaults = DefaultizedProps<UseTreeViewExpansionParameters, 'defaultExpandedItems'>;
75
75
  export interface UseTreeViewExpansionState {
76
76
  expansion: {
77
77
  expandedItems: string[];
@@ -90,7 +90,7 @@ interface UseTreeViewExpansionEventLookup {
90
90
  }
91
91
  export type UseTreeViewExpansionSignature = TreeViewPluginSignature<{
92
92
  params: UseTreeViewExpansionParameters;
93
- defaultizedParams: UseTreeViewExpansionDefaultizedParameters;
93
+ paramsWithDefaults: UseTreeViewExpansionParametersWithDefaults;
94
94
  instance: UseTreeViewExpansionInstance;
95
95
  publicAPI: UseTreeViewExpansionPublicAPI;
96
96
  modelNames: 'expandedItems';
@@ -1,6 +1,6 @@
1
- import { TreeViewUsedDefaultizedParams } from "../../models/index.js";
1
+ import { TreeViewUsedParamsWithDefaults } from "../../models/index.js";
2
2
  import { UseTreeViewExpansionSignature } from "./useTreeViewExpansion.types.js";
3
3
  export declare const getExpansionTrigger: ({
4
4
  isItemEditable,
5
5
  expansionTrigger
6
- }: Pick<TreeViewUsedDefaultizedParams<UseTreeViewExpansionSignature>, "isItemEditable" | "expansionTrigger">) => "content" | "iconContainer";
6
+ }: Pick<TreeViewUsedParamsWithDefaults<UseTreeViewExpansionSignature>, "isItemEditable" | "expansionTrigger">) => "content" | "iconContainer";
@@ -1,2 +1,2 @@
1
1
  export { useTreeViewFocus } from "./useTreeViewFocus.js";
2
- export type { UseTreeViewFocusSignature, UseTreeViewFocusParameters, UseTreeViewFocusDefaultizedParameters } from "./useTreeViewFocus.types.js";
2
+ export type { UseTreeViewFocusSignature, UseTreeViewFocusParameters, UseTreeViewFocusParametersWithDefaults } from "./useTreeViewFocus.types.js";
@@ -28,7 +28,7 @@ export interface UseTreeViewFocusParameters {
28
28
  */
29
29
  onItemFocus?: (event: React.SyntheticEvent | null, itemId: string) => void;
30
30
  }
31
- export type UseTreeViewFocusDefaultizedParameters = UseTreeViewFocusParameters;
31
+ export type UseTreeViewFocusParametersWithDefaults = UseTreeViewFocusParameters;
32
32
  export interface UseTreeViewFocusState {
33
33
  focus: {
34
34
  focusedItemId: string | null;
@@ -36,7 +36,7 @@ export interface UseTreeViewFocusState {
36
36
  }
37
37
  export type UseTreeViewFocusSignature = TreeViewPluginSignature<{
38
38
  params: UseTreeViewFocusParameters;
39
- defaultizedParams: UseTreeViewFocusDefaultizedParameters;
39
+ paramsWithDefaults: UseTreeViewFocusParametersWithDefaults;
40
40
  instance: UseTreeViewFocusInstance;
41
41
  publicAPI: UseTreeViewFocusPublicAPI;
42
42
  state: UseTreeViewFocusState;
@@ -1,3 +1,3 @@
1
1
  export { useTreeViewItems } from "./useTreeViewItems.js";
2
- export type { UseTreeViewItemsSignature, UseTreeViewItemsParameters, UseTreeViewItemsDefaultizedParameters, UseTreeViewItemsState } from "./useTreeViewItems.types.js";
2
+ export type { UseTreeViewItemsSignature, UseTreeViewItemsParameters, UseTreeViewItemsParametersWithDefaults, UseTreeViewItemsState } from "./useTreeViewItems.types.js";
3
3
  export { buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
@@ -309,7 +309,7 @@ useTreeViewItems.getInitialState = params => ({
309
309
  error: null
310
310
  })
311
311
  });
312
- useTreeViewItems.getDefaultizedParams = ({
312
+ useTreeViewItems.applyDefaultValuesToParams = ({
313
313
  params
314
314
  }) => (0, _extends2.default)({}, params, {
315
315
  disabledItemsFocusable: params.disabledItemsFocusable ?? false,
@@ -137,7 +137,7 @@ export interface UseTreeViewItemsParameters<R extends {
137
137
  */
138
138
  itemChildrenIndentation?: string | number;
139
139
  }
140
- export type UseTreeViewItemsDefaultizedParameters<R extends {
140
+ export type UseTreeViewItemsParametersWithDefaults<R extends {
141
141
  children?: R[];
142
142
  }> = DefaultizedProps<UseTreeViewItemsParameters<R>, 'disabledItemsFocusable' | 'itemChildrenIndentation'>;
143
143
  interface UseTreeViewItemsEventLookup {
@@ -196,7 +196,7 @@ export interface UseTreeViewItemsState<R extends {}> {
196
196
  }
197
197
  export type UseTreeViewItemsSignature = TreeViewPluginSignature<{
198
198
  params: UseTreeViewItemsParameters<any>;
199
- defaultizedParams: UseTreeViewItemsDefaultizedParameters<any>;
199
+ paramsWithDefaults: UseTreeViewItemsParametersWithDefaults<any>;
200
200
  instance: UseTreeViewItemsInstance<any>;
201
201
  publicAPI: UseTreeViewItemsPublicAPI<any>;
202
202
  events: UseTreeViewItemsEventLookup;
@@ -1,2 +1,2 @@
1
1
  export { useTreeViewJSXItems } from "./useTreeViewJSXItems.js";
2
- export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters, UseTreeViewItemsDefaultizedParameters } from "./useTreeViewJSXItems.types.js";
2
+ export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters, UseTreeViewItemsParametersWithDefaults } from "./useTreeViewJSXItems.types.js";
@@ -26,10 +26,10 @@ export interface UseTreeViewItemsInstance {
26
26
  setJSXItemsOrderedChildrenIds: (parentId: TreeViewItemId | null, orderedChildrenIds: TreeViewItemId[]) => void;
27
27
  }
28
28
  export interface UseTreeViewJSXItemsParameters {}
29
- export interface UseTreeViewItemsDefaultizedParameters {}
29
+ export interface UseTreeViewItemsParametersWithDefaults {}
30
30
  export type UseTreeViewJSXItemsSignature = TreeViewPluginSignature<{
31
31
  params: UseTreeViewJSXItemsParameters;
32
- defaultizedParams: UseTreeViewItemsDefaultizedParameters;
32
+ paramsWithDefaults: UseTreeViewItemsParametersWithDefaults;
33
33
  instance: UseTreeViewItemsInstance;
34
34
  dependencies: [UseTreeViewItemsSignature, UseTreeViewKeyboardNavigationSignature];
35
35
  }>;
@@ -61,7 +61,7 @@ const useTreeViewLabel = ({
61
61
  };
62
62
  exports.useTreeViewLabel = useTreeViewLabel;
63
63
  useTreeViewLabel.itemPlugin = _useTreeViewLabel.useTreeViewLabelItemPlugin;
64
- useTreeViewLabel.getDefaultizedParams = ({
64
+ useTreeViewLabel.applyDefaultValuesToParams = ({
65
65
  params
66
66
  }) => (0, _extends2.default)({}, params, {
67
67
  isItemEditable: params.isItemEditable ?? false
@@ -35,7 +35,7 @@ export interface UseTreeViewLabelParameters<R extends {}> {
35
35
  */
36
36
  isItemEditable?: boolean | ((item: R) => boolean);
37
37
  }
38
- export type UseTreeViewLabelDefaultizedParameters<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
38
+ export type UseTreeViewLabelParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
39
39
  export interface UseTreeViewLabelState {
40
40
  label: {
41
41
  isItemEditable: ((item: any) => boolean) | boolean;
@@ -44,7 +44,7 @@ export interface UseTreeViewLabelState {
44
44
  }
45
45
  export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
46
46
  params: UseTreeViewLabelParameters<any>;
47
- defaultizedParams: UseTreeViewLabelDefaultizedParameters<any>;
47
+ paramsWithDefaults: UseTreeViewLabelParametersWithDefaults<any>;
48
48
  publicAPI: UseTreeViewLabelPublicAPI;
49
49
  instance: UseTreeViewLabelInstance;
50
50
  state: UseTreeViewLabelState;