@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
@@ -0,0 +1,90 @@
1
+ import { Store } from '@mui/x-internals/store';
2
+ import { MinimalTreeViewParameters, TreeViewParametersToStateMapper, MinimalTreeViewState } from "./MinimalTreeViewStore.types.js";
3
+ import { TreeViewValidItem } from "../../models/index.js";
4
+ import { TimeoutManager } from "./TimeoutManager.js";
5
+ import { TreeViewKeyboardNavigationPlugin } from "../plugins/keyboardNavigation/index.js";
6
+ import { TreeViewFocusPlugin } from "../plugins/focus/TreeViewFocusPlugin.js";
7
+ import { TreeViewItemsPlugin } from "../plugins/items/TreeViewItemsPlugin.js";
8
+ import { TreeViewSelectionPlugin } from "../plugins/selection/TreeViewSelectionPlugin.js";
9
+ import { TreeViewExpansionPlugin } from "../plugins/expansion/index.js";
10
+ import { TreeViewItemPluginManager } from "./TreeViewItemPluginManager.js";
11
+ import { TreeViewEventEvent, TreeViewEventListener, TreeViewEventParameters, TreeViewEvents } from "../models/index.js";
12
+ export declare class MinimalTreeViewStore<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined, State extends MinimalTreeViewState<R, Multiple> = MinimalTreeViewState<R, Multiple>, Parameters extends MinimalTreeViewParameters<R, Multiple> = MinimalTreeViewParameters<R, Multiple>> extends Store<State> {
13
+ private initialParameters;
14
+ private mapper;
15
+ private eventManager;
16
+ instanceName: string;
17
+ parameters: Parameters;
18
+ timeoutManager: TimeoutManager;
19
+ itemPluginManager: TreeViewItemPluginManager<this>;
20
+ items: TreeViewItemsPlugin<R>;
21
+ focus: TreeViewFocusPlugin;
22
+ expansion: TreeViewExpansionPlugin;
23
+ selection: TreeViewSelectionPlugin<Multiple>;
24
+ keyboardNavigation: TreeViewKeyboardNavigationPlugin;
25
+ constructor(parameters: Parameters, instanceName: string, mapper: TreeViewParametersToStateMapper<R, Multiple, State, Parameters>);
26
+ /**
27
+ * Builds an object containing the method that should be exposed publicly by the Tree View components.
28
+ */
29
+ buildPublicAPI(): {
30
+ setItemSelection: ({
31
+ itemId,
32
+ event,
33
+ keepExistingSelection,
34
+ shouldBeSelected
35
+ }: {
36
+ itemId: string;
37
+ event?: React.SyntheticEvent | null;
38
+ shouldBeSelected?: boolean;
39
+ keepExistingSelection?: boolean;
40
+ }) => void;
41
+ isItemExpanded: (itemId: import("../../index.js").TreeViewItemId) => boolean;
42
+ setItemExpansion: ({
43
+ itemId,
44
+ event,
45
+ shouldBeExpanded
46
+ }: {
47
+ itemId: import("../../index.js").TreeViewItemId;
48
+ event?: React.SyntheticEvent | null;
49
+ shouldBeExpanded?: boolean;
50
+ }) => void;
51
+ focusItem: (event: React.SyntheticEvent | null, itemId: import("../../index.js").TreeViewItemId) => void;
52
+ getItem: (itemId: import("../../index.js").TreeViewItemId) => R;
53
+ getItemDOMElement: (itemId: import("../../index.js").TreeViewItemId) => HTMLElement | null;
54
+ getItemOrderedChildrenIds: (itemId: import("../../index.js").TreeViewItemId | null) => import("../../index.js").TreeViewItemId[];
55
+ getItemTree: () => R[];
56
+ getParentId: (itemId: import("../../index.js").TreeViewItemId) => import("../../index.js").TreeViewItemId | null;
57
+ setIsItemDisabled: ({
58
+ itemId,
59
+ shouldBeDisabled
60
+ }: {
61
+ itemId: import("../../index.js").TreeViewItemId;
62
+ shouldBeDisabled?: boolean;
63
+ }) => void;
64
+ };
65
+ /**
66
+ * Updates the state of the Tree View based on the new parameters provided to the root component.
67
+ */
68
+ updateStateFromParameters(parameters: Parameters): void;
69
+ /**
70
+ * Returns a cleanup function that need to be called when the store is destroyed.
71
+ */
72
+ disposeEffect: () => () => void;
73
+ /**
74
+ * Whether updates based on `props.items` change should be ignored.
75
+ */
76
+ shouldIgnoreItemsStateUpdate: () => boolean;
77
+ /**
78
+ * Registers an effect to be run when the value returned by the selector changes.
79
+ */
80
+ registerStoreEffect: <Value>(selector: (state: State) => Value, effect: (previous: Value, next: Value) => void) => void;
81
+ /**
82
+ * Publishes an event to all its subscribers.
83
+ */
84
+ publishEvent: <E extends TreeViewEvents>(name: E, params: TreeViewEventParameters<E>, event: TreeViewEventEvent<E>) => void;
85
+ /**
86
+ * Subscribe to an event emitted by the store.
87
+ * For now, the subscription is only removed when the store is destroyed.
88
+ */
89
+ subscribeEvent: <E extends TreeViewEvents>(eventName: E, handler: TreeViewEventListener<E>) => void;
90
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MinimalTreeViewStore = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _store = require("@mui/x-internals/store");
10
+ var _warning = require("@mui/x-internals/warning");
11
+ var _EventManager = require("@mui/x-internals/EventManager");
12
+ var _MinimalTreeViewStore = require("./MinimalTreeViewStore.utils");
13
+ var _TimeoutManager = require("./TimeoutManager");
14
+ var _keyboardNavigation = require("../plugins/keyboardNavigation");
15
+ var _TreeViewFocusPlugin = require("../plugins/focus/TreeViewFocusPlugin");
16
+ var _TreeViewItemsPlugin = require("../plugins/items/TreeViewItemsPlugin");
17
+ var _TreeViewSelectionPlugin = require("../plugins/selection/TreeViewSelectionPlugin");
18
+ var _expansion = require("../plugins/expansion");
19
+ var _TreeViewItemPluginManager = require("./TreeViewItemPluginManager");
20
+ class MinimalTreeViewStore extends _store.Store {
21
+ initialParameters = null;
22
+ eventManager = new _EventManager.EventManager();
23
+ timeoutManager = new _TimeoutManager.TimeoutManager();
24
+ itemPluginManager = new _TreeViewItemPluginManager.TreeViewItemPluginManager();
25
+ constructor(parameters, instanceName, mapper) {
26
+ const minimalInitialState = (0, _MinimalTreeViewStore.createMinimalInitialState)(parameters);
27
+ const initialState = mapper.getInitialState(minimalInitialState, parameters);
28
+ super(initialState);
29
+ this.parameters = parameters;
30
+ this.instanceName = instanceName;
31
+ this.mapper = mapper;
32
+
33
+ // We mount the plugins in the constructor to make sure all the methods of the store are available to the plugins during their construction.
34
+ this.items = new _TreeViewItemsPlugin.TreeViewItemsPlugin(this);
35
+ this.focus = new _TreeViewFocusPlugin.TreeViewFocusPlugin(this);
36
+ this.expansion = new _expansion.TreeViewExpansionPlugin(this);
37
+ this.selection = new _TreeViewSelectionPlugin.TreeViewSelectionPlugin(this);
38
+ this.keyboardNavigation = new _keyboardNavigation.TreeViewKeyboardNavigationPlugin(this);
39
+ if (process.env.NODE_ENV !== 'production') {
40
+ this.initialParameters = parameters;
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Builds an object containing the method that should be exposed publicly by the Tree View components.
46
+ */
47
+ buildPublicAPI() {
48
+ return (0, _extends2.default)({}, this.items.buildPublicAPI(), this.focus.buildPublicAPI(), this.expansion.buildPublicAPI(), this.selection.buildPublicAPI());
49
+ }
50
+
51
+ /**
52
+ * Updates the state of the Tree View based on the new parameters provided to the root component.
53
+ */
54
+ updateStateFromParameters(parameters) {
55
+ const updateModel = (mutableNewState, controlledProp, defaultProp) => {
56
+ if (parameters[controlledProp] !== undefined) {
57
+ mutableNewState[controlledProp] = parameters[controlledProp];
58
+ }
59
+ if (process.env.NODE_ENV !== 'production') {
60
+ const defaultValue = parameters[defaultProp];
61
+ const isControlled = parameters[controlledProp] !== undefined;
62
+ const initialDefaultValue = this.initialParameters?.[defaultProp];
63
+ const initialIsControlled = this.initialParameters?.[controlledProp] !== undefined;
64
+ if (initialIsControlled !== isControlled) {
65
+ (0, _warning.warnOnce)([`MUI X Tree View: A component is changing the ${initialIsControlled ? '' : 'un'}controlled ${controlledProp} state of ${this.instanceName} to be ${initialIsControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${controlledProp} element for the lifetime of the component.`, "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'], 'error');
66
+ } else if (JSON.stringify(initialDefaultValue) !== JSON.stringify(defaultValue)) {
67
+ (0, _warning.warnOnce)([`MUI X Tree View: A component is changing the default ${controlledProp} state of an uncontrolled ${this.instanceName} after being initialized. `, `To suppress this warning opt to use a controlled ${this.instanceName}.`], 'error');
68
+ }
69
+ }
70
+ };
71
+ const newMinimalState = (0, _MinimalTreeViewStore.deriveStateFromParameters)(parameters);
72
+ updateModel(newMinimalState, 'expandedItems', 'defaultExpandedItems');
73
+ updateModel(newMinimalState, 'selectedItems', 'defaultSelectedItems');
74
+ if (this.state.providedTreeId !== parameters.id || this.state.treeId === undefined) {
75
+ newMinimalState.treeId = (0, _MinimalTreeViewStore.createTreeViewDefaultId)();
76
+ }
77
+ if (!this.mapper.shouldIgnoreItemsStateUpdate(parameters) && _TreeViewItemsPlugin.TreeViewItemsPlugin.shouldRebuildItemsState(parameters, this.parameters)) {
78
+ Object.assign(newMinimalState, _TreeViewItemsPlugin.TreeViewItemsPlugin.buildItemsStateIfNeeded(parameters));
79
+ }
80
+ const newState = this.mapper.updateStateFromParameters(newMinimalState, parameters, updateModel);
81
+ this.update(newState);
82
+ this.parameters = parameters;
83
+ }
84
+
85
+ /**
86
+ * Returns a cleanup function that need to be called when the store is destroyed.
87
+ */
88
+ disposeEffect = () => {
89
+ return this.timeoutManager.clearAll;
90
+ };
91
+
92
+ /**
93
+ * Whether updates based on `props.items` change should be ignored.
94
+ */
95
+ shouldIgnoreItemsStateUpdate = () => {
96
+ return this.mapper.shouldIgnoreItemsStateUpdate(this.parameters);
97
+ };
98
+
99
+ /**
100
+ * Registers an effect to be run when the value returned by the selector changes.
101
+ */
102
+ registerStoreEffect = (selector, effect) => {
103
+ let previousValue = selector(this.state);
104
+ this.subscribe(state => {
105
+ const nextValue = selector(state);
106
+ if (nextValue !== previousValue) {
107
+ effect(previousValue, nextValue);
108
+ previousValue = nextValue;
109
+ }
110
+ });
111
+ };
112
+
113
+ /**
114
+ * Publishes an event to all its subscribers.
115
+ */
116
+ publishEvent = (name, params, event) => {
117
+ if (isSyntheticEvent(event) && event.isPropagationStopped()) {
118
+ return;
119
+ }
120
+ this.eventManager.emit(name, params, event);
121
+ };
122
+
123
+ /**
124
+ * Subscribe to an event emitted by the store.
125
+ * For now, the subscription is only removed when the store is destroyed.
126
+ */
127
+ subscribeEvent = (eventName, handler) => {
128
+ this.eventManager.on(eventName, handler);
129
+ };
130
+ }
131
+ exports.MinimalTreeViewStore = MinimalTreeViewStore;
132
+ function isSyntheticEvent(event) {
133
+ return event.isPropagationStopped !== undefined;
134
+ }
@@ -0,0 +1,272 @@
1
+ import { TreeViewItemId, TreeViewSelectionPropagation, TreeViewValidItem } from "../../models/index.js";
2
+ import { TreeViewItemMeta } from "../models/index.js";
3
+ export interface MinimalTreeViewState<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> {
4
+ /**
5
+ * Whether the button should be focusable when disabled.
6
+ * Always equal to `props.disabledItemsFocusable` (or `false` if not provided).
7
+ */
8
+ disabledItemsFocusable: boolean;
9
+ /**
10
+ * Model of each item as provided by `props.items` or by imperative items updates.
11
+ * It is not updated when properties derived from the model are updated:
12
+ * - when the label of an item is updated, `itemMetaLookup` is updated, not `itemModelLookup`.
13
+ * - when the children of an item are updated, `itemOrderedChildrenIdsLookup` and `itemChildrenIndexesLookup` are updated, not `itemModelLookup`.
14
+ * This means that the `children`, `label` or `id` properties of an item model should never be used directly, always use the structured sub-states instead.
15
+ */
16
+ itemModelLookup: {
17
+ [itemId: string]: R;
18
+ };
19
+ /**
20
+ * Meta data of each item.
21
+ */
22
+ itemMetaLookup: {
23
+ [itemId: string]: TreeViewItemMeta;
24
+ };
25
+ /**
26
+ * Ordered children ids of each item.
27
+ */
28
+ itemOrderedChildrenIdsLookup: {
29
+ [parentItemId: string]: TreeViewItemId[];
30
+ };
31
+ /**
32
+ * Index of each child in the ordered children ids of its parent.
33
+ */
34
+ itemChildrenIndexesLookup: {
35
+ [parentItemId: string]: {
36
+ [itemId: string]: number;
37
+ };
38
+ };
39
+ /**
40
+ * When equal to 'flat', the tree is rendered as a flat list (children are rendered as siblings of their parents).
41
+ * When equal to 'nested', the tree is rendered with nested children (children are rendered inside the groupTransition slot of their children).
42
+ * Nested DOM structure is not compatible with collapse / expansion animations.
43
+ */
44
+ domStructure: 'flat' | 'nested';
45
+ /**
46
+ * Horizontal indentation between an item and its children.
47
+ * Examples: 24, "24px", "2rem", "2em".
48
+ */
49
+ itemChildrenIndentation: string | number;
50
+ /**
51
+ * The id of the Tree View as provided by the `id` parameter.
52
+ */
53
+ providedTreeId: string | undefined;
54
+ /**
55
+ * The id of the Tree View used for accessibility attributes.
56
+ */
57
+ treeId: string | undefined;
58
+ /**
59
+ * The ids of the items currently expanded.
60
+ */
61
+ expandedItems: readonly TreeViewItemId[];
62
+ /**
63
+ * The slot that triggers the item's expansion when clicked.
64
+ */
65
+ expansionTrigger: 'content' | 'iconContainer';
66
+ /**
67
+ * The ids of the items currently selected.
68
+ */
69
+ selectedItems: TreeViewSelectionReadonlyValue<Multiple>;
70
+ /**
71
+ * Whether selection is disabled.
72
+ */
73
+ disableSelection: boolean;
74
+ /**
75
+ * Whether multi-selection is enabled.
76
+ */
77
+ multiSelect: boolean;
78
+ /**
79
+ * Whether the Tree View renders a checkbox at the left of its label that allows selecting it.
80
+ */
81
+ checkboxSelection: boolean;
82
+ /**
83
+ * The selection propagation behavior.
84
+ */
85
+ selectionPropagation: TreeViewSelectionPropagation;
86
+ /**
87
+ * The id of the currently focused item.
88
+ */
89
+ focusedItemId: TreeViewItemId | null;
90
+ }
91
+ export interface MinimalTreeViewParameters<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> {
92
+ /**
93
+ * Whether the layout is right-to-left.
94
+ */
95
+ isRtl: boolean;
96
+ /**
97
+ * Whether the items should be focusable when disabled.
98
+ * @default false
99
+ */
100
+ disabledItemsFocusable?: boolean;
101
+ items: readonly R[];
102
+ /**
103
+ * Used to determine if a given item should be disabled.
104
+ * @template R
105
+ * @param {R} item The item to check.
106
+ * @returns {boolean} `true` if the item should be disabled.
107
+ */
108
+ isItemDisabled?: (item: R) => boolean;
109
+ /**
110
+ * Used to determine if a given item should have selection disabled.
111
+ * @template R
112
+ * @param {R} item The item to check.
113
+ * @returns {boolean} `true` if the item should have selection disabled.
114
+ */
115
+ isItemSelectionDisabled?: (item: R) => boolean;
116
+ /**
117
+ * Used to determine the string label for a given item.
118
+ *
119
+ * @template R
120
+ * @param {R} item The item to check.
121
+ * @returns {string} The label of the item.
122
+ * @default (item) => item.label
123
+ */
124
+ getItemLabel?: (item: R) => string;
125
+ /**
126
+ * Used to determine the children of a given item.
127
+ *
128
+ * @template R
129
+ * @param {R} item The item to check.
130
+ * @returns {R[]} The children of the item.
131
+ * @default (item) => item.children
132
+ */
133
+ getItemChildren?: (item: R) => R[] | undefined;
134
+ /**
135
+ * Used to determine the id of a given item.
136
+ *
137
+ * @template R
138
+ * @param {R} item The item to check.
139
+ * @returns {TreeViewItemId} The id of the item.
140
+ * @default (item) => item.id
141
+ */
142
+ getItemId?: (item: R) => TreeViewItemId;
143
+ /**
144
+ * Callback fired when the `content` slot of a given Tree Item is clicked.
145
+ * @param {React.MouseEvent} event The DOM event that triggered the change.
146
+ * @param {TreeViewItemId} itemId The id of the focused item.
147
+ */
148
+ onItemClick?: (event: React.MouseEvent, itemId: TreeViewItemId) => void;
149
+ /**
150
+ * Horizontal indentation between an item and its children.
151
+ * Examples: 24, "24px", "2rem", "2em".
152
+ * @default 12px
153
+ */
154
+ itemChildrenIndentation?: string | number;
155
+ /**
156
+ * This prop is used to help implement the accessibility logic.
157
+ * If you don't provide this prop. It falls back to a randomly generated id.
158
+ */
159
+ id?: string;
160
+ /**
161
+ * Expanded item ids.
162
+ * Used when the item's expansion is controlled.
163
+ */
164
+ expandedItems?: readonly TreeViewItemId[];
165
+ /**
166
+ * Expanded item ids.
167
+ * Used when the item's expansion is not controlled.
168
+ * @default []
169
+ */
170
+ defaultExpandedItems?: readonly TreeViewItemId[];
171
+ /**
172
+ * Callback fired when Tree Items are expanded/collapsed.
173
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemExpansion()` method.
174
+ * @param {TreeViewItemId[]} itemIds The ids of the expanded items.
175
+ */
176
+ onExpandedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewItemId[]) => void;
177
+ /**
178
+ * Callback fired when a Tree Item is expanded or collapsed.
179
+ * @param {React.SyntheticEvent | null} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemExpansion()` method.
180
+ * @param {TreeViewItemId} itemId The itemId of the modified item.
181
+ * @param {boolean} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.
182
+ */
183
+ onItemExpansionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isExpanded: boolean) => void;
184
+ /**
185
+ * The slot that triggers the item's expansion when clicked.
186
+ * @default 'content'
187
+ */
188
+ expansionTrigger?: 'content' | 'iconContainer';
189
+ /**
190
+ * Whether selection is disabled.
191
+ * @default false
192
+ */
193
+ disableSelection?: boolean;
194
+ /**
195
+ * Selected item ids. (Controlled)
196
+ * When `multiSelect` is true this takes an array of strings; when false (default) a string.
197
+ */
198
+ selectedItems?: TreeViewSelectionReadonlyValue<Multiple>;
199
+ /**
200
+ * Selected item ids. (Uncontrolled)
201
+ * When `multiSelect` is true this takes an array of strings; when false (default) a string.
202
+ * @default []
203
+ */
204
+ defaultSelectedItems?: TreeViewSelectionReadonlyValue<Multiple>;
205
+ /**
206
+ * Whether multiple items can be selected.
207
+ * @default false
208
+ */
209
+ multiSelect?: Multiple;
210
+ /**
211
+ * Whether the Tree View renders a checkbox at the left of its label that allows selecting it.
212
+ * @default false
213
+ */
214
+ checkboxSelection?: boolean;
215
+ /**
216
+ * When `selectionPropagation.descendants` is set to `true`.
217
+ *
218
+ * - Selecting a parent selects all its descendants automatically.
219
+ * - Deselecting a parent deselects all its descendants automatically.
220
+ *
221
+ * When `selectionPropagation.parents` is set to `true`.
222
+ *
223
+ * - Selecting all the descendants of a parent selects the parent automatically.
224
+ * - Deselecting a descendant of a selected parent deselects the parent automatically.
225
+ *
226
+ * Only works when `multiSelect` is `true`.
227
+ * On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
228
+ *
229
+ * @default { parents: false, descendants: false }
230
+ */
231
+ selectionPropagation?: TreeViewSelectionPropagation;
232
+ /**
233
+ * Callback fired when Tree Items are selected/deselected.
234
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
235
+ * @param {TreeViewItemId[] | TreeViewItemId} itemIds The ids of the selected items.
236
+ * When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
237
+ */
238
+ onSelectedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewSelectionValue<Multiple>) => void;
239
+ /**
240
+ * Callback fired when a Tree Item is selected or deselected.
241
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
242
+ * @param {TreeViewItemId} itemId The itemId of the modified item.
243
+ * @param {boolean} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
244
+ */
245
+ onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isSelected: boolean) => void;
246
+ /**
247
+ * Callback fired when a given Tree Item is focused.
248
+ * @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.
249
+ * @param {TreeViewItemId} itemId The id of the focused item.
250
+ */
251
+ onItemFocus?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId) => void;
252
+ }
253
+ /**
254
+ * Mapper between a Tree View instance's state and parameters.
255
+ * Used by classes extending `TreeViewStore` to manage the state based on the parameters.
256
+ */
257
+ export interface TreeViewParametersToStateMapper<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined, State extends MinimalTreeViewState<R, Multiple>, Parameters extends MinimalTreeViewParameters<R, Multiple>> {
258
+ getInitialState: (treeViewInitialState: MinimalTreeViewState<R, Multiple>, parameters: Parameters) => State;
259
+ updateStateFromParameters: (newState: Partial<MinimalTreeViewState<R, Multiple>>, parameters: Parameters, updateModel: TreeViewModelUpdater<State, Parameters>) => Partial<State>;
260
+ shouldIgnoreItemsStateUpdate: (parameters: Parameters) => boolean;
261
+ }
262
+ export type TreeViewModelUpdater<State extends MinimalTreeViewState<any, any>, Parameters extends MinimalTreeViewParameters<any, any>> = (newState: Partial<State>, controlledProp: keyof Parameters & keyof State & string, defaultProp: keyof Parameters) => void;
263
+ export type TreeViewSelectionReadonlyValue<Multiple extends boolean | undefined> = Multiple extends true ? Multiple extends false ?
264
+ // Multiple === boolean, the type cannot be simplified further
265
+ TreeViewItemId | null | readonly TreeViewItemId[] : readonly TreeViewItemId[] :
266
+ // Multiple === false | undefined, the selection is single
267
+ TreeViewItemId | null;
268
+ export type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ? Multiple extends false ?
269
+ // Multiple === boolean, the type cannot be simplified further
270
+ TreeViewItemId | null | TreeViewItemId[] : TreeViewItemId[] :
271
+ // Multiple === false | undefined, the selection is single
272
+ TreeViewItemId | null;
@@ -0,0 +1,21 @@
1
+ import { TreeViewValidItem } from "../../models/index.js";
2
+ import { MinimalTreeViewParameters, MinimalTreeViewState } from "./MinimalTreeViewStore.types.js";
3
+ /**
4
+ * Returns the properties of the state that are derived from the parameters.
5
+ * This do not contain state properties that don't update whenever the parameters update.
6
+ */
7
+ export declare function deriveStateFromParameters<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined>(parameters: MinimalTreeViewParameters<R, Multiple> & {
8
+ isItemEditable?: any;
9
+ }): {
10
+ disabledItemsFocusable: boolean;
11
+ domStructure: "nested";
12
+ itemChildrenIndentation: string | number;
13
+ providedTreeId: string | undefined;
14
+ expansionTrigger: "content" | "iconContainer";
15
+ disableSelection: boolean;
16
+ multiSelect: boolean | NonNullable<Multiple>;
17
+ checkboxSelection: boolean;
18
+ selectionPropagation: Readonly<{}>;
19
+ };
20
+ export declare function createMinimalInitialState<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined>(parameters: MinimalTreeViewParameters<R, Multiple>): MinimalTreeViewState<R, Multiple>;
21
+ export declare const createTreeViewDefaultId: () => string;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createMinimalInitialState = createMinimalInitialState;
8
+ exports.createTreeViewDefaultId = void 0;
9
+ exports.deriveStateFromParameters = deriveStateFromParameters;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _empty = require("@base-ui/utils/empty");
12
+ var _utils = require("../plugins/expansion/utils");
13
+ var _items = require("../plugins/items");
14
+ /**
15
+ * Returns the properties of the state that are derived from the parameters.
16
+ * This do not contain state properties that don't update whenever the parameters update.
17
+ */
18
+ function deriveStateFromParameters(parameters) {
19
+ return {
20
+ disabledItemsFocusable: parameters.disabledItemsFocusable ?? false,
21
+ domStructure: 'nested',
22
+ itemChildrenIndentation: parameters.itemChildrenIndentation ?? '12px',
23
+ providedTreeId: parameters.id,
24
+ // TODO: Fix
25
+ expansionTrigger: (0, _utils.getExpansionTrigger)({
26
+ isItemEditable: parameters.isItemEditable,
27
+ expansionTrigger: parameters.expansionTrigger
28
+ }),
29
+ disableSelection: parameters.disableSelection ?? false,
30
+ multiSelect: parameters.multiSelect ?? false,
31
+ checkboxSelection: parameters.checkboxSelection ?? false,
32
+ selectionPropagation: parameters.selectionPropagation ?? _empty.EMPTY_OBJECT
33
+ };
34
+ }
35
+ function applyModelInitialValue(controlledValue, defaultValue, fallback) {
36
+ if (controlledValue !== undefined) {
37
+ return controlledValue;
38
+ }
39
+ if (defaultValue !== undefined) {
40
+ return defaultValue;
41
+ }
42
+ return fallback;
43
+ }
44
+ function createMinimalInitialState(parameters) {
45
+ return (0, _extends2.default)({
46
+ treeId: undefined,
47
+ focusedItemId: null
48
+ }, deriveStateFromParameters(parameters), _items.TreeViewItemsPlugin.buildItemsStateIfNeeded(parameters), {
49
+ expandedItems: applyModelInitialValue(parameters.expandedItems, parameters.defaultExpandedItems, []),
50
+ selectedItems: applyModelInitialValue(parameters.selectedItems, parameters.defaultSelectedItems, parameters.multiSelect ? _empty.EMPTY_ARRAY : null)
51
+ });
52
+ }
53
+ let globalTreeViewDefaultId = 0;
54
+ const createTreeViewDefaultId = () => {
55
+ globalTreeViewDefaultId += 1;
56
+ return `mui-tree-view-${globalTreeViewDefaultId}`;
57
+ };
58
+ exports.createTreeViewDefaultId = createTreeViewDefaultId;
@@ -0,0 +1,9 @@
1
+ export declare class TimeoutManager {
2
+ private timeoutIds;
3
+ private intervalIds;
4
+ startTimeout: (key: string, delay: number, fn: Function) => void;
5
+ startInterval: (key: string, delay: number, fn: Function) => void;
6
+ clearTimeout: (key: string) => void;
7
+ clearInterval: (key: string) => void;
8
+ clearAll: () => void;
9
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TimeoutManager = void 0;
7
+ class TimeoutManager {
8
+ timeoutIds = new Map();
9
+ intervalIds = new Map();
10
+ startTimeout = (key, delay, fn) => {
11
+ this.clearTimeout(key);
12
+ const id = setTimeout(() => {
13
+ this.timeoutIds.delete(key);
14
+ fn();
15
+ }, delay); /* Node.js types are enabled in development */
16
+
17
+ this.timeoutIds.set(key, id);
18
+ };
19
+ startInterval = (key, delay, fn) => {
20
+ this.clearTimeout(key);
21
+ const id = setInterval(fn, delay); /* Node.js types are enabled in development */
22
+
23
+ this.intervalIds.set(key, id);
24
+ };
25
+ clearTimeout = key => {
26
+ const id = this.timeoutIds.get(key);
27
+ if (id != null) {
28
+ clearTimeout(id);
29
+ this.timeoutIds.delete(key);
30
+ }
31
+ };
32
+ clearInterval = key => {
33
+ const id = this.intervalIds.get(key);
34
+ if (id != null) {
35
+ clearInterval(id);
36
+ this.intervalIds.delete(key);
37
+ }
38
+ };
39
+ clearAll = () => {
40
+ this.timeoutIds.forEach(clearTimeout);
41
+ this.timeoutIds.clear();
42
+ this.intervalIds.forEach(clearInterval);
43
+ this.intervalIds.clear();
44
+ };
45
+ }
46
+ exports.TimeoutManager = TimeoutManager;
@@ -0,0 +1,12 @@
1
+ import { TreeItemWrapper, TreeViewAnyStore, TreeViewItemPlugin } from "../models/index.js";
2
+ /**
3
+ * Manages the registration and application of plugins for the Tree Item.
4
+ * This will be replaced with a proper implementation in the future.
5
+ */
6
+ export declare class TreeViewItemPluginManager<TStore extends TreeViewAnyStore> {
7
+ private itemPlugins;
8
+ private itemWrappers;
9
+ register: (plugin: TreeViewItemPlugin, wrapItem: TreeItemWrapper<TStore> | null) => void;
10
+ listPlugins: () => TreeViewItemPlugin[];
11
+ listWrappers: () => TreeItemWrapper<TStore>[];
12
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TreeViewItemPluginManager = void 0;
7
+ /**
8
+ * Manages the registration and application of plugins for the Tree Item.
9
+ * This will be replaced with a proper implementation in the future.
10
+ */
11
+ class TreeViewItemPluginManager {
12
+ itemPlugins = [];
13
+ itemWrappers = [];
14
+ register = (plugin, wrapItem) => {
15
+ this.itemPlugins.push(plugin);
16
+ if (wrapItem) {
17
+ this.itemWrappers.push(wrapItem);
18
+ }
19
+ };
20
+ listPlugins = () => this.itemPlugins;
21
+ listWrappers = () => this.itemWrappers;
22
+ }
23
+ exports.TreeViewItemPluginManager = TreeViewItemPluginManager;
@@ -0,0 +1,2 @@
1
+ export * from "./MinimalTreeViewStore.js";
2
+ export * from "./MinimalTreeViewStore.types.js";