@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,100 +0,0 @@
1
- import { DefaultizedProps } from '@mui/x-internals/types';
2
- import { TreeViewPluginSignature } from "../../models/index.js";
3
- import { DataSourceCache } from "../../../utils/index.js";
4
- import { TreeViewItemId } from "../../../models/index.js";
5
- import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
6
- import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
7
- import { UseTreeViewSelectionSignature } from "../useTreeViewSelection/index.js";
8
- export type DataSource<R extends {}> = {
9
- /**
10
- * Used to determine the number of children the item has.
11
- * Only relevant for lazy-loaded trees.
12
- *
13
- * @template R
14
- * @param {R} item The item to check.
15
- * @returns {number} The number of children.
16
- */
17
- getChildrenCount: (item: R) => number;
18
- /**
19
- * Method used for fetching the items.
20
- * Only relevant for lazy-loaded tree views.
21
- *
22
- * @template R
23
- * @param {TreeViewItemId} parentId The id of the item the children belong to.
24
- * @returns { Promise<R[]>} The children of the item.
25
- */
26
- getTreeItems: (parentId?: TreeViewItemId) => Promise<R[]>;
27
- };
28
- export interface UseTreeViewLazyLoadingPublicAPI {
29
- /**
30
- * Method used for updating an item's children.
31
- * Only relevant for lazy-loaded tree views.
32
- *
33
- * @param {TreeViewItemId | null} itemId The id of the item to update the children of. If null is passed, it will update the root's children.
34
- * @returns {Promise<void>} The promise resolved when the items are fetched.
35
- */
36
- updateItemChildren: (itemId: TreeViewItemId | null) => Promise<void>;
37
- }
38
- export interface UseTreeViewLazyLoadingInstance extends UseTreeViewLazyLoadingPublicAPI {
39
- /**
40
- * Method used for fetching multiple items concurrently.
41
- * Only relevant for lazy-loaded tree views.
42
- *
43
- * @param {TreeViewItemId[]} parentIds The ids of the items to fetch the children of.
44
- * @returns {Promise<void>} The promise resolved when the items are fetched.
45
- */
46
- fetchItems: (parentIds: TreeViewItemId[]) => Promise<void>;
47
- /**
48
- * Method used for fetching an item's children.
49
- * Only relevant for lazy-loaded tree views.
50
- *
51
- * @param {object} parameters The parameters of the method.
52
- * @param {TreeViewItemId} parameters.itemId The The id of the item to fetch the children of.
53
- * @param {boolean} [parameters.forceRefresh] Whether to force a refresh of the children when the cache already contains some data.
54
- * @returns {Promise<void>} The promise resolved when the items are fetched.
55
- */
56
- fetchItemChildren: (parameters: {
57
- itemId: TreeViewItemId | null;
58
- forceRefresh?: boolean;
59
- }) => Promise<void>;
60
- /**
61
- * Set the loading state of an item.
62
- * @param {TreeViewItemId} itemId The id of the item to set the loading state of. If `null` is passed, it will set the loading state of the root.
63
- * @param {boolean} isLoading True if the item is loading.
64
- */
65
- setDataSourceLoading: (itemId: TreeViewItemId | null, isLoading: boolean) => void;
66
- /**
67
- * Set the error state of an item.
68
- * @param {TreeViewItemId} itemId The id of the item to set the error state of. If `null` is passed, it will set the error state of the root.
69
- * @param {Error | null} error The error caught on the item.
70
- */
71
- setDataSourceError: (itemId: TreeViewItemId | null, error: Error | null) => void;
72
- }
73
- export interface UseTreeViewLazyLoadingParameters<R extends {}> {
74
- /**
75
- * The data source object.
76
- */
77
- dataSource?: DataSource<R>;
78
- /**
79
- * The data source cache object.
80
- */
81
- dataSourceCache?: DataSourceCache;
82
- }
83
- export type UseTreeViewLazyLoadingParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLazyLoadingParameters<R>, 'dataSource'>;
84
- export interface UseTreeViewLazyLoadingState {
85
- lazyLoading: {
86
- enabled: boolean;
87
- dataSource: {
88
- loading: Record<TreeViewItemId, boolean>;
89
- errors: Record<TreeViewItemId, Error | null>;
90
- };
91
- };
92
- }
93
- export type UseTreeViewLazyLoadingSignature = TreeViewPluginSignature<{
94
- params: UseTreeViewLazyLoadingParameters<any>;
95
- paramsWithDefaults: UseTreeViewLazyLoadingParametersWithDefaults<any>;
96
- publicAPI: UseTreeViewLazyLoadingPublicAPI;
97
- instance: UseTreeViewLazyLoadingInstance;
98
- state: UseTreeViewLazyLoadingState;
99
- dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewSelectionSignature];
100
- }>;
@@ -1,3 +0,0 @@
1
- export { useTreeViewSelection } from "./useTreeViewSelection.js";
2
- export type { UseTreeViewSelectionSignature, UseTreeViewSelectionParameters, UseTreeViewSelectionParametersWithDefaults } from "./useTreeViewSelection.types.js";
3
- export { selectionSelectors } from "./useTreeViewSelection.selectors.js";
@@ -1,2 +0,0 @@
1
- export { useTreeViewSelection } from "./useTreeViewSelection.js";
2
- export { selectionSelectors } from "./useTreeViewSelection.selectors.js";
@@ -1,3 +0,0 @@
1
- import { TreeViewPlugin } from "../../models/index.js";
2
- import { UseTreeViewSelectionSignature } from "./useTreeViewSelection.types.js";
3
- export declare const useTreeViewSelection: TreeViewPlugin<UseTreeViewSelectionSignature>;
@@ -1,230 +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-components/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 { useTreeViewSelectionItemPlugin } from "./itemPlugin.js";
9
- export const useTreeViewSelection = ({
10
- store,
11
- params
12
- }) => {
13
- useAssertModelConsistency({
14
- componentName: 'Tree View',
15
- propName: 'selectedItems',
16
- controlled: params.selectedItems,
17
- defaultValue: params.defaultSelectedItems
18
- });
19
- const lastSelectedItem = React.useRef(null);
20
- const lastSelectedRange = React.useRef({});
21
- const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
22
- const oldModel = selectionSelectors.selectedItemsRaw(store.state);
23
- let cleanModel;
24
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
25
- if (isMultiSelectEnabled && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
26
- cleanModel = propagateSelection({
27
- store,
28
- selectionPropagation: params.selectionPropagation,
29
- newModel: newModel,
30
- oldModel: oldModel,
31
- additionalItemsToPropagate
32
- });
33
- } else {
34
- cleanModel = newModel;
35
- }
36
- if (params.onItemSelectionToggle) {
37
- if (isMultiSelectEnabled) {
38
- const changes = getAddedAndRemovedItems({
39
- store,
40
- newModel: cleanModel,
41
- oldModel: oldModel
42
- });
43
- if (params.onItemSelectionToggle) {
44
- changes.added.forEach(itemId => {
45
- params.onItemSelectionToggle(event, itemId, true);
46
- });
47
- changes.removed.forEach(itemId => {
48
- params.onItemSelectionToggle(event, itemId, false);
49
- });
50
- }
51
- } else if (params.onItemSelectionToggle && cleanModel !== oldModel) {
52
- if (oldModel != null) {
53
- params.onItemSelectionToggle(event, oldModel, false);
54
- }
55
- if (cleanModel != null) {
56
- params.onItemSelectionToggle(event, cleanModel, true);
57
- }
58
- }
59
- }
60
- if (params.selectedItems === undefined) {
61
- store.set('selection', _extends({}, store.state.selection, {
62
- selectedItems: cleanModel
63
- }));
64
- }
65
- params.onSelectedItemsChange?.(event, cleanModel);
66
- };
67
- const setItemSelection = ({
68
- itemId,
69
- event = null,
70
- keepExistingSelection = false,
71
- shouldBeSelected
72
- }) => {
73
- if (!selectionSelectors.enabled(store.state)) {
74
- return;
75
- }
76
- let newSelected;
77
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
78
- if (keepExistingSelection) {
79
- const oldSelected = selectionSelectors.selectedItems(store.state);
80
- const isSelectedBefore = selectionSelectors.isItemSelected(store.state, itemId);
81
- if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {
82
- newSelected = oldSelected.filter(id => id !== itemId);
83
- } else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {
84
- newSelected = [itemId].concat(oldSelected);
85
- } else {
86
- newSelected = oldSelected;
87
- }
88
- } else {
89
- // eslint-disable-next-line no-lonely-if
90
- if (shouldBeSelected === false || shouldBeSelected == null && selectionSelectors.isItemSelected(store.state, itemId)) {
91
- newSelected = isMultiSelectEnabled ? [] : null;
92
- } else {
93
- newSelected = isMultiSelectEnabled ? [itemId] : itemId;
94
- }
95
- }
96
- setSelectedItems(event, newSelected,
97
- // If shouldBeSelected === selectionSelectors.isItemSelected(store, itemId), we still want to propagate the select.
98
- // This is useful when the element is in an indeterminate state.
99
- [itemId]);
100
- lastSelectedItem.current = itemId;
101
- lastSelectedRange.current = {};
102
- };
103
- const selectRange = (event, [start, end]) => {
104
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
105
- if (!isMultiSelectEnabled) {
106
- return;
107
- }
108
- let newSelectedItems = selectionSelectors.selectedItems(store.state).slice();
109
-
110
- // If the last selection was a range selection,
111
- // remove the items that were part of the last range from the model
112
- if (Object.keys(lastSelectedRange.current).length > 0) {
113
- newSelectedItems = newSelectedItems.filter(id => !lastSelectedRange.current[id]);
114
- }
115
-
116
- // Add to the model the items that are part of the new range and not already part of the model.
117
- const selectedItemsLookup = getLookupFromArray(newSelectedItems);
118
- const range = getNonDisabledItemsInRange(store.state, start, end);
119
- const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);
120
- newSelectedItems = newSelectedItems.concat(itemsToAddToModel);
121
- setSelectedItems(event, newSelectedItems);
122
- lastSelectedRange.current = getLookupFromArray(range);
123
- };
124
- const expandSelectionRange = (event, itemId) => {
125
- if (lastSelectedItem.current != null) {
126
- const [start, end] = findOrderInTremauxTree(store.state, itemId, lastSelectedItem.current);
127
- selectRange(event, [start, end]);
128
- }
129
- };
130
- const selectRangeFromStartToItem = (event, itemId) => {
131
- selectRange(event, [getFirstNavigableItem(store.state), itemId]);
132
- };
133
- const selectRangeFromItemToEnd = (event, itemId) => {
134
- selectRange(event, [itemId, getLastNavigableItem(store.state)]);
135
- };
136
- const selectAllNavigableItems = event => {
137
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
138
- if (!isMultiSelectEnabled) {
139
- return;
140
- }
141
- const navigableItems = getAllNavigableItems(store.state);
142
- setSelectedItems(event, navigableItems);
143
- lastSelectedRange.current = getLookupFromArray(navigableItems);
144
- };
145
- const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
146
- const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(store.state);
147
- if (!isMultiSelectEnabled) {
148
- return;
149
- }
150
- let newSelectedItems = selectionSelectors.selectedItems(store.state).slice();
151
- if (Object.keys(lastSelectedRange.current).length === 0) {
152
- newSelectedItems.push(nextItem);
153
- lastSelectedRange.current = {
154
- [currentItem]: true,
155
- [nextItem]: true
156
- };
157
- } else {
158
- if (!lastSelectedRange.current[currentItem]) {
159
- lastSelectedRange.current = {};
160
- }
161
- if (lastSelectedRange.current[nextItem]) {
162
- newSelectedItems = newSelectedItems.filter(id => id !== currentItem);
163
- delete lastSelectedRange.current[currentItem];
164
- } else {
165
- newSelectedItems.push(nextItem);
166
- lastSelectedRange.current[nextItem] = true;
167
- }
168
- }
169
- setSelectedItems(event, newSelectedItems);
170
- };
171
- useIsoLayoutEffect(() => {
172
- store.set('selection', {
173
- selectedItems: params.selectedItems === undefined ? store.state.selection.selectedItems : params.selectedItems,
174
- isEnabled: !params.disableSelection,
175
- isMultiSelectEnabled: params.multiSelect,
176
- isCheckboxSelectionEnabled: params.checkboxSelection,
177
- selectionPropagation: {
178
- descendants: params.selectionPropagation.descendants,
179
- parents: params.selectionPropagation.parents
180
- }
181
- });
182
- }, [store, params.selectedItems, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
183
- return {
184
- getRootProps: () => ({
185
- 'aria-multiselectable': params.multiSelect
186
- }),
187
- publicAPI: {
188
- setItemSelection
189
- },
190
- instance: {
191
- setItemSelection,
192
- selectAllNavigableItems,
193
- expandSelectionRange,
194
- selectRangeFromStartToItem,
195
- selectRangeFromItemToEnd,
196
- selectItemFromArrowNavigation
197
- }
198
- };
199
- };
200
- useTreeViewSelection.itemPlugin = useTreeViewSelectionItemPlugin;
201
- const DEFAULT_SELECTED_ITEMS = [];
202
- const EMPTY_SELECTION_PROPAGATION = {};
203
- useTreeViewSelection.applyDefaultValuesToParams = ({
204
- params
205
- }) => _extends({}, params, {
206
- disableSelection: params.disableSelection ?? false,
207
- multiSelect: params.multiSelect ?? false,
208
- checkboxSelection: params.checkboxSelection ?? false,
209
- defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null),
210
- selectionPropagation: params.selectionPropagation ?? EMPTY_SELECTION_PROPAGATION
211
- });
212
- useTreeViewSelection.getInitialState = params => ({
213
- selection: {
214
- selectedItems: params.selectedItems === undefined ? params.defaultSelectedItems : params.selectedItems,
215
- isEnabled: !params.disableSelection,
216
- isMultiSelectEnabled: params.multiSelect,
217
- isCheckboxSelectionEnabled: params.checkboxSelection,
218
- selectionPropagation: params.selectionPropagation
219
- }
220
- });
221
- useTreeViewSelection.params = {
222
- disableSelection: true,
223
- multiSelect: true,
224
- checkboxSelection: true,
225
- defaultSelectedItems: true,
226
- selectedItems: true,
227
- onSelectedItemsChange: true,
228
- onItemSelectionToggle: true,
229
- selectionPropagation: true
230
- };
@@ -1,40 +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 an item can be selected (if selection is enabled and if the item is not disabled).
38
- */
39
- canItemBeSelected: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}>, _itemId: string) => boolean;
40
- };
@@ -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";