@mui/x-tree-view 8.0.0-beta.0 → 8.0.0-beta.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 (69) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +8 -14
  3. package/esm/index.js +1 -1
  4. package/esm/internals/models/itemPlugin.d.ts +3 -3
  5. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +3 -8
  6. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +1 -4
  7. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +6 -6
  8. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +13 -15
  9. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -3
  10. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +9 -12
  11. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -11
  12. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -20
  13. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +5 -7
  14. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +5 -4
  15. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -2
  16. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +16 -21
  17. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +43 -38
  18. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +331 -0
  19. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +38 -1
  20. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +5 -4
  21. package/esm/internals/utils/selectors.d.ts +1 -1
  22. package/esm/useTreeItem/useTreeItem.js +11 -17
  23. package/esm/useTreeItem/useTreeItem.types.d.ts +0 -4
  24. package/hooks/useTreeItemUtils/useTreeItemUtils.js +7 -13
  25. package/index.js +1 -1
  26. package/internals/models/itemPlugin.d.ts +3 -3
  27. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +3 -8
  28. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +1 -4
  29. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +6 -6
  30. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +12 -14
  31. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -3
  32. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +9 -12
  33. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -12
  34. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -20
  35. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +5 -7
  36. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +5 -4
  37. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -2
  38. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +15 -20
  39. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +42 -37
  40. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +331 -0
  41. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +39 -2
  42. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +5 -4
  43. package/internals/utils/selectors.d.ts +1 -1
  44. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +8 -14
  45. package/modern/index.js +1 -1
  46. package/modern/internals/models/itemPlugin.d.ts +3 -3
  47. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +3 -8
  48. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +1 -4
  49. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +6 -6
  50. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +13 -15
  51. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -3
  52. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +9 -12
  53. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -11
  54. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -20
  55. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +5 -7
  56. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +5 -4
  57. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -2
  58. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +16 -21
  59. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +43 -38
  60. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +331 -0
  61. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +38 -1
  62. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +5 -4
  63. package/modern/internals/utils/selectors.d.ts +1 -1
  64. package/modern/useTreeItem/useTreeItem.js +11 -17
  65. package/modern/useTreeItem/useTreeItem.types.d.ts +0 -4
  66. package/package.json +1 -1
  67. package/tsconfig.build.tsbuildinfo +1 -1
  68. package/useTreeItem/useTreeItem.js +11 -17
  69. package/useTreeItem/useTreeItem.types.d.ts +0 -4
@@ -21,17 +21,10 @@ var _useTreeViewId = require("../internals/corePlugins/useTreeViewId/useTreeView
21
21
  var _useTreeViewItems = require("../internals/plugins/useTreeViewItems/useTreeViewItems.selectors");
22
22
  var _useTreeViewId2 = require("../internals/corePlugins/useTreeViewId/useTreeViewId.selectors");
23
23
  var _useTreeViewExpansion = require("../internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors");
24
+ var _useTreeViewSelection = require("../internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors");
24
25
  const useTreeItem = parameters => {
25
26
  const {
26
27
  runItemPlugins,
27
- items: {
28
- onItemClick
29
- },
30
- selection: {
31
- disableSelection,
32
- checkboxSelection
33
- },
34
- label: labelContext,
35
28
  instance,
36
29
  publicAPI,
37
30
  store
@@ -68,6 +61,8 @@ const useTreeItem = parameters => {
68
61
  const handleContentRef = (0, _useForkRef.default)(contentRef, contentRefObject);
69
62
  const checkboxRef = React.useRef(null);
70
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);
71
66
  const idAttribute = (0, _useTreeViewId.generateTreeItemIdAttribute)({
72
67
  itemId,
73
68
  treeId,
@@ -77,8 +72,7 @@ const useTreeItem = parameters => {
77
72
  const sharedPropsEnhancerParams = {
78
73
  rootRefObject,
79
74
  contentRefObject,
80
- interactions,
81
- status
75
+ interactions
82
76
  };
83
77
  const createRootHandleFocus = otherHandlers => event => {
84
78
  otherHandlers.onFocus?.(event);
@@ -123,14 +117,14 @@ const useTreeItem = parameters => {
123
117
  };
124
118
  const createContentHandleClick = otherHandlers => event => {
125
119
  otherHandlers.onClick?.(event);
126
- onItemClick(event, itemId);
120
+ instance.handleItemClick(event, itemId);
127
121
  if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
128
122
  return;
129
123
  }
130
124
  if ((0, _useTreeViewExpansion.selectorItemExpansionTrigger)(store.value) === 'content') {
131
125
  interactions.handleExpansion(event);
132
126
  }
133
- if (!checkboxSelection) {
127
+ if (!isCheckboxSelectionEnabled) {
134
128
  interactions.handleSelection(event);
135
129
  }
136
130
  };
@@ -166,7 +160,7 @@ const useTreeItem = parameters => {
166
160
  if (status.selected) {
167
161
  // - each selected node has aria-selected set to true.
168
162
  ariaSelected = true;
169
- } else if (disableSelection || status.disabled) {
163
+ } else if (!isSelectionEnabledForItem) {
170
164
  // - if the tree contains nodes that are not selectable, aria-selected is not present on those nodes.
171
165
  ariaSelected = undefined;
172
166
  } else {
@@ -224,10 +218,10 @@ const useTreeItem = parameters => {
224
218
  }, externalProps, {
225
219
  onDoubleClick: createLabelHandleDoubleClick(externalEventHandlers)
226
220
  });
227
- if (labelContext?.isItemEditable) {
228
- props.editable = status.editable;
229
- }
230
- return props;
221
+ const enhancedLabelProps = propsEnhancers.label?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
222
+ externalEventHandlers
223
+ })) ?? {};
224
+ return (0, _extends2.default)({}, enhancedLabelProps, props);
231
225
  };
232
226
  const getLabelInputProps = (externalProps = {}) => {
233
227
  const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
@@ -66,10 +66,6 @@ export type UseTreeItemIconContainerSlotProps<ExternalProps = {}> = ExternalProp
66
66
  export interface UseTreeItemLabelSlotOwnProps {
67
67
  children: React.ReactNode;
68
68
  onDoubleClick: TreeViewCancellableEventHandler<React.MouseEvent>;
69
- /**
70
- * Only defined when the `isItemEditable` experimental feature is enabled.
71
- */
72
- editable?: boolean;
73
69
  }
74
70
  export type UseTreeItemLabelSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItemLabelSlotOwnProps;
75
71
  export interface UseTreeItemLabelInputSlotOwnProps {}