@fluentui/react-tree 9.0.0-beta.12 → 9.0.0-beta.13

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 (190) hide show
  1. package/CHANGELOG.json +147 -4
  2. package/CHANGELOG.md +34 -5
  3. package/dist/index.d.ts +142 -81
  4. package/lib/TreeItemAside.js +2 -0
  5. package/lib/TreeItemAside.js.map +1 -0
  6. package/lib/components/Tree/Tree.js +1 -1
  7. package/lib/components/Tree/Tree.js.map +1 -1
  8. package/lib/components/Tree/Tree.types.js.map +1 -1
  9. package/lib/components/Tree/index.js +1 -1
  10. package/lib/components/Tree/index.js.map +1 -1
  11. package/lib/components/Tree/renderTree.js +1 -1
  12. package/lib/components/Tree/renderTree.js.map +1 -1
  13. package/lib/components/Tree/useRootTree.js +160 -0
  14. package/lib/components/Tree/useRootTree.js.map +1 -0
  15. package/lib/components/Tree/useSubtree.js +40 -0
  16. package/lib/components/Tree/useSubtree.js.map +1 -0
  17. package/lib/components/Tree/useTree.js +2 -95
  18. package/lib/components/Tree/useTree.js.map +1 -1
  19. package/lib/components/Tree/useTreeContextValues.js +2 -4
  20. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  21. package/lib/components/Tree/useTreeStyles.styles.js +30 -0
  22. package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
  23. package/lib/components/TreeItem/TreeItem.js +1 -1
  24. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  25. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  26. package/lib/components/TreeItem/index.js +1 -1
  27. package/lib/components/TreeItem/index.js.map +1 -1
  28. package/lib/components/TreeItem/renderTreeItem.js +2 -5
  29. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  30. package/lib/components/TreeItem/useTreeItem.js +58 -181
  31. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  32. package/lib/components/TreeItem/useTreeItemContextValues.js +25 -11
  33. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  34. package/lib/components/TreeItem/useTreeItemStyles.styles.js +102 -0
  35. package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  36. package/lib/components/TreeItemAside/TreeItemAside.js +15 -0
  37. package/lib/components/TreeItemAside/TreeItemAside.js.map +1 -0
  38. package/lib/components/TreeItemAside/TreeItemAside.types.js +2 -0
  39. package/lib/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
  40. package/lib/components/TreeItemAside/index.js +6 -0
  41. package/lib/components/TreeItemAside/index.js.map +1 -0
  42. package/lib/components/TreeItemAside/renderTreeItemAside.js +19 -0
  43. package/lib/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
  44. package/lib/components/TreeItemAside/useTreeItemAside.js +35 -0
  45. package/lib/components/TreeItemAside/useTreeItemAside.js.map +1 -0
  46. package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js +47 -0
  47. package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
  48. package/lib/components/TreeItemChevron.js +27 -0
  49. package/lib/components/TreeItemChevron.js.map +1 -0
  50. package/lib/components/TreeItemLayout/TreeItemLayout.js +1 -1
  51. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  52. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  53. package/lib/components/TreeItemLayout/index.js +1 -1
  54. package/lib/components/TreeItemLayout/index.js.map +1 -1
  55. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -4
  56. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  57. package/lib/components/TreeItemLayout/useTreeItemLayout.js +16 -11
  58. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  59. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +138 -0
  60. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  61. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +1 -1
  62. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  63. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  64. package/lib/components/TreeItemPersonaLayout/index.js +1 -1
  65. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  66. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -5
  67. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  68. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +16 -20
  69. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  70. package/lib/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +46 -18
  71. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  72. package/lib/contexts/treeContext.js +1 -2
  73. package/lib/contexts/treeContext.js.map +1 -1
  74. package/lib/contexts/treeItemContext.js +12 -4
  75. package/lib/contexts/treeItemContext.js.map +1 -1
  76. package/lib/hooks/useFlatTree.js +7 -7
  77. package/lib/hooks/useFlatTree.js.map +1 -1
  78. package/lib/hooks/useFlatTreeNavigation.js +8 -8
  79. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  80. package/lib/hooks/useNestedTreeNavigation.js +8 -8
  81. package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
  82. package/lib/hooks/useOpenItemsState.js +1 -1
  83. package/lib/hooks/useOpenItemsState.js.map +1 -1
  84. package/lib/index.js +1 -0
  85. package/lib/index.js.map +1 -1
  86. package/lib/utils/createFlatTreeItems.js +12 -10
  87. package/lib/utils/createFlatTreeItems.js.map +1 -1
  88. package/lib/utils/flattenTree.js +0 -29
  89. package/lib/utils/flattenTree.js.map +1 -1
  90. package/lib/utils/tokens.js +11 -11
  91. package/lib/utils/tokens.js.map +1 -1
  92. package/lib-commonjs/TreeItemAside.js +9 -0
  93. package/lib-commonjs/TreeItemAside.js.map +1 -0
  94. package/lib-commonjs/components/Tree/Tree.js +2 -2
  95. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  96. package/lib-commonjs/components/Tree/index.js +1 -1
  97. package/lib-commonjs/components/Tree/index.js.map +1 -1
  98. package/lib-commonjs/components/Tree/renderTree.js +1 -1
  99. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  100. package/lib-commonjs/components/Tree/useRootTree.js +151 -0
  101. package/lib-commonjs/components/Tree/useRootTree.js.map +1 -0
  102. package/lib-commonjs/components/Tree/useSubtree.js +41 -0
  103. package/lib-commonjs/components/Tree/useSubtree.js.map +1 -0
  104. package/lib-commonjs/components/Tree/useTree.js +4 -89
  105. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  106. package/lib-commonjs/components/Tree/useTreeContextValues.js +2 -3
  107. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  108. package/lib-commonjs/components/Tree/{useTreeStyles.js → useTreeStyles.styles.js} +21 -4
  109. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
  110. package/lib-commonjs/components/TreeItem/TreeItem.js +2 -2
  111. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  112. package/lib-commonjs/components/TreeItem/index.js +1 -1
  113. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  114. package/lib-commonjs/components/TreeItem/renderTreeItem.js +2 -5
  115. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  116. package/lib-commonjs/components/TreeItem/useTreeItem.js +55 -172
  117. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  118. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +16 -15
  119. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  120. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +208 -0
  121. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
  122. package/lib-commonjs/components/TreeItemAside/TreeItemAside.js +21 -0
  123. package/lib-commonjs/components/TreeItemAside/TreeItemAside.js.map +1 -0
  124. package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js +7 -0
  125. package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
  126. package/lib-commonjs/components/TreeItemAside/index.js +13 -0
  127. package/lib-commonjs/components/TreeItemAside/index.js.map +1 -0
  128. package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js +22 -0
  129. package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
  130. package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js +33 -0
  131. package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js.map +1 -0
  132. package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js +92 -0
  133. package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
  134. package/lib-commonjs/components/TreeItemChevron.js +35 -0
  135. package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
  136. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +2 -2
  137. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  138. package/lib-commonjs/components/TreeItemLayout/index.js +1 -1
  139. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  140. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +1 -2
  141. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  142. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +15 -10
  143. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  144. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +223 -0
  145. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
  146. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +2 -2
  147. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  148. package/lib-commonjs/components/TreeItemPersonaLayout/index.js +1 -1
  149. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  150. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -3
  151. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  152. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +14 -14
  153. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  154. package/lib-commonjs/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +82 -28
  155. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
  156. package/lib-commonjs/contexts/treeContext.js +1 -2
  157. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  158. package/lib-commonjs/contexts/treeItemContext.js +12 -4
  159. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  160. package/lib-commonjs/hooks/useFlatTree.js +7 -7
  161. package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
  162. package/lib-commonjs/hooks/useFlatTreeNavigation.js +8 -8
  163. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
  164. package/lib-commonjs/hooks/useNestedTreeNavigation.js +8 -8
  165. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
  166. package/lib-commonjs/hooks/useOpenItemsState.js +1 -3
  167. package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
  168. package/lib-commonjs/index.js +6 -0
  169. package/lib-commonjs/index.js.map +1 -1
  170. package/lib-commonjs/utils/createFlatTreeItems.js +12 -10
  171. package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -1
  172. package/lib-commonjs/utils/flattenTree.js +4 -37
  173. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  174. package/lib-commonjs/utils/tokens.js +10 -10
  175. package/lib-commonjs/utils/tokens.js.map +1 -1
  176. package/package.json +15 -14
  177. package/.swcrc +0 -30
  178. package/lib/components/Tree/useTreeStyles.js +0 -20
  179. package/lib/components/Tree/useTreeStyles.js.map +0 -1
  180. package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
  181. package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
  182. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
  183. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  184. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
  185. package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
  186. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -375
  187. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
  188. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -143
  189. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
  190. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "useTreeContextValues_unstable", {
7
7
  get: ()=>useTreeContextValues_unstable
8
8
  });
9
9
  function useTreeContextValues_unstable(state) {
10
- const { openItems , level , appearance , size , requestOpenChange , requestNavigation } = state;
10
+ const { openItems , level , appearance , size , requestTreeResponse } = state;
11
11
  /**
12
12
  * This context is created with "@fluentui/react-context-selector",
13
13
  * there is no sense to memoize it
@@ -16,8 +16,7 @@ function useTreeContextValues_unstable(state) {
16
16
  size,
17
17
  level,
18
18
  openItems,
19
- requestOpenChange,
20
- requestNavigation
19
+ requestTreeResponse
21
20
  };
22
21
  return {
23
22
  tree
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/Tree/useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const {\n openItems,\n level,\n appearance,\n size,\n requestOpenChange,\n requestNavigation\n } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree = {\n appearance,\n size,\n level,\n openItems,\n requestOpenChange,\n requestNavigation\n };\n return {\n tree\n };\n}\n//# sourceMappingURL=useTreeContextValues.js.map"],"names":["useTreeContextValues_unstable","state","openItems","level","appearance","size","requestOpenChange","requestNavigation","tree"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,8BAA8BC,KAAK,EAAE;IACnD,MAAM,EACJC,UAAS,EACTC,MAAK,EACLC,WAAU,EACVC,KAAI,EACJC,kBAAiB,EACjBC,kBAAiB,EAClB,GAAGN;IACJ;;;EAGA,GACA,MAAMO,OAAO;QACXJ;QACAC;QACAF;QACAD;QACAI;QACAC;IACF;IACA,OAAO;QACLC;IACF;AACF,EACA,gDAAgD"}
1
+ {"version":3,"sources":["../../../lib/components/Tree/useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const {\n openItems,\n level,\n appearance,\n size,\n requestTreeResponse\n } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const tree = {\n appearance,\n size,\n level,\n openItems,\n requestTreeResponse\n };\n return {\n tree\n };\n}\n//# sourceMappingURL=useTreeContextValues.js.map"],"names":["useTreeContextValues_unstable","state","openItems","level","appearance","size","requestTreeResponse","tree"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,8BAA8BC,KAAK,EAAE;IACnD,MAAM,EACJC,UAAS,EACTC,MAAK,EACLC,WAAU,EACVC,KAAI,EACJC,oBAAmB,EACpB,GAAGL;IACJ;;;EAGA,GACA,MAAMM,OAAO;QACXH;QACAC;QACAF;QACAD;QACAI;IACF;IACA,OAAO;QACLC;IACF;AACF,EACA,gDAAgD"}
@@ -21,18 +21,35 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
21
21
  mc9l5x: "f22iagw",
22
22
  Beiy3e4: "f1vx9l62",
23
23
  Belr9w4: "f1j0q4x9"
24
+ },
25
+ subtree: {
26
+ Bh6795r: "fqerorx",
27
+ Bnnss6s: "f1neuvcm",
28
+ xawz: "f1s4axba",
29
+ Ijaq50: "f1na4k6z",
30
+ Br312pm: "fwt6ga",
31
+ nk6f5a: "fi45nfw",
32
+ Bw0ie65: "f10ort2y"
24
33
  }
25
34
  }, {
26
35
  d: [
27
36
  ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
28
37
  ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
29
- ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}"
38
+ ".f1j0q4x9{row-gap:var(--spacingVerticalXXS);}",
39
+ ".fqerorx{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}",
40
+ ".f1neuvcm{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}",
41
+ ".f1s4axba{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}",
42
+ ".f1na4k6z{grid-row-start:subtree;}",
43
+ ".fwt6ga{grid-column-start:subtree;}",
44
+ ".fi45nfw{grid-row-end:subtree;}",
45
+ ".f10ort2y{grid-column-end:subtree;}"
30
46
  ]
31
47
  });
32
48
  const useTreeStyles_unstable = (state)=>{
33
49
  const styles = useStyles();
34
- state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root, state.root.className);
50
+ const isSubtree = state.level > 0;
51
+ state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root, isSubtree && styles.subtree, state.root.className);
35
52
  return state;
36
- }; //# sourceMappingURL=useTreeStyles.js.map
53
+ }; //# sourceMappingURL=useTreeStyles.styles.js.map
37
54
 
38
- //# sourceMappingURL=useTreeStyles.js.map
55
+ //# sourceMappingURL=useTreeStyles.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/Tree/useTreeStyles.styles.js"],"sourcesContent":["import { __styles, mergeClasses, shorthands } 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 Bh6795r: \"fqerorx\",\n Bnnss6s: \"f1neuvcm\",\n xawz: \"f1s4axba\",\n Ijaq50: \"f1na4k6z\",\n Br312pm: \"fwt6ga\",\n nk6f5a: \"fi45nfw\",\n Bw0ie65: \"f10ort2y\"\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);}\", \".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;}\", \".f1s4axba{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}\", \".f1na4k6z{grid-row-start:subtree;}\", \".fwt6ga{grid-column-start:subtree;}\", \".fi45nfw{grid-row-end:subtree;}\", \".f10ort2y{grid-column-end:subtree;}\"]\n});\nexport const useTreeStyles_unstable = state => {\n const styles = useStyles();\n const isSubtree = state.level > 0;\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","Bh6795r","Bnnss6s","xawz","Ijaq50","Br312pm","nk6f5a","Bw0ie65","d","state","styles","isSubtree","level","className","mergeClasses"],"mappings":";;;;;;;;;;;IAEaA,cAAc,MAAdA;IAqBAC,sBAAsB,MAAtBA;;uBAvBsC;AAE5C,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,SAAS;QACTC,SAAS;QACTC,MAAM;QACNC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAA6F;QAAiD;QAAqF;QAAuE;QAAoF;QAAsC;QAAuC;QAAmC;KAAsC;AAClnB;AACO,MAAMf,yBAAyBgB,CAAAA,QAAS;IAC7C,MAAMC,SAASf;IACf,MAAMgB,YAAYF,MAAMG,KAAK,GAAG;IAChCH,MAAMf,IAAI,CAACmB,SAAS,GAAGC,IAAAA,mBAAY,EAACtB,eAAeE,IAAI,EAAEgB,OAAOhB,IAAI,EAAEiB,aAAaD,OAAOV,OAAO,EAAES,MAAMf,IAAI,CAACmB,SAAS;IACvH,OAAOJ;AACT,GACA,gDAAgD"}
@@ -10,11 +10,11 @@ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildc
10
10
  const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
11
  const _useTreeItem = require("./useTreeItem");
12
12
  const _renderTreeItem = require("./renderTreeItem");
13
- const _useTreeItemStyles = require("./useTreeItemStyles");
13
+ const _useTreeItemStylesStyles = require("./useTreeItemStyles.styles");
14
14
  const _useTreeItemContextValues = require("./useTreeItemContextValues");
15
15
  const TreeItem = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
16
16
  const state = (0, _useTreeItem.useTreeItem_unstable)(props, ref);
17
- (0, _useTreeItemStyles.useTreeItemStyles_unstable)(state);
17
+ (0, _useTreeItemStylesStyles.useTreeItemStyles_unstable)(state);
18
18
  const contextValues = (0, _useTreeItemContextValues.useTreeItemContextValues_unstable)(state);
19
19
  return (0, _renderTreeItem.renderTreeItem_unstable)(state, contextValues);
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/TreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeItem_unstable } from './useTreeItem';\nimport { renderTreeItem_unstable } from './renderTreeItem';\nimport { useTreeItemStyles_unstable } from './useTreeItemStyles';\nimport { useTreeItemContextValues_unstable } from './useTreeItemContextValues';\n/**\n * The `TreeItem` component represents a single item in a tree.\n * It expects a certain order of children to work properly: the first child should be the node itself,\n * and the second child should be a nested subtree in the form of another Tree component or a standalone TreeItem.\n * This order follows the same order as document traversal for the TreeWalker API in JavaScript:\n * https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.\n * The content and layout of a TreeItem can be defined using the TreeItemLayout or TreeItemPersonaLayout component,\n * which should be used as a direct child of TreeItem.\n *\n * When a TreeItem has nested child subtree, an expand/collapse control is displayed,\n * allowing the user to show or hide the children.\n */\nexport const TreeItem = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useTreeItem_unstable(props, ref);\n useTreeItemStyles_unstable(state);\n const contextValues = useTreeItemContextValues_unstable(state);\n return renderTreeItem_unstable(state, contextValues);\n});\nTreeItem.displayName = 'TreeItem';\n//# sourceMappingURL=TreeItem.js.map"],"names":["TreeItem","React","forwardRef","props","ref","state","useTreeItem_unstable","useTreeItemStyles_unstable","contextValues","useTreeItemContextValues_unstable","renderTreeItem_unstable","displayName"],"mappings":";;;;+BAiBaA;;aAAAA;;;6DAjBU;6BACc;gCACG;mCACG;0CACO;AAa3C,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACpE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1CG,IAAAA,6CAA0B,EAACF;IAC3B,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACJ;IACxD,OAAOK,IAAAA,uCAAuB,EAACL,OAAOG;AACxC;AACAR,SAASW,WAAW,GAAG,YACvB,oCAAoC"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/TreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeItem_unstable } from './useTreeItem';\nimport { renderTreeItem_unstable } from './renderTreeItem';\nimport { useTreeItemStyles_unstable } from './useTreeItemStyles.styles';\nimport { useTreeItemContextValues_unstable } from './useTreeItemContextValues';\n/**\n * The `TreeItem` component represents a single item in a tree.\n * It expects a certain order of children to work properly: the first child should be the node itself,\n * and the second child should be a nested subtree in the form of another Tree component or a standalone TreeItem.\n * This order follows the same order as document traversal for the TreeWalker API in JavaScript:\n * https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.\n * The content and layout of a TreeItem can be defined using the TreeItemLayout or TreeItemPersonaLayout component,\n * which should be used as a direct child of TreeItem.\n *\n * When a TreeItem has nested child subtree, an expand/collapse control is displayed,\n * allowing the user to show or hide the children.\n */\nexport const TreeItem = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useTreeItem_unstable(props, ref);\n useTreeItemStyles_unstable(state);\n const contextValues = useTreeItemContextValues_unstable(state);\n return renderTreeItem_unstable(state, contextValues);\n});\nTreeItem.displayName = 'TreeItem';\n//# sourceMappingURL=TreeItem.js.map"],"names":["TreeItem","React","forwardRef","props","ref","state","useTreeItem_unstable","useTreeItemStyles_unstable","contextValues","useTreeItemContextValues_unstable","renderTreeItem_unstable","displayName"],"mappings":";;;;+BAiBaA;;aAAAA;;;6DAjBU;6BACc;gCACG;yCACG;0CACO;AAa3C,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACpE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1CG,IAAAA,mDAA0B,EAACF;IAC3B,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACJ;IACxD,OAAOK,IAAAA,uCAAuB,EAACL,OAAOG;AACxC;AACAR,SAASW,WAAW,GAAG,YACvB,oCAAoC"}
@@ -7,7 +7,7 @@ _exportStar(require("./TreeItem"), exports);
7
7
  _exportStar(require("./TreeItem.types"), exports);
8
8
  _exportStar(require("./renderTreeItem"), exports);
9
9
  _exportStar(require("./useTreeItem"), exports);
10
- _exportStar(require("./useTreeItemStyles"), exports);
10
+ _exportStar(require("./useTreeItemStyles.styles"), exports);
11
11
  //# sourceMappingURL=index.js.map
12
12
 
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/index.js"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/index.js"],"sourcesContent":["export * from './TreeItem';\nexport * from './TreeItem.types';\nexport * from './renderTreeItem';\nexport * from './useTreeItem';\nexport * from './useTreeItemStyles.styles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
@@ -9,14 +9,11 @@ Object.defineProperty(exports, "renderTreeItem_unstable", {
9
9
  const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
10
  const _reactUtilities = require("@fluentui/react-utilities");
11
11
  const _contexts = require("../../contexts");
12
- const _reactButton = require("@fluentui/react-button");
13
12
  const renderTreeItem_unstable = (state, contextValues)=>{
14
13
  const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
15
- return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
14
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
16
15
  value: contextValues.treeItem
17
- }, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.content, slotProps.content, slots.expandIcon && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.expandIcon, slotProps.expandIcon), slotProps.content.children, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactButton.ButtonContextProvider, {
18
- value: contextValues.button
19
- }, slots.actions && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.actions, slotProps.actions))), state.open && slots.subtree && /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.subtree, slotProps.subtree)));
16
+ }, slotProps.root.children));
20
17
  }; //# sourceMappingURL=renderTreeItem.js.map
21
18
 
22
19
  //# sourceMappingURL=renderTreeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider } from '../../contexts';\nimport { ButtonContextProvider } from '@fluentui/react-button';\n/**\n * Render the final JSX of TreeItem\n */\nexport const renderTreeItem_unstable = (state, contextValues) => {\n const {\n slots,\n slotProps\n } = getSlotsNext(state);\n return /*#__PURE__*/createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, /*#__PURE__*/createElement(slots.root, slotProps.root, /*#__PURE__*/createElement(slots.content, slotProps.content, slots.expandIcon && /*#__PURE__*/createElement(slots.expandIcon, slotProps.expandIcon), slotProps.content.children, /*#__PURE__*/createElement(ButtonContextProvider, {\n value: contextValues.button\n }, slots.actions && /*#__PURE__*/createElement(slots.actions, slotProps.actions))), state.open && slots.subtree && /*#__PURE__*/createElement(slots.subtree, slotProps.subtree)));\n};\n//# sourceMappingURL=renderTreeItem.js.map"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","TreeItemProvider","value","treeItem","root","content","expandIcon","children","ButtonContextProvider","button","actions","open","subtree"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAOrCA;;aAAAA;;iCAPqE;gCACrD;0BACI;6BACK;AAI/B,MAAMA,0BAA0B,CAACC,OAAOC,gBAAkB;IAC/D,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,4BAAY,EAACJ;IACjB,OAAO,WAAW,GAAEK,IAAAA,8BAAa,EAACC,0BAAgB,EAAE;QAClDC,OAAON,cAAcO,QAAQ;IAC/B,GAAG,WAAW,GAAEH,IAAAA,8BAAa,EAACH,MAAMO,IAAI,EAAEN,UAAUM,IAAI,EAAE,WAAW,GAAEJ,IAAAA,8BAAa,EAACH,MAAMQ,OAAO,EAAEP,UAAUO,OAAO,EAAER,MAAMS,UAAU,IAAI,WAAW,GAAEN,IAAAA,8BAAa,EAACH,MAAMS,UAAU,EAAER,UAAUQ,UAAU,GAAGR,UAAUO,OAAO,CAACE,QAAQ,EAAE,WAAW,GAAEP,IAAAA,8BAAa,EAACQ,kCAAqB,EAAE;QAC3RN,OAAON,cAAca,MAAM;IAC7B,GAAGZ,MAAMa,OAAO,IAAI,WAAW,GAAEV,IAAAA,8BAAa,EAACH,MAAMa,OAAO,EAAEZ,UAAUY,OAAO,KAAKf,MAAMgB,IAAI,IAAId,MAAMe,OAAO,IAAI,WAAW,GAAEZ,IAAAA,8BAAa,EAACH,MAAMe,OAAO,EAAEd,UAAUc,OAAO;AAChL,GACA,0CAA0C"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider } from '../../contexts';\n/**\n * Render the final JSX of TreeItem\n */\nexport const renderTreeItem_unstable = (state, contextValues) => {\n const {\n slots,\n slotProps\n } = getSlotsNext(state);\n return /*#__PURE__*/createElement(slots.root, slotProps.root, /*#__PURE__*/createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, slotProps.root.children));\n};\n//# sourceMappingURL=renderTreeItem.js.map"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","root","TreeItemProvider","value","treeItem","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAMrCA;;aAAAA;;iCANqE;gCACrD;0BACI;AAI1B,MAAMA,0BAA0B,CAACC,OAAOC,gBAAkB;IAC/D,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,4BAAY,EAACJ;IACjB,OAAO,WAAW,GAAEK,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAEH,UAAUG,IAAI,EAAE,WAAW,GAAED,IAAAA,8BAAa,EAACE,0BAAgB,EAAE;QACzGC,OAAOP,cAAcQ,QAAQ;IAC/B,GAAGN,UAAUG,IAAI,CAACI,QAAQ;AAC5B,GACA,0CAA0C"}
@@ -9,76 +9,29 @@ Object.defineProperty(exports, "useTreeItem_unstable", {
9
9
  const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
10
  const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
11
  const _reactUtilities = require("@fluentui/react-utilities");
12
- const _reactIcons = require("@fluentui/react-icons");
13
- const _reactSharedContexts = require("@fluentui/react-shared-contexts");
14
- const _useTreeItemStyles = require("./useTreeItemStyles");
15
- const _keyboardKeys = require("@fluentui/keyboard-keys");
16
12
  const _reactPortal = require("@fluentui/react-portal");
17
13
  const _index = require("../../contexts/index");
18
14
  const _tokens = require("../../utils/tokens");
19
15
  function useTreeItem_unstable(props, ref) {
20
- const [children, subtreeChildren] = _react.Children.toArray(props.children);
21
16
  const contextLevel = (0, _index.useTreeContext_unstable)((ctx)=>ctx.level);
22
17
  const id = (0, _reactUtilities.useId)('fui-TreeItem-', props.id);
23
- const { content , subtree , expandIcon , leaf: isLeaf = subtreeChildren === undefined , actions , as ='div' , onClick , onKeyDown , ['aria-level']: level = contextLevel , value =id , ...rest } = props;
24
- const requestOpenChange = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestOpenChange);
25
- const requestNavigation = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestNavigation);
26
- const isBranch = !isLeaf;
27
- const open = (0, _index.useTreeContext_unstable)((ctx)=>isBranch && ctx.openItems.has(value));
28
- const { dir , targetDocument } = (0, _reactSharedContexts.useFluent_unstable)();
29
- const expandIconRotation = open ? 90 : dir !== 'rtl' ? 0 : 180;
18
+ const { onClick , onKeyDown , as ='div' , value =id , itemType ='leaf' , 'aria-level': level = contextLevel , ...rest } = props;
19
+ const requestTreeResponse = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestTreeResponse);
20
+ const [isActionsVisible, setActionsVisible] = _react.useState(false);
21
+ const [isAsideVisible, setAsideVisible] = _react.useState(true);
22
+ const handleActionsRef = (actions)=>{
23
+ setAsideVisible(actions === null);
24
+ };
25
+ const open = (0, _index.useTreeContext_unstable)((ctx)=>ctx.openItems.has(value));
30
26
  const actionsRef = _react.useRef(null);
31
27
  const expandIconRef = _react.useRef(null);
28
+ const layoutRef = _react.useRef(null);
32
29
  const subtreeRef = _react.useRef(null);
33
- const handleArrowRight = (event)=>{
34
- if (!open && isBranch) {
35
- return requestOpenChange({
36
- event,
37
- value,
38
- open: true,
39
- type: _tokens.treeDataTypes.arrowRight,
40
- target: event.currentTarget
41
- });
42
- }
43
- if (open && isBranch) {
44
- return requestNavigation({
45
- event,
46
- value,
47
- type: _tokens.treeDataTypes.arrowRight,
48
- target: event.currentTarget
49
- });
50
- }
51
- };
52
- const handleArrowLeft = (event)=>{
53
- if (open && isBranch) {
54
- return requestOpenChange({
55
- event,
56
- value,
57
- open: false,
58
- type: _tokens.treeDataTypes.arrowLeft,
59
- target: event.currentTarget
60
- });
61
- }
62
- if (!open && level > 1) {
63
- return requestNavigation({
64
- event,
65
- value,
66
- target: event.currentTarget,
67
- type: _tokens.treeDataTypes.arrowLeft
68
- });
69
- }
70
- };
71
- const handleEnter = (event)=>{
72
- requestOpenChange({
73
- event,
74
- value,
75
- open: isLeaf ? open : !open,
76
- type: _tokens.treeDataTypes.enter,
77
- target: event.currentTarget
78
- });
79
- };
80
30
  const handleClick = (0, _reactUtilities.useEventCallback)((event)=>{
81
31
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
32
+ if (event.isDefaultPrevented()) {
33
+ return;
34
+ }
82
35
  const isEventFromActions = actionsRef.current && (0, _reactPortal.elementContains)(actionsRef.current, event.target);
83
36
  if (isEventFromActions) {
84
37
  return;
@@ -88,160 +41,90 @@ function useTreeItem_unstable(props, ref) {
88
41
  return;
89
42
  }
90
43
  const isFromExpandIcon = expandIconRef.current && (0, _reactPortal.elementContains)(expandIconRef.current, event.target);
91
- requestOpenChange({
92
- event,
93
- value,
94
- open: isLeaf ? open : !open,
95
- type: isFromExpandIcon ? _tokens.treeDataTypes.expandIconClick : _tokens.treeDataTypes.click,
96
- target: event.currentTarget
97
- });
98
- requestNavigation({
44
+ requestTreeResponse({
99
45
  event,
46
+ itemType,
100
47
  value,
101
- target: event.currentTarget,
102
- type: _tokens.treeDataTypes.click
48
+ type: isFromExpandIcon ? _tokens.treeDataTypes.ExpandIconClick : _tokens.treeDataTypes.Click
103
49
  });
104
50
  });
105
51
  const handleKeyDown = (0, _reactUtilities.useEventCallback)((event)=>{
106
52
  onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
107
- if (event.currentTarget !== event.target) {
53
+ if (event.isDefaultPrevented()) {
108
54
  return;
109
55
  }
110
- if (event.isDefaultPrevented()) {
56
+ if (event.currentTarget !== event.target) {
111
57
  return;
112
58
  }
113
59
  switch(event.key){
114
- case _keyboardKeys.Enter:
115
- return handleEnter(event);
116
- case _keyboardKeys.ArrowRight:
117
- return handleArrowRight(event);
118
- case _keyboardKeys.ArrowLeft:
119
- return handleArrowLeft(event);
120
- case _keyboardKeys.End:
121
- return requestNavigation({
122
- event,
123
- value,
124
- type: _tokens.treeDataTypes.end,
125
- target: event.currentTarget
126
- });
127
- case _keyboardKeys.Home:
128
- return requestNavigation({
60
+ case _tokens.treeDataTypes.End:
61
+ case _tokens.treeDataTypes.Home:
62
+ case _tokens.treeDataTypes.Enter:
63
+ case _tokens.treeDataTypes.ArrowUp:
64
+ case _tokens.treeDataTypes.ArrowDown:
65
+ case _tokens.treeDataTypes.ArrowLeft:
66
+ case _tokens.treeDataTypes.ArrowRight:
67
+ return requestTreeResponse({
129
68
  event,
69
+ itemType,
130
70
  value,
131
- type: _tokens.treeDataTypes.home,
132
- target: event.currentTarget
133
- });
134
- case _keyboardKeys.ArrowUp:
135
- return requestNavigation({
136
- event,
137
- value,
138
- type: _tokens.treeDataTypes.arrowUp,
139
- target: event.currentTarget
140
- });
141
- case _keyboardKeys.ArrowDown:
142
- return requestNavigation({
143
- event,
144
- value,
145
- type: _tokens.treeDataTypes.arrowDown,
146
- target: event.currentTarget
71
+ type: event.key
147
72
  });
148
73
  }
149
74
  const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;
150
75
  if (isTypeAheadCharacter) {
151
- return requestNavigation({
76
+ requestTreeResponse({
152
77
  event,
78
+ itemType,
153
79
  value,
154
- target: event.currentTarget,
155
- type: _tokens.treeDataTypes.typeAhead
80
+ type: _tokens.treeDataTypes.TypeAhead
156
81
  });
157
82
  }
158
83
  });
159
- const [isActionsVisible, setActionsVisible] = _react.useState(false);
160
- const showActions = (0, _reactUtilities.useEventCallback)((event)=>{
161
- const isEventFromSubtree = subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target);
162
- if (!isEventFromSubtree) {
84
+ const handleActionsVisible = (0, _reactUtilities.useEventCallback)((event)=>{
85
+ const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target));
86
+ if (!isTargetFromSubtree) {
163
87
  setActionsVisible(true);
164
88
  }
165
89
  });
166
- const hideActions = (0, _reactUtilities.useEventCallback)((event)=>{
167
- const isEventFromSubtree = subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target);
168
- if (!isEventFromSubtree) {
169
- setActionsVisible(false);
90
+ const handleActionsInvisible = (0, _reactUtilities.useEventCallback)((event)=>{
91
+ const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactPortal.elementContains)(subtreeRef.current, event.target));
92
+ const isRelatedTargetFromActions = Boolean(actionsRef.current && (0, _reactPortal.elementContains)(actionsRef.current, event.relatedTarget));
93
+ if (isRelatedTargetFromActions) {
94
+ return setActionsVisible(true);
170
95
  }
171
- });
172
- // Listens to focusout event on the document to ensure treeitem actions visibility on portal scenarios
173
- // TODO: find a better way to ensure this behavior
174
- _react.useEffect(()=>{
175
- if (actionsRef.current) {
176
- const handleFocusOut = (event)=>{
177
- setActionsVisible((0, _reactPortal.elementContains)(actionsRef.current, event.relatedTarget));
178
- };
179
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('focusout', handleFocusOut, {
180
- passive: true
181
- });
182
- return ()=>{
183
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('focusout', handleFocusOut);
184
- };
96
+ if (!isTargetFromSubtree) {
97
+ return setActionsVisible(false);
185
98
  }
186
- }, [
187
- targetDocument
188
- ]);
99
+ });
189
100
  return {
190
- isLeaf,
101
+ value,
191
102
  open,
103
+ subtreeRef,
104
+ actionsRef: (0, _reactUtilities.useMergedRefs)(actionsRef, handleActionsRef),
105
+ expandIconRef,
106
+ layoutRef,
107
+ itemType,
108
+ isActionsVisible,
109
+ isAsideVisible,
192
110
  level,
193
- buttonSize: 'small',
194
- isActionsVisible: actions ? isActionsVisible : false,
195
111
  components: {
196
- content: 'div',
197
- root: 'div',
198
- expandIcon: 'span',
199
- actions: 'span',
200
- subtree: 'span'
112
+ root: 'div'
201
113
  },
202
- subtree: (0, _reactUtilities.resolveShorthand)(subtree, {
203
- required: Boolean(subtreeChildren),
204
- defaultProps: {
205
- children: subtreeChildren,
206
- ref: (0, _reactUtilities.useMergedRefs)(subtreeRef, (0, _reactUtilities.isResolvedShorthand)(subtree) ? subtree.ref : undefined)
207
- }
208
- }),
209
- content: (0, _reactUtilities.resolveShorthand)(content, {
210
- required: true,
211
- defaultProps: {
212
- children
213
- }
214
- }),
215
114
  root: (0, _reactUtilities.getNativeElementProps)(as, {
216
115
  tabIndex: -1,
217
116
  ...rest,
218
117
  id,
219
118
  ref,
220
- children: null,
221
119
  'aria-level': level,
222
- 'aria-expanded': isBranch ? open : undefined,
120
+ 'aria-expanded': itemType === 'branch' ? open : undefined,
223
121
  role: 'treeitem',
224
122
  onClick: handleClick,
225
123
  onKeyDown: handleKeyDown,
226
- onMouseOver: actions ? showActions : undefined,
227
- onFocus: actions ? showActions : undefined,
228
- onMouseOut: actions ? hideActions : undefined,
229
- onBlur: actions ? hideActions : undefined
230
- }),
231
- expandIcon: (0, _reactUtilities.resolveShorthand)(expandIcon, {
232
- required: isBranch,
233
- defaultProps: {
234
- children: /*#__PURE__*/ _react.createElement(_reactIcons.ChevronRight12Regular, {
235
- style: _useTreeItemStyles.expandIconInlineStyles[expandIconRotation]
236
- }),
237
- 'aria-hidden': true,
238
- ref: (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(expandIcon) ? expandIcon.ref : undefined, expandIconRef)
239
- }
240
- }),
241
- actions: (0, _reactUtilities.resolveShorthand)(actions, {
242
- defaultProps: {
243
- ref: (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(actions) ? actions.ref : undefined, actionsRef)
244
- }
124
+ onMouseOver: handleActionsVisible,
125
+ onFocus: handleActionsVisible,
126
+ onMouseOut: handleActionsInvisible,
127
+ onBlur: handleActionsInvisible
245
128
  })
246
129
  };
247
130
  } //# sourceMappingURL=useTreeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/useTreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, isResolvedShorthand, resolveShorthand, useId } from '@fluentui/react-utilities';\nimport { ChevronRight12Regular } from '@fluentui/react-icons';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { expandIconInlineStyles } from './useTreeItemStyles';\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Enter, Home } from '@fluentui/keyboard-keys';\nimport { useMergedRefs } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport { useTreeContext_unstable } from '../../contexts/index';\nimport { treeDataTypes } from '../../utils/tokens';\n/**\n * Create the state required to render TreeItem.\n *\n * The returned state can be modified with hooks such as useTreeItemStyles_unstable,\n * before being passed to renderTreeItem_unstable.\n *\n * @param props - props from this instance of TreeItem\n * @param ref - reference to root HTMLElement of TreeItem\n */\nexport function useTreeItem_unstable(props, ref) {\n const [children, subtreeChildren] = React.Children.toArray(props.children);\n const contextLevel = useTreeContext_unstable(ctx => ctx.level);\n const id = useId('fui-TreeItem-', props.id);\n const {\n content,\n subtree,\n expandIcon,\n leaf: isLeaf = subtreeChildren === undefined,\n actions,\n as = 'div',\n onClick,\n onKeyDown,\n ['aria-level']: level = contextLevel,\n value = id,\n ...rest\n } = props;\n const requestOpenChange = useTreeContext_unstable(ctx => ctx.requestOpenChange);\n const requestNavigation = useTreeContext_unstable(ctx => ctx.requestNavigation);\n const isBranch = !isLeaf;\n const open = useTreeContext_unstable(ctx => isBranch && ctx.openItems.has(value));\n const {\n dir,\n targetDocument\n } = useFluent_unstable();\n const expandIconRotation = open ? 90 : dir !== 'rtl' ? 0 : 180;\n const actionsRef = React.useRef(null);\n const expandIconRef = React.useRef(null);\n const subtreeRef = React.useRef(null);\n const handleArrowRight = event => {\n if (!open && isBranch) {\n return requestOpenChange({\n event,\n value,\n open: true,\n type: treeDataTypes.arrowRight,\n target: event.currentTarget\n });\n }\n if (open && isBranch) {\n return requestNavigation({\n event,\n value,\n type: treeDataTypes.arrowRight,\n target: event.currentTarget\n });\n }\n };\n const handleArrowLeft = event => {\n if (open && isBranch) {\n return requestOpenChange({\n event,\n value,\n open: false,\n type: treeDataTypes.arrowLeft,\n target: event.currentTarget\n });\n }\n if (!open && level > 1) {\n return requestNavigation({\n event,\n value,\n target: event.currentTarget,\n type: treeDataTypes.arrowLeft\n });\n }\n };\n const handleEnter = event => {\n requestOpenChange({\n event,\n value,\n open: isLeaf ? open : !open,\n type: treeDataTypes.enter,\n target: event.currentTarget\n });\n };\n const handleClick = useEventCallback(event => {\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n const isEventFromActions = actionsRef.current && elementContains(actionsRef.current, event.target);\n if (isEventFromActions) {\n return;\n }\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (isEventFromSubtree) {\n return;\n }\n const isFromExpandIcon = expandIconRef.current && elementContains(expandIconRef.current, event.target);\n requestOpenChange({\n event,\n value,\n open: isLeaf ? open : !open,\n type: isFromExpandIcon ? treeDataTypes.expandIconClick : treeDataTypes.click,\n target: event.currentTarget\n });\n requestNavigation({\n event,\n value,\n target: event.currentTarget,\n type: treeDataTypes.click\n });\n });\n const handleKeyDown = useEventCallback(event => {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n if (event.currentTarget !== event.target) {\n return;\n }\n if (event.isDefaultPrevented()) {\n return;\n }\n switch (event.key) {\n case Enter:\n return handleEnter(event);\n case ArrowRight:\n return handleArrowRight(event);\n case ArrowLeft:\n return handleArrowLeft(event);\n case End:\n return requestNavigation({\n event,\n value,\n type: treeDataTypes.end,\n target: event.currentTarget\n });\n case Home:\n return requestNavigation({\n event,\n value,\n type: treeDataTypes.home,\n target: event.currentTarget\n });\n case ArrowUp:\n return requestNavigation({\n event,\n value,\n type: treeDataTypes.arrowUp,\n target: event.currentTarget\n });\n case ArrowDown:\n return requestNavigation({\n event,\n value,\n type: treeDataTypes.arrowDown,\n target: event.currentTarget\n });\n }\n const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;\n if (isTypeAheadCharacter) {\n return requestNavigation({\n event,\n value,\n target: event.currentTarget,\n type: treeDataTypes.typeAhead\n });\n }\n });\n const [isActionsVisible, setActionsVisible] = React.useState(false);\n const showActions = useEventCallback(event => {\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (!isEventFromSubtree) {\n setActionsVisible(true);\n }\n });\n const hideActions = useEventCallback(event => {\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (!isEventFromSubtree) {\n setActionsVisible(false);\n }\n });\n // Listens to focusout event on the document to ensure treeitem actions visibility on portal scenarios\n // TODO: find a better way to ensure this behavior\n React.useEffect(() => {\n if (actionsRef.current) {\n const handleFocusOut = event => {\n setActionsVisible(elementContains(actionsRef.current, event.relatedTarget));\n };\n targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('focusout', handleFocusOut, {\n passive: true\n });\n return () => {\n targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('focusout', handleFocusOut);\n };\n }\n }, [targetDocument]);\n return {\n isLeaf,\n open,\n level,\n buttonSize: 'small',\n isActionsVisible: actions ? isActionsVisible : false,\n components: {\n content: 'div',\n root: 'div',\n expandIcon: 'span',\n actions: 'span',\n subtree: 'span'\n },\n subtree: resolveShorthand(subtree, {\n required: Boolean(subtreeChildren),\n defaultProps: {\n children: subtreeChildren,\n ref: useMergedRefs(subtreeRef, isResolvedShorthand(subtree) ? subtree.ref : undefined)\n }\n }),\n content: resolveShorthand(content, {\n required: true,\n defaultProps: {\n children\n }\n }),\n root: getNativeElementProps(as, {\n tabIndex: -1,\n ...rest,\n id,\n ref,\n children: null,\n 'aria-level': level,\n 'aria-expanded': isBranch ? open : undefined,\n role: 'treeitem',\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onMouseOver: actions ? showActions : undefined,\n onFocus: actions ? showActions : undefined,\n onMouseOut: actions ? hideActions : undefined,\n onBlur: actions ? hideActions : undefined\n }),\n expandIcon: resolveShorthand(expandIcon, {\n required: isBranch,\n defaultProps: {\n children: /*#__PURE__*/React.createElement(ChevronRight12Regular, {\n style: expandIconInlineStyles[expandIconRotation]\n }),\n 'aria-hidden': true,\n ref: useMergedRefs(isResolvedShorthand(expandIcon) ? expandIcon.ref : undefined, expandIconRef)\n }\n }),\n actions: resolveShorthand(actions, {\n defaultProps: {\n ref: useMergedRefs(isResolvedShorthand(actions) ? actions.ref : undefined, actionsRef)\n }\n })\n };\n}\n//# sourceMappingURL=useTreeItem.js.map"],"names":["useTreeItem_unstable","props","ref","children","subtreeChildren","React","Children","toArray","contextLevel","useTreeContext_unstable","ctx","level","id","useId","content","subtree","expandIcon","leaf","isLeaf","undefined","actions","as","onClick","onKeyDown","value","rest","requestOpenChange","requestNavigation","isBranch","open","openItems","has","dir","targetDocument","useFluent_unstable","expandIconRotation","actionsRef","useRef","expandIconRef","subtreeRef","handleArrowRight","event","type","treeDataTypes","arrowRight","target","currentTarget","handleArrowLeft","arrowLeft","handleEnter","enter","handleClick","useEventCallback","isEventFromActions","current","elementContains","isEventFromSubtree","isFromExpandIcon","expandIconClick","click","handleKeyDown","isDefaultPrevented","key","Enter","ArrowRight","ArrowLeft","End","end","Home","home","ArrowUp","arrowUp","ArrowDown","arrowDown","isTypeAheadCharacter","length","match","altKey","ctrlKey","metaKey","typeAhead","isActionsVisible","setActionsVisible","useState","showActions","hideActions","useEffect","handleFocusOut","relatedTarget","addEventListener","passive","removeEventListener","buttonSize","components","root","resolveShorthand","required","Boolean","defaultProps","useMergedRefs","isResolvedShorthand","getNativeElementProps","tabIndex","role","onMouseOver","onFocus","onMouseOut","onBlur","createElement","ChevronRight12Regular","style","expandIconInlineStyles"],"mappings":";;;;+BAoBgBA;;aAAAA;;;6DApBO;gCAC6D;4BAC9C;qCACH;mCAEI;8BACqC;6BAE5C;uBACQ;wBACV;AAUvB,SAASA,qBAAqBC,KAAK,EAAEC,GAAG,EAAE;IAC/C,MAAM,CAACC,UAAUC,gBAAgB,GAAGC,OAAMC,QAAQ,CAACC,OAAO,CAACN,MAAME,QAAQ;IACzE,MAAMK,eAAeC,IAAAA,8BAAuB,EAACC,CAAAA,MAAOA,IAAIC,KAAK;IAC7D,MAAMC,KAAKC,IAAAA,qBAAK,EAAC,iBAAiBZ,MAAMW,EAAE;IAC1C,MAAM,EACJE,QAAO,EACPC,QAAO,EACPC,WAAU,EACVC,MAAMC,SAASd,oBAAoBe,SAAS,CAAA,EAC5CC,QAAO,EACPC,IAAK,MAAK,EACVC,QAAO,EACPC,UAAS,EACT,CAAC,aAAa,EAAEZ,QAAQH,YAAY,CAAA,EACpCgB,OAAQZ,GAAE,EACV,GAAGa,MACJ,GAAGxB;IACJ,MAAMyB,oBAAoBjB,IAAAA,8BAAuB,EAACC,CAAAA,MAAOA,IAAIgB,iBAAiB;IAC9E,MAAMC,oBAAoBlB,IAAAA,8BAAuB,EAACC,CAAAA,MAAOA,IAAIiB,iBAAiB;IAC9E,MAAMC,WAAW,CAACV;IAClB,MAAMW,OAAOpB,IAAAA,8BAAuB,EAACC,CAAAA,MAAOkB,YAAYlB,IAAIoB,SAAS,CAACC,GAAG,CAACP;IAC1E,MAAM,EACJQ,IAAG,EACHC,eAAc,EACf,GAAGC,IAAAA,uCAAkB;IACtB,MAAMC,qBAAqBN,OAAO,KAAKG,QAAQ,QAAQ,IAAI,GAAG;IAC9D,MAAMI,aAAa/B,OAAMgC,MAAM,CAAC,IAAI;IACpC,MAAMC,gBAAgBjC,OAAMgC,MAAM,CAAC,IAAI;IACvC,MAAME,aAAalC,OAAMgC,MAAM,CAAC,IAAI;IACpC,MAAMG,mBAAmBC,CAAAA,QAAS;QAChC,IAAI,CAACZ,QAAQD,UAAU;YACrB,OAAOF,kBAAkB;gBACvBe;gBACAjB;gBACAK,MAAM,IAAI;gBACVa,MAAMC,qBAAa,CAACC,UAAU;gBAC9BC,QAAQJ,MAAMK,aAAa;YAC7B;QACF,CAAC;QACD,IAAIjB,QAAQD,UAAU;YACpB,OAAOD,kBAAkB;gBACvBc;gBACAjB;gBACAkB,MAAMC,qBAAa,CAACC,UAAU;gBAC9BC,QAAQJ,MAAMK,aAAa;YAC7B;QACF,CAAC;IACH;IACA,MAAMC,kBAAkBN,CAAAA,QAAS;QAC/B,IAAIZ,QAAQD,UAAU;YACpB,OAAOF,kBAAkB;gBACvBe;gBACAjB;gBACAK,MAAM,KAAK;gBACXa,MAAMC,qBAAa,CAACK,SAAS;gBAC7BH,QAAQJ,MAAMK,aAAa;YAC7B;QACF,CAAC;QACD,IAAI,CAACjB,QAAQlB,QAAQ,GAAG;YACtB,OAAOgB,kBAAkB;gBACvBc;gBACAjB;gBACAqB,QAAQJ,MAAMK,aAAa;gBAC3BJ,MAAMC,qBAAa,CAACK,SAAS;YAC/B;QACF,CAAC;IACH;IACA,MAAMC,cAAcR,CAAAA,QAAS;QAC3Bf,kBAAkB;YAChBe;YACAjB;YACAK,MAAMX,SAASW,OAAO,CAACA,IAAI;YAC3Ba,MAAMC,qBAAa,CAACO,KAAK;YACzBL,QAAQJ,MAAMK,aAAa;QAC7B;IACF;IACA,MAAMK,cAAcC,IAAAA,gCAAgB,EAACX,CAAAA,QAAS;QAC5CnB,YAAY,IAAI,IAAIA,YAAY,KAAK,IAAI,KAAK,IAAIA,QAAQmB,MAAM;QAChE,MAAMY,qBAAqBjB,WAAWkB,OAAO,IAAIC,IAAAA,4BAAe,EAACnB,WAAWkB,OAAO,EAAEb,MAAMI,MAAM;QACjG,IAAIQ,oBAAoB;YACtB;QACF,CAAC;QACD,MAAMG,qBAAqBjB,WAAWe,OAAO,IAAIC,IAAAA,4BAAe,EAAChB,WAAWe,OAAO,EAAEb,MAAMI,MAAM;QACjG,IAAIW,oBAAoB;YACtB;QACF,CAAC;QACD,MAAMC,mBAAmBnB,cAAcgB,OAAO,IAAIC,IAAAA,4BAAe,EAACjB,cAAcgB,OAAO,EAAEb,MAAMI,MAAM;QACrGnB,kBAAkB;YAChBe;YACAjB;YACAK,MAAMX,SAASW,OAAO,CAACA,IAAI;YAC3Ba,MAAMe,mBAAmBd,qBAAa,CAACe,eAAe,GAAGf,qBAAa,CAACgB,KAAK;YAC5Ed,QAAQJ,MAAMK,aAAa;QAC7B;QACAnB,kBAAkB;YAChBc;YACAjB;YACAqB,QAAQJ,MAAMK,aAAa;YAC3BJ,MAAMC,qBAAa,CAACgB,KAAK;QAC3B;IACF;IACA,MAAMC,gBAAgBR,IAAAA,gCAAgB,EAACX,CAAAA,QAAS;QAC9ClB,cAAc,IAAI,IAAIA,cAAc,KAAK,IAAI,KAAK,IAAIA,UAAUkB,MAAM;QACtE,IAAIA,MAAMK,aAAa,KAAKL,MAAMI,MAAM,EAAE;YACxC;QACF,CAAC;QACD,IAAIJ,MAAMoB,kBAAkB,IAAI;YAC9B;QACF,CAAC;QACD,OAAQpB,MAAMqB,GAAG;YACf,KAAKC,mBAAK;gBACR,OAAOd,YAAYR;YACrB,KAAKuB,wBAAU;gBACb,OAAOxB,iBAAiBC;YAC1B,KAAKwB,uBAAS;gBACZ,OAAOlB,gBAAgBN;YACzB,KAAKyB,iBAAG;gBACN,OAAOvC,kBAAkB;oBACvBc;oBACAjB;oBACAkB,MAAMC,qBAAa,CAACwB,GAAG;oBACvBtB,QAAQJ,MAAMK,aAAa;gBAC7B;YACF,KAAKsB,kBAAI;gBACP,OAAOzC,kBAAkB;oBACvBc;oBACAjB;oBACAkB,MAAMC,qBAAa,CAAC0B,IAAI;oBACxBxB,QAAQJ,MAAMK,aAAa;gBAC7B;YACF,KAAKwB,qBAAO;gBACV,OAAO3C,kBAAkB;oBACvBc;oBACAjB;oBACAkB,MAAMC,qBAAa,CAAC4B,OAAO;oBAC3B1B,QAAQJ,MAAMK,aAAa;gBAC7B;YACF,KAAK0B,uBAAS;gBACZ,OAAO7C,kBAAkB;oBACvBc;oBACAjB;oBACAkB,MAAMC,qBAAa,CAAC8B,SAAS;oBAC7B5B,QAAQJ,MAAMK,aAAa;gBAC7B;QACJ;QACA,MAAM4B,uBAAuBjC,MAAMqB,GAAG,CAACa,MAAM,KAAK,KAAKlC,MAAMqB,GAAG,CAACc,KAAK,CAAC,SAAS,CAACnC,MAAMoC,MAAM,IAAI,CAACpC,MAAMqC,OAAO,IAAI,CAACrC,MAAMsC,OAAO;QACjI,IAAIL,sBAAsB;YACxB,OAAO/C,kBAAkB;gBACvBc;gBACAjB;gBACAqB,QAAQJ,MAAMK,aAAa;gBAC3BJ,MAAMC,qBAAa,CAACqC,SAAS;YAC/B;QACF,CAAC;IACH;IACA,MAAM,CAACC,kBAAkBC,kBAAkB,GAAG7E,OAAM8E,QAAQ,CAAC,KAAK;IAClE,MAAMC,cAAchC,IAAAA,gCAAgB,EAACX,CAAAA,QAAS;QAC5C,MAAMe,qBAAqBjB,WAAWe,OAAO,IAAIC,IAAAA,4BAAe,EAAChB,WAAWe,OAAO,EAAEb,MAAMI,MAAM;QACjG,IAAI,CAACW,oBAAoB;YACvB0B,kBAAkB,IAAI;QACxB,CAAC;IACH;IACA,MAAMG,cAAcjC,IAAAA,gCAAgB,EAACX,CAAAA,QAAS;QAC5C,MAAMe,qBAAqBjB,WAAWe,OAAO,IAAIC,IAAAA,4BAAe,EAAChB,WAAWe,OAAO,EAAEb,MAAMI,MAAM;QACjG,IAAI,CAACW,oBAAoB;YACvB0B,kBAAkB,KAAK;QACzB,CAAC;IACH;IACA,sGAAsG;IACtG,kDAAkD;IAClD7E,OAAMiF,SAAS,CAAC,IAAM;QACpB,IAAIlD,WAAWkB,OAAO,EAAE;YACtB,MAAMiC,iBAAiB9C,CAAAA,QAAS;gBAC9ByC,kBAAkB3B,IAAAA,4BAAe,EAACnB,WAAWkB,OAAO,EAAEb,MAAM+C,aAAa;YAC3E;YACAvD,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAewD,gBAAgB,CAAC,YAAYF,gBAAgB;gBAC1HG,SAAS,IAAI;YACf,EAAE;YACF,OAAO,IAAM;gBACXzD,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAe0D,mBAAmB,CAAC,YAAYJ,eAAe;YAChI;QACF,CAAC;IACH,GAAG;QAACtD;KAAe;IACnB,OAAO;QACLf;QACAW;QACAlB;QACAiF,YAAY;QACZX,kBAAkB7D,UAAU6D,mBAAmB,KAAK;QACpDY,YAAY;YACV/E,SAAS;YACTgF,MAAM;YACN9E,YAAY;YACZI,SAAS;YACTL,SAAS;QACX;QACAA,SAASgF,IAAAA,gCAAgB,EAAChF,SAAS;YACjCiF,UAAUC,QAAQ7F;YAClB8F,cAAc;gBACZ/F,UAAUC;gBACVF,KAAKiG,IAAAA,6BAAa,EAAC5D,YAAY6D,IAAAA,mCAAmB,EAACrF,WAAWA,QAAQb,GAAG,GAAGiB,SAAS;YACvF;QACF;QACAL,SAASiF,IAAAA,gCAAgB,EAACjF,SAAS;YACjCkF,UAAU,IAAI;YACdE,cAAc;gBACZ/F;YACF;QACF;QACA2F,MAAMO,IAAAA,qCAAqB,EAAChF,IAAI;YAC9BiF,UAAU,CAAC;YACX,GAAG7E,IAAI;YACPb;YACAV;YACAC,UAAU,IAAI;YACd,cAAcQ;YACd,iBAAiBiB,WAAWC,OAAOV,SAAS;YAC5CoF,MAAM;YACNjF,SAAS6B;YACT5B,WAAWqC;YACX4C,aAAapF,UAAUgE,cAAcjE,SAAS;YAC9CsF,SAASrF,UAAUgE,cAAcjE,SAAS;YAC1CuF,YAAYtF,UAAUiE,cAAclE,SAAS;YAC7CwF,QAAQvF,UAAUiE,cAAclE,SAAS;QAC3C;QACAH,YAAY+E,IAAAA,gCAAgB,EAAC/E,YAAY;YACvCgF,UAAUpE;YACVsE,cAAc;gBACZ/F,UAAU,WAAW,GAAEE,OAAMuG,aAAa,CAACC,iCAAqB,EAAE;oBAChEC,OAAOC,yCAAsB,CAAC5E,mBAAmB;gBACnD;gBACA,eAAe,IAAI;gBACnBjC,KAAKiG,IAAAA,6BAAa,EAACC,IAAAA,mCAAmB,EAACpF,cAAcA,WAAWd,GAAG,GAAGiB,SAAS,EAAEmB;YACnF;QACF;QACAlB,SAAS2E,IAAAA,gCAAgB,EAAC3E,SAAS;YACjC8E,cAAc;gBACZhG,KAAKiG,IAAAA,6BAAa,EAACC,IAAAA,mCAAmB,EAAChF,WAAWA,QAAQlB,GAAG,GAAGiB,SAAS,EAAEiB;YAC7E;QACF;IACF;AACF,EACA,uCAAuC"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/useTreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useId, useMergedRefs } from '@fluentui/react-utilities';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport { useTreeContext_unstable } from '../../contexts/index';\nimport { treeDataTypes } from '../../utils/tokens';\n/**\n * Create the state required to render TreeItem.\n *\n * The returned state can be modified with hooks such as useTreeItemStyles_unstable,\n * before being passed to renderTreeItem_unstable.\n *\n * @param props - props from this instance of TreeItem\n * @param ref - reference to root HTMLElement of TreeItem\n */\nexport function useTreeItem_unstable(props, ref) {\n const contextLevel = useTreeContext_unstable(ctx => ctx.level);\n const id = useId('fui-TreeItem-', props.id);\n const {\n onClick,\n onKeyDown,\n as = 'div',\n value = id,\n itemType = 'leaf',\n 'aria-level': level = contextLevel,\n ...rest\n } = props;\n const requestTreeResponse = useTreeContext_unstable(ctx => ctx.requestTreeResponse);\n const [isActionsVisible, setActionsVisible] = React.useState(false);\n const [isAsideVisible, setAsideVisible] = React.useState(true);\n const handleActionsRef = actions => {\n setAsideVisible(actions === null);\n };\n const open = useTreeContext_unstable(ctx => ctx.openItems.has(value));\n const actionsRef = React.useRef(null);\n const expandIconRef = React.useRef(null);\n const layoutRef = React.useRef(null);\n const subtreeRef = React.useRef(null);\n const handleClick = useEventCallback(event => {\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n if (event.isDefaultPrevented()) {\n return;\n }\n const isEventFromActions = actionsRef.current && elementContains(actionsRef.current, event.target);\n if (isEventFromActions) {\n return;\n }\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (isEventFromSubtree) {\n return;\n }\n const isFromExpandIcon = expandIconRef.current && elementContains(expandIconRef.current, event.target);\n requestTreeResponse({\n event,\n itemType,\n value,\n type: isFromExpandIcon ? treeDataTypes.ExpandIconClick : treeDataTypes.Click\n });\n });\n const handleKeyDown = useEventCallback(event => {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.currentTarget !== event.target) {\n return;\n }\n switch (event.key) {\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.Enter:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowLeft:\n case treeDataTypes.ArrowRight:\n return requestTreeResponse({\n event,\n itemType,\n value,\n type: event.key\n });\n }\n const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;\n if (isTypeAheadCharacter) {\n requestTreeResponse({\n event,\n itemType,\n value,\n type: treeDataTypes.TypeAhead\n });\n }\n });\n const handleActionsVisible = useEventCallback(event => {\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n setActionsVisible(true);\n }\n });\n const handleActionsInvisible = useEventCallback(event => {\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n const isRelatedTargetFromActions = Boolean(actionsRef.current && elementContains(actionsRef.current, event.relatedTarget));\n if (isRelatedTargetFromActions) {\n return setActionsVisible(true);\n }\n if (!isTargetFromSubtree) {\n return setActionsVisible(false);\n }\n });\n return {\n value,\n open,\n subtreeRef,\n actionsRef: useMergedRefs(actionsRef, handleActionsRef),\n expandIconRef,\n layoutRef,\n itemType,\n isActionsVisible,\n isAsideVisible,\n level,\n components: {\n root: 'div'\n },\n root: getNativeElementProps(as, {\n tabIndex: -1,\n ...rest,\n id,\n ref,\n 'aria-level': level,\n 'aria-expanded': itemType === 'branch' ? open : undefined,\n role: 'treeitem',\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onMouseOver: handleActionsVisible,\n onFocus: handleActionsVisible,\n onMouseOut: handleActionsInvisible,\n onBlur: handleActionsInvisible\n })\n };\n}\n//# sourceMappingURL=useTreeItem.js.map"],"names":["useTreeItem_unstable","props","ref","contextLevel","useTreeContext_unstable","ctx","level","id","useId","onClick","onKeyDown","as","value","itemType","rest","requestTreeResponse","isActionsVisible","setActionsVisible","React","useState","isAsideVisible","setAsideVisible","handleActionsRef","actions","open","openItems","has","actionsRef","useRef","expandIconRef","layoutRef","subtreeRef","handleClick","useEventCallback","event","isDefaultPrevented","isEventFromActions","current","elementContains","target","isEventFromSubtree","isFromExpandIcon","type","treeDataTypes","ExpandIconClick","Click","handleKeyDown","currentTarget","key","End","Home","Enter","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","isTypeAheadCharacter","length","match","altKey","ctrlKey","metaKey","TypeAhead","handleActionsVisible","isTargetFromSubtree","Boolean","handleActionsInvisible","isRelatedTargetFromActions","relatedTarget","useMergedRefs","components","root","getNativeElementProps","tabIndex","undefined","role","onMouseOver","onFocus","onMouseOut","onBlur"],"mappings":"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"}
@@ -6,23 +6,24 @@ Object.defineProperty(exports, "useTreeItemContextValues_unstable", {
6
6
  enumerable: true,
7
7
  get: ()=>useTreeItemContextValues_unstable
8
8
  });
9
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
9
  function useTreeItemContextValues_unstable(state) {
12
- const { buttonSize , isActionsVisible } = state;
13
- const treeItem = _react.useMemo(()=>({
14
- isActionsVisible
15
- }), [
16
- isActionsVisible
17
- ]);
18
- const button = _react.useMemo(()=>({
19
- size: buttonSize
20
- }), [
21
- buttonSize
22
- ]);
10
+ const { value , isActionsVisible , isAsideVisible , actionsRef , itemType , layoutRef , subtreeRef , expandIconRef , open } = state;
11
+ /**
12
+ * This context is created with "@fluentui/react-context-selector",
13
+ * there is no sense to memoize it
14
+ */ const treeItem = {
15
+ isActionsVisible,
16
+ isAsideVisible,
17
+ value,
18
+ actionsRef,
19
+ itemType,
20
+ layoutRef,
21
+ subtreeRef,
22
+ expandIconRef,
23
+ open
24
+ };
23
25
  return {
24
- treeItem,
25
- button
26
+ treeItem
26
27
  };
27
28
  } //# sourceMappingURL=useTreeItemContextValues.js.map
28
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/TreeItem/useTreeItemContextValues.js"],"sourcesContent":["import * as React from 'react';\nexport function useTreeItemContextValues_unstable(state) {\n const {\n buttonSize,\n isActionsVisible\n } = state;\n const treeItem = React.useMemo(() => ({\n isActionsVisible\n }), [isActionsVisible]);\n const button = React.useMemo(() => ({\n size: buttonSize\n }), [buttonSize]);\n return {\n treeItem,\n button\n };\n}\n//# sourceMappingURL=useTreeItemContextValues.js.map"],"names":["useTreeItemContextValues_unstable","state","buttonSize","isActionsVisible","treeItem","React","useMemo","button","size"],"mappings":";;;;+BACgBA;;aAAAA;;;6DADO;AAChB,SAASA,kCAAkCC,KAAK,EAAE;IACvD,MAAM,EACJC,WAAU,EACVC,iBAAgB,EACjB,GAAGF;IACJ,MAAMG,WAAWC,OAAMC,OAAO,CAAC,IAAO,CAAA;YACpCH;QACF,CAAA,GAAI;QAACA;KAAiB;IACtB,MAAMI,SAASF,OAAMC,OAAO,CAAC,IAAO,CAAA;YAClCE,MAAMN;QACR,CAAA,GAAI;QAACA;KAAW;IAChB,OAAO;QACLE;QACAG;IACF;AACF,EACA,oDAAoD"}
1
+ {"version":3,"sources":["../../../lib/components/TreeItem/useTreeItemContextValues.js"],"sourcesContent":["export function useTreeItemContextValues_unstable(state) {\n const {\n value,\n isActionsVisible,\n isAsideVisible,\n actionsRef,\n itemType,\n layoutRef,\n subtreeRef,\n expandIconRef,\n open\n } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */\n const treeItem = {\n isActionsVisible,\n isAsideVisible,\n value,\n actionsRef,\n itemType,\n layoutRef,\n subtreeRef,\n expandIconRef,\n open\n };\n return {\n treeItem\n };\n}\n//# sourceMappingURL=useTreeItemContextValues.js.map"],"names":["useTreeItemContextValues_unstable","state","value","isActionsVisible","isAsideVisible","actionsRef","itemType","layoutRef","subtreeRef","expandIconRef","open","treeItem"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,kCAAkCC,KAAK,EAAE;IACvD,MAAM,EACJC,MAAK,EACLC,iBAAgB,EAChBC,eAAc,EACdC,WAAU,EACVC,SAAQ,EACRC,UAAS,EACTC,WAAU,EACVC,cAAa,EACbC,KAAI,EACL,GAAGT;IACJ;;;EAGA,GACA,MAAMU,WAAW;QACfR;QACAC;QACAF;QACAG;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;IACA,OAAO;QACLC;IACF;AACF,EACA,oDAAoD"}