@mui/x-tree-view 8.23.0 → 8.24.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 (494) hide show
  1. package/CHANGELOG.md +111 -1
  2. package/RichTreeView/RichTreeView.d.ts +1 -1
  3. package/RichTreeView/RichTreeView.js +34 -28
  4. package/RichTreeView/RichTreeView.types.d.ts +6 -4
  5. package/RichTreeView/index.d.ts +1 -3
  6. package/RichTreeView/index.js +1 -13
  7. package/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  8. package/RichTreeView/useExtractRichTreeViewParameters.js +91 -0
  9. package/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  10. package/SimpleTreeView/SimpleTreeView.js +30 -24
  11. package/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  12. package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  13. package/SimpleTreeView/useExtractSimpleTreeViewParameters.js +78 -0
  14. package/TreeItem/TreeItem.d.ts +1 -1
  15. package/TreeItemProvider/TreeItemProvider.js +3 -10
  16. package/esm/RichTreeView/RichTreeView.d.ts +1 -1
  17. package/esm/RichTreeView/RichTreeView.js +33 -27
  18. package/esm/RichTreeView/RichTreeView.types.d.ts +6 -4
  19. package/esm/RichTreeView/index.d.ts +1 -3
  20. package/esm/RichTreeView/index.js +1 -1
  21. package/esm/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  22. package/esm/RichTreeView/useExtractRichTreeViewParameters.js +83 -0
  23. package/esm/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  24. package/esm/SimpleTreeView/SimpleTreeView.js +29 -23
  25. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  26. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  27. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +70 -0
  28. package/esm/TreeItem/TreeItem.d.ts +1 -1
  29. package/esm/TreeItemProvider/TreeItemProvider.js +3 -10
  30. package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +1 -1
  31. package/esm/hooks/useRichTreeViewApiRef.d.ts +2 -2
  32. package/esm/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  33. package/esm/hooks/useTreeItemModel.d.ts +2 -2
  34. package/esm/hooks/useTreeItemModel.js +1 -1
  35. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  36. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +25 -34
  37. package/esm/hooks/useTreeViewApiRef.d.ts +2 -4
  38. package/esm/hooks/useTreeViewApiRef.js +3 -2
  39. package/esm/index.d.ts +0 -1
  40. package/esm/index.js +1 -2
  41. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  42. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +126 -0
  43. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  44. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  45. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +49 -0
  46. package/esm/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  47. package/esm/internals/MinimalTreeViewStore/TimeoutManager.js +39 -0
  48. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  49. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +16 -0
  50. package/esm/internals/MinimalTreeViewStore/index.d.ts +2 -0
  51. package/esm/internals/MinimalTreeViewStore/index.js +2 -0
  52. package/esm/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  53. package/esm/internals/RichTreeViewStore/RichTreeViewStore.js +21 -0
  54. package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  55. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  56. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +15 -0
  57. package/esm/internals/RichTreeViewStore/index.d.ts +3 -0
  58. package/esm/internals/RichTreeViewStore/index.js +3 -0
  59. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  60. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +18 -0
  61. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  62. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  63. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +5 -0
  64. package/esm/internals/SimpleTreeViewStore/index.d.ts +2 -0
  65. package/esm/internals/SimpleTreeViewStore/index.js +2 -0
  66. package/esm/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  67. package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -3
  68. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  69. package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  70. package/esm/internals/TreeViewProvider/TreeViewProvider.js +11 -6
  71. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  72. package/esm/internals/TreeViewProvider/index.d.ts +1 -1
  73. package/esm/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  74. package/esm/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  75. package/esm/internals/components/RichTreeViewItems.js +3 -3
  76. package/esm/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  77. package/esm/internals/hooks/useTreeViewRootProps.js +30 -0
  78. package/esm/internals/hooks/useTreeViewStore.d.ts +10 -0
  79. package/esm/internals/hooks/useTreeViewStore.js +19 -0
  80. package/esm/internals/index.d.ts +15 -21
  81. package/esm/internals/index.js +11 -14
  82. package/esm/internals/models/events.d.ts +24 -3
  83. package/esm/internals/models/index.d.ts +2 -3
  84. package/esm/internals/models/index.js +2 -3
  85. package/esm/internals/models/itemPlugin.d.ts +9 -0
  86. package/esm/internals/models/treeView.d.ts +5 -9
  87. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  88. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.js +124 -0
  89. package/esm/internals/plugins/expansion/index.d.ts +2 -0
  90. package/esm/internals/plugins/expansion/index.js +2 -0
  91. package/esm/internals/plugins/expansion/selectors.d.ts +27 -0
  92. package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +5 -5
  93. package/esm/internals/plugins/expansion/utils.d.ts +5 -0
  94. package/esm/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  95. package/esm/internals/plugins/focus/TreeViewFocusPlugin.js +107 -0
  96. package/esm/internals/plugins/focus/index.d.ts +2 -0
  97. package/esm/internals/plugins/focus/index.js +2 -0
  98. package/esm/internals/plugins/focus/selectors.d.ts +21 -0
  99. package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +6 -6
  100. package/esm/internals/plugins/id/index.d.ts +1 -0
  101. package/esm/internals/plugins/id/index.js +1 -0
  102. package/esm/internals/plugins/id/selectors.d.ts +13 -0
  103. package/esm/internals/plugins/id/selectors.js +18 -0
  104. package/esm/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  105. package/esm/internals/plugins/items/TreeViewItemsPlugin.js +223 -0
  106. package/esm/internals/plugins/items/index.d.ts +3 -0
  107. package/esm/internals/plugins/items/index.js +3 -0
  108. package/esm/internals/plugins/items/selectors.d.ts +60 -0
  109. package/esm/internals/plugins/items/selectors.js +64 -0
  110. package/esm/internals/plugins/items/utils.d.ts +43 -0
  111. package/esm/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -50
  112. package/esm/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  113. package/esm/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +81 -0
  114. package/esm/internals/plugins/jsxItems/index.d.ts +1 -0
  115. package/esm/internals/plugins/jsxItems/index.js +1 -0
  116. package/esm/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  117. package/esm/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +29 -17
  118. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  119. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +306 -0
  120. package/esm/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  121. package/esm/internals/plugins/keyboardNavigation/index.js +1 -0
  122. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  123. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +50 -0
  124. package/esm/internals/plugins/labelEditing/index.d.ts +2 -0
  125. package/esm/internals/plugins/labelEditing/index.js +2 -0
  126. package/{internals/plugins/useTreeViewLabel → esm/internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  127. package/esm/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +2 -2
  128. package/esm/internals/plugins/labelEditing/selectors.d.ts +15 -0
  129. package/esm/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  130. package/esm/internals/plugins/lazyLoading/index.d.ts +2 -0
  131. package/esm/internals/plugins/lazyLoading/index.js +2 -0
  132. package/esm/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  133. package/esm/internals/plugins/lazyLoading/selectors.js +25 -0
  134. package/esm/internals/plugins/lazyLoading/types.d.ts +5 -0
  135. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  136. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.js +319 -0
  137. package/esm/internals/plugins/selection/index.d.ts +2 -0
  138. package/esm/internals/plugins/selection/index.js +2 -0
  139. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  140. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +3 -3
  141. package/esm/internals/plugins/selection/selectors.d.ts +48 -0
  142. package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -9
  143. package/esm/internals/utils/tree.d.ts +8 -10
  144. package/esm/internals/utils/tree.js +2 -2
  145. package/esm/models/items.d.ts +5 -2
  146. package/esm/useTreeItem/useTreeItem.d.ts +18 -2
  147. package/esm/useTreeItem/useTreeItem.js +14 -18
  148. package/esm/useTreeItem/useTreeItem.types.d.ts +4 -19
  149. package/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
  150. package/hooks/useRichTreeViewApiRef.d.ts +2 -2
  151. package/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  152. package/hooks/useTreeItemModel.d.ts +2 -2
  153. package/hooks/useTreeItemModel.js +2 -2
  154. package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  155. package/hooks/useTreeItemUtils/useTreeItemUtils.js +41 -49
  156. package/hooks/useTreeViewApiRef.d.ts +2 -4
  157. package/hooks/useTreeViewApiRef.js +2 -4
  158. package/index.d.ts +0 -1
  159. package/index.js +1 -22
  160. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  161. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +134 -0
  162. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  163. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  164. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +58 -0
  165. package/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  166. package/internals/MinimalTreeViewStore/TimeoutManager.js +46 -0
  167. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  168. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +23 -0
  169. package/internals/MinimalTreeViewStore/index.d.ts +2 -0
  170. package/internals/MinimalTreeViewStore/index.js +27 -0
  171. package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  172. package/internals/RichTreeViewStore/RichTreeViewStore.js +30 -0
  173. package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  174. package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  175. package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +22 -0
  176. package/internals/RichTreeViewStore/index.d.ts +3 -0
  177. package/internals/RichTreeViewStore/index.js +38 -0
  178. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  179. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +26 -0
  180. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  181. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  182. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +11 -0
  183. package/internals/SimpleTreeViewStore/index.d.ts +2 -0
  184. package/internals/SimpleTreeViewStore/index.js +27 -0
  185. package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  186. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +3 -4
  187. package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  188. package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  189. package/internals/TreeViewProvider/TreeViewProvider.js +14 -9
  190. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  191. package/internals/TreeViewProvider/index.d.ts +1 -1
  192. package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  193. package/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  194. package/internals/components/RichTreeViewItems.js +9 -9
  195. package/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  196. package/internals/hooks/useTreeViewRootProps.js +36 -0
  197. package/internals/hooks/useTreeViewStore.d.ts +10 -0
  198. package/internals/hooks/useTreeViewStore.js +26 -0
  199. package/internals/index.d.ts +15 -21
  200. package/internals/index.js +40 -70
  201. package/internals/models/events.d.ts +24 -3
  202. package/internals/models/index.d.ts +2 -3
  203. package/internals/models/index.js +11 -22
  204. package/internals/models/itemPlugin.d.ts +9 -0
  205. package/internals/models/treeView.d.ts +5 -9
  206. package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  207. package/internals/plugins/expansion/TreeViewExpansionPlugin.js +132 -0
  208. package/internals/plugins/expansion/index.d.ts +2 -0
  209. package/internals/plugins/expansion/index.js +27 -0
  210. package/internals/plugins/expansion/selectors.d.ts +27 -0
  211. package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +8 -8
  212. package/internals/plugins/expansion/utils.d.ts +5 -0
  213. package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  214. package/internals/plugins/focus/TreeViewFocusPlugin.js +114 -0
  215. package/internals/plugins/focus/index.d.ts +2 -0
  216. package/internals/plugins/focus/index.js +27 -0
  217. package/internals/plugins/focus/selectors.d.ts +21 -0
  218. package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +9 -9
  219. package/internals/plugins/id/index.d.ts +1 -0
  220. package/internals/plugins/id/index.js +16 -0
  221. package/internals/plugins/id/selectors.d.ts +13 -0
  222. package/internals/plugins/id/selectors.js +24 -0
  223. package/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  224. package/internals/plugins/items/TreeViewItemsPlugin.js +231 -0
  225. package/internals/plugins/items/index.d.ts +3 -0
  226. package/internals/plugins/items/index.js +46 -0
  227. package/internals/plugins/items/selectors.d.ts +60 -0
  228. package/internals/plugins/{useTreeViewItems/useTreeViewItems.selectors.js → items/selectors.js} +16 -16
  229. package/internals/plugins/items/utils.d.ts +43 -0
  230. package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -51
  231. package/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  232. package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +89 -0
  233. package/internals/plugins/jsxItems/index.d.ts +1 -0
  234. package/internals/plugins/jsxItems/index.js +16 -0
  235. package/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  236. package/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +30 -17
  237. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  238. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +313 -0
  239. package/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  240. package/internals/plugins/keyboardNavigation/index.js +16 -0
  241. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  242. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +58 -0
  243. package/internals/plugins/labelEditing/index.d.ts +2 -0
  244. package/internals/plugins/labelEditing/index.js +27 -0
  245. package/{esm/internals/plugins/useTreeViewLabel → internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  246. package/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +6 -6
  247. package/internals/plugins/labelEditing/selectors.d.ts +15 -0
  248. package/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  249. package/internals/plugins/lazyLoading/index.d.ts +2 -0
  250. package/internals/plugins/lazyLoading/index.js +27 -0
  251. package/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  252. package/internals/plugins/{useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js → lazyLoading/selectors.js} +11 -6
  253. package/internals/plugins/lazyLoading/types.d.ts +5 -0
  254. package/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  255. package/internals/plugins/selection/TreeViewSelectionPlugin.js +327 -0
  256. package/internals/plugins/selection/index.d.ts +2 -0
  257. package/internals/plugins/selection/index.js +27 -0
  258. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  259. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +13 -13
  260. package/internals/plugins/selection/selectors.d.ts +48 -0
  261. package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -9
  262. package/internals/utils/tree.d.ts +8 -10
  263. package/internals/utils/tree.js +33 -33
  264. package/models/items.d.ts +5 -2
  265. package/package.json +2 -2
  266. package/useTreeItem/useTreeItem.d.ts +18 -2
  267. package/useTreeItem/useTreeItem.js +18 -23
  268. package/useTreeItem/useTreeItem.types.d.ts +4 -19
  269. package/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  270. package/RichTreeView/RichTreeView.plugins.js +0 -15
  271. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  272. package/SimpleTreeView/SimpleTreeView.plugins.js +0 -15
  273. package/esm/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  274. package/esm/RichTreeView/RichTreeView.plugins.js +0 -9
  275. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  276. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +0 -9
  277. package/esm/internals/corePlugins/corePlugins.d.ts +0 -9
  278. package/esm/internals/corePlugins/corePlugins.js +0 -8
  279. package/esm/internals/corePlugins/index.d.ts +0 -2
  280. package/esm/internals/corePlugins/index.js +0 -1
  281. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  282. package/esm/internals/corePlugins/useTreeViewId/index.js +0 -2
  283. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  284. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -38
  285. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  286. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  287. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  288. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  289. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  290. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  291. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  292. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  293. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -31
  294. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  295. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  296. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  297. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  298. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  299. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  300. package/esm/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  301. package/esm/internals/hooks/useInstanceEventHandler.js +0 -79
  302. package/esm/internals/models/helpers.d.ts +0 -7
  303. package/esm/internals/models/plugin.d.ts +0 -166
  304. package/esm/internals/models/plugin.js +0 -1
  305. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  306. package/esm/internals/plugins/useTreeViewExpansion/index.js +0 -2
  307. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  308. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -149
  309. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  310. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  311. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  312. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  313. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  314. package/esm/internals/plugins/useTreeViewFocus/index.js +0 -2
  315. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  316. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -113
  317. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  318. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  319. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  320. package/esm/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  321. package/esm/internals/plugins/useTreeViewItems/index.js +0 -3
  322. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  323. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -223
  324. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
  325. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -64
  326. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
  327. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  328. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  329. package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  330. package/esm/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  331. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  332. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  333. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -104
  334. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  335. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  336. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  337. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  338. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -305
  339. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  340. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  341. package/esm/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  342. package/esm/internals/plugins/useTreeViewLabel/index.js +0 -2
  343. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  344. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -70
  345. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  346. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  347. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  348. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  349. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  350. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  351. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -20
  352. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  353. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  354. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  355. package/esm/internals/plugins/useTreeViewSelection/index.js +0 -2
  356. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  357. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -231
  358. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
  359. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  360. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  361. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  362. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -107
  363. package/esm/internals/useTreeView/index.d.ts +0 -1
  364. package/esm/internals/useTreeView/index.js +0 -1
  365. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  366. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -51
  367. package/esm/internals/useTreeView/useTreeView.d.ts +0 -18
  368. package/esm/internals/useTreeView/useTreeView.js +0 -102
  369. package/esm/internals/useTreeView/useTreeView.types.d.ts +0 -20
  370. package/esm/internals/useTreeView/useTreeView.types.js +0 -1
  371. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  372. package/esm/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  373. package/esm/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  374. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  375. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -14
  376. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  377. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  378. package/esm/internals/utils/plugins.d.ts +0 -2
  379. package/esm/internals/utils/plugins.js +0 -4
  380. package/esm/internals/utils/publishTreeViewEvent.d.ts +0 -5
  381. package/esm/internals/utils/publishTreeViewEvent.js +0 -3
  382. package/internals/corePlugins/corePlugins.d.ts +0 -9
  383. package/internals/corePlugins/corePlugins.js +0 -14
  384. package/internals/corePlugins/index.d.ts +0 -2
  385. package/internals/corePlugins/index.js +0 -12
  386. package/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  387. package/internals/corePlugins/useTreeViewId/index.js +0 -19
  388. package/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  389. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -46
  390. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  391. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -15
  392. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  393. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  394. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -34
  395. package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  396. package/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -12
  397. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  398. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -38
  399. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  400. package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  401. package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -12
  402. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  403. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -19
  404. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  405. package/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  406. package/internals/hooks/useInstanceEventHandler.js +0 -87
  407. package/internals/models/helpers.d.ts +0 -7
  408. package/internals/models/plugin.d.ts +0 -166
  409. package/internals/models/plugin.js +0 -5
  410. package/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  411. package/internals/plugins/useTreeViewExpansion/index.js +0 -19
  412. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  413. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -157
  414. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  415. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  416. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -5
  417. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  418. package/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  419. package/internals/plugins/useTreeViewFocus/index.js +0 -19
  420. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  421. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -121
  422. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  423. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  424. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -5
  425. package/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  426. package/internals/plugins/useTreeViewItems/index.js +0 -32
  427. package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  428. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -231
  429. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
  430. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
  431. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -5
  432. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  433. package/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  434. package/internals/plugins/useTreeViewJSXItems/index.js +0 -12
  435. package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  436. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  437. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -112
  438. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -5
  439. package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  440. package/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -12
  441. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  442. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -312
  443. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  444. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -5
  445. package/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  446. package/internals/plugins/useTreeViewLabel/index.js +0 -19
  447. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  448. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -78
  449. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  450. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  451. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -5
  452. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  453. package/internals/plugins/useTreeViewLazyLoading/index.js +0 -12
  454. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  455. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  456. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -5
  457. package/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  458. package/internals/plugins/useTreeViewSelection/index.js +0 -19
  459. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  460. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -240
  461. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
  462. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  463. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -5
  464. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  465. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -116
  466. package/internals/useTreeView/index.d.ts +0 -1
  467. package/internals/useTreeView/index.js +0 -12
  468. package/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  469. package/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -60
  470. package/internals/useTreeView/useTreeView.d.ts +0 -18
  471. package/internals/useTreeView/useTreeView.js +0 -112
  472. package/internals/useTreeView/useTreeView.types.d.ts +0 -20
  473. package/internals/useTreeView/useTreeView.types.js +0 -5
  474. package/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  475. package/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  476. package/internals/utils/cleanupTracking/CleanupTracking.js +0 -5
  477. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  478. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -21
  479. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  480. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -45
  481. package/internals/utils/plugins.d.ts +0 -2
  482. package/internals/utils/plugins.js +0 -11
  483. package/internals/utils/publishTreeViewEvent.d.ts +0 -5
  484. package/internals/utils/publishTreeViewEvent.js +0 -10
  485. /package/esm/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  486. /package/esm/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  487. /package/esm/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  488. /package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  489. /package/esm/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
  490. /package/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  491. /package/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  492. /package/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  493. /package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  494. /package/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
@@ -1,10 +1,10 @@
1
1
  import { createSelector } from '@mui/x-internals/store';
2
- import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
2
+ import { itemsSelectors } from "../items/selectors.js";
3
3
  export const labelSelectors = {
4
4
  /**
5
5
  * Checks whether an item is editable.
6
6
  */
7
- isItemEditable: createSelector(state => state.label?.isItemEditable, itemsSelectors.itemModel, (isItemEditable, itemModel, _itemId) => {
7
+ isItemEditable: createSelector(state => state.isItemEditable, itemsSelectors.itemModel, (isItemEditable, itemModel, _itemId) => {
8
8
  if (!itemModel || isItemEditable == null) {
9
9
  return false;
10
10
  }
@@ -16,9 +16,9 @@ export const labelSelectors = {
16
16
  /**
17
17
  * Checks whether an item is being edited.
18
18
  */
19
- isItemBeingEdited: createSelector((state, itemId) => itemId == null ? false : state.label?.editedItemId === itemId),
19
+ isItemBeingEdited: createSelector((state, itemId) => itemId == null ? false : state.editedItemId === itemId),
20
20
  /**
21
21
  * Checks whether any item is being edited.
22
22
  */
23
- isAnyItemBeingEdited: createSelector(state => !!state.label?.editedItemId)
23
+ isAnyItemBeingEdited: createSelector(state => !!state.editedItemId)
24
24
  };
@@ -0,0 +1,2 @@
1
+ export * from "./types.js";
2
+ export * from "./selectors.js";
@@ -0,0 +1,2 @@
1
+ export * from "./types.js";
2
+ export * from "./selectors.js";
@@ -0,0 +1,19 @@
1
+ import { RichTreeViewState } from "../../RichTreeViewStore/index.js";
2
+ export declare const lazyLoadingSelectors: {
3
+ /**
4
+ * Checks if the lazy loaded state is empty.
5
+ */
6
+ isEmpty: (state: RichTreeViewState<any, any>) => boolean;
7
+ /**
8
+ * Checks whether an item is loading.
9
+ */
10
+ isItemLoading: (state: RichTreeViewState<any, any>, itemId: string | null) => boolean;
11
+ /**
12
+ * Checks whether an item has errors.
13
+ */
14
+ itemHasError: (state: RichTreeViewState<any, any>, itemId: string | null) => boolean;
15
+ /**
16
+ * Get an item error.
17
+ */
18
+ itemError: (state: RichTreeViewState<any, any>, itemId: string | null) => Error | null | undefined;
19
+ };
@@ -0,0 +1,25 @@
1
+ import { createSelector } from '@mui/x-internals/store';
2
+ import { TREE_VIEW_ROOT_PARENT_ID } from "../items/index.js";
3
+ export const lazyLoadingSelectors = {
4
+ /**
5
+ * Checks if the lazy loaded state is empty.
6
+ */
7
+ isEmpty: createSelector(state => {
8
+ if (state.lazyLoadedItems == null) {
9
+ return true;
10
+ }
11
+ return Object.keys(state.lazyLoadedItems.loading).length === 0 && Object.keys(state.lazyLoadedItems.errors).length === 0;
12
+ }),
13
+ /**
14
+ * Checks whether an item is loading.
15
+ */
16
+ isItemLoading: createSelector((state, itemId) => state.lazyLoadedItems?.loading[itemId ?? TREE_VIEW_ROOT_PARENT_ID] ?? false),
17
+ /**
18
+ * Checks whether an item has errors.
19
+ */
20
+ itemHasError: createSelector((state, itemId) => !!state.lazyLoadedItems?.errors[itemId ?? TREE_VIEW_ROOT_PARENT_ID]),
21
+ /**
22
+ * Get an item error.
23
+ */
24
+ itemError: createSelector((state, itemId) => state.lazyLoadedItems?.errors[itemId ?? TREE_VIEW_ROOT_PARENT_ID])
25
+ };
@@ -0,0 +1,5 @@
1
+ import { TreeViewItemId } from "../../../models/index.js";
2
+ export interface RichTreeViewLazyLoadedItemsStatus {
3
+ loading: Record<TreeViewItemId, boolean>;
4
+ errors: Record<TreeViewItemId, Error | null>;
5
+ }
@@ -0,0 +1,73 @@
1
+ export declare class TreeViewSelectionPlugin<Multiple extends boolean | undefined> {
2
+ private store;
3
+ private lastSelectedItem;
4
+ private lastSelectedRange;
5
+ constructor(store: any);
6
+ private setSelectedItems;
7
+ private selectRange;
8
+ buildPublicAPI: () => {
9
+ setItemSelection: ({
10
+ itemId,
11
+ event,
12
+ keepExistingSelection,
13
+ shouldBeSelected
14
+ }: {
15
+ itemId: string;
16
+ event?: React.SyntheticEvent | null;
17
+ shouldBeSelected?: boolean;
18
+ keepExistingSelection?: boolean;
19
+ }) => void;
20
+ };
21
+ /**
22
+ * Select or deselect an item.
23
+ * @param {object} parameters The parameters of the method.
24
+ * @param {TreeViewItemId} parameters.itemId The id of the item to select or deselect.
25
+ * @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
26
+ * @param {boolean} parameters.keepExistingSelection If `true`, the other already selected items will remain selected, otherwise, they will be deselected. This parameter is only relevant when `multiSelect` is `true`
27
+ * @param {boolean | undefined} parameters.shouldBeSelected If `true` the item will be selected. If `false` the item will be deselected. If not defined, the item's selection status will be toggled.
28
+ */
29
+ setItemSelection: ({
30
+ itemId,
31
+ event,
32
+ keepExistingSelection,
33
+ shouldBeSelected
34
+ }: {
35
+ itemId: string;
36
+ event?: React.SyntheticEvent | null;
37
+ shouldBeSelected?: boolean;
38
+ keepExistingSelection?: boolean;
39
+ }) => void;
40
+ /**
41
+ * Select all the navigable items in the tree.
42
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
43
+ */
44
+ selectAllNavigableItems: (event: React.SyntheticEvent) => void;
45
+ /**
46
+ * Expand the current selection range up to the given item.
47
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
48
+ * @param {TreeViewItemId} itemId The id of the item to expand the selection to.
49
+ */
50
+ expandSelectionRange: (event: React.SyntheticEvent, itemId: string) => void;
51
+ /**
52
+ * Expand the current selection range from the first navigable item to the given item.
53
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
54
+ * @param {TreeViewItemId} itemId The id of the item up to which the selection range should be expanded.
55
+ */
56
+ selectRangeFromStartToItem: (event: React.SyntheticEvent, itemId: string) => void;
57
+ /**
58
+ * Expand the current selection range from the given item to the last navigable item.
59
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
60
+ * @param {TreeViewItemId} itemId The id of the item from which the selection range should be expanded.
61
+ */
62
+ selectRangeFromItemToEnd: (event: React.SyntheticEvent, itemId: string) => void;
63
+ /**
64
+ * Update the selection when navigating with ArrowUp / ArrowDown keys.
65
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
66
+ * @param {TreeViewItemId} currentItemId The id of the active item before the keyboard navigation.
67
+ * @param {TreeViewItemId} nextItemId The id of the active item after the keyboard navigation.
68
+ */
69
+ selectItemFromArrowNavigation: (event: React.SyntheticEvent, currentItem: string, nextItem: string) => void;
70
+ }
71
+ export declare function getLookupFromArray(array: string[]): {
72
+ [itemId: string]: true;
73
+ };
@@ -0,0 +1,319 @@
1
+ import { EMPTY_OBJECT } from '@base-ui/utils/empty';
2
+ import { itemsSelectors } from "../items/index.js";
3
+ import { selectionSelectors } from "./selectors.js";
4
+ import { useSelectionItemPlugin } from "./itemPlugin.js";
5
+ import { findOrderInTremauxTree, getAllNavigableItems, getFirstNavigableItem, getLastNavigableItem, getNonDisabledItemsInRange } from "../../utils/tree.js";
6
+ export class TreeViewSelectionPlugin {
7
+ lastSelectedItem = null;
8
+ lastSelectedRange = {};
9
+
10
+ // We can't type `store`, otherwise we get the following TS error:
11
+ // 'selection' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
12
+ constructor(store) {
13
+ this.store = store;
14
+ store.itemPluginManager.register(useSelectionItemPlugin, null);
15
+ }
16
+ setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
17
+ const {
18
+ selectionPropagation = EMPTY_OBJECT,
19
+ selectedItems,
20
+ onItemSelectionToggle,
21
+ onSelectedItemsChange
22
+ } = this.store.parameters;
23
+ const oldModel = selectionSelectors.selectedItemsRaw(this.store.state);
24
+ let cleanModel;
25
+ const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(this.store.state);
26
+ if (isMultiSelectEnabled && (selectionPropagation.descendants || selectionPropagation.parents)) {
27
+ cleanModel = propagateSelection({
28
+ store: this.store,
29
+ selectionPropagation,
30
+ newModel: newModel,
31
+ oldModel: oldModel,
32
+ additionalItemsToPropagate
33
+ });
34
+ } else {
35
+ cleanModel = newModel;
36
+ }
37
+ if (onItemSelectionToggle) {
38
+ if (isMultiSelectEnabled) {
39
+ const changes = getAddedAndRemovedItems({
40
+ store: this.store,
41
+ newModel: cleanModel,
42
+ oldModel: oldModel
43
+ });
44
+ if (onItemSelectionToggle) {
45
+ changes.added.forEach(itemId => {
46
+ onItemSelectionToggle(event, itemId, true);
47
+ });
48
+ changes.removed.forEach(itemId => {
49
+ onItemSelectionToggle(event, itemId, false);
50
+ });
51
+ }
52
+ } else if (cleanModel !== oldModel) {
53
+ if (oldModel != null) {
54
+ onItemSelectionToggle(event, oldModel, false);
55
+ }
56
+ if (cleanModel != null) {
57
+ onItemSelectionToggle(event, cleanModel, true);
58
+ }
59
+ }
60
+ }
61
+ if (selectedItems === undefined) {
62
+ this.store.set('selectedItems', cleanModel);
63
+ }
64
+ onSelectedItemsChange?.(event, cleanModel);
65
+ };
66
+ selectRange = (event, [start, end]) => {
67
+ const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(this.store.state);
68
+ if (!isMultiSelectEnabled) {
69
+ return;
70
+ }
71
+ let newSelectedItems = selectionSelectors.selectedItems(this.store.state).slice();
72
+
73
+ // If the last selection was a range selection,
74
+ // remove the items that were part of the last range from the model
75
+ if (Object.keys(this.lastSelectedRange).length > 0) {
76
+ newSelectedItems = newSelectedItems.filter(id => !this.lastSelectedRange[id]);
77
+ }
78
+
79
+ // Add to the model the items that are part of the new range and not already part of the model.
80
+ const selectedItemsLookup = getLookupFromArray(newSelectedItems);
81
+ const range = getNonDisabledItemsInRange(this.store.state, start, end).filter(id => selectionSelectors.isItemSelectable(this.store.state, id));
82
+ const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);
83
+ newSelectedItems = newSelectedItems.concat(itemsToAddToModel);
84
+ this.setSelectedItems(event, newSelectedItems);
85
+ this.lastSelectedRange = getLookupFromArray(range);
86
+ };
87
+ buildPublicAPI = () => {
88
+ return {
89
+ setItemSelection: this.setItemSelection
90
+ };
91
+ };
92
+
93
+ /**
94
+ * Select or deselect an item.
95
+ * @param {object} parameters The parameters of the method.
96
+ * @param {TreeViewItemId} parameters.itemId The id of the item to select or deselect.
97
+ * @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
98
+ * @param {boolean} parameters.keepExistingSelection If `true`, the other already selected items will remain selected, otherwise, they will be deselected. This parameter is only relevant when `multiSelect` is `true`
99
+ * @param {boolean | undefined} parameters.shouldBeSelected If `true` the item will be selected. If `false` the item will be deselected. If not defined, the item's selection status will be toggled.
100
+ */
101
+ setItemSelection = ({
102
+ itemId,
103
+ event = null,
104
+ keepExistingSelection = false,
105
+ shouldBeSelected
106
+ }) => {
107
+ if (!selectionSelectors.enabled(this.store.state)) {
108
+ return;
109
+ }
110
+ let newSelected;
111
+ const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(this.store.state);
112
+ if (keepExistingSelection) {
113
+ const oldSelected = selectionSelectors.selectedItems(this.store.state);
114
+ const isSelectedBefore = selectionSelectors.isItemSelected(this.store.state, itemId);
115
+ if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {
116
+ newSelected = oldSelected.filter(id => id !== itemId);
117
+ } else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {
118
+ newSelected = [itemId].concat(oldSelected);
119
+ } else {
120
+ newSelected = oldSelected;
121
+ }
122
+ } else {
123
+ // eslint-disable-next-line no-lonely-if
124
+ if (shouldBeSelected === false || shouldBeSelected == null && selectionSelectors.isItemSelected(this.store.state, itemId)) {
125
+ newSelected = isMultiSelectEnabled ? [] : null;
126
+ } else {
127
+ newSelected = isMultiSelectEnabled ? [itemId] : itemId;
128
+ }
129
+ }
130
+ this.setSelectedItems(event, newSelected,
131
+ // If shouldBeSelected === selectionSelectors.isItemSelected(store, itemId), we still want to propagate the select.
132
+ // This is useful when the element is in an indeterminate state.
133
+ [itemId]);
134
+ this.lastSelectedItem = itemId;
135
+ this.lastSelectedRange = {};
136
+ };
137
+
138
+ /**
139
+ * Select all the navigable items in the tree.
140
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
141
+ */
142
+ selectAllNavigableItems = event => {
143
+ const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(this.store.state);
144
+ if (!isMultiSelectEnabled) {
145
+ return;
146
+ }
147
+ const navigableItems = getAllNavigableItems(this.store.state);
148
+ this.setSelectedItems(event, navigableItems);
149
+ this.lastSelectedRange = getLookupFromArray(navigableItems);
150
+ };
151
+
152
+ /**
153
+ * Expand the current selection range up to the given item.
154
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
155
+ * @param {TreeViewItemId} itemId The id of the item to expand the selection to.
156
+ */
157
+ expandSelectionRange = (event, itemId) => {
158
+ if (this.lastSelectedItem != null) {
159
+ const [start, end] = findOrderInTremauxTree(this.store.state, itemId, this.lastSelectedItem);
160
+ this.selectRange(event, [start, end]);
161
+ }
162
+ };
163
+
164
+ /**
165
+ * Expand the current selection range from the first navigable item to the given item.
166
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
167
+ * @param {TreeViewItemId} itemId The id of the item up to which the selection range should be expanded.
168
+ */
169
+ selectRangeFromStartToItem = (event, itemId) => {
170
+ this.selectRange(event, [getFirstNavigableItem(this.store.state), itemId]);
171
+ };
172
+
173
+ /**
174
+ * Expand the current selection range from the given item to the last navigable item.
175
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
176
+ * @param {TreeViewItemId} itemId The id of the item from which the selection range should be expanded.
177
+ */
178
+ selectRangeFromItemToEnd = (event, itemId) => {
179
+ this.selectRange(event, [itemId, getLastNavigableItem(this.store.state)]);
180
+ };
181
+
182
+ /**
183
+ * Update the selection when navigating with ArrowUp / ArrowDown keys.
184
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
185
+ * @param {TreeViewItemId} currentItemId The id of the active item before the keyboard navigation.
186
+ * @param {TreeViewItemId} nextItemId The id of the active item after the keyboard navigation.
187
+ */
188
+ selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
189
+ const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(this.store.state);
190
+ if (!isMultiSelectEnabled) {
191
+ return;
192
+ }
193
+ let newSelectedItems = selectionSelectors.selectedItems(this.store.state).slice();
194
+ if (Object.keys(this.lastSelectedRange).length === 0) {
195
+ newSelectedItems.push(nextItem);
196
+ this.lastSelectedRange = {
197
+ [currentItem]: true,
198
+ [nextItem]: true
199
+ };
200
+ } else {
201
+ if (!this.lastSelectedRange[currentItem]) {
202
+ this.lastSelectedRange = {};
203
+ }
204
+ if (this.lastSelectedRange[nextItem]) {
205
+ newSelectedItems = newSelectedItems.filter(id => id !== currentItem);
206
+ delete this.lastSelectedRange[currentItem];
207
+ } else {
208
+ newSelectedItems.push(nextItem);
209
+ this.lastSelectedRange[nextItem] = true;
210
+ }
211
+ }
212
+ this.setSelectedItems(event, newSelectedItems);
213
+ };
214
+ }
215
+ function propagateSelection({
216
+ store,
217
+ selectionPropagation,
218
+ newModel,
219
+ oldModel,
220
+ additionalItemsToPropagate
221
+ }) {
222
+ if (!selectionPropagation.descendants && !selectionPropagation.parents) {
223
+ return newModel;
224
+ }
225
+ let shouldRegenerateModel = false;
226
+ const newModelLookup = getLookupFromArray(newModel);
227
+ const changes = getAddedAndRemovedItems({
228
+ store,
229
+ newModel,
230
+ oldModel
231
+ });
232
+ additionalItemsToPropagate?.forEach(itemId => {
233
+ if (newModelLookup[itemId]) {
234
+ if (!changes.added.includes(itemId)) {
235
+ changes.added.push(itemId);
236
+ }
237
+ } else if (!changes.removed.includes(itemId)) {
238
+ changes.removed.push(itemId);
239
+ }
240
+ });
241
+ changes.added.forEach(addedItemId => {
242
+ if (selectionPropagation.descendants) {
243
+ const selectDescendants = itemId => {
244
+ if (itemId !== addedItemId) {
245
+ shouldRegenerateModel = true;
246
+ newModelLookup[itemId] = true;
247
+ }
248
+ itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(selectDescendants);
249
+ };
250
+ selectDescendants(addedItemId);
251
+ }
252
+ if (selectionPropagation.parents) {
253
+ const checkAllDescendantsSelected = itemId => {
254
+ if (!newModelLookup[itemId]) {
255
+ return false;
256
+ }
257
+ const children = itemsSelectors.itemOrderedChildrenIds(store.state, itemId);
258
+ return children.every(checkAllDescendantsSelected);
259
+ };
260
+ const selectParents = itemId => {
261
+ const parentId = itemsSelectors.itemParentId(store.state, itemId);
262
+ if (parentId == null) {
263
+ return;
264
+ }
265
+ const siblings = itemsSelectors.itemOrderedChildrenIds(store.state, parentId);
266
+ if (siblings.every(checkAllDescendantsSelected)) {
267
+ shouldRegenerateModel = true;
268
+ newModelLookup[parentId] = true;
269
+ selectParents(parentId);
270
+ }
271
+ };
272
+ selectParents(addedItemId);
273
+ }
274
+ });
275
+ changes.removed.forEach(removedItemId => {
276
+ if (selectionPropagation.parents) {
277
+ let parentId = itemsSelectors.itemParentId(store.state, removedItemId);
278
+ while (parentId != null) {
279
+ if (newModelLookup[parentId]) {
280
+ shouldRegenerateModel = true;
281
+ delete newModelLookup[parentId];
282
+ }
283
+ parentId = itemsSelectors.itemParentId(store.state, parentId);
284
+ }
285
+ }
286
+ if (selectionPropagation.descendants) {
287
+ const deSelectDescendants = itemId => {
288
+ if (itemId !== removedItemId) {
289
+ shouldRegenerateModel = true;
290
+ delete newModelLookup[itemId];
291
+ }
292
+ itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(deSelectDescendants);
293
+ };
294
+ deSelectDescendants(removedItemId);
295
+ }
296
+ });
297
+ return shouldRegenerateModel ? Object.keys(newModelLookup) : newModel;
298
+ }
299
+ function getAddedAndRemovedItems({
300
+ store,
301
+ oldModel,
302
+ newModel
303
+ }) {
304
+ const newModelMap = new Map();
305
+ newModel.forEach(id => {
306
+ newModelMap.set(id, true);
307
+ });
308
+ return {
309
+ added: newModel.filter(itemId => !selectionSelectors.isItemSelected(store.state, itemId)),
310
+ removed: oldModel.filter(itemId => !newModelMap.has(itemId))
311
+ };
312
+ }
313
+ export function getLookupFromArray(array) {
314
+ const lookup = {};
315
+ array.forEach(itemId => {
316
+ lookup[itemId] = true;
317
+ });
318
+ return lookup;
319
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./TreeViewSelectionPlugin.js";
2
+ export * from "./selectors.js";
@@ -0,0 +1,2 @@
1
+ export * from "./TreeViewSelectionPlugin.js";
2
+ export * from "./selectors.js";
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { TreeViewCancellableEventHandler } from "../../../models/index.js";
3
3
  import { TreeViewItemPlugin } from "../../models/index.js";
4
- export declare const useTreeViewSelectionItemPlugin: TreeViewItemPlugin;
4
+ export declare const useSelectionItemPlugin: TreeViewItemPlugin;
5
5
  interface UseTreeItemRootSlotPropsFromSelection {
6
6
  'aria-checked': React.AriaAttributes['aria-checked'];
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { createSelector, useStore } from '@mui/x-internals/store';
2
2
  import { useTreeViewContext } from "../../TreeViewProvider/index.js";
3
- import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
4
- import { selectionSelectors } from "./useTreeViewSelection.selectors.js";
3
+ import { itemsSelectors } from "../items/selectors.js";
4
+ import { selectionSelectors } from "./selectors.js";
5
5
  const selectorCheckboxSelectionStatus = createSelector((state, itemId) => {
6
6
  if (selectionSelectors.isItemSelected(state, itemId)) {
7
7
  return 'checked';
@@ -34,7 +34,7 @@ const selectorCheckboxSelectionStatus = createSelector((state, itemId) => {
34
34
  }
35
35
  return 'empty';
36
36
  });
37
- export const useTreeViewSelectionItemPlugin = ({
37
+ export const useSelectionItemPlugin = ({
38
38
  props
39
39
  }) => {
40
40
  const {
@@ -0,0 +1,48 @@
1
+ import { MinimalTreeViewState } from "../../MinimalTreeViewStore/index.js";
2
+ export declare const selectionSelectors: {
3
+ /**
4
+ * Gets the selected items as provided to the component.
5
+ */
6
+ selectedItemsRaw: (state: MinimalTreeViewState<any, any>) => string | readonly string[] | readonly string[] | null;
7
+ /**
8
+ * Gets the selected items as an array.
9
+ */
10
+ selectedItems: (args_0: MinimalTreeViewState<any, any>) => any[];
11
+ /**
12
+ * Gets the selected items as a Map.
13
+ */
14
+ selectedItemsMap: (args_0: MinimalTreeViewState<any, any>) => Map<string, true>;
15
+ /**
16
+ * Checks whether selection is enabled.
17
+ */
18
+ enabled: (state: MinimalTreeViewState<any, any>) => boolean;
19
+ /**
20
+ * Checks whether multi selection is enabled.
21
+ */
22
+ isMultiSelectEnabled: (state: MinimalTreeViewState<any, any>) => boolean;
23
+ /**
24
+ * Checks whether checkbox selection is enabled.
25
+ */
26
+ isCheckboxSelectionEnabled: (state: MinimalTreeViewState<any, any>) => boolean;
27
+ /**
28
+ * Gets the selection propagation rules.
29
+ */
30
+ propagationRules: (state: MinimalTreeViewState<any, any>) => import("../../../index.js").TreeViewSelectionPropagation;
31
+ /**
32
+ * Checks whether an item is selected.
33
+ */
34
+ isItemSelected: (args_0: MinimalTreeViewState<any, any>, itemId: string) => boolean;
35
+ /**
36
+ * Checks whether the selection feature is enabled for an item.
37
+ * Returns `true` when selection is enabled on the Tree View and the item is selectable (even if the item is disabled).
38
+ */
39
+ isFeatureEnabledForItem: (args_0: MinimalTreeViewState<any, any>, _itemId: string) => boolean;
40
+ /**
41
+ * Checks whether an item can be selected (if selection is enabled, if the item is not disabled, and if the item is selectable).
42
+ */
43
+ canItemBeSelected: (args_0: MinimalTreeViewState<any, any>, _itemId: string) => boolean;
44
+ /**
45
+ * Checks whether an item is selectable based on the `isItemSelectionDisabled` prop.
46
+ */
47
+ isItemSelectable: (state: MinimalTreeViewState<any, any>, itemId: string) => boolean;
48
+ };
@@ -1,6 +1,6 @@
1
1
  import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
2
- import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
3
- const selectedItemsSelector = createSelectorMemoized(state => state.selection.selectedItems, selectedItemsRaw => {
2
+ import { itemsSelectors } from "../items/selectors.js";
3
+ const selectedItemsSelector = createSelectorMemoized(state => state.selectedItems, selectedItemsRaw => {
4
4
  if (Array.isArray(selectedItemsRaw)) {
5
5
  return selectedItemsRaw;
6
6
  }
@@ -16,11 +16,12 @@ const selectedItemsMapSelector = createSelectorMemoized(selectedItemsSelector, s
16
16
  });
17
17
  return selectedItemsMap;
18
18
  });
19
+ const isItemSelectableSelector = createSelector((state, itemId) => state.itemMetaLookup[itemId]?.selectable ?? true);
19
20
  export const selectionSelectors = {
20
21
  /**
21
22
  * Gets the selected items as provided to the component.
22
23
  */
23
- selectedItemsRaw: createSelector(state => state.selection.selectedItems),
24
+ selectedItemsRaw: createSelector(state => state.selectedItems),
24
25
  /**
25
26
  * Gets the selected items as an array.
26
27
  */
@@ -32,19 +33,19 @@ export const selectionSelectors = {
32
33
  /**
33
34
  * Checks whether selection is enabled.
34
35
  */
35
- enabled: createSelector(state => state.selection.isEnabled),
36
+ enabled: createSelector(state => !state.disableSelection),
36
37
  /**
37
38
  * Checks whether multi selection is enabled.
38
39
  */
39
- isMultiSelectEnabled: createSelector(state => state.selection.isMultiSelectEnabled),
40
+ isMultiSelectEnabled: createSelector(state => state.multiSelect),
40
41
  /**
41
42
  * Checks whether checkbox selection is enabled.
42
43
  */
43
- isCheckboxSelectionEnabled: createSelector(state => state.selection.isCheckboxSelectionEnabled),
44
+ isCheckboxSelectionEnabled: createSelector(state => state.checkboxSelection),
44
45
  /**
45
46
  * Gets the selection propagation rules.
46
47
  */
47
- propagationRules: createSelector(state => state.selection.selectionPropagation),
48
+ propagationRules: createSelector(state => state.selectionPropagation),
48
49
  /**
49
50
  * Checks whether an item is selected.
50
51
  */
@@ -53,9 +54,13 @@ export const selectionSelectors = {
53
54
  * Checks whether the selection feature is enabled for an item.
54
55
  * Returns `true` when selection is enabled on the Tree View and the item is selectable (even if the item is disabled).
55
56
  */
56
- isFeatureEnabledForItem: createSelector(itemsSelectors.isItemSelectable, state => state.selection.isEnabled, (isItemSelectable, isSelectionEnabled, _itemId) => isSelectionEnabled && isItemSelectable),
57
+ isFeatureEnabledForItem: createSelector(isItemSelectableSelector, state => !state.disableSelection, (isItemSelectable, isSelectionEnabled, _itemId) => isSelectionEnabled && isItemSelectable),
57
58
  /**
58
59
  * Checks whether an item can be selected (if selection is enabled, if the item is not disabled, and if the item is selectable).
59
60
  */
60
- canItemBeSelected: createSelector(itemsSelectors.isItemDisabled, itemsSelectors.isItemSelectable, state => state.selection.isEnabled, (isItemDisabled, isItemSelectable, isSelectionEnabled, _itemId) => isSelectionEnabled && !isItemDisabled && isItemSelectable)
61
+ canItemBeSelected: createSelector(itemsSelectors.isItemDisabled, isItemSelectableSelector, state => !state.disableSelection, (isItemDisabled, isItemSelectable, isSelectionEnabled, _itemId) => isSelectionEnabled && !isItemDisabled && isItemSelectable),
62
+ /**
63
+ * Checks whether an item is selectable based on the `isItemSelectionDisabled` prop.
64
+ */
65
+ isItemSelectable: isItemSelectableSelector
61
66
  };
@@ -1,10 +1,8 @@
1
- import { TreeViewState } from "../models/index.js";
2
- import type { UseTreeViewExpansionSignature } from "../plugins/useTreeViewExpansion/index.js";
3
- import type { UseTreeViewItemsSignature } from "../plugins/useTreeViewItems/index.js";
4
- export declare const getPreviousNavigableItem: (state: TreeViewState<[UseTreeViewItemsSignature, UseTreeViewExpansionSignature]>, itemId: string) => string | null;
5
- export declare const getNextNavigableItem: (state: TreeViewState<[UseTreeViewItemsSignature, UseTreeViewExpansionSignature]>, itemId: string) => string | null;
6
- export declare const getLastNavigableItem: (state: TreeViewState<[UseTreeViewExpansionSignature, UseTreeViewItemsSignature]>) => string;
7
- export declare const getFirstNavigableItem: (state: TreeViewState<[UseTreeViewExpansionSignature, UseTreeViewItemsSignature]>) => string;
1
+ import { MinimalTreeViewState } from "../MinimalTreeViewStore/index.js";
2
+ export declare const getPreviousNavigableItem: (state: MinimalTreeViewState<any, any>, itemId: string) => string | null;
3
+ export declare const getNextNavigableItem: (state: MinimalTreeViewState<any, any>, itemId: string) => string | null;
4
+ export declare const getLastNavigableItem: (state: MinimalTreeViewState<any, any>) => string;
5
+ export declare const getFirstNavigableItem: (state: MinimalTreeViewState<any, any>) => string;
8
6
  /**
9
7
  * This is used to determine the start and end of a selection range so
10
8
  * we can get the items between the two border items.
@@ -19,9 +17,9 @@ export declare const getFirstNavigableItem: (state: TreeViewState<[UseTreeViewEx
19
17
  * Another way to put it is which item is shallower in a trémaux tree
20
18
  * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree
21
19
  */
22
- export declare const findOrderInTremauxTree: (state: TreeViewState<[UseTreeViewExpansionSignature, UseTreeViewItemsSignature]>, itemAId: string, itemBId: string) => string[];
23
- export declare const getNonDisabledItemsInRange: (state: TreeViewState<[UseTreeViewItemsSignature, UseTreeViewExpansionSignature]>, itemAId: string, itemBId: string) => string[];
24
- export declare const getAllNavigableItems: (state: TreeViewState<[UseTreeViewItemsSignature, UseTreeViewExpansionSignature]>) => string[];
20
+ export declare const findOrderInTremauxTree: (state: MinimalTreeViewState<any, any>, itemAId: string, itemBId: string) => string[];
21
+ export declare const getNonDisabledItemsInRange: (state: MinimalTreeViewState<any, any>, itemAId: string, itemBId: string) => string[];
22
+ export declare const getAllNavigableItems: (state: MinimalTreeViewState<any, any>) => string[];
25
23
  /**
26
24
  * Checks if the target is in a descendant of this item.
27
25
  * This can prevent from firing some logic on the ancestors on the interacted item when the event handler is on the root.
@@ -1,5 +1,5 @@
1
- import { expansionSelectors } from "../plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
2
- import { itemsSelectors } from "../plugins/useTreeViewItems/useTreeViewItems.selectors.js";
1
+ import { expansionSelectors } from "../plugins/expansion/selectors.js";
2
+ import { itemsSelectors } from "../plugins/items/selectors.js";
3
3
  const getLastNavigableItemInArray = (state, items) => {
4
4
  // Equivalent to Array.prototype.findLastIndex
5
5
  let itemIndex = items.length - 1;