@mui/x-tree-view 8.22.0 → 8.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/RichTreeView/RichTreeView.d.ts +1 -1
  3. package/RichTreeView/RichTreeView.js +41 -28
  4. package/RichTreeView/RichTreeView.types.d.ts +6 -4
  5. package/RichTreeView/index.d.ts +1 -3
  6. package/RichTreeView/index.js +1 -13
  7. package/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  8. package/RichTreeView/useExtractRichTreeViewParameters.js +91 -0
  9. package/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  10. package/SimpleTreeView/SimpleTreeView.js +30 -24
  11. package/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  12. package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  13. package/SimpleTreeView/useExtractSimpleTreeViewParameters.js +78 -0
  14. package/TreeItem/TreeItem.d.ts +1 -1
  15. package/TreeItem/TreeItem.js +9 -2
  16. package/TreeItemProvider/TreeItemProvider.js +3 -10
  17. package/esm/RichTreeView/RichTreeView.d.ts +1 -1
  18. package/esm/RichTreeView/RichTreeView.js +40 -27
  19. package/esm/RichTreeView/RichTreeView.types.d.ts +6 -4
  20. package/esm/RichTreeView/index.d.ts +1 -3
  21. package/esm/RichTreeView/index.js +1 -1
  22. package/esm/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  23. package/esm/RichTreeView/useExtractRichTreeViewParameters.js +83 -0
  24. package/esm/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  25. package/esm/SimpleTreeView/SimpleTreeView.js +29 -23
  26. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  27. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  28. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +70 -0
  29. package/esm/TreeItem/TreeItem.d.ts +1 -1
  30. package/esm/TreeItem/TreeItem.js +9 -2
  31. package/esm/TreeItemProvider/TreeItemProvider.js +3 -10
  32. package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
  33. package/esm/hooks/useRichTreeViewApiRef.d.ts +2 -2
  34. package/esm/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  35. package/esm/hooks/useTreeItemModel.d.ts +2 -2
  36. package/esm/hooks/useTreeItemModel.js +1 -1
  37. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  38. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +26 -35
  39. package/esm/hooks/useTreeViewApiRef.d.ts +3 -5
  40. package/esm/hooks/useTreeViewApiRef.js +4 -3
  41. package/esm/index.d.ts +0 -1
  42. package/esm/index.js +1 -2
  43. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  44. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +126 -0
  45. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  46. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  47. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +49 -0
  48. package/esm/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  49. package/esm/internals/MinimalTreeViewStore/TimeoutManager.js +39 -0
  50. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  51. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +16 -0
  52. package/esm/internals/MinimalTreeViewStore/index.d.ts +2 -0
  53. package/esm/internals/MinimalTreeViewStore/index.js +2 -0
  54. package/esm/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  55. package/esm/internals/RichTreeViewStore/RichTreeViewStore.js +21 -0
  56. package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  57. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  58. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +15 -0
  59. package/esm/internals/RichTreeViewStore/index.d.ts +3 -0
  60. package/esm/internals/RichTreeViewStore/index.js +3 -0
  61. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  62. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +18 -0
  63. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  64. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  65. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +5 -0
  66. package/esm/internals/SimpleTreeViewStore/index.d.ts +2 -0
  67. package/esm/internals/SimpleTreeViewStore/index.js +2 -0
  68. package/esm/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  69. package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -3
  70. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  71. package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  72. package/esm/internals/TreeViewProvider/TreeViewProvider.js +11 -6
  73. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  74. package/esm/internals/TreeViewProvider/index.d.ts +1 -1
  75. package/esm/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  76. package/esm/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  77. package/esm/internals/components/RichTreeViewItems.js +3 -3
  78. package/esm/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  79. package/esm/internals/hooks/useTreeViewRootProps.js +30 -0
  80. package/esm/internals/hooks/useTreeViewStore.d.ts +10 -0
  81. package/esm/internals/hooks/useTreeViewStore.js +19 -0
  82. package/esm/internals/index.d.ts +15 -21
  83. package/esm/internals/index.js +11 -14
  84. package/esm/internals/models/events.d.ts +24 -3
  85. package/esm/internals/models/index.d.ts +2 -3
  86. package/esm/internals/models/index.js +2 -3
  87. package/esm/internals/models/itemPlugin.d.ts +9 -0
  88. package/esm/internals/models/treeView.d.ts +6 -9
  89. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  90. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.js +124 -0
  91. package/esm/internals/plugins/expansion/index.d.ts +2 -0
  92. package/esm/internals/plugins/expansion/index.js +2 -0
  93. package/esm/internals/plugins/expansion/selectors.d.ts +27 -0
  94. package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +5 -5
  95. package/esm/internals/plugins/expansion/utils.d.ts +5 -0
  96. package/esm/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  97. package/esm/internals/plugins/focus/TreeViewFocusPlugin.js +107 -0
  98. package/esm/internals/plugins/focus/index.d.ts +2 -0
  99. package/esm/internals/plugins/focus/index.js +2 -0
  100. package/esm/internals/plugins/focus/selectors.d.ts +21 -0
  101. package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +6 -6
  102. package/esm/internals/plugins/id/index.d.ts +1 -0
  103. package/esm/internals/plugins/id/index.js +1 -0
  104. package/esm/internals/plugins/id/selectors.d.ts +13 -0
  105. package/esm/internals/plugins/id/selectors.js +18 -0
  106. package/esm/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  107. package/esm/internals/plugins/items/TreeViewItemsPlugin.js +223 -0
  108. package/esm/internals/plugins/items/index.d.ts +3 -0
  109. package/esm/internals/plugins/items/index.js +3 -0
  110. package/esm/internals/plugins/items/selectors.d.ts +60 -0
  111. package/esm/internals/plugins/items/selectors.js +64 -0
  112. package/esm/internals/plugins/items/utils.d.ts +43 -0
  113. package/esm/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -49
  114. package/esm/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  115. package/esm/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +81 -0
  116. package/esm/internals/plugins/jsxItems/index.d.ts +1 -0
  117. package/esm/internals/plugins/jsxItems/index.js +1 -0
  118. package/esm/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  119. package/esm/internals/plugins/jsxItems/itemPlugin.js +88 -0
  120. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  121. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +306 -0
  122. package/esm/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  123. package/esm/internals/plugins/keyboardNavigation/index.js +1 -0
  124. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  125. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +50 -0
  126. package/esm/internals/plugins/labelEditing/index.d.ts +2 -0
  127. package/esm/internals/plugins/labelEditing/index.js +2 -0
  128. package/{internals/plugins/useTreeViewLabel → esm/internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  129. package/esm/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +2 -2
  130. package/esm/internals/plugins/labelEditing/selectors.d.ts +15 -0
  131. package/esm/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  132. package/esm/internals/plugins/lazyLoading/index.d.ts +2 -0
  133. package/esm/internals/plugins/lazyLoading/index.js +2 -0
  134. package/esm/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  135. package/esm/internals/plugins/lazyLoading/selectors.js +25 -0
  136. package/esm/internals/plugins/lazyLoading/types.d.ts +5 -0
  137. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  138. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.js +319 -0
  139. package/esm/internals/plugins/selection/index.d.ts +2 -0
  140. package/esm/internals/plugins/selection/index.js +2 -0
  141. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  142. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +8 -8
  143. package/esm/internals/plugins/selection/selectors.d.ts +48 -0
  144. package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +19 -9
  145. package/esm/internals/utils/tree.d.ts +8 -10
  146. package/esm/internals/utils/tree.js +2 -2
  147. package/esm/models/items.d.ts +5 -2
  148. package/esm/useTreeItem/useTreeItem.d.ts +18 -2
  149. package/esm/useTreeItem/useTreeItem.js +15 -19
  150. package/esm/useTreeItem/useTreeItem.types.d.ts +9 -19
  151. package/hooks/useApplyPropagationToSelectedItemsOnMount.js +3 -3
  152. package/hooks/useRichTreeViewApiRef.d.ts +2 -2
  153. package/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  154. package/hooks/useTreeItemModel.d.ts +2 -2
  155. package/hooks/useTreeItemModel.js +2 -2
  156. package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  157. package/hooks/useTreeItemUtils/useTreeItemUtils.js +41 -49
  158. package/hooks/useTreeViewApiRef.d.ts +3 -5
  159. package/hooks/useTreeViewApiRef.js +3 -5
  160. package/index.d.ts +0 -1
  161. package/index.js +1 -22
  162. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  163. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +134 -0
  164. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  165. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  166. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +58 -0
  167. package/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  168. package/internals/MinimalTreeViewStore/TimeoutManager.js +46 -0
  169. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  170. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +23 -0
  171. package/internals/MinimalTreeViewStore/index.d.ts +2 -0
  172. package/internals/MinimalTreeViewStore/index.js +27 -0
  173. package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  174. package/internals/RichTreeViewStore/RichTreeViewStore.js +30 -0
  175. package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  176. package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  177. package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +22 -0
  178. package/internals/RichTreeViewStore/index.d.ts +3 -0
  179. package/internals/RichTreeViewStore/index.js +38 -0
  180. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  181. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +26 -0
  182. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  183. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  184. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +11 -0
  185. package/internals/SimpleTreeViewStore/index.d.ts +2 -0
  186. package/internals/SimpleTreeViewStore/index.js +27 -0
  187. package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  188. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +3 -4
  189. package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  190. package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  191. package/internals/TreeViewProvider/TreeViewProvider.js +14 -9
  192. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  193. package/internals/TreeViewProvider/index.d.ts +1 -1
  194. package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  195. package/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  196. package/internals/components/RichTreeViewItems.js +9 -9
  197. package/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  198. package/internals/hooks/useTreeViewRootProps.js +36 -0
  199. package/internals/hooks/useTreeViewStore.d.ts +10 -0
  200. package/internals/hooks/useTreeViewStore.js +26 -0
  201. package/internals/index.d.ts +15 -21
  202. package/internals/index.js +40 -70
  203. package/internals/models/events.d.ts +24 -3
  204. package/internals/models/index.d.ts +2 -3
  205. package/internals/models/index.js +11 -22
  206. package/internals/models/itemPlugin.d.ts +9 -0
  207. package/internals/models/treeView.d.ts +6 -9
  208. package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  209. package/internals/plugins/expansion/TreeViewExpansionPlugin.js +132 -0
  210. package/internals/plugins/expansion/index.d.ts +2 -0
  211. package/internals/plugins/expansion/index.js +27 -0
  212. package/internals/plugins/expansion/selectors.d.ts +27 -0
  213. package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +8 -8
  214. package/internals/plugins/expansion/utils.d.ts +5 -0
  215. package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  216. package/internals/plugins/focus/TreeViewFocusPlugin.js +114 -0
  217. package/internals/plugins/focus/index.d.ts +2 -0
  218. package/internals/plugins/focus/index.js +27 -0
  219. package/internals/plugins/focus/selectors.d.ts +21 -0
  220. package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +9 -9
  221. package/internals/plugins/id/index.d.ts +1 -0
  222. package/internals/plugins/id/index.js +16 -0
  223. package/internals/plugins/id/selectors.d.ts +13 -0
  224. package/internals/plugins/id/selectors.js +24 -0
  225. package/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  226. package/internals/plugins/items/TreeViewItemsPlugin.js +231 -0
  227. package/internals/plugins/items/index.d.ts +3 -0
  228. package/internals/plugins/items/index.js +46 -0
  229. package/internals/plugins/items/selectors.d.ts +60 -0
  230. package/internals/plugins/{useTreeViewItems/useTreeViewItems.selectors.js → items/selectors.js} +18 -14
  231. package/internals/plugins/items/utils.d.ts +43 -0
  232. package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -50
  233. package/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  234. package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +89 -0
  235. package/internals/plugins/jsxItems/index.d.ts +1 -0
  236. package/internals/plugins/jsxItems/index.js +16 -0
  237. package/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  238. package/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +35 -20
  239. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  240. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +313 -0
  241. package/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  242. package/internals/plugins/keyboardNavigation/index.js +16 -0
  243. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  244. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +58 -0
  245. package/internals/plugins/labelEditing/index.d.ts +2 -0
  246. package/internals/plugins/labelEditing/index.js +27 -0
  247. package/{esm/internals/plugins/useTreeViewLabel → internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  248. package/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +6 -6
  249. package/internals/plugins/labelEditing/selectors.d.ts +15 -0
  250. package/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  251. package/internals/plugins/lazyLoading/index.d.ts +2 -0
  252. package/internals/plugins/lazyLoading/index.js +27 -0
  253. package/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  254. package/internals/plugins/{useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js → lazyLoading/selectors.js} +11 -6
  255. package/internals/plugins/lazyLoading/types.d.ts +5 -0
  256. package/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  257. package/internals/plugins/selection/TreeViewSelectionPlugin.js +327 -0
  258. package/internals/plugins/selection/index.d.ts +2 -0
  259. package/internals/plugins/selection/index.js +27 -0
  260. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  261. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +16 -16
  262. package/internals/plugins/selection/selectors.d.ts +48 -0
  263. package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +19 -9
  264. package/internals/utils/tree.d.ts +8 -10
  265. package/internals/utils/tree.js +33 -33
  266. package/models/items.d.ts +5 -2
  267. package/package.json +3 -3
  268. package/useTreeItem/useTreeItem.d.ts +18 -2
  269. package/useTreeItem/useTreeItem.js +19 -24
  270. package/useTreeItem/useTreeItem.types.d.ts +9 -19
  271. package/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  272. package/RichTreeView/RichTreeView.plugins.js +0 -15
  273. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  274. package/SimpleTreeView/SimpleTreeView.plugins.js +0 -15
  275. package/esm/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  276. package/esm/RichTreeView/RichTreeView.plugins.js +0 -9
  277. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  278. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +0 -9
  279. package/esm/internals/corePlugins/corePlugins.d.ts +0 -9
  280. package/esm/internals/corePlugins/corePlugins.js +0 -8
  281. package/esm/internals/corePlugins/index.d.ts +0 -2
  282. package/esm/internals/corePlugins/index.js +0 -1
  283. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  284. package/esm/internals/corePlugins/useTreeViewId/index.js +0 -2
  285. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  286. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -38
  287. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  288. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  289. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  290. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  291. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  292. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  293. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  294. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  295. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -31
  296. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  297. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  298. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  299. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  300. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  301. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  302. package/esm/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  303. package/esm/internals/hooks/useInstanceEventHandler.js +0 -79
  304. package/esm/internals/models/helpers.d.ts +0 -7
  305. package/esm/internals/models/plugin.d.ts +0 -166
  306. package/esm/internals/models/plugin.js +0 -1
  307. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  308. package/esm/internals/plugins/useTreeViewExpansion/index.js +0 -2
  309. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  310. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -149
  311. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  312. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  313. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  314. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  315. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  316. package/esm/internals/plugins/useTreeViewFocus/index.js +0 -2
  317. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  318. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -113
  319. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  320. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  321. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  322. package/esm/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  323. package/esm/internals/plugins/useTreeViewItems/index.js +0 -3
  324. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  325. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -218
  326. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -56
  327. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -60
  328. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -197
  329. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  330. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  331. package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  332. package/esm/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  333. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  334. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.js +0 -74
  335. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  336. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -104
  337. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  338. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  339. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  340. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  341. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -305
  342. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  343. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  344. package/esm/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  345. package/esm/internals/plugins/useTreeViewLabel/index.js +0 -2
  346. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  347. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -70
  348. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  349. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  350. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  351. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  352. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  353. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  354. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -20
  355. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  356. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  357. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  358. package/esm/internals/plugins/useTreeViewSelection/index.js +0 -2
  359. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  360. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -230
  361. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -40
  362. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  363. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  364. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  365. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -107
  366. package/esm/internals/useTreeView/index.d.ts +0 -1
  367. package/esm/internals/useTreeView/index.js +0 -1
  368. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  369. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -51
  370. package/esm/internals/useTreeView/useTreeView.d.ts +0 -18
  371. package/esm/internals/useTreeView/useTreeView.js +0 -102
  372. package/esm/internals/useTreeView/useTreeView.types.d.ts +0 -20
  373. package/esm/internals/useTreeView/useTreeView.types.js +0 -1
  374. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  375. package/esm/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  376. package/esm/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  377. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  378. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -14
  379. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  380. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  381. package/esm/internals/utils/plugins.d.ts +0 -2
  382. package/esm/internals/utils/plugins.js +0 -4
  383. package/esm/internals/utils/publishTreeViewEvent.d.ts +0 -5
  384. package/esm/internals/utils/publishTreeViewEvent.js +0 -3
  385. package/internals/corePlugins/corePlugins.d.ts +0 -9
  386. package/internals/corePlugins/corePlugins.js +0 -14
  387. package/internals/corePlugins/index.d.ts +0 -2
  388. package/internals/corePlugins/index.js +0 -12
  389. package/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  390. package/internals/corePlugins/useTreeViewId/index.js +0 -19
  391. package/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  392. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -46
  393. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  394. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -15
  395. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  396. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  397. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -34
  398. package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  399. package/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -12
  400. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  401. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -38
  402. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  403. package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  404. package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -12
  405. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  406. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -19
  407. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  408. package/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  409. package/internals/hooks/useInstanceEventHandler.js +0 -87
  410. package/internals/models/helpers.d.ts +0 -7
  411. package/internals/models/plugin.d.ts +0 -166
  412. package/internals/models/plugin.js +0 -5
  413. package/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  414. package/internals/plugins/useTreeViewExpansion/index.js +0 -19
  415. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  416. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -157
  417. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  418. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  419. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -5
  420. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  421. package/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  422. package/internals/plugins/useTreeViewFocus/index.js +0 -19
  423. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  424. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -121
  425. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  426. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  427. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -5
  428. package/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  429. package/internals/plugins/useTreeViewItems/index.js +0 -32
  430. package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  431. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -226
  432. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -56
  433. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -197
  434. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -5
  435. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  436. package/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  437. package/internals/plugins/useTreeViewJSXItems/index.js +0 -12
  438. package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  439. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  440. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -112
  441. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -5
  442. package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  443. package/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -12
  444. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  445. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -312
  446. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  447. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -5
  448. package/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  449. package/internals/plugins/useTreeViewLabel/index.js +0 -19
  450. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  451. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -78
  452. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  453. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  454. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -5
  455. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  456. package/internals/plugins/useTreeViewLazyLoading/index.js +0 -12
  457. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  458. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  459. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -5
  460. package/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  461. package/internals/plugins/useTreeViewSelection/index.js +0 -19
  462. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  463. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -239
  464. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -40
  465. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  466. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -5
  467. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  468. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -116
  469. package/internals/useTreeView/index.d.ts +0 -1
  470. package/internals/useTreeView/index.js +0 -12
  471. package/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  472. package/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -60
  473. package/internals/useTreeView/useTreeView.d.ts +0 -18
  474. package/internals/useTreeView/useTreeView.js +0 -112
  475. package/internals/useTreeView/useTreeView.types.d.ts +0 -20
  476. package/internals/useTreeView/useTreeView.types.js +0 -5
  477. package/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  478. package/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  479. package/internals/utils/cleanupTracking/CleanupTracking.js +0 -5
  480. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  481. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -21
  482. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  483. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -45
  484. package/internals/utils/plugins.d.ts +0 -2
  485. package/internals/utils/plugins.js +0 -11
  486. package/internals/utils/publishTreeViewEvent.d.ts +0 -5
  487. package/internals/utils/publishTreeViewEvent.js +0 -10
  488. /package/esm/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  489. /package/esm/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  490. /package/esm/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  491. /package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  492. /package/esm/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
  493. /package/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  494. /package/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  495. /package/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  496. /package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  497. /package/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
@@ -1,218 +0,0 @@
1
- 'use client';
2
-
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
- import * as React from 'react';
5
- import { useEventCallback } from '@base-ui-components/utils/useEventCallback';
6
- import { buildItemsLookups, buildItemsState, TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
7
- import { TreeViewItemDepthContext } from "../../TreeViewItemDepthContext/index.js";
8
- import { itemsSelectors } from "./useTreeViewItems.selectors.js";
9
- import { idSelectors } from "../../corePlugins/useTreeViewId/index.js";
10
- import { generateTreeItemIdAttribute } from "../../corePlugins/useTreeViewId/useTreeViewId.utils.js";
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- export const useTreeViewItems = ({
13
- instance,
14
- params,
15
- store
16
- }) => {
17
- const itemsConfig = React.useMemo(() => ({
18
- isItemDisabled: params.isItemDisabled,
19
- getItemLabel: params.getItemLabel,
20
- getItemChildren: params.getItemChildren,
21
- getItemId: params.getItemId
22
- }), [params.isItemDisabled, params.getItemLabel, params.getItemChildren, params.getItemId]);
23
- const getItem = React.useCallback(itemId => itemsSelectors.itemModel(store.state, itemId), [store]);
24
- const getParentId = React.useCallback(itemId => {
25
- const itemMeta = itemsSelectors.itemMeta(store.state, itemId);
26
- return itemMeta?.parentId || null;
27
- }, [store]);
28
- const setIsItemDisabled = useEventCallback(({
29
- itemId,
30
- shouldBeDisabled
31
- }) => {
32
- if (!store.state.items.itemMetaLookup[itemId]) {
33
- return;
34
- }
35
- const itemMetaLookup = _extends({}, store.state.items.itemMetaLookup);
36
- itemMetaLookup[itemId] = _extends({}, itemMetaLookup[itemId], {
37
- disabled: shouldBeDisabled ?? !itemMetaLookup[itemId].disabled
38
- });
39
- store.set('items', _extends({}, store.state.items, {
40
- itemMetaLookup
41
- }));
42
- });
43
- const getItemTree = React.useCallback(() => {
44
- const getItemFromItemId = itemId => {
45
- const item = itemsSelectors.itemModel(store.state, itemId);
46
- const itemToMutate = _extends({}, item);
47
- const newChildren = itemsSelectors.itemOrderedChildrenIds(store.state, itemId);
48
- if (newChildren.length > 0) {
49
- itemToMutate.children = newChildren.map(getItemFromItemId);
50
- } else {
51
- delete itemToMutate.children;
52
- }
53
- return itemToMutate;
54
- };
55
- return itemsSelectors.itemOrderedChildrenIds(store.state, null).map(getItemFromItemId);
56
- }, [store]);
57
- const getItemOrderedChildrenIds = React.useCallback(itemId => itemsSelectors.itemOrderedChildrenIds(store.state, itemId), [store]);
58
- const getItemDOMElement = itemId => {
59
- const itemMeta = itemsSelectors.itemMeta(store.state, itemId);
60
- if (itemMeta == null) {
61
- return null;
62
- }
63
- const idAttribute = generateTreeItemIdAttribute({
64
- treeId: idSelectors.treeId(store.state),
65
- itemId,
66
- id: itemMeta.idAttribute
67
- });
68
- return document.getElementById(idAttribute);
69
- };
70
- const areItemUpdatesPreventedRef = React.useRef(false);
71
- const preventItemUpdates = React.useCallback(() => {
72
- areItemUpdatesPreventedRef.current = true;
73
- }, []);
74
- const areItemUpdatesPrevented = React.useCallback(() => areItemUpdatesPreventedRef.current, []);
75
- const setItemChildren = ({
76
- items,
77
- parentId,
78
- getChildrenCount
79
- }) => {
80
- const parentIdWithDefault = parentId ?? TREE_VIEW_ROOT_PARENT_ID;
81
- const parentDepth = parentId == null ? -1 : itemsSelectors.itemDepth(store.state, parentId);
82
- const {
83
- metaLookup,
84
- modelLookup,
85
- orderedChildrenIds,
86
- childrenIndexes
87
- } = buildItemsLookups({
88
- config: itemsConfig,
89
- items,
90
- parentId,
91
- depth: parentDepth + 1,
92
- isItemExpandable: getChildrenCount ? item => getChildrenCount(item) > 0 : () => false,
93
- otherItemsMetaLookup: itemsSelectors.itemMetaLookup(store.state)
94
- });
95
- const lookups = {
96
- itemModelLookup: _extends({}, store.state.items.itemModelLookup, modelLookup),
97
- itemMetaLookup: _extends({}, store.state.items.itemMetaLookup, metaLookup),
98
- itemOrderedChildrenIdsLookup: _extends({}, store.state.items.itemOrderedChildrenIdsLookup, {
99
- [parentIdWithDefault]: orderedChildrenIds
100
- }),
101
- itemChildrenIndexesLookup: _extends({}, store.state.items.itemChildrenIndexesLookup, {
102
- [parentIdWithDefault]: childrenIndexes
103
- })
104
- };
105
- store.set('items', _extends({}, store.state.items, lookups));
106
- };
107
- const removeChildren = useEventCallback(parentId => {
108
- const newMetaMap = Object.keys(store.state.items.itemMetaLookup).reduce((acc, key) => {
109
- const item = store.state.items.itemMetaLookup[key];
110
- if (item.parentId === parentId) {
111
- return acc;
112
- }
113
- return _extends({}, acc, {
114
- [item.id]: item
115
- });
116
- }, {});
117
- const newItemOrderedChildrenIdsLookup = _extends({}, store.state.items.itemOrderedChildrenIdsLookup);
118
- const newItemChildrenIndexesLookup = _extends({}, store.state.items.itemChildrenIndexesLookup);
119
- const cleanId = parentId ?? TREE_VIEW_ROOT_PARENT_ID;
120
- delete newItemChildrenIndexesLookup[cleanId];
121
- delete newItemOrderedChildrenIdsLookup[cleanId];
122
- store.set('items', _extends({}, store.state.items, {
123
- itemMetaLookup: newMetaMap,
124
- itemOrderedChildrenIdsLookup: newItemOrderedChildrenIdsLookup,
125
- itemChildrenIndexesLookup: newItemChildrenIndexesLookup
126
- }));
127
- });
128
- const addExpandableItems = useEventCallback(items => {
129
- const newItemMetaLookup = _extends({}, store.state.items.itemMetaLookup);
130
- for (const itemId of items) {
131
- newItemMetaLookup[itemId] = _extends({}, newItemMetaLookup[itemId], {
132
- expandable: true
133
- });
134
- }
135
- store.set('items', _extends({}, store.state.items, {
136
- itemMetaLookup: newItemMetaLookup
137
- }));
138
- });
139
- React.useEffect(() => {
140
- if (instance.areItemUpdatesPrevented()) {
141
- return;
142
- }
143
- const newState = buildItemsState({
144
- disabledItemsFocusable: params.disabledItemsFocusable,
145
- items: params.items,
146
- config: itemsConfig
147
- });
148
- store.set('items', _extends({}, store.state.items, newState));
149
- }, [instance, store, params.items, params.disabledItemsFocusable, itemsConfig]);
150
-
151
- // Wrap `props.onItemClick` with `useEventCallback` to prevent unneeded context updates.
152
- const handleItemClick = useEventCallback((event, itemId) => {
153
- if (params.onItemClick) {
154
- params.onItemClick(event, itemId);
155
- }
156
- });
157
- return {
158
- getRootProps: () => ({
159
- style: {
160
- '--TreeView-itemChildrenIndentation': typeof params.itemChildrenIndentation === 'number' ? `${params.itemChildrenIndentation}px` : params.itemChildrenIndentation
161
- }
162
- }),
163
- publicAPI: {
164
- getItem,
165
- getItemDOMElement,
166
- getItemTree,
167
- getItemOrderedChildrenIds,
168
- setIsItemDisabled,
169
- getParentId
170
- },
171
- instance: {
172
- getItemDOMElement,
173
- preventItemUpdates,
174
- areItemUpdatesPrevented,
175
- setItemChildren,
176
- removeChildren,
177
- addExpandableItems,
178
- handleItemClick
179
- }
180
- };
181
- };
182
- useTreeViewItems.getInitialState = params => ({
183
- items: buildItemsState({
184
- items: params.items,
185
- disabledItemsFocusable: params.disabledItemsFocusable,
186
- config: {
187
- isItemDisabled: params.isItemDisabled,
188
- getItemId: params.getItemId,
189
- getItemLabel: params.getItemLabel,
190
- getItemChildren: params.getItemChildren
191
- }
192
- })
193
- });
194
- useTreeViewItems.applyDefaultValuesToParams = ({
195
- params
196
- }) => _extends({}, params, {
197
- disabledItemsFocusable: params.disabledItemsFocusable ?? false,
198
- itemChildrenIndentation: params.itemChildrenIndentation ?? '12px'
199
- });
200
- useTreeViewItems.wrapRoot = ({
201
- children
202
- }) => {
203
- return /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {
204
- value: itemsSelectors.itemDepth,
205
- children: children
206
- });
207
- };
208
- if (process.env.NODE_ENV !== "production") useTreeViewItems.wrapRoot.displayName = "useTreeViewItems.wrapRoot";
209
- useTreeViewItems.params = {
210
- disabledItemsFocusable: true,
211
- items: true,
212
- isItemDisabled: true,
213
- getItemLabel: true,
214
- getItemChildren: true,
215
- getItemId: true,
216
- onItemClick: true,
217
- itemChildrenIndentation: true
218
- };
@@ -1,56 +0,0 @@
1
- import { TreeViewItemMeta, TreeViewState } from "../../models/index.js";
2
- import { UseTreeViewItemsSignature } from "./useTreeViewItems.types.js";
3
- export declare const itemsSelectors: {
4
- /**
5
- * Gets the DOM structure of the Tree View.
6
- */
7
- domStructure: (state: TreeViewState<[UseTreeViewItemsSignature]>) => "flat" | "nested";
8
- /**
9
- * Checks whether the disabled items are focusable.
10
- */
11
- disabledItemFocusable: (state: TreeViewState<[UseTreeViewItemsSignature]>) => boolean;
12
- /**
13
- * Gets the meta-information of all items.
14
- */
15
- itemMetaLookup: (state: TreeViewState<[UseTreeViewItemsSignature]>) => {
16
- [itemId: string]: TreeViewItemMeta;
17
- };
18
- /**
19
- * Gets the ordered children ids of all items.
20
- */
21
- itemOrderedChildrenIdsLookup: (state: TreeViewState<[UseTreeViewItemsSignature]>) => {
22
- [parentItemId: string]: string[];
23
- };
24
- /**
25
- * Gets the meta-information of an item.
26
- */
27
- itemMeta: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string | null) => TreeViewItemMeta | null;
28
- /**
29
- * Gets the ordered children ids of an item.
30
- */
31
- itemOrderedChildrenIds: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string | null) => string[];
32
- /**
33
- * Gets the model of an item.
34
- */
35
- itemModel: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => import("../../../index.js").TreeViewBaseItem<import("../../../index.js").TreeViewDefaultItemModelProperties>;
36
- /**
37
- * Checks whether an item is disabled.
38
- */
39
- isItemDisabled: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => boolean;
40
- /**
41
- * Gets the index of an item in its parent's children.
42
- */
43
- itemIndex: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => number;
44
- /**
45
- * Gets the id of an item's parent.
46
- */
47
- itemParentId: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => string | null;
48
- /**
49
- * Gets the depth of an item (items at the root level have a depth of 0).
50
- */
51
- itemDepth: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => number;
52
- /**
53
- * Checks whether an item can be focused.
54
- */
55
- canItemBeFocused: (state: TreeViewState<[UseTreeViewItemsSignature]>, itemId: string) => boolean;
56
- };
@@ -1,60 +0,0 @@
1
- import { createSelector } from '@mui/x-internals/store';
2
- import { isItemDisabled, TREE_VIEW_ROOT_PARENT_ID } from "./useTreeViewItems.utils.js";
3
- const EMPTY_CHILDREN = [];
4
- export const itemsSelectors = {
5
- /**
6
- * Gets the DOM structure of the Tree View.
7
- */
8
- domStructure: createSelector(state => state.items.domStructure),
9
- /**
10
- * Checks whether the disabled items are focusable.
11
- */
12
- disabledItemFocusable: createSelector(state => state.items.disabledItemsFocusable),
13
- /**
14
- * Gets the meta-information of all items.
15
- */
16
- itemMetaLookup: createSelector(state => state.items.itemMetaLookup),
17
- /**
18
- * Gets the ordered children ids of all items.
19
- */
20
- itemOrderedChildrenIdsLookup: createSelector(state => state.items.itemOrderedChildrenIdsLookup),
21
- /**
22
- * Gets the meta-information of an item.
23
- */
24
- itemMeta: createSelector((state, itemId) => state.items.itemMetaLookup[itemId ?? TREE_VIEW_ROOT_PARENT_ID] ?? null),
25
- /**
26
- * Gets the ordered children ids of an item.
27
- */
28
- itemOrderedChildrenIds: createSelector((state, itemId) => state.items.itemOrderedChildrenIdsLookup[itemId ?? TREE_VIEW_ROOT_PARENT_ID] ?? EMPTY_CHILDREN),
29
- /**
30
- * Gets the model of an item.
31
- */
32
- itemModel: createSelector((state, itemId) => state.items.itemModelLookup[itemId]),
33
- /**
34
- * Checks whether an item is disabled.
35
- */
36
- isItemDisabled: createSelector((state, itemId) => isItemDisabled(state.items.itemMetaLookup, itemId)),
37
- /**
38
- * Gets the index of an item in its parent's children.
39
- */
40
- itemIndex: createSelector((state, itemId) => {
41
- const itemMeta = state.items.itemMetaLookup[itemId];
42
- if (itemMeta == null) {
43
- return -1;
44
- }
45
- const parentIndexes = state.items.itemChildrenIndexesLookup[itemMeta.parentId ?? TREE_VIEW_ROOT_PARENT_ID];
46
- return parentIndexes[itemMeta.id];
47
- }),
48
- /**
49
- * Gets the id of an item's parent.
50
- */
51
- itemParentId: createSelector((state, itemId) => state.items.itemMetaLookup[itemId]?.parentId ?? null),
52
- /**
53
- * Gets the depth of an item (items at the root level have a depth of 0).
54
- */
55
- itemDepth: createSelector((state, itemId) => state.items.itemMetaLookup[itemId]?.depth ?? 0),
56
- /**
57
- * Checks whether an item can be focused.
58
- */
59
- canItemBeFocused: createSelector((state, itemId) => state.items.disabledItemsFocusable || !isItemDisabled(state.items.itemMetaLookup, itemId))
60
- };
@@ -1,197 +0,0 @@
1
- import * as React from 'react';
2
- import { DefaultizedProps } from '@mui/x-internals/types';
3
- import { TreeViewItemMeta, TreeViewPluginSignature } from "../../models/index.js";
4
- import { TreeViewBaseItem, TreeViewDefaultItemModelProperties, TreeViewItemId } from "../../../models/index.js";
5
- export type SetItemChildrenParameters<R> = {
6
- items: readonly R[];
7
- parentId: TreeViewItemId | null;
8
- getChildrenCount: (item: R) => number;
9
- };
10
- export interface UseTreeViewItemsPublicAPI<R extends {}> {
11
- /**
12
- * Get the item with the given id.
13
- * When used in the Simple Tree View, it returns an object with the `id` and `label` properties.
14
- * @param {TreeViewItemId} itemId The id of the item to retrieve.
15
- * @returns {R} The item with the given id.
16
- */
17
- getItem: (itemId: TreeViewItemId) => R;
18
- /**
19
- * Get the DOM element of the item with the given id.
20
- * @param {TreeViewItemId} itemId The id of the item to get the DOM element of.
21
- * @returns {HTMLElement | null} The DOM element of the item with the given id.
22
- */
23
- getItemDOMElement: (itemId: TreeViewItemId) => HTMLElement | null;
24
- /**
25
- * Get the ids of a given item's children.
26
- * Those ids are returned in the order they should be rendered.
27
- * To get the root items, pass `null` as the `itemId`.
28
- * @param {TreeViewItemId | null} itemId The id of the item to get the children of.
29
- * @returns {TreeViewItemId[]} The ids of the item's children.
30
- */
31
- getItemOrderedChildrenIds: (itemId: TreeViewItemId | null) => TreeViewItemId[];
32
- /**
33
- * Get all the items in the same format as provided by `props.items`.
34
- * @returns {TreeViewBaseItem[]} The items in the tree.
35
- */
36
- getItemTree: () => TreeViewBaseItem[];
37
- /**
38
- * Toggle the disabled state of the item with the given id.
39
- * @param {object} parameters The params of the method.
40
- * @param {TreeViewItemId } parameters.itemId The id of the item to get the children of.
41
- * @param {boolean } parameters.shouldBeDisabled true if the item should be disabled.
42
- */
43
- setIsItemDisabled: (parameters: {
44
- itemId: TreeViewItemId;
45
- shouldBeDisabled?: boolean;
46
- }) => void;
47
- /** * Get the id of the parent item.
48
- * @param {TreeViewItemId} itemId The id of the item to whose parentId we want to retrieve.
49
- * @returns {TreeViewItemId | null} The id of the parent item.
50
- */
51
- getParentId: (itemId: TreeViewItemId) => TreeViewItemId | null;
52
- }
53
- export interface UseTreeViewItemsInstance<R extends {}> extends Pick<UseTreeViewItemsPublicAPI<R>, 'getItemDOMElement'> {
54
- /**
55
- * Freeze any future update to the state based on the `items` prop.
56
- * This is useful when `useTreeViewJSXItems` is used to avoid having conflicting sources of truth.
57
- */
58
- preventItemUpdates: () => void;
59
- /**
60
- * Check if the updates to the state based on the `items` prop are prevented.
61
- * This is useful when `useTreeViewJSXItems` is used to avoid having conflicting sources of truth.
62
- * @returns {boolean} `true` if the updates to the state based on the `items` prop are prevented.
63
- */
64
- areItemUpdatesPrevented: () => boolean;
65
- /**
66
- * Add an array of items to the tree.
67
- * @param {SetItemChildrenParameters<R>} args The items to add to the tree and information about their ancestors.
68
- */
69
- setItemChildren: (args: SetItemChildrenParameters<R>) => void;
70
- /**
71
- * Remove the children of an item.
72
- * @param {TreeViewItemId | null} parentId The id of the item to remove the children of.
73
- */
74
- removeChildren: (parentId: TreeViewItemId | null) => void;
75
- /**
76
- * Event handler to fire when the `content` slot of a given Tree Item is clicked.
77
- * @param {React.MouseEvent} event The DOM event that triggered the change.
78
- * @param {TreeViewItemId} itemId The id of the item being clicked.
79
- */
80
- handleItemClick: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
81
- /**
82
- * Mark a list of items as expandable.
83
- * @param {TreeViewItemId[]} items The ids of the items to mark as expandable.
84
- */
85
- addExpandableItems: (items: TreeViewItemId[]) => void;
86
- }
87
- export interface UseTreeViewItemsParameters<R extends {
88
- children?: R[];
89
- }> {
90
- /**
91
- * Whether the items should be focusable when disabled.
92
- * @default false
93
- */
94
- disabledItemsFocusable?: boolean;
95
- items: readonly R[];
96
- /**
97
- * Used to determine if a given item should be disabled.
98
- * @template R
99
- * @param {R} item The item to check.
100
- * @returns {boolean} `true` if the item should be disabled.
101
- */
102
- isItemDisabled?: (item: R) => boolean;
103
- /**
104
- * Used to determine the string label for a given item.
105
- *
106
- * @template R
107
- * @param {R} item The item to check.
108
- * @returns {string} The label of the item.
109
- * @default (item) => item.label
110
- */
111
- getItemLabel?: (item: R) => string;
112
- /**
113
- * Used to determine the children of a given item.
114
- *
115
- * @template R
116
- * @param {R} item The item to check.
117
- * @returns {R[]} The children of the item.
118
- * @default (item) => item.children
119
- */
120
- getItemChildren?: (item: R) => R[] | undefined;
121
- /**
122
- * Used to determine the id of a given item.
123
- *
124
- * @template R
125
- * @param {R} item The item to check.
126
- * @returns {TreeViewItemId} The id of the item.
127
- * @default (item) => item.id
128
- */
129
- getItemId?: (item: R) => TreeViewItemId;
130
- /**
131
- * Callback fired when the `content` slot of a given Tree Item is clicked.
132
- * @param {React.MouseEvent} event The DOM event that triggered the change.
133
- * @param {TreeViewItemId} itemId The id of the focused item.
134
- */
135
- onItemClick?: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
136
- /**
137
- * Horizontal indentation between an item and its children.
138
- * Examples: 24, "24px", "2rem", "2em".
139
- * @default 12px
140
- */
141
- itemChildrenIndentation?: string | number;
142
- }
143
- export type UseTreeViewItemsParametersWithDefaults<R extends {
144
- children?: R[];
145
- }> = DefaultizedProps<UseTreeViewItemsParameters<R>, 'disabledItemsFocusable' | 'itemChildrenIndentation'>;
146
- export interface UseTreeViewItemsState<R extends {}> {
147
- items: {
148
- /**
149
- * Whether the items should be focusable when disabled.
150
- * Always equal to `props.disabledItemsFocusable` (or `false` if not provided).
151
- */
152
- disabledItemsFocusable: boolean;
153
- /**
154
- * Model of each item as provided by `props.items` or by imperative items updates.
155
- * It is not updated when properties derived from the model are updated:
156
- * - when the label of an item is updated, `itemMetaLookup` is updated, not `itemModelLookup`.
157
- * - when the children of an item are updated, `itemOrderedChildrenIdsLookup` and `itemChildrenIndexesLookup` are updated, not `itemModelLookup`.
158
- * This means that the `children`, `label` or `id` properties of an item model should never be used directly, always use the structured sub-states instead.
159
- */
160
- itemModelLookup: {
161
- [itemId: string]: TreeViewBaseItem<R>;
162
- };
163
- /**
164
- * Meta data of each item.
165
- */
166
- itemMetaLookup: {
167
- [itemId: string]: TreeViewItemMeta;
168
- };
169
- /**
170
- * Ordered children ids of each item.
171
- */
172
- itemOrderedChildrenIdsLookup: {
173
- [parentItemId: string]: TreeViewItemId[];
174
- };
175
- /**
176
- * Index of each child in the ordered children ids of its parent.
177
- */
178
- itemChildrenIndexesLookup: {
179
- [parentItemId: string]: {
180
- [itemId: string]: number;
181
- };
182
- };
183
- /**
184
- * When equal to 'flat', the tree is rendered as a flat list (children are rendered as siblings of their parents).
185
- * When equal to 'nested', the tree is rendered with nested children (children are rendered inside the groupTransition slot of their children).
186
- * Nested DOM structure is not compatible with collapse / expansion animations.
187
- */
188
- domStructure: 'flat' | 'nested';
189
- };
190
- }
191
- export type UseTreeViewItemsSignature = TreeViewPluginSignature<{
192
- params: UseTreeViewItemsParameters<any>;
193
- paramsWithDefaults: UseTreeViewItemsParametersWithDefaults<any>;
194
- instance: UseTreeViewItemsInstance<any>;
195
- publicAPI: UseTreeViewItemsPublicAPI<any>;
196
- state: UseTreeViewItemsState<TreeViewDefaultItemModelProperties>;
197
- }>;
@@ -1,49 +0,0 @@
1
- import { TreeViewBaseItem, TreeViewItemId } from "../../../models/index.js";
2
- import { TreeViewItemMeta } from "../../models/index.js";
3
- import { UseTreeViewItemsParametersWithDefaults, UseTreeViewItemsState } from "./useTreeViewItems.types.js";
4
- export declare const TREE_VIEW_ROOT_PARENT_ID = "__TREE_VIEW_ROOT_PARENT_ID__";
5
- export declare const buildSiblingIndexes: (siblings: string[]) => {
6
- [itemId: string]: number;
7
- };
8
- /**
9
- * Check if an item is disabled.
10
- * This method should only be used in selectors that are checking if several items are disabled.
11
- * Otherwise, use the `itemsSelector.isItemDisabled` selector.
12
- * @returns
13
- */
14
- export declare const isItemDisabled: (itemMetaLookup: {
15
- [itemId: string]: TreeViewItemMeta;
16
- }, itemId: TreeViewItemId) => boolean;
17
- type State = UseTreeViewItemsState<any>['items'];
18
- export declare function buildItemsState(parameters: BuildItemsStateParameters): State;
19
- interface BuildItemsStateParameters extends Pick<BuildItemsLookupsParameters, 'items' | 'config'> {
20
- disabledItemsFocusable: boolean;
21
- }
22
- export declare function buildItemsLookups(parameters: BuildItemsLookupsParameters): {
23
- metaLookup: {
24
- [itemId: string]: TreeViewItemMeta;
25
- };
26
- modelLookup: {
27
- [itemId: string]: any;
28
- };
29
- orderedChildrenIds: string[];
30
- childrenIndexes: {
31
- [itemId: string]: number;
32
- };
33
- itemsChildren: {
34
- id: string | null;
35
- children: TreeViewBaseItem[];
36
- }[];
37
- };
38
- interface BuildItemsLookupsParameters {
39
- items: readonly TreeViewBaseItem[];
40
- config: BuildItemsLookupConfig;
41
- parentId: string | null;
42
- depth: number;
43
- isItemExpandable: (item: TreeViewBaseItem, children: TreeViewBaseItem[] | undefined) => boolean;
44
- otherItemsMetaLookup: {
45
- [itemId: string]: TreeViewItemMeta;
46
- };
47
- }
48
- export interface BuildItemsLookupConfig extends Pick<UseTreeViewItemsParametersWithDefaults<TreeViewBaseItem>, 'isItemDisabled' | 'getItemLabel' | 'getItemChildren' | 'getItemId'> {}
49
- export {};
@@ -1,2 +0,0 @@
1
- export { useTreeViewJSXItems } from "./useTreeViewJSXItems.js";
2
- export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters, UseTreeViewItemsParametersWithDefaults } from "./useTreeViewJSXItems.types.js";
@@ -1 +0,0 @@
1
- export { useTreeViewJSXItems } from "./useTreeViewJSXItems.js";
@@ -1,2 +0,0 @@
1
- import { TreeViewItemPlugin } from "../../models/index.js";
2
- export declare const useTreeViewJSXItemsItemPlugin: TreeViewItemPlugin;
@@ -1,74 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { useStore } from '@mui/x-internals/store';
5
- import { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';
6
- import { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';
7
- import { useTreeViewContext } from "../../TreeViewProvider/index.js";
8
- import { TreeViewChildrenItemContext } from "../../TreeViewProvider/TreeViewChildrenItemProvider.js";
9
- import { itemHasChildren } from "../../../hooks/useTreeItemUtils/useTreeItemUtils.js";
10
- import { idSelectors } from "../../corePlugins/useTreeViewId/index.js";
11
- import { generateTreeItemIdAttribute } from "../../corePlugins/useTreeViewId/useTreeViewId.utils.js";
12
- export const useTreeViewJSXItemsItemPlugin = ({
13
- props,
14
- rootRef,
15
- contentRef
16
- }) => {
17
- const {
18
- instance,
19
- store
20
- } = useTreeViewContext();
21
- const {
22
- children,
23
- disabled = false,
24
- label,
25
- itemId,
26
- id
27
- } = props;
28
- const parentContext = React.useContext(TreeViewChildrenItemContext);
29
- if (parentContext == null) {
30
- throw new Error(['MUI X: Could not find the Tree View Children Item context.', 'It looks like you rendered your component outside of a SimpleTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
31
- }
32
- const {
33
- registerChild,
34
- unregisterChild,
35
- parentId
36
- } = parentContext;
37
- const expandable = itemHasChildren(children);
38
- const pluginContentRef = React.useRef(null);
39
- const handleContentRef = useMergedRefs(pluginContentRef, contentRef);
40
- const treeId = useStore(store, idSelectors.treeId);
41
-
42
- // Prevent any flashing
43
- useIsoLayoutEffect(() => {
44
- const idAttribute = generateTreeItemIdAttribute({
45
- itemId,
46
- treeId,
47
- id
48
- });
49
- registerChild(idAttribute, itemId);
50
- return () => {
51
- unregisterChild(idAttribute);
52
- unregisterChild(idAttribute);
53
- };
54
- }, [store, instance, registerChild, unregisterChild, itemId, id, treeId]);
55
- useIsoLayoutEffect(() => {
56
- return instance.insertJSXItem({
57
- id: itemId,
58
- idAttribute: id,
59
- parentId,
60
- expandable,
61
- disabled
62
- });
63
- }, [instance, parentId, itemId, expandable, disabled, id]);
64
- React.useEffect(() => {
65
- if (label) {
66
- return instance.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
67
- }
68
- return undefined;
69
- }, [instance, itemId, label]);
70
- return {
71
- contentRef: handleContentRef,
72
- rootRef
73
- };
74
- };
@@ -1,3 +0,0 @@
1
- import { TreeViewPlugin } from "../../models/index.js";
2
- import { UseTreeViewJSXItemsSignature } from "./useTreeViewJSXItems.types.js";
3
- export declare const useTreeViewJSXItems: TreeViewPlugin<UseTreeViewJSXItemsSignature>;