@mui/x-tree-view 8.0.0-beta.3 → 8.0.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 (421) hide show
  1. package/CHANGELOG.md +282 -96
  2. package/RichTreeView/RichTreeView.js +11 -6
  3. package/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  4. package/RichTreeView/RichTreeView.plugins.js +1 -2
  5. package/RichTreeView/RichTreeView.types.d.ts +4 -3
  6. package/RichTreeView/index.d.ts +1 -1
  7. package/SimpleTreeView/SimpleTreeView.js +12 -8
  8. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  9. package/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  10. package/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  11. package/TreeItemIcon/TreeItemIcon.js +15 -11
  12. package/esm/RichTreeView/RichTreeView.js +10 -5
  13. package/esm/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  14. package/esm/RichTreeView/RichTreeView.plugins.js +1 -2
  15. package/esm/RichTreeView/RichTreeView.types.d.ts +4 -3
  16. package/esm/RichTreeView/index.d.ts +1 -1
  17. package/esm/SimpleTreeView/SimpleTreeView.js +11 -7
  18. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  19. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  20. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  21. package/esm/TreeItemIcon/TreeItemIcon.js +15 -11
  22. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  23. package/esm/index.js +1 -1
  24. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  25. package/esm/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  26. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  27. package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  28. package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  29. package/esm/internals/hooks/useSelector.js +1 -4
  30. package/esm/internals/index.d.ts +2 -3
  31. package/esm/internals/index.js +1 -1
  32. package/esm/internals/models/events.d.ts +2 -6
  33. package/esm/internals/models/plugin.d.ts +63 -38
  34. package/esm/internals/models/treeView.d.ts +0 -5
  35. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +35 -21
  36. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  37. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +21 -1
  38. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  39. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  40. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -7
  41. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -30
  42. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  43. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  44. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  45. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  46. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  47. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  48. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +31 -0
  49. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  50. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  51. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +12 -2
  52. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  53. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  54. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -40
  55. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  56. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +36 -1
  57. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  58. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  59. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -24
  60. package/esm/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  61. package/esm/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  62. package/esm/internals/useTreeView/useTreeView.d.ts +10 -1
  63. package/esm/internals/useTreeView/useTreeView.js +22 -25
  64. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -3
  65. package/esm/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  66. package/esm/internals/utils/models.d.ts +7 -0
  67. package/esm/internals/utils/models.js +23 -0
  68. package/esm/internals/utils/selectors.d.ts +1 -1
  69. package/esm/utils/cache.d.ts +1 -1
  70. package/esm/utils/cache.js +1 -1
  71. package/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  72. package/index.js +1 -1
  73. package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  74. package/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  75. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  76. package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  77. package/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  78. package/internals/hooks/useSelector.js +1 -5
  79. package/internals/index.d.ts +2 -3
  80. package/internals/index.js +13 -7
  81. package/internals/models/events.d.ts +2 -6
  82. package/internals/models/plugin.d.ts +63 -38
  83. package/internals/models/treeView.d.ts +0 -5
  84. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -19
  85. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  86. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +22 -2
  87. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  88. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  89. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +1 -9
  90. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -30
  91. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  92. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  93. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  94. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  95. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  96. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  97. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +34 -2
  98. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  99. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  100. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +13 -3
  101. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  102. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  103. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +37 -38
  104. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  105. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +37 -2
  106. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  107. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  108. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +6 -26
  109. package/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  110. package/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  111. package/internals/useTreeView/useTreeView.d.ts +10 -1
  112. package/internals/useTreeView/useTreeView.js +22 -25
  113. package/internals/useTreeView/useTreeView.types.d.ts +1 -3
  114. package/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  115. package/internals/utils/models.d.ts +7 -0
  116. package/internals/utils/models.js +30 -0
  117. package/internals/utils/selectors.d.ts +1 -1
  118. package/package.json +4 -12
  119. package/utils/cache.d.ts +1 -1
  120. package/utils/cache.js +1 -1
  121. package/esm/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  122. package/esm/internals/plugins/useTreeViewIcons/index.js +0 -1
  123. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  124. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  125. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  126. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  127. package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  128. package/esm/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  129. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  130. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  131. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  132. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  133. package/esm/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  134. package/esm/internals/useTreeView/useTreeViewModels.js +0 -62
  135. package/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  136. package/internals/plugins/useTreeViewIcons/index.js +0 -12
  137. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  138. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -32
  139. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  140. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -5
  141. package/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  142. package/internals/plugins/useTreeViewItemCustomization/index.js +0 -12
  143. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  144. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -32
  145. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  146. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -5
  147. package/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  148. package/internals/useTreeView/useTreeViewModels.js +0 -71
  149. package/modern/RichTreeView/RichTreeView.d.ts +0 -18
  150. package/modern/RichTreeView/RichTreeView.js +0 -322
  151. package/modern/RichTreeView/RichTreeView.plugins.d.ts +0 -13
  152. package/modern/RichTreeView/RichTreeView.plugins.js +0 -10
  153. package/modern/RichTreeView/RichTreeView.types.d.ts +0 -52
  154. package/modern/RichTreeView/RichTreeView.types.js +0 -1
  155. package/modern/RichTreeView/index.d.ts +0 -5
  156. package/modern/RichTreeView/index.js +0 -3
  157. package/modern/RichTreeView/richTreeViewClasses.d.ts +0 -5
  158. package/modern/RichTreeView/richTreeViewClasses.js +0 -6
  159. package/modern/SimpleTreeView/SimpleTreeView.d.ts +0 -20
  160. package/modern/SimpleTreeView/SimpleTreeView.js +0 -265
  161. package/modern/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -12
  162. package/modern/SimpleTreeView/SimpleTreeView.plugins.js +0 -10
  163. package/modern/SimpleTreeView/SimpleTreeView.types.d.ts +0 -51
  164. package/modern/SimpleTreeView/SimpleTreeView.types.js +0 -1
  165. package/modern/SimpleTreeView/index.d.ts +0 -3
  166. package/modern/SimpleTreeView/index.js +0 -3
  167. package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +0 -5
  168. package/modern/SimpleTreeView/simpleTreeViewClasses.js +0 -6
  169. package/modern/TreeItem/TreeItem.d.ts +0 -33
  170. package/modern/TreeItem/TreeItem.js +0 -408
  171. package/modern/TreeItem/TreeItem.types.d.ts +0 -107
  172. package/modern/TreeItem/TreeItem.types.js +0 -1
  173. package/modern/TreeItem/index.d.ts +0 -4
  174. package/modern/TreeItem/index.js +0 -2
  175. package/modern/TreeItem/treeItemClasses.d.ts +0 -55
  176. package/modern/TreeItem/treeItemClasses.js +0 -8
  177. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +0 -7
  178. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -74
  179. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +0 -6
  180. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js +0 -1
  181. package/modern/TreeItemDragAndDropOverlay/index.d.ts +0 -2
  182. package/modern/TreeItemDragAndDropOverlay/index.js +0 -1
  183. package/modern/TreeItemIcon/TreeItemIcon.d.ts +0 -7
  184. package/modern/TreeItemIcon/TreeItemIcon.js +0 -74
  185. package/modern/TreeItemIcon/TreeItemIcon.types.d.ts +0 -40
  186. package/modern/TreeItemIcon/TreeItemIcon.types.js +0 -1
  187. package/modern/TreeItemIcon/index.d.ts +0 -2
  188. package/modern/TreeItemIcon/index.js +0 -1
  189. package/modern/TreeItemLabelInput/TreeItemLabelInput.d.ts +0 -5
  190. package/modern/TreeItemLabelInput/TreeItemLabelInput.js +0 -24
  191. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +0 -14
  192. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.js +0 -1
  193. package/modern/TreeItemLabelInput/index.d.ts +0 -2
  194. package/modern/TreeItemLabelInput/index.js +0 -1
  195. package/modern/TreeItemProvider/TreeItemProvider.d.ts +0 -7
  196. package/modern/TreeItemProvider/TreeItemProvider.js +0 -45
  197. package/modern/TreeItemProvider/TreeItemProvider.types.d.ts +0 -7
  198. package/modern/TreeItemProvider/TreeItemProvider.types.js +0 -1
  199. package/modern/TreeItemProvider/index.d.ts +0 -2
  200. package/modern/TreeItemProvider/index.js +0 -1
  201. package/modern/hooks/index.d.ts +0 -3
  202. package/modern/hooks/index.js +0 -3
  203. package/modern/hooks/useTreeItemModel.d.ts +0 -2
  204. package/modern/hooks/useTreeItemModel.js +0 -11
  205. package/modern/hooks/useTreeItemUtils/index.d.ts +0 -1
  206. package/modern/hooks/useTreeItemUtils/index.js +0 -1
  207. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +0 -42
  208. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +0 -165
  209. package/modern/hooks/useTreeViewApiRef.d.ts +0 -7
  210. package/modern/hooks/useTreeViewApiRef.js +0 -7
  211. package/modern/icons/icons.d.ts +0 -6
  212. package/modern/icons/icons.js +0 -9
  213. package/modern/icons/index.d.ts +0 -1
  214. package/modern/icons/index.js +0 -1
  215. package/modern/index.d.ts +0 -12
  216. package/modern/index.js +0 -22
  217. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +0 -5
  218. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js +0 -5
  219. package/modern/internals/TreeViewItemDepthContext/index.d.ts +0 -1
  220. package/modern/internals/TreeViewItemDepthContext/index.js +0 -1
  221. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +0 -17
  222. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +0 -49
  223. package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +0 -8
  224. package/modern/internals/TreeViewProvider/TreeViewContext.js +0 -15
  225. package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +0 -9
  226. package/modern/internals/TreeViewProvider/TreeViewProvider.js +0 -32
  227. package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +0 -21
  228. package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
  229. package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +0 -33
  230. package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +0 -13
  231. package/modern/internals/TreeViewProvider/index.d.ts +0 -3
  232. package/modern/internals/TreeViewProvider/index.js +0 -2
  233. package/modern/internals/components/RichTreeViewItems.d.ts +0 -32
  234. package/modern/internals/components/RichTreeViewItems.js +0 -68
  235. package/modern/internals/corePlugins/corePlugins.d.ts +0 -9
  236. package/modern/internals/corePlugins/corePlugins.js +0 -8
  237. package/modern/internals/corePlugins/index.d.ts +0 -2
  238. package/modern/internals/corePlugins/index.js +0 -1
  239. package/modern/internals/corePlugins/useTreeViewId/index.d.ts +0 -2
  240. package/modern/internals/corePlugins/useTreeViewId/index.js +0 -1
  241. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  242. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -39
  243. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -36
  244. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  245. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  246. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.js +0 -1
  247. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  248. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  249. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  250. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  251. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  252. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -29
  253. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  254. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
  255. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  256. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  257. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  258. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  259. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  260. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +0 -1
  261. package/modern/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  262. package/modern/internals/hooks/useInstanceEventHandler.js +0 -77
  263. package/modern/internals/hooks/useLazyRef.d.ts +0 -1
  264. package/modern/internals/hooks/useLazyRef.js +0 -1
  265. package/modern/internals/hooks/useOnMount.d.ts +0 -1
  266. package/modern/internals/hooks/useOnMount.js +0 -1
  267. package/modern/internals/hooks/useSelector.d.ts +0 -4
  268. package/modern/internals/hooks/useSelector.js +0 -9
  269. package/modern/internals/hooks/useTimeout.d.ts +0 -1
  270. package/modern/internals/hooks/useTimeout.js +0 -1
  271. package/modern/internals/index.d.ts +0 -34
  272. package/modern/internals/index.js +0 -24
  273. package/modern/internals/models/events.d.ts +0 -9
  274. package/modern/internals/models/events.js +0 -1
  275. package/modern/internals/models/helpers.d.ts +0 -7
  276. package/modern/internals/models/helpers.js +0 -1
  277. package/modern/internals/models/index.d.ts +0 -4
  278. package/modern/internals/models/index.js +0 -4
  279. package/modern/internals/models/itemPlugin.d.ts +0 -43
  280. package/modern/internals/models/itemPlugin.js +0 -1
  281. package/modern/internals/models/plugin.d.ts +0 -151
  282. package/modern/internals/models/plugin.js +0 -1
  283. package/modern/internals/models/treeView.d.ts +0 -32
  284. package/modern/internals/models/treeView.js +0 -1
  285. package/modern/internals/plugins/useTreeViewExpansion/index.d.ts +0 -2
  286. package/modern/internals/plugins/useTreeViewExpansion/index.js +0 -1
  287. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  288. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -134
  289. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -184
  290. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +0 -24
  291. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -102
  292. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  293. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -7
  294. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -19
  295. package/modern/internals/plugins/useTreeViewFocus/index.d.ts +0 -2
  296. package/modern/internals/plugins/useTreeViewFocus/index.js +0 -1
  297. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  298. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -135
  299. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -182
  300. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +0 -34
  301. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  302. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  303. package/modern/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  304. package/modern/internals/plugins/useTreeViewIcons/index.js +0 -1
  305. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  306. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  307. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  308. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  309. package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  310. package/modern/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  311. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  312. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  313. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  314. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  315. package/modern/internals/plugins/useTreeViewItems/index.d.ts +0 -3
  316. package/modern/internals/plugins/useTreeViewItems/index.js +0 -2
  317. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  318. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -325
  319. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -1058
  320. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -113
  321. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -205
  322. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  323. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -4
  324. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +0 -8
  325. package/modern/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  326. package/modern/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  327. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  328. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -183
  329. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +0 -35
  330. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  331. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  332. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  333. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  334. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -273
  335. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -30
  336. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  337. package/modern/internals/plugins/useTreeViewLabel/index.d.ts +0 -2
  338. package/modern/internals/plugins/useTreeViewLabel/index.js +0 -1
  339. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  340. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
  341. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +0 -72
  342. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -73
  343. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -68
  344. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +0 -24
  345. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -60
  346. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  347. package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -1
  348. package/modern/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  349. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -247
  350. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -27
  351. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -82
  352. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  353. package/modern/internals/plugins/useTreeViewSelection/index.d.ts +0 -2
  354. package/modern/internals/plugins/useTreeViewSelection/index.js +0 -1
  355. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  356. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
  357. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +0 -80
  358. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -234
  359. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -363
  360. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +0 -46
  361. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -145
  362. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  363. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -38
  364. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -126
  365. package/modern/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -22
  366. package/modern/internals/useTreeView/extractPluginParamsFromProps.js +0 -46
  367. package/modern/internals/useTreeView/index.d.ts +0 -1
  368. package/modern/internals/useTreeView/index.js +0 -1
  369. package/modern/internals/useTreeView/useTreeView.d.ts +0 -9
  370. package/modern/internals/useTreeView/useTreeView.js +0 -114
  371. package/modern/internals/useTreeView/useTreeView.types.d.ts +0 -23
  372. package/modern/internals/useTreeView/useTreeView.types.js +0 -1
  373. package/modern/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -18
  374. package/modern/internals/useTreeView/useTreeViewBuildContext.js +0 -101
  375. package/modern/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  376. package/modern/internals/useTreeView/useTreeViewModels.js +0 -62
  377. package/modern/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  378. package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
  379. package/modern/internals/utils/TreeViewStore.d.ts +0 -12
  380. package/modern/internals/utils/TreeViewStore.js +0 -24
  381. package/modern/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  382. package/modern/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  383. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  384. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -18
  385. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  386. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  387. package/modern/internals/utils/plugins.d.ts +0 -2
  388. package/modern/internals/utils/plugins.js +0 -4
  389. package/modern/internals/utils/publishTreeViewEvent.d.ts +0 -5
  390. package/modern/internals/utils/publishTreeViewEvent.js +0 -3
  391. package/modern/internals/utils/selectors.d.ts +0 -16
  392. package/modern/internals/utils/selectors.js +0 -46
  393. package/modern/internals/utils/tree.d.ts +0 -32
  394. package/modern/internals/utils/tree.js +0 -203
  395. package/modern/internals/utils/utils.d.ts +0 -2
  396. package/modern/internals/utils/utils.js +0 -17
  397. package/modern/internals/zero-styled/index.d.ts +0 -3
  398. package/modern/internals/zero-styled/index.js +0 -7
  399. package/modern/models/events.d.ts +0 -4
  400. package/modern/models/events.js +0 -1
  401. package/modern/models/index.d.ts +0 -3
  402. package/modern/models/index.js +0 -5
  403. package/modern/models/items.d.ts +0 -13
  404. package/modern/models/items.js +0 -1
  405. package/modern/package.json +0 -1
  406. package/modern/themeAugmentation/components.d.ts +0 -21
  407. package/modern/themeAugmentation/index.d.ts +0 -3
  408. package/modern/themeAugmentation/index.js +0 -0
  409. package/modern/themeAugmentation/overrides.d.ts +0 -16
  410. package/modern/themeAugmentation/props.d.ts +0 -14
  411. package/modern/useTreeItem/index.d.ts +0 -2
  412. package/modern/useTreeItem/index.js +0 -1
  413. package/modern/useTreeItem/useTreeItem.d.ts +0 -2
  414. package/modern/useTreeItem/useTreeItem.js +0 -282
  415. package/modern/useTreeItem/useTreeItem.types.d.ts +0 -201
  416. package/modern/useTreeItem/useTreeItem.types.js +0 -1
  417. package/modern/utils/cache.d.ts +0 -38
  418. package/modern/utils/cache.js +0 -31
  419. package/modern/utils/index.d.ts +0 -1
  420. package/modern/utils/index.js +0 -1
  421. package/tsconfig.build.tsbuildinfo +0 -1
@@ -1,273 +0,0 @@
1
- import * as React from 'react';
2
- import { useRtl } from '@mui/system/RtlProvider';
3
- import useEventCallback from '@mui/utils/useEventCallback';
4
- import { getFirstNavigableItem, getLastNavigableItem, getNextNavigableItem, getPreviousNavigableItem, isTargetInDescendants } from "../../utils/tree.js";
5
- import { hasPlugin } from "../../utils/plugins.js";
6
- import { useTreeViewLabel } from "../useTreeViewLabel/index.js";
7
- import { useSelector } from "../../hooks/useSelector.js";
8
- import { selectorItemMetaLookup, selectorIsItemDisabled, selectorItemParentId } from "../useTreeViewItems/useTreeViewItems.selectors.js";
9
- import { selectorIsItemBeingEdited, selectorIsItemEditable } from "../useTreeViewLabel/useTreeViewLabel.selectors.js";
10
- import { selectorIsItemSelected, selectorIsMultiSelectEnabled, selectorIsSelectionEnabled } from "../useTreeViewSelection/useTreeViewSelection.selectors.js";
11
- import { selectorIsItemExpandable, selectorIsItemExpanded } from "../useTreeViewExpansion/useTreeViewExpansion.selectors.js";
12
- function isPrintableKey(string) {
13
- return !!string && string.length === 1 && !!string.match(/\S/);
14
- }
15
- export const useTreeViewKeyboardNavigation = ({
16
- instance,
17
- store,
18
- params
19
- }) => {
20
- const isRtl = useRtl();
21
- const firstCharMap = React.useRef({});
22
- const updateFirstCharMap = useEventCallback(callback => {
23
- firstCharMap.current = callback(firstCharMap.current);
24
- });
25
- const itemMetaLookup = useSelector(store, selectorItemMetaLookup);
26
- React.useEffect(() => {
27
- if (instance.areItemUpdatesPrevented()) {
28
- return;
29
- }
30
- const newFirstCharMap = {};
31
- const processItem = item => {
32
- newFirstCharMap[item.id] = item.label.substring(0, 1).toLowerCase();
33
- };
34
- Object.values(itemMetaLookup).forEach(processItem);
35
- firstCharMap.current = newFirstCharMap;
36
- }, [itemMetaLookup, params.getItemId, instance]);
37
- const getFirstMatchingItem = (itemId, query) => {
38
- const cleanQuery = query.toLowerCase();
39
- const getNextItem = itemIdToCheck => {
40
- const nextItemId = getNextNavigableItem(store.value, itemIdToCheck);
41
- // We reached the end of the tree, check from the beginning
42
- if (nextItemId === null) {
43
- return getFirstNavigableItem(store.value);
44
- }
45
- return nextItemId;
46
- };
47
- let matchingItemId = null;
48
- let currentItemId = getNextItem(itemId);
49
- const checkedItems = {};
50
- // The "!checkedItems[currentItemId]" condition avoids an infinite loop when there is no matching item.
51
- while (matchingItemId == null && !checkedItems[currentItemId]) {
52
- if (firstCharMap.current[currentItemId] === cleanQuery) {
53
- matchingItemId = currentItemId;
54
- } else {
55
- checkedItems[currentItemId] = true;
56
- currentItemId = getNextItem(currentItemId);
57
- }
58
- }
59
- return matchingItemId;
60
- };
61
- const canToggleItemSelection = itemId => selectorIsSelectionEnabled(store.value) && !selectorIsItemDisabled(store.value, itemId);
62
- const canToggleItemExpansion = itemId => {
63
- return !selectorIsItemDisabled(store.value, itemId) && selectorIsItemExpandable(store.value, itemId);
64
- };
65
-
66
- // ARIA specification: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction
67
- const handleItemKeyDown = async (event, itemId) => {
68
- if (event.defaultMuiPrevented) {
69
- return;
70
- }
71
- if (event.altKey || isTargetInDescendants(event.target, event.currentTarget)) {
72
- return;
73
- }
74
- const ctrlPressed = event.ctrlKey || event.metaKey;
75
- const key = event.key;
76
- const isMultiSelectEnabled = selectorIsMultiSelectEnabled(store.value);
77
-
78
- // eslint-disable-next-line default-case
79
- switch (true) {
80
- // Select the item when pressing "Space"
81
- case key === ' ' && canToggleItemSelection(itemId):
82
- {
83
- event.preventDefault();
84
- if (isMultiSelectEnabled && event.shiftKey) {
85
- instance.expandSelectionRange(event, itemId);
86
- } else {
87
- instance.setItemSelection({
88
- event,
89
- itemId,
90
- keepExistingSelection: isMultiSelectEnabled,
91
- shouldBeSelected: undefined
92
- });
93
- }
94
- break;
95
- }
96
-
97
- // If the focused item has children, we expand it.
98
- // If the focused item has no children, we select it.
99
- case key === 'Enter':
100
- {
101
- if (hasPlugin(instance, useTreeViewLabel) && selectorIsItemEditable(store.value, itemId) && !selectorIsItemBeingEdited(store.value, itemId)) {
102
- instance.setEditedItemId(itemId);
103
- } else if (canToggleItemExpansion(itemId)) {
104
- instance.setItemExpansion({
105
- event,
106
- itemId
107
- });
108
- event.preventDefault();
109
- } else if (canToggleItemSelection(itemId)) {
110
- if (isMultiSelectEnabled) {
111
- event.preventDefault();
112
- instance.setItemSelection({
113
- event,
114
- itemId,
115
- keepExistingSelection: true
116
- });
117
- } else if (!selectorIsItemSelected(store.value, itemId)) {
118
- instance.setItemSelection({
119
- event,
120
- itemId
121
- });
122
- event.preventDefault();
123
- }
124
- }
125
- break;
126
- }
127
-
128
- // Focus the next focusable item
129
- case key === 'ArrowDown':
130
- {
131
- const nextItem = getNextNavigableItem(store.value, itemId);
132
- if (nextItem) {
133
- event.preventDefault();
134
- instance.focusItem(event, nextItem);
135
-
136
- // Multi select behavior when pressing Shift + ArrowDown
137
- // Toggles the selection state of the next item
138
- if (isMultiSelectEnabled && event.shiftKey && canToggleItemSelection(nextItem)) {
139
- instance.selectItemFromArrowNavigation(event, itemId, nextItem);
140
- }
141
- }
142
- break;
143
- }
144
-
145
- // Focuses the previous focusable item
146
- case key === 'ArrowUp':
147
- {
148
- const previousItem = getPreviousNavigableItem(store.value, itemId);
149
- if (previousItem) {
150
- event.preventDefault();
151
- instance.focusItem(event, previousItem);
152
-
153
- // Multi select behavior when pressing Shift + ArrowUp
154
- // Toggles the selection state of the previous item
155
- if (isMultiSelectEnabled && event.shiftKey && canToggleItemSelection(previousItem)) {
156
- instance.selectItemFromArrowNavigation(event, itemId, previousItem);
157
- }
158
- }
159
- break;
160
- }
161
-
162
- // If the focused item is expanded, we move the focus to its first child
163
- // If the focused item is collapsed and has children, we expand it
164
- case key === 'ArrowRight' && !isRtl || key === 'ArrowLeft' && isRtl:
165
- {
166
- if (ctrlPressed) {
167
- return;
168
- }
169
- if (selectorIsItemExpanded(store.value, itemId)) {
170
- const nextItemId = getNextNavigableItem(store.value, itemId);
171
- if (nextItemId) {
172
- instance.focusItem(event, nextItemId);
173
- event.preventDefault();
174
- }
175
- } else if (canToggleItemExpansion(itemId)) {
176
- instance.setItemExpansion({
177
- event,
178
- itemId
179
- });
180
- event.preventDefault();
181
- }
182
- break;
183
- }
184
-
185
- // If the focused item is expanded, we collapse it
186
- // If the focused item is collapsed and has a parent, we move the focus to this parent
187
- case key === 'ArrowLeft' && !isRtl || key === 'ArrowRight' && isRtl:
188
- {
189
- if (ctrlPressed) {
190
- return;
191
- }
192
- if (canToggleItemExpansion(itemId) && selectorIsItemExpanded(store.value, itemId)) {
193
- instance.setItemExpansion({
194
- event,
195
- itemId
196
- });
197
- event.preventDefault();
198
- } else {
199
- const parent = selectorItemParentId(store.value, itemId);
200
- if (parent) {
201
- instance.focusItem(event, parent);
202
- event.preventDefault();
203
- }
204
- }
205
- break;
206
- }
207
-
208
- // Focuses the first item in the tree
209
- case key === 'Home':
210
- {
211
- // Multi select behavior when pressing Ctrl + Shift + Home
212
- // Selects the focused item and all items up to the first item.
213
- if (canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
214
- instance.selectRangeFromStartToItem(event, itemId);
215
- } else {
216
- instance.focusItem(event, getFirstNavigableItem(store.value));
217
- }
218
- event.preventDefault();
219
- break;
220
- }
221
-
222
- // Focuses the last item in the tree
223
- case key === 'End':
224
- {
225
- // Multi select behavior when pressing Ctrl + Shirt + End
226
- // Selects the focused item and all the items down to the last item.
227
- if (canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
228
- instance.selectRangeFromItemToEnd(event, itemId);
229
- } else {
230
- instance.focusItem(event, getLastNavigableItem(store.value));
231
- }
232
- event.preventDefault();
233
- break;
234
- }
235
-
236
- // Expand all siblings that are at the same level as the focused item
237
- case key === '*':
238
- {
239
- instance.expandAllSiblings(event, itemId);
240
- event.preventDefault();
241
- break;
242
- }
243
-
244
- // Multi select behavior when pressing Ctrl + a
245
- // Selects all the items
246
- case String.fromCharCode(event.keyCode) === 'A' && ctrlPressed && isMultiSelectEnabled && selectorIsSelectionEnabled(store.value):
247
- {
248
- instance.selectAllNavigableItems(event);
249
- event.preventDefault();
250
- break;
251
- }
252
-
253
- // Type-ahead
254
- // TODO: Support typing multiple characters
255
- case !ctrlPressed && !event.shiftKey && isPrintableKey(key):
256
- {
257
- const matchingItem = getFirstMatchingItem(itemId, key);
258
- if (matchingItem != null) {
259
- instance.focusItem(event, matchingItem);
260
- event.preventDefault();
261
- }
262
- break;
263
- }
264
- }
265
- };
266
- return {
267
- instance: {
268
- updateFirstCharMap,
269
- handleItemKeyDown
270
- }
271
- };
272
- };
273
- useTreeViewKeyboardNavigation.params = {};
@@ -1,30 +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 { TreeViewItemId, TreeViewCancellableEvent } from "../../../models/index.js";
8
- export interface UseTreeViewKeyboardNavigationInstance {
9
- /**
10
- * Updates the `firstCharMap` to add/remove the first character of some item's labels.
11
- * This map is used to navigate the tree using type-ahead search.
12
- * This method is only used by the `useTreeViewJSXItems` plugin, otherwise the updates are handled internally.
13
- * @param {(map: TreeViewFirstCharMap) => TreeViewFirstCharMap} updater The function to update the map.
14
- */
15
- updateFirstCharMap: (updater: (map: TreeViewFirstCharMap) => TreeViewFirstCharMap) => void;
16
- /**
17
- * Callback fired when a key is pressed on an item.
18
- * Handles all the keyboard navigation logic.
19
- * @param {React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent} event The keyboard event that triggered the callback.
20
- * @param {TreeViewItemId} itemId The id of the item that the event was triggered on.
21
- */
22
- handleItemKeyDown: (event: React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent, itemId: TreeViewItemId) => void;
23
- }
24
- export type UseTreeViewKeyboardNavigationSignature = TreeViewPluginSignature<{
25
- instance: UseTreeViewKeyboardNavigationInstance;
26
- dependencies: [UseTreeViewItemsSignature, UseTreeViewSelectionSignature, UseTreeViewFocusSignature, UseTreeViewExpansionSignature];
27
- }>;
28
- export type TreeViewFirstCharMap = {
29
- [itemId: string]: string;
30
- };
@@ -1,2 +0,0 @@
1
- export { useTreeViewLabel } from "./useTreeViewLabel.js";
2
- export type { UseTreeViewLabelSignature, UseTreeViewLabelParameters } from './useTreeViewLabel.types';
@@ -1 +0,0 @@
1
- export { useTreeViewLabel } from "./useTreeViewLabel.js";
@@ -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,2 +0,0 @@
1
- import { TreeViewItemPlugin } from "../../models/index.js";
2
- export declare const useTreeViewLabelItemPlugin: TreeViewItemPlugin;
@@ -1,72 +0,0 @@
1
- import * as React from 'react';
2
- import { useTreeViewContext } from "../../TreeViewProvider/index.js";
3
- import { useSelector } from "../../hooks/useSelector.js";
4
- import { selectorIsItemBeingEdited, selectorIsItemEditable } from "./useTreeViewLabel.selectors.js";
5
- export const useTreeViewLabelItemPlugin = ({
6
- props
7
- }) => {
8
- const {
9
- store
10
- } = useTreeViewContext();
11
- const {
12
- label,
13
- itemId
14
- } = props;
15
- const [labelInputValue, setLabelInputValue] = React.useState(label);
16
- const isItemEditable = useSelector(store, selectorIsItemEditable, itemId);
17
- const isItemBeingEdited = useSelector(store, selectorIsItemBeingEdited, itemId);
18
- React.useEffect(() => {
19
- if (!isItemBeingEdited) {
20
- setLabelInputValue(label);
21
- }
22
- }, [isItemBeingEdited, label]);
23
- return {
24
- propsEnhancers: {
25
- label: () => ({
26
- editable: isItemEditable
27
- }),
28
- labelInput: ({
29
- externalEventHandlers,
30
- interactions
31
- }) => {
32
- if (!isItemEditable) {
33
- return {};
34
- }
35
- const handleKeydown = event => {
36
- externalEventHandlers.onKeyDown?.(event);
37
- if (event.defaultMuiPrevented) {
38
- return;
39
- }
40
- const target = event.target;
41
- if (event.key === 'Enter' && target.value) {
42
- interactions.handleSaveItemLabel(event, target.value);
43
- } else if (event.key === 'Escape') {
44
- interactions.handleCancelItemLabelEditing(event);
45
- }
46
- };
47
- const handleBlur = event => {
48
- externalEventHandlers.onBlur?.(event);
49
- if (event.defaultMuiPrevented) {
50
- return;
51
- }
52
- if (event.target.value) {
53
- interactions.handleSaveItemLabel(event, event.target.value);
54
- }
55
- };
56
- const handleInputChange = event => {
57
- externalEventHandlers.onChange?.(event);
58
- setLabelInputValue(event.target.value);
59
- };
60
- return {
61
- value: labelInputValue ?? '',
62
- 'data-element': 'labelInput',
63
- onChange: handleInputChange,
64
- onKeyDown: handleKeydown,
65
- onBlur: handleBlur,
66
- autoFocus: true,
67
- type: 'text'
68
- };
69
- }
70
- }
71
- };
72
- };
@@ -1,73 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
- import { useTreeViewLabelItemPlugin } from "./useTreeViewLabel.itemPlugin.js";
4
- export const useTreeViewLabel = ({
5
- store,
6
- params
7
- }) => {
8
- const setEditedItemId = editedItemId => {
9
- store.update(prevState => _extends({}, prevState, {
10
- label: _extends({}, prevState.label, {
11
- editedItemId
12
- })
13
- }));
14
- };
15
- const updateItemLabel = (itemId, label) => {
16
- if (!label) {
17
- 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'));
18
- }
19
- store.update(prevState => {
20
- const item = prevState.items.itemMetaLookup[itemId];
21
- if (item.label !== label) {
22
- return _extends({}, prevState, {
23
- items: _extends({}, prevState.items, {
24
- itemMetaLookup: _extends({}, prevState.items.itemMetaLookup, {
25
- [itemId]: _extends({}, item, {
26
- label
27
- })
28
- })
29
- })
30
- });
31
- }
32
- return prevState;
33
- });
34
- if (params.onItemLabelChange) {
35
- params.onItemLabelChange(itemId, label);
36
- }
37
- };
38
- useEnhancedEffect(() => {
39
- const isItemEditable = params.isItemEditable;
40
- store.update(prevState => _extends({}, prevState, {
41
- label: _extends({}, prevState.label, {
42
- isItemEditable: typeof isItemEditable === 'boolean' ? () => isItemEditable : isItemEditable
43
- })
44
- }));
45
- }, [store, params.isItemEditable]);
46
- return {
47
- instance: {
48
- setEditedItemId,
49
- updateItemLabel
50
- },
51
- publicAPI: {
52
- updateItemLabel
53
- }
54
- };
55
- };
56
- useTreeViewLabel.itemPlugin = useTreeViewLabelItemPlugin;
57
- useTreeViewLabel.getDefaultizedParams = ({
58
- params
59
- }) => _extends({}, params, {
60
- isItemEditable: params.isItemEditable ?? false
61
- });
62
- useTreeViewLabel.getInitialState = ({
63
- isItemEditable
64
- }) => ({
65
- label: {
66
- isItemEditable: typeof isItemEditable === 'boolean' ? () => isItemEditable : isItemEditable,
67
- editedItemId: null
68
- }
69
- });
70
- useTreeViewLabel.params = {
71
- onItemLabelChange: true,
72
- isItemEditable: true
73
- };
@@ -1,68 +0,0 @@
1
- import { UseTreeViewLabelSignature } from "./useTreeViewLabel.types.js";
2
- import { TreeViewRootSelector } from "../../utils/selectors.js";
3
- /**
4
- * Check if an item is editable.
5
- * @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
6
- * @param {TreeViewItemId} itemId The id of the item to check.
7
- * @returns {boolean} `true` if the item is editable, `false` otherwise.
8
- */
9
- export declare const selectorIsItemEditable: ((state: any, itemId: string) => boolean) & {
10
- clearCache: () => void;
11
- resultsCount: () => number;
12
- resetResultsCount: () => void;
13
- } & {
14
- resultFunc: (resultFuncArgs_0: {
15
- isItemEditable: (item: any) => boolean;
16
- editedItemId: string | null;
17
- } | undefined, resultFuncArgs_1: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>) => boolean;
18
- memoizedResultFunc: ((resultFuncArgs_0: {
19
- isItemEditable: (item: any) => boolean;
20
- editedItemId: string | null;
21
- } | undefined, resultFuncArgs_1: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>) => boolean) & {
22
- clearCache: () => void;
23
- resultsCount: () => number;
24
- resetResultsCount: () => void;
25
- };
26
- lastResult: () => boolean;
27
- dependencies: [TreeViewRootSelector<UseTreeViewLabelSignature, true>, (state: any, itemId: string) => import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>];
28
- recomputations: () => number;
29
- resetRecomputations: () => void;
30
- dependencyRecomputations: () => number;
31
- resetDependencyRecomputations: () => void;
32
- } & {
33
- argsMemoize: typeof import("reselect").weakMapMemoize;
34
- memoize: typeof import("reselect").weakMapMemoize;
35
- };
36
- /**
37
- * Check if an item is being edited.
38
- * @param {TreeViewState<[UseTreeViewLabelSignature]>} state The state of the tree view.
39
- * @param {TreeViewItemId} itemId The id of the item to check.
40
- * @returns {boolean} `true` if the item is being edited, `false` otherwise.
41
- */
42
- export declare const selectorIsItemBeingEdited: ((state: any, itemId: string) => boolean) & {
43
- clearCache: () => void;
44
- resultsCount: () => number;
45
- resetResultsCount: () => void;
46
- } & {
47
- resultFunc: (resultFuncArgs_0: {
48
- isItemEditable: (item: any) => boolean;
49
- editedItemId: string | null;
50
- } | undefined, resultFuncArgs_1: string) => boolean;
51
- memoizedResultFunc: ((resultFuncArgs_0: {
52
- isItemEditable: (item: any) => boolean;
53
- editedItemId: string | null;
54
- } | undefined, resultFuncArgs_1: string) => boolean) & {
55
- clearCache: () => void;
56
- resultsCount: () => number;
57
- resetResultsCount: () => void;
58
- };
59
- lastResult: () => boolean;
60
- dependencies: [TreeViewRootSelector<UseTreeViewLabelSignature, true>, (_: any, itemId: string) => string];
61
- recomputations: () => number;
62
- resetRecomputations: () => void;
63
- dependencyRecomputations: () => number;
64
- resetDependencyRecomputations: () => void;
65
- } & {
66
- argsMemoize: typeof import("reselect").weakMapMemoize;
67
- memoize: typeof import("reselect").weakMapMemoize;
68
- };
@@ -1,24 +0,0 @@
1
- import { createSelector } from "../../utils/selectors.js";
2
- import { selectorItemModel } from "../useTreeViewItems/useTreeViewItems.selectors.js";
3
- const selectorTreeViewLabelState = state => state.label;
4
-
5
- /**
6
- * Check if an item is editable.
7
- * @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
8
- * @param {TreeViewItemId} itemId The id of the item to check.
9
- * @returns {boolean} `true` if the item is editable, `false` otherwise.
10
- */
11
- export const selectorIsItemEditable = createSelector([selectorTreeViewLabelState, (state, itemId) => selectorItemModel(state, itemId)], (labelState, itemModel) => {
12
- if (!itemModel || !labelState) {
13
- return false;
14
- }
15
- return labelState.isItemEditable(itemModel);
16
- });
17
-
18
- /**
19
- * Check if an item is being edited.
20
- * @param {TreeViewState<[UseTreeViewLabelSignature]>} state The state of the tree view.
21
- * @param {TreeViewItemId} itemId The id of the item to check.
22
- * @returns {boolean} `true` if the item is being edited, `false` otherwise.
23
- */
24
- export const selectorIsItemBeingEdited = createSelector([selectorTreeViewLabelState, (_, itemId) => itemId], (labelState, itemId) => labelState?.editedItemId === itemId);
@@ -1,60 +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
- import { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.js";
6
- export interface UseTreeViewLabelPublicAPI {
7
- /**
8
- * Used to update the label of an item.
9
- * @param {TreeViewItemId} itemId The id of the item to update the label of.
10
- * @param {string} newLabel The new label of the item.
11
- */
12
- updateItemLabel: (itemId: TreeViewItemId, newLabel: string) => void;
13
- }
14
- export interface UseTreeViewLabelInstance extends UseTreeViewLabelPublicAPI {
15
- /**
16
- * Updates which item is currently being edited.
17
- * @param {TreeViewItemId} itemId The id of the item that is currently being edited.
18
- * @returns {void}.
19
- */
20
- setEditedItemId: (itemId: TreeViewItemId | null) => void;
21
- }
22
- export interface UseTreeViewLabelParameters<R extends {}> {
23
- /**
24
- * Callback fired when the label of an item changes.
25
- * @param {TreeViewItemId} itemId The id of the item that was edited.
26
- * @param {string} newLabel The new label of the items.
27
- */
28
- onItemLabelChange?: (itemId: TreeViewItemId, newLabel: string) => void;
29
- /**
30
- * Determine if a given item can be edited.
31
- * @template R
32
- * @param {R} item The item to check.
33
- * @returns {boolean} `true` if the item can be edited.
34
- * @default () => false
35
- */
36
- isItemEditable?: boolean | ((item: R) => boolean);
37
- }
38
- export type UseTreeViewLabelDefaultizedParameters<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
39
- export interface UseTreeViewLabelState {
40
- label: {
41
- isItemEditable: (item: any) => boolean;
42
- editedItemId: string | null;
43
- };
44
- }
45
- export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
46
- params: UseTreeViewLabelParameters<any>;
47
- defaultizedParams: UseTreeViewLabelDefaultizedParameters<any>;
48
- publicAPI: UseTreeViewLabelPublicAPI;
49
- instance: UseTreeViewLabelInstance;
50
- state: UseTreeViewLabelState;
51
- dependencies: [UseTreeViewItemsSignature];
52
- }>;
53
- export interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
54
- export interface UseTreeItemLabelSlotPropsFromLabelEditing {
55
- editable?: boolean;
56
- }
57
- declare module '@mui/x-tree-view/useTreeItem' {
58
- interface UseTreeItemLabelInputSlotOwnProps extends UseTreeItemLabelInputSlotPropsFromLabelEditing {}
59
- interface UseTreeItemLabelSlotOwnProps extends UseTreeItemLabelSlotPropsFromLabelEditing {}
60
- }
@@ -1 +0,0 @@
1
- export type { UseTreeViewLazyLoadingSignature, UseTreeViewLazyLoadingParameters } from './useTreeViewLazyLoading.types';