@mui/x-tree-view 8.23.0 → 8.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/CHANGELOG.md +111 -1
  2. package/RichTreeView/RichTreeView.d.ts +1 -1
  3. package/RichTreeView/RichTreeView.js +34 -28
  4. package/RichTreeView/RichTreeView.types.d.ts +6 -4
  5. package/RichTreeView/index.d.ts +1 -3
  6. package/RichTreeView/index.js +1 -13
  7. package/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  8. package/RichTreeView/useExtractRichTreeViewParameters.js +91 -0
  9. package/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  10. package/SimpleTreeView/SimpleTreeView.js +30 -24
  11. package/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  12. package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  13. package/SimpleTreeView/useExtractSimpleTreeViewParameters.js +78 -0
  14. package/TreeItem/TreeItem.d.ts +1 -1
  15. package/TreeItemProvider/TreeItemProvider.js +3 -10
  16. package/esm/RichTreeView/RichTreeView.d.ts +1 -1
  17. package/esm/RichTreeView/RichTreeView.js +33 -27
  18. package/esm/RichTreeView/RichTreeView.types.d.ts +6 -4
  19. package/esm/RichTreeView/index.d.ts +1 -3
  20. package/esm/RichTreeView/index.js +1 -1
  21. package/esm/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  22. package/esm/RichTreeView/useExtractRichTreeViewParameters.js +83 -0
  23. package/esm/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  24. package/esm/SimpleTreeView/SimpleTreeView.js +29 -23
  25. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  26. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  27. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +70 -0
  28. package/esm/TreeItem/TreeItem.d.ts +1 -1
  29. package/esm/TreeItemProvider/TreeItemProvider.js +3 -10
  30. package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +1 -1
  31. package/esm/hooks/useRichTreeViewApiRef.d.ts +2 -2
  32. package/esm/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  33. package/esm/hooks/useTreeItemModel.d.ts +2 -2
  34. package/esm/hooks/useTreeItemModel.js +1 -1
  35. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  36. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +25 -34
  37. package/esm/hooks/useTreeViewApiRef.d.ts +2 -4
  38. package/esm/hooks/useTreeViewApiRef.js +3 -2
  39. package/esm/index.d.ts +0 -1
  40. package/esm/index.js +1 -2
  41. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  42. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +126 -0
  43. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  44. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  45. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +49 -0
  46. package/esm/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  47. package/esm/internals/MinimalTreeViewStore/TimeoutManager.js +39 -0
  48. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  49. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +16 -0
  50. package/esm/internals/MinimalTreeViewStore/index.d.ts +2 -0
  51. package/esm/internals/MinimalTreeViewStore/index.js +2 -0
  52. package/esm/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  53. package/esm/internals/RichTreeViewStore/RichTreeViewStore.js +21 -0
  54. package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  55. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  56. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +15 -0
  57. package/esm/internals/RichTreeViewStore/index.d.ts +3 -0
  58. package/esm/internals/RichTreeViewStore/index.js +3 -0
  59. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  60. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +18 -0
  61. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  62. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  63. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +5 -0
  64. package/esm/internals/SimpleTreeViewStore/index.d.ts +2 -0
  65. package/esm/internals/SimpleTreeViewStore/index.js +2 -0
  66. package/esm/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  67. package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -3
  68. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  69. package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  70. package/esm/internals/TreeViewProvider/TreeViewProvider.js +11 -6
  71. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  72. package/esm/internals/TreeViewProvider/index.d.ts +1 -1
  73. package/esm/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  74. package/esm/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  75. package/esm/internals/components/RichTreeViewItems.js +3 -3
  76. package/esm/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  77. package/esm/internals/hooks/useTreeViewRootProps.js +30 -0
  78. package/esm/internals/hooks/useTreeViewStore.d.ts +10 -0
  79. package/esm/internals/hooks/useTreeViewStore.js +19 -0
  80. package/esm/internals/index.d.ts +15 -21
  81. package/esm/internals/index.js +11 -14
  82. package/esm/internals/models/events.d.ts +24 -3
  83. package/esm/internals/models/index.d.ts +2 -3
  84. package/esm/internals/models/index.js +2 -3
  85. package/esm/internals/models/itemPlugin.d.ts +9 -0
  86. package/esm/internals/models/treeView.d.ts +5 -9
  87. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  88. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.js +124 -0
  89. package/esm/internals/plugins/expansion/index.d.ts +2 -0
  90. package/esm/internals/plugins/expansion/index.js +2 -0
  91. package/esm/internals/plugins/expansion/selectors.d.ts +27 -0
  92. package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +5 -5
  93. package/esm/internals/plugins/expansion/utils.d.ts +5 -0
  94. package/esm/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  95. package/esm/internals/plugins/focus/TreeViewFocusPlugin.js +107 -0
  96. package/esm/internals/plugins/focus/index.d.ts +2 -0
  97. package/esm/internals/plugins/focus/index.js +2 -0
  98. package/esm/internals/plugins/focus/selectors.d.ts +21 -0
  99. package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +6 -6
  100. package/esm/internals/plugins/id/index.d.ts +1 -0
  101. package/esm/internals/plugins/id/index.js +1 -0
  102. package/esm/internals/plugins/id/selectors.d.ts +13 -0
  103. package/esm/internals/plugins/id/selectors.js +18 -0
  104. package/esm/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  105. package/esm/internals/plugins/items/TreeViewItemsPlugin.js +223 -0
  106. package/esm/internals/plugins/items/index.d.ts +3 -0
  107. package/esm/internals/plugins/items/index.js +3 -0
  108. package/esm/internals/plugins/items/selectors.d.ts +60 -0
  109. package/esm/internals/plugins/items/selectors.js +64 -0
  110. package/esm/internals/plugins/items/utils.d.ts +43 -0
  111. package/esm/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -50
  112. package/esm/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  113. package/esm/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +81 -0
  114. package/esm/internals/plugins/jsxItems/index.d.ts +1 -0
  115. package/esm/internals/plugins/jsxItems/index.js +1 -0
  116. package/esm/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  117. package/esm/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +29 -17
  118. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  119. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +306 -0
  120. package/esm/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  121. package/esm/internals/plugins/keyboardNavigation/index.js +1 -0
  122. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  123. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +50 -0
  124. package/esm/internals/plugins/labelEditing/index.d.ts +2 -0
  125. package/esm/internals/plugins/labelEditing/index.js +2 -0
  126. package/{internals/plugins/useTreeViewLabel → esm/internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  127. package/esm/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +2 -2
  128. package/esm/internals/plugins/labelEditing/selectors.d.ts +15 -0
  129. package/esm/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  130. package/esm/internals/plugins/lazyLoading/index.d.ts +2 -0
  131. package/esm/internals/plugins/lazyLoading/index.js +2 -0
  132. package/esm/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  133. package/esm/internals/plugins/lazyLoading/selectors.js +25 -0
  134. package/esm/internals/plugins/lazyLoading/types.d.ts +5 -0
  135. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  136. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.js +319 -0
  137. package/esm/internals/plugins/selection/index.d.ts +2 -0
  138. package/esm/internals/plugins/selection/index.js +2 -0
  139. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  140. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +3 -3
  141. package/esm/internals/plugins/selection/selectors.d.ts +48 -0
  142. package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -9
  143. package/esm/internals/utils/tree.d.ts +8 -10
  144. package/esm/internals/utils/tree.js +2 -2
  145. package/esm/models/items.d.ts +5 -2
  146. package/esm/useTreeItem/useTreeItem.d.ts +18 -2
  147. package/esm/useTreeItem/useTreeItem.js +14 -18
  148. package/esm/useTreeItem/useTreeItem.types.d.ts +4 -19
  149. package/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
  150. package/hooks/useRichTreeViewApiRef.d.ts +2 -2
  151. package/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  152. package/hooks/useTreeItemModel.d.ts +2 -2
  153. package/hooks/useTreeItemModel.js +2 -2
  154. package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  155. package/hooks/useTreeItemUtils/useTreeItemUtils.js +41 -49
  156. package/hooks/useTreeViewApiRef.d.ts +2 -4
  157. package/hooks/useTreeViewApiRef.js +2 -4
  158. package/index.d.ts +0 -1
  159. package/index.js +1 -22
  160. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  161. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +134 -0
  162. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  163. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  164. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +58 -0
  165. package/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  166. package/internals/MinimalTreeViewStore/TimeoutManager.js +46 -0
  167. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  168. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +23 -0
  169. package/internals/MinimalTreeViewStore/index.d.ts +2 -0
  170. package/internals/MinimalTreeViewStore/index.js +27 -0
  171. package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  172. package/internals/RichTreeViewStore/RichTreeViewStore.js +30 -0
  173. package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  174. package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  175. package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +22 -0
  176. package/internals/RichTreeViewStore/index.d.ts +3 -0
  177. package/internals/RichTreeViewStore/index.js +38 -0
  178. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  179. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +26 -0
  180. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  181. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  182. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +11 -0
  183. package/internals/SimpleTreeViewStore/index.d.ts +2 -0
  184. package/internals/SimpleTreeViewStore/index.js +27 -0
  185. package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  186. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +3 -4
  187. package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  188. package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  189. package/internals/TreeViewProvider/TreeViewProvider.js +14 -9
  190. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  191. package/internals/TreeViewProvider/index.d.ts +1 -1
  192. package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  193. package/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  194. package/internals/components/RichTreeViewItems.js +9 -9
  195. package/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  196. package/internals/hooks/useTreeViewRootProps.js +36 -0
  197. package/internals/hooks/useTreeViewStore.d.ts +10 -0
  198. package/internals/hooks/useTreeViewStore.js +26 -0
  199. package/internals/index.d.ts +15 -21
  200. package/internals/index.js +40 -70
  201. package/internals/models/events.d.ts +24 -3
  202. package/internals/models/index.d.ts +2 -3
  203. package/internals/models/index.js +11 -22
  204. package/internals/models/itemPlugin.d.ts +9 -0
  205. package/internals/models/treeView.d.ts +5 -9
  206. package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  207. package/internals/plugins/expansion/TreeViewExpansionPlugin.js +132 -0
  208. package/internals/plugins/expansion/index.d.ts +2 -0
  209. package/internals/plugins/expansion/index.js +27 -0
  210. package/internals/plugins/expansion/selectors.d.ts +27 -0
  211. package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +8 -8
  212. package/internals/plugins/expansion/utils.d.ts +5 -0
  213. package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  214. package/internals/plugins/focus/TreeViewFocusPlugin.js +114 -0
  215. package/internals/plugins/focus/index.d.ts +2 -0
  216. package/internals/plugins/focus/index.js +27 -0
  217. package/internals/plugins/focus/selectors.d.ts +21 -0
  218. package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +9 -9
  219. package/internals/plugins/id/index.d.ts +1 -0
  220. package/internals/plugins/id/index.js +16 -0
  221. package/internals/plugins/id/selectors.d.ts +13 -0
  222. package/internals/plugins/id/selectors.js +24 -0
  223. package/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  224. package/internals/plugins/items/TreeViewItemsPlugin.js +231 -0
  225. package/internals/plugins/items/index.d.ts +3 -0
  226. package/internals/plugins/items/index.js +46 -0
  227. package/internals/plugins/items/selectors.d.ts +60 -0
  228. package/internals/plugins/{useTreeViewItems/useTreeViewItems.selectors.js → items/selectors.js} +16 -16
  229. package/internals/plugins/items/utils.d.ts +43 -0
  230. package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -51
  231. package/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  232. package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +89 -0
  233. package/internals/plugins/jsxItems/index.d.ts +1 -0
  234. package/internals/plugins/jsxItems/index.js +16 -0
  235. package/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  236. package/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +30 -17
  237. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  238. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +313 -0
  239. package/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  240. package/internals/plugins/keyboardNavigation/index.js +16 -0
  241. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  242. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +58 -0
  243. package/internals/plugins/labelEditing/index.d.ts +2 -0
  244. package/internals/plugins/labelEditing/index.js +27 -0
  245. package/{esm/internals/plugins/useTreeViewLabel → internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  246. package/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +6 -6
  247. package/internals/plugins/labelEditing/selectors.d.ts +15 -0
  248. package/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  249. package/internals/plugins/lazyLoading/index.d.ts +2 -0
  250. package/internals/plugins/lazyLoading/index.js +27 -0
  251. package/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  252. package/internals/plugins/{useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js → lazyLoading/selectors.js} +11 -6
  253. package/internals/plugins/lazyLoading/types.d.ts +5 -0
  254. package/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  255. package/internals/plugins/selection/TreeViewSelectionPlugin.js +327 -0
  256. package/internals/plugins/selection/index.d.ts +2 -0
  257. package/internals/plugins/selection/index.js +27 -0
  258. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  259. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +13 -13
  260. package/internals/plugins/selection/selectors.d.ts +48 -0
  261. package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -9
  262. package/internals/utils/tree.d.ts +8 -10
  263. package/internals/utils/tree.js +33 -33
  264. package/models/items.d.ts +5 -2
  265. package/package.json +2 -2
  266. package/useTreeItem/useTreeItem.d.ts +18 -2
  267. package/useTreeItem/useTreeItem.js +18 -23
  268. package/useTreeItem/useTreeItem.types.d.ts +4 -19
  269. package/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  270. package/RichTreeView/RichTreeView.plugins.js +0 -15
  271. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  272. package/SimpleTreeView/SimpleTreeView.plugins.js +0 -15
  273. package/esm/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  274. package/esm/RichTreeView/RichTreeView.plugins.js +0 -9
  275. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  276. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +0 -9
  277. package/esm/internals/corePlugins/corePlugins.d.ts +0 -9
  278. package/esm/internals/corePlugins/corePlugins.js +0 -8
  279. package/esm/internals/corePlugins/index.d.ts +0 -2
  280. package/esm/internals/corePlugins/index.js +0 -1
  281. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  282. package/esm/internals/corePlugins/useTreeViewId/index.js +0 -2
  283. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  284. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -38
  285. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  286. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  287. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  288. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  289. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  290. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  291. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  292. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  293. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -31
  294. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  295. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  296. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  297. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  298. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  299. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  300. package/esm/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  301. package/esm/internals/hooks/useInstanceEventHandler.js +0 -79
  302. package/esm/internals/models/helpers.d.ts +0 -7
  303. package/esm/internals/models/plugin.d.ts +0 -166
  304. package/esm/internals/models/plugin.js +0 -1
  305. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  306. package/esm/internals/plugins/useTreeViewExpansion/index.js +0 -2
  307. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  308. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -149
  309. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  310. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  311. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  312. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  313. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  314. package/esm/internals/plugins/useTreeViewFocus/index.js +0 -2
  315. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  316. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -113
  317. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  318. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  319. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  320. package/esm/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  321. package/esm/internals/plugins/useTreeViewItems/index.js +0 -3
  322. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  323. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -223
  324. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
  325. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -64
  326. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
  327. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  328. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  329. package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  330. package/esm/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  331. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  332. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  333. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -104
  334. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  335. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  336. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  337. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  338. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -305
  339. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  340. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  341. package/esm/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  342. package/esm/internals/plugins/useTreeViewLabel/index.js +0 -2
  343. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  344. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -70
  345. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  346. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  347. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  348. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  349. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  350. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  351. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -20
  352. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  353. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  354. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  355. package/esm/internals/plugins/useTreeViewSelection/index.js +0 -2
  356. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  357. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -231
  358. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
  359. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  360. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  361. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  362. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -107
  363. package/esm/internals/useTreeView/index.d.ts +0 -1
  364. package/esm/internals/useTreeView/index.js +0 -1
  365. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  366. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -51
  367. package/esm/internals/useTreeView/useTreeView.d.ts +0 -18
  368. package/esm/internals/useTreeView/useTreeView.js +0 -102
  369. package/esm/internals/useTreeView/useTreeView.types.d.ts +0 -20
  370. package/esm/internals/useTreeView/useTreeView.types.js +0 -1
  371. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  372. package/esm/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  373. package/esm/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  374. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  375. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -14
  376. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  377. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  378. package/esm/internals/utils/plugins.d.ts +0 -2
  379. package/esm/internals/utils/plugins.js +0 -4
  380. package/esm/internals/utils/publishTreeViewEvent.d.ts +0 -5
  381. package/esm/internals/utils/publishTreeViewEvent.js +0 -3
  382. package/internals/corePlugins/corePlugins.d.ts +0 -9
  383. package/internals/corePlugins/corePlugins.js +0 -14
  384. package/internals/corePlugins/index.d.ts +0 -2
  385. package/internals/corePlugins/index.js +0 -12
  386. package/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  387. package/internals/corePlugins/useTreeViewId/index.js +0 -19
  388. package/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  389. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -46
  390. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  391. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -15
  392. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  393. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  394. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -34
  395. package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  396. package/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -12
  397. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  398. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -38
  399. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  400. package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  401. package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -12
  402. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  403. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -19
  404. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  405. package/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  406. package/internals/hooks/useInstanceEventHandler.js +0 -87
  407. package/internals/models/helpers.d.ts +0 -7
  408. package/internals/models/plugin.d.ts +0 -166
  409. package/internals/models/plugin.js +0 -5
  410. package/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  411. package/internals/plugins/useTreeViewExpansion/index.js +0 -19
  412. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  413. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -157
  414. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  415. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  416. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -5
  417. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  418. package/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  419. package/internals/plugins/useTreeViewFocus/index.js +0 -19
  420. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  421. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -121
  422. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  423. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  424. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -5
  425. package/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  426. package/internals/plugins/useTreeViewItems/index.js +0 -32
  427. package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  428. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -231
  429. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
  430. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
  431. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -5
  432. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  433. package/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  434. package/internals/plugins/useTreeViewJSXItems/index.js +0 -12
  435. package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  436. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  437. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -112
  438. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -5
  439. package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  440. package/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -12
  441. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  442. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -312
  443. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  444. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -5
  445. package/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  446. package/internals/plugins/useTreeViewLabel/index.js +0 -19
  447. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  448. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -78
  449. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  450. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  451. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -5
  452. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  453. package/internals/plugins/useTreeViewLazyLoading/index.js +0 -12
  454. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  455. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  456. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -5
  457. package/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  458. package/internals/plugins/useTreeViewSelection/index.js +0 -19
  459. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  460. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -240
  461. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
  462. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  463. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -5
  464. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  465. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -116
  466. package/internals/useTreeView/index.d.ts +0 -1
  467. package/internals/useTreeView/index.js +0 -12
  468. package/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  469. package/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -60
  470. package/internals/useTreeView/useTreeView.d.ts +0 -18
  471. package/internals/useTreeView/useTreeView.js +0 -112
  472. package/internals/useTreeView/useTreeView.types.d.ts +0 -20
  473. package/internals/useTreeView/useTreeView.types.js +0 -5
  474. package/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  475. package/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  476. package/internals/utils/cleanupTracking/CleanupTracking.js +0 -5
  477. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  478. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -21
  479. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  480. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -45
  481. package/internals/utils/plugins.d.ts +0 -2
  482. package/internals/utils/plugins.js +0 -11
  483. package/internals/utils/publishTreeViewEvent.d.ts +0 -5
  484. package/internals/utils/publishTreeViewEvent.js +0 -10
  485. /package/esm/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  486. /package/esm/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  487. /package/esm/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  488. /package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  489. /package/esm/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
  490. /package/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  491. /package/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  492. /package/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  493. /package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  494. /package/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
@@ -1,231 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import { useAssertModelConsistency } from '@mui/x-internals/useAssertModelConsistency';
4
- import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
5
- import { findOrderInTremauxTree, getAllNavigableItems, getFirstNavigableItem, getLastNavigableItem, getNonDisabledItemsInRange } from "../../utils/tree.js";
6
- import { propagateSelection, getAddedAndRemovedItems, getLookupFromArray } from "./useTreeViewSelection.utils.js";
7
- import { selectionSelectors } from "./useTreeViewSelection.selectors.js";
8
- import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
9
- import { useTreeViewSelectionItemPlugin } from "./itemPlugin.js";
10
- export const useTreeViewSelection = ({
11
- store,
12
- params
13
- }) => {
14
- useAssertModelConsistency({
15
- componentName: 'Tree View',
16
- propName: 'selectedItems',
17
- controlled: params.selectedItems,
18
- defaultValue: params.defaultSelectedItems
19
- });
20
- const lastSelectedItem = React.useRef(null);
21
- const lastSelectedRange = React.useRef({});
22
- const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
23
- const oldModel = selectionSelectors.selectedItemsRaw(store.state);
24
- let cleanModel;
25
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
26
- if (isMultiSelectEnabled && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
27
- cleanModel = propagateSelection({
28
- store,
29
- selectionPropagation: params.selectionPropagation,
30
- newModel: newModel,
31
- oldModel: oldModel,
32
- additionalItemsToPropagate
33
- });
34
- } else {
35
- cleanModel = newModel;
36
- }
37
- if (params.onItemSelectionToggle) {
38
- if (isMultiSelectEnabled) {
39
- const changes = getAddedAndRemovedItems({
40
- store,
41
- newModel: cleanModel,
42
- oldModel: oldModel
43
- });
44
- if (params.onItemSelectionToggle) {
45
- changes.added.forEach(itemId => {
46
- params.onItemSelectionToggle(event, itemId, true);
47
- });
48
- changes.removed.forEach(itemId => {
49
- params.onItemSelectionToggle(event, itemId, false);
50
- });
51
- }
52
- } else if (params.onItemSelectionToggle && cleanModel !== oldModel) {
53
- if (oldModel != null) {
54
- params.onItemSelectionToggle(event, oldModel, false);
55
- }
56
- if (cleanModel != null) {
57
- params.onItemSelectionToggle(event, cleanModel, true);
58
- }
59
- }
60
- }
61
- if (params.selectedItems === undefined) {
62
- store.set('selection', _extends({}, store.state.selection, {
63
- selectedItems: cleanModel
64
- }));
65
- }
66
- params.onSelectedItemsChange?.(event, cleanModel);
67
- };
68
- const setItemSelection = ({
69
- itemId,
70
- event = null,
71
- keepExistingSelection = false,
72
- shouldBeSelected
73
- }) => {
74
- if (!selectionSelectors.enabled(store.state)) {
75
- return;
76
- }
77
- let newSelected;
78
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
79
- if (keepExistingSelection) {
80
- const oldSelected = selectionSelectors.selectedItems(store.state);
81
- const isSelectedBefore = selectionSelectors.isItemSelected(store.state, itemId);
82
- if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {
83
- newSelected = oldSelected.filter(id => id !== itemId);
84
- } else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {
85
- newSelected = [itemId].concat(oldSelected);
86
- } else {
87
- newSelected = oldSelected;
88
- }
89
- } else {
90
- // eslint-disable-next-line no-lonely-if
91
- if (shouldBeSelected === false || shouldBeSelected == null && selectionSelectors.isItemSelected(store.state, itemId)) {
92
- newSelected = isMultiSelectEnabled ? [] : null;
93
- } else {
94
- newSelected = isMultiSelectEnabled ? [itemId] : itemId;
95
- }
96
- }
97
- setSelectedItems(event, newSelected,
98
- // If shouldBeSelected === selectionSelectors.isItemSelected(store, itemId), we still want to propagate the select.
99
- // This is useful when the element is in an indeterminate state.
100
- [itemId]);
101
- lastSelectedItem.current = itemId;
102
- lastSelectedRange.current = {};
103
- };
104
- const selectRange = (event, [start, end]) => {
105
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
106
- if (!isMultiSelectEnabled) {
107
- return;
108
- }
109
- let newSelectedItems = selectionSelectors.selectedItems(store.state).slice();
110
-
111
- // If the last selection was a range selection,
112
- // remove the items that were part of the last range from the model
113
- if (Object.keys(lastSelectedRange.current).length > 0) {
114
- newSelectedItems = newSelectedItems.filter(id => !lastSelectedRange.current[id]);
115
- }
116
-
117
- // Add to the model the items that are part of the new range and not already part of the model.
118
- const selectedItemsLookup = getLookupFromArray(newSelectedItems);
119
- const range = getNonDisabledItemsInRange(store.state, start, end).filter(id => itemsSelectors.isItemSelectable(store.state, id));
120
- const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);
121
- newSelectedItems = newSelectedItems.concat(itemsToAddToModel);
122
- setSelectedItems(event, newSelectedItems);
123
- lastSelectedRange.current = getLookupFromArray(range);
124
- };
125
- const expandSelectionRange = (event, itemId) => {
126
- if (lastSelectedItem.current != null) {
127
- const [start, end] = findOrderInTremauxTree(store.state, itemId, lastSelectedItem.current);
128
- selectRange(event, [start, end]);
129
- }
130
- };
131
- const selectRangeFromStartToItem = (event, itemId) => {
132
- selectRange(event, [getFirstNavigableItem(store.state), itemId]);
133
- };
134
- const selectRangeFromItemToEnd = (event, itemId) => {
135
- selectRange(event, [itemId, getLastNavigableItem(store.state)]);
136
- };
137
- const selectAllNavigableItems = event => {
138
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
139
- if (!isMultiSelectEnabled) {
140
- return;
141
- }
142
- const navigableItems = getAllNavigableItems(store.state);
143
- setSelectedItems(event, navigableItems);
144
- lastSelectedRange.current = getLookupFromArray(navigableItems);
145
- };
146
- const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
147
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
148
- if (!isMultiSelectEnabled) {
149
- return;
150
- }
151
- let newSelectedItems = selectionSelectors.selectedItems(store.state).slice();
152
- if (Object.keys(lastSelectedRange.current).length === 0) {
153
- newSelectedItems.push(nextItem);
154
- lastSelectedRange.current = {
155
- [currentItem]: true,
156
- [nextItem]: true
157
- };
158
- } else {
159
- if (!lastSelectedRange.current[currentItem]) {
160
- lastSelectedRange.current = {};
161
- }
162
- if (lastSelectedRange.current[nextItem]) {
163
- newSelectedItems = newSelectedItems.filter(id => id !== currentItem);
164
- delete lastSelectedRange.current[currentItem];
165
- } else {
166
- newSelectedItems.push(nextItem);
167
- lastSelectedRange.current[nextItem] = true;
168
- }
169
- }
170
- setSelectedItems(event, newSelectedItems);
171
- };
172
- useIsoLayoutEffect(() => {
173
- store.set('selection', {
174
- selectedItems: params.selectedItems === undefined ? store.state.selection.selectedItems : params.selectedItems,
175
- isEnabled: !params.disableSelection,
176
- isMultiSelectEnabled: params.multiSelect,
177
- isCheckboxSelectionEnabled: params.checkboxSelection,
178
- selectionPropagation: {
179
- descendants: params.selectionPropagation.descendants,
180
- parents: params.selectionPropagation.parents
181
- }
182
- });
183
- }, [store, params.selectedItems, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
184
- return {
185
- getRootProps: () => ({
186
- 'aria-multiselectable': params.multiSelect
187
- }),
188
- publicAPI: {
189
- setItemSelection
190
- },
191
- instance: {
192
- setItemSelection,
193
- selectAllNavigableItems,
194
- expandSelectionRange,
195
- selectRangeFromStartToItem,
196
- selectRangeFromItemToEnd,
197
- selectItemFromArrowNavigation
198
- }
199
- };
200
- };
201
- useTreeViewSelection.itemPlugin = useTreeViewSelectionItemPlugin;
202
- const DEFAULT_SELECTED_ITEMS = [];
203
- const EMPTY_SELECTION_PROPAGATION = {};
204
- useTreeViewSelection.applyDefaultValuesToParams = ({
205
- params
206
- }) => _extends({}, params, {
207
- disableSelection: params.disableSelection ?? false,
208
- multiSelect: params.multiSelect ?? false,
209
- checkboxSelection: params.checkboxSelection ?? false,
210
- defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null),
211
- selectionPropagation: params.selectionPropagation ?? EMPTY_SELECTION_PROPAGATION
212
- });
213
- useTreeViewSelection.getInitialState = params => ({
214
- selection: {
215
- selectedItems: params.selectedItems === undefined ? params.defaultSelectedItems : params.selectedItems,
216
- isEnabled: !params.disableSelection,
217
- isMultiSelectEnabled: params.multiSelect,
218
- isCheckboxSelectionEnabled: params.checkboxSelection,
219
- selectionPropagation: params.selectionPropagation
220
- }
221
- });
222
- useTreeViewSelection.params = {
223
- disableSelection: true,
224
- multiSelect: true,
225
- checkboxSelection: true,
226
- defaultSelectedItems: true,
227
- selectedItems: true,
228
- onSelectedItemsChange: true,
229
- onItemSelectionToggle: true,
230
- selectionPropagation: true
231
- };
@@ -1,45 +0,0 @@
1
- import { TreeViewState } from "../../models/index.js";
2
- import { UseTreeViewSelectionSignature } from "./useTreeViewSelection.types.js";
3
- export declare const selectionSelectors: {
4
- /**
5
- * Gets the selected items as provided to the component.
6
- */
7
- selectedItemsRaw: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => string | string[] | null;
8
- /**
9
- * Gets the selected items as an array.
10
- */
11
- selectedItems: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>) => string[];
12
- /**
13
- * Gets the selected items as a Map.
14
- */
15
- selectedItemsMap: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>) => Map<string, true>;
16
- /**
17
- * Checks whether selection is enabled.
18
- */
19
- enabled: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => boolean;
20
- /**
21
- * Checks whether multi selection is enabled.
22
- */
23
- isMultiSelectEnabled: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => boolean;
24
- /**
25
- * Checks whether checkbox selection is enabled.
26
- */
27
- isCheckboxSelectionEnabled: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => boolean;
28
- /**
29
- * Gets the selection propagation rules.
30
- */
31
- propagationRules: (state: TreeViewState<[UseTreeViewSelectionSignature]>) => import("../../../index.js").TreeViewSelectionPropagation;
32
- /**
33
- * Checks whether an item is selected.
34
- */
35
- isItemSelected: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>, itemId: string) => boolean;
36
- /**
37
- * Checks whether the selection feature is enabled for an item.
38
- * Returns `true` when selection is enabled on the Tree View and the item is selectable (even if the item is disabled).
39
- */
40
- isFeatureEnabledForItem: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>, _itemId: string) => boolean;
41
- /**
42
- * Checks whether an item can be selected (if selection is enabled, if the item is not disabled, and if the item is selectable).
43
- */
44
- canItemBeSelected: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>, _itemId: string) => boolean;
45
- };
@@ -1,132 +0,0 @@
1
- import * as React from 'react';
2
- import type { DefaultizedProps } from '@mui/x-internals/types';
3
- import type { TreeViewPluginSignature } from "../../models/index.js";
4
- import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
5
- import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
6
- import { TreeViewSelectionPropagation, TreeViewItemId } 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 {TreeViewItemId} 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: TreeViewItemId;
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 {TreeViewItemId} itemId The id of the item to expand the selection to.
33
- */
34
- expandSelectionRange: (event: React.SyntheticEvent, itemId: TreeViewItemId) => 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 {TreeViewItemId} itemId The id of the item up to which the selection range should be expanded.
39
- */
40
- selectRangeFromStartToItem: (event: React.SyntheticEvent, itemId: TreeViewItemId) => 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 {TreeViewItemId} itemId The id of the item from which the selection range should be expanded.
45
- */
46
- selectRangeFromItemToEnd: (event: React.SyntheticEvent, itemId: TreeViewItemId) => 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 {TreeViewItemId} currentItemId The id of the active item before the keyboard navigation.
51
- * @param {TreeViewItemId} nextItemId The id of the active item after the keyboard navigation.
52
- */
53
- selectItemFromArrowNavigation: (event: React.SyntheticEvent, currentItemId: TreeViewItemId, nextItemId: TreeViewItemId) => void;
54
- }
55
- export type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ? TreeViewItemId[] : TreeViewItemId | null;
56
- export interface UseTreeViewSelectionParameters<Multiple extends boolean | undefined> {
57
- /**
58
- * Whether 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
- * Whether multiple items can be selected.
75
- * @default false
76
- */
77
- multiSelect?: Multiple;
78
- /**
79
- * Whether 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 {TreeViewItemId[] | TreeViewItemId} 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 {TreeViewItemId} itemId The itemId of the modified item.
111
- * @param {boolean} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
112
- */
113
- onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isSelected: boolean) => void;
114
- }
115
- export type UseTreeViewSelectionParametersWithDefaults<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
116
- export interface UseTreeViewSelectionState {
117
- selection: {
118
- selectedItems: TreeViewSelectionValue<boolean>;
119
- isEnabled: boolean;
120
- isMultiSelectEnabled: boolean;
121
- isCheckboxSelectionEnabled: boolean;
122
- selectionPropagation: TreeViewSelectionPropagation;
123
- };
124
- }
125
- export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
126
- params: UseTreeViewSelectionParameters<any>;
127
- paramsWithDefaults: UseTreeViewSelectionParametersWithDefaults<any>;
128
- instance: UseTreeViewSelectionInstance;
129
- publicAPI: UseTreeViewSelectionPublicAPI;
130
- state: UseTreeViewSelectionState;
131
- dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewItemsSignature];
132
- }>;
@@ -1,31 +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
- export declare const getLookupFromArray: (array: string[]) => {
5
- [itemId: string]: true;
6
- };
7
- export declare const getAddedAndRemovedItems: ({
8
- store,
9
- oldModel,
10
- newModel
11
- }: {
12
- store: TreeViewUsedStore<UseTreeViewSelectionSignature>;
13
- oldModel: TreeViewItemId[];
14
- newModel: TreeViewItemId[];
15
- }) => {
16
- added: string[];
17
- removed: string[];
18
- };
19
- export declare const propagateSelection: ({
20
- store,
21
- selectionPropagation,
22
- newModel,
23
- oldModel,
24
- additionalItemsToPropagate
25
- }: {
26
- store: TreeViewUsedStore<UseTreeViewSelectionSignature>;
27
- selectionPropagation: TreeViewSelectionPropagation;
28
- newModel: TreeViewItemId[];
29
- oldModel: TreeViewItemId[];
30
- additionalItemsToPropagate?: TreeViewItemId[];
31
- }) => string[];
@@ -1,107 +0,0 @@
1
- import { selectionSelectors } from "./useTreeViewSelection.selectors.js";
2
- import { itemsSelectors } from "../useTreeViewItems/useTreeViewItems.selectors.js";
3
- export const getLookupFromArray = array => {
4
- const lookup = {};
5
- array.forEach(itemId => {
6
- lookup[itemId] = true;
7
- });
8
- return lookup;
9
- };
10
- export const getAddedAndRemovedItems = ({
11
- store,
12
- oldModel,
13
- newModel
14
- }) => {
15
- const newModelMap = new Map();
16
- newModel.forEach(id => {
17
- newModelMap.set(id, true);
18
- });
19
- return {
20
- added: newModel.filter(itemId => !selectionSelectors.isItemSelected(store.state, itemId)),
21
- removed: oldModel.filter(itemId => !newModelMap.has(itemId))
22
- };
23
- };
24
- export const propagateSelection = ({
25
- store,
26
- selectionPropagation,
27
- newModel,
28
- oldModel,
29
- additionalItemsToPropagate
30
- }) => {
31
- if (!selectionPropagation.descendants && !selectionPropagation.parents) {
32
- return newModel;
33
- }
34
- let shouldRegenerateModel = false;
35
- const newModelLookup = getLookupFromArray(newModel);
36
- const changes = getAddedAndRemovedItems({
37
- store,
38
- newModel,
39
- oldModel
40
- });
41
- additionalItemsToPropagate?.forEach(itemId => {
42
- if (newModelLookup[itemId]) {
43
- if (!changes.added.includes(itemId)) {
44
- changes.added.push(itemId);
45
- }
46
- } else if (!changes.removed.includes(itemId)) {
47
- changes.removed.push(itemId);
48
- }
49
- });
50
- changes.added.forEach(addedItemId => {
51
- if (selectionPropagation.descendants) {
52
- const selectDescendants = itemId => {
53
- if (itemId !== addedItemId) {
54
- shouldRegenerateModel = true;
55
- newModelLookup[itemId] = true;
56
- }
57
- itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(selectDescendants);
58
- };
59
- selectDescendants(addedItemId);
60
- }
61
- if (selectionPropagation.parents) {
62
- const checkAllDescendantsSelected = itemId => {
63
- if (!newModelLookup[itemId]) {
64
- return false;
65
- }
66
- const children = itemsSelectors.itemOrderedChildrenIds(store.state, itemId);
67
- return children.every(checkAllDescendantsSelected);
68
- };
69
- const selectParents = itemId => {
70
- const parentId = itemsSelectors.itemParentId(store.state, itemId);
71
- if (parentId == null) {
72
- return;
73
- }
74
- const siblings = itemsSelectors.itemOrderedChildrenIds(store.state, parentId);
75
- if (siblings.every(checkAllDescendantsSelected)) {
76
- shouldRegenerateModel = true;
77
- newModelLookup[parentId] = true;
78
- selectParents(parentId);
79
- }
80
- };
81
- selectParents(addedItemId);
82
- }
83
- });
84
- changes.removed.forEach(removedItemId => {
85
- if (selectionPropagation.parents) {
86
- let parentId = itemsSelectors.itemParentId(store.state, removedItemId);
87
- while (parentId != null) {
88
- if (newModelLookup[parentId]) {
89
- shouldRegenerateModel = true;
90
- delete newModelLookup[parentId];
91
- }
92
- parentId = itemsSelectors.itemParentId(store.state, parentId);
93
- }
94
- }
95
- if (selectionPropagation.descendants) {
96
- const deSelectDescendants = itemId => {
97
- if (itemId !== removedItemId) {
98
- shouldRegenerateModel = true;
99
- delete newModelLookup[itemId];
100
- }
101
- itemsSelectors.itemOrderedChildrenIds(store.state, itemId).forEach(deSelectDescendants);
102
- };
103
- deSelectDescendants(removedItemId);
104
- }
105
- });
106
- return shouldRegenerateModel ? Object.keys(newModelLookup) : newModel;
107
- };
@@ -1 +0,0 @@
1
- export { useTreeView } from "./useTreeView.js";
@@ -1 +0,0 @@
1
- export { useTreeView } from "./useTreeView.js";
@@ -1,19 +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
- export declare const useExtractPluginParamsFromProps: <TSignatures extends readonly TreeViewPluginSignature<any>[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>>({
5
- props: {
6
- apiRef,
7
- ...props
8
- },
9
- plugins
10
- }: ExtractPluginParamsFromPropsParameters<TSignatures, TProps>) => ExtractPluginParamsFromPropsReturnValue<TSignatures, TProps>;
11
- interface ExtractPluginParamsFromPropsParameters<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> {
12
- plugins: ConvertSignaturesIntoPlugins<readonly [...TreeViewCorePluginSignatures, ...TSignatures]>;
13
- props: TProps;
14
- }
15
- interface ExtractPluginParamsFromPropsReturnValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>> extends UseTreeViewBaseProps<TSignatures> {
16
- pluginParams: MergeSignaturesProperty<TSignatures, 'paramsWithDefaults'>;
17
- forwardedProps: Omit<TProps, keyof MergeSignaturesProperty<TSignatures, 'params'>>;
18
- }
19
- export {};
@@ -1,51 +0,0 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- const _excluded = ["apiRef"];
3
- import * as React from 'react';
4
- export const useExtractPluginParamsFromProps = _ref => {
5
- let {
6
- props: {
7
- apiRef
8
- },
9
- plugins
10
- } = _ref,
11
- props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
12
- const paramsLookup = React.useMemo(() => {
13
- const tempParamsLookup = {};
14
- plugins.forEach(plugin => {
15
- Object.assign(tempParamsLookup, plugin.params);
16
- });
17
- return tempParamsLookup;
18
- }, [plugins]);
19
- const {
20
- forwardedProps,
21
- pluginParams
22
- } = React.useMemo(() => {
23
- const tempPluginParams = {};
24
- const tempForwardedProps = {};
25
- Object.keys(props).forEach(propName => {
26
- const prop = props[propName];
27
- if (paramsLookup[propName]) {
28
- tempPluginParams[propName] = prop;
29
- } else {
30
- tempForwardedProps[propName] = prop;
31
- }
32
- });
33
- const pluginParamsWithDefaults = plugins.reduce((acc, plugin) => {
34
- if (plugin.applyDefaultValuesToParams) {
35
- return plugin.applyDefaultValuesToParams({
36
- params: acc
37
- });
38
- }
39
- return acc;
40
- }, tempPluginParams);
41
- return {
42
- forwardedProps: tempForwardedProps,
43
- pluginParams: pluginParamsWithDefaults
44
- };
45
- }, [plugins, props, paramsLookup]);
46
- return {
47
- forwardedProps,
48
- pluginParams,
49
- apiRef
50
- };
51
- };
@@ -1,18 +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<Partial<T> | undefined> | undefined): React.RefObject<T>;
5
- /**
6
- * This is the main hook that sets the plugin system up for the tree-view.
7
- *
8
- * It manages the data used to create the tree-view.
9
- *
10
- * @param plugins All the plugins that will be used in the tree-view.
11
- * @param props The props passed to the tree-view.
12
- * @param rootRef The ref of the root element.
13
- */
14
- export declare const useTreeView: <TSignatures extends readonly TreeViewAnyPluginSignature[], TProps extends Partial<UseTreeViewBaseProps<TSignatures>>>({
15
- plugins: inPlugins,
16
- rootRef,
17
- props
18
- }: UseTreeViewParameters<TSignatures, TProps>) => UseTreeViewReturnValue<TSignatures>;