@mui/x-tree-view 8.10.2 → 8.11.1

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 (154) hide show
  1. package/CHANGELOG.md +214 -13
  2. package/RichTreeView/RichTreeView.js +16 -15
  3. package/RichTreeView/RichTreeView.types.d.ts +3 -2
  4. package/SimpleTreeView/SimpleTreeView.js +10 -9
  5. package/SimpleTreeView/SimpleTreeView.types.d.ts +3 -2
  6. package/TreeItem/TreeItem.d.ts +1 -1
  7. package/TreeItem/TreeItem.types.d.ts +3 -1
  8. package/TreeItemProvider/TreeItemProvider.js +3 -3
  9. package/esm/RichTreeView/RichTreeView.js +16 -15
  10. package/esm/RichTreeView/RichTreeView.types.d.ts +3 -2
  11. package/esm/SimpleTreeView/SimpleTreeView.js +10 -9
  12. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +3 -2
  13. package/esm/TreeItem/TreeItem.d.ts +1 -1
  14. package/esm/TreeItem/TreeItem.types.d.ts +3 -1
  15. package/esm/TreeItemProvider/TreeItemProvider.js +3 -3
  16. package/esm/hooks/useTreeItemModel.js +3 -3
  17. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +24 -25
  18. package/esm/index.js +1 -1
  19. package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -2
  20. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -3
  21. package/esm/internals/components/RichTreeViewItems.js +5 -5
  22. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +2 -1
  23. package/esm/internals/corePlugins/useTreeViewId/index.js +2 -1
  24. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +10 -13
  25. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +8 -34
  26. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +9 -9
  27. package/esm/internals/index.d.ts +6 -14
  28. package/esm/internals/index.js +6 -13
  29. package/esm/internals/models/plugin.d.ts +2 -3
  30. package/esm/internals/models/treeView.d.ts +4 -6
  31. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +2 -1
  32. package/esm/internals/plugins/useTreeViewExpansion/index.js +2 -1
  33. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +26 -30
  34. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +24 -316
  35. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +27 -38
  36. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +7 -1
  37. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +2 -1
  38. package/esm/internals/plugins/useTreeViewFocus/index.js +2 -1
  39. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +17 -21
  40. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +20 -628
  41. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +25 -37
  42. package/esm/internals/plugins/useTreeViewItems/index.d.ts +2 -1
  43. package/esm/internals/plugins/useTreeViewItems/index.js +2 -1
  44. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +78 -99
  45. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +52 -1142
  46. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +58 -98
  47. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +1 -1
  48. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +1 -1
  49. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +32 -42
  50. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +22 -22
  51. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +2 -0
  52. package/esm/internals/plugins/useTreeViewLabel/index.d.ts +2 -1
  53. package/esm/internals/plugins/useTreeViewLabel/index.js +2 -1
  54. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +4 -4
  55. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +17 -25
  56. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -100
  57. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +24 -34
  58. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +2 -1
  59. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +1 -1
  60. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +18 -245
  61. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +15 -27
  62. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +20 -6
  63. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +2 -1
  64. package/esm/internals/plugins/useTreeViewSelection/index.js +2 -1
  65. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +25 -38
  66. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +30 -34
  67. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +38 -517
  68. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +46 -71
  69. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +1 -0
  70. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +10 -10
  71. package/esm/internals/useTreeView/useTreeView.d.ts +1 -1
  72. package/esm/internals/useTreeView/useTreeView.js +11 -18
  73. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -1
  74. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +2 -3
  75. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -2
  76. package/esm/internals/utils/tree.js +33 -33
  77. package/esm/useTreeItem/useTreeItem.js +14 -14
  78. package/esm/useTreeItem/useTreeItem.types.d.ts +2 -1
  79. package/hooks/useTreeItemModel.js +3 -3
  80. package/hooks/useTreeItemUtils/useTreeItemUtils.js +18 -19
  81. package/index.js +1 -1
  82. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +1 -1
  83. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -3
  84. package/internals/components/RichTreeViewItems.js +5 -5
  85. package/internals/corePlugins/useTreeViewId/index.d.ts +2 -1
  86. package/internals/corePlugins/useTreeViewId/index.js +8 -1
  87. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +9 -12
  88. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +8 -34
  89. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +10 -10
  90. package/internals/index.d.ts +6 -14
  91. package/internals/index.js +12 -73
  92. package/internals/models/plugin.d.ts +2 -3
  93. package/internals/models/treeView.d.ts +4 -6
  94. package/internals/plugins/useTreeViewExpansion/index.d.ts +2 -1
  95. package/internals/plugins/useTreeViewExpansion/index.js +8 -1
  96. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +24 -28
  97. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +24 -316
  98. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +27 -38
  99. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +7 -1
  100. package/internals/plugins/useTreeViewFocus/index.d.ts +2 -1
  101. package/internals/plugins/useTreeViewFocus/index.js +8 -1
  102. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +14 -18
  103. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +20 -628
  104. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +23 -35
  105. package/internals/plugins/useTreeViewItems/index.d.ts +2 -1
  106. package/internals/plugins/useTreeViewItems/index.js +8 -1
  107. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +77 -98
  108. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +52 -1142
  109. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +59 -99
  110. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +1 -1
  111. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +1 -1
  112. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +32 -42
  113. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +18 -18
  114. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +2 -0
  115. package/internals/plugins/useTreeViewLabel/index.d.ts +2 -1
  116. package/internals/plugins/useTreeViewLabel/index.js +8 -1
  117. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +3 -3
  118. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -24
  119. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -100
  120. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +24 -34
  121. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +2 -1
  122. package/internals/plugins/useTreeViewLazyLoading/index.js +8 -1
  123. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +18 -245
  124. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +16 -28
  125. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +20 -6
  126. package/internals/plugins/useTreeViewSelection/index.d.ts +2 -1
  127. package/internals/plugins/useTreeViewSelection/index.js +8 -1
  128. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +23 -37
  129. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +29 -33
  130. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +38 -517
  131. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +46 -71
  132. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +1 -0
  133. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +8 -8
  134. package/internals/useTreeView/useTreeView.d.ts +1 -1
  135. package/internals/useTreeView/useTreeView.js +11 -18
  136. package/internals/useTreeView/useTreeView.types.d.ts +1 -1
  137. package/internals/useTreeView/useTreeViewBuildContext.d.ts +2 -3
  138. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -2
  139. package/internals/utils/tree.js +31 -31
  140. package/package.json +12 -13
  141. package/useTreeItem/useTreeItem.js +14 -14
  142. package/useTreeItem/useTreeItem.types.d.ts +2 -1
  143. package/esm/internals/hooks/useSelector.d.ts +0 -4
  144. package/esm/internals/hooks/useSelector.js +0 -8
  145. package/esm/internals/utils/TreeViewStore.d.ts +0 -12
  146. package/esm/internals/utils/TreeViewStore.js +0 -22
  147. package/esm/internals/utils/selectors.d.ts +0 -21
  148. package/esm/internals/utils/selectors.js +0 -51
  149. package/internals/hooks/useSelector.d.ts +0 -4
  150. package/internals/hooks/useSelector.js +0 -16
  151. package/internals/utils/TreeViewStore.d.ts +0 -12
  152. package/internals/utils/TreeViewStore.js +0 -29
  153. package/internals/utils/selectors.d.ts +0 -21
  154. package/internals/utils/selectors.js +0 -58
@@ -3,85 +3,60 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.selectorSelectionPropagationRules = exports.selectorSelectionModelArray = exports.selectorSelectionModel = exports.selectorIsSelectionEnabled = exports.selectorIsMultiSelectEnabled = exports.selectorIsItemSelectionEnabled = exports.selectorIsItemSelected = exports.selectorIsCheckboxSelectionEnabled = void 0;
7
- var _selectors = require("../../utils/selectors");
6
+ exports.selectionSelectors = void 0;
7
+ var _store = require("@mui/x-internals/store");
8
8
  var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
9
- const selectorTreeViewSelectionState = state => state.selection;
10
-
11
- /**
12
- * Get the selected items.
13
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
14
- * @returns {TreeViewSelectionValue<boolean>} The selected items.
15
- */
16
- const selectorSelectionModel = exports.selectorSelectionModel = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.selectedItems);
17
-
18
- /**
19
- * Get the selected items as an array.
20
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
21
- * @returns {TreeViewItemId[]} The selected items as an array.
22
- */
23
- const selectorSelectionModelArray = exports.selectorSelectionModelArray = (0, _selectors.createSelector)([selectorSelectionModel], selectedItems => {
24
- if (Array.isArray(selectedItems)) {
25
- return selectedItems;
9
+ const selectedItemsSelector = (0, _store.createSelectorMemoized)(state => state.selection.selectedItems, selectedItemsRaw => {
10
+ if (Array.isArray(selectedItemsRaw)) {
11
+ return selectedItemsRaw;
26
12
  }
27
- if (selectedItems != null) {
28
- return [selectedItems];
13
+ if (selectedItemsRaw != null) {
14
+ return [selectedItemsRaw];
29
15
  }
30
16
  return [];
31
17
  });
32
-
33
- /**
34
- * Get the selected items as a map.
35
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
36
- * @returns {Map<TreeViewItemId, true>} The selected items as a Map.
37
- */
38
- const selectorSelectionModelMap = (0, _selectors.createSelector)([selectorSelectionModelArray], selectedItems => {
18
+ const selectedItemsMapSelector = (0, _store.createSelectorMemoized)(selectedItemsSelector, selectedItems => {
39
19
  const selectedItemsMap = new Map();
40
20
  selectedItems.forEach(id => {
41
21
  selectedItemsMap.set(id, true);
42
22
  });
43
23
  return selectedItemsMap;
44
24
  });
45
-
46
- /**
47
- * Check if an item is selected.
48
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
49
- * @returns {boolean} `true` if the item is selected, `false` otherwise.
50
- */
51
- const selectorIsItemSelected = exports.selectorIsItemSelected = (0, _selectors.createSelector)([selectorSelectionModelMap, (_, itemId) => itemId], (selectedItemsMap, itemId) => selectedItemsMap.has(itemId));
52
-
53
- /**
54
- * Check if multi selection is enabled.
55
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
56
- * @returns {boolean} `true` if multi selection is enabled, `false` otherwise.
57
- */
58
- const selectorIsMultiSelectEnabled = exports.selectorIsMultiSelectEnabled = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.isEnabled && selectionState.isMultiSelectEnabled);
59
-
60
- /**
61
- * Check if selection is enabled.
62
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
63
- * @returns {boolean} `true` if selection is enabled, `false` otherwise.
64
- */
65
- const selectorIsSelectionEnabled = exports.selectorIsSelectionEnabled = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.isEnabled);
66
-
67
- /**
68
- * Check if checkbox selection is enabled.
69
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
70
- * @returns {boolean} `true` if checkbox selection is enabled, `false` otherwise.
71
- */
72
- const selectorIsCheckboxSelectionEnabled = exports.selectorIsCheckboxSelectionEnabled = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.isCheckboxSelectionEnabled);
73
-
74
- /**
75
- * Check if selection is enabled for an item (if selection is enabled and if the item is not disabled).
76
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
77
- * @param {string} itemId The id of the item to check.
78
- * @returns {boolean} `true` if selection is enabled for the item, `false` otherwise.
79
- */
80
- const selectorIsItemSelectionEnabled = exports.selectorIsItemSelectionEnabled = (0, _selectors.createSelector)([_useTreeViewItems.selectorIsItemDisabled, selectorIsSelectionEnabled], (isItemDisabled, isSelectionEnabled) => isSelectionEnabled && !isItemDisabled);
81
-
82
- /**
83
- * Get the selection propagation rules.
84
- * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
85
- * @returns {TreeViewSelectionPropagation} The selection propagation rules.
86
- */
87
- const selectorSelectionPropagationRules = exports.selectorSelectionPropagationRules = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.selectionPropagation);
25
+ const selectionSelectors = exports.selectionSelectors = {
26
+ /**
27
+ * Gets the selected items as provided to the component.
28
+ */
29
+ selectedItemsRaw: (0, _store.createSelector)(state => state.selection.selectedItems),
30
+ /**
31
+ * Gets the selected items as an array.
32
+ */
33
+ selectedItems: selectedItemsSelector,
34
+ /**
35
+ * Gets the selected items as a Map.
36
+ */
37
+ selectedItemsMap: selectedItemsMapSelector,
38
+ /**
39
+ * Checks whether selection is enabled.
40
+ */
41
+ enabled: (0, _store.createSelector)(state => state.selection.isEnabled),
42
+ /**
43
+ * Checks whether multi selection is enabled.
44
+ */
45
+ isMultiSelectEnabled: (0, _store.createSelector)(state => state.selection.isMultiSelectEnabled),
46
+ /**
47
+ * Checks whether checkbox selection is enabled.
48
+ */
49
+ isCheckboxSelectionEnabled: (0, _store.createSelector)(state => state.selection.isCheckboxSelectionEnabled),
50
+ /**
51
+ * Gets the selection propagation rules.
52
+ */
53
+ propagationRules: (0, _store.createSelector)(state => state.selection.selectionPropagation),
54
+ /**
55
+ * Checks whether an item is selected.
56
+ */
57
+ isItemSelected: (0, _store.createSelector)(selectedItemsMapSelector, (selectedItemsMap, itemId) => selectedItemsMap.has(itemId)),
58
+ /**
59
+ * Checks whether an item can be selected (if selection is enabled and if the item is not disabled).
60
+ */
61
+ canItemBeSelected: (0, _store.createSelector)(_useTreeViewItems.itemsSelectors.isItemDisabled, state => state.selection.isEnabled, (isItemDisabled, isSelectionEnabled, _itemId) => isSelectionEnabled && !isItemDisabled)
62
+ };
@@ -133,6 +133,7 @@ export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
133
133
  export interface UseTreeItemCheckboxSlotPropsFromSelection {
134
134
  visible?: boolean;
135
135
  checked?: boolean;
136
+ indeterminate?: boolean;
136
137
  disabled?: boolean;
137
138
  tabIndex?: -1;
138
139
  onChange?: TreeViewCancellableEventHandler<React.ChangeEvent<HTMLInputElement>>;
@@ -24,7 +24,7 @@ const getAddedAndRemovedItems = ({
24
24
  newModelMap.set(id, true);
25
25
  });
26
26
  return {
27
- added: newModel.filter(itemId => !(0, _useTreeViewSelection.selectorIsItemSelected)(store.value, itemId)),
27
+ added: newModel.filter(itemId => !_useTreeViewSelection.selectionSelectors.isItemSelected(store.state, itemId)),
28
28
  removed: oldModel.filter(itemId => !newModelMap.has(itemId))
29
29
  };
30
30
  };
@@ -62,7 +62,7 @@ const propagateSelection = ({
62
62
  shouldRegenerateModel = true;
63
63
  newModelLookup[itemId] = true;
64
64
  }
65
- (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(store.value, itemId).forEach(selectDescendants);
65
+ _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(selectDescendants);
66
66
  };
67
67
  selectDescendants(addedItemId);
68
68
  }
@@ -71,15 +71,15 @@ const propagateSelection = ({
71
71
  if (!newModelLookup[itemId]) {
72
72
  return false;
73
73
  }
74
- const children = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(store.value, itemId);
74
+ const children = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(store.state, itemId);
75
75
  return children.every(checkAllDescendantsSelected);
76
76
  };
77
77
  const selectParents = itemId => {
78
- const parentId = (0, _useTreeViewItems.selectorItemParentId)(store.value, itemId);
78
+ const parentId = _useTreeViewItems.itemsSelectors.itemParentId(store.state, itemId);
79
79
  if (parentId == null) {
80
80
  return;
81
81
  }
82
- const siblings = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(store.value, parentId);
82
+ const siblings = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(store.state, parentId);
83
83
  if (siblings.every(checkAllDescendantsSelected)) {
84
84
  shouldRegenerateModel = true;
85
85
  newModelLookup[parentId] = true;
@@ -91,13 +91,13 @@ const propagateSelection = ({
91
91
  });
92
92
  changes.removed.forEach(removedItemId => {
93
93
  if (selectionPropagation.parents) {
94
- let parentId = (0, _useTreeViewItems.selectorItemParentId)(store.value, removedItemId);
94
+ let parentId = _useTreeViewItems.itemsSelectors.itemParentId(store.state, removedItemId);
95
95
  while (parentId != null) {
96
96
  if (newModelLookup[parentId]) {
97
97
  shouldRegenerateModel = true;
98
98
  delete newModelLookup[parentId];
99
99
  }
100
- parentId = (0, _useTreeViewItems.selectorItemParentId)(store.value, parentId);
100
+ parentId = _useTreeViewItems.itemsSelectors.itemParentId(store.state, parentId);
101
101
  }
102
102
  }
103
103
  if (selectionPropagation.descendants) {
@@ -106,7 +106,7 @@ const propagateSelection = ({
106
106
  shouldRegenerateModel = true;
107
107
  delete newModelLookup[itemId];
108
108
  }
109
- (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(store.value, itemId).forEach(deSelectDescendants);
109
+ _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(deSelectDescendants);
110
110
  };
111
111
  deSelectDescendants(removedItemId);
112
112
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { TreeViewAnyPluginSignature } from "../models/index.js";
3
3
  import { UseTreeViewBaseProps, UseTreeViewParameters, UseTreeViewReturnValue } from "./useTreeView.types.js";
4
- export declare function useTreeViewApiInitialization<T>(inputApiRef: React.RefObject<T | undefined> | undefined): React.RefObject<T>;
4
+ export declare function useTreeViewApiInitialization<T>(inputApiRef: React.RefObject<Partial<T> | undefined> | undefined): React.RefObject<T>;
5
5
  /**
6
6
  * This is the main hook that sets the plugin system up for the tree-view.
7
7
  *
@@ -9,11 +9,12 @@ exports.useTreeView = void 0;
9
9
  exports.useTreeViewApiInitialization = useTreeViewApiInitialization;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _useRefWithInit = require("@base-ui-components/utils/useRefWithInit");
13
+ var _store = require("@mui/x-internals/store");
12
14
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
13
15
  var _corePlugins = require("../corePlugins");
14
16
  var _useExtractPluginParamsFromProps = require("./useExtractPluginParamsFromProps");
15
17
  var _useTreeViewBuildContext = require("./useTreeViewBuildContext");
16
- var _TreeViewStore = require("../utils/TreeViewStore");
17
18
  function initializeInputApiRef(inputApiRef) {
18
19
  if (inputApiRef.current == null) {
19
20
  inputApiRef.current = {};
@@ -27,7 +28,6 @@ function useTreeViewApiInitialization(inputApiRef) {
27
28
  }
28
29
  return fallbackPublicApiRef;
29
30
  }
30
- let globalId = 0;
31
31
 
32
32
  /**
33
33
  * This is the main hook that sets the plugin system up for the tree-view.
@@ -52,31 +52,24 @@ const useTreeView = ({
52
52
  plugins,
53
53
  props
54
54
  });
55
- const instanceRef = React.useRef({});
56
- const instance = instanceRef.current;
55
+ const instance = (0, _useRefWithInit.useRefWithInit)(() => ({})).current;
57
56
  const publicAPI = useTreeViewApiInitialization(apiRef);
58
57
  const innerRootRef = React.useRef(null);
59
58
  const handleRootRef = (0, _useForkRef.default)(innerRootRef, rootRef);
60
- const storeRef = React.useRef(null);
61
- if (storeRef.current == null) {
62
- globalId += 1;
63
- const initialState = {
64
- cacheKey: {
65
- id: globalId
66
- }
67
- };
68
- plugins.forEach(plugin => {
59
+ const store = (0, _useRefWithInit.useRefWithInit)(() => {
60
+ const initialState = {};
61
+ for (const plugin of plugins) {
69
62
  if (plugin.getInitialState) {
70
63
  Object.assign(initialState, plugin.getInitialState(pluginParams));
71
64
  }
72
- });
73
- storeRef.current = new _TreeViewStore.TreeViewStore(initialState);
74
- }
65
+ }
66
+ return new _store.Store(initialState);
67
+ }).current;
75
68
  const contextValue = (0, _useTreeViewBuildContext.useTreeViewBuildContext)({
76
69
  plugins,
77
70
  instance,
78
71
  publicAPI: publicAPI.current,
79
- store: storeRef.current,
72
+ store,
80
73
  rootRef: innerRootRef
81
74
  });
82
75
  const rootPropsGetters = [];
@@ -86,7 +79,7 @@ const useTreeView = ({
86
79
  params: pluginParams,
87
80
  rootRef: innerRootRef,
88
81
  plugins,
89
- store: storeRef.current
82
+ store
90
83
  });
91
84
  if (pluginResponse.getRootProps) {
92
85
  rootPropsGetters.push(pluginResponse.getRootProps);
@@ -8,7 +8,7 @@ export interface UseTreeViewParameters<TSignatures extends readonly TreeViewAnyP
8
8
  props: TProps;
9
9
  }
10
10
  export interface UseTreeViewBaseProps<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
11
- apiRef: React.RefObject<TreeViewPublicAPI<TSignatures> | undefined> | undefined;
11
+ apiRef: React.RefObject<Partial<TreeViewPublicAPI<TSignatures>> | undefined> | undefined;
12
12
  }
13
13
  export interface UseTreeViewRootSlotProps extends Pick<React.HTMLAttributes<HTMLUListElement>, 'onFocus' | 'onBlur' | 'onKeyDown' | 'id' | 'aria-multiselectable' | 'role' | 'tabIndex'> {
14
14
  ref: React.Ref<HTMLUListElement>;
@@ -1,14 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { TreeViewContextValue } from "../TreeViewProvider/index.js";
3
- import { ConvertSignaturesIntoPlugins, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewPublicAPI } from "../models/index.js";
3
+ import { ConvertSignaturesIntoPlugins, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewPublicAPI, TreeViewStore } from "../models/index.js";
4
4
  import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
5
- import { TreeViewStore } from "../utils/TreeViewStore.js";
6
5
  export declare const useTreeViewBuildContext: <TSignatures extends readonly TreeViewAnyPluginSignature[]>(parameters: UseTreeViewBuildContextParameters<TSignatures>) => TreeViewContextValue<TSignatures>;
7
6
  interface UseTreeViewBuildContextParameters<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
8
7
  plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
9
8
  instance: TreeViewInstance<TSignatures>;
10
9
  publicAPI: TreeViewPublicAPI<TSignatures>;
11
- store: TreeViewStore<TSignatures>;
10
+ store: TreeViewStore<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
12
11
  rootRef: React.RefObject<HTMLUListElement | null>;
13
12
  }
14
13
  export {};
@@ -16,8 +16,6 @@ class FinalizationRegistryBasedCleanupTracking {
16
16
  unregister(unregisterToken) {
17
17
  this.registry.unregister(unregisterToken);
18
18
  }
19
-
20
- // eslint-disable-next-line class-methods-use-this
21
19
  reset() {}
22
20
  }
23
21
  exports.FinalizationRegistryBasedCleanupTracking = FinalizationRegistryBasedCleanupTracking;
@@ -9,7 +9,7 @@ var _useTreeViewItems = require("../plugins/useTreeViewItems/useTreeViewItems.se
9
9
  const getLastNavigableItemInArray = (state, items) => {
10
10
  // Equivalent to Array.prototype.findLastIndex
11
11
  let itemIndex = items.length - 1;
12
- while (itemIndex >= 0 && !(0, _useTreeViewItems.selectorCanItemBeFocused)(state, items[itemIndex])) {
12
+ while (itemIndex >= 0 && !_useTreeViewItems.itemsSelectors.canItemBeFocused(state, items[itemIndex])) {
13
13
  itemIndex -= 1;
14
14
  }
15
15
  if (itemIndex === -1) {
@@ -18,12 +18,12 @@ const getLastNavigableItemInArray = (state, items) => {
18
18
  return items[itemIndex];
19
19
  };
20
20
  const getPreviousNavigableItem = (state, itemId) => {
21
- const itemMeta = (0, _useTreeViewItems.selectorItemMeta)(state, itemId);
21
+ const itemMeta = _useTreeViewItems.itemsSelectors.itemMeta(state, itemId);
22
22
  if (!itemMeta) {
23
23
  return null;
24
24
  }
25
- const siblings = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemMeta.parentId);
26
- const itemIndex = (0, _useTreeViewItems.selectorItemIndex)(state, itemId);
25
+ const siblings = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemMeta.parentId);
26
+ const itemIndex = _useTreeViewItems.itemsSelectors.itemIndex(state, itemId);
27
27
 
28
28
  // TODO: What should we do if the parent is not navigable?
29
29
  if (itemIndex === 0) {
@@ -32,7 +32,7 @@ const getPreviousNavigableItem = (state, itemId) => {
32
32
 
33
33
  // Finds the previous navigable sibling.
34
34
  let previousNavigableSiblingIndex = itemIndex - 1;
35
- while (!(0, _useTreeViewItems.selectorCanItemBeFocused)(state, siblings[previousNavigableSiblingIndex]) && previousNavigableSiblingIndex >= 0) {
35
+ while (!_useTreeViewItems.itemsSelectors.canItemBeFocused(state, siblings[previousNavigableSiblingIndex]) && previousNavigableSiblingIndex >= 0) {
36
36
  previousNavigableSiblingIndex -= 1;
37
37
  }
38
38
  if (previousNavigableSiblingIndex === -1) {
@@ -47,47 +47,47 @@ const getPreviousNavigableItem = (state, itemId) => {
47
47
 
48
48
  // Finds the last navigable ancestor of the previous navigable sibling.
49
49
  let currentItemId = siblings[previousNavigableSiblingIndex];
50
- let lastNavigableChild = getLastNavigableItemInArray(state, (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, currentItemId));
51
- while ((0, _useTreeViewExpansion.selectorIsItemExpanded)(state, currentItemId) && lastNavigableChild != null) {
50
+ let lastNavigableChild = getLastNavigableItemInArray(state, _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, currentItemId));
51
+ while (_useTreeViewExpansion.expansionSelectors.isItemExpanded(state, currentItemId) && lastNavigableChild != null) {
52
52
  currentItemId = lastNavigableChild;
53
- lastNavigableChild = getLastNavigableItemInArray(state, (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, currentItemId));
53
+ lastNavigableChild = getLastNavigableItemInArray(state, _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, currentItemId));
54
54
  }
55
55
  return currentItemId;
56
56
  };
57
57
  exports.getPreviousNavigableItem = getPreviousNavigableItem;
58
58
  const getNextNavigableItem = (state, itemId) => {
59
59
  // If the item is expanded and has some navigable children, return the first of them.
60
- if ((0, _useTreeViewExpansion.selectorIsItemExpanded)(state, itemId)) {
61
- const firstNavigableChild = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemId).find(childId => (0, _useTreeViewItems.selectorCanItemBeFocused)(state, childId));
60
+ if (_useTreeViewExpansion.expansionSelectors.isItemExpanded(state, itemId)) {
61
+ const firstNavigableChild = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemId).find(childId => _useTreeViewItems.itemsSelectors.canItemBeFocused(state, childId));
62
62
  if (firstNavigableChild != null) {
63
63
  return firstNavigableChild;
64
64
  }
65
65
  }
66
- let itemMeta = (0, _useTreeViewItems.selectorItemMeta)(state, itemId);
66
+ let itemMeta = _useTreeViewItems.itemsSelectors.itemMeta(state, itemId);
67
67
  while (itemMeta != null) {
68
68
  // Try to find the first navigable sibling after the current item.
69
- const siblings = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemMeta.parentId);
70
- const currentItemIndex = (0, _useTreeViewItems.selectorItemIndex)(state, itemMeta.id);
69
+ const siblings = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemMeta.parentId);
70
+ const currentItemIndex = _useTreeViewItems.itemsSelectors.itemIndex(state, itemMeta.id);
71
71
  if (currentItemIndex < siblings.length - 1) {
72
72
  let nextItemIndex = currentItemIndex + 1;
73
- while (!(0, _useTreeViewItems.selectorCanItemBeFocused)(state, siblings[nextItemIndex]) && nextItemIndex < siblings.length - 1) {
73
+ while (!_useTreeViewItems.itemsSelectors.canItemBeFocused(state, siblings[nextItemIndex]) && nextItemIndex < siblings.length - 1) {
74
74
  nextItemIndex += 1;
75
75
  }
76
- if ((0, _useTreeViewItems.selectorCanItemBeFocused)(state, siblings[nextItemIndex])) {
76
+ if (_useTreeViewItems.itemsSelectors.canItemBeFocused(state, siblings[nextItemIndex])) {
77
77
  return siblings[nextItemIndex];
78
78
  }
79
79
  }
80
80
 
81
81
  // If the sibling does not exist, go up a level to the parent and try again.
82
- itemMeta = (0, _useTreeViewItems.selectorItemMeta)(state, itemMeta.parentId);
82
+ itemMeta = _useTreeViewItems.itemsSelectors.itemMeta(state, itemMeta.parentId);
83
83
  }
84
84
  return null;
85
85
  };
86
86
  exports.getNextNavigableItem = getNextNavigableItem;
87
87
  const getLastNavigableItem = state => {
88
88
  let itemId = null;
89
- while (itemId == null || (0, _useTreeViewExpansion.selectorIsItemExpanded)(state, itemId)) {
90
- const children = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemId);
89
+ while (itemId == null || _useTreeViewExpansion.expansionSelectors.isItemExpanded(state, itemId)) {
90
+ const children = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemId);
91
91
  const lastNavigableChild = getLastNavigableItemInArray(state, children);
92
92
 
93
93
  // The item has no navigable children.
@@ -99,7 +99,7 @@ const getLastNavigableItem = state => {
99
99
  return itemId;
100
100
  };
101
101
  exports.getLastNavigableItem = getLastNavigableItem;
102
- const getFirstNavigableItem = state => (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, null).find(itemId => (0, _useTreeViewItems.selectorCanItemBeFocused)(state, itemId));
102
+ const getFirstNavigableItem = state => _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, null).find(itemId => _useTreeViewItems.itemsSelectors.canItemBeFocused(state, itemId));
103
103
 
104
104
  /**
105
105
  * This is used to determine the start and end of a selection range so
@@ -120,8 +120,8 @@ const findOrderInTremauxTree = (state, itemAId, itemBId) => {
120
120
  if (itemAId === itemBId) {
121
121
  return [itemAId, itemBId];
122
122
  }
123
- const itemMetaA = (0, _useTreeViewItems.selectorItemMeta)(state, itemAId);
124
- const itemMetaB = (0, _useTreeViewItems.selectorItemMeta)(state, itemBId);
123
+ const itemMetaA = _useTreeViewItems.itemsSelectors.itemMeta(state, itemAId);
124
+ const itemMetaB = _useTreeViewItems.itemsSelectors.itemMeta(state, itemBId);
125
125
  if (!itemMetaA || !itemMetaB) {
126
126
  return [itemAId, itemBId];
127
127
  }
@@ -142,7 +142,7 @@ const findOrderInTremauxTree = (state, itemAId, itemBId) => {
142
142
  aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
143
143
  continueA = aAncestor !== null;
144
144
  if (!aAncestorIsCommon && continueA) {
145
- aAncestor = (0, _useTreeViewItems.selectorItemParentId)(state, aAncestor);
145
+ aAncestor = _useTreeViewItems.itemsSelectors.itemParentId(state, aAncestor);
146
146
  }
147
147
  }
148
148
  if (continueB && !aAncestorIsCommon) {
@@ -150,12 +150,12 @@ const findOrderInTremauxTree = (state, itemAId, itemBId) => {
150
150
  bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
151
151
  continueB = bAncestor !== null;
152
152
  if (!bAncestorIsCommon && continueB) {
153
- bAncestor = (0, _useTreeViewItems.selectorItemParentId)(state, bAncestor);
153
+ bAncestor = _useTreeViewItems.itemsSelectors.itemParentId(state, bAncestor);
154
154
  }
155
155
  }
156
156
  }
157
157
  const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
158
- const ancestorFamily = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, commonAncestor);
158
+ const ancestorFamily = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, commonAncestor);
159
159
  const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
160
160
  const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
161
161
  return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [itemAId, itemBId] : [itemBId, itemAId];
@@ -164,20 +164,20 @@ exports.findOrderInTremauxTree = findOrderInTremauxTree;
164
164
  const getNonDisabledItemsInRange = (state, itemAId, itemBId) => {
165
165
  const getNextItem = itemId => {
166
166
  // If the item is expanded and has some children, return the first of them.
167
- if ((0, _useTreeViewExpansion.selectorIsItemExpandable)(state, itemId) && (0, _useTreeViewExpansion.selectorIsItemExpanded)(state, itemId)) {
168
- return (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemId)[0];
167
+ if (_useTreeViewExpansion.expansionSelectors.isItemExpandable(state, itemId) && _useTreeViewExpansion.expansionSelectors.isItemExpanded(state, itemId)) {
168
+ return _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemId)[0];
169
169
  }
170
- let itemMeta = (0, _useTreeViewItems.selectorItemMeta)(state, itemId);
170
+ let itemMeta = _useTreeViewItems.itemsSelectors.itemMeta(state, itemId);
171
171
  while (itemMeta != null) {
172
172
  // Try to find the first navigable sibling after the current item.
173
- const siblings = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemMeta.parentId);
174
- const currentItemIndex = (0, _useTreeViewItems.selectorItemIndex)(state, itemMeta.id);
173
+ const siblings = _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemMeta.parentId);
174
+ const currentItemIndex = _useTreeViewItems.itemsSelectors.itemIndex(state, itemMeta.id);
175
175
  if (currentItemIndex < siblings.length - 1) {
176
176
  return siblings[currentItemIndex + 1];
177
177
  }
178
178
 
179
179
  // If the item is the last of its siblings, go up a level to the parent and try again.
180
- itemMeta = itemMeta.parentId ? (0, _useTreeViewItems.selectorItemMeta)(state, itemMeta.parentId) : null;
180
+ itemMeta = itemMeta.parentId ? _useTreeViewItems.itemsSelectors.itemMeta(state, itemMeta.parentId) : null;
181
181
  }
182
182
  throw new Error('Invalid range');
183
183
  };
@@ -186,7 +186,7 @@ const getNonDisabledItemsInRange = (state, itemAId, itemBId) => {
186
186
  let current = first;
187
187
  while (current !== last) {
188
188
  current = getNextItem(current);
189
- if (!(0, _useTreeViewItems.selectorIsItemDisabled)(state, current)) {
189
+ if (!_useTreeViewItems.itemsSelectors.isItemDisabled(state, current)) {
190
190
  items.push(current);
191
191
  }
192
192
  }
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@mui/x-tree-view",
3
- "version": "8.10.2",
3
+ "version": "8.11.1",
4
4
  "author": "MUI Team",
5
5
  "description": "The community edition of the MUI X Tree View components.",
6
- "main": "./index.js",
7
6
  "license": "MIT",
8
7
  "bugs": {
9
8
  "url": "https://github.com/mui/mui-x/issues"
@@ -33,14 +32,13 @@
33
32
  },
34
33
  "dependencies": {
35
34
  "@babel/runtime": "^7.28.2",
35
+ "@base-ui-components/utils": "0.1.0",
36
36
  "@mui/utils": "^7.3.1",
37
37
  "@types/react-transition-group": "^4.4.12",
38
38
  "clsx": "^2.1.1",
39
39
  "prop-types": "^15.8.1",
40
40
  "react-transition-group": "^4.4.5",
41
- "reselect": "^5.1.1",
42
- "use-sync-external-store": "^1.5.0",
43
- "@mui/x-internals": "8.10.2"
41
+ "@mui/x-internals": "8.11.1"
44
42
  },
45
43
  "peerDependencies": {
46
44
  "@emotion/react": "^11.9.0",
@@ -62,27 +60,28 @@
62
60
  "node": ">=14.0.0"
63
61
  },
64
62
  "type": "commonjs",
63
+ "main": "./index.js",
65
64
  "types": "./index.d.ts",
66
65
  "exports": {
67
66
  "./package.json": "./package.json",
68
67
  ".": {
69
- "import": {
70
- "types": "./esm/index.d.ts",
71
- "default": "./esm/index.js"
72
- },
73
68
  "require": {
74
69
  "types": "./index.d.ts",
75
70
  "default": "./index.js"
71
+ },
72
+ "default": {
73
+ "types": "./esm/index.d.ts",
74
+ "default": "./esm/index.js"
76
75
  }
77
76
  },
78
77
  "./*": {
79
- "import": {
80
- "types": "./esm/*/index.d.ts",
81
- "default": "./esm/*/index.js"
82
- },
83
78
  "require": {
84
79
  "types": "./*/index.d.ts",
85
80
  "default": "./*/index.js"
81
+ },
82
+ "default": {
83
+ "types": "./esm/*/index.d.ts",
84
+ "default": "./esm/*/index.js"
86
85
  }
87
86
  },
88
87
  "./esm": null
@@ -9,19 +9,19 @@ Object.defineProperty(exports, "__esModule", {
9
9
  exports.useTreeItem = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _store = require("@mui/x-internals/store");
12
13
  var _extractEventHandlers = _interopRequireDefault(require("@mui/utils/extractEventHandlers"));
13
14
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
15
  var _TreeViewProvider = require("../internals/TreeViewProvider");
15
16
  var _useTreeItemUtils = require("../hooks/useTreeItemUtils");
16
17
  var _TreeViewItemDepthContext = require("../internals/TreeViewItemDepthContext");
17
18
  var _tree = require("../internals/utils/tree");
18
- var _useSelector = require("../internals/hooks/useSelector");
19
- var _useTreeViewFocus = require("../internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors");
20
19
  var _useTreeViewId = require("../internals/corePlugins/useTreeViewId/useTreeViewId.utils");
21
- var _useTreeViewItems = require("../internals/plugins/useTreeViewItems/useTreeViewItems.selectors");
22
- var _useTreeViewId2 = require("../internals/corePlugins/useTreeViewId/useTreeViewId.selectors");
23
- var _useTreeViewExpansion = require("../internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors");
24
- var _useTreeViewSelection = require("../internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors");
20
+ var _useTreeViewFocus = require("../internals/plugins/useTreeViewFocus");
21
+ var _useTreeViewItems = require("../internals/plugins/useTreeViewItems");
22
+ var _useTreeViewId2 = require("../internals/corePlugins/useTreeViewId");
23
+ var _useTreeViewExpansion = require("../internals/plugins/useTreeViewExpansion");
24
+ var _useTreeViewSelection = require("../internals/plugins/useTreeViewSelection");
25
25
  const useTreeItem = parameters => {
26
26
  const {
27
27
  runItemPlugins,
@@ -30,7 +30,7 @@ const useTreeItem = parameters => {
30
30
  store
31
31
  } = (0, _TreeViewProvider.useTreeViewContext)();
32
32
  const depthContext = React.useContext(_TreeViewItemDepthContext.TreeViewItemDepthContext);
33
- const depth = (0, _useSelector.useSelector)(store, (...params) => {
33
+ const depth = (0, _store.useStore)(store, (...params) => {
34
34
  if (typeof depthContext === 'function') {
35
35
  return depthContext(...params);
36
36
  }
@@ -60,15 +60,15 @@ const useTreeItem = parameters => {
60
60
  const handleRootRef = (0, _useForkRef.default)(rootRef, pluginRootRef, rootRefObject);
61
61
  const handleContentRef = (0, _useForkRef.default)(contentRef, contentRefObject);
62
62
  const checkboxRef = React.useRef(null);
63
- const treeId = (0, _useSelector.useSelector)(store, _useTreeViewId2.selectorTreeViewId);
64
- const isSelectionEnabledForItem = (0, _useSelector.useSelector)(store, _useTreeViewSelection.selectorIsItemSelectionEnabled, itemId);
65
- const isCheckboxSelectionEnabled = (0, _useSelector.useSelector)(store, _useTreeViewSelection.selectorIsCheckboxSelectionEnabled);
63
+ const treeId = (0, _store.useStore)(store, _useTreeViewId2.idSelectors.treeId);
64
+ const isSelectionEnabledForItem = (0, _store.useStore)(store, _useTreeViewSelection.selectionSelectors.canItemBeSelected, itemId);
65
+ const isCheckboxSelectionEnabled = (0, _store.useStore)(store, _useTreeViewSelection.selectionSelectors.isCheckboxSelectionEnabled);
66
66
  const idAttribute = (0, _useTreeViewId.generateTreeItemIdAttribute)({
67
67
  itemId,
68
68
  treeId,
69
69
  id
70
70
  });
71
- const shouldBeAccessibleWithTab = (0, _useSelector.useSelector)(store, _useTreeViewFocus.selectorIsItemTheDefaultFocusableItem, itemId);
71
+ const shouldBeAccessibleWithTab = (0, _store.useStore)(store, _useTreeViewFocus.focusSelectors.isItemTheDefaultFocusableItem, itemId);
72
72
  const sharedPropsEnhancerParams = {
73
73
  rootRefObject,
74
74
  contentRefObject,
@@ -79,7 +79,7 @@ const useTreeItem = parameters => {
79
79
  if (event.defaultMuiPrevented) {
80
80
  return;
81
81
  }
82
- if (!status.focused && (0, _useTreeViewItems.selectorCanItemBeFocused)(store.value, itemId) && event.currentTarget === event.target) {
82
+ if (!status.focused && _useTreeViewItems.itemsSelectors.canItemBeFocused(store.state, itemId) && event.currentTarget === event.target) {
83
83
  instance.focusItem(event, itemId);
84
84
  }
85
85
  };
@@ -121,7 +121,7 @@ const useTreeItem = parameters => {
121
121
  if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
122
122
  return;
123
123
  }
124
- if ((0, _useTreeViewExpansion.selectorItemExpansionTrigger)(store.value) === 'content') {
124
+ if (_useTreeViewExpansion.expansionSelectors.triggerSlot(store.state) === 'content') {
125
125
  interactions.handleExpansion(event);
126
126
  }
127
127
  if (!isCheckboxSelectionEnabled) {
@@ -144,7 +144,7 @@ const useTreeItem = parameters => {
144
144
  if (event.defaultMuiPrevented) {
145
145
  return;
146
146
  }
147
- if ((0, _useTreeViewExpansion.selectorItemExpansionTrigger)(store.value) === 'iconContainer') {
147
+ if (_useTreeViewExpansion.expansionSelectors.triggerSlot(store.state) === 'iconContainer') {
148
148
  interactions.handleExpansion(event);
149
149
  }
150
150
  };