@mui/x-tree-view 8.0.0-beta.3 → 8.1.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 (427) hide show
  1. package/CHANGELOG.md +388 -96
  2. package/RichTreeView/RichTreeView.js +12 -8
  3. package/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  4. package/RichTreeView/RichTreeView.plugins.js +1 -2
  5. package/RichTreeView/RichTreeView.types.d.ts +4 -3
  6. package/RichTreeView/index.d.ts +1 -1
  7. package/SimpleTreeView/SimpleTreeView.js +13 -10
  8. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  9. package/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  10. package/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  11. package/TreeItem/TreeItem.js +5 -12
  12. package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -1
  13. package/TreeItemIcon/TreeItemIcon.js +15 -11
  14. package/TreeItemLabelInput/TreeItemLabelInput.js +1 -2
  15. package/esm/RichTreeView/RichTreeView.js +11 -7
  16. package/esm/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  17. package/esm/RichTreeView/RichTreeView.plugins.js +1 -2
  18. package/esm/RichTreeView/RichTreeView.types.d.ts +4 -3
  19. package/esm/RichTreeView/index.d.ts +1 -1
  20. package/esm/SimpleTreeView/SimpleTreeView.js +12 -9
  21. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  22. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  23. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  24. package/esm/TreeItem/TreeItem.js +5 -12
  25. package/esm/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -1
  26. package/esm/TreeItemIcon/TreeItemIcon.js +15 -11
  27. package/esm/TreeItemLabelInput/TreeItemLabelInput.js +1 -2
  28. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  29. package/esm/index.js +1 -1
  30. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  31. package/esm/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  32. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  33. package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  34. package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  35. package/esm/internals/hooks/useSelector.js +1 -4
  36. package/esm/internals/index.d.ts +2 -3
  37. package/esm/internals/index.js +1 -1
  38. package/esm/internals/models/events.d.ts +2 -6
  39. package/esm/internals/models/plugin.d.ts +63 -38
  40. package/esm/internals/models/treeView.d.ts +0 -5
  41. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +35 -21
  42. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  43. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +21 -1
  44. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  45. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  46. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -7
  47. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -30
  48. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  49. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  50. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  51. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  52. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  53. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  54. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +31 -0
  55. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  56. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  57. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +12 -2
  58. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  59. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  60. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -40
  61. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  62. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +36 -1
  63. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  64. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  65. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -24
  66. package/esm/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  67. package/esm/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  68. package/esm/internals/useTreeView/useTreeView.d.ts +10 -1
  69. package/esm/internals/useTreeView/useTreeView.js +22 -25
  70. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -3
  71. package/esm/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  72. package/esm/internals/utils/models.d.ts +7 -0
  73. package/esm/internals/utils/models.js +23 -0
  74. package/esm/internals/utils/selectors.d.ts +1 -1
  75. package/esm/utils/cache.d.ts +1 -1
  76. package/esm/utils/cache.js +1 -1
  77. package/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  78. package/index.js +1 -1
  79. package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  80. package/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  81. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  82. package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  83. package/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  84. package/internals/hooks/useSelector.js +1 -5
  85. package/internals/index.d.ts +2 -3
  86. package/internals/index.js +13 -7
  87. package/internals/models/events.d.ts +2 -6
  88. package/internals/models/plugin.d.ts +63 -38
  89. package/internals/models/treeView.d.ts +0 -5
  90. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -19
  91. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  92. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +22 -2
  93. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  94. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  95. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +1 -9
  96. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -30
  97. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  98. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  99. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  100. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  101. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  102. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  103. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +34 -2
  104. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  105. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  106. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +13 -3
  107. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  108. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  109. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +37 -38
  110. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  111. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +37 -2
  112. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  113. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  114. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +6 -26
  115. package/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  116. package/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  117. package/internals/useTreeView/useTreeView.d.ts +10 -1
  118. package/internals/useTreeView/useTreeView.js +22 -25
  119. package/internals/useTreeView/useTreeView.types.d.ts +1 -3
  120. package/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  121. package/internals/utils/models.d.ts +7 -0
  122. package/internals/utils/models.js +30 -0
  123. package/internals/utils/selectors.d.ts +1 -1
  124. package/package.json +4 -12
  125. package/utils/cache.d.ts +1 -1
  126. package/utils/cache.js +1 -1
  127. package/esm/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  128. package/esm/internals/plugins/useTreeViewIcons/index.js +0 -1
  129. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  130. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  131. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  132. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  133. package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  134. package/esm/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  135. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  136. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  137. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  138. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  139. package/esm/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  140. package/esm/internals/useTreeView/useTreeViewModels.js +0 -62
  141. package/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  142. package/internals/plugins/useTreeViewIcons/index.js +0 -12
  143. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  144. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -32
  145. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  146. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -5
  147. package/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  148. package/internals/plugins/useTreeViewItemCustomization/index.js +0 -12
  149. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  150. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -32
  151. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  152. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -5
  153. package/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  154. package/internals/useTreeView/useTreeViewModels.js +0 -71
  155. package/modern/RichTreeView/RichTreeView.d.ts +0 -18
  156. package/modern/RichTreeView/RichTreeView.js +0 -322
  157. package/modern/RichTreeView/RichTreeView.plugins.d.ts +0 -13
  158. package/modern/RichTreeView/RichTreeView.plugins.js +0 -10
  159. package/modern/RichTreeView/RichTreeView.types.d.ts +0 -52
  160. package/modern/RichTreeView/RichTreeView.types.js +0 -1
  161. package/modern/RichTreeView/index.d.ts +0 -5
  162. package/modern/RichTreeView/index.js +0 -3
  163. package/modern/RichTreeView/richTreeViewClasses.d.ts +0 -5
  164. package/modern/RichTreeView/richTreeViewClasses.js +0 -6
  165. package/modern/SimpleTreeView/SimpleTreeView.d.ts +0 -20
  166. package/modern/SimpleTreeView/SimpleTreeView.js +0 -265
  167. package/modern/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -12
  168. package/modern/SimpleTreeView/SimpleTreeView.plugins.js +0 -10
  169. package/modern/SimpleTreeView/SimpleTreeView.types.d.ts +0 -51
  170. package/modern/SimpleTreeView/SimpleTreeView.types.js +0 -1
  171. package/modern/SimpleTreeView/index.d.ts +0 -3
  172. package/modern/SimpleTreeView/index.js +0 -3
  173. package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +0 -5
  174. package/modern/SimpleTreeView/simpleTreeViewClasses.js +0 -6
  175. package/modern/TreeItem/TreeItem.d.ts +0 -33
  176. package/modern/TreeItem/TreeItem.js +0 -408
  177. package/modern/TreeItem/TreeItem.types.d.ts +0 -107
  178. package/modern/TreeItem/TreeItem.types.js +0 -1
  179. package/modern/TreeItem/index.d.ts +0 -4
  180. package/modern/TreeItem/index.js +0 -2
  181. package/modern/TreeItem/treeItemClasses.d.ts +0 -55
  182. package/modern/TreeItem/treeItemClasses.js +0 -8
  183. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +0 -7
  184. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -74
  185. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +0 -6
  186. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js +0 -1
  187. package/modern/TreeItemDragAndDropOverlay/index.d.ts +0 -2
  188. package/modern/TreeItemDragAndDropOverlay/index.js +0 -1
  189. package/modern/TreeItemIcon/TreeItemIcon.d.ts +0 -7
  190. package/modern/TreeItemIcon/TreeItemIcon.js +0 -74
  191. package/modern/TreeItemIcon/TreeItemIcon.types.d.ts +0 -40
  192. package/modern/TreeItemIcon/TreeItemIcon.types.js +0 -1
  193. package/modern/TreeItemIcon/index.d.ts +0 -2
  194. package/modern/TreeItemIcon/index.js +0 -1
  195. package/modern/TreeItemLabelInput/TreeItemLabelInput.d.ts +0 -5
  196. package/modern/TreeItemLabelInput/TreeItemLabelInput.js +0 -24
  197. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +0 -14
  198. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.js +0 -1
  199. package/modern/TreeItemLabelInput/index.d.ts +0 -2
  200. package/modern/TreeItemLabelInput/index.js +0 -1
  201. package/modern/TreeItemProvider/TreeItemProvider.d.ts +0 -7
  202. package/modern/TreeItemProvider/TreeItemProvider.js +0 -45
  203. package/modern/TreeItemProvider/TreeItemProvider.types.d.ts +0 -7
  204. package/modern/TreeItemProvider/TreeItemProvider.types.js +0 -1
  205. package/modern/TreeItemProvider/index.d.ts +0 -2
  206. package/modern/TreeItemProvider/index.js +0 -1
  207. package/modern/hooks/index.d.ts +0 -3
  208. package/modern/hooks/index.js +0 -3
  209. package/modern/hooks/useTreeItemModel.d.ts +0 -2
  210. package/modern/hooks/useTreeItemModel.js +0 -11
  211. package/modern/hooks/useTreeItemUtils/index.d.ts +0 -1
  212. package/modern/hooks/useTreeItemUtils/index.js +0 -1
  213. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +0 -42
  214. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +0 -165
  215. package/modern/hooks/useTreeViewApiRef.d.ts +0 -7
  216. package/modern/hooks/useTreeViewApiRef.js +0 -7
  217. package/modern/icons/icons.d.ts +0 -6
  218. package/modern/icons/icons.js +0 -9
  219. package/modern/icons/index.d.ts +0 -1
  220. package/modern/icons/index.js +0 -1
  221. package/modern/index.d.ts +0 -12
  222. package/modern/index.js +0 -22
  223. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +0 -5
  224. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js +0 -5
  225. package/modern/internals/TreeViewItemDepthContext/index.d.ts +0 -1
  226. package/modern/internals/TreeViewItemDepthContext/index.js +0 -1
  227. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +0 -17
  228. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +0 -49
  229. package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +0 -8
  230. package/modern/internals/TreeViewProvider/TreeViewContext.js +0 -15
  231. package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +0 -9
  232. package/modern/internals/TreeViewProvider/TreeViewProvider.js +0 -32
  233. package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +0 -21
  234. package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
  235. package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +0 -33
  236. package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +0 -13
  237. package/modern/internals/TreeViewProvider/index.d.ts +0 -3
  238. package/modern/internals/TreeViewProvider/index.js +0 -2
  239. package/modern/internals/components/RichTreeViewItems.d.ts +0 -32
  240. package/modern/internals/components/RichTreeViewItems.js +0 -68
  241. package/modern/internals/corePlugins/corePlugins.d.ts +0 -9
  242. package/modern/internals/corePlugins/corePlugins.js +0 -8
  243. package/modern/internals/corePlugins/index.d.ts +0 -2
  244. package/modern/internals/corePlugins/index.js +0 -1
  245. package/modern/internals/corePlugins/useTreeViewId/index.d.ts +0 -2
  246. package/modern/internals/corePlugins/useTreeViewId/index.js +0 -1
  247. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  248. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -39
  249. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -36
  250. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  251. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  252. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.js +0 -1
  253. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  254. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  255. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  256. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  257. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  258. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -29
  259. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  260. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
  261. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  262. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  263. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  264. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  265. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  266. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +0 -1
  267. package/modern/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  268. package/modern/internals/hooks/useInstanceEventHandler.js +0 -77
  269. package/modern/internals/hooks/useLazyRef.d.ts +0 -1
  270. package/modern/internals/hooks/useLazyRef.js +0 -1
  271. package/modern/internals/hooks/useOnMount.d.ts +0 -1
  272. package/modern/internals/hooks/useOnMount.js +0 -1
  273. package/modern/internals/hooks/useSelector.d.ts +0 -4
  274. package/modern/internals/hooks/useSelector.js +0 -9
  275. package/modern/internals/hooks/useTimeout.d.ts +0 -1
  276. package/modern/internals/hooks/useTimeout.js +0 -1
  277. package/modern/internals/index.d.ts +0 -34
  278. package/modern/internals/index.js +0 -24
  279. package/modern/internals/models/events.d.ts +0 -9
  280. package/modern/internals/models/events.js +0 -1
  281. package/modern/internals/models/helpers.d.ts +0 -7
  282. package/modern/internals/models/helpers.js +0 -1
  283. package/modern/internals/models/index.d.ts +0 -4
  284. package/modern/internals/models/index.js +0 -4
  285. package/modern/internals/models/itemPlugin.d.ts +0 -43
  286. package/modern/internals/models/itemPlugin.js +0 -1
  287. package/modern/internals/models/plugin.d.ts +0 -151
  288. package/modern/internals/models/plugin.js +0 -1
  289. package/modern/internals/models/treeView.d.ts +0 -32
  290. package/modern/internals/models/treeView.js +0 -1
  291. package/modern/internals/plugins/useTreeViewExpansion/index.d.ts +0 -2
  292. package/modern/internals/plugins/useTreeViewExpansion/index.js +0 -1
  293. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  294. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -134
  295. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -184
  296. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +0 -24
  297. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -102
  298. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  299. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -7
  300. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -19
  301. package/modern/internals/plugins/useTreeViewFocus/index.d.ts +0 -2
  302. package/modern/internals/plugins/useTreeViewFocus/index.js +0 -1
  303. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  304. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -135
  305. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -182
  306. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +0 -34
  307. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  308. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  309. package/modern/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  310. package/modern/internals/plugins/useTreeViewIcons/index.js +0 -1
  311. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  312. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  313. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  314. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  315. package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  316. package/modern/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  317. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  318. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  319. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  320. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  321. package/modern/internals/plugins/useTreeViewItems/index.d.ts +0 -3
  322. package/modern/internals/plugins/useTreeViewItems/index.js +0 -2
  323. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  324. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -325
  325. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -1058
  326. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -113
  327. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -205
  328. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  329. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -4
  330. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +0 -8
  331. package/modern/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  332. package/modern/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  333. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  334. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -183
  335. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +0 -35
  336. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  337. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  338. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  339. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  340. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -273
  341. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -30
  342. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  343. package/modern/internals/plugins/useTreeViewLabel/index.d.ts +0 -2
  344. package/modern/internals/plugins/useTreeViewLabel/index.js +0 -1
  345. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  346. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
  347. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +0 -72
  348. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -73
  349. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -68
  350. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +0 -24
  351. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -60
  352. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  353. package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -1
  354. package/modern/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  355. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -247
  356. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -27
  357. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -82
  358. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  359. package/modern/internals/plugins/useTreeViewSelection/index.d.ts +0 -2
  360. package/modern/internals/plugins/useTreeViewSelection/index.js +0 -1
  361. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  362. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
  363. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +0 -80
  364. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -234
  365. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -363
  366. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +0 -46
  367. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -145
  368. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  369. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -38
  370. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -126
  371. package/modern/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -22
  372. package/modern/internals/useTreeView/extractPluginParamsFromProps.js +0 -46
  373. package/modern/internals/useTreeView/index.d.ts +0 -1
  374. package/modern/internals/useTreeView/index.js +0 -1
  375. package/modern/internals/useTreeView/useTreeView.d.ts +0 -9
  376. package/modern/internals/useTreeView/useTreeView.js +0 -114
  377. package/modern/internals/useTreeView/useTreeView.types.d.ts +0 -23
  378. package/modern/internals/useTreeView/useTreeView.types.js +0 -1
  379. package/modern/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -18
  380. package/modern/internals/useTreeView/useTreeViewBuildContext.js +0 -101
  381. package/modern/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  382. package/modern/internals/useTreeView/useTreeViewModels.js +0 -62
  383. package/modern/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  384. package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
  385. package/modern/internals/utils/TreeViewStore.d.ts +0 -12
  386. package/modern/internals/utils/TreeViewStore.js +0 -24
  387. package/modern/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  388. package/modern/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  389. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  390. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -18
  391. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  392. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  393. package/modern/internals/utils/plugins.d.ts +0 -2
  394. package/modern/internals/utils/plugins.js +0 -4
  395. package/modern/internals/utils/publishTreeViewEvent.d.ts +0 -5
  396. package/modern/internals/utils/publishTreeViewEvent.js +0 -3
  397. package/modern/internals/utils/selectors.d.ts +0 -16
  398. package/modern/internals/utils/selectors.js +0 -46
  399. package/modern/internals/utils/tree.d.ts +0 -32
  400. package/modern/internals/utils/tree.js +0 -203
  401. package/modern/internals/utils/utils.d.ts +0 -2
  402. package/modern/internals/utils/utils.js +0 -17
  403. package/modern/internals/zero-styled/index.d.ts +0 -3
  404. package/modern/internals/zero-styled/index.js +0 -7
  405. package/modern/models/events.d.ts +0 -4
  406. package/modern/models/events.js +0 -1
  407. package/modern/models/index.d.ts +0 -3
  408. package/modern/models/index.js +0 -5
  409. package/modern/models/items.d.ts +0 -13
  410. package/modern/models/items.js +0 -1
  411. package/modern/package.json +0 -1
  412. package/modern/themeAugmentation/components.d.ts +0 -21
  413. package/modern/themeAugmentation/index.d.ts +0 -3
  414. package/modern/themeAugmentation/index.js +0 -0
  415. package/modern/themeAugmentation/overrides.d.ts +0 -16
  416. package/modern/themeAugmentation/props.d.ts +0 -14
  417. package/modern/useTreeItem/index.d.ts +0 -2
  418. package/modern/useTreeItem/index.js +0 -1
  419. package/modern/useTreeItem/useTreeItem.d.ts +0 -2
  420. package/modern/useTreeItem/useTreeItem.js +0 -282
  421. package/modern/useTreeItem/useTreeItem.types.d.ts +0 -201
  422. package/modern/useTreeItem/useTreeItem.types.js +0 -1
  423. package/modern/utils/cache.d.ts +0 -38
  424. package/modern/utils/cache.js +0 -31
  425. package/modern/utils/index.d.ts +0 -1
  426. package/modern/utils/index.js +0 -1
  427. package/tsconfig.build.tsbuildinfo +0 -1
@@ -909,7 +909,14 @@ export declare const selectorItemDepth: ((state: any, itemId: string | null) =>
909
909
  argsMemoize: typeof import("reselect").weakMapMemoize;
910
910
  memoize: typeof import("reselect").weakMapMemoize;
911
911
  };
912
- export declare const selectorCanItemBeFocused: ((state: any, itemId: string) => boolean) & {
912
+ /**
913
+ * Check if the disabled items are focusable.
914
+ * @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
915
+ * @returns {boolean} Whether the disabled items are focusable.
916
+ */
917
+ export declare const selectorDisabledItemFocusable: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewItems.types").UseTreeViewItemsState<import("../../..").TreeViewDefaultItemModelProperties> & Partial<{}> & {
918
+ cacheKey: import("../../models").TreeViewStateCacheKey;
919
+ }) => boolean) & {
913
920
  clearCache: () => void;
914
921
  resultsCount: () => number;
915
922
  resetResultsCount: () => void;
@@ -932,7 +939,7 @@ export declare const selectorCanItemBeFocused: ((state: any, itemId: string) =>
932
939
  };
933
940
  loading: boolean;
934
941
  error: Error | null;
935
- }, resultFuncArgs_1: boolean) => boolean;
942
+ }) => boolean;
936
943
  memoizedResultFunc: ((resultFuncArgs_0: {
937
944
  disabledItemsFocusable: boolean;
938
945
  itemModelLookup: {
@@ -951,13 +958,92 @@ export declare const selectorCanItemBeFocused: ((state: any, itemId: string) =>
951
958
  };
952
959
  loading: boolean;
953
960
  error: Error | null;
954
- }, resultFuncArgs_1: boolean) => boolean) & {
961
+ }) => boolean) & {
962
+ clearCache: () => void;
963
+ resultsCount: () => number;
964
+ resetResultsCount: () => void;
965
+ };
966
+ lastResult: () => boolean;
967
+ dependencies: [TreeViewRootSelector<UseTreeViewItemsSignature>];
968
+ recomputations: () => number;
969
+ resetRecomputations: () => void;
970
+ dependencyRecomputations: () => number;
971
+ resetDependencyRecomputations: () => void;
972
+ } & {
973
+ argsMemoize: typeof import("reselect").weakMapMemoize;
974
+ memoize: typeof import("reselect").weakMapMemoize;
975
+ };
976
+ export declare const selectorCanItemBeFocused: ((state: any, itemId: string) => boolean) & {
977
+ clearCache: () => void;
978
+ resultsCount: () => number;
979
+ resetResultsCount: () => void;
980
+ } & {
981
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: boolean) => boolean;
982
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: boolean) => boolean) & {
955
983
  clearCache: () => void;
956
984
  resultsCount: () => number;
957
985
  resetResultsCount: () => void;
958
986
  };
959
987
  lastResult: () => boolean;
960
- dependencies: [TreeViewRootSelector<UseTreeViewItemsSignature>, ((state: any, itemId: string) => boolean) & {
988
+ dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewItems.types").UseTreeViewItemsState<import("../../..").TreeViewDefaultItemModelProperties> & Partial<{}> & {
989
+ cacheKey: import("../../models").TreeViewStateCacheKey;
990
+ }) => boolean) & {
991
+ clearCache: () => void;
992
+ resultsCount: () => number;
993
+ resetResultsCount: () => void;
994
+ } & {
995
+ resultFunc: (resultFuncArgs_0: {
996
+ disabledItemsFocusable: boolean;
997
+ itemModelLookup: {
998
+ [itemId: string]: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>;
999
+ };
1000
+ itemMetaLookup: {
1001
+ [itemId: string]: TreeViewItemMeta;
1002
+ };
1003
+ itemOrderedChildrenIdsLookup: {
1004
+ [parentItemId: string]: string[];
1005
+ };
1006
+ itemChildrenIndexesLookup: {
1007
+ [parentItemId: string]: {
1008
+ [itemId: string]: number;
1009
+ };
1010
+ };
1011
+ loading: boolean;
1012
+ error: Error | null;
1013
+ }) => boolean;
1014
+ memoizedResultFunc: ((resultFuncArgs_0: {
1015
+ disabledItemsFocusable: boolean;
1016
+ itemModelLookup: {
1017
+ [itemId: string]: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>;
1018
+ };
1019
+ itemMetaLookup: {
1020
+ [itemId: string]: TreeViewItemMeta;
1021
+ };
1022
+ itemOrderedChildrenIdsLookup: {
1023
+ [parentItemId: string]: string[];
1024
+ };
1025
+ itemChildrenIndexesLookup: {
1026
+ [parentItemId: string]: {
1027
+ [itemId: string]: number;
1028
+ };
1029
+ };
1030
+ loading: boolean;
1031
+ error: Error | null;
1032
+ }) => boolean) & {
1033
+ clearCache: () => void;
1034
+ resultsCount: () => number;
1035
+ resetResultsCount: () => void;
1036
+ };
1037
+ lastResult: () => boolean;
1038
+ dependencies: [TreeViewRootSelector<UseTreeViewItemsSignature>];
1039
+ recomputations: () => number;
1040
+ resetRecomputations: () => void;
1041
+ dependencyRecomputations: () => number;
1042
+ resetDependencyRecomputations: () => void;
1043
+ } & {
1044
+ argsMemoize: typeof import("reselect").weakMapMemoize;
1045
+ memoize: typeof import("reselect").weakMapMemoize;
1046
+ }, ((state: any, itemId: string) => boolean) & {
961
1047
  clearCache: () => void;
962
1048
  resultsCount: () => number;
963
1049
  resetResultsCount: () => void;
@@ -1,5 +1,5 @@
1
1
  import { createSelector } from "../../utils/selectors.js";
2
- import { TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
2
+ import { isItemDisabled, TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
3
3
  const selectorTreeViewItemsState = state => state.items;
4
4
 
5
5
  /**
@@ -54,27 +54,7 @@ export const selectorItemMeta = createSelector([selectorItemMetaLookup, (_, item
54
54
  * @param {TreeViewItemId} itemId The id of the item to check.
55
55
  * @returns {boolean} `true` if the item is disabled, `false` otherwise.
56
56
  */
57
- export const selectorIsItemDisabled = createSelector([selectorItemMetaLookup, (_, itemId) => itemId], (itemMetaLookup, itemId) => {
58
- if (itemId == null) {
59
- return false;
60
- }
61
- let itemMeta = itemMetaLookup[itemId];
62
-
63
- // This can be called before the item has been added to the item map.
64
- if (!itemMeta) {
65
- return false;
66
- }
67
- if (itemMeta.disabled) {
68
- return true;
69
- }
70
- while (itemMeta.parentId != null) {
71
- itemMeta = itemMetaLookup[itemMeta.parentId];
72
- if (itemMeta.disabled) {
73
- return true;
74
- }
75
- }
76
- return false;
77
- });
57
+ export const selectorIsItemDisabled = createSelector([selectorItemMetaLookup, (_, itemId) => itemId], isItemDisabled);
78
58
 
79
59
  /**
80
60
  * Get the index of an item in its parent's children.
@@ -105,9 +85,16 @@ export const selectorItemParentId = createSelector([selectorItemMeta], itemMeta
105
85
  * @returns {number} The depth of the item.
106
86
  */
107
87
  export const selectorItemDepth = createSelector([selectorItemMeta], itemMeta => itemMeta?.depth ?? 0);
108
- export const selectorCanItemBeFocused = createSelector([selectorTreeViewItemsState, selectorIsItemDisabled], (itemsState, isItemDisabled) => {
109
- if (itemsState.disabledItemsFocusable) {
88
+
89
+ /**
90
+ * Check if the disabled items are focusable.
91
+ * @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
92
+ * @returns {boolean} Whether the disabled items are focusable.
93
+ */
94
+ export const selectorDisabledItemFocusable = createSelector([selectorTreeViewItemsState], itemsState => itemsState.disabledItemsFocusable);
95
+ export const selectorCanItemBeFocused = createSelector([selectorDisabledItemFocusable, selectorIsItemDisabled], (disabledItemsFocusable, isDisabled) => {
96
+ if (disabledItemsFocusable) {
110
97
  return true;
111
98
  }
112
- return !isItemDisabled;
99
+ return !isDisabled;
113
100
  });
@@ -1,4 +1,15 @@
1
+ import { TreeViewItemId } from "../../../models/index.js";
2
+ import { TreeViewItemMeta } from "../../models/index.js";
1
3
  export declare const TREE_VIEW_ROOT_PARENT_ID = "__TREE_VIEW_ROOT_PARENT_ID__";
2
4
  export declare const buildSiblingIndexes: (siblings: string[]) => {
3
5
  [itemId: string]: number;
4
- };
6
+ };
7
+ /**
8
+ * Check if an item is disabled.
9
+ * This method should only be used in selectors that are checking if several items are disabled.
10
+ * Otherwise, use the `selectorIsItemDisabled` selector.
11
+ * @returns
12
+ */
13
+ export declare const isItemDisabled: (itemMetaLookup: {
14
+ [itemId: string]: TreeViewItemMeta;
15
+ }, itemId: TreeViewItemId) => boolean;
@@ -5,4 +5,35 @@ export const buildSiblingIndexes = siblings => {
5
5
  siblingsIndexLookup[childId] = index;
6
6
  });
7
7
  return siblingsIndexLookup;
8
+ };
9
+
10
+ /**
11
+ * Check if an item is disabled.
12
+ * This method should only be used in selectors that are checking if several items are disabled.
13
+ * Otherwise, use the `selectorIsItemDisabled` selector.
14
+ * @returns
15
+ */
16
+ export const isItemDisabled = (itemMetaLookup, itemId) => {
17
+ if (itemId == null) {
18
+ return false;
19
+ }
20
+ let itemMeta = itemMetaLookup[itemId];
21
+
22
+ // This can be called before the item has been added to the item map.
23
+ if (!itemMeta) {
24
+ return false;
25
+ }
26
+ if (itemMeta.disabled) {
27
+ return true;
28
+ }
29
+ while (itemMeta.parentId != null) {
30
+ itemMeta = itemMetaLookup[itemMeta.parentId];
31
+ if (!itemMeta) {
32
+ return false;
33
+ }
34
+ if (itemMeta.disabled) {
35
+ return true;
36
+ }
37
+ }
38
+ return false;
8
39
  };
@@ -36,10 +36,9 @@ export const useTreeViewLabel = ({
36
36
  }
37
37
  };
38
38
  useEnhancedEffect(() => {
39
- const isItemEditable = params.isItemEditable;
40
39
  store.update(prevState => _extends({}, prevState, {
41
40
  label: _extends({}, prevState.label, {
42
- isItemEditable: typeof isItemEditable === 'boolean' ? () => isItemEditable : isItemEditable
41
+ isItemEditable: params.isItemEditable
43
42
  })
44
43
  }));
45
44
  }, [store, params.isItemEditable]);
@@ -59,11 +58,9 @@ useTreeViewLabel.getDefaultizedParams = ({
59
58
  }) => _extends({}, params, {
60
59
  isItemEditable: params.isItemEditable ?? false
61
60
  });
62
- useTreeViewLabel.getInitialState = ({
63
- isItemEditable
64
- }) => ({
61
+ useTreeViewLabel.getInitialState = params => ({
65
62
  label: {
66
- isItemEditable: typeof isItemEditable === 'boolean' ? () => isItemEditable : isItemEditable,
63
+ isItemEditable: params.isItemEditable,
67
64
  editedItemId: null
68
65
  }
69
66
  });
@@ -12,11 +12,11 @@ export declare const selectorIsItemEditable: ((state: any, itemId: string) => bo
12
12
  resetResultsCount: () => void;
13
13
  } & {
14
14
  resultFunc: (resultFuncArgs_0: {
15
- isItemEditable: (item: any) => boolean;
15
+ isItemEditable: ((item: any) => boolean) | boolean;
16
16
  editedItemId: string | null;
17
17
  } | undefined, resultFuncArgs_1: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>) => boolean;
18
18
  memoizedResultFunc: ((resultFuncArgs_0: {
19
- isItemEditable: (item: any) => boolean;
19
+ isItemEditable: ((item: any) => boolean) | boolean;
20
20
  editedItemId: string | null;
21
21
  } | undefined, resultFuncArgs_1: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>) => boolean) & {
22
22
  clearCache: () => void;
@@ -34,30 +34,64 @@ export declare const selectorIsItemEditable: ((state: any, itemId: string) => bo
34
34
  memoize: typeof import("reselect").weakMapMemoize;
35
35
  };
36
36
  /**
37
- * Check if an item is being edited.
37
+ * Check if the given item is being edited.
38
38
  * @param {TreeViewState<[UseTreeViewLabelSignature]>} state The state of the tree view.
39
39
  * @param {TreeViewItemId} itemId The id of the item to check.
40
40
  * @returns {boolean} `true` if the item is being edited, `false` otherwise.
41
41
  */
42
- export declare const selectorIsItemBeingEdited: ((state: any, itemId: string) => boolean) & {
42
+ export declare const selectorIsItemBeingEdited: ((state: any, itemId: string | null) => boolean) & {
43
+ clearCache: () => void;
44
+ resultsCount: () => number;
45
+ resetResultsCount: () => void;
46
+ } & {
47
+ resultFunc: (resultFuncArgs_0: {
48
+ isItemEditable: ((item: any) => boolean) | boolean;
49
+ editedItemId: string | null;
50
+ } | undefined, resultFuncArgs_1: string | null) => boolean;
51
+ memoizedResultFunc: ((resultFuncArgs_0: {
52
+ isItemEditable: ((item: any) => boolean) | boolean;
53
+ editedItemId: string | null;
54
+ } | undefined, resultFuncArgs_1: string | null) => boolean) & {
55
+ clearCache: () => void;
56
+ resultsCount: () => number;
57
+ resetResultsCount: () => void;
58
+ };
59
+ lastResult: () => boolean;
60
+ dependencies: [TreeViewRootSelector<UseTreeViewLabelSignature, true>, (_: any, itemId: string | null) => string | null];
61
+ recomputations: () => number;
62
+ resetRecomputations: () => void;
63
+ dependencyRecomputations: () => number;
64
+ resetDependencyRecomputations: () => void;
65
+ } & {
66
+ argsMemoize: typeof import("reselect").weakMapMemoize;
67
+ memoize: typeof import("reselect").weakMapMemoize;
68
+ };
69
+ /**
70
+ * Check if an item is being edited.
71
+ * @param {TreeViewState<[UseTreeViewLabelSignature]>} state The state of the tree view.
72
+ * @returns {boolean} `true` if an item is being edited, `false` otherwise.
73
+ */
74
+ export declare const selectorIsAnyItemBeingEdited: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & Partial<import("./useTreeViewLabel.types").UseTreeViewLabelState> & {
75
+ cacheKey: import("../../models").TreeViewStateCacheKey;
76
+ }) => boolean) & {
43
77
  clearCache: () => void;
44
78
  resultsCount: () => number;
45
79
  resetResultsCount: () => void;
46
80
  } & {
47
81
  resultFunc: (resultFuncArgs_0: {
48
- isItemEditable: (item: any) => boolean;
82
+ isItemEditable: ((item: any) => boolean) | boolean;
49
83
  editedItemId: string | null;
50
- } | undefined, resultFuncArgs_1: string) => boolean;
84
+ } | undefined) => boolean;
51
85
  memoizedResultFunc: ((resultFuncArgs_0: {
52
- isItemEditable: (item: any) => boolean;
86
+ isItemEditable: ((item: any) => boolean) | boolean;
53
87
  editedItemId: string | null;
54
- } | undefined, resultFuncArgs_1: string) => boolean) & {
88
+ } | undefined) => boolean) & {
55
89
  clearCache: () => void;
56
90
  resultsCount: () => number;
57
91
  resetResultsCount: () => void;
58
92
  };
59
93
  lastResult: () => boolean;
60
- dependencies: [TreeViewRootSelector<UseTreeViewLabelSignature, true>, (_: any, itemId: string) => string];
94
+ dependencies: [TreeViewRootSelector<UseTreeViewLabelSignature, true>];
61
95
  recomputations: () => number;
62
96
  resetRecomputations: () => void;
63
97
  dependencyRecomputations: () => number;
@@ -12,13 +12,23 @@ export const selectorIsItemEditable = createSelector([selectorTreeViewLabelState
12
12
  if (!itemModel || !labelState) {
13
13
  return false;
14
14
  }
15
+ if (typeof labelState.isItemEditable === 'boolean') {
16
+ return labelState.isItemEditable;
17
+ }
15
18
  return labelState.isItemEditable(itemModel);
16
19
  });
17
20
 
18
21
  /**
19
- * Check if an item is being edited.
22
+ * Check if the given item is being edited.
20
23
  * @param {TreeViewState<[UseTreeViewLabelSignature]>} state The state of the tree view.
21
24
  * @param {TreeViewItemId} itemId The id of the item to check.
22
25
  * @returns {boolean} `true` if the item is being edited, `false` otherwise.
23
26
  */
24
- export const selectorIsItemBeingEdited = createSelector([selectorTreeViewLabelState, (_, itemId) => itemId], (labelState, itemId) => labelState?.editedItemId === itemId);
27
+ export const selectorIsItemBeingEdited = createSelector([selectorTreeViewLabelState, (_, itemId) => itemId], (labelState, itemId) => itemId ? labelState?.editedItemId === itemId : false);
28
+
29
+ /**
30
+ * Check if an item is being edited.
31
+ * @param {TreeViewState<[UseTreeViewLabelSignature]>} state The state of the tree view.
32
+ * @returns {boolean} `true` if an item is being edited, `false` otherwise.
33
+ */
34
+ export const selectorIsAnyItemBeingEdited = createSelector(selectorTreeViewLabelState, labelState => !!labelState?.editedItemId);
@@ -38,7 +38,7 @@ export interface UseTreeViewLabelParameters<R extends {}> {
38
38
  export type UseTreeViewLabelDefaultizedParameters<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
39
39
  export interface UseTreeViewLabelState {
40
40
  label: {
41
- isItemEditable: (item: any) => boolean;
41
+ isItemEditable: ((item: any) => boolean) | boolean;
42
42
  editedItemId: string | null;
43
43
  };
44
44
  }
@@ -40,8 +40,8 @@ function selectorItemCheckboxStatus(state, itemId) {
40
40
  return {
41
41
  disabled: !isSelectionEnabledForItem,
42
42
  visible: isCheckboxSelectionEnabled,
43
- indeterminate: hasSelectedDescendant && hasUnSelectedDescendant || !hasUnSelectedDescendant,
44
- checked: selectorSelectionPropagationRules(state).parents ? hasSelectedDescendant : false
43
+ indeterminate: hasSelectedDescendant && hasUnSelectedDescendant,
44
+ checked: selectorSelectionPropagationRules(state).parents ? hasSelectedDescendant && !hasUnSelectedDescendant : false
45
45
  };
46
46
  }
47
47
  export const useTreeViewSelectionItemPlugin = ({
@@ -2,17 +2,23 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
4
  import { findOrderInTremauxTree, getAllNavigableItems, getFirstNavigableItem, getLastNavigableItem, getNonDisabledItemsInRange } from "../../utils/tree.js";
5
- import { convertSelectedItemsToArray, propagateSelection, getAddedAndRemovedItems, getLookupFromArray, createSelectedItemsMap } from "./useTreeViewSelection.utils.js";
6
- import { selectorIsItemSelected, selectorIsMultiSelectEnabled, selectorIsSelectionEnabled } from "./useTreeViewSelection.selectors.js";
5
+ import { propagateSelection, getAddedAndRemovedItems, getLookupFromArray } from "./useTreeViewSelection.utils.js";
6
+ import { selectorIsItemSelected, selectorIsMultiSelectEnabled, selectorIsSelectionEnabled, selectorSelectionModel, selectorSelectionModelArray } from "./useTreeViewSelection.selectors.js";
7
7
  import { useTreeViewSelectionItemPlugin } from "./useTreeViewSelection.itemPlugin.js";
8
+ import { useAssertModelConsistency } from "../../utils/models.js";
8
9
  export const useTreeViewSelection = ({
9
10
  store,
10
- params,
11
- models
11
+ params
12
12
  }) => {
13
+ useAssertModelConsistency({
14
+ state: 'selectedItems',
15
+ controlled: params.selectedItems,
16
+ defaultValue: params.defaultSelectedItems
17
+ });
13
18
  const lastSelectedItem = React.useRef(null);
14
19
  const lastSelectedRange = React.useRef({});
15
20
  const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
21
+ const oldModel = selectorSelectionModel(store.value);
16
22
  let cleanModel;
17
23
  const isMultiSelectEnabled = selectorIsMultiSelectEnabled(store.value);
18
24
  if (isMultiSelectEnabled && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
@@ -20,7 +26,7 @@ export const useTreeViewSelection = ({
20
26
  store,
21
27
  selectionPropagation: params.selectionPropagation,
22
28
  newModel: newModel,
23
- oldModel: models.selectedItems.value,
29
+ oldModel: oldModel,
24
30
  additionalItemsToPropagate
25
31
  });
26
32
  } else {
@@ -31,7 +37,7 @@ export const useTreeViewSelection = ({
31
37
  const changes = getAddedAndRemovedItems({
32
38
  store,
33
39
  newModel: cleanModel,
34
- oldModel: models.selectedItems.value
40
+ oldModel: oldModel
35
41
  });
36
42
  if (params.onItemSelectionToggle) {
37
43
  changes.added.forEach(itemId => {
@@ -41,19 +47,23 @@ export const useTreeViewSelection = ({
41
47
  params.onItemSelectionToggle(event, itemId, false);
42
48
  });
43
49
  }
44
- } else if (params.onItemSelectionToggle && cleanModel !== models.selectedItems.value) {
45
- if (models.selectedItems.value != null) {
46
- params.onItemSelectionToggle(event, models.selectedItems.value, false);
50
+ } else if (params.onItemSelectionToggle && cleanModel !== oldModel) {
51
+ if (oldModel != null) {
52
+ params.onItemSelectionToggle(event, oldModel, false);
47
53
  }
48
54
  if (cleanModel != null) {
49
55
  params.onItemSelectionToggle(event, cleanModel, true);
50
56
  }
51
57
  }
52
58
  }
53
- if (params.onSelectedItemsChange) {
54
- params.onSelectedItemsChange(event, cleanModel);
59
+ if (params.selectedItems === undefined) {
60
+ store.update(prevState => _extends({}, prevState, {
61
+ selection: _extends({}, prevState.selection, {
62
+ selectedItems: cleanModel
63
+ })
64
+ }));
55
65
  }
56
- models.selectedItems.setControlledValue(cleanModel);
66
+ params.onSelectedItemsChange?.(event, cleanModel);
57
67
  };
58
68
  const setItemSelection = ({
59
69
  itemId,
@@ -67,14 +77,14 @@ export const useTreeViewSelection = ({
67
77
  let newSelected;
68
78
  const isMultiSelectEnabled = selectorIsMultiSelectEnabled(store.value);
69
79
  if (keepExistingSelection) {
70
- const cleanSelectedItems = convertSelectedItemsToArray(models.selectedItems.value);
80
+ const oldSelected = selectorSelectionModelArray(store.value);
71
81
  const isSelectedBefore = selectorIsItemSelected(store.value, itemId);
72
82
  if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {
73
- newSelected = cleanSelectedItems.filter(id => id !== itemId);
83
+ newSelected = oldSelected.filter(id => id !== itemId);
74
84
  } else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {
75
- newSelected = [itemId].concat(cleanSelectedItems);
85
+ newSelected = [itemId].concat(oldSelected);
76
86
  } else {
77
- newSelected = cleanSelectedItems;
87
+ newSelected = oldSelected;
78
88
  }
79
89
  } else {
80
90
  // eslint-disable-next-line no-lonely-if
@@ -96,7 +106,7 @@ export const useTreeViewSelection = ({
96
106
  if (!isMultiSelectEnabled) {
97
107
  return;
98
108
  }
99
- let newSelectedItems = convertSelectedItemsToArray(models.selectedItems.value).slice();
109
+ let newSelectedItems = selectorSelectionModelArray(store.value).slice();
100
110
 
101
111
  // If the last selection was a range selection,
102
112
  // remove the items that were part of the last range from the model
@@ -138,7 +148,7 @@ export const useTreeViewSelection = ({
138
148
  if (!isMultiSelectEnabled) {
139
149
  return;
140
150
  }
141
- let newSelectedItems = convertSelectedItemsToArray(models.selectedItems.value).slice();
151
+ let newSelectedItems = selectorSelectionModelArray(store.value).slice();
142
152
  if (Object.keys(lastSelectedRange.current).length === 0) {
143
153
  newSelectedItems.push(nextItem);
144
154
  lastSelectedRange.current = {
@@ -162,9 +172,7 @@ export const useTreeViewSelection = ({
162
172
  useEnhancedEffect(() => {
163
173
  store.update(prevState => _extends({}, prevState, {
164
174
  selection: {
165
- rawSelectedItems: models.selectedItems.value,
166
- // Only re-compute the map when the model changes.
167
- selectedItemsMap: prevState.selection.rawSelectedItems === models.selectedItems.value ? prevState.selection.selectedItemsMap : createSelectedItemsMap(models.selectedItems.value),
175
+ selectedItems: params.selectedItems === undefined ? prevState.selection.selectedItems : params.selectedItems,
168
176
  isEnabled: !params.disableSelection,
169
177
  isMultiSelectEnabled: params.multiSelect,
170
178
  isCheckboxSelectionEnabled: params.checkboxSelection,
@@ -174,7 +182,7 @@ export const useTreeViewSelection = ({
174
182
  }
175
183
  }
176
184
  }));
177
- }, [store, models.selectedItems.value, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
185
+ }, [store, params.selectedItems, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
178
186
  return {
179
187
  getRootProps: () => ({
180
188
  'aria-multiselectable': params.multiSelect
@@ -193,11 +201,6 @@ export const useTreeViewSelection = ({
193
201
  };
194
202
  };
195
203
  useTreeViewSelection.itemPlugin = useTreeViewSelectionItemPlugin;
196
- useTreeViewSelection.models = {
197
- selectedItems: {
198
- getDefaultValue: params => params.defaultSelectedItems
199
- }
200
- };
201
204
  const DEFAULT_SELECTED_ITEMS = [];
202
205
  const EMPTY_SELECTION_PROPAGATION = {};
203
206
  useTreeViewSelection.getDefaultizedParams = ({
@@ -209,19 +212,15 @@ useTreeViewSelection.getDefaultizedParams = ({
209
212
  defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null),
210
213
  selectionPropagation: params.selectionPropagation ?? EMPTY_SELECTION_PROPAGATION
211
214
  });
212
- useTreeViewSelection.getInitialState = params => {
213
- const rawSelectedItems = params.selectedItems === undefined ? params.defaultSelectedItems : params.selectedItems;
214
- return {
215
- selection: {
216
- rawSelectedItems,
217
- selectedItemsMap: createSelectedItemsMap(rawSelectedItems),
218
- isEnabled: !params.disableSelection,
219
- isMultiSelectEnabled: params.multiSelect,
220
- isCheckboxSelectionEnabled: params.checkboxSelection,
221
- selectionPropagation: params.selectionPropagation
222
- }
223
- };
224
- };
215
+ useTreeViewSelection.getInitialState = params => ({
216
+ selection: {
217
+ selectedItems: params.selectedItems === undefined ? params.defaultSelectedItems : params.selectedItems,
218
+ isEnabled: !params.disableSelection,
219
+ isMultiSelectEnabled: params.multiSelect,
220
+ isCheckboxSelectionEnabled: params.checkboxSelection,
221
+ selectionPropagation: params.selectionPropagation
222
+ }
223
+ });
225
224
  useTreeViewSelection.params = {
226
225
  disableSelection: true,
227
226
  multiSelect: true,