@mui/x-tree-view 8.0.0-beta.2 → 8.0.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 (421) hide show
  1. package/CHANGELOG.md +423 -96
  2. package/RichTreeView/RichTreeView.js +11 -6
  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 +12 -8
  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/TreeItemIcon/TreeItemIcon.js +15 -11
  12. package/esm/RichTreeView/RichTreeView.js +10 -5
  13. package/esm/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  14. package/esm/RichTreeView/RichTreeView.plugins.js +1 -2
  15. package/esm/RichTreeView/RichTreeView.types.d.ts +4 -3
  16. package/esm/RichTreeView/index.d.ts +1 -1
  17. package/esm/SimpleTreeView/SimpleTreeView.js +11 -7
  18. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  19. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  20. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  21. package/esm/TreeItemIcon/TreeItemIcon.js +15 -11
  22. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  23. package/esm/index.js +1 -1
  24. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  25. package/esm/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  26. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  27. package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  28. package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  29. package/esm/internals/hooks/useSelector.js +1 -4
  30. package/esm/internals/index.d.ts +2 -3
  31. package/esm/internals/index.js +1 -1
  32. package/esm/internals/models/events.d.ts +2 -6
  33. package/esm/internals/models/plugin.d.ts +63 -38
  34. package/esm/internals/models/treeView.d.ts +0 -5
  35. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +35 -21
  36. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  37. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +21 -1
  38. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  39. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  40. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -7
  41. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -30
  42. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  43. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  44. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  45. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  46. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  47. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  48. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +31 -0
  49. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  50. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  51. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +12 -2
  52. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  53. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  54. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -40
  55. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  56. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +36 -1
  57. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  58. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  59. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -24
  60. package/esm/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  61. package/esm/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  62. package/esm/internals/useTreeView/useTreeView.d.ts +10 -1
  63. package/esm/internals/useTreeView/useTreeView.js +22 -25
  64. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -3
  65. package/esm/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  66. package/esm/internals/utils/models.d.ts +7 -0
  67. package/esm/internals/utils/models.js +23 -0
  68. package/esm/internals/utils/selectors.d.ts +1 -1
  69. package/esm/utils/cache.d.ts +1 -1
  70. package/esm/utils/cache.js +1 -1
  71. package/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  72. package/index.js +1 -1
  73. package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  74. package/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  75. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  76. package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  77. package/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  78. package/internals/hooks/useSelector.js +1 -5
  79. package/internals/index.d.ts +2 -3
  80. package/internals/index.js +13 -7
  81. package/internals/models/events.d.ts +2 -6
  82. package/internals/models/plugin.d.ts +63 -38
  83. package/internals/models/treeView.d.ts +0 -5
  84. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -19
  85. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  86. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +22 -2
  87. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  88. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  89. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +1 -9
  90. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -30
  91. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  92. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  93. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  94. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  95. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  96. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  97. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +34 -2
  98. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  99. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  100. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +13 -3
  101. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  102. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  103. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +37 -38
  104. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  105. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +37 -2
  106. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  107. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  108. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +6 -26
  109. package/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  110. package/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  111. package/internals/useTreeView/useTreeView.d.ts +10 -1
  112. package/internals/useTreeView/useTreeView.js +22 -25
  113. package/internals/useTreeView/useTreeView.types.d.ts +1 -3
  114. package/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  115. package/internals/utils/models.d.ts +7 -0
  116. package/internals/utils/models.js +30 -0
  117. package/internals/utils/selectors.d.ts +1 -1
  118. package/package.json +7 -15
  119. package/utils/cache.d.ts +1 -1
  120. package/utils/cache.js +1 -1
  121. package/esm/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  122. package/esm/internals/plugins/useTreeViewIcons/index.js +0 -1
  123. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  124. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  125. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  126. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  127. package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  128. package/esm/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  129. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  130. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  131. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  132. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  133. package/esm/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  134. package/esm/internals/useTreeView/useTreeViewModels.js +0 -62
  135. package/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  136. package/internals/plugins/useTreeViewIcons/index.js +0 -12
  137. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  138. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -32
  139. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  140. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -5
  141. package/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  142. package/internals/plugins/useTreeViewItemCustomization/index.js +0 -12
  143. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  144. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -32
  145. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  146. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -5
  147. package/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  148. package/internals/useTreeView/useTreeViewModels.js +0 -71
  149. package/modern/RichTreeView/RichTreeView.d.ts +0 -18
  150. package/modern/RichTreeView/RichTreeView.js +0 -322
  151. package/modern/RichTreeView/RichTreeView.plugins.d.ts +0 -13
  152. package/modern/RichTreeView/RichTreeView.plugins.js +0 -10
  153. package/modern/RichTreeView/RichTreeView.types.d.ts +0 -52
  154. package/modern/RichTreeView/RichTreeView.types.js +0 -1
  155. package/modern/RichTreeView/index.d.ts +0 -5
  156. package/modern/RichTreeView/index.js +0 -3
  157. package/modern/RichTreeView/richTreeViewClasses.d.ts +0 -5
  158. package/modern/RichTreeView/richTreeViewClasses.js +0 -6
  159. package/modern/SimpleTreeView/SimpleTreeView.d.ts +0 -20
  160. package/modern/SimpleTreeView/SimpleTreeView.js +0 -265
  161. package/modern/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -12
  162. package/modern/SimpleTreeView/SimpleTreeView.plugins.js +0 -10
  163. package/modern/SimpleTreeView/SimpleTreeView.types.d.ts +0 -51
  164. package/modern/SimpleTreeView/SimpleTreeView.types.js +0 -1
  165. package/modern/SimpleTreeView/index.d.ts +0 -3
  166. package/modern/SimpleTreeView/index.js +0 -3
  167. package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +0 -5
  168. package/modern/SimpleTreeView/simpleTreeViewClasses.js +0 -6
  169. package/modern/TreeItem/TreeItem.d.ts +0 -33
  170. package/modern/TreeItem/TreeItem.js +0 -408
  171. package/modern/TreeItem/TreeItem.types.d.ts +0 -107
  172. package/modern/TreeItem/TreeItem.types.js +0 -1
  173. package/modern/TreeItem/index.d.ts +0 -4
  174. package/modern/TreeItem/index.js +0 -2
  175. package/modern/TreeItem/treeItemClasses.d.ts +0 -55
  176. package/modern/TreeItem/treeItemClasses.js +0 -8
  177. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +0 -7
  178. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -74
  179. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +0 -6
  180. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js +0 -1
  181. package/modern/TreeItemDragAndDropOverlay/index.d.ts +0 -2
  182. package/modern/TreeItemDragAndDropOverlay/index.js +0 -1
  183. package/modern/TreeItemIcon/TreeItemIcon.d.ts +0 -7
  184. package/modern/TreeItemIcon/TreeItemIcon.js +0 -74
  185. package/modern/TreeItemIcon/TreeItemIcon.types.d.ts +0 -40
  186. package/modern/TreeItemIcon/TreeItemIcon.types.js +0 -1
  187. package/modern/TreeItemIcon/index.d.ts +0 -2
  188. package/modern/TreeItemIcon/index.js +0 -1
  189. package/modern/TreeItemLabelInput/TreeItemLabelInput.d.ts +0 -5
  190. package/modern/TreeItemLabelInput/TreeItemLabelInput.js +0 -24
  191. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +0 -14
  192. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.js +0 -1
  193. package/modern/TreeItemLabelInput/index.d.ts +0 -2
  194. package/modern/TreeItemLabelInput/index.js +0 -1
  195. package/modern/TreeItemProvider/TreeItemProvider.d.ts +0 -7
  196. package/modern/TreeItemProvider/TreeItemProvider.js +0 -45
  197. package/modern/TreeItemProvider/TreeItemProvider.types.d.ts +0 -7
  198. package/modern/TreeItemProvider/TreeItemProvider.types.js +0 -1
  199. package/modern/TreeItemProvider/index.d.ts +0 -2
  200. package/modern/TreeItemProvider/index.js +0 -1
  201. package/modern/hooks/index.d.ts +0 -3
  202. package/modern/hooks/index.js +0 -3
  203. package/modern/hooks/useTreeItemModel.d.ts +0 -2
  204. package/modern/hooks/useTreeItemModel.js +0 -11
  205. package/modern/hooks/useTreeItemUtils/index.d.ts +0 -1
  206. package/modern/hooks/useTreeItemUtils/index.js +0 -1
  207. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +0 -42
  208. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +0 -165
  209. package/modern/hooks/useTreeViewApiRef.d.ts +0 -7
  210. package/modern/hooks/useTreeViewApiRef.js +0 -7
  211. package/modern/icons/icons.d.ts +0 -6
  212. package/modern/icons/icons.js +0 -9
  213. package/modern/icons/index.d.ts +0 -1
  214. package/modern/icons/index.js +0 -1
  215. package/modern/index.d.ts +0 -12
  216. package/modern/index.js +0 -22
  217. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +0 -5
  218. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js +0 -5
  219. package/modern/internals/TreeViewItemDepthContext/index.d.ts +0 -1
  220. package/modern/internals/TreeViewItemDepthContext/index.js +0 -1
  221. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +0 -17
  222. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +0 -49
  223. package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +0 -8
  224. package/modern/internals/TreeViewProvider/TreeViewContext.js +0 -15
  225. package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +0 -9
  226. package/modern/internals/TreeViewProvider/TreeViewProvider.js +0 -32
  227. package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +0 -21
  228. package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
  229. package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +0 -33
  230. package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +0 -13
  231. package/modern/internals/TreeViewProvider/index.d.ts +0 -3
  232. package/modern/internals/TreeViewProvider/index.js +0 -2
  233. package/modern/internals/components/RichTreeViewItems.d.ts +0 -32
  234. package/modern/internals/components/RichTreeViewItems.js +0 -68
  235. package/modern/internals/corePlugins/corePlugins.d.ts +0 -9
  236. package/modern/internals/corePlugins/corePlugins.js +0 -8
  237. package/modern/internals/corePlugins/index.d.ts +0 -2
  238. package/modern/internals/corePlugins/index.js +0 -1
  239. package/modern/internals/corePlugins/useTreeViewId/index.d.ts +0 -2
  240. package/modern/internals/corePlugins/useTreeViewId/index.js +0 -1
  241. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  242. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -39
  243. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -36
  244. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  245. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  246. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.js +0 -1
  247. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  248. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  249. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  250. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  251. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  252. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -29
  253. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  254. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
  255. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  256. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  257. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  258. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  259. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  260. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +0 -1
  261. package/modern/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  262. package/modern/internals/hooks/useInstanceEventHandler.js +0 -77
  263. package/modern/internals/hooks/useLazyRef.d.ts +0 -1
  264. package/modern/internals/hooks/useLazyRef.js +0 -1
  265. package/modern/internals/hooks/useOnMount.d.ts +0 -1
  266. package/modern/internals/hooks/useOnMount.js +0 -1
  267. package/modern/internals/hooks/useSelector.d.ts +0 -4
  268. package/modern/internals/hooks/useSelector.js +0 -9
  269. package/modern/internals/hooks/useTimeout.d.ts +0 -1
  270. package/modern/internals/hooks/useTimeout.js +0 -1
  271. package/modern/internals/index.d.ts +0 -34
  272. package/modern/internals/index.js +0 -24
  273. package/modern/internals/models/events.d.ts +0 -9
  274. package/modern/internals/models/events.js +0 -1
  275. package/modern/internals/models/helpers.d.ts +0 -7
  276. package/modern/internals/models/helpers.js +0 -1
  277. package/modern/internals/models/index.d.ts +0 -4
  278. package/modern/internals/models/index.js +0 -4
  279. package/modern/internals/models/itemPlugin.d.ts +0 -43
  280. package/modern/internals/models/itemPlugin.js +0 -1
  281. package/modern/internals/models/plugin.d.ts +0 -151
  282. package/modern/internals/models/plugin.js +0 -1
  283. package/modern/internals/models/treeView.d.ts +0 -32
  284. package/modern/internals/models/treeView.js +0 -1
  285. package/modern/internals/plugins/useTreeViewExpansion/index.d.ts +0 -2
  286. package/modern/internals/plugins/useTreeViewExpansion/index.js +0 -1
  287. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  288. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -134
  289. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -184
  290. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +0 -24
  291. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -102
  292. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  293. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -7
  294. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -19
  295. package/modern/internals/plugins/useTreeViewFocus/index.d.ts +0 -2
  296. package/modern/internals/plugins/useTreeViewFocus/index.js +0 -1
  297. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  298. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -135
  299. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -182
  300. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +0 -34
  301. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  302. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  303. package/modern/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  304. package/modern/internals/plugins/useTreeViewIcons/index.js +0 -1
  305. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  306. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  307. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  308. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  309. package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  310. package/modern/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  311. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  312. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  313. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  314. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  315. package/modern/internals/plugins/useTreeViewItems/index.d.ts +0 -3
  316. package/modern/internals/plugins/useTreeViewItems/index.js +0 -2
  317. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  318. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -325
  319. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -1058
  320. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -113
  321. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -205
  322. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  323. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -4
  324. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +0 -8
  325. package/modern/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  326. package/modern/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  327. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  328. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -183
  329. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +0 -35
  330. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  331. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  332. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  333. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  334. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -273
  335. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -30
  336. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  337. package/modern/internals/plugins/useTreeViewLabel/index.d.ts +0 -2
  338. package/modern/internals/plugins/useTreeViewLabel/index.js +0 -1
  339. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  340. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
  341. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +0 -72
  342. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -73
  343. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -68
  344. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +0 -24
  345. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -60
  346. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  347. package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -1
  348. package/modern/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  349. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -247
  350. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -27
  351. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -82
  352. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  353. package/modern/internals/plugins/useTreeViewSelection/index.d.ts +0 -2
  354. package/modern/internals/plugins/useTreeViewSelection/index.js +0 -1
  355. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  356. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
  357. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +0 -80
  358. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -234
  359. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -363
  360. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +0 -46
  361. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -145
  362. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  363. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -38
  364. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -126
  365. package/modern/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -22
  366. package/modern/internals/useTreeView/extractPluginParamsFromProps.js +0 -46
  367. package/modern/internals/useTreeView/index.d.ts +0 -1
  368. package/modern/internals/useTreeView/index.js +0 -1
  369. package/modern/internals/useTreeView/useTreeView.d.ts +0 -9
  370. package/modern/internals/useTreeView/useTreeView.js +0 -114
  371. package/modern/internals/useTreeView/useTreeView.types.d.ts +0 -23
  372. package/modern/internals/useTreeView/useTreeView.types.js +0 -1
  373. package/modern/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -18
  374. package/modern/internals/useTreeView/useTreeViewBuildContext.js +0 -101
  375. package/modern/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  376. package/modern/internals/useTreeView/useTreeViewModels.js +0 -62
  377. package/modern/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  378. package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
  379. package/modern/internals/utils/TreeViewStore.d.ts +0 -12
  380. package/modern/internals/utils/TreeViewStore.js +0 -24
  381. package/modern/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  382. package/modern/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  383. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  384. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -18
  385. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  386. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  387. package/modern/internals/utils/plugins.d.ts +0 -2
  388. package/modern/internals/utils/plugins.js +0 -4
  389. package/modern/internals/utils/publishTreeViewEvent.d.ts +0 -5
  390. package/modern/internals/utils/publishTreeViewEvent.js +0 -3
  391. package/modern/internals/utils/selectors.d.ts +0 -16
  392. package/modern/internals/utils/selectors.js +0 -46
  393. package/modern/internals/utils/tree.d.ts +0 -32
  394. package/modern/internals/utils/tree.js +0 -203
  395. package/modern/internals/utils/utils.d.ts +0 -2
  396. package/modern/internals/utils/utils.js +0 -17
  397. package/modern/internals/zero-styled/index.d.ts +0 -3
  398. package/modern/internals/zero-styled/index.js +0 -7
  399. package/modern/models/events.d.ts +0 -4
  400. package/modern/models/events.js +0 -1
  401. package/modern/models/index.d.ts +0 -3
  402. package/modern/models/index.js +0 -5
  403. package/modern/models/items.d.ts +0 -13
  404. package/modern/models/items.js +0 -1
  405. package/modern/package.json +0 -1
  406. package/modern/themeAugmentation/components.d.ts +0 -21
  407. package/modern/themeAugmentation/index.d.ts +0 -3
  408. package/modern/themeAugmentation/index.js +0 -0
  409. package/modern/themeAugmentation/overrides.d.ts +0 -16
  410. package/modern/themeAugmentation/props.d.ts +0 -14
  411. package/modern/useTreeItem/index.d.ts +0 -2
  412. package/modern/useTreeItem/index.js +0 -1
  413. package/modern/useTreeItem/useTreeItem.d.ts +0 -2
  414. package/modern/useTreeItem/useTreeItem.js +0 -282
  415. package/modern/useTreeItem/useTreeItem.types.d.ts +0 -201
  416. package/modern/useTreeItem/useTreeItem.types.js +0 -1
  417. package/modern/utils/cache.d.ts +0 -38
  418. package/modern/utils/cache.js +0 -31
  419. package/modern/utils/index.d.ts +0 -1
  420. package/modern/utils/index.js +0 -1
  421. 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">;