@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,312 +0,0 @@
1
- "use strict";
2
- 'use client';
3
-
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.useTreeViewKeyboardNavigation = void 0;
9
- var React = _interopRequireWildcard(require("react"));
10
- var _store = require("@mui/x-internals/store");
11
- var _RtlProvider = require("@mui/system/RtlProvider");
12
- var _useTimeout = require("@base-ui-components/utils/useTimeout");
13
- var _useEventCallback = require("@base-ui-components/utils/useEventCallback");
14
- var _tree = require("../../utils/tree");
15
- var _plugins = require("../../utils/plugins");
16
- var _useTreeViewLabel = require("../useTreeViewLabel");
17
- var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
18
- var _useTreeViewLabel2 = require("../useTreeViewLabel/useTreeViewLabel.selectors");
19
- var _useTreeViewSelection = require("../useTreeViewSelection/useTreeViewSelection.selectors");
20
- var _useTreeViewExpansion = require("../useTreeViewExpansion/useTreeViewExpansion.selectors");
21
- function isPrintableKey(string) {
22
- return !!string && string.length === 1 && !!string.match(/\S/);
23
- }
24
- const TYPEAHEAD_TIMEOUT = 500;
25
- const useTreeViewKeyboardNavigation = ({
26
- instance,
27
- store,
28
- params
29
- }) => {
30
- const isRtl = (0, _RtlProvider.useRtl)();
31
- const labelMap = React.useRef({});
32
- const typeaheadQueryRef = React.useRef('');
33
- const typeaheadTimeout = (0, _useTimeout.useTimeout)();
34
- const updateLabelMap = (0, _useEventCallback.useEventCallback)(callback => {
35
- labelMap.current = callback(labelMap.current);
36
- });
37
- const itemMetaLookup = (0, _store.useStore)(store, _useTreeViewItems.itemsSelectors.itemMetaLookup);
38
- React.useEffect(() => {
39
- if (instance.areItemUpdatesPrevented()) {
40
- return;
41
- }
42
- const newLabelMap = {};
43
- const processItem = item => {
44
- newLabelMap[item.id] = item.label.toLowerCase();
45
- };
46
- Object.values(itemMetaLookup).forEach(processItem);
47
- labelMap.current = newLabelMap;
48
- }, [itemMetaLookup, params.getItemId, instance]);
49
- const getNextItem = itemIdToCheck => {
50
- const nextItemId = (0, _tree.getNextNavigableItem)(store.state, itemIdToCheck);
51
- // We reached the end of the tree, check from the beginning
52
- if (nextItemId === null) {
53
- return (0, _tree.getFirstNavigableItem)(store.state);
54
- }
55
- return nextItemId;
56
- };
57
- const getNextMatchingItemId = (itemId, query) => {
58
- let matchingItemId = null;
59
- const checkedItems = {};
60
- // If query length > 1, first check if current item matches
61
- let currentItemId = query.length > 1 ? itemId : getNextItem(itemId);
62
- // The "!checkedItems[currentItemId]" condition avoids an infinite loop when there is no matching item.
63
- while (matchingItemId == null && !checkedItems[currentItemId]) {
64
- const itemLabel = labelMap.current[currentItemId];
65
- if (itemLabel?.startsWith(query)) {
66
- matchingItemId = currentItemId;
67
- } else {
68
- checkedItems[currentItemId] = true;
69
- currentItemId = getNextItem(currentItemId);
70
- }
71
- }
72
- return matchingItemId;
73
- };
74
- const getFirstMatchingItem = (itemId, newKey) => {
75
- const cleanNewKey = newKey.toLowerCase();
76
-
77
- // Try matching with accumulated query + new key
78
- const concatenatedQuery = `${typeaheadQueryRef.current}${cleanNewKey}`;
79
-
80
- // check if the entire typed query matches an item
81
- const concatenatedQueryMatchingItemId = getNextMatchingItemId(itemId, concatenatedQuery);
82
- if (concatenatedQueryMatchingItemId != null) {
83
- typeaheadQueryRef.current = concatenatedQuery;
84
- return concatenatedQueryMatchingItemId;
85
- }
86
- const newKeyMatchingItemId = getNextMatchingItemId(itemId, cleanNewKey);
87
- if (newKeyMatchingItemId != null) {
88
- typeaheadQueryRef.current = cleanNewKey;
89
- return newKeyMatchingItemId;
90
- }
91
- typeaheadQueryRef.current = '';
92
- return null;
93
- };
94
- const canToggleItemSelection = itemId => _useTreeViewSelection.selectionSelectors.enabled(store.state) && !_useTreeViewItems.itemsSelectors.isItemDisabled(store.state, itemId);
95
- const canToggleItemExpansion = itemId => {
96
- return !_useTreeViewItems.itemsSelectors.isItemDisabled(store.state, itemId) && _useTreeViewExpansion.expansionSelectors.isItemExpandable(store.state, itemId);
97
- };
98
-
99
- // ARIA specification: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction
100
- const handleItemKeyDown = async (event, itemId) => {
101
- if (event.defaultMuiPrevented) {
102
- return;
103
- }
104
- if (event.altKey || (0, _tree.isTargetInDescendants)(event.target, event.currentTarget)) {
105
- return;
106
- }
107
- const ctrlPressed = event.ctrlKey || event.metaKey;
108
- const key = event.key;
109
- const isMultiSelectEnabled = _useTreeViewSelection.selectionSelectors.isMultiSelectEnabled(store.state);
110
-
111
- // eslint-disable-next-line default-case
112
- switch (true) {
113
- // Select the item when pressing "Space"
114
- case key === ' ' && canToggleItemSelection(itemId):
115
- {
116
- event.preventDefault();
117
- if (isMultiSelectEnabled && event.shiftKey) {
118
- instance.expandSelectionRange(event, itemId);
119
- } else {
120
- instance.setItemSelection({
121
- event,
122
- itemId,
123
- keepExistingSelection: isMultiSelectEnabled,
124
- shouldBeSelected: undefined
125
- });
126
- }
127
- break;
128
- }
129
-
130
- // If the focused item has children, we expand it.
131
- // If the focused item has no children, we select it.
132
- case key === 'Enter':
133
- {
134
- if ((0, _plugins.hasPlugin)(instance, _useTreeViewLabel.useTreeViewLabel) && _useTreeViewLabel2.labelSelectors.isItemEditable(store.state, itemId) && !_useTreeViewLabel2.labelSelectors.isItemBeingEdited(store.state, itemId)) {
135
- instance.setEditedItem(itemId);
136
- } else if (canToggleItemExpansion(itemId)) {
137
- instance.setItemExpansion({
138
- event,
139
- itemId
140
- });
141
- event.preventDefault();
142
- } else if (canToggleItemSelection(itemId)) {
143
- if (isMultiSelectEnabled) {
144
- event.preventDefault();
145
- instance.setItemSelection({
146
- event,
147
- itemId,
148
- keepExistingSelection: true
149
- });
150
- } else if (!_useTreeViewSelection.selectionSelectors.isItemSelected(store.state, itemId)) {
151
- instance.setItemSelection({
152
- event,
153
- itemId
154
- });
155
- event.preventDefault();
156
- }
157
- }
158
- break;
159
- }
160
-
161
- // Focus the next focusable item
162
- case key === 'ArrowDown':
163
- {
164
- const nextItem = (0, _tree.getNextNavigableItem)(store.state, itemId);
165
- if (nextItem) {
166
- event.preventDefault();
167
- instance.focusItem(event, nextItem);
168
-
169
- // Multi select behavior when pressing Shift + ArrowDown
170
- // Toggles the selection state of the next item
171
- if (isMultiSelectEnabled && event.shiftKey && canToggleItemSelection(nextItem)) {
172
- instance.selectItemFromArrowNavigation(event, itemId, nextItem);
173
- }
174
- }
175
- break;
176
- }
177
-
178
- // Focuses the previous focusable item
179
- case key === 'ArrowUp':
180
- {
181
- const previousItem = (0, _tree.getPreviousNavigableItem)(store.state, itemId);
182
- if (previousItem) {
183
- event.preventDefault();
184
- instance.focusItem(event, previousItem);
185
-
186
- // Multi select behavior when pressing Shift + ArrowUp
187
- // Toggles the selection state of the previous item
188
- if (isMultiSelectEnabled && event.shiftKey && canToggleItemSelection(previousItem)) {
189
- instance.selectItemFromArrowNavigation(event, itemId, previousItem);
190
- }
191
- }
192
- break;
193
- }
194
-
195
- // If the focused item is expanded, we move the focus to its first child
196
- // If the focused item is collapsed and has children, we expand it
197
- case key === 'ArrowRight' && !isRtl || key === 'ArrowLeft' && isRtl:
198
- {
199
- if (ctrlPressed) {
200
- return;
201
- }
202
- if (_useTreeViewExpansion.expansionSelectors.isItemExpanded(store.state, itemId)) {
203
- const nextItemId = (0, _tree.getNextNavigableItem)(store.state, itemId);
204
- if (nextItemId) {
205
- instance.focusItem(event, nextItemId);
206
- event.preventDefault();
207
- }
208
- } else if (canToggleItemExpansion(itemId)) {
209
- instance.setItemExpansion({
210
- event,
211
- itemId
212
- });
213
- event.preventDefault();
214
- }
215
- break;
216
- }
217
-
218
- // If the focused item is expanded, we collapse it
219
- // If the focused item is collapsed and has a parent, we move the focus to this parent
220
- case key === 'ArrowLeft' && !isRtl || key === 'ArrowRight' && isRtl:
221
- {
222
- if (ctrlPressed) {
223
- return;
224
- }
225
- if (canToggleItemExpansion(itemId) && _useTreeViewExpansion.expansionSelectors.isItemExpanded(store.state, itemId)) {
226
- instance.setItemExpansion({
227
- event,
228
- itemId
229
- });
230
- event.preventDefault();
231
- } else {
232
- const parent = _useTreeViewItems.itemsSelectors.itemParentId(store.state, itemId);
233
- if (parent) {
234
- instance.focusItem(event, parent);
235
- event.preventDefault();
236
- }
237
- }
238
- break;
239
- }
240
-
241
- // Focuses the first item in the tree
242
- case key === 'Home':
243
- {
244
- // Multi select behavior when pressing Ctrl + Shift + Home
245
- // Selects the focused item and all items up to the first item.
246
- if (canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
247
- instance.selectRangeFromStartToItem(event, itemId);
248
- } else {
249
- instance.focusItem(event, (0, _tree.getFirstNavigableItem)(store.state));
250
- }
251
- event.preventDefault();
252
- break;
253
- }
254
-
255
- // Focuses the last item in the tree
256
- case key === 'End':
257
- {
258
- // Multi select behavior when pressing Ctrl + Shirt + End
259
- // Selects the focused item and all the items down to the last item.
260
- if (canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
261
- instance.selectRangeFromItemToEnd(event, itemId);
262
- } else {
263
- instance.focusItem(event, (0, _tree.getLastNavigableItem)(store.state));
264
- }
265
- event.preventDefault();
266
- break;
267
- }
268
-
269
- // Expand all siblings that are at the same level as the focused item
270
- case key === '*':
271
- {
272
- instance.expandAllSiblings(event, itemId);
273
- event.preventDefault();
274
- break;
275
- }
276
-
277
- // Multi select behavior when pressing Ctrl + a
278
- // Selects all the items
279
- case String.fromCharCode(event.keyCode) === 'A' && ctrlPressed && isMultiSelectEnabled && _useTreeViewSelection.selectionSelectors.enabled(store.state):
280
- {
281
- instance.selectAllNavigableItems(event);
282
- event.preventDefault();
283
- break;
284
- }
285
-
286
- // Type-ahead
287
- case !ctrlPressed && !event.shiftKey && isPrintableKey(key):
288
- {
289
- typeaheadTimeout.clear();
290
- const matchingItem = getFirstMatchingItem(itemId, key);
291
- if (matchingItem != null) {
292
- instance.focusItem(event, matchingItem);
293
- event.preventDefault();
294
- } else {
295
- typeaheadQueryRef.current = '';
296
- }
297
- typeaheadTimeout.start(TYPEAHEAD_TIMEOUT, () => {
298
- typeaheadQueryRef.current = '';
299
- });
300
- break;
301
- }
302
- }
303
- };
304
- return {
305
- instance: {
306
- updateLabelMap,
307
- handleItemKeyDown
308
- }
309
- };
310
- };
311
- exports.useTreeViewKeyboardNavigation = useTreeViewKeyboardNavigation;
312
- useTreeViewKeyboardNavigation.params = {};
@@ -1,32 +0,0 @@
1
- import * as React from 'react';
2
- import { TreeViewPluginSignature } from "../../models/index.js";
3
- import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
4
- import { UseTreeViewSelectionSignature } from "../useTreeViewSelection/index.js";
5
- import { UseTreeViewFocusSignature } from "../useTreeViewFocus/index.js";
6
- import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
7
- import { UseTreeViewLabelSignature } from "../useTreeViewLabel/index.js";
8
- import { TreeViewItemId, TreeViewCancellableEvent } from "../../../models/index.js";
9
- export interface UseTreeViewKeyboardNavigationInstance {
10
- /**
11
- * Updates the `labelMap` to add/remove the first character of some item's labels.
12
- * This map is used to navigate the tree using type-ahead search.
13
- * This method is only used by the `useTreeViewJSXItems` plugin, otherwise the updates are handled internally.
14
- * @param {(map: TreeViewLabelMap) => TreeViewLabelMap} updater The function to update the map.
15
- */
16
- updateLabelMap: (updater: (map: TreeViewLabelMap) => TreeViewLabelMap) => void;
17
- /**
18
- * Callback fired when a key is pressed on an item.
19
- * Handles all the keyboard navigation logic.
20
- * @param {React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent} event The keyboard event that triggered the callback.
21
- * @param {TreeViewItemId} itemId The id of the item that the event was triggered on.
22
- */
23
- handleItemKeyDown: (event: React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent, itemId: TreeViewItemId) => void;
24
- }
25
- export type UseTreeViewKeyboardNavigationSignature = TreeViewPluginSignature<{
26
- instance: UseTreeViewKeyboardNavigationInstance;
27
- dependencies: [UseTreeViewItemsSignature, UseTreeViewSelectionSignature, UseTreeViewFocusSignature, UseTreeViewExpansionSignature];
28
- optionalDependencies: [UseTreeViewLabelSignature];
29
- }>;
30
- export type TreeViewLabelMap = {
31
- [itemId: string]: string;
32
- };
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,3 +0,0 @@
1
- export { useTreeViewLabel } from "./useTreeViewLabel.js";
2
- export type { UseTreeViewLabelSignature, UseTreeViewLabelParameters } from "./useTreeViewLabel.types.js";
3
- export { labelSelectors } from "./useTreeViewLabel.selectors.js";
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "labelSelectors", {
7
- enumerable: true,
8
- get: function () {
9
- return _useTreeViewLabel2.labelSelectors;
10
- }
11
- });
12
- Object.defineProperty(exports, "useTreeViewLabel", {
13
- enumerable: true,
14
- get: function () {
15
- return _useTreeViewLabel.useTreeViewLabel;
16
- }
17
- });
18
- var _useTreeViewLabel = require("./useTreeViewLabel");
19
- var _useTreeViewLabel2 = require("./useTreeViewLabel.selectors");
@@ -1,3 +0,0 @@
1
- import { TreeViewPlugin } from "../../models/index.js";
2
- import { UseTreeViewLabelSignature } from "./useTreeViewLabel.types.js";
3
- export declare const useTreeViewLabel: TreeViewPlugin<UseTreeViewLabelSignature>;
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useTreeViewLabel = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect");
10
- var _itemPlugin = require("./itemPlugin");
11
- var _useTreeViewLabel = require("./useTreeViewLabel.selectors");
12
- const useTreeViewLabel = ({
13
- store,
14
- params
15
- }) => {
16
- const setEditedItem = editedItemId => {
17
- if (editedItemId !== null) {
18
- const isEditable = _useTreeViewLabel.labelSelectors.isItemEditable(store.state, editedItemId);
19
- if (!isEditable) {
20
- return;
21
- }
22
- }
23
- store.set('label', (0, _extends2.default)({}, store.state.label, {
24
- editedItemId
25
- }));
26
- };
27
- const updateItemLabel = (itemId, label) => {
28
- if (!label) {
29
- throw new Error(['MUI X: The Tree View component requires all items to have a `label` property.', 'The label of an item cannot be empty.', itemId].join('\n'));
30
- }
31
- const item = store.state.items.itemMetaLookup[itemId];
32
- if (item.label === label) {
33
- return;
34
- }
35
- store.set('items', (0, _extends2.default)({}, store.state.items, {
36
- itemMetaLookup: (0, _extends2.default)({}, store.state.items.itemMetaLookup, {
37
- [itemId]: (0, _extends2.default)({}, item, {
38
- label
39
- })
40
- })
41
- }));
42
- if (params.onItemLabelChange) {
43
- params.onItemLabelChange(itemId, label);
44
- }
45
- };
46
- (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
47
- store.set('label', (0, _extends2.default)({}, store.state.label, {
48
- isItemEditable: params.isItemEditable
49
- }));
50
- }, [store, params.isItemEditable]);
51
- return {
52
- instance: {
53
- setEditedItem,
54
- updateItemLabel
55
- },
56
- publicAPI: {
57
- setEditedItem,
58
- updateItemLabel
59
- }
60
- };
61
- };
62
- exports.useTreeViewLabel = useTreeViewLabel;
63
- useTreeViewLabel.itemPlugin = _itemPlugin.useTreeViewLabelItemPlugin;
64
- useTreeViewLabel.applyDefaultValuesToParams = ({
65
- params
66
- }) => (0, _extends2.default)({}, params, {
67
- isItemEditable: params.isItemEditable ?? false
68
- });
69
- useTreeViewLabel.getInitialState = params => ({
70
- label: {
71
- isItemEditable: params.isItemEditable,
72
- editedItemId: null
73
- }
74
- });
75
- useTreeViewLabel.params = {
76
- onItemLabelChange: true,
77
- isItemEditable: true
78
- };
@@ -1,16 +0,0 @@
1
- import { UseTreeViewLabelSignature } from "./useTreeViewLabel.types.js";
2
- import { TreeViewState } from "../../models/index.js";
3
- export declare const labelSelectors: {
4
- /**
5
- * Checks whether an item is editable.
6
- */
7
- isItemEditable: (args_0: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("../useTreeViewItems/index.js").UseTreeViewItemsState<import("../../../index.js").TreeViewDefaultItemModelProperties> & Partial<{}>, _itemId: string) => boolean;
8
- /**
9
- * Checks whether an item is being edited.
10
- */
11
- isItemBeingEdited: (state: TreeViewState<[], [UseTreeViewLabelSignature]>, itemId: string | null) => boolean;
12
- /**
13
- * Checks whether any item is being edited.
14
- */
15
- isAnyItemBeingEdited: (state: TreeViewState<[], [UseTreeViewLabelSignature]>) => boolean;
16
- };
@@ -1,50 +0,0 @@
1
- import { DefaultizedProps } from '@mui/x-internals/types';
2
- import { TreeViewPluginSignature } from "../../models/index.js";
3
- import { TreeViewItemId } from "../../../models/index.js";
4
- import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
5
- export interface UseTreeViewLabelPublicAPI {
6
- /**
7
- * Used to update the label of an item.
8
- * @param {TreeViewItemId} itemId The id of the item to update the label of.
9
- * @param {string} newLabel The new label of the item.
10
- */
11
- updateItemLabel: (itemId: TreeViewItemId, newLabel: string) => void;
12
- /**
13
- * Set which item is currently being edited.
14
- * You can pass `null` to exit editing mode.
15
- * @param {TreeViewItemId | null} itemId The id of the item to edit, or `null` to exit editing mode.
16
- */
17
- setEditedItem: (itemId: TreeViewItemId | null) => void;
18
- }
19
- export interface UseTreeViewLabelInstance extends UseTreeViewLabelPublicAPI {}
20
- export interface UseTreeViewLabelParameters<R extends {}> {
21
- /**
22
- * Callback fired when the label of an item changes.
23
- * @param {TreeViewItemId} itemId The id of the item that was edited.
24
- * @param {string} newLabel The new label of the items.
25
- */
26
- onItemLabelChange?: (itemId: TreeViewItemId, newLabel: string) => void;
27
- /**
28
- * Determine if a given item can be edited.
29
- * @template R
30
- * @param {R} item The item to check.
31
- * @returns {boolean} `true` if the item can be edited.
32
- * @default () => false
33
- */
34
- isItemEditable?: boolean | ((item: R) => boolean);
35
- }
36
- export type UseTreeViewLabelParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
37
- export interface UseTreeViewLabelState {
38
- label: {
39
- isItemEditable: ((item: any) => boolean) | boolean;
40
- editedItemId: TreeViewItemId | null;
41
- };
42
- }
43
- export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
44
- params: UseTreeViewLabelParameters<any>;
45
- paramsWithDefaults: UseTreeViewLabelParametersWithDefaults<any>;
46
- publicAPI: UseTreeViewLabelPublicAPI;
47
- instance: UseTreeViewLabelInstance;
48
- state: UseTreeViewLabelState;
49
- dependencies: [UseTreeViewItemsSignature];
50
- }>;
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,2 +0,0 @@
1
- export type { UseTreeViewLazyLoadingSignature, UseTreeViewLazyLoadingParameters, UseTreeViewLazyLoadingInstance, DataSource } from "./useTreeViewLazyLoading.types.js";
2
- export { lazyLoadingSelectors } from "./useTreeViewLazyLoading.selectors.js";
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "lazyLoadingSelectors", {
7
- enumerable: true,
8
- get: function () {
9
- return _useTreeViewLazyLoading.lazyLoadingSelectors;
10
- }
11
- });
12
- var _useTreeViewLazyLoading = require("./useTreeViewLazyLoading.selectors");
@@ -1,24 +0,0 @@
1
- import { TreeViewItemId } from "../../../models/index.js";
2
- import { UseTreeViewLazyLoadingSignature } from "./useTreeViewLazyLoading.types.js";
3
- import { TreeViewState } from "../../models/index.js";
4
- export declare const lazyLoadingSelectors: {
5
- /**
6
- * Gets the data source used to lazy load items.
7
- */
8
- dataSource: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>) => {
9
- loading: Record<TreeViewItemId, boolean>;
10
- errors: Record<TreeViewItemId, Error | null>;
11
- } | undefined;
12
- /**
13
- * Checks whether an item is loading.
14
- */
15
- isItemLoading: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>, itemId: string | null) => boolean;
16
- /**
17
- * Checks whether an item has errors.
18
- */
19
- itemHasError: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>, itemId: string | null) => boolean;
20
- /**
21
- * Get an item error.
22
- */
23
- itemError: (state: TreeViewState<[], [UseTreeViewLazyLoadingSignature]>, itemId: string | null) => Error | null | undefined;
24
- };
@@ -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
- }>;