@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.
- package/CHANGELOG.json +147 -4
- package/CHANGELOG.md +34 -5
- package/dist/index.d.ts +142 -81
- package/lib/TreeItemAside.js +2 -0
- package/lib/TreeItemAside.js.map +1 -0
- package/lib/components/Tree/Tree.js +1 -1
- package/lib/components/Tree/Tree.js.map +1 -1
- package/lib/components/Tree/Tree.types.js.map +1 -1
- package/lib/components/Tree/index.js +1 -1
- package/lib/components/Tree/index.js.map +1 -1
- package/lib/components/Tree/renderTree.js +1 -1
- package/lib/components/Tree/renderTree.js.map +1 -1
- package/lib/components/Tree/useRootTree.js +160 -0
- package/lib/components/Tree/useRootTree.js.map +1 -0
- package/lib/components/Tree/useSubtree.js +40 -0
- package/lib/components/Tree/useSubtree.js.map +1 -0
- package/lib/components/Tree/useTree.js +2 -95
- package/lib/components/Tree/useTree.js.map +1 -1
- package/lib/components/Tree/useTreeContextValues.js +2 -4
- package/lib/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib/components/Tree/useTreeStyles.styles.js +30 -0
- package/lib/components/Tree/useTreeStyles.styles.js.map +1 -0
- package/lib/components/TreeItem/TreeItem.js +1 -1
- package/lib/components/TreeItem/TreeItem.js.map +1 -1
- package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib/components/TreeItem/index.js +1 -1
- package/lib/components/TreeItem/index.js.map +1 -1
- package/lib/components/TreeItem/renderTreeItem.js +2 -5
- package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItem.js +58 -181
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +25 -11
- package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemStyles.styles.js +102 -0
- package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
- package/lib/components/TreeItemAside/TreeItemAside.js +15 -0
- package/lib/components/TreeItemAside/TreeItemAside.js.map +1 -0
- package/lib/components/TreeItemAside/TreeItemAside.types.js +2 -0
- package/lib/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
- package/lib/components/TreeItemAside/index.js +6 -0
- package/lib/components/TreeItemAside/index.js.map +1 -0
- package/lib/components/TreeItemAside/renderTreeItemAside.js +19 -0
- package/lib/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
- package/lib/components/TreeItemAside/useTreeItemAside.js +35 -0
- package/lib/components/TreeItemAside/useTreeItemAside.js.map +1 -0
- package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js +47 -0
- package/lib/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
- package/lib/components/TreeItemChevron.js +27 -0
- package/lib/components/TreeItemChevron.js.map +1 -0
- package/lib/components/TreeItemLayout/TreeItemLayout.js +1 -1
- package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib/components/TreeItemLayout/index.js +1 -1
- package/lib/components/TreeItemLayout/index.js.map +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -4
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayout.js +16 -11
- package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +138 -0
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +1 -1
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/index.js +1 -1
- package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -5
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +16 -20
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +46 -18
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
- package/lib/contexts/treeContext.js +1 -2
- package/lib/contexts/treeContext.js.map +1 -1
- package/lib/contexts/treeItemContext.js +12 -4
- package/lib/contexts/treeItemContext.js.map +1 -1
- package/lib/hooks/useFlatTree.js +7 -7
- package/lib/hooks/useFlatTree.js.map +1 -1
- package/lib/hooks/useFlatTreeNavigation.js +8 -8
- package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
- package/lib/hooks/useNestedTreeNavigation.js +8 -8
- package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
- package/lib/hooks/useOpenItemsState.js +1 -1
- package/lib/hooks/useOpenItemsState.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/createFlatTreeItems.js +12 -10
- package/lib/utils/createFlatTreeItems.js.map +1 -1
- package/lib/utils/flattenTree.js +0 -29
- package/lib/utils/flattenTree.js.map +1 -1
- package/lib/utils/tokens.js +11 -11
- package/lib/utils/tokens.js.map +1 -1
- package/lib-commonjs/TreeItemAside.js +9 -0
- package/lib-commonjs/TreeItemAside.js.map +1 -0
- package/lib-commonjs/components/Tree/Tree.js +2 -2
- package/lib-commonjs/components/Tree/Tree.js.map +1 -1
- package/lib-commonjs/components/Tree/index.js +1 -1
- package/lib-commonjs/components/Tree/index.js.map +1 -1
- package/lib-commonjs/components/Tree/renderTree.js +1 -1
- package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useRootTree.js +151 -0
- package/lib-commonjs/components/Tree/useRootTree.js.map +1 -0
- package/lib-commonjs/components/Tree/useSubtree.js +41 -0
- package/lib-commonjs/components/Tree/useSubtree.js.map +1 -0
- package/lib-commonjs/components/Tree/useTree.js +4 -89
- package/lib-commonjs/components/Tree/useTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeContextValues.js +2 -3
- package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib-commonjs/components/Tree/{useTreeStyles.js → useTreeStyles.styles.js} +21 -4
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItem/TreeItem.js +2 -2
- package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/index.js +1 -1
- package/lib-commonjs/components/TreeItem/index.js.map +1 -1
- package/lib-commonjs/components/TreeItem/renderTreeItem.js +2 -5
- package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItem.js +55 -172
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +16 -15
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +208 -0
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.js +21 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js +7 -0
- package/lib-commonjs/components/TreeItemAside/TreeItemAside.types.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/index.js +13 -0
- package/lib-commonjs/components/TreeItemAside/index.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js +22 -0
- package/lib-commonjs/components/TreeItemAside/renderTreeItemAside.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js +33 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAside.js.map +1 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js +92 -0
- package/lib-commonjs/components/TreeItemAside/useTreeItemAsideStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemChevron.js +35 -0
- package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +2 -2
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/index.js +1 -1
- package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +1 -2
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +15 -10
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +223 -0
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +2 -2
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/index.js +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -3
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +14 -14
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/{useTreeItemPersonaLayoutStyles.js → useTreeItemPersonaLayoutStyles.styles.js} +82 -28
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
- package/lib-commonjs/contexts/treeContext.js +1 -2
- package/lib-commonjs/contexts/treeContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemContext.js +12 -4
- package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
- package/lib-commonjs/hooks/useFlatTree.js +7 -7
- package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
- package/lib-commonjs/hooks/useFlatTreeNavigation.js +8 -8
- package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
- package/lib-commonjs/hooks/useNestedTreeNavigation.js +8 -8
- package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
- package/lib-commonjs/hooks/useOpenItemsState.js +1 -3
- package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
- package/lib-commonjs/index.js +6 -0
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/createFlatTreeItems.js +12 -10
- package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -1
- package/lib-commonjs/utils/flattenTree.js +4 -37
- package/lib-commonjs/utils/flattenTree.js.map +1 -1
- package/lib-commonjs/utils/tokens.js +10 -10
- package/lib-commonjs/utils/tokens.js.map +1 -1
- package/package.json +15 -14
- package/.swcrc +0 -30
- package/lib/components/Tree/useTreeStyles.js +0 -20
- package/lib/components/Tree/useTreeStyles.js.map +0 -1
- package/lib/components/TreeItem/useTreeItemStyles.js +0 -203
- package/lib/components/TreeItem/useTreeItemStyles.js.map +0 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -98
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
- package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -375
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -143
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
- 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 ,
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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;
|
|
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
|
-
},
|
|
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';\
|
|
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 {
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
53
|
+
if (event.isDefaultPrevented()) {
|
|
108
54
|
return;
|
|
109
55
|
}
|
|
110
|
-
if (event.
|
|
56
|
+
if (event.currentTarget !== event.target) {
|
|
111
57
|
return;
|
|
112
58
|
}
|
|
113
59
|
switch(event.key){
|
|
114
|
-
case
|
|
115
|
-
|
|
116
|
-
case
|
|
117
|
-
|
|
118
|
-
case
|
|
119
|
-
|
|
120
|
-
case
|
|
121
|
-
return
|
|
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:
|
|
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
|
-
|
|
76
|
+
requestTreeResponse({
|
|
152
77
|
event,
|
|
78
|
+
itemType,
|
|
153
79
|
value,
|
|
154
|
-
|
|
155
|
-
type: _tokens.treeDataTypes.typeAhead
|
|
80
|
+
type: _tokens.treeDataTypes.TypeAhead
|
|
156
81
|
});
|
|
157
82
|
}
|
|
158
83
|
});
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
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
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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':
|
|
120
|
+
'aria-expanded': itemType === 'branch' ? open : undefined,
|
|
223
121
|
role: 'treeitem',
|
|
224
122
|
onClick: handleClick,
|
|
225
123
|
onKeyDown: handleKeyDown,
|
|
226
|
-
onMouseOver:
|
|
227
|
-
onFocus:
|
|
228
|
-
onMouseOut:
|
|
229
|
-
onBlur:
|
|
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":"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"}
|
|
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 {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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":["
|
|
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"}
|