@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,98 +0,0 @@
1
- import { __styles, mergeClasses, shorthands } from '@griffel/react';
2
- import { tokens, typographyStyles } from '@fluentui/react-theme';
3
- import { useTreeContext_unstable } from '../../contexts/treeContext';
4
- export const treeItemLayoutClassNames = {
5
- root: 'fui-TreeItemLayout',
6
- aside: 'fui-TreeItemLayout__aside',
7
- iconAfter: 'fui-TreeItemLayout__iconAfter',
8
- iconBefore: 'fui-TreeItemLayout__iconBefore'
9
- };
10
- /**
11
- * Styles for the root slot
12
- */
13
- const useRootStyles = /*#__PURE__*/__styles({
14
- base: {
15
- mc9l5x: "f22iagw",
16
- Bt984gj: "f122n59",
17
- sshi5w: "f1nxs5xn",
18
- Bh6795r: "fqerorx",
19
- Bnnss6s: "f1neuvcm",
20
- xawz: "f1pztt34"
21
- },
22
- medium: {
23
- i8kkvl: "f1rjii52",
24
- Bahqtrf: "fk6fouc",
25
- Be2twd7: "fkhj508",
26
- Bhrd7zp: "figsok6",
27
- Bg96gwp: "f1i3iumi"
28
- },
29
- small: {
30
- i8kkvl: "f1ufnopg",
31
- sshi5w: "f1pha7fy",
32
- Bahqtrf: "fk6fouc",
33
- Be2twd7: "fy9rknc",
34
- Bhrd7zp: "figsok6",
35
- Bg96gwp: "fwrc4pm"
36
- }
37
- }, {
38
- d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".f1nxs5xn{min-height:32px;}", ".fqerorx{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}", ".f1neuvcm{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}", ".f1pztt34{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;}", ".f1rjii52{-webkit-column-gap:var(--spacingHorizontalSNudge);column-gap:var(--spacingHorizontalSNudge);}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".f1ufnopg{-webkit-column-gap:var(--spacingHorizontalXS);column-gap:var(--spacingHorizontalXS);}", ".f1pha7fy{min-height:24px;}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}"]
39
- });
40
- /**
41
- * Styles for the before/after icon slot
42
- */
43
- const useIconStyles = /*#__PURE__*/__styles({
44
- base: {
45
- mc9l5x: "f22iagw",
46
- Bt984gj: "f122n59",
47
- sj55zd: "fkfq4zb",
48
- Bg96gwp: "f106mvju",
49
- Be2twd7: "f1pp30po"
50
- }
51
- }, {
52
- d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".fkfq4zb{color:var(--colorNeutralForeground2);}", ".f106mvju{line-height:var(--lineHeightBase500);}", ".f1pp30po{font-size:var(--fontSizeBase500);}"]
53
- });
54
- /**
55
- * Styles for the action icon slot
56
- */
57
- const useAsideStyles = /*#__PURE__*/__styles({
58
- base: {
59
- mc9l5x: "f22iagw",
60
- Bt984gj: "f122n59",
61
- Frg6f3: ["fcgxt0o", "f1ujusj6"],
62
- z8tnut: "f1g0x7ka",
63
- z189sj: ["fw5db7e", "f1uw59to"],
64
- Byoj8tv: "f1qch9an",
65
- uwmqm3: ["f1uw59to", "fw5db7e"],
66
- i8kkvl: "f1ufnopg",
67
- Belr9w4: "f14sijuj"
68
- }
69
- }, {
70
- d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".fcgxt0o{margin-left:auto;}", ".f1ujusj6{margin-right:auto;}", ".f1g0x7ka{padding-top:0;}", ".fw5db7e{padding-right:var(--spacingHorizontalM);}", ".f1uw59to{padding-left:var(--spacingHorizontalM);}", ".f1qch9an{padding-bottom:0;}", ".f1ufnopg{-webkit-column-gap:var(--spacingHorizontalXS);column-gap:var(--spacingHorizontalXS);}", ".f14sijuj{row-gap:var(--spacingHorizontalXS);}"]
71
- });
72
- /**
73
- * Apply styling to the TreeItemLayout slots based on the state
74
- */
75
- export const useTreeItemLayoutStyles_unstable = state => {
76
- const {
77
- iconAfter,
78
- iconBefore,
79
- aside,
80
- root
81
- } = state;
82
- const rootStyles = useRootStyles();
83
- const iconStyles = useIconStyles();
84
- const asideStyles = useAsideStyles();
85
- const size = useTreeContext_unstable(ctx => ctx.size);
86
- root.className = mergeClasses(treeItemLayoutClassNames.root, rootStyles.base, rootStyles[size], root.className);
87
- if (iconBefore) {
88
- iconBefore.className = mergeClasses(treeItemLayoutClassNames.iconBefore, iconStyles.base, iconBefore.className);
89
- }
90
- if (iconAfter) {
91
- iconAfter.className = mergeClasses(treeItemLayoutClassNames.iconAfter, iconStyles.base, iconAfter.className);
92
- }
93
- if (aside) {
94
- aside.className = mergeClasses(treeItemLayoutClassNames.aside, asideStyles.base, aside.className);
95
- }
96
- return state;
97
- };
98
- //# sourceMappingURL=useTreeItemLayoutStyles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","useTreeContext_unstable","treeItemLayoutClassNames","root","aside","iconAfter","iconBefore","useRootStyles","base","mc9l5x","Bt984gj","sshi5w","Bh6795r","Bnnss6s","xawz","medium","i8kkvl","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","small","d","useIconStyles","sj55zd","useAsideStyles","Frg6f3","z8tnut","z189sj","Byoj8tv","uwmqm3","Belr9w4","useTreeItemLayoutStyles_unstable","state","rootStyles","iconStyles","asideStyles","size","ctx","className"],"sources":["../src/packages/react-components/react-tree/src/components/TreeItemLayout/useTreeItemLayoutStyles.ts"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport type { TreeItemLayoutSlots, TreeItemLayoutState } from './TreeItemLayout.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\n\nexport const treeItemLayoutClassNames: SlotClassNames<TreeItemLayoutSlots> = {\n root: 'fui-TreeItemLayout',\n aside: 'fui-TreeItemLayout__aside',\n iconAfter: 'fui-TreeItemLayout__iconAfter',\n iconBefore: 'fui-TreeItemLayout__iconBefore',\n};\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n base: {\n display: 'flex',\n alignItems: 'center',\n minHeight: '32px',\n ...shorthands.flex(1),\n },\n medium: {\n columnGap: tokens.spacingHorizontalSNudge,\n ...typographyStyles.body1,\n },\n small: {\n columnGap: tokens.spacingHorizontalXS,\n minHeight: '24px',\n ...typographyStyles.caption1,\n },\n});\n\n/**\n * Styles for the before/after icon slot\n */\nconst useIconStyles = makeStyles({\n base: {\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n lineHeight: tokens.lineHeightBase500,\n fontSize: tokens.fontSizeBase500,\n },\n});\n\n/**\n * Styles for the action icon slot\n */\nconst useAsideStyles = makeStyles({\n base: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n ...shorthands.padding(0, tokens.spacingHorizontalM),\n ...shorthands.gap(tokens.spacingHorizontalXS),\n },\n});\n\n/**\n * Apply styling to the TreeItemLayout slots based on the state\n */\nexport const useTreeItemLayoutStyles_unstable = (state: TreeItemLayoutState): TreeItemLayoutState => {\n const { iconAfter, iconBefore, aside, root } = state;\n const rootStyles = useRootStyles();\n const iconStyles = useIconStyles();\n const asideStyles = useAsideStyles();\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n\n root.className = mergeClasses(treeItemLayoutClassNames.root, rootStyles.base, rootStyles[size], root.className);\n\n if (iconBefore) {\n iconBefore.className = mergeClasses(treeItemLayoutClassNames.iconBefore, iconStyles.base, iconBefore.className);\n }\n\n if (iconAfter) {\n iconAfter.className = mergeClasses(treeItemLayoutClassNames.iconAfter, iconStyles.base, iconAfter.className);\n }\n\n if (aside) {\n aside.className = mergeClasses(treeItemLayoutClassNames.aside, asideStyles.base, aside.className);\n }\n\n return state;\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AAGrE,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,uBAAuB;AAChE,SAASC,uBAAuB,QAAQ,4BAA4B;AAEpE,OAAO,MAAMC,wBAAwB,GAAwC;EAC3EC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAE,2BAA2B;EAClCC,SAAS,EAAE,+BAA+B;EAC1CC,UAAU,EAAE;CACb;AAED;;;AAGA,MAAMC,aAAa,gBAAGX,QAAA;EAAAY,IAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,IAAA;EAAA;EAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;EAAAC,KAAA;IAAAL,MAAA;IAAAL,MAAA;IAAAM,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;AAAA;EAAAE,CAAA;AAAA,EAgBpB;AAEF;;;AAGA,MAAMC,aAAa,gBAAG3B,QAAA;EAAAY,IAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAc,MAAA;IAAAJ,OAAA;IAAAF,OAAA;EAAA;AAAA;EAAAI,CAAA;AAAA,EAQpB;AAEF;;;AAGA,MAAMG,cAAc,gBAAG7B,QAAA;EAAAY,IAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAgB,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAd,MAAA;IAAAe,OAAA;EAAA;AAAA;EAAAT,CAAA;AAAA,EAQrB;AAEF;;;AAGA,OAAO,MAAMU,gCAAgC,GAAIC,KAA0B,IAAyB;EAClG,MAAM;IAAE5B,SAAS;IAAEC,UAAU;IAAEF,KAAK;IAAED;EAAI,CAAE,GAAG8B,KAAK;EACpD,MAAMC,UAAU,GAAG3B,aAAa,EAAE;EAClC,MAAM4B,UAAU,GAAGZ,aAAa,EAAE;EAClC,MAAMa,WAAW,GAAGX,cAAc,EAAE;EAEpC,MAAMY,IAAI,GAAGpC,uBAAuB,CAACqC,GAAG,IAAIA,GAAG,CAACD,IAAI,CAAC;EAErDlC,IAAI,CAACoC,SAAS,GAAG1C,YAAY,CAACK,wBAAwB,CAACC,IAAI,EAAE+B,UAAU,CAAC1B,IAAI,EAAE0B,UAAU,CAACG,IAAI,CAAC,EAAElC,IAAI,CAACoC,SAAS,CAAC;EAE/G,IAAIjC,UAAU,EAAE;IACdA,UAAU,CAACiC,SAAS,GAAG1C,YAAY,CAACK,wBAAwB,CAACI,UAAU,EAAE6B,UAAU,CAAC3B,IAAI,EAAEF,UAAU,CAACiC,SAAS,CAAC;;EAGjH,IAAIlC,SAAS,EAAE;IACbA,SAAS,CAACkC,SAAS,GAAG1C,YAAY,CAACK,wBAAwB,CAACG,SAAS,EAAE8B,UAAU,CAAC3B,IAAI,EAAEH,SAAS,CAACkC,SAAS,CAAC;;EAG9G,IAAInC,KAAK,EAAE;IACTA,KAAK,CAACmC,SAAS,GAAG1C,YAAY,CAACK,wBAAwB,CAACE,KAAK,EAAEgC,WAAW,CAAC5B,IAAI,EAAEJ,KAAK,CAACmC,SAAS,CAAC;;EAGnG,OAAON,KAAK;AACd,CAAC"}
@@ -1,115 +0,0 @@
1
- import { __styles, mergeClasses, shorthands } from '@griffel/react';
2
- import { tokens, typographyStyles } from '@fluentui/react-theme';
3
- export const treeItemPersonaLayoutClassNames = {
4
- root: 'fui-TreeItemPersonaLayout',
5
- media: 'fui-TreeItemPersonaLayout__media',
6
- content: 'fui-TreeItemPersonaLayout__content',
7
- description: 'fui-TreeItemPersonaLayout__description',
8
- aside: 'fui-TreeItemPersonaLayout__aside',
9
- main: 'fui-TreeItemPersonaLayout__main'
10
- };
11
- /**
12
- * Styles for the root slot
13
- */
14
- const useRootStyles = /*#__PURE__*/__styles({
15
- base: {
16
- a9b677: "fly5x3f",
17
- mc9l5x: "f22iagw",
18
- Bt984gj: "f122n59"
19
- }
20
- }, {
21
- d: [".fly5x3f{width:100%;}", ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}"]
22
- });
23
- /**
24
- * Styles for the expand icon slot
25
- */
26
- const useMediaStyles = /*#__PURE__*/__styles({
27
- base: {
28
- mc9l5x: "f22iagw",
29
- Bt984gj: "f122n59",
30
- a9b677: "f1szoe96",
31
- Bqenvij: "f1d2rq10",
32
- z8tnut: "f1g0x7ka",
33
- z189sj: ["f7x41pl", "fruq291"],
34
- Byoj8tv: "f1qch9an",
35
- uwmqm3: ["fgiv446", "ffczdla"]
36
- }
37
- }, {
38
- d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".f1szoe96{width:32px;}", ".f1d2rq10{height:32px;}", ".f1g0x7ka{padding-top:0;}", ".f7x41pl{padding-right:var(--spacingHorizontalXS);}", ".fruq291{padding-left:var(--spacingHorizontalXS);}", ".f1qch9an{padding-bottom:0;}", ".fgiv446{padding-left:var(--spacingHorizontalXXS);}", ".ffczdla{padding-right:var(--spacingHorizontalXXS);}"]
39
- });
40
- const useContentStyles = /*#__PURE__*/__styles({
41
- base: {
42
- a9b677: "fly5x3f",
43
- mc9l5x: "f22iagw",
44
- Beiy3e4: "f1vx9l62",
45
- z8tnut: "f1ngh7ph",
46
- z189sj: ["f7x41pl", "fruq291"],
47
- Byoj8tv: "f5o476b",
48
- uwmqm3: ["f1f5gg8d", "f1vdfbxk"],
49
- i8kkvl: "f1fps8zv",
50
- Belr9w4: "fws515f"
51
- }
52
- }, {
53
- d: [".fly5x3f{width:100%;}", ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".f1ngh7ph{padding-top:var(--spacingVerticalMNudge);}", ".f7x41pl{padding-right:var(--spacingHorizontalXS);}", ".fruq291{padding-left:var(--spacingHorizontalXS);}", ".f5o476b{padding-bottom:var(--spacingVerticalMNudge);}", ".f1f5gg8d{padding-left:var(--spacingHorizontalS);}", ".f1vdfbxk{padding-right:var(--spacingHorizontalS);}", ".f1fps8zv{-webkit-column-gap:var(--spacingVerticalNone);column-gap:var(--spacingVerticalNone);}", ".fws515f{row-gap:var(--spacingHorizontalNone);}"]
54
- });
55
- const useMainStyles = /*#__PURE__*/__styles({
56
- base: {
57
- Bahqtrf: "fk6fouc",
58
- Be2twd7: "fkhj508",
59
- Bhrd7zp: "figsok6",
60
- Bg96gwp: "f1i3iumi"
61
- }
62
- }, {
63
- d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}"]
64
- });
65
- const useDescriptionStyles = /*#__PURE__*/__styles({
66
- base: {
67
- Bahqtrf: "fk6fouc",
68
- Be2twd7: "fy9rknc",
69
- Bhrd7zp: "figsok6",
70
- Bg96gwp: "fwrc4pm"
71
- }
72
- }, {
73
- d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}"]
74
- });
75
- const useAsideStyles = /*#__PURE__*/__styles({
76
- base: {
77
- mc9l5x: "f22iagw",
78
- Beiy3e4: "f1vx9l62",
79
- Huce71: "fz5stix",
80
- z189sj: ["fw5db7e", "f1uw59to"],
81
- Bahqtrf: "fk6fouc",
82
- Be2twd7: "fy9rknc",
83
- Bhrd7zp: "figsok6",
84
- Bg96gwp: "fwrc4pm"
85
- }
86
- }, {
87
- 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;}", ".fz5stix{white-space:nowrap;}", ".fw5db7e{padding-right:var(--spacingHorizontalM);}", ".f1uw59to{padding-left:var(--spacingHorizontalM);}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}"]
88
- });
89
- /**
90
- * Apply styling to the TreeItemPersonaLayout slots based on the state
91
- */
92
- export const useTreeItemPersonaLayoutStyles_unstable = state => {
93
- const rootStyles = useRootStyles();
94
- const mediaStyles = useMediaStyles();
95
- const contentStyles = useContentStyles();
96
- const mainStyles = useMainStyles();
97
- const descriptionStyles = useDescriptionStyles();
98
- const asideStyles = useAsideStyles();
99
- state.root.className = mergeClasses(treeItemPersonaLayoutClassNames.root, rootStyles.base, state.root.className);
100
- state.media.className = mergeClasses(treeItemPersonaLayoutClassNames.media, mediaStyles.base, state.media.className);
101
- if (state.content) {
102
- state.content.className = mergeClasses(treeItemPersonaLayoutClassNames.content, contentStyles.base, state.content.className);
103
- }
104
- if (state.main) {
105
- state.main.className = mergeClasses(treeItemPersonaLayoutClassNames.main, mainStyles.base, state.main.className);
106
- }
107
- if (state.description) {
108
- state.description.className = mergeClasses(treeItemPersonaLayoutClassNames.description, descriptionStyles.base, state.description.className);
109
- }
110
- if (state.aside) {
111
- state.aside.className = mergeClasses(treeItemPersonaLayoutClassNames.aside, asideStyles.base, state.aside.className);
112
- }
113
- return state;
114
- };
115
- //# sourceMappingURL=useTreeItemPersonaLayoutStyles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","treeItemPersonaLayoutClassNames","root","media","content","description","aside","main","useRootStyles","base","a9b677","mc9l5x","Bt984gj","d","useMediaStyles","Bqenvij","z8tnut","z189sj","Byoj8tv","uwmqm3","useContentStyles","Beiy3e4","i8kkvl","Belr9w4","useMainStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","useDescriptionStyles","useAsideStyles","Huce71","useTreeItemPersonaLayoutStyles_unstable","state","rootStyles","mediaStyles","contentStyles","mainStyles","descriptionStyles","asideStyles","className"],"sources":["../src/packages/react-components/react-tree/src/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.ts"],"sourcesContent":["import type { TreeItemPersonaLayoutSlots, TreeItemPersonaLayoutState } from './TreeItemPersonaLayout.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n\nexport const treeItemPersonaLayoutClassNames: SlotClassNames<TreeItemPersonaLayoutSlots> = {\n root: 'fui-TreeItemPersonaLayout',\n media: 'fui-TreeItemPersonaLayout__media',\n content: 'fui-TreeItemPersonaLayout__content',\n description: 'fui-TreeItemPersonaLayout__description',\n aside: 'fui-TreeItemPersonaLayout__aside',\n main: 'fui-TreeItemPersonaLayout__main',\n};\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n base: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useMediaStyles = makeStyles({\n base: {\n display: 'flex',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n ...shorthands.padding(0, tokens.spacingHorizontalXS, 0, tokens.spacingHorizontalXXS),\n },\n});\n\nconst useContentStyles = makeStyles({\n base: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(\n tokens.spacingVerticalMNudge,\n tokens.spacingHorizontalXS,\n tokens.spacingVerticalMNudge,\n tokens.spacingHorizontalS,\n ),\n ...shorthands.gap(tokens.spacingVerticalNone, tokens.spacingHorizontalNone),\n },\n});\nconst useMainStyles = makeStyles({\n base: {\n ...typographyStyles.body1,\n },\n});\nconst useDescriptionStyles = makeStyles({\n base: {\n ...typographyStyles.caption1,\n },\n});\nconst useAsideStyles = makeStyles({\n base: {\n display: 'flex',\n flexDirection: 'column',\n whiteSpace: 'nowrap',\n paddingRight: tokens.spacingHorizontalM,\n ...typographyStyles.caption1,\n },\n});\n\n/**\n * Apply styling to the TreeItemPersonaLayout slots based on the state\n */\nexport const useTreeItemPersonaLayoutStyles_unstable = (\n state: TreeItemPersonaLayoutState,\n): TreeItemPersonaLayoutState => {\n const rootStyles = useRootStyles();\n const mediaStyles = useMediaStyles();\n const contentStyles = useContentStyles();\n const mainStyles = useMainStyles();\n const descriptionStyles = useDescriptionStyles();\n const asideStyles = useAsideStyles();\n\n state.root.className = mergeClasses(treeItemPersonaLayoutClassNames.root, rootStyles.base, state.root.className);\n\n state.media.className = mergeClasses(treeItemPersonaLayoutClassNames.media, mediaStyles.base, state.media.className);\n\n if (state.content) {\n state.content.className = mergeClasses(\n treeItemPersonaLayoutClassNames.content,\n contentStyles.base,\n state.content.className,\n );\n }\n if (state.main) {\n state.main.className = mergeClasses(treeItemPersonaLayoutClassNames.main, mainStyles.base, state.main.className);\n }\n if (state.description) {\n state.description.className = mergeClasses(\n treeItemPersonaLayoutClassNames.description,\n descriptionStyles.base,\n state.description.className,\n );\n }\n if (state.aside) {\n state.aside.className = mergeClasses(\n treeItemPersonaLayoutClassNames.aside,\n asideStyles.base,\n state.aside.className,\n );\n }\n\n return state;\n};\n"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './useFlatTree';
2
- export * from './useNestedTreeNavigation';
3
- export * from './useOpenItemsState';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["packages/react-components/react-tree/src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './useFlatTree';\nexport * from './useNestedTreeNavigation';\nexport * from './useOpenItemsState';\n"]}
@@ -1,49 +0,0 @@
1
- import { useEventCallback } from '@fluentui/react-utilities';
2
- import * as React from 'react';
3
- import { createUnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';
4
- import { createVisibleFlatTree } from '../utils/createVisibleFlatTree';
5
- import { useFlatTreeNavigation } from './useFlatTreeNavigation';
6
- import { useOpenItemsState } from './useOpenItemsState';
7
- /**
8
- * this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems
9
- * in multiple scenarios including virtualization.
10
- *
11
- * !!A flat tree is an unofficial spec for tree!!
12
- *
13
- * It should be used on cases where more complex interactions with a Tree is required.
14
- * On simple scenarios it is advised to simply use a nested structure instead.
15
- *
16
- * @param items - a list of tree items
17
- * @param options - in case control over the internal openItems is required
18
- */
19
- export function useFlatTree_unstable(items, options = {}) {
20
- const [openItems, updateOpenItems] = useOpenItemsState(options);
21
- const unfilteredFlatTree = React.useMemo(() => createUnfilteredFlatTree(items), [items]);
22
- const [navigate, navigationRef] = useFlatTreeNavigation(unfilteredFlatTree);
23
- const visibleFlatTree = React.useMemo(() => createVisibleFlatTree(unfilteredFlatTree, openItems), [unfilteredFlatTree, openItems]);
24
- const handleOpenChange = useEventCallback((event, data) => {
25
- event.preventDefault();
26
- updateOpenItems(data);
27
- });
28
- const handleNavigation = useEventCallback((event, data) => {
29
- event.preventDefault();
30
- navigate(data);
31
- });
32
- const flatTree = {
33
- ...visibleFlatTree,
34
- getTreeProps: () => ({
35
- ref: navigationRef,
36
- openItems,
37
- onOpenChange: handleOpenChange,
38
- // eslint-disable-next-line @typescript-eslint/naming-convention
39
- onNavigation_unstable: handleNavigation
40
- }),
41
- navigate,
42
- getItem: id => {
43
- var _a;
44
- return (_a = unfilteredFlatTree.itemsPerId.get(id)) !== null && _a !== void 0 ? _a : null;
45
- }
46
- };
47
- return flatTree;
48
- }
49
- //# sourceMappingURL=useFlatTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEventCallback","React","createUnfilteredFlatTree","createVisibleFlatTree","useFlatTreeNavigation","useOpenItemsState","useFlatTree_unstable","items","options","openItems","updateOpenItems","unfilteredFlatTree","useMemo","navigate","navigationRef","visibleFlatTree","handleOpenChange","event","data","preventDefault","handleNavigation","flatTree","getTreeProps","ref","onOpenChange","onNavigation_unstable","getItem","id","_a","itemsPerId","get"],"sources":["../src/packages/react-components/react-tree/src/hooks/useFlatTree.ts"],"sourcesContent":["import { useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport {\n TreeNavigationData_unstable,\n TreeNavigationEvent_unstable,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeProps,\n} from '../Tree';\nimport { TreeItemProps } from '../TreeItem';\nimport { createUnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';\nimport { createVisibleFlatTree } from '../utils/createVisibleFlatTree';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport { useOpenItemsState } from './useOpenItemsState';\n\nexport type FlatTreeItemProps = Required<Pick<TreeItemProps, 'id'>> &\n TreeItemProps & {\n parentId?: string;\n };\n\nexport type FlatTreeItem = {\n getTreeItemProps(): Required<Pick<TreeItemProps, 'id' | 'aria-setsize' | 'aria-level' | 'aria-posinset' | 'leaf'>> &\n TreeItemProps;\n parentId?: string;\n childrenSize: number;\n index: number;\n id: string;\n level: number;\n};\n\nexport type FlatTreeProps = Required<\n Pick<TreeProps, 'openItems' | 'onOpenChange' | 'onNavigation_unstable'> & { ref: React.Ref<HTMLDivElement> }\n>;\n\n/**\n * FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n *\n * On simple scenarios it is advised to simply use a nested structure instead.\n */\nexport type FlatTree = {\n /**\n * returns the properties required for the Tree component to work properly.\n * That includes:\n * `openItems`, `onOpenChange`, `onNavigation_unstable` and `ref`\n */\n getTreeProps(): FlatTreeProps;\n /**\n * internal method used to react to an `onNavigation` event.\n * This method ensures proper navigation on keyboard and mouse interaction.\n * In case of virtualization it might be required to cancel default provided `onNavigation`\n * event and then call this method manually.\n *\n * @example\n * ```ts\n * // react-window\n * const handleNavigation = (event, data) => {\n * event.preventDefault();\n * const nextItem = tree.getNextNavigableItem(data);\n * // scroll to item using virtualization scroll mechanism\n * if (nextItem && !targetDocument.getElementById(nextItem.id)) {\n * listRef.current.scrollToItem(nextItem.index);\n * }\n * // wait for scrolling to happen and then invoke navigate method\n * requestAnimationFrame(() => {\n * tree.navigate(data);\n * });\n * };\n *```\n */\n navigate(data: TreeNavigationData_unstable): void;\n /**\n * returns next item to be focused on a navigation.\n * This method is provided to decouple the element that needs to be focused from\n * the action of focusing it itself.\n */\n getNextNavigableItem(data: TreeNavigationData_unstable): FlatTreeItem | null;\n /**\n * returns a single flat tree item by id without iterating over the whole collection\n */\n getItem(id: string): FlatTreeItem | null;\n /**\n * returns an iterable containing all visually available flat tree items\n */\n items(): Iterable<FlatTreeItem>;\n};\n\n/**\n * this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n * On simple scenarios it is advised to simply use a nested structure instead.\n *\n * @param items - a list of tree items\n * @param options - in case control over the internal openItems is required\n */\nexport function useFlatTree_unstable(\n items: FlatTreeItemProps[],\n options: Pick<TreeProps, 'openItems' | 'defaultOpenItems'> = {},\n): FlatTree {\n const [openItems, updateOpenItems] = useOpenItemsState(options);\n const unfilteredFlatTree = React.useMemo(() => createUnfilteredFlatTree(items), [items]);\n const [navigate, navigationRef] = useFlatTreeNavigation(unfilteredFlatTree);\n const visibleFlatTree = React.useMemo(\n () => createVisibleFlatTree(unfilteredFlatTree, openItems),\n [unfilteredFlatTree, openItems],\n );\n\n const handleOpenChange = useEventCallback((event: TreeOpenChangeEvent, data: TreeOpenChangeData) => {\n event.preventDefault();\n updateOpenItems(data);\n });\n\n const handleNavigation = useEventCallback(\n (event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable) => {\n event.preventDefault();\n navigate(data);\n },\n );\n\n const flatTree: FlatTree = {\n ...visibleFlatTree,\n getTreeProps: () => ({\n ref: navigationRef as React.Ref<HTMLDivElement>,\n openItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n }),\n navigate,\n getItem: id => unfilteredFlatTree.itemsPerId.get(id) ?? null,\n };\n return flatTree;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,2BAA2B;AAC5D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAS9B,SAASC,wBAAwB,QAAQ,mCAAmC;AAC5E,SAASC,qBAAqB,QAAQ,gCAAgC;AACtE,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,iBAAiB,QAAQ,qBAAqB;AA8EvD;;;;;;;;;;;;AAYA,OAAM,SAAUC,oBAAoBA,CAClCC,KAA0B,EAC1BC,OAAA,GAA6D,EAAE;EAE/D,MAAM,CAACC,SAAS,EAAEC,eAAe,CAAC,GAAGL,iBAAiB,CAACG,OAAO,CAAC;EAC/D,MAAMG,kBAAkB,GAAGV,KAAK,CAACW,OAAO,CAAC,MAAMV,wBAAwB,CAACK,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACxF,MAAM,CAACM,QAAQ,EAAEC,aAAa,CAAC,GAAGV,qBAAqB,CAACO,kBAAkB,CAAC;EAC3E,MAAMI,eAAe,GAAGd,KAAK,CAACW,OAAO,CACnC,MAAMT,qBAAqB,CAACQ,kBAAkB,EAAEF,SAAS,CAAC,EAC1D,CAACE,kBAAkB,EAAEF,SAAS,CAAC,CAChC;EAED,MAAMO,gBAAgB,GAAGhB,gBAAgB,CAAC,CAACiB,KAA0B,EAAEC,IAAwB,KAAI;IACjGD,KAAK,CAACE,cAAc,EAAE;IACtBT,eAAe,CAACQ,IAAI,CAAC;EACvB,CAAC,CAAC;EAEF,MAAME,gBAAgB,GAAGpB,gBAAgB,CACvC,CAACiB,KAAmC,EAAEC,IAAiC,KAAI;IACzED,KAAK,CAACE,cAAc,EAAE;IACtBN,QAAQ,CAACK,IAAI,CAAC;EAChB,CAAC,CACF;EAED,MAAMG,QAAQ,GAAa;IACzB,GAAGN,eAAe;IAClBO,YAAY,EAAEA,CAAA,MAAO;MACnBC,GAAG,EAAET,aAA0C;MAC/CL,SAAS;MACTe,YAAY,EAAER,gBAAgB;MAC9B;MACAS,qBAAqB,EAAEL;KACxB,CAAC;IACFP,QAAQ;IACRa,OAAO,EAAEC,EAAE,IAAG;MAAA,IAAAC,EAAA;MAAC,QAAAA,EAAA,GAAAjB,kBAAkB,CAACkB,UAAU,CAACC,GAAG,CAACH,EAAE,CAAC,cAAAC,EAAA,cAAAA,EAAA,GAAI,IAAI;IAAA;GAC7D;EACD,OAAOP,QAAQ;AACjB"}
@@ -1,74 +0,0 @@
1
- import { useFluent_unstable } from '@fluentui/react-shared-contexts';
2
- import { useMergedRefs } from '@fluentui/react-utilities';
3
- import { nextTypeAheadElement } from '../utils/nextTypeAheadElement';
4
- import { treeDataTypes } from '../utils/tokens';
5
- import { treeItemFilter } from '../utils/treeItemFilter';
6
- import { useHTMLElementWalkerRef } from './useHTMLElementWalker';
7
- import { useRovingTabIndex } from './useRovingTabIndexes';
8
- export function useFlatTreeNavigation(flatTree) {
9
- const {
10
- targetDocument
11
- } = useFluent_unstable();
12
- const [treeItemWalkerRef, treeItemWalkerRootRef] = useHTMLElementWalkerRef(treeItemFilter);
13
- const [{
14
- rove
15
- }, rovingRootRef] = useRovingTabIndex(treeItemFilter);
16
- function getNextElement(data) {
17
- if (!targetDocument || !treeItemWalkerRef.current) {
18
- return null;
19
- }
20
- const treeItemWalker = treeItemWalkerRef.current;
21
- switch (data.type) {
22
- case treeDataTypes.click:
23
- return data.target;
24
- case treeDataTypes.typeAhead:
25
- treeItemWalker.currentElement = data.target;
26
- return nextTypeAheadElement(treeItemWalker, data.event.key);
27
- case treeDataTypes.arrowLeft:
28
- return parentElement(flatTree, data.target, targetDocument);
29
- case treeDataTypes.arrowRight:
30
- treeItemWalker.currentElement = data.target;
31
- return firstChild(data.target, treeItemWalker);
32
- case treeDataTypes.end:
33
- treeItemWalker.currentElement = treeItemWalker.root;
34
- return treeItemWalker.lastChild();
35
- case treeDataTypes.home:
36
- treeItemWalker.currentElement = treeItemWalker.root;
37
- return treeItemWalker.firstChild();
38
- case treeDataTypes.arrowDown:
39
- treeItemWalker.currentElement = data.target;
40
- return treeItemWalker.nextElement();
41
- case treeDataTypes.arrowUp:
42
- treeItemWalker.currentElement = data.target;
43
- return treeItemWalker.previousElement();
44
- }
45
- }
46
- function navigate(data) {
47
- const nextElement = getNextElement(data);
48
- if (nextElement) {
49
- rove(nextElement);
50
- }
51
- }
52
- return [navigate, useMergedRefs(treeItemWalkerRootRef, rovingRootRef)];
53
- }
54
- function firstChild(target, treeWalker) {
55
- const nextElement = treeWalker.nextElement();
56
- if (!nextElement) {
57
- return null;
58
- }
59
- const nextElementAriaPosInSet = nextElement.getAttribute('aria-posinset');
60
- const nextElementAriaLevel = nextElement.getAttribute('aria-level');
61
- const targetAriaLevel = target.getAttribute('aria-level');
62
- if (nextElementAriaPosInSet === '1' && Number(nextElementAriaLevel) === Number(targetAriaLevel) + 1) {
63
- return nextElement;
64
- }
65
- return null;
66
- }
67
- function parentElement(flatTree, target, document) {
68
- const flatTreeItem = flatTree.itemsPerId.get(target.id);
69
- if (flatTreeItem && flatTreeItem.parentId) {
70
- return document.getElementById(flatTreeItem.parentId);
71
- }
72
- return null;
73
- }
74
- //# sourceMappingURL=useFlatTreeNavigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useFluent_unstable","useMergedRefs","nextTypeAheadElement","treeDataTypes","treeItemFilter","useHTMLElementWalkerRef","useRovingTabIndex","useFlatTreeNavigation","flatTree","targetDocument","treeItemWalkerRef","treeItemWalkerRootRef","rove","rovingRootRef","getNextElement","data","current","treeItemWalker","type","click","target","typeAhead","currentElement","event","key","arrowLeft","parentElement","arrowRight","firstChild","end","root","lastChild","home","arrowDown","nextElement","arrowUp","previousElement","navigate","treeWalker","nextElementAriaPosInSet","getAttribute","nextElementAriaLevel","targetAriaLevel","Number","document","flatTreeItem","itemsPerId","get","id","parentId","getElementById"],"sources":["../src/packages/react-components/react-tree/src/hooks/useFlatTreeNavigation.ts"],"sourcesContent":["import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useMergedRefs } from '@fluentui/react-utilities';\nimport { TreeNavigationData_unstable } from '../Tree';\nimport { UnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { HTMLElementWalker, useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\n\nexport function useFlatTreeNavigation(flatTree: UnfilteredFlatTree) {\n const { targetDocument } = useFluent_unstable();\n const [treeItemWalkerRef, treeItemWalkerRootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n\n function getNextElement(data: TreeNavigationData_unstable) {\n if (!targetDocument || !treeItemWalkerRef.current) {\n return null;\n }\n const treeItemWalker = treeItemWalkerRef.current;\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 return parentElement(flatTree, data.target, targetDocument);\n case treeDataTypes.arrowRight:\n treeItemWalker.currentElement = data.target;\n return firstChild(data.target, treeItemWalker);\n case treeDataTypes.end:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.lastChild();\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: TreeNavigationData_unstable) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [navigate, useMergedRefs(treeItemWalkerRootRef, rovingRootRef)] as const;\n}\n\nfunction firstChild(target: HTMLElement, treeWalker: HTMLElementWalker): HTMLElement | null {\n const nextElement = treeWalker.nextElement();\n if (!nextElement) {\n return null;\n }\n const nextElementAriaPosInSet = nextElement.getAttribute('aria-posinset');\n const nextElementAriaLevel = nextElement.getAttribute('aria-level');\n const targetAriaLevel = target.getAttribute('aria-level');\n if (nextElementAriaPosInSet === '1' && Number(nextElementAriaLevel) === Number(targetAriaLevel) + 1) {\n return nextElement;\n }\n return null;\n}\n\nfunction parentElement(flatTree: UnfilteredFlatTree, target: HTMLElement, document: Document) {\n const flatTreeItem = flatTree.itemsPerId.get(target.id);\n if (flatTreeItem && flatTreeItem.parentId) {\n return document.getElementById(flatTreeItem.parentId);\n }\n return null;\n}\n"],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import { isHTMLElement } from '@fluentui/react-utilities';
2
- import * as React from 'react';
3
- export function createHTMLElementWalker(root, filter = () => NodeFilter.FILTER_ACCEPT) {
4
- let temporaryFilter;
5
- const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
6
- acceptNode(node) {
7
- var _a;
8
- if (!isHTMLElement(node)) {
9
- return NodeFilter.FILTER_REJECT;
10
- }
11
- const filterResult = filter(node);
12
- return filterResult === NodeFilter.FILTER_ACCEPT ? (_a = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _a !== void 0 ? _a : filterResult : filterResult;
13
- }
14
- });
15
- return {
16
- get root() {
17
- return treeWalker.root;
18
- },
19
- get currentElement() {
20
- return treeWalker.currentNode;
21
- },
22
- set currentElement(element) {
23
- treeWalker.currentNode = element;
24
- },
25
- firstChild: localFilter => {
26
- temporaryFilter = localFilter;
27
- const result = treeWalker.firstChild();
28
- temporaryFilter = undefined;
29
- return result;
30
- },
31
- lastChild: localFilter => {
32
- temporaryFilter = localFilter;
33
- const result = treeWalker.lastChild();
34
- temporaryFilter = undefined;
35
- return result;
36
- },
37
- nextElement: localFilter => {
38
- temporaryFilter = localFilter;
39
- const result = treeWalker.nextNode();
40
- temporaryFilter = undefined;
41
- return result;
42
- },
43
- nextSibling: localFilter => {
44
- temporaryFilter = localFilter;
45
- const result = treeWalker.nextSibling();
46
- temporaryFilter = undefined;
47
- return result;
48
- },
49
- parentElement: localFilter => {
50
- temporaryFilter = localFilter;
51
- const result = treeWalker.parentNode();
52
- temporaryFilter = undefined;
53
- return result;
54
- },
55
- previousElement: localFilter => {
56
- temporaryFilter = localFilter;
57
- const result = treeWalker.previousNode();
58
- temporaryFilter = undefined;
59
- return result;
60
- },
61
- previousSibling: localFilter => {
62
- temporaryFilter = localFilter;
63
- const result = treeWalker.previousSibling();
64
- temporaryFilter = undefined;
65
- return result;
66
- }
67
- };
68
- }
69
- export const useHTMLElementWalkerRef = filter => {
70
- const walkerRef = React.useRef();
71
- const rootRefCallback = element => {
72
- if (!element) {
73
- walkerRef.current = undefined;
74
- return;
75
- }
76
- walkerRef.current = createHTMLElementWalker(element, filter);
77
- };
78
- return [walkerRef, rootRefCallback];
79
- };
80
- //# sourceMappingURL=useHTMLElementWalker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["isHTMLElement","React","createHTMLElementWalker","root","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","document","createTreeWalker","SHOW_ELEMENT","acceptNode","node","FILTER_REJECT","filterResult","_a","currentElement","currentNode","element","firstChild","localFilter","result","undefined","lastChild","nextElement","nextNode","nextSibling","parentElement","parentNode","previousElement","previousNode","previousSibling","useHTMLElementWalkerRef","walkerRef","useRef","rootRefCallback","current"],"sources":["../src/packages/react-components/react-tree/src/hooks/useHTMLElementWalker.ts"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport interface HTMLElementWalker {\n readonly root: HTMLElement;\n currentElement: HTMLElement;\n firstChild(filter?: HTMLElementFilter): HTMLElement | null;\n lastChild(filter?: HTMLElementFilter): HTMLElement | null;\n nextElement(filter?: HTMLElementFilter): HTMLElement | null;\n nextSibling(filter?: HTMLElementFilter): HTMLElement | null;\n parentElement(filter?: HTMLElementFilter): HTMLElement | null;\n previousElement(filter?: HTMLElementFilter): HTMLElement | null;\n previousSibling(filter?: HTMLElementFilter): HTMLElement | null;\n}\n\nexport type HTMLElementFilter = (element: HTMLElement) => number;\n\nexport function createHTMLElementWalker(\n root: HTMLElement,\n filter: HTMLElementFilter = () => NodeFilter.FILTER_ACCEPT,\n): HTMLElementWalker {\n let temporaryFilter: HTMLElementFilter | undefined;\n const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node: Node) {\n if (!isHTMLElement(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n const filterResult = filter(node);\n return filterResult === NodeFilter.FILTER_ACCEPT ? temporaryFilter?.(node) ?? filterResult : filterResult;\n },\n });\n return {\n get root() {\n return treeWalker.root as HTMLElement;\n },\n get currentElement() {\n return treeWalker.currentNode as HTMLElement;\n },\n set currentElement(element) {\n treeWalker.currentNode = element;\n },\n firstChild: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.firstChild() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n lastChild: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.lastChild() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n nextElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.nextNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n nextSibling: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.nextSibling() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n parentElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.parentNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n previousElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.previousNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n previousSibling: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.previousSibling() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n };\n}\n\nexport const useHTMLElementWalkerRef = (filter?: HTMLElementFilter) => {\n const walkerRef = React.useRef<HTMLElementWalker>();\n\n const rootRefCallback = (element?: HTMLElement) => {\n if (!element) {\n walkerRef.current = undefined;\n return;\n }\n walkerRef.current = createHTMLElementWalker(element, filter);\n };\n return [walkerRef as React.RefObject<HTMLElementWalker>, rootRefCallback as React.Ref<HTMLElement>] as const;\n};\n"],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { useHTMLElementWalkerRef } from './useHTMLElementWalker';
2
- import { nextTypeAheadElement } from '../utils/nextTypeAheadElement';
3
- import { treeDataTypes } from '../utils/tokens';
4
- import { treeItemFilter } from '../utils/treeItemFilter';
5
- import { useRovingTabIndex } from './useRovingTabIndexes';
6
- import { useMergedRefs } from '@fluentui/react-utilities';
7
- export function useNestedTreeNavigation() {
8
- const [{
9
- rove
10
- }, rovingRootRef] = useRovingTabIndex(treeItemFilter);
11
- const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);
12
- const getNextElement = data => {
13
- if (!walkerRef.current) {
14
- return;
15
- }
16
- const treeItemWalker = walkerRef.current;
17
- switch (data.type) {
18
- case treeDataTypes.click:
19
- return data.target;
20
- case treeDataTypes.typeAhead:
21
- treeItemWalker.currentElement = data.target;
22
- return nextTypeAheadElement(treeItemWalker, data.event.key);
23
- case treeDataTypes.arrowLeft:
24
- treeItemWalker.currentElement = data.target;
25
- return treeItemWalker.parentElement();
26
- case treeDataTypes.arrowRight:
27
- treeItemWalker.currentElement = data.target;
28
- return treeItemWalker.firstChild();
29
- case treeDataTypes.end:
30
- treeItemWalker.currentElement = treeItemWalker.root;
31
- return lastChildRecursive(treeItemWalker);
32
- case treeDataTypes.home:
33
- treeItemWalker.currentElement = treeItemWalker.root;
34
- return treeItemWalker.firstChild();
35
- case treeDataTypes.arrowDown:
36
- treeItemWalker.currentElement = data.target;
37
- return treeItemWalker.nextElement();
38
- case treeDataTypes.arrowUp:
39
- treeItemWalker.currentElement = data.target;
40
- return treeItemWalker.previousElement();
41
- }
42
- };
43
- function navigate(data) {
44
- const nextElement = getNextElement(data);
45
- if (nextElement) {
46
- rove(nextElement);
47
- }
48
- }
49
- return [navigate, useMergedRefs(rootRef, rovingRootRef)];
50
- }
51
- function lastChildRecursive(walker) {
52
- let lastElement = null;
53
- let nextElement = null;
54
- while (nextElement = walker.lastChild()) {
55
- lastElement = nextElement;
56
- }
57
- return lastElement;
58
- }
59
- //# sourceMappingURL=useNestedTreeNavigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useHTMLElementWalkerRef","nextTypeAheadElement","treeDataTypes","treeItemFilter","useRovingTabIndex","useMergedRefs","useNestedTreeNavigation","rove","rovingRootRef","walkerRef","rootRef","getNextElement","data","current","treeItemWalker","type","click","target","typeAhead","currentElement","event","key","arrowLeft","parentElement","arrowRight","firstChild","end","root","lastChildRecursive","home","arrowDown","nextElement","arrowUp","previousElement","navigate","walker","lastElement","lastChild"],"sources":["../src/packages/react-components/react-tree/src/hooks/useNestedTreeNavigation.ts"],"sourcesContent":["import { TreeNavigationData_unstable } from '../Tree';\nimport { HTMLElementWalker, useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\nimport { useMergedRefs } from '@fluentui/react-utilities';\n\nexport function useNestedTreeNavigation() {\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n\n const getNextElement = (data: TreeNavigationData_unstable) => {\n if (!walkerRef.current) {\n return;\n }\n const treeItemWalker = walkerRef.current;\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: TreeNavigationData_unstable) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [navigate, useMergedRefs(rootRef, rovingRootRef)] as const;\n}\n\nfunction lastChildRecursive(walker: HTMLElementWalker) {\n let lastElement: HTMLElement | null = null;\n let nextElement: HTMLElement | null = null;\n while ((nextElement = walker.lastChild())) {\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"mappings":"AACA,SAA4BA,uBAAuB,QAAQ,wBAAwB;AACnF,SAASC,oBAAoB,QAAQ,+BAA+B;AACpE,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,OAAM,SAAUC,uBAAuBA,CAAA;EACrC,MAAM,CAAC;IAAEC;EAAI,CAAE,EAAEC,aAAa,CAAC,GAAGJ,iBAAiB,CAACD,cAAc,CAAC;EACnE,MAAM,CAACM,SAAS,EAAEC,OAAO,CAAC,GAAGV,uBAAuB,CAACG,cAAc,CAAC;EAEpE,MAAMQ,cAAc,GAAIC,IAAiC,IAAI;IAC3D,IAAI,CAACH,SAAS,CAACI,OAAO,EAAE;MACtB;;IAEF,MAAMC,cAAc,GAAGL,SAAS,CAACI,OAAO;IACxC,QAAQD,IAAI,CAACG,IAAI;MACf,KAAKb,aAAa,CAACc,KAAK;QACtB,OAAOJ,IAAI,CAACK,MAAM;MACpB,KAAKf,aAAa,CAACgB,SAAS;QAC1BJ,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOhB,oBAAoB,CAACa,cAAc,EAAEF,IAAI,CAACQ,KAAK,CAACC,GAAG,CAAC;MAC7D,KAAKnB,aAAa,CAACoB,SAAS;QAC1BR,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACS,aAAa,EAAE;MACvC,KAAKrB,aAAa,CAACsB,UAAU;QAC3BV,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACW,UAAU,EAAE;MACpC,KAAKvB,aAAa,CAACwB,GAAG;QACpBZ,cAAc,CAACK,cAAc,GAAGL,cAAc,CAACa,IAAI;QACnD,OAAOC,kBAAkB,CAACd,cAAc,CAAC;MAC3C,KAAKZ,aAAa,CAAC2B,IAAI;QACrBf,cAAc,CAACK,cAAc,GAAGL,cAAc,CAACa,IAAI;QACnD,OAAOb,cAAc,CAACW,UAAU,EAAE;MACpC,KAAKvB,aAAa,CAAC4B,SAAS;QAC1BhB,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACiB,WAAW,EAAE;MACrC,KAAK7B,aAAa,CAAC8B,OAAO;QACxBlB,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACmB,eAAe,EAAE;IAAC;EAE9C,CAAC;EACD,SAASC,QAAQA,CAACtB,IAAiC;IACjD,MAAMmB,WAAW,GAAGpB,cAAc,CAACC,IAAI,CAAC;IACxC,IAAImB,WAAW,EAAE;MACfxB,IAAI,CAACwB,WAAW,CAAC;;EAErB;EACA,OAAO,CAACG,QAAQ,EAAE7B,aAAa,CAACK,OAAO,EAAEF,aAAa,CAAC,CAAU;AACnE;AAEA,SAASoB,kBAAkBA,CAACO,MAAyB;EACnD,IAAIC,WAAW,GAAuB,IAAI;EAC1C,IAAIL,WAAW,GAAuB,IAAI;EAC1C,OAAQA,WAAW,GAAGI,MAAM,CAACE,SAAS,EAAE,EAAG;IACzCD,WAAW,GAAGL,WAAW;;EAE3B,OAAOK,WAAW;AACpB"}
@@ -1,22 +0,0 @@
1
- import { useControllableState, useEventCallback } from '@fluentui/react-utilities';
2
- import * as React from 'react';
3
- import { createImmutableSet, emptyImmutableSet } from '../utils/ImmutableSet';
4
- export function useOpenItemsState(props) {
5
- const [openItems, setOpenItems] = useControllableState({
6
- state: React.useMemo(() => props.openItems && createImmutableSet(props.openItems), [props.openItems]),
7
- defaultState: React.useMemo(() => props.defaultOpenItems && createImmutableSet(props.defaultOpenItems), [props.defaultOpenItems]),
8
- initialState: emptyImmutableSet
9
- });
10
- const updateOpenItems = useEventCallback(data => setOpenItems(currentOpenItems => createNextOpenItems(data, currentOpenItems)));
11
- return [openItems, updateOpenItems];
12
- }
13
- function createNextOpenItems(data, previousOpenItems) {
14
- const id = data.target.id;
15
- const previousOpenItemsHasId = previousOpenItems.has(id);
16
- if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {
17
- return previousOpenItems;
18
- }
19
- const nextOpenItems = createImmutableSet(previousOpenItems);
20
- return data.open ? nextOpenItems.add(id) : nextOpenItems.delete(id);
21
- }
22
- //# sourceMappingURL=useOpenItemsState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useControllableState","useEventCallback","React","createImmutableSet","emptyImmutableSet","useOpenItemsState","props","openItems","setOpenItems","state","useMemo","defaultState","defaultOpenItems","initialState","updateOpenItems","data","currentOpenItems","createNextOpenItems","previousOpenItems","id","target","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"sources":["../src/packages/react-components/react-tree/src/hooks/useOpenItemsState.ts"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { TreeItemId, TreeOpenChangeData, TreeProps } from '../Tree';\nimport { createImmutableSet, emptyImmutableSet, ImmutableSet } from '../utils/ImmutableSet';\n\nexport function useOpenItemsState(props: Pick<TreeProps, 'openItems' | 'defaultOpenItems'>) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => props.openItems && createImmutableSet(props.openItems), [props.openItems]),\n defaultState: React.useMemo(\n () => props.defaultOpenItems && createImmutableSet(props.defaultOpenItems),\n [props.defaultOpenItems],\n ),\n initialState: emptyImmutableSet,\n });\n const updateOpenItems = useEventCallback((data: TreeOpenChangeData) =>\n setOpenItems(currentOpenItems => createNextOpenItems(data, currentOpenItems)),\n );\n return [openItems, updateOpenItems] as const;\n}\n\nfunction createNextOpenItems(\n data: TreeOpenChangeData,\n previousOpenItems: ImmutableSet<TreeItemId>,\n): ImmutableSet<TreeItemId> {\n const id = data.target.id;\n const previousOpenItemsHasId = previousOpenItems.has(id);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = createImmutableSet(previousOpenItems);\n return data.open ? nextOpenItems.add(id) : nextOpenItems.delete(id);\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ,2BAA2B;AAClF,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,kBAAkB,EAAEC,iBAAiB,QAAsB,uBAAuB;AAE3F,OAAM,SAAUC,iBAAiBA,CAACC,KAAwD;EACxF,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGR,oBAAoB,CAAC;IACrDS,KAAK,EAAEP,KAAK,CAACQ,OAAO,CAAC,MAAMJ,KAAK,CAACC,SAAS,IAAIJ,kBAAkB,CAACG,KAAK,CAACC,SAAS,CAAC,EAAE,CAACD,KAAK,CAACC,SAAS,CAAC,CAAC;IACrGI,YAAY,EAAET,KAAK,CAACQ,OAAO,CACzB,MAAMJ,KAAK,CAACM,gBAAgB,IAAIT,kBAAkB,CAACG,KAAK,CAACM,gBAAgB,CAAC,EAC1E,CAACN,KAAK,CAACM,gBAAgB,CAAC,CACzB;IACDC,YAAY,EAAET;GACf,CAAC;EACF,MAAMU,eAAe,GAAGb,gBAAgB,CAAEc,IAAwB,IAChEP,YAAY,CAACQ,gBAAgB,IAAIC,mBAAmB,CAACF,IAAI,EAAEC,gBAAgB,CAAC,CAAC,CAC9E;EACD,OAAO,CAACT,SAAS,EAAEO,eAAe,CAAU;AAC9C;AAEA,SAASG,mBAAmBA,CAC1BF,IAAwB,EACxBG,iBAA2C;EAE3C,MAAMC,EAAE,GAAGJ,IAAI,CAACK,MAAM,CAACD,EAAE;EACzB,MAAME,sBAAsB,GAAGH,iBAAiB,CAACI,GAAG,CAACH,EAAE,CAAC;EACxD,IAAIJ,IAAI,CAACQ,IAAI,GAAGF,sBAAsB,GAAG,CAACA,sBAAsB,EAAE;IAChE,OAAOH,iBAAiB;;EAE1B,MAAMM,aAAa,GAAGrB,kBAAkB,CAACe,iBAAiB,CAAC;EAC3D,OAAOH,IAAI,CAACQ,IAAI,GAAGC,aAAa,CAACC,GAAG,CAACN,EAAE,CAAC,GAAGK,aAAa,CAACE,MAAM,CAACP,EAAE,CAAC;AACrE"}