@fluentui/react-tree 9.0.0-beta.3 → 9.0.0-beta.30

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 (307) hide show
  1. package/CHANGELOG.json +1566 -1
  2. package/CHANGELOG.md +423 -2
  3. package/dist/index.d.ts +408 -131
  4. package/lib/FlatTree.js +1 -0
  5. package/lib/FlatTree.js.map +1 -0
  6. package/lib/Tree.js +0 -1
  7. package/lib/Tree.js.map +1 -1
  8. package/lib/TreeItem.js +0 -1
  9. package/lib/TreeItem.js.map +1 -1
  10. package/lib/TreeItemLayout.js +0 -1
  11. package/lib/TreeItemLayout.js.map +1 -1
  12. package/lib/TreeItemPersonaLayout.js +0 -1
  13. package/lib/TreeItemPersonaLayout.js.map +1 -1
  14. package/lib/components/FlatTree/FlatTree.js +13 -0
  15. package/lib/components/FlatTree/FlatTree.js.map +1 -0
  16. package/lib/components/FlatTree/FlatTree.types.js +1 -0
  17. package/lib/components/FlatTree/FlatTree.types.js.map +1 -0
  18. package/lib/components/FlatTree/index.js +6 -0
  19. package/lib/components/FlatTree/index.js.map +1 -0
  20. package/lib/components/FlatTree/useFlatControllableCheckedItems.js +63 -0
  21. package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
  22. package/lib/components/FlatTree/useFlatTree.js +3 -0
  23. package/lib/components/FlatTree/useFlatTree.js.map +1 -0
  24. package/lib/components/FlatTree/useFlatTreeNavigation.js +74 -0
  25. package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
  26. package/lib/components/FlatTree/useFlatTreeStyles.styles.js +20 -0
  27. package/lib/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
  28. package/lib/components/FlatTree/useHeadlessFlatTree.js +117 -0
  29. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
  30. package/lib/components/Tree/Tree.js +8 -15
  31. package/lib/components/Tree/Tree.js.map +1 -1
  32. package/lib/components/Tree/Tree.types.js +1 -2
  33. package/lib/components/Tree/Tree.types.js.map +1 -1
  34. package/lib/components/Tree/index.js +2 -3
  35. package/lib/components/Tree/index.js.map +1 -1
  36. package/lib/components/Tree/renderTree.js +7 -13
  37. package/lib/components/Tree/renderTree.js.map +1 -1
  38. package/lib/components/Tree/useControllableCheckedItems.js +94 -0
  39. package/lib/components/Tree/useControllableCheckedItems.js.map +1 -0
  40. package/lib/components/Tree/useTree.js +55 -112
  41. package/lib/components/Tree/useTree.js.map +1 -1
  42. package/lib/components/Tree/useTreeContextValues.js +14 -22
  43. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  44. package/lib/components/Tree/useTreeNavigation.js +52 -0
  45. package/lib/components/Tree/useTreeNavigation.js.map +1 -0
  46. package/lib/components/Tree/{useTreeStyles.js → useTreeStyles.styles.js} +7 -3
  47. package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
  48. package/lib/components/TreeItem/TreeItem.js +16 -9
  49. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  50. package/lib/components/TreeItem/TreeItem.types.js +1 -2
  51. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  52. package/lib/components/TreeItem/index.js +2 -2
  53. package/lib/components/TreeItem/index.js.map +1 -1
  54. package/lib/components/TreeItem/renderTreeItem.js +7 -25
  55. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  56. package/lib/components/TreeItem/useTreeItem.js +163 -234
  57. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  58. package/lib/components/TreeItem/useTreeItemContextValues.js +20 -16
  59. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  60. package/lib/components/TreeItem/useTreeItemStyles.styles.js +100 -0
  61. package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  62. package/lib/components/TreeItemChevron.js +24 -0
  63. package/lib/components/TreeItemChevron.js.map +1 -0
  64. package/lib/components/TreeItemLayout/TreeItemLayout.js +8 -8
  65. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  66. package/lib/components/TreeItemLayout/TreeItemLayout.types.js +1 -2
  67. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  68. package/lib/components/TreeItemLayout/index.js +1 -2
  69. package/lib/components/TreeItemLayout/index.js.map +1 -1
  70. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +8 -21
  71. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  72. package/lib/components/TreeItemLayout/useTreeItemLayout.js +99 -40
  73. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  74. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +237 -0
  75. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  76. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +9 -9
  77. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  78. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -2
  79. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  80. package/lib/components/TreeItemPersonaLayout/index.js +1 -2
  81. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  82. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +10 -27
  83. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  84. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +40 -48
  85. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  86. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +9 -10
  87. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  88. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +210 -0
  89. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  90. package/lib/contexts/index.js +0 -1
  91. package/lib/contexts/index.js.map +1 -1
  92. package/lib/contexts/treeContext.js +13 -15
  93. package/lib/contexts/treeContext.js.map +1 -1
  94. package/lib/contexts/treeItemContext.js +16 -10
  95. package/lib/contexts/treeItemContext.js.map +1 -1
  96. package/lib/hooks/useControllableOpenItems.js +28 -0
  97. package/lib/hooks/useControllableOpenItems.js.map +1 -0
  98. package/lib/hooks/useRootTree.js +139 -0
  99. package/lib/hooks/useRootTree.js.map +1 -0
  100. package/lib/hooks/useRovingTabIndexes.js +30 -49
  101. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  102. package/lib/hooks/useSubtree.js +39 -0
  103. package/lib/hooks/useSubtree.js.map +1 -0
  104. package/lib/index.js +3 -4
  105. package/lib/index.js.map +1 -1
  106. package/lib/utils/ImmutableMap.js +41 -0
  107. package/lib/utils/ImmutableMap.js.map +1 -0
  108. package/lib/utils/ImmutableSet.js +42 -33
  109. package/lib/utils/ImmutableSet.js.map +1 -1
  110. package/lib/utils/assert.js +5 -5
  111. package/lib/utils/assert.js.map +1 -1
  112. package/lib/utils/createCheckedItems.js +18 -0
  113. package/lib/utils/createCheckedItems.js.map +1 -0
  114. package/lib/utils/createHTMLElementWalker.js +67 -0
  115. package/lib/utils/createHTMLElementWalker.js.map +1 -0
  116. package/lib/utils/createHeadlessTree.js +188 -0
  117. package/lib/utils/createHeadlessTree.js.map +1 -0
  118. package/lib/utils/createOpenItems.js +10 -0
  119. package/lib/utils/createOpenItems.js.map +1 -0
  120. package/lib/utils/flattenTree.js +54 -29
  121. package/lib/utils/flattenTree.js.map +1 -1
  122. package/lib/utils/getTreeItemValueFromElement.js +4 -0
  123. package/lib/utils/getTreeItemValueFromElement.js.map +1 -0
  124. package/lib/utils/nextTypeAheadElement.js +11 -12
  125. package/lib/utils/nextTypeAheadElement.js.map +1 -1
  126. package/lib/utils/normalizeOpenItems.js +6 -5
  127. package/lib/utils/normalizeOpenItems.js.map +1 -1
  128. package/lib/utils/tokens.js +14 -14
  129. package/lib/utils/tokens.js.map +1 -1
  130. package/lib/utils/treeItemFilter.js +2 -3
  131. package/lib/utils/treeItemFilter.js.map +1 -1
  132. package/lib-commonjs/FlatTree.js +6 -0
  133. package/lib-commonjs/FlatTree.js.map +1 -0
  134. package/lib-commonjs/Tree.js +3 -5
  135. package/lib-commonjs/Tree.js.map +1 -1
  136. package/lib-commonjs/TreeItem.js +3 -5
  137. package/lib-commonjs/TreeItem.js.map +1 -1
  138. package/lib-commonjs/TreeItemLayout.js +3 -5
  139. package/lib-commonjs/TreeItemLayout.js.map +1 -1
  140. package/lib-commonjs/TreeItemPersonaLayout.js +3 -5
  141. package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
  142. package/lib-commonjs/components/FlatTree/FlatTree.js +20 -0
  143. package/lib-commonjs/components/FlatTree/FlatTree.js.map +1 -0
  144. package/lib-commonjs/components/FlatTree/FlatTree.types.js +4 -0
  145. package/lib-commonjs/components/FlatTree/FlatTree.types.js.map +1 -0
  146. package/lib-commonjs/components/FlatTree/index.js +21 -0
  147. package/lib-commonjs/components/FlatTree/index.js.map +1 -0
  148. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js +78 -0
  149. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
  150. package/lib-commonjs/components/FlatTree/useFlatTree.js +12 -0
  151. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -0
  152. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js +82 -0
  153. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
  154. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +36 -0
  155. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
  156. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +114 -0
  157. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
  158. package/lib-commonjs/components/Tree/Tree.js +17 -23
  159. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  160. package/lib-commonjs/components/Tree/Tree.types.js +1 -3
  161. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  162. package/lib-commonjs/components/Tree/index.js +8 -10
  163. package/lib-commonjs/components/Tree/index.js.map +1 -1
  164. package/lib-commonjs/components/Tree/renderTree.js +14 -19
  165. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  166. package/lib-commonjs/components/Tree/useControllableCheckedItems.js +103 -0
  167. package/lib-commonjs/components/Tree/useControllableCheckedItems.js.map +1 -0
  168. package/lib-commonjs/components/Tree/useTree.js +61 -116
  169. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  170. package/lib-commonjs/components/Tree/useTreeContextValues.js +19 -26
  171. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  172. package/lib-commonjs/components/Tree/useTreeNavigation.js +60 -0
  173. package/lib-commonjs/components/Tree/useTreeNavigation.js.map +1 -0
  174. package/lib-commonjs/components/Tree/useTreeStyles.styles.js +41 -0
  175. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
  176. package/lib-commonjs/components/TreeItem/TreeItem.js +17 -18
  177. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  178. package/lib-commonjs/components/TreeItem/TreeItem.types.js +3 -4
  179. package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
  180. package/lib-commonjs/components/TreeItem/index.js +8 -9
  181. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  182. package/lib-commonjs/components/TreeItem/renderTreeItem.js +14 -33
  183. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  184. package/lib-commonjs/components/TreeItem/useTreeItem.js +172 -250
  185. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  186. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +25 -20
  187. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  188. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +202 -0
  189. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  190. package/lib-commonjs/components/TreeItemChevron.js +33 -0
  191. package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
  192. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +15 -16
  193. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  194. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js +1 -3
  195. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  196. package/lib-commonjs/components/TreeItemLayout/index.js +7 -9
  197. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  198. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +14 -28
  199. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  200. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +105 -52
  201. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  202. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +392 -0
  203. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  204. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +17 -18
  205. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  206. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -3
  207. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  208. package/lib-commonjs/components/TreeItemPersonaLayout/index.js +7 -9
  209. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  210. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +17 -35
  211. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  212. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +47 -61
  213. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  214. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +16 -15
  215. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  216. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +379 -0
  217. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  218. package/lib-commonjs/contexts/index.js +4 -6
  219. package/lib-commonjs/contexts/index.js.map +1 -1
  220. package/lib-commonjs/contexts/treeContext.js +26 -18
  221. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  222. package/lib-commonjs/contexts/treeItemContext.js +30 -13
  223. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  224. package/lib-commonjs/hooks/useControllableOpenItems.js +39 -0
  225. package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -0
  226. package/lib-commonjs/hooks/useRootTree.js +143 -0
  227. package/lib-commonjs/hooks/useRootTree.js.map +1 -0
  228. package/lib-commonjs/hooks/useRovingTabIndexes.js +36 -55
  229. package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
  230. package/lib-commonjs/hooks/useSubtree.js +43 -0
  231. package/lib-commonjs/hooks/useSubtree.js.map +1 -0
  232. package/lib-commonjs/index.js +53 -181
  233. package/lib-commonjs/index.js.map +1 -1
  234. package/lib-commonjs/utils/ImmutableMap.js +49 -0
  235. package/lib-commonjs/utils/ImmutableMap.js.map +1 -0
  236. package/lib-commonjs/utils/ImmutableSet.js +47 -38
  237. package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
  238. package/lib-commonjs/utils/assert.js +11 -9
  239. package/lib-commonjs/utils/assert.js.map +1 -1
  240. package/lib-commonjs/utils/createCheckedItems.js +26 -0
  241. package/lib-commonjs/utils/createCheckedItems.js.map +1 -0
  242. package/lib-commonjs/utils/createHTMLElementWalker.js +75 -0
  243. package/lib-commonjs/utils/createHTMLElementWalker.js.map +1 -0
  244. package/lib-commonjs/utils/createHeadlessTree.js +202 -0
  245. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -0
  246. package/lib-commonjs/utils/createOpenItems.js +18 -0
  247. package/lib-commonjs/utils/createOpenItems.js.map +1 -0
  248. package/lib-commonjs/utils/flattenTree.js +21 -34
  249. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  250. package/lib-commonjs/utils/getTreeItemValueFromElement.js +18 -0
  251. package/lib-commonjs/utils/getTreeItemValueFromElement.js.map +1 -0
  252. package/lib-commonjs/utils/nextTypeAheadElement.js +16 -16
  253. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  254. package/lib-commonjs/utils/normalizeOpenItems.js +11 -9
  255. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  256. package/lib-commonjs/utils/tokens.js +29 -20
  257. package/lib-commonjs/utils/tokens.js.map +1 -1
  258. package/lib-commonjs/utils/treeItemFilter.js +7 -7
  259. package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
  260. package/package.json +26 -17
  261. package/lib/components/Tree/useTreeStyles.js.map +0 -1
  262. package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
  263. package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
  264. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
  265. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  266. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -115
  267. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  268. package/lib/hooks/index.js +0 -4
  269. package/lib/hooks/index.js.map +0 -1
  270. package/lib/hooks/useFlatTree.js +0 -49
  271. package/lib/hooks/useFlatTree.js.map +0 -1
  272. package/lib/hooks/useFlatTreeNavigation.js +0 -74
  273. package/lib/hooks/useFlatTreeNavigation.js.map +0 -1
  274. package/lib/hooks/useHTMLElementWalker.js +0 -80
  275. package/lib/hooks/useHTMLElementWalker.js.map +0 -1
  276. package/lib/hooks/useNestedTreeNavigation.js +0 -59
  277. package/lib/hooks/useNestedTreeNavigation.js.map +0 -1
  278. package/lib/hooks/useOpenItemsState.js +0 -22
  279. package/lib/hooks/useOpenItemsState.js.map +0 -1
  280. package/lib/utils/createUnfilteredFlatTree.js +0 -77
  281. package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
  282. package/lib/utils/createVisibleFlatTree.js +0 -80
  283. package/lib/utils/createVisibleFlatTree.js.map +0 -1
  284. package/lib-commonjs/components/Tree/useTreeStyles.js +0 -27
  285. package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
  286. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -210
  287. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
  288. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -105
  289. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  290. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -122
  291. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  292. package/lib-commonjs/hooks/index.js +0 -10
  293. package/lib-commonjs/hooks/index.js.map +0 -1
  294. package/lib-commonjs/hooks/useFlatTree.js +0 -56
  295. package/lib-commonjs/hooks/useFlatTree.js.map +0 -1
  296. package/lib-commonjs/hooks/useFlatTreeNavigation.js +0 -81
  297. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +0 -1
  298. package/lib-commonjs/hooks/useHTMLElementWalker.js +0 -88
  299. package/lib-commonjs/hooks/useHTMLElementWalker.js.map +0 -1
  300. package/lib-commonjs/hooks/useNestedTreeNavigation.js +0 -66
  301. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +0 -1
  302. package/lib-commonjs/hooks/useOpenItemsState.js +0 -29
  303. package/lib-commonjs/hooks/useOpenItemsState.js.map +0 -1
  304. package/lib-commonjs/utils/createUnfilteredFlatTree.js +0 -84
  305. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
  306. package/lib-commonjs/utils/createVisibleFlatTree.js +0 -87
  307. package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["tslib_1","__exportStar","require","exports"],"sources":["../src/packages/react-components/react-tree/src/components/Tree/index.ts"],"sourcesContent":["export * from './Tree';\nexport * from './Tree.types';\nexport * from './renderTree';\nexport * from './useTree';\nexport * from './useTreeStyles';\nexport * from './useTreeContextValues';\n"],"mappings":";;;;;;AAAAA,OAAA,CAAAC,YAAA,CAAAC,OAAA,YAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,kBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,kBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,eAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,qBAAAC,OAAA;AACAH,OAAA,CAAAC,YAAA,CAAAC,OAAA,4BAAAC,OAAA"}
1
+ {"version":3,"sources":["index.js"],"sourcesContent":["export * from './Tree';\nexport * from './Tree.types';\nexport * from './useTree';\nexport * from './useTreeContextValues';\nexport * from './useTreeStyles.styles';\nexport * from './renderTree';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA"}
@@ -1,22 +1,17 @@
1
- "use strict";
2
-
1
+ /** @jsxRuntime classic */ /** @jsx createElement */ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.renderTree_unstable = void 0;
7
- const React = /*#__PURE__*/require("react");
8
- const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
- const contexts_1 = /*#__PURE__*/require("../../contexts");
10
- const renderTree_unstable = (state, contextValues) => {
11
- const {
12
- slots,
13
- slotProps
14
- } = react_utilities_1.getSlots(state);
15
- return React.createElement(contexts_1.TreeProvider, {
16
- value: contextValues.tree
17
- }, React.createElement(slots.root, {
18
- ...slotProps.root
19
- }, slotProps.root.children));
5
+ Object.defineProperty(exports, "renderTree_unstable", {
6
+ enumerable: true,
7
+ get: ()=>renderTree_unstable
8
+ });
9
+ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
+ const _reactUtilities = require("@fluentui/react-utilities");
11
+ const _contexts = require("../../contexts");
12
+ const renderTree_unstable = (state, contextValues)=>{
13
+ const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
14
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeProvider, {
15
+ value: contextValues.tree
16
+ }, state.open && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, slotProps.root.children));
20
17
  };
21
- exports.renderTree_unstable = renderTree_unstable;
22
- //# sourceMappingURL=renderTree.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","require","react_utilities_1","contexts_1","renderTree_unstable","state","contextValues","slots","slotProps","getSlots","createElement","TreeProvider","value","tree","root","children","exports"],"sources":["../src/packages/react-components/react-tree/src/components/Tree/renderTree.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { TreeState, TreeSlots, TreeContextValues } from './Tree.types';\nimport { TreeProvider } from '../../contexts';\n\nexport const renderTree_unstable = (state: TreeState, contextValues: TreeContextValues) => {\n const { slots, slotProps } = getSlots<TreeSlots>(state);\n\n return (\n <TreeProvider value={contextValues.tree}>\n <slots.root {...slotProps.root}>{slotProps.root.children}</slots.root>\n </TreeProvider>\n );\n};\n"],"mappings":";;;;;;AAAA,MAAAA,KAAA,gBAAAC,OAAA;AACA,MAAAC,iBAAA,gBAAAD,OAAA;AAEA,MAAAE,UAAA,gBAAAF,OAAA;AAEO,MAAMG,mBAAmB,GAAGA,CAACC,KAAgB,EAAEC,aAAgC,KAAI;EACxF,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGN,iBAAA,CAAAO,QAAQ,CAAYJ,KAAK,CAAC;EAEvD,OACEL,KAAA,CAAAU,aAAA,CAACP,UAAA,CAAAQ,YAAY;IAACC,KAAK,EAAEN,aAAa,CAACO;EAAI,GACrCb,KAAA,CAAAU,aAAA,CAACH,KAAK,CAACO,IAAI;IAAA,GAAKN,SAAS,CAACM;EAAI,GAAGN,SAAS,CAACM,IAAI,CAACC,QAAQ,CAAc,CACzD;AAEnB,CAAC;AARYC,OAAA,CAAAZ,mBAAmB,GAAAA,mBAAA"}
1
+ {"version":3,"sources":["renderTree.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeProvider } from '../../contexts';\nexport const renderTree_unstable = (state, contextValues)=>{\n const { slots , slotProps } = getSlotsNext(state);\n return /*#__PURE__*/ createElement(TreeProvider, {\n value: contextValues.tree\n }, state.open && /*#__PURE__*/ createElement(slots.root, slotProps.root, slotProps.root.children));\n};\n"],"names":["renderTree_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","TreeProvider","value","tree","open","root","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAGrCA;;aAAAA;;iCAHsE;gCACtD;0BACA;AACtB,MAAMA,sBAAsB,CAACC,OAAOC,gBAAgB;IACvD,MAAM,EAAEC,MAAK,EAAGC,UAAS,EAAG,GAAGC,IAAAA,4BAAY,EAACJ;IAC5C,OAAO,WAAW,GAAGK,IAAAA,8BAAa,EAACC,sBAAY,EAAE;QAC7CC,OAAON,cAAcO,IAAI;IAC7B,GAAGR,MAAMS,IAAI,IAAI,WAAW,GAAGJ,IAAAA,8BAAa,EAACH,MAAMQ,IAAI,EAAEP,UAAUO,IAAI,EAAEP,UAAUO,IAAI,CAACC,QAAQ;AACpG"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useControllableCheckedItems", {
6
+ enumerable: true,
7
+ get: ()=>useControllableCheckedItems
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _reactUtilities = require("@fluentui/react-utilities");
11
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
12
+ const _immutableMap = require("../../utils/ImmutableMap");
13
+ const _createCheckedItems = require("../../utils/createCheckedItems");
14
+ function useControllableCheckedItems(props) {
15
+ return (0, _reactUtilities.useControllableState)({
16
+ initialState: _immutableMap.ImmutableMap.empty,
17
+ state: _react.useMemo(()=>props.checkedItems && (0, _createCheckedItems.createCheckedItems)(props.checkedItems), [
18
+ props.checkedItems
19
+ ]),
20
+ defaultState: ()=>(0, _createCheckedItems.createCheckedItems)(props.defaultCheckedItems)
21
+ });
22
+ } // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {
23
+ // const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);
24
+ // const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);
25
+ // const defaultSelections = React.useMemo(
26
+ // () => initializeSelection(props.defaultCheckedItems ?? []),
27
+ // [props.defaultCheckedItems],
28
+ // );
29
+ // const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({
30
+ // selectionMode: props.selectionMode ?? 'single',
31
+ // selectedItems: selections.checkedSelection,
32
+ // defaultSelectedItems: defaultSelections.checkedSelection,
33
+ // });
34
+ // const [mixedSelection, setMixedSelection] = useControllableState({
35
+ // initialState: ImmutableSet.empty,
36
+ // defaultState: React.useMemo(
37
+ // () => ImmutableSet.create(defaultSelections.mixedSelection),
38
+ // [defaultSelections.mixedSelection],
39
+ // ),
40
+ // state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),
41
+ // });
42
+ // const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {
43
+ // if (props.selectionMode === 'single') {
44
+ // checkedSelectionManager.selectItem(data.value);
45
+ // return;
46
+ // }
47
+ // if (walkerRef.current === null) {
48
+ // return;
49
+ // }
50
+ // const nextSelectedState = !checkedSelectionManager.isSelected(data.value);
51
+ // let treeItemValues = getAllSubTreeItemValues(data).add(data.value);
52
+ // let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;
53
+ // walkerRef.current.currentElement = data.event.currentTarget;
54
+ // while (walkerRef.current.parentElement() !== null) {
55
+ // const descendants = Array.from(
56
+ // walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role="treeitem"]'),
57
+ // ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);
58
+ // const isAllSiblingsEqualSelectionState = descendants.every(item => {
59
+ // return (
60
+ // (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||
61
+ // treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
62
+ // );
63
+ // });
64
+ // if (isAllSiblingsEqualSelectionState) {
65
+ // treeItemValues = treeItemValues.add(
66
+ // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
67
+ // );
68
+ // mixedValues = mixedValues.delete(
69
+ // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
70
+ // );
71
+ // } else {
72
+ // treeItemValues = treeItemValues
73
+ // .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
74
+ // .add(data.value);
75
+ // mixedValues = mixedValues.add(
76
+ // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
77
+ // );
78
+ // }
79
+ // }
80
+ // unstable_batchedUpdates(() => {
81
+ // nextSelectedState
82
+ // ? checkedSelectionManager.selectItems(treeItemValues)
83
+ // : checkedSelectionManager.deselectItems(treeItemValues);
84
+ // let nextMixedSelection = ImmutableSet.create(mixedSelection);
85
+ // for (const value of mixedValues) {
86
+ // nextMixedSelection = nextMixedSelection.add(value);
87
+ // }
88
+ // for (const value of treeItemValues) {
89
+ // nextMixedSelection = nextMixedSelection.delete(value);
90
+ // }
91
+ // setMixedSelection(nextMixedSelection);
92
+ // });
93
+ // });
94
+ // return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;
95
+ // }
96
+ // function getAllSubTreeItemValues(data: TreeCheckedChangeData) {
97
+ // const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role="treeitem"]'));
98
+ // const values = new Set<TreeItemValue>();
99
+ // for (const item of subTreeItems) {
100
+ // values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);
101
+ // }
102
+ // return ImmutableSet.dangerouslyCreate(values);
103
+ // }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useControllableCheckedItems.js"],"sourcesContent":["import { useControllableState } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { ImmutableMap } from '../../utils/ImmutableMap';\nimport { createCheckedItems } from '../../utils/createCheckedItems';\nexport function useControllableCheckedItems(props) {\n return useControllableState({\n initialState: ImmutableMap.empty,\n state: React.useMemo(()=>props.checkedItems && createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]),\n defaultState: ()=>createCheckedItems(props.defaultCheckedItems)\n });\n} // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {\n // const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n // const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);\n // const defaultSelections = React.useMemo(\n // () => initializeSelection(props.defaultCheckedItems ?? []),\n // [props.defaultCheckedItems],\n // );\n // const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({\n // selectionMode: props.selectionMode ?? 'single',\n // selectedItems: selections.checkedSelection,\n // defaultSelectedItems: defaultSelections.checkedSelection,\n // });\n // const [mixedSelection, setMixedSelection] = useControllableState({\n // initialState: ImmutableSet.empty,\n // defaultState: React.useMemo(\n // () => ImmutableSet.create(defaultSelections.mixedSelection),\n // [defaultSelections.mixedSelection],\n // ),\n // state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),\n // });\n // const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {\n // if (props.selectionMode === 'single') {\n // checkedSelectionManager.selectItem(data.value);\n // return;\n // }\n // if (walkerRef.current === null) {\n // return;\n // }\n // const nextSelectedState = !checkedSelectionManager.isSelected(data.value);\n // let treeItemValues = getAllSubTreeItemValues(data).add(data.value);\n // let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;\n // walkerRef.current.currentElement = data.event.currentTarget;\n // while (walkerRef.current.parentElement() !== null) {\n // const descendants = Array.from(\n // walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n // ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);\n // const isAllSiblingsEqualSelectionState = descendants.every(item => {\n // return (\n // (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||\n // treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n // );\n // });\n // if (isAllSiblingsEqualSelectionState) {\n // treeItemValues = treeItemValues.add(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // mixedValues = mixedValues.delete(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // } else {\n // treeItemValues = treeItemValues\n // .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n // .add(data.value);\n // mixedValues = mixedValues.add(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // }\n // }\n // unstable_batchedUpdates(() => {\n // nextSelectedState\n // ? checkedSelectionManager.selectItems(treeItemValues)\n // : checkedSelectionManager.deselectItems(treeItemValues);\n // let nextMixedSelection = ImmutableSet.create(mixedSelection);\n // for (const value of mixedValues) {\n // nextMixedSelection = nextMixedSelection.add(value);\n // }\n // for (const value of treeItemValues) {\n // nextMixedSelection = nextMixedSelection.delete(value);\n // }\n // setMixedSelection(nextMixedSelection);\n // });\n // });\n // return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;\n // }\n // function getAllSubTreeItemValues(data: TreeCheckedChangeData) {\n // const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role=\"treeitem\"]'));\n // const values = new Set<TreeItemValue>();\n // for (const item of subTreeItems) {\n // values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);\n // }\n // return ImmutableSet.dangerouslyCreate(values);\n // }\n"],"names":["useControllableCheckedItems","props","useControllableState","initialState","ImmutableMap","empty","state","React","useMemo","checkedItems","createCheckedItems","defaultState","defaultCheckedItems"],"mappings":";;;;+BAIgBA;;aAAAA;;;gCAJqB;6DACd;8BACM;oCACM;AAC5B,SAASA,4BAA4BC,KAAK,EAAE;IAC/C,OAAOC,IAAAA,oCAAoB,EAAC;QACxBC,cAAcC,0BAAY,CAACC,KAAK;QAChCC,OAAOC,OAAMC,OAAO,CAAC,IAAIP,MAAMQ,YAAY,IAAIC,IAAAA,sCAAkB,EAACT,MAAMQ,YAAY,GAAG;YACnFR,MAAMQ,YAAY;SACrB;QACDE,cAAc,IAAID,IAAAA,sCAAkB,EAACT,MAAMW,mBAAmB;IAClE;AACJ,EAAE,2HAA2H;CAC5H,0EAA0E;CAC1E,iHAAiH;CACjH,6CAA6C;CAC7C,kEAAkE;CAClE,mCAAmC;CACnC,OAAO;CACP,sFAAsF;CACtF,sDAAsD;CACtD,kDAAkD;CAClD,gEAAgE;CAChE,QAAQ;CACR,uEAAuE;CACvE,wCAAwC;CACxC,mCAAmC;CACnC,qEAAqE;CACrE,4CAA4C;CAC5C,SAAS;CACT,+GAA+G;CAC/G,QAAQ;CACR,mFAAmF;CACnF,8CAA8C;CAC9C,wDAAwD;CACxD,gBAAgB;CAChB,QAAQ;CACR,wCAAwC;CACxC,gBAAgB;CAChB,QAAQ;CACR,iFAAiF;CACjF,0EAA0E;CAC1E,yEAAyE;CACzE,mEAAmE;CACnE,2DAA2D;CAC3D,wCAAwC;CACxC,+FAA+F;CAC/F,uFAAuF;CACvF,6EAA6E;CAC7E,mBAAmB;CACnB,qFAAqF;CACrF,8FAA8F;CAC9F,aAAa;CACb,YAAY;CACZ,gDAAgD;CAChD,+CAA+C;CAC/C,uGAAuG;CACvG,aAAa;CACb,4CAA4C;CAC5C,uGAAuG;CACvG,aAAa;CACb,iBAAiB;CACjB,0CAA0C;CAC1C,+GAA+G;CAC/G,8BAA8B;CAC9B,yCAAyC;CACzC,uGAAuG;CACvG,aAAa;CACb,UAAU;CACV,QAAQ;CACR,sCAAsC;CACtC,0BAA0B;CAC1B,gEAAgE;CAChE,mEAAmE;CACnE,sEAAsE;CACtE,2CAA2C;CAC3C,8DAA8D;CAC9D,UAAU;CACV,8CAA8C;CAC9C,iEAAiE;CACjE,UAAU;CACV,+CAA+C;CAC/C,UAAU;CACV,QAAQ;CACR,qFAAqF;CACrF,IAAI;CACJ,kEAAkE;CAClE,qGAAqG;CACrG,6CAA6C;CAC7C,uCAAuC;CACvC,iFAAiF;CACjF,MAAM;CACN,mDAAmD;CACnD,IAAI"}
@@ -1,120 +1,65 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.useTree_unstable = void 0;
7
- const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
8
- const contexts_1 = /*#__PURE__*/require("../../contexts");
9
- const hooks_1 = /*#__PURE__*/require("../../hooks");
10
- const tokens_1 = /*#__PURE__*/require("../../utils/tokens");
11
- /**
12
- * Create the state required to render Tree.
13
- *
14
- * The returned state can be modified with hooks such as useTreeStyles_unstable,
15
- * before being passed to renderTree_unstable.
16
- *
17
- * @param props - props from this instance of Tree
18
- * @param ref - reference to root HTMLElement of Tree
19
- */
20
- const useTree_unstable = (props, ref) => {
21
- const isSubtree = contexts_1.useTreeContext_unstable(ctx => ctx.level > 0);
22
- // as isSubtree is static, this doesn't break rule of hooks
23
- // and if this becomes an issue later on, this can be easily converted
24
- // eslint-disable-next-line react-hooks/rules-of-hooks
25
- return isSubtree ? useSubtree(props, ref) : useRootTree(props, ref);
5
+ Object.defineProperty(exports, "useTree_unstable", {
6
+ enumerable: true,
7
+ get: ()=>useTree_unstable
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
+ const _reactUtilities = require("@fluentui/react-utilities");
12
+ const _useControllableOpenItems = require("../../hooks/useControllableOpenItems");
13
+ const _useTreeNavigation = require("./useTreeNavigation");
14
+ const _useControllableCheckedItems = require("./useControllableCheckedItems");
15
+ const _treeContext = require("../../contexts/treeContext");
16
+ const _useRootTree = require("../../hooks/useRootTree");
17
+ const _useSubtree = require("../../hooks/useSubtree");
18
+ const _createHTMLElementWalker = require("../../utils/createHTMLElementWalker");
19
+ const _treeItemFilter = require("../../utils/treeItemFilter");
20
+ const useTree_unstable = (props, ref)=>{
21
+ const [openItems, setOpenItems] = (0, _useControllableOpenItems.useControllableOpenItems)(props);
22
+ const [checkedItems] = (0, _useControllableCheckedItems.useControllableCheckedItems)(props);
23
+ const { navigate , initialize } = (0, _useTreeNavigation.useTreeNavigation)();
24
+ const walkerRef = _react.useRef();
25
+ const initializeWalker = _react.useCallback((root)=>{
26
+ if (root) {
27
+ walkerRef.current = (0, _createHTMLElementWalker.createHTMLElementWalker)(root, _treeItemFilter.treeItemFilter);
28
+ initialize(walkerRef.current);
29
+ }
30
+ }, [
31
+ initialize
32
+ ]);
33
+ const handleOpenChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
34
+ var _props_onOpenChange;
35
+ (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);
36
+ setOpenItems((0, _useControllableOpenItems.createNextOpenItems)(data, openItems));
37
+ });
38
+ const handleCheckedChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
39
+ var _props_onCheckedChange;
40
+ (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, event, data);
41
+ // TODO: implement next checked items for tree
42
+ });
43
+ const handleNavigation = (0, _reactUtilities.useEventCallback)((event, data)=>{
44
+ var _props_onNavigation_unstable;
45
+ (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, event, data);
46
+ if (walkerRef.current) {
47
+ navigate(data, walkerRef.current);
48
+ }
49
+ });
50
+ const baseProps = {
51
+ ...props,
52
+ openItems,
53
+ checkedItems,
54
+ onOpenChange: handleOpenChange,
55
+ // eslint-disable-next-line @typescript-eslint/naming-convention
56
+ onNavigation_unstable: handleNavigation,
57
+ onCheckedChange: handleCheckedChange
58
+ };
59
+ const baseRef = (0, _reactUtilities.useMergedRefs)(ref, initializeWalker);
60
+ const isSubtree = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.level > 0);
61
+ // as isSubTree is static, this doesn't break rule of hooks
62
+ // and if this becomes an issue later on, this can be easily converted
63
+ // eslint-disable-next-line react-hooks/rules-of-hooks
64
+ return isSubtree ? (0, _useSubtree.useSubtree)(baseProps, baseRef) : (0, _useRootTree.useRootTree)(baseProps, baseRef);
26
65
  };
27
- exports.useTree_unstable = useTree_unstable;
28
- /**
29
- * Create the state required to render a sub-level Tree.
30
- *
31
- * @param props - props from this instance of Tree
32
- * @param ref - reference to root HTMLElement of Tree
33
- */
34
- function useSubtree(props, ref) {
35
- const contextAppearance = contexts_1.useTreeContext_unstable(ctx => ctx.appearance);
36
- const contextSize = contexts_1.useTreeContext_unstable(ctx => ctx.size);
37
- const {
38
- appearance = contextAppearance !== null && contextAppearance !== void 0 ? contextAppearance : 'subtle',
39
- size = contextSize !== null && contextSize !== void 0 ? contextSize : 'medium'
40
- } = props;
41
- const parentLevel = contexts_1.useTreeContext_unstable(ctx => ctx.level);
42
- const openItems = contexts_1.useTreeContext_unstable(ctx => ctx.openItems);
43
- const requestOpenChange = contexts_1.useTreeContext_unstable(ctx => ctx.requestOpenChange);
44
- const requestNavigation = contexts_1.useTreeContext_unstable(ctx => ctx.requestNavigation);
45
- return {
46
- components: {
47
- root: 'div'
48
- },
49
- appearance,
50
- size,
51
- level: parentLevel + 1,
52
- root: react_utilities_1.getNativeElementProps('div', {
53
- ref,
54
- role: 'group',
55
- ...props
56
- }),
57
- openItems,
58
- requestOpenChange,
59
- requestNavigation
60
- };
61
- }
62
- /**
63
- * Create the state required to render the root level Tree.
64
- *
65
- * @param props - props from this instance of Tree
66
- * @param ref - reference to root HTMLElement of Tree
67
- */
68
- function useRootTree(props, ref) {
69
- warnIfNoProperPropsRootTree(props);
70
- const {
71
- appearance = 'subtle',
72
- size = 'medium'
73
- } = props;
74
- const [openItems, updateOpenItems] = hooks_1.useOpenItemsState(props);
75
- const [navigate, navigationRef] = hooks_1.useNestedTreeNavigation();
76
- const requestOpenChange = react_utilities_1.useEventCallback(data => {
77
- var _a;
78
- (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, data.event, data);
79
- if (data.event.isDefaultPrevented()) {
80
- return;
81
- }
82
- return updateOpenItems(data);
83
- });
84
- const requestNavigation = react_utilities_1.useEventCallback(data => {
85
- var _a;
86
- (_a = props.onNavigation_unstable) === null || _a === void 0 ? void 0 : _a.call(props, data.event, data);
87
- if (data.event.isDefaultPrevented()) {
88
- return;
89
- }
90
- navigate(data);
91
- if (data.type === tokens_1.treeDataTypes.arrowDown || data.type === tokens_1.treeDataTypes.arrowUp) {
92
- data.event.preventDefault();
93
- }
94
- });
95
- return {
96
- components: {
97
- root: 'div'
98
- },
99
- appearance,
100
- size,
101
- level: 1,
102
- openItems,
103
- requestOpenChange,
104
- requestNavigation,
105
- root: react_utilities_1.getNativeElementProps('div', {
106
- ref: react_utilities_1.useMergedRefs(navigationRef, ref),
107
- role: 'tree',
108
- ...props
109
- })
110
- };
111
- }
112
- function warnIfNoProperPropsRootTree(props) {
113
- if (process.env.NODE_ENV === 'development') {
114
- if (!props['aria-label'] && !props['aria-labelledby']) {
115
- // eslint-disable-next-line no-console
116
- console.warn('Tree must have either a `aria-label` or `aria-labelledby` property defined');
117
- }
118
- }
119
- }
120
- //# sourceMappingURL=useTree.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["react_utilities_1","require","contexts_1","hooks_1","tokens_1","useTree_unstable","props","ref","isSubtree","useTreeContext_unstable","ctx","level","useSubtree","useRootTree","exports","contextAppearance","appearance","contextSize","size","parentLevel","openItems","requestOpenChange","requestNavigation","components","root","getNativeElementProps","role","warnIfNoProperPropsRootTree","updateOpenItems","useOpenItemsState","navigate","navigationRef","useNestedTreeNavigation","useEventCallback","data","_a","onOpenChange","call","event","isDefaultPrevented","onNavigation_unstable","type","treeDataTypes","arrowDown","arrowUp","preventDefault","useMergedRefs","process","env","NODE_ENV","console","warn"],"sources":["../src/packages/react-components/react-tree/src/components/Tree/useTree.ts"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { TreeOpenChangeData, TreeProps, TreeState, TreeNavigationData_unstable } from './Tree.types';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { useNestedTreeNavigation, useOpenItemsState } from '../../hooks';\nimport { treeDataTypes } from '../../utils/tokens';\n\n/**\n * Create the state required to render Tree.\n *\n * The returned state can be modified with hooks such as useTreeStyles_unstable,\n * before being passed to renderTree_unstable.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */\nexport const useTree_unstable = (props: TreeProps, ref: React.Ref<HTMLElement>): TreeState => {\n const isSubtree = useTreeContext_unstable(ctx => ctx.level > 0);\n // as isSubtree is static, this doesn't break rule of hooks\n // and if this becomes an issue later on, this can be easily converted\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isSubtree ? useSubtree(props, ref) : useRootTree(props, ref);\n};\n\n/**\n * Create the state required to render a sub-level Tree.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */\nfunction useSubtree(props: TreeProps, ref: React.Ref<HTMLElement>): TreeState {\n const contextAppearance = useTreeContext_unstable(ctx => ctx.appearance);\n const contextSize = useTreeContext_unstable(ctx => ctx.size);\n\n const { appearance = contextAppearance ?? 'subtle', size = contextSize ?? 'medium' } = props;\n\n const parentLevel = useTreeContext_unstable(ctx => ctx.level);\n const openItems = useTreeContext_unstable(ctx => ctx.openItems);\n const requestOpenChange = useTreeContext_unstable(ctx => ctx.requestOpenChange);\n const requestNavigation = useTreeContext_unstable(ctx => ctx.requestNavigation);\n\n return {\n components: {\n root: 'div',\n },\n appearance,\n size,\n level: parentLevel + 1,\n root: getNativeElementProps('div', {\n ref,\n role: 'group',\n ...props,\n }),\n openItems,\n requestOpenChange,\n requestNavigation,\n };\n}\n\n/**\n * Create the state required to render the root level Tree.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */\nfunction useRootTree(props: TreeProps, ref: React.Ref<HTMLElement>): TreeState {\n warnIfNoProperPropsRootTree(props);\n\n const { appearance = 'subtle', size = 'medium' } = props;\n\n const [openItems, updateOpenItems] = useOpenItemsState(props);\n const [navigate, navigationRef] = useNestedTreeNavigation();\n\n const requestOpenChange = useEventCallback((data: TreeOpenChangeData) => {\n props.onOpenChange?.(data.event, data);\n if (data.event.isDefaultPrevented()) {\n return;\n }\n return updateOpenItems(data);\n });\n\n const requestNavigation = useEventCallback((data: TreeNavigationData_unstable) => {\n props.onNavigation_unstable?.(data.event, data);\n if (data.event.isDefaultPrevented()) {\n return;\n }\n navigate(data);\n if (data.type === treeDataTypes.arrowDown || data.type === treeDataTypes.arrowUp) {\n data.event.preventDefault();\n }\n });\n\n return {\n components: {\n root: 'div',\n },\n appearance,\n size,\n level: 1,\n openItems,\n requestOpenChange,\n requestNavigation,\n root: getNativeElementProps('div', {\n ref: useMergedRefs(navigationRef, ref),\n role: 'tree',\n ...props,\n }),\n };\n}\n\nfunction warnIfNoProperPropsRootTree(props: Pick<TreeProps, 'aria-label' | 'aria-labelledby'>) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn('Tree must have either a `aria-label` or `aria-labelledby` property defined');\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"sources":["useTree.js"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { createNextOpenItems, useControllableOpenItems } from '../../hooks/useControllableOpenItems';\nimport { useTreeNavigation } from './useTreeNavigation';\nimport { useControllableCheckedItems } from './useControllableCheckedItems';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { useRootTree } from '../../hooks/useRootTree';\nimport { useSubtree } from '../../hooks/useSubtree';\nimport { createHTMLElementWalker } from '../../utils/createHTMLElementWalker';\nimport { treeItemFilter } from '../../utils/treeItemFilter';\nexport const useTree_unstable = (props, ref)=>{\n const [openItems, setOpenItems] = useControllableOpenItems(props);\n const [checkedItems] = useControllableCheckedItems(props);\n const { navigate , initialize } = useTreeNavigation();\n const walkerRef = React.useRef();\n const initializeWalker = React.useCallback((root)=>{\n if (root) {\n walkerRef.current = createHTMLElementWalker(root, treeItemFilter);\n initialize(walkerRef.current);\n }\n }, [\n initialize\n ]);\n const handleOpenChange = useEventCallback((event, data)=>{\n var _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);\n setOpenItems(createNextOpenItems(data, openItems));\n });\n const handleCheckedChange = useEventCallback((event, data)=>{\n var _props_onCheckedChange;\n (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, event, data);\n // TODO: implement next checked items for tree\n });\n const handleNavigation = useEventCallback((event, data)=>{\n var _props_onNavigation_unstable;\n (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, event, data);\n if (walkerRef.current) {\n navigate(data, walkerRef.current);\n }\n });\n const baseProps = {\n ...props,\n openItems,\n checkedItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n onCheckedChange: handleCheckedChange\n };\n const baseRef = useMergedRefs(ref, initializeWalker);\n const isSubtree = useTreeContext_unstable((ctx)=>ctx.level > 0);\n // as isSubTree is static, this doesn't break rule of hooks\n // and if this becomes an issue later on, this can be easily converted\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isSubtree ? useSubtree(baseProps, baseRef) : useRootTree(baseProps, baseRef);\n};\n"],"names":["useTree_unstable","props","ref","openItems","setOpenItems","useControllableOpenItems","checkedItems","useControllableCheckedItems","navigate","initialize","useTreeNavigation","walkerRef","React","useRef","initializeWalker","useCallback","root","current","createHTMLElementWalker","treeItemFilter","handleOpenChange","useEventCallback","event","data","_props_onOpenChange","onOpenChange","call","createNextOpenItems","handleCheckedChange","_props_onCheckedChange","onCheckedChange","handleNavigation","_props_onNavigation_unstable","onNavigation_unstable","baseProps","baseRef","useMergedRefs","isSubtree","useTreeContext_unstable","ctx","level","useSubtree","useRootTree"],"mappings":";;;;+BAUaA;;aAAAA;;;6DAVU;gCACyB;0CACc;mCAC5B;6CACU;6BACJ;6BACZ;4BACD;yCACa;gCACT;AACxB,MAAMA,mBAAmB,CAACC,OAAOC,MAAM;IAC1C,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,kDAAwB,EAACJ;IAC3D,MAAM,CAACK,aAAa,GAAGC,IAAAA,wDAA2B,EAACN;IACnD,MAAM,EAAEO,SAAQ,EAAGC,WAAU,EAAG,GAAGC,IAAAA,oCAAiB;IACpD,MAAMC,YAAYC,OAAMC,MAAM;IAC9B,MAAMC,mBAAmBF,OAAMG,WAAW,CAAC,CAACC,OAAO;QAC/C,IAAIA,MAAM;YACNL,UAAUM,OAAO,GAAGC,IAAAA,gDAAuB,EAACF,MAAMG,8BAAc;YAChEV,WAAWE,UAAUM,OAAO;QAChC,CAAC;IACL,GAAG;QACCR;KACH;IACD,MAAMW,mBAAmBC,IAAAA,gCAAgB,EAAC,CAACC,OAAOC,OAAO;QACrD,IAAIC;QACHA,CAAAA,sBAAsBvB,MAAMwB,YAAY,AAAD,MAAO,IAAI,IAAID,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBE,IAAI,CAACzB,OAAOqB,OAAOC,KAAK;QAC7InB,aAAauB,IAAAA,6CAAmB,EAACJ,MAAMpB;IAC3C;IACA,MAAMyB,sBAAsBP,IAAAA,gCAAgB,EAAC,CAACC,OAAOC,OAAO;QACxD,IAAIM;QACHA,CAAAA,yBAAyB5B,MAAM6B,eAAe,AAAD,MAAO,IAAI,IAAID,2BAA2B,KAAK,IAAI,KAAK,IAAIA,uBAAuBH,IAAI,CAACzB,OAAOqB,OAAOC,KAAK;IAC7J,+CAA+C;IAC/C;IACA,MAAMQ,mBAAmBV,IAAAA,gCAAgB,EAAC,CAACC,OAAOC,OAAO;QACrD,IAAIS;QACHA,CAAAA,+BAA+B/B,MAAMgC,qBAAqB,AAAD,MAAO,IAAI,IAAID,iCAAiC,KAAK,IAAI,KAAK,IAAIA,6BAA6BN,IAAI,CAACzB,OAAOqB,OAAOC,KAAK;QACjL,IAAIZ,UAAUM,OAAO,EAAE;YACnBT,SAASe,MAAMZ,UAAUM,OAAO;QACpC,CAAC;IACL;IACA,MAAMiB,YAAY;QACd,GAAGjC,KAAK;QACRE;QACAG;QACAmB,cAAcL;QACd,gEAAgE;QAChEa,uBAAuBF;QACvBD,iBAAiBF;IACrB;IACA,MAAMO,UAAUC,IAAAA,6BAAa,EAAClC,KAAKY;IACnC,MAAMuB,YAAYC,IAAAA,oCAAuB,EAAC,CAACC,MAAMA,IAAIC,KAAK,GAAG;IAC7D,2DAA2D;IAC3D,sEAAsE;IACtE,sDAAsD;IACtD,OAAOH,YAAYI,IAAAA,sBAAU,EAACP,WAAWC,WAAWO,IAAAA,wBAAW,EAACR,WAAWC,QAAQ;AACvF"}
@@ -1,33 +1,26 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useTreeContextValues_unstable", {
6
+ enumerable: true,
7
+ get: ()=>useTreeContextValues_unstable
5
8
  });
6
- exports.useTreeContextValues_unstable = void 0;
7
9
  function useTreeContextValues_unstable(state) {
8
- const {
9
- openItems,
10
- level,
11
- appearance,
12
- size,
13
- requestOpenChange,
14
- requestNavigation
15
- } = state;
16
- /**
10
+ const { openItems , checkedItems , selectionMode , level , appearance , size , requestTreeResponse } = state;
11
+ /**
17
12
  * This context is created with "@fluentui/react-context-selector",
18
13
  * there is no sense to memoize it
19
- */
20
- const tree = {
21
- appearance,
22
- size,
23
- level,
24
- openItems,
25
- requestOpenChange,
26
- requestNavigation
27
- };
28
- return {
29
- tree
30
- };
14
+ */ const tree = {
15
+ size,
16
+ level,
17
+ openItems,
18
+ appearance,
19
+ checkedItems,
20
+ selectionMode,
21
+ requestTreeResponse
22
+ };
23
+ return {
24
+ tree
25
+ };
31
26
  }
32
- exports.useTreeContextValues_unstable = useTreeContextValues_unstable;
33
- //# sourceMappingURL=useTreeContextValues.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useTreeContextValues_unstable","state","openItems","level","appearance","size","requestOpenChange","requestNavigation","tree","exports"],"sources":["../src/packages/react-components/react-tree/src/components/Tree/useTreeContextValues.ts"],"sourcesContent":["import { TreeContextValue } from '../../contexts';\nimport type { TreeContextValues, TreeState } from './Tree.types';\n\nexport function useTreeContextValues_unstable(state: TreeState): TreeContextValues {\n const { openItems, level, appearance, size, requestOpenChange, requestNavigation } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree: TreeContextValue = {\n appearance,\n size,\n level,\n openItems,\n requestOpenChange,\n requestNavigation,\n };\n\n return { tree };\n}\n"],"mappings":";;;;;;AAGA,SAAgBA,6BAA6BA,CAACC,KAAgB;EAC5D,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC,UAAU;IAAEC,IAAI;IAAEC,iBAAiB;IAAEC;EAAiB,CAAE,GAAGN,KAAK;EAC1F;;;;EAIA,MAAMO,IAAI,GAAqB;IAC7BJ,UAAU;IACVC,IAAI;IACJF,KAAK;IACLD,SAAS;IACTI,iBAAiB;IACjBC;GACD;EAED,OAAO;IAAEC;EAAI,CAAE;AACjB;AAhBAC,OAAA,CAAAT,6BAAA,GAAAA,6BAAA"}
1
+ {"version":3,"sources":["useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const { openItems , checkedItems , selectionMode , level , appearance , size , requestTreeResponse } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */ const tree = {\n size,\n level,\n openItems,\n appearance,\n checkedItems,\n selectionMode,\n requestTreeResponse\n };\n return {\n tree\n };\n}\n"],"names":["useTreeContextValues_unstable","state","openItems","checkedItems","selectionMode","level","appearance","size","requestTreeResponse","tree"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,8BAA8BC,KAAK,EAAE;IACjD,MAAM,EAAEC,UAAS,EAAGC,aAAY,EAAGC,cAAa,EAAGC,MAAK,EAAGC,WAAU,EAAGC,KAAI,EAAGC,oBAAmB,EAAG,GAAGP;IACxG;;;GAGD,GAAG,MAAMQ,OAAO;QACXF;QACAF;QACAH;QACAI;QACAH;QACAC;QACAI;IACJ;IACA,OAAO;QACHC;IACJ;AACJ"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useTreeNavigation", {
6
+ enumerable: true,
7
+ get: ()=>useTreeNavigation
8
+ });
9
+ const _nextTypeAheadElement = require("../../utils/nextTypeAheadElement");
10
+ const _tokens = require("../../utils/tokens");
11
+ const _treeItemFilter = require("../../utils/treeItemFilter");
12
+ const _useRovingTabIndexes = require("../../hooks/useRovingTabIndexes");
13
+ function useTreeNavigation() {
14
+ const { rove , initialize } = (0, _useRovingTabIndexes.useRovingTabIndex)(_treeItemFilter.treeItemFilter);
15
+ const getNextElement = (data, treeItemWalker)=>{
16
+ switch(data.type){
17
+ case _tokens.treeDataTypes.Click:
18
+ return data.target;
19
+ case _tokens.treeDataTypes.TypeAhead:
20
+ treeItemWalker.currentElement = data.target;
21
+ return (0, _nextTypeAheadElement.nextTypeAheadElement)(treeItemWalker, data.event.key);
22
+ case _tokens.treeDataTypes.ArrowLeft:
23
+ treeItemWalker.currentElement = data.target;
24
+ return treeItemWalker.parentElement();
25
+ case _tokens.treeDataTypes.ArrowRight:
26
+ treeItemWalker.currentElement = data.target;
27
+ return treeItemWalker.firstChild();
28
+ case _tokens.treeDataTypes.End:
29
+ treeItemWalker.currentElement = treeItemWalker.root;
30
+ return lastChildRecursive(treeItemWalker);
31
+ case _tokens.treeDataTypes.Home:
32
+ treeItemWalker.currentElement = treeItemWalker.root;
33
+ return treeItemWalker.firstChild();
34
+ case _tokens.treeDataTypes.ArrowDown:
35
+ treeItemWalker.currentElement = data.target;
36
+ return treeItemWalker.nextElement();
37
+ case _tokens.treeDataTypes.ArrowUp:
38
+ treeItemWalker.currentElement = data.target;
39
+ return treeItemWalker.previousElement();
40
+ }
41
+ };
42
+ function navigate(data, walker) {
43
+ const nextElement = getNextElement(data, walker);
44
+ if (nextElement) {
45
+ rove(nextElement);
46
+ }
47
+ }
48
+ return {
49
+ navigate,
50
+ initialize
51
+ };
52
+ }
53
+ function lastChildRecursive(walker) {
54
+ let lastElement = null;
55
+ let nextElement = null;
56
+ while(nextElement = walker.lastChild()){
57
+ lastElement = nextElement;
58
+ }
59
+ return lastElement;
60
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useTreeNavigation.js"],"sourcesContent":["import { nextTypeAheadElement } from '../../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { treeItemFilter } from '../../utils/treeItemFilter';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndexes';\nexport function useTreeNavigation() {\n const { rove , initialize } = useRovingTabIndex(treeItemFilter);\n const getNextElement = (data, treeItemWalker)=>{\n switch(data.type){\n case treeDataTypes.Click:\n return data.target;\n case treeDataTypes.TypeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.ArrowLeft:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.parentElement();\n case treeDataTypes.ArrowRight:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.firstChild();\n case treeDataTypes.End:\n treeItemWalker.currentElement = treeItemWalker.root;\n return lastChildRecursive(treeItemWalker);\n case treeDataTypes.Home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.ArrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.ArrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n };\n function navigate(data, walker) {\n const nextElement = getNextElement(data, walker);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return {\n navigate,\n initialize\n };\n}\nfunction lastChildRecursive(walker) {\n let lastElement = null;\n let nextElement = null;\n while(nextElement = walker.lastChild()){\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"names":["useTreeNavigation","rove","initialize","useRovingTabIndex","treeItemFilter","getNextElement","data","treeItemWalker","type","treeDataTypes","Click","target","TypeAhead","currentElement","nextTypeAheadElement","event","key","ArrowLeft","parentElement","ArrowRight","firstChild","End","root","lastChildRecursive","Home","ArrowDown","nextElement","ArrowUp","previousElement","navigate","walker","lastElement","lastChild"],"mappings":";;;;+BAIgBA;;aAAAA;;sCAJqB;wBACP;gCACC;qCACG;AAC3B,SAASA,oBAAoB;IAChC,MAAM,EAAEC,KAAI,EAAGC,WAAU,EAAG,GAAGC,IAAAA,sCAAiB,EAACC,8BAAc;IAC/D,MAAMC,iBAAiB,CAACC,MAAMC,iBAAiB;QAC3C,OAAOD,KAAKE,IAAI;YACZ,KAAKC,qBAAa,CAACC,KAAK;gBACpB,OAAOJ,KAAKK,MAAM;YACtB,KAAKF,qBAAa,CAACG,SAAS;gBACxBL,eAAeM,cAAc,GAAGP,KAAKK,MAAM;gBAC3C,OAAOG,IAAAA,0CAAoB,EAACP,gBAAgBD,KAAKS,KAAK,CAACC,GAAG;YAC9D,KAAKP,qBAAa,CAACQ,SAAS;gBACxBV,eAAeM,cAAc,GAAGP,KAAKK,MAAM;gBAC3C,OAAOJ,eAAeW,aAAa;YACvC,KAAKT,qBAAa,CAACU,UAAU;gBACzBZ,eAAeM,cAAc,GAAGP,KAAKK,MAAM;gBAC3C,OAAOJ,eAAea,UAAU;YACpC,KAAKX,qBAAa,CAACY,GAAG;gBAClBd,eAAeM,cAAc,GAAGN,eAAee,IAAI;gBACnD,OAAOC,mBAAmBhB;YAC9B,KAAKE,qBAAa,CAACe,IAAI;gBACnBjB,eAAeM,cAAc,GAAGN,eAAee,IAAI;gBACnD,OAAOf,eAAea,UAAU;YACpC,KAAKX,qBAAa,CAACgB,SAAS;gBACxBlB,eAAeM,cAAc,GAAGP,KAAKK,MAAM;gBAC3C,OAAOJ,eAAemB,WAAW;YACrC,KAAKjB,qBAAa,CAACkB,OAAO;gBACtBpB,eAAeM,cAAc,GAAGP,KAAKK,MAAM;gBAC3C,OAAOJ,eAAeqB,eAAe;QAC7C;IACJ;IACA,SAASC,SAASvB,IAAI,EAAEwB,MAAM,EAAE;QAC5B,MAAMJ,cAAcrB,eAAeC,MAAMwB;QACzC,IAAIJ,aAAa;YACbzB,KAAKyB;QACT,CAAC;IACL;IACA,OAAO;QACHG;QACA3B;IACJ;AACJ;AACA,SAASqB,mBAAmBO,MAAM,EAAE;IAChC,IAAIC,cAAc,IAAI;IACtB,IAAIL,cAAc,IAAI;IACtB,MAAMA,cAAcI,OAAOE,SAAS,GAAG;QACnCD,cAAcL;IAClB;IACA,OAAOK;AACX"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ treeClassNames: ()=>treeClassNames,
13
+ useTreeStyles_unstable: ()=>useTreeStyles_unstable
14
+ });
15
+ const _react = require("@griffel/react");
16
+ const treeClassNames = {
17
+ root: 'fui-Tree'
18
+ };
19
+ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
20
+ root: {
21
+ mc9l5x: "f22iagw",
22
+ Beiy3e4: "f1vx9l62",
23
+ Belr9w4: "f1j0q4x9"
24
+ },
25
+ subtree: {
26
+ z8tnut: "fclwglc"
27
+ }
28
+ }, {
29
+ d: [
30
+ ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
31
+ ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
32
+ ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}",
33
+ ".fclwglc{padding-top:var(--spacingVerticalXXS);}"
34
+ ]
35
+ });
36
+ const useTreeStyles_unstable = (state)=>{
37
+ const styles = useStyles();
38
+ const isSubTree = state.level > 1;
39
+ state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);
40
+ return state;
41
+ }; //# sourceMappingURL=useTreeStyles.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useTreeStyles.styles.js"],"sourcesContent":["import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const treeClassNames = {\n root: 'fui-Tree'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n Belr9w4: \"f1j0q4x9\"\n },\n subtree: {\n z8tnut: \"fclwglc\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}\", \".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}\", \".fclwglc{padding-top:var(--spacingVerticalXXS);}\"]\n});\nexport const useTreeStyles_unstable = state => {\n const styles = useStyles();\n const isSubTree = state.level > 1;\n state.root.className = mergeClasses(treeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);\n return state;\n};\n//# sourceMappingURL=useTreeStyles.styles.js.map"],"names":["treeClassNames","useTreeStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","Belr9w4","subtree","z8tnut","d","state","styles","isSubTree","level","className","mergeClasses"],"mappings":";;;;;;;;;;;IAEaA,cAAc,MAAdA;IAeAC,sBAAsB,MAAtBA;;uBAjB0B;AAEhC,MAAMD,iBAAiB;IAC5BE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,SAAS;QACTC,SAAS;IACX;IACAC,SAAS;QACPC,QAAQ;IACV;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAA6F;QAAiD;KAAmD;AAC/R;AACO,MAAMT,yBAAyBU,CAAAA,QAAS;IAC7C,MAAMC,SAAST;IACf,MAAMU,YAAYF,MAAMG,KAAK,GAAG;IAChCH,MAAMT,IAAI,CAACa,SAAS,GAAGC,IAAAA,mBAAY,EAAChB,eAAeE,IAAI,EAAEU,OAAOV,IAAI,EAAEW,aAAaD,OAAOJ,OAAO,EAAEG,MAAMT,IAAI,CAACa,SAAS;IACvH,OAAOJ;AACT,GACA,gDAAgD"}