@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
@@ -1,56 +1,36 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.useTreeViewSelectionItemPlugin = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _fastObjectShallowCompare = require("@mui/x-internals/fastObjectShallowCompare");
7
+ var _store = require("@mui/x-internals/store");
10
8
  var _TreeViewProvider = require("../../TreeViewProvider");
11
9
  var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
12
10
  var _useTreeViewSelection = require("./useTreeViewSelection.selectors");
13
- var _useSelector = require("../../hooks/useSelector");
14
- function selectorItemCheckboxStatus(state, itemId) {
15
- const isCheckboxSelectionEnabled = (0, _useTreeViewSelection.selectorIsCheckboxSelectionEnabled)(state);
16
- const isSelectionEnabledForItem = (0, _useTreeViewSelection.selectorIsItemSelectionEnabled)(state, itemId);
17
- if ((0, _useTreeViewSelection.selectorIsItemSelected)(state, itemId)) {
18
- return {
19
- disabled: !isSelectionEnabledForItem,
20
- visible: isCheckboxSelectionEnabled,
21
- indeterminate: false,
22
- checked: true
23
- };
24
- }
25
- const children = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemId);
26
- if (children.length === 0) {
27
- return {
28
- disabled: !isSelectionEnabledForItem,
29
- visible: isCheckboxSelectionEnabled,
30
- indeterminate: false,
31
- checked: false
32
- };
11
+ const selectorCheckboxSelectionStatus = (0, _store.createSelector)((state, itemId) => {
12
+ if (_useTreeViewSelection.selectionSelectors.isItemSelected(state, itemId)) {
13
+ return 'checked';
33
14
  }
34
15
  let hasSelectedDescendant = false;
35
16
  let hasUnSelectedDescendant = false;
36
17
  const traverseDescendants = itemToTraverseId => {
37
18
  if (itemToTraverseId !== itemId) {
38
- if ((0, _useTreeViewSelection.selectorIsItemSelected)(state, itemToTraverseId)) {
19
+ if (_useTreeViewSelection.selectionSelectors.isItemSelected(state, itemToTraverseId)) {
39
20
  hasSelectedDescendant = true;
40
21
  } else {
41
22
  hasUnSelectedDescendant = true;
42
23
  }
43
24
  }
44
- (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemToTraverseId).forEach(traverseDescendants);
25
+ _useTreeViewItems.itemsSelectors.itemOrderedChildrenIds(state, itemToTraverseId).forEach(traverseDescendants);
45
26
  };
46
27
  traverseDescendants(itemId);
47
- return {
48
- disabled: !isSelectionEnabledForItem,
49
- visible: isCheckboxSelectionEnabled,
50
- indeterminate: hasSelectedDescendant && hasUnSelectedDescendant,
51
- checked: (0, _useTreeViewSelection.selectorSelectionPropagationRules)(state).parents ? hasSelectedDescendant && !hasUnSelectedDescendant : false
52
- };
53
- }
28
+ if (hasSelectedDescendant && hasUnSelectedDescendant) {
29
+ return 'indeterminate';
30
+ }
31
+ const shouldSelectBasedOnDescendants = _useTreeViewSelection.selectionSelectors.propagationRules(state).parents;
32
+ return shouldSelectBasedOnDescendants && hasSelectedDescendant && !hasUnSelectedDescendant ? 'checked' : 'empty';
33
+ });
54
34
  const useTreeViewSelectionItemPlugin = ({
55
35
  props
56
36
  }) => {
@@ -60,7 +40,9 @@ const useTreeViewSelectionItemPlugin = ({
60
40
  const {
61
41
  store
62
42
  } = (0, _TreeViewProvider.useTreeViewContext)();
63
- const checkboxStatus = (0, _useSelector.useSelector)(store, selectorItemCheckboxStatus, itemId, _fastObjectShallowCompare.fastObjectShallowCompare);
43
+ const isCheckboxSelectionEnabled = (0, _store.useStore)(store, _useTreeViewSelection.selectionSelectors.isCheckboxSelectionEnabled);
44
+ const isItemSelectionEnabled = (0, _store.useStore)(store, _useTreeViewSelection.selectionSelectors.canItemBeSelected, itemId);
45
+ const checkboxSelectionStatus = (0, _store.useStore)(store, selectorCheckboxSelectionStatus, itemId);
64
46
  return {
65
47
  propsEnhancers: {
66
48
  checkbox: ({
@@ -72,15 +54,19 @@ const useTreeViewSelectionItemPlugin = ({
72
54
  if (event.defaultMuiPrevented) {
73
55
  return;
74
56
  }
75
- if (!(0, _useTreeViewSelection.selectorIsItemSelectionEnabled)(store.value, itemId)) {
57
+ if (!_useTreeViewSelection.selectionSelectors.canItemBeSelected(store.state, itemId)) {
76
58
  return;
77
59
  }
78
60
  interactions.handleCheckboxSelection(event);
79
61
  };
80
- return (0, _extends2.default)({
62
+ return {
81
63
  tabIndex: -1,
82
- onChange: handleChange
83
- }, checkboxStatus);
64
+ onChange: handleChange,
65
+ visible: isCheckboxSelectionEnabled,
66
+ disabled: !isItemSelectionEnabled,
67
+ checked: checkboxSelectionStatus === 'checked',
68
+ indeterminate: checkboxSelectionStatus === 'indeterminate'
69
+ };
84
70
  }
85
71
  }
86
72
  };
@@ -27,9 +27,9 @@ const useTreeViewSelection = ({
27
27
  const lastSelectedItem = React.useRef(null);
28
28
  const lastSelectedRange = React.useRef({});
29
29
  const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
30
- const oldModel = (0, _useTreeViewSelection2.selectorSelectionModel)(store.value);
30
+ const oldModel = _useTreeViewSelection2.selectionSelectors.selectedItemsRaw(store.state);
31
31
  let cleanModel;
32
- const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
32
+ const isMultiSelectEnabled = _useTreeViewSelection2.selectionSelectors.isMultiSelectEnabled(store.state);
33
33
  if (isMultiSelectEnabled && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
34
34
  cleanModel = (0, _useTreeViewSelection.propagateSelection)({
35
35
  store,
@@ -66,10 +66,8 @@ const useTreeViewSelection = ({
66
66
  }
67
67
  }
68
68
  if (params.selectedItems === undefined) {
69
- store.update(prevState => (0, _extends2.default)({}, prevState, {
70
- selection: (0, _extends2.default)({}, prevState.selection, {
71
- selectedItems: cleanModel
72
- })
69
+ store.set('selection', (0, _extends2.default)({}, store.state.selection, {
70
+ selectedItems: cleanModel
73
71
  }));
74
72
  }
75
73
  params.onSelectedItemsChange?.(event, cleanModel);
@@ -80,14 +78,14 @@ const useTreeViewSelection = ({
80
78
  keepExistingSelection = false,
81
79
  shouldBeSelected
82
80
  }) => {
83
- if (!(0, _useTreeViewSelection2.selectorIsSelectionEnabled)(store.value)) {
81
+ if (!_useTreeViewSelection2.selectionSelectors.enabled(store.state)) {
84
82
  return;
85
83
  }
86
84
  let newSelected;
87
- const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
85
+ const isMultiSelectEnabled = _useTreeViewSelection2.selectionSelectors.isMultiSelectEnabled(store.state);
88
86
  if (keepExistingSelection) {
89
- const oldSelected = (0, _useTreeViewSelection2.selectorSelectionModelArray)(store.value);
90
- const isSelectedBefore = (0, _useTreeViewSelection2.selectorIsItemSelected)(store.value, itemId);
87
+ const oldSelected = _useTreeViewSelection2.selectionSelectors.selectedItems(store.state);
88
+ const isSelectedBefore = _useTreeViewSelection2.selectionSelectors.isItemSelected(store.state, itemId);
91
89
  if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {
92
90
  newSelected = oldSelected.filter(id => id !== itemId);
93
91
  } else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {
@@ -97,25 +95,25 @@ const useTreeViewSelection = ({
97
95
  }
98
96
  } else {
99
97
  // eslint-disable-next-line no-lonely-if
100
- if (shouldBeSelected === false || shouldBeSelected == null && (0, _useTreeViewSelection2.selectorIsItemSelected)(store.value, itemId)) {
98
+ if (shouldBeSelected === false || shouldBeSelected == null && _useTreeViewSelection2.selectionSelectors.isItemSelected(store.state, itemId)) {
101
99
  newSelected = isMultiSelectEnabled ? [] : null;
102
100
  } else {
103
101
  newSelected = isMultiSelectEnabled ? [itemId] : itemId;
104
102
  }
105
103
  }
106
104
  setSelectedItems(event, newSelected,
107
- // If shouldBeSelected === selectorIsItemSelected(store, itemId), we still want to propagate the select.
105
+ // If shouldBeSelected === selectionSelectors.isItemSelected(store, itemId), we still want to propagate the select.
108
106
  // This is useful when the element is in an indeterminate state.
109
107
  [itemId]);
110
108
  lastSelectedItem.current = itemId;
111
109
  lastSelectedRange.current = {};
112
110
  };
113
111
  const selectRange = (event, [start, end]) => {
114
- const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
112
+ const isMultiSelectEnabled = _useTreeViewSelection2.selectionSelectors.isMultiSelectEnabled(store.state);
115
113
  if (!isMultiSelectEnabled) {
116
114
  return;
117
115
  }
118
- let newSelectedItems = (0, _useTreeViewSelection2.selectorSelectionModelArray)(store.value).slice();
116
+ let newSelectedItems = _useTreeViewSelection2.selectionSelectors.selectedItems(store.state).slice();
119
117
 
120
118
  // If the last selection was a range selection,
121
119
  // remove the items that were part of the last range from the model
@@ -125,7 +123,7 @@ const useTreeViewSelection = ({
125
123
 
126
124
  // Add to the model the items that are part of the new range and not already part of the model.
127
125
  const selectedItemsLookup = (0, _useTreeViewSelection.getLookupFromArray)(newSelectedItems);
128
- const range = (0, _tree.getNonDisabledItemsInRange)(store.value, start, end);
126
+ const range = (0, _tree.getNonDisabledItemsInRange)(store.state, start, end);
129
127
  const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);
130
128
  newSelectedItems = newSelectedItems.concat(itemsToAddToModel);
131
129
  setSelectedItems(event, newSelectedItems);
@@ -133,31 +131,31 @@ const useTreeViewSelection = ({
133
131
  };
134
132
  const expandSelectionRange = (event, itemId) => {
135
133
  if (lastSelectedItem.current != null) {
136
- const [start, end] = (0, _tree.findOrderInTremauxTree)(store.value, itemId, lastSelectedItem.current);
134
+ const [start, end] = (0, _tree.findOrderInTremauxTree)(store.state, itemId, lastSelectedItem.current);
137
135
  selectRange(event, [start, end]);
138
136
  }
139
137
  };
140
138
  const selectRangeFromStartToItem = (event, itemId) => {
141
- selectRange(event, [(0, _tree.getFirstNavigableItem)(store.value), itemId]);
139
+ selectRange(event, [(0, _tree.getFirstNavigableItem)(store.state), itemId]);
142
140
  };
143
141
  const selectRangeFromItemToEnd = (event, itemId) => {
144
- selectRange(event, [itemId, (0, _tree.getLastNavigableItem)(store.value)]);
142
+ selectRange(event, [itemId, (0, _tree.getLastNavigableItem)(store.state)]);
145
143
  };
146
144
  const selectAllNavigableItems = event => {
147
- const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
145
+ const isMultiSelectEnabled = _useTreeViewSelection2.selectionSelectors.isMultiSelectEnabled(store.state);
148
146
  if (!isMultiSelectEnabled) {
149
147
  return;
150
148
  }
151
- const navigableItems = (0, _tree.getAllNavigableItems)(store.value);
149
+ const navigableItems = (0, _tree.getAllNavigableItems)(store.state);
152
150
  setSelectedItems(event, navigableItems);
153
151
  lastSelectedRange.current = (0, _useTreeViewSelection.getLookupFromArray)(navigableItems);
154
152
  };
155
153
  const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
156
- const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
154
+ const isMultiSelectEnabled = _useTreeViewSelection2.selectionSelectors.isMultiSelectEnabled(store.state);
157
155
  if (!isMultiSelectEnabled) {
158
156
  return;
159
157
  }
160
- let newSelectedItems = (0, _useTreeViewSelection2.selectorSelectionModelArray)(store.value).slice();
158
+ let newSelectedItems = _useTreeViewSelection2.selectionSelectors.selectedItems(store.state).slice();
161
159
  if (Object.keys(lastSelectedRange.current).length === 0) {
162
160
  newSelectedItems.push(nextItem);
163
161
  lastSelectedRange.current = {
@@ -179,18 +177,16 @@ const useTreeViewSelection = ({
179
177
  setSelectedItems(event, newSelectedItems);
180
178
  };
181
179
  (0, _useEnhancedEffect.default)(() => {
182
- store.update(prevState => (0, _extends2.default)({}, prevState, {
183
- selection: {
184
- selectedItems: params.selectedItems === undefined ? prevState.selection.selectedItems : params.selectedItems,
185
- isEnabled: !params.disableSelection,
186
- isMultiSelectEnabled: params.multiSelect,
187
- isCheckboxSelectionEnabled: params.checkboxSelection,
188
- selectionPropagation: {
189
- descendants: params.selectionPropagation.descendants,
190
- parents: params.selectionPropagation.parents
191
- }
180
+ store.set('selection', {
181
+ selectedItems: params.selectedItems === undefined ? store.state.selection.selectedItems : params.selectedItems,
182
+ isEnabled: !params.disableSelection,
183
+ isMultiSelectEnabled: params.multiSelect,
184
+ isCheckboxSelectionEnabled: params.checkboxSelection,
185
+ selectionPropagation: {
186
+ descendants: params.selectionPropagation.descendants,
187
+ parents: params.selectionPropagation.parents
192
188
  }
193
- }));
189
+ });
194
190
  }, [store, params.selectedItems, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
195
191
  return {
196
192
  getRootProps: () => ({