@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
@@ -1,145 +0,0 @@
1
- import * as React from 'react';
2
- import type { DefaultizedProps } from '@mui/x-internals/types';
3
- import type { TreeViewPluginSignature } from '../../models';
4
- import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
5
- import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
6
- import { TreeViewSelectionPropagation, TreeViewCancellableEventHandler } from "../../../models/index.js";
7
- export interface UseTreeViewSelectionPublicAPI {
8
- /**
9
- * Select or deselect an item.
10
- * @param {object} parameters The parameters of the method.
11
- * @param {string} parameters.itemId The id of the item to select or deselect.
12
- * @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
13
- * @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`
14
- * @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.
15
- */
16
- setItemSelection: (parameters: {
17
- itemId: string;
18
- event?: React.SyntheticEvent;
19
- shouldBeSelected?: boolean;
20
- keepExistingSelection?: boolean;
21
- }) => void;
22
- }
23
- export interface UseTreeViewSelectionInstance extends UseTreeViewSelectionPublicAPI {
24
- /**
25
- * Select all the navigable items in the tree.
26
- * @param {React.SyntheticEvent} event The DOM event that triggered the change.
27
- */
28
- selectAllNavigableItems: (event: React.SyntheticEvent) => void;
29
- /**
30
- * Expand the current selection range up to the given item.
31
- * @param {React.SyntheticEvent} event The DOM event that triggered the change.
32
- * @param {string} itemId The id of the item to expand the selection to.
33
- */
34
- expandSelectionRange: (event: React.SyntheticEvent, itemId: string) => void;
35
- /**
36
- * Expand the current selection range from the first navigable item to the given item.
37
- * @param {React.SyntheticEvent} event The DOM event that triggered the change.
38
- * @param {string} itemId The id of the item up to which the selection range should be expanded.
39
- */
40
- selectRangeFromStartToItem: (event: React.SyntheticEvent, itemId: string) => void;
41
- /**
42
- * Expand the current selection range from the given item to the last navigable item.
43
- * @param {React.SyntheticEvent} event The DOM event that triggered the change.
44
- * @param {string} itemId The id of the item from which the selection range should be expanded.
45
- */
46
- selectRangeFromItemToEnd: (event: React.SyntheticEvent, itemId: string) => void;
47
- /**
48
- * Update the selection when navigating with ArrowUp / ArrowDown keys.
49
- * @param {React.SyntheticEvent} event The DOM event that triggered the change.
50
- * @param {string} currentItemId The id of the active item before the keyboard navigation.
51
- * @param {string} nextItemId The id of the active item after the keyboard navigation.
52
- */
53
- selectItemFromArrowNavigation: (event: React.SyntheticEvent, currentItemId: string, nextItemId: string) => void;
54
- }
55
- type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ? string[] : string | null;
56
- export interface UseTreeViewSelectionParameters<Multiple extends boolean | undefined> {
57
- /**
58
- * If `true` selection is disabled.
59
- * @default false
60
- */
61
- disableSelection?: boolean;
62
- /**
63
- * Selected item ids. (Uncontrolled)
64
- * When `multiSelect` is true this takes an array of strings; when false (default) a string.
65
- * @default []
66
- */
67
- defaultSelectedItems?: TreeViewSelectionValue<Multiple>;
68
- /**
69
- * Selected item ids. (Controlled)
70
- * When `multiSelect` is true this takes an array of strings; when false (default) a string.
71
- */
72
- selectedItems?: TreeViewSelectionValue<Multiple>;
73
- /**
74
- * If `true`, `ctrl` and `shift` will trigger multiselect.
75
- * @default false
76
- */
77
- multiSelect?: Multiple;
78
- /**
79
- * If `true`, the Tree View renders a checkbox at the left of its label that allows selecting it.
80
- * @default false
81
- */
82
- checkboxSelection?: boolean;
83
- /**
84
- * When `selectionPropagation.descendants` is set to `true`.
85
- *
86
- * - Selecting a parent selects all its descendants automatically.
87
- * - Deselecting a parent deselects all its descendants automatically.
88
- *
89
- * When `selectionPropagation.parents` is set to `true`.
90
- *
91
- * - Selecting all the descendants of a parent selects the parent automatically.
92
- * - Deselecting a descendant of a selected parent deselects the parent automatically.
93
- *
94
- * Only works when `multiSelect` is `true`.
95
- * On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
96
- *
97
- * @default { parents: false, descendants: false }
98
- */
99
- selectionPropagation?: TreeViewSelectionPropagation;
100
- /**
101
- * Callback fired when Tree Items are selected/deselected.
102
- * @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
103
- * @param {string[] | string} itemIds The ids of the selected items.
104
- * When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
105
- */
106
- onSelectedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewSelectionValue<Multiple>) => void;
107
- /**
108
- * Callback fired when a Tree Item is selected or deselected.
109
- * @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
110
- * @param {array} itemId The itemId of the modified item.
111
- * @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
112
- */
113
- onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: string, isSelected: boolean) => void;
114
- }
115
- export type UseTreeViewSelectionDefaultizedParameters<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
116
- export interface UseTreeViewSelectionState {
117
- selection: {
118
- rawSelectedItems: TreeViewSelectionValue<boolean>;
119
- selectedItemsMap: Map<string, true>;
120
- isEnabled: boolean;
121
- isMultiSelectEnabled: boolean;
122
- isCheckboxSelectionEnabled: boolean;
123
- selectionPropagation: TreeViewSelectionPropagation;
124
- };
125
- }
126
- export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
127
- params: UseTreeViewSelectionParameters<any>;
128
- defaultizedParams: UseTreeViewSelectionDefaultizedParameters<any>;
129
- instance: UseTreeViewSelectionInstance;
130
- publicAPI: UseTreeViewSelectionPublicAPI;
131
- modelNames: 'selectedItems';
132
- state: UseTreeViewSelectionState;
133
- dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewItemsSignature];
134
- }>;
135
- export interface UseTreeItemCheckboxSlotPropsFromSelection {
136
- visible?: boolean;
137
- checked?: boolean;
138
- disabled?: boolean;
139
- tabIndex?: -1;
140
- onChange?: TreeViewCancellableEventHandler<React.ChangeEvent<HTMLInputElement>>;
141
- }
142
- declare module '@mui/x-tree-view/useTreeItem' {
143
- interface UseTreeItemCheckboxSlotOwnProps extends UseTreeItemCheckboxSlotPropsFromSelection {}
144
- }
145
- export {};
@@ -1,38 +0,0 @@
1
- import { TreeViewItemId, TreeViewSelectionPropagation } from "../../../models/index.js";
2
- import { TreeViewUsedStore } from "../../models/index.js";
3
- import { UseTreeViewSelectionSignature } from "./useTreeViewSelection.types.js";
4
- /**
5
- * Transform the `selectedItems` model to be an array if it was a string or null.
6
- * @param {string[] | string | null} model The raw model.
7
- * @returns {string[]} The converted model.
8
- */
9
- export declare const convertSelectedItemsToArray: (model: string[] | string | null) => string[];
10
- export declare const createSelectedItemsMap: (selectedItems: string | string[] | null) => Map<string, true>;
11
- export declare const getLookupFromArray: (array: string[]) => {
12
- [itemId: string]: true;
13
- };
14
- export declare const getAddedAndRemovedItems: ({
15
- store,
16
- oldModel,
17
- newModel
18
- }: {
19
- store: TreeViewUsedStore<UseTreeViewSelectionSignature>;
20
- oldModel: TreeViewItemId[];
21
- newModel: TreeViewItemId[];
22
- }) => {
23
- added: string[];
24
- removed: string[];
25
- };
26
- export declare const propagateSelection: ({
27
- store,
28
- selectionPropagation,
29
- newModel,
30
- oldModel,
31
- additionalItemsToPropagate
32
- }: {
33
- store: TreeViewUsedStore<UseTreeViewSelectionSignature>;
34
- selectionPropagation: TreeViewSelectionPropagation;
35
- newModel: TreeViewItemId[];
36
- oldModel: TreeViewItemId[];
37
- additionalItemsToPropagate?: TreeViewItemId[];
38
- }) => string[];
@@ -1,126 +0,0 @@
1
- import { selectorIsItemSelected } from "./useTreeViewSelection.selectors.js";
2
- import { selectorItemOrderedChildrenIds, selectorItemParentId } from "../useTreeViewItems/useTreeViewItems.selectors.js";
3
-
4
- /**
5
- * Transform the `selectedItems` model to be an array if it was a string or null.
6
- * @param {string[] | string | null} model The raw model.
7
- * @returns {string[]} The converted model.
8
- */
9
- export const convertSelectedItemsToArray = model => {
10
- if (Array.isArray(model)) {
11
- return model;
12
- }
13
- if (model != null) {
14
- return [model];
15
- }
16
- return [];
17
- };
18
- export const createSelectedItemsMap = selectedItems => {
19
- const selectedItemsMap = new Map();
20
- convertSelectedItemsToArray(selectedItems).forEach(id => {
21
- selectedItemsMap.set(id, true);
22
- });
23
- return selectedItemsMap;
24
- };
25
- export const getLookupFromArray = array => {
26
- const lookup = {};
27
- array.forEach(itemId => {
28
- lookup[itemId] = true;
29
- });
30
- return lookup;
31
- };
32
- export const getAddedAndRemovedItems = ({
33
- store,
34
- oldModel,
35
- newModel
36
- }) => {
37
- const newModelLookup = createSelectedItemsMap(newModel);
38
- return {
39
- added: newModel.filter(itemId => !selectorIsItemSelected(store.value, itemId)),
40
- removed: oldModel.filter(itemId => !newModelLookup.has(itemId))
41
- };
42
- };
43
- export const propagateSelection = ({
44
- store,
45
- selectionPropagation,
46
- newModel,
47
- oldModel,
48
- additionalItemsToPropagate
49
- }) => {
50
- if (!selectionPropagation.descendants && !selectionPropagation.parents) {
51
- return newModel;
52
- }
53
- let shouldRegenerateModel = false;
54
- const newModelLookup = getLookupFromArray(newModel);
55
- const changes = getAddedAndRemovedItems({
56
- store,
57
- newModel,
58
- oldModel
59
- });
60
- additionalItemsToPropagate?.forEach(itemId => {
61
- if (newModelLookup[itemId]) {
62
- if (!changes.added.includes(itemId)) {
63
- changes.added.push(itemId);
64
- }
65
- } else if (!changes.removed.includes(itemId)) {
66
- changes.removed.push(itemId);
67
- }
68
- });
69
- changes.added.forEach(addedItemId => {
70
- if (selectionPropagation.descendants) {
71
- const selectDescendants = itemId => {
72
- if (itemId !== addedItemId) {
73
- shouldRegenerateModel = true;
74
- newModelLookup[itemId] = true;
75
- }
76
- selectorItemOrderedChildrenIds(store.value, itemId).forEach(selectDescendants);
77
- };
78
- selectDescendants(addedItemId);
79
- }
80
- if (selectionPropagation.parents) {
81
- const checkAllDescendantsSelected = itemId => {
82
- if (!newModelLookup[itemId]) {
83
- return false;
84
- }
85
- const children = selectorItemOrderedChildrenIds(store.value, itemId);
86
- return children.every(checkAllDescendantsSelected);
87
- };
88
- const selectParents = itemId => {
89
- const parentId = selectorItemParentId(store.value, itemId);
90
- if (parentId == null) {
91
- return;
92
- }
93
- const siblings = selectorItemOrderedChildrenIds(store.value, parentId);
94
- if (siblings.every(checkAllDescendantsSelected)) {
95
- shouldRegenerateModel = true;
96
- newModelLookup[parentId] = true;
97
- selectParents(parentId);
98
- }
99
- };
100
- selectParents(addedItemId);
101
- }
102
- });
103
- changes.removed.forEach(removedItemId => {
104
- if (selectionPropagation.parents) {
105
- let parentId = selectorItemParentId(store.value, removedItemId);
106
- while (parentId != null) {
107
- if (newModelLookup[parentId]) {
108
- shouldRegenerateModel = true;
109
- delete newModelLookup[parentId];
110
- }
111
- parentId = selectorItemParentId(store.value, parentId);
112
- }
113
- }
114
- if (selectionPropagation.descendants) {
115
- const deSelectDescendants = itemId => {
116
- if (itemId !== removedItemId) {
117
- shouldRegenerateModel = true;
118
- delete newModelLookup[itemId];
119
- }
120
- selectorItemOrderedChildrenIds(store.value, itemId).forEach(deSelectDescendants);
121
- };
122
- deSelectDescendants(removedItemId);
123
- }
124
- });
125
- return shouldRegenerateModel ? Object.keys(newModelLookup) : newModel;
126
- };
@@ -1,22 +0,0 @@
1
- import { ConvertSignaturesIntoPlugins, MergeSignaturesProperty, TreeViewAnyPluginSignature, TreeViewPluginSignature } from "../models/index.js";
2
- import { UseTreeViewBaseProps } from "./useTreeView.types.js";
3
- import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
4
- interface ExtractPluginParamsFromPropsParameters<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> {
5
- plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
6
- props: TProps;
7
- }
8
- interface ExtractPluginParamsFromPropsReturnValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> extends UseTreeViewBaseProps<TSignatures> {
9
- pluginParams: MergeSignaturesProperty<TSignatures, 'defaultizedParams'>;
10
- forwardedProps: Omit<TProps, keyof MergeSignaturesProperty<TSignatures, 'params'>>;
11
- }
12
- export declare const extractPluginParamsFromProps: <TSignatures extends readonly TreeViewPluginSignature<any>[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>>({
13
- props: {
14
- slots,
15
- slotProps,
16
- apiRef,
17
- experimentalFeatures: inExperimentalFeatures,
18
- ...props
19
- },
20
- plugins
21
- }: ExtractPluginParamsFromPropsParameters<TSignatures, TProps>) => ExtractPluginParamsFromPropsReturnValue<TSignatures, TProps>;
22
- export {};
@@ -1,46 +0,0 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- const _excluded = ["slots", "slotProps", "apiRef", "experimentalFeatures"];
3
- export const extractPluginParamsFromProps = _ref => {
4
- let {
5
- props: {
6
- slots,
7
- slotProps,
8
- apiRef,
9
- experimentalFeatures: inExperimentalFeatures
10
- },
11
- plugins
12
- } = _ref,
13
- props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
14
- const paramsLookup = {};
15
- plugins.forEach(plugin => {
16
- Object.assign(paramsLookup, plugin.params);
17
- });
18
- const pluginParams = {};
19
- const forwardedProps = {};
20
- Object.keys(props).forEach(propName => {
21
- const prop = props[propName];
22
- if (paramsLookup[propName]) {
23
- pluginParams[propName] = prop;
24
- } else {
25
- forwardedProps[propName] = prop;
26
- }
27
- });
28
- const experimentalFeatures = inExperimentalFeatures ?? {};
29
- const defaultizedPluginParams = plugins.reduce((acc, plugin) => {
30
- if (plugin.getDefaultizedParams) {
31
- return plugin.getDefaultizedParams({
32
- params: acc,
33
- experimentalFeatures
34
- });
35
- }
36
- return acc;
37
- }, pluginParams);
38
- return {
39
- apiRef,
40
- forwardedProps,
41
- pluginParams: defaultizedPluginParams,
42
- slots: slots ?? {},
43
- slotProps: slotProps ?? {},
44
- experimentalFeatures
45
- };
46
- };
@@ -1 +0,0 @@
1
- export { useTreeView } from "./useTreeView.js";
@@ -1 +0,0 @@
1
- export { useTreeView } from "./useTreeView.js";
@@ -1,9 +0,0 @@
1
- import * as React from 'react';
2
- import { TreeViewAnyPluginSignature } from "../models/index.js";
3
- import { UseTreeViewBaseProps, UseTreeViewParameters, UseTreeViewReturnValue } from "./useTreeView.types.js";
4
- export declare function useTreeViewApiInitialization<T>(inputApiRef: React.RefObject<T | undefined> | undefined): T;
5
- export declare const useTreeView: <TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>>({
6
- plugins: inPlugins,
7
- rootRef,
8
- props
9
- }: UseTreeViewParameters<TSignatures, TProps>) => UseTreeViewReturnValue<TSignatures>;
@@ -1,114 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import useForkRef from '@mui/utils/useForkRef';
4
- import { useTreeViewModels } from "./useTreeViewModels.js";
5
- import { TREE_VIEW_CORE_PLUGINS } from "../corePlugins/index.js";
6
- import { extractPluginParamsFromProps } from "./extractPluginParamsFromProps.js";
7
- import { useTreeViewBuildContext } from "./useTreeViewBuildContext.js";
8
- import { TreeViewStore } from "../utils/TreeViewStore.js";
9
- export function useTreeViewApiInitialization(inputApiRef) {
10
- const fallbackPublicApiRef = React.useRef({});
11
- if (inputApiRef) {
12
- if (inputApiRef.current == null) {
13
- inputApiRef.current = {};
14
- }
15
- return inputApiRef.current;
16
- }
17
- return fallbackPublicApiRef.current;
18
- }
19
- let globalId = 0;
20
- export const useTreeView = ({
21
- plugins: inPlugins,
22
- rootRef,
23
- props
24
- }) => {
25
- const plugins = React.useMemo(() => [...TREE_VIEW_CORE_PLUGINS, ...inPlugins], [inPlugins]);
26
- const {
27
- pluginParams,
28
- forwardedProps,
29
- apiRef,
30
- experimentalFeatures,
31
- slots,
32
- slotProps
33
- } = extractPluginParamsFromProps({
34
- plugins,
35
- props
36
- });
37
- const models = useTreeViewModels(plugins, pluginParams);
38
- const instanceRef = React.useRef({});
39
- const instance = instanceRef.current;
40
- const publicAPI = useTreeViewApiInitialization(apiRef);
41
- const innerRootRef = React.useRef(null);
42
- const handleRootRef = useForkRef(innerRootRef, rootRef);
43
- const storeRef = React.useRef(null);
44
- if (storeRef.current == null) {
45
- globalId += 1;
46
- const initialState = {
47
- cacheKey: {
48
- id: globalId
49
- }
50
- };
51
- plugins.forEach(plugin => {
52
- if (plugin.getInitialState) {
53
- Object.assign(initialState, plugin.getInitialState(pluginParams));
54
- }
55
- });
56
- storeRef.current = new TreeViewStore(initialState);
57
- }
58
- const baseContextValue = useTreeViewBuildContext({
59
- plugins,
60
- instance,
61
- publicAPI,
62
- store: storeRef.current,
63
- rootRef: innerRootRef
64
- });
65
- const rootPropsGetters = [];
66
- const pluginContextValues = [];
67
- const runPlugin = plugin => {
68
- const pluginResponse = plugin({
69
- instance,
70
- params: pluginParams,
71
- slots,
72
- slotProps,
73
- experimentalFeatures,
74
- rootRef: innerRootRef,
75
- models,
76
- plugins,
77
- store: storeRef.current
78
- });
79
- if (pluginResponse.getRootProps) {
80
- rootPropsGetters.push(pluginResponse.getRootProps);
81
- }
82
- if (pluginResponse.publicAPI) {
83
- Object.assign(publicAPI, pluginResponse.publicAPI);
84
- }
85
- if (pluginResponse.instance) {
86
- Object.assign(instance, pluginResponse.instance);
87
- }
88
- if (pluginResponse.contextValue) {
89
- pluginContextValues.push(pluginResponse.contextValue);
90
- }
91
- };
92
- plugins.forEach(runPlugin);
93
- const getRootProps = (otherHandlers = {}) => {
94
- const rootProps = _extends({
95
- role: 'tree'
96
- }, forwardedProps, otherHandlers, {
97
- ref: handleRootRef
98
- });
99
- rootPropsGetters.forEach(rootPropsGetter => {
100
- Object.assign(rootProps, rootPropsGetter(otherHandlers));
101
- });
102
- return rootProps;
103
- };
104
- const contextValue = React.useMemo(() => {
105
- const copiedBaseContextValue = _extends({}, baseContextValue);
106
- return Object.assign(copiedBaseContextValue, ...pluginContextValues);
107
- // eslint-disable-next-line react-hooks/exhaustive-deps
108
- }, [baseContextValue, ...pluginContextValues]);
109
- return {
110
- getRootProps,
111
- rootRef: handleRootRef,
112
- contextValue
113
- };
114
- };
@@ -1,23 +0,0 @@
1
- import * as React from 'react';
2
- import { EventHandlers } from '@mui/utils/types';
3
- import type { TreeViewContextValue } from '../TreeViewProvider';
4
- import { TreeViewAnyPluginSignature, ConvertSignaturesIntoPlugins, MergeSignaturesProperty, TreeViewPublicAPI, TreeViewExperimentalFeatures } from "../models/index.js";
5
- export interface UseTreeViewParameters<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> {
6
- plugins: ConvertSignaturesIntoPlugins<TSignatures>;
7
- rootRef?: React.Ref<HTMLUListElement> | undefined;
8
- props: TProps;
9
- }
10
- export interface UseTreeViewBaseProps<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
11
- apiRef: React.RefObject<TreeViewPublicAPI<TSignatures> | undefined> | undefined;
12
- slots: MergeSignaturesProperty<TSignatures, 'slots'>;
13
- slotProps: MergeSignaturesProperty<TSignatures, 'slotProps'>;
14
- experimentalFeatures: TreeViewExperimentalFeatures<TSignatures>;
15
- }
16
- export interface UseTreeViewRootSlotProps extends Pick<React.HTMLAttributes<HTMLUListElement>, 'onFocus' | 'onBlur' | 'onKeyDown' | 'id' | 'aria-multiselectable' | 'role' | 'tabIndex'> {
17
- ref: React.Ref<HTMLUListElement>;
18
- }
19
- export interface UseTreeViewReturnValue<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
20
- getRootProps: <TOther extends EventHandlers = {}>(otherHandlers?: TOther) => UseTreeViewRootSlotProps;
21
- rootRef: React.RefCallback<HTMLUListElement> | null;
22
- contextValue: TreeViewContextValue<TSignatures>;
23
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- import * as React from 'react';
2
- import { TreeViewContextValue } from "../TreeViewProvider/index.js";
3
- import { ConvertSignaturesIntoPlugins, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewPublicAPI } from "../models/index.js";
4
- import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
5
- import { TreeViewStore } from "../utils/TreeViewStore.js";
6
- export declare const useTreeViewBuildContext: <TSignatures extends readonly TreeViewAnyPluginSignature[]>({
7
- plugins,
8
- instance,
9
- publicAPI,
10
- store,
11
- rootRef
12
- }: {
13
- plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
14
- instance: TreeViewInstance<TSignatures>;
15
- publicAPI: TreeViewPublicAPI<TSignatures>;
16
- store: TreeViewStore<TSignatures>;
17
- rootRef: React.RefObject<HTMLUListElement | null>;
18
- }) => TreeViewContextValue<TSignatures>;
@@ -1,101 +0,0 @@
1
- import * as React from 'react';
2
- export const useTreeViewBuildContext = ({
3
- plugins,
4
- instance,
5
- publicAPI,
6
- store,
7
- rootRef
8
- }) => {
9
- const runItemPlugins = React.useCallback(itemPluginProps => {
10
- let finalRootRef = null;
11
- let finalContentRef = null;
12
- const pluginPropEnhancers = [];
13
- const pluginPropEnhancersNames = {};
14
- plugins.forEach(plugin => {
15
- if (!plugin.itemPlugin) {
16
- return;
17
- }
18
- const itemPluginResponse = plugin.itemPlugin({
19
- props: itemPluginProps,
20
- rootRef: finalRootRef,
21
- contentRef: finalContentRef
22
- });
23
- if (itemPluginResponse?.rootRef) {
24
- finalRootRef = itemPluginResponse.rootRef;
25
- }
26
- if (itemPluginResponse?.contentRef) {
27
- finalContentRef = itemPluginResponse.contentRef;
28
- }
29
- if (itemPluginResponse?.propsEnhancers) {
30
- pluginPropEnhancers.push(itemPluginResponse.propsEnhancers);
31
-
32
- // Prepare a list of all the slots which are enhanced by at least one plugin
33
- Object.keys(itemPluginResponse.propsEnhancers).forEach(propsEnhancerName => {
34
- pluginPropEnhancersNames[propsEnhancerName] = true;
35
- });
36
- }
37
- });
38
- const resolvePropsEnhancer = currentSlotName => currentSlotParams => {
39
- const enhancedProps = {};
40
- pluginPropEnhancers.forEach(propsEnhancersForCurrentPlugin => {
41
- const propsEnhancerForCurrentPluginAndSlot = propsEnhancersForCurrentPlugin[currentSlotName];
42
- if (propsEnhancerForCurrentPluginAndSlot != null) {
43
- Object.assign(enhancedProps, propsEnhancerForCurrentPluginAndSlot(currentSlotParams));
44
- }
45
- });
46
- return enhancedProps;
47
- };
48
- const propsEnhancers = Object.fromEntries(Object.keys(pluginPropEnhancersNames).map(propEnhancerName => [propEnhancerName, resolvePropsEnhancer(propEnhancerName)]));
49
- return {
50
- contentRef: finalContentRef,
51
- rootRef: finalRootRef,
52
- propsEnhancers
53
- };
54
- }, [plugins]);
55
- const wrapItem = React.useCallback(({
56
- itemId,
57
- children,
58
- idAttribute
59
- }) => {
60
- let finalChildren = children;
61
- // The wrappers are reversed to ensure that the first wrapper is the outermost one.
62
- for (let i = plugins.length - 1; i >= 0; i -= 1) {
63
- const plugin = plugins[i];
64
- if (plugin.wrapItem) {
65
- finalChildren = plugin.wrapItem({
66
- instance,
67
- itemId,
68
- children: finalChildren,
69
- idAttribute
70
- });
71
- }
72
- }
73
- return finalChildren;
74
- }, [plugins, instance]);
75
- const wrapRoot = React.useCallback(({
76
- children
77
- }) => {
78
- let finalChildren = children;
79
- // The wrappers are reversed to ensure that the first wrapper is the outermost one.
80
- for (let i = plugins.length - 1; i >= 0; i -= 1) {
81
- const plugin = plugins[i];
82
- if (plugin.wrapRoot) {
83
- finalChildren = plugin.wrapRoot({
84
- children: finalChildren
85
- });
86
- }
87
- }
88
- return finalChildren;
89
- }, [plugins]);
90
- return React.useMemo(() => {
91
- return {
92
- runItemPlugins,
93
- wrapItem,
94
- wrapRoot,
95
- instance,
96
- publicAPI,
97
- store,
98
- rootRef
99
- };
100
- }, [runItemPlugins, wrapItem, wrapRoot, instance, publicAPI, store, rootRef]);
101
- };
@@ -1,7 +0,0 @@
1
- import { TreeViewAnyPluginSignature, ConvertSignaturesIntoPlugins, MergeSignaturesProperty } from "../models/index.js";
2
- import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
3
- /**
4
- * Implements the same behavior as `useControlled` but for several models.
5
- * The controlled models are never stored in the state, and the state is only updated if the model is not controlled.
6
- */
7
- export declare const useTreeViewModels: <TSignatures extends readonly TreeViewAnyPluginSignature[]>(plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>, props: MergeSignaturesProperty<TSignatures, "defaultizedParams">) => MergeSignaturesProperty<TSignatures, "models">;