@fluentui/react-tree 9.0.0-beta.25 → 9.0.0-beta.27
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 +136 -1
- package/CHANGELOG.md +35 -2
- package/dist/index.d.ts +261 -83
- package/lib/FlatTree.js +1 -0
- package/lib/FlatTree.js.map +1 -0
- package/lib/components/FlatTree/FlatTree.js +13 -0
- package/lib/components/FlatTree/FlatTree.js.map +1 -0
- package/lib/components/FlatTree/FlatTree.types.js +1 -0
- package/lib/components/FlatTree/FlatTree.types.js.map +1 -0
- package/lib/components/FlatTree/index.js +6 -0
- package/lib/components/FlatTree/index.js.map +1 -0
- package/lib/components/FlatTree/useFlatControllableCheckedItems.js +63 -0
- package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
- package/lib/components/FlatTree/useFlatTree.js +3 -0
- package/lib/components/FlatTree/useFlatTree.js.map +1 -0
- package/lib/{hooks → components/FlatTree}/useFlatTreeNavigation.js +12 -12
- package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
- package/lib/components/FlatTree/useFlatTreeStyles.styles.js +30 -0
- package/lib/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
- package/lib/{hooks/useFlatTree.js → components/FlatTree/useHeadlessFlatTree.js} +21 -16
- package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
- package/lib/components/Tree/Tree.js +4 -9
- 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 +2 -2
- package/lib/components/Tree/index.js.map +1 -1
- package/lib/components/Tree/renderTree.js.map +1 -1
- package/lib/components/Tree/useControllableCheckedItems.js +94 -0
- package/lib/components/Tree/useControllableCheckedItems.js.map +1 -0
- package/lib/components/Tree/useTree.js +38 -14
- package/lib/components/Tree/useTree.js.map +1 -1
- package/lib/components/Tree/useTreeContextValues.js +4 -2
- package/lib/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib/{hooks/useNestedTreeNavigation.js → components/Tree/useTreeNavigation.js} +6 -6
- package/lib/components/Tree/useTreeNavigation.js.map +1 -0
- package/lib/components/Tree/useTreeStyles.styles.js +2 -2
- package/lib/components/Tree/useTreeStyles.styles.js.map +1 -1
- package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib/components/TreeItem/renderTreeItem.js +2 -4
- package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItem.js +49 -51
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +8 -14
- package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayout.js +55 -8
- package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +15 -8
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +6 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +5 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
- package/lib/contexts/index.js +0 -1
- package/lib/contexts/index.js.map +1 -1
- package/lib/contexts/treeContext.js +3 -0
- package/lib/contexts/treeContext.js.map +1 -1
- package/lib/contexts/treeItemContext.js +5 -0
- package/lib/contexts/treeItemContext.js.map +1 -1
- package/lib/hooks/useControllableOpenItems.js +6 -3
- package/lib/hooks/useControllableOpenItems.js.map +1 -1
- package/lib/{components/Tree → hooks}/useRootTree.js +34 -25
- package/lib/hooks/useRootTree.js.map +1 -0
- package/lib/{components/Tree → hooks}/useSubtree.js +8 -4
- package/lib/hooks/useSubtree.js.map +1 -0
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/utils/ImmutableMap.js +41 -0
- package/lib/utils/ImmutableMap.js.map +1 -0
- package/lib/utils/ImmutableSet.js +7 -2
- package/lib/utils/ImmutableSet.js.map +1 -1
- package/lib/utils/createCheckedItems.js +18 -0
- package/lib/utils/createCheckedItems.js.map +1 -0
- package/lib/utils/createHeadlessTree.js +165 -0
- package/lib/utils/createHeadlessTree.js.map +1 -0
- package/lib/utils/createOpenItems.js +10 -0
- package/lib/utils/createOpenItems.js.map +1 -0
- package/lib/utils/flattenTree.js.map +1 -1
- package/lib/utils/tokens.js +2 -1
- package/lib/utils/tokens.js.map +1 -1
- package/lib-commonjs/FlatTree.js +6 -0
- package/lib-commonjs/FlatTree.js.map +1 -0
- package/lib-commonjs/components/FlatTree/FlatTree.js +20 -0
- package/lib-commonjs/components/FlatTree/FlatTree.js.map +1 -0
- package/lib-commonjs/components/FlatTree/FlatTree.types.js +4 -0
- package/lib-commonjs/components/FlatTree/FlatTree.types.js.map +1 -0
- package/lib-commonjs/components/FlatTree/index.js +21 -0
- package/lib-commonjs/components/FlatTree/index.js.map +1 -0
- package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js +78 -0
- package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
- package/lib-commonjs/components/FlatTree/useFlatTree.js +12 -0
- package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -0
- package/lib-commonjs/{hooks → components/FlatTree}/useFlatTreeNavigation.js +12 -12
- package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
- package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +53 -0
- package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
- package/lib-commonjs/{hooks/useFlatTree.js → components/FlatTree/useHeadlessFlatTree.js} +23 -18
- package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
- package/lib-commonjs/components/Tree/Tree.js +3 -3
- package/lib-commonjs/components/Tree/Tree.js.map +1 -1
- package/lib-commonjs/components/Tree/index.js +2 -2
- package/lib-commonjs/components/Tree/index.js.map +1 -1
- package/lib-commonjs/components/Tree/useControllableCheckedItems.js +103 -0
- package/lib-commonjs/components/Tree/useControllableCheckedItems.js.map +1 -0
- package/lib-commonjs/components/Tree/useTree.js +38 -6
- package/lib-commonjs/components/Tree/useTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeContextValues.js +4 -2
- package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib-commonjs/{hooks/useNestedTreeNavigation.js → components/Tree/useTreeNavigation.js} +8 -8
- package/lib-commonjs/components/Tree/useTreeNavigation.js.map +1 -0
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js +2 -2
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -1
- package/lib-commonjs/components/TreeItem/renderTreeItem.js +1 -3
- package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItem.js +48 -50
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +8 -15
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +55 -8
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +12 -8
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +6 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +5 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
- package/lib-commonjs/contexts/index.js +0 -1
- package/lib-commonjs/contexts/index.js.map +1 -1
- package/lib-commonjs/contexts/treeContext.js +3 -0
- package/lib-commonjs/contexts/treeContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemContext.js +5 -0
- package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
- package/lib-commonjs/hooks/useControllableOpenItems.js +3 -2
- package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -1
- package/lib-commonjs/{components/Tree → hooks}/useRootTree.js +31 -22
- package/lib-commonjs/hooks/useRootTree.js.map +1 -0
- package/lib-commonjs/{components/Tree → hooks}/useSubtree.js +12 -8
- package/lib-commonjs/hooks/useSubtree.js.map +1 -0
- package/lib-commonjs/index.js +10 -4
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/ImmutableMap.js +49 -0
- package/lib-commonjs/utils/ImmutableMap.js.map +1 -0
- package/lib-commonjs/utils/ImmutableSet.js +7 -2
- package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
- package/lib-commonjs/utils/createCheckedItems.js +26 -0
- package/lib-commonjs/utils/createCheckedItems.js.map +1 -0
- package/lib-commonjs/utils/createHeadlessTree.js +179 -0
- package/lib-commonjs/utils/createHeadlessTree.js.map +1 -0
- package/lib-commonjs/utils/createOpenItems.js +18 -0
- package/lib-commonjs/utils/createOpenItems.js.map +1 -0
- package/lib-commonjs/utils/tokens.js +2 -1
- package/lib-commonjs/utils/tokens.js.map +1 -1
- package/package.json +11 -9
- package/lib/components/Tree/useRootTree.js.map +0 -1
- package/lib/components/Tree/useSubtree.js.map +0 -1
- package/lib/contexts/treeItemSlotsContext.js +0 -9
- package/lib/contexts/treeItemSlotsContext.js.map +0 -1
- package/lib/hooks/index.js +0 -3
- package/lib/hooks/index.js.map +0 -1
- package/lib/hooks/useFlatTree.js.map +0 -1
- package/lib/hooks/useFlatTreeNavigation.js.map +0 -1
- package/lib/hooks/useNestedTreeNavigation.js.map +0 -1
- package/lib/utils/createFlatTreeItems.js +0 -113
- package/lib/utils/createFlatTreeItems.js.map +0 -1
- package/lib-commonjs/components/Tree/useRootTree.js.map +0 -1
- package/lib-commonjs/components/Tree/useSubtree.js.map +0 -1
- package/lib-commonjs/contexts/treeItemSlotsContext.js +0 -25
- package/lib-commonjs/contexts/treeItemSlotsContext.js.map +0 -1
- package/lib-commonjs/hooks/index.js +0 -8
- package/lib-commonjs/hooks/index.js.map +0 -1
- package/lib-commonjs/hooks/useFlatTree.js.map +0 -1
- package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +0 -1
- package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +0 -1
- package/lib-commonjs/utils/createFlatTreeItems.js +0 -127
- package/lib-commonjs/utils/createFlatTreeItems.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useFlatTreeNavigation.js"],"sourcesContent":["import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { nextTypeAheadElement } from '../../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { treeItemFilter } from '../../utils/treeItemFilter';\nimport { useHTMLElementWalkerRef } from '../../hooks/useHTMLElementWalker';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndexes';\nimport { dataTreeItemValueAttrName, getTreeItemValueFromElement } from '../../utils/getTreeItemValueFromElement';\nexport function useFlatTreeNavigation(virtualTree) {\n const { targetDocument } = useFluent_unstable();\n const [treeItemWalkerRef, treeItemWalkerRootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n function getNextElement(data) {\n if (!targetDocument || !treeItemWalkerRef.current) {\n return null;\n }\n const treeItemWalker = treeItemWalkerRef.current;\n switch(data.type){\n case treeDataTypes.Click:\n return data.target;\n case treeDataTypes.TypeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.ArrowLeft:\n return parentElement(virtualTree, data.target, treeItemWalker);\n case treeDataTypes.ArrowRight:\n treeItemWalker.currentElement = data.target;\n return firstChild(data.target, treeItemWalker);\n case treeDataTypes.End:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.lastChild();\n case treeDataTypes.Home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.ArrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.ArrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n }\n const navigate = useEventCallback((data)=>{\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n });\n return [\n navigate,\n useMergedRefs(treeItemWalkerRootRef, rovingRootRef)\n ];\n}\nfunction firstChild(target, treeWalker) {\n const nextElement = treeWalker.nextElement();\n if (!nextElement) {\n return null;\n }\n const nextElementAriaPosInSet = nextElement.getAttribute('aria-posinset');\n const nextElementAriaLevel = nextElement.getAttribute('aria-level');\n const targetAriaLevel = target.getAttribute('aria-level');\n if (nextElementAriaPosInSet === '1' && Number(nextElementAriaLevel) === Number(targetAriaLevel) + 1) {\n return nextElement;\n }\n return null;\n}\nfunction parentElement(virtualTreeItems, target, treeWalker) {\n const value = getTreeItemValueFromElement(target);\n if (value === null) {\n return null;\n }\n const virtualTreeItem = virtualTreeItems.get(value);\n if (virtualTreeItem === null || virtualTreeItem === void 0 ? void 0 : virtualTreeItem.parentValue) {\n return treeWalker.root.querySelector(`[${dataTreeItemValueAttrName}=\"${virtualTreeItem.parentValue}\"]`);\n }\n return null;\n}\n"],"names":["useFlatTreeNavigation","virtualTree","targetDocument","useFluent_unstable","treeItemWalkerRef","treeItemWalkerRootRef","useHTMLElementWalkerRef","treeItemFilter","rove","rovingRootRef","useRovingTabIndex","getNextElement","data","current","treeItemWalker","type","treeDataTypes","Click","target","TypeAhead","currentElement","nextTypeAheadElement","event","key","ArrowLeft","parentElement","ArrowRight","firstChild","End","root","lastChild","Home","ArrowDown","nextElement","ArrowUp","previousElement","navigate","useEventCallback","useMergedRefs","treeWalker","nextElementAriaPosInSet","getAttribute","nextElementAriaLevel","targetAriaLevel","Number","virtualTreeItems","value","getTreeItemValueFromElement","virtualTreeItem","get","parentValue","querySelector","dataTreeItemValueAttrName"],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
flatTreeClassNames: ()=>flatTreeClassNames,
|
|
13
|
+
useFlatTreeStyles_unstable: ()=>useFlatTreeStyles_unstable
|
|
14
|
+
});
|
|
15
|
+
const _react = require("@griffel/react");
|
|
16
|
+
const flatTreeClassNames = {
|
|
17
|
+
root: 'fui-FlatTree'
|
|
18
|
+
};
|
|
19
|
+
const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
|
|
20
|
+
root: {
|
|
21
|
+
mc9l5x: "f22iagw",
|
|
22
|
+
Beiy3e4: "f1vx9l62",
|
|
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"
|
|
33
|
+
}
|
|
34
|
+
}, {
|
|
35
|
+
d: [
|
|
36
|
+
".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
|
|
37
|
+
".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
|
|
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{-ms-grid-row:subtree;grid-row-start:subtree;}",
|
|
43
|
+
".fwt6ga{-ms-grid-column:subtree;grid-column-start:subtree;}",
|
|
44
|
+
".fi45nfw{-ms-grid-row-span:subtree;grid-row-end:subtree;}",
|
|
45
|
+
".f10ort2y{-ms-grid-column-span:subtree;grid-column-end:subtree;}"
|
|
46
|
+
]
|
|
47
|
+
});
|
|
48
|
+
const useFlatTreeStyles_unstable = (state)=>{
|
|
49
|
+
const styles = useStyles();
|
|
50
|
+
const isSubTree = state.level > 0;
|
|
51
|
+
state.root.className = (0, _react.mergeClasses)(flatTreeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);
|
|
52
|
+
return state;
|
|
53
|
+
}; //# sourceMappingURL=useFlatTreeStyles.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useFlatTreeStyles.styles.js"],"sourcesContent":["import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const flatTreeClassNames = {\n root: 'fui-FlatTree'\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{-ms-grid-row:subtree;grid-row-start:subtree;}\", \".fwt6ga{-ms-grid-column:subtree;grid-column-start:subtree;}\", \".fi45nfw{-ms-grid-row-span:subtree;grid-row-end:subtree;}\", \".f10ort2y{-ms-grid-column-span:subtree;grid-column-end:subtree;}\"]\n});\nexport const useFlatTreeStyles_unstable = state => {\n const styles = useStyles();\n const isSubTree = state.level > 0;\n state.root.className = mergeClasses(flatTreeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);\n return state;\n};\n//# sourceMappingURL=useFlatTreeStyles.styles.js.map"],"names":["flatTreeClassNames","useFlatTreeStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","Belr9w4","subtree","Bh6795r","Bnnss6s","xawz","Ijaq50","Br312pm","nk6f5a","Bw0ie65","d","state","styles","isSubTree","level","className","mergeClasses"],"mappings":";;;;;;;;;;;IAEaA,kBAAkB,MAAlBA;IAqBAC,0BAA0B,MAA1BA;;uBAvBsC;AAE5C,MAAMD,qBAAqB;IAChCE,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;QAA2D;QAA+D;QAA6D;KAAmE;AACttB;AACO,MAAMf,6BAA6BgB,CAAAA,QAAS;IACjD,MAAMC,SAASf;IACf,MAAMgB,YAAYF,MAAMG,KAAK,GAAG;IAChCH,MAAMf,IAAI,CAACmB,SAAS,GAAGC,IAAAA,mBAAY,EAACtB,mBAAmBE,IAAI,EAAEgB,OAAOhB,IAAI,EAAEiB,aAAaD,OAAOV,OAAO,EAAES,MAAMf,IAAI,CAACmB,SAAS;IAC3H,OAAOJ;AACT,GACA,oDAAoD"}
|
|
@@ -2,40 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "useHeadlessFlatTree_unstable", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()=>
|
|
7
|
+
get: ()=>useHeadlessFlatTree_unstable
|
|
8
8
|
});
|
|
9
9
|
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
10
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
11
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
12
|
-
const
|
|
13
|
-
const _tokens = require("
|
|
12
|
+
const _createHeadlessTree = require("../../utils/createHeadlessTree");
|
|
13
|
+
const _tokens = require("../../utils/tokens");
|
|
14
14
|
const _useFlatTreeNavigation = require("./useFlatTreeNavigation");
|
|
15
|
-
const _useControllableOpenItems = require("
|
|
16
|
-
const _getTreeItemValueFromElement = require("
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const _useControllableOpenItems = require("../../hooks/useControllableOpenItems");
|
|
16
|
+
const _getTreeItemValueFromElement = require("../../utils/getTreeItemValueFromElement");
|
|
17
|
+
const _useFlatControllableCheckedItems = require("./useFlatControllableCheckedItems");
|
|
18
|
+
function useHeadlessFlatTree_unstable(flatTreeItemProps, options = {}) {
|
|
19
|
+
const flatTreeItems = _react.useMemo(()=>(0, _createHeadlessTree.createHeadlessTree)(flatTreeItemProps), [
|
|
19
20
|
flatTreeItemProps
|
|
20
21
|
]);
|
|
21
22
|
const [openItems, setOpenItems] = (0, _useControllableOpenItems.useControllableOpenItems)(options);
|
|
23
|
+
const [checkedItems, setCheckedItems] = (0, _useFlatControllableCheckedItems.useFlatControllableCheckedItems)(options);
|
|
22
24
|
const [navigate, navigationRef] = (0, _useFlatTreeNavigation.useFlatTreeNavigation)(flatTreeItems);
|
|
23
25
|
const treeRef = _react.useRef(null);
|
|
24
26
|
const handleOpenChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
25
27
|
var _options_onOpenChange;
|
|
26
28
|
(_options_onOpenChange = options.onOpenChange) === null || _options_onOpenChange === void 0 ? void 0 : _options_onOpenChange.call(options, event, data);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
setOpenItems((0, _useControllableOpenItems.createNextOpenItems)(data, openItems));
|
|
30
|
+
});
|
|
31
|
+
const handleCheckedChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
32
|
+
var _options_onCheckedChange;
|
|
33
|
+
(_options_onCheckedChange = options.onCheckedChange) === null || _options_onCheckedChange === void 0 ? void 0 : _options_onCheckedChange.call(options, event, data);
|
|
34
|
+
setCheckedItems((0, _useFlatControllableCheckedItems.createNextFlatCheckedItems)(data, checkedItems, flatTreeItems));
|
|
31
35
|
});
|
|
32
36
|
const handleNavigation = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
33
37
|
var _options_onNavigation_unstable;
|
|
34
38
|
(_options_onNavigation_unstable = options.onNavigation_unstable) === null || _options_onNavigation_unstable === void 0 ? void 0 : _options_onNavigation_unstable.call(options, event, data);
|
|
35
|
-
|
|
36
|
-
navigate(data);
|
|
37
|
-
}
|
|
38
|
-
event.preventDefault();
|
|
39
|
+
navigate(data);
|
|
39
40
|
});
|
|
40
41
|
const getNextNavigableItem = (0, _reactUtilities.useEventCallback)((visibleItems, data)=>{
|
|
41
42
|
const item = flatTreeItems.get(data.value);
|
|
@@ -66,13 +67,17 @@ function useFlatTree_unstable(flatTreeItemProps, options = {}) {
|
|
|
66
67
|
const getTreeProps = _react.useCallback(()=>({
|
|
67
68
|
ref,
|
|
68
69
|
openItems,
|
|
70
|
+
selectionMode: options.selectionMode,
|
|
71
|
+
checkedItems,
|
|
69
72
|
onOpenChange: handleOpenChange,
|
|
73
|
+
onCheckedChange: handleCheckedChange,
|
|
70
74
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
71
75
|
onNavigation_unstable: handleNavigation
|
|
72
76
|
}), [
|
|
73
|
-
openItems
|
|
77
|
+
openItems,
|
|
78
|
+
checkedItems
|
|
74
79
|
]);
|
|
75
|
-
const items = _react.useCallback(()=>
|
|
80
|
+
const items = _react.useCallback(()=>flatTreeItems.visibleItems(openItems), [
|
|
76
81
|
openItems,
|
|
77
82
|
flatTreeItems
|
|
78
83
|
]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useHeadlessFlatTree.js"],"sourcesContent":["import { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createHeadlessTree } from '../../utils/createHeadlessTree';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport { createNextOpenItems, useControllableOpenItems } from '../../hooks/useControllableOpenItems';\nimport { dataTreeItemValueAttrName } from '../../utils/getTreeItemValueFromElement';\nimport { createNextFlatCheckedItems, useFlatControllableCheckedItems } from './useFlatControllableCheckedItems';\n/**\n * this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n * On simple scenarios it is advised to simply use a nested structure instead.\n *\n * @param flatTreeItemProps - a list of tree items\n * @param options - in case control over the internal openItems is required\n */ export function useHeadlessFlatTree_unstable(flatTreeItemProps, options = {}) {\n const flatTreeItems = React.useMemo(()=>createHeadlessTree(flatTreeItemProps), [\n flatTreeItemProps\n ]);\n const [openItems, setOpenItems] = useControllableOpenItems(options);\n const [checkedItems, setCheckedItems] = useFlatControllableCheckedItems(options);\n const [navigate, navigationRef] = useFlatTreeNavigation(flatTreeItems);\n const treeRef = React.useRef(null);\n const handleOpenChange = useEventCallback((event, data)=>{\n var _options_onOpenChange;\n (_options_onOpenChange = options.onOpenChange) === null || _options_onOpenChange === void 0 ? void 0 : _options_onOpenChange.call(options, event, data);\n setOpenItems(createNextOpenItems(data, openItems));\n });\n const handleCheckedChange = useEventCallback((event, data)=>{\n var _options_onCheckedChange;\n (_options_onCheckedChange = options.onCheckedChange) === null || _options_onCheckedChange === void 0 ? void 0 : _options_onCheckedChange.call(options, event, data);\n setCheckedItems(createNextFlatCheckedItems(data, checkedItems, flatTreeItems));\n });\n const handleNavigation = useEventCallback((event, data)=>{\n var _options_onNavigation_unstable;\n (_options_onNavigation_unstable = options.onNavigation_unstable) === null || _options_onNavigation_unstable === void 0 ? void 0 : _options_onNavigation_unstable.call(options, event, data);\n navigate(data);\n });\n const getNextNavigableItem = useEventCallback((visibleItems, data)=>{\n const item = flatTreeItems.get(data.value);\n if (item) {\n switch(data.type){\n case treeDataTypes.TypeAhead:\n return item;\n case treeDataTypes.ArrowLeft:\n return flatTreeItems.get(item.parentValue);\n case treeDataTypes.ArrowRight:\n return visibleItems[item.index + 1];\n case treeDataTypes.End:\n return visibleItems[visibleItems.length - 1];\n case treeDataTypes.Home:\n return visibleItems[0];\n case treeDataTypes.ArrowDown:\n return visibleItems[item.index + 1];\n case treeDataTypes.ArrowUp:\n return visibleItems[item.index - 1];\n }\n }\n });\n const getElementFromItem = React.useCallback((item)=>{\n var _treeRef_current;\n return (_treeRef_current = treeRef.current) === null || _treeRef_current === void 0 ? void 0 : _treeRef_current.querySelector(`[${dataTreeItemValueAttrName}=\"${item.value}\"]`);\n }, []);\n const ref = useMergedRefs(treeRef, navigationRef);\n const getTreeProps = React.useCallback(()=>({\n ref,\n openItems,\n selectionMode: options.selectionMode,\n checkedItems,\n onOpenChange: handleOpenChange,\n onCheckedChange: handleCheckedChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n openItems,\n checkedItems\n ]);\n const items = React.useCallback(()=>flatTreeItems.visibleItems(openItems), [\n openItems,\n flatTreeItems\n ]);\n return React.useMemo(()=>({\n navigate,\n getTreeProps,\n getNextNavigableItem,\n getElementFromItem,\n items\n }), [\n navigate,\n getTreeProps,\n getNextNavigableItem,\n getElementFromItem,\n items\n ]);\n}\n"],"names":["useHeadlessFlatTree_unstable","flatTreeItemProps","options","flatTreeItems","React","useMemo","createHeadlessTree","openItems","setOpenItems","useControllableOpenItems","checkedItems","setCheckedItems","useFlatControllableCheckedItems","navigate","navigationRef","useFlatTreeNavigation","treeRef","useRef","handleOpenChange","useEventCallback","event","data","_options_onOpenChange","onOpenChange","call","createNextOpenItems","handleCheckedChange","_options_onCheckedChange","onCheckedChange","createNextFlatCheckedItems","handleNavigation","_options_onNavigation_unstable","onNavigation_unstable","getNextNavigableItem","visibleItems","item","get","value","type","treeDataTypes","TypeAhead","ArrowLeft","parentValue","ArrowRight","index","End","length","Home","ArrowDown","ArrowUp","getElementFromItem","useCallback","_treeRef_current","current","querySelector","dataTreeItemValueAttrName","ref","useMergedRefs","getTreeProps","selectionMode","items"],"mappings":"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"}
|
|
@@ -9,13 +9,13 @@ Object.defineProperty(exports, "Tree", {
|
|
|
9
9
|
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
10
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
11
11
|
const _useTree = require("./useTree");
|
|
12
|
-
const _renderTree = require("./renderTree");
|
|
13
|
-
const _useTreeStylesStyles = require("./useTreeStyles.styles");
|
|
14
12
|
const _useTreeContextValues = require("./useTreeContextValues");
|
|
13
|
+
const _useTreeStylesStyles = require("./useTreeStyles.styles");
|
|
14
|
+
const _renderTree = require("./renderTree");
|
|
15
15
|
const Tree = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
|
|
16
16
|
const state = (0, _useTree.useTree_unstable)(props, ref);
|
|
17
|
-
(0, _useTreeStylesStyles.useTreeStyles_unstable)(state);
|
|
18
17
|
const contextValues = (0, _useTreeContextValues.useTreeContextValues_unstable)(state);
|
|
18
|
+
(0, _useTreeStylesStyles.useTreeStyles_unstable)(state);
|
|
19
19
|
return (0, _renderTree.renderTree_unstable)(state, contextValues);
|
|
20
20
|
});
|
|
21
21
|
Tree.displayName = 'Tree';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Tree.js"],"sourcesContent":["import * as React from 'react';\nimport { useTree_unstable } from './useTree';\nimport {
|
|
1
|
+
{"version":3,"sources":["Tree.js"],"sourcesContent":["import * as React from 'react';\nimport { useTree_unstable } from './useTree';\nimport { useTreeContextValues_unstable } from './useTreeContextValues';\nimport { useTreeStyles_unstable } from './useTreeStyles.styles';\nimport { renderTree_unstable } from './renderTree';\n/**\n * Tree component - TODO: add more docs\n */ export const Tree = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useTree_unstable(props, ref);\n const contextValues = useTreeContextValues_unstable(state);\n useTreeStyles_unstable(state);\n return renderTree_unstable(state, contextValues);\n});\nTree.displayName = 'Tree';\n"],"names":["Tree","React","forwardRef","props","ref","state","useTree_unstable","contextValues","useTreeContextValues_unstable","useTreeStyles_unstable","renderTree_unstable","displayName"],"mappings":";;;;+BAOiBA;;aAAAA;;;6DAPM;yBACU;sCACa;qCACP;4BACH;AAGzB,MAAMA,OAAO,WAAW,GAAGC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAM;IACjE,MAAMC,QAAQC,IAAAA,yBAAgB,EAACH,OAAOC;IACtC,MAAMG,gBAAgBC,IAAAA,mDAA6B,EAACH;IACpDI,IAAAA,2CAAsB,EAACJ;IACvB,OAAOK,IAAAA,+BAAmB,EAACL,OAAOE;AACtC;AACAP,KAAKW,WAAW,GAAG"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
|
6
6
|
_exportStar(require("./Tree"), exports);
|
|
7
7
|
_exportStar(require("./Tree.types"), exports);
|
|
8
|
-
_exportStar(require("./renderTree"), exports);
|
|
9
8
|
_exportStar(require("./useTree"), exports);
|
|
10
|
-
_exportStar(require("./useTreeStyles.styles"), exports);
|
|
11
9
|
_exportStar(require("./useTreeContextValues"), exports);
|
|
10
|
+
_exportStar(require("./useTreeStyles.styles"), exports);
|
|
11
|
+
_exportStar(require("./renderTree"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './Tree';\nexport * from './Tree.types';\nexport * from './
|
|
1
|
+
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './Tree';\nexport * from './Tree.types';\nexport * from './useTree';\nexport * from './useTreeContextValues';\nexport * from './useTreeStyles.styles';\nexport * from './renderTree';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useControllableCheckedItems", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>useControllableCheckedItems
|
|
8
|
+
});
|
|
9
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
|
+
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
12
|
+
const _immutableMap = require("../../utils/ImmutableMap");
|
|
13
|
+
const _createCheckedItems = require("../../utils/createCheckedItems");
|
|
14
|
+
function useControllableCheckedItems(props) {
|
|
15
|
+
return (0, _reactUtilities.useControllableState)({
|
|
16
|
+
initialState: _immutableMap.ImmutableMap.empty,
|
|
17
|
+
state: _react.useMemo(()=>props.checkedItems && (0, _createCheckedItems.createCheckedItems)(props.checkedItems), [
|
|
18
|
+
props.checkedItems
|
|
19
|
+
]),
|
|
20
|
+
defaultState: ()=>(0, _createCheckedItems.createCheckedItems)(props.defaultCheckedItems)
|
|
21
|
+
});
|
|
22
|
+
} // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {
|
|
23
|
+
// const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);
|
|
24
|
+
// const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);
|
|
25
|
+
// const defaultSelections = React.useMemo(
|
|
26
|
+
// () => initializeSelection(props.defaultCheckedItems ?? []),
|
|
27
|
+
// [props.defaultCheckedItems],
|
|
28
|
+
// );
|
|
29
|
+
// const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({
|
|
30
|
+
// selectionMode: props.selectionMode ?? 'single',
|
|
31
|
+
// selectedItems: selections.checkedSelection,
|
|
32
|
+
// defaultSelectedItems: defaultSelections.checkedSelection,
|
|
33
|
+
// });
|
|
34
|
+
// const [mixedSelection, setMixedSelection] = useControllableState({
|
|
35
|
+
// initialState: ImmutableSet.empty,
|
|
36
|
+
// defaultState: React.useMemo(
|
|
37
|
+
// () => ImmutableSet.create(defaultSelections.mixedSelection),
|
|
38
|
+
// [defaultSelections.mixedSelection],
|
|
39
|
+
// ),
|
|
40
|
+
// state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),
|
|
41
|
+
// });
|
|
42
|
+
// const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {
|
|
43
|
+
// if (props.selectionMode === 'single') {
|
|
44
|
+
// checkedSelectionManager.selectItem(data.value);
|
|
45
|
+
// return;
|
|
46
|
+
// }
|
|
47
|
+
// if (walkerRef.current === null) {
|
|
48
|
+
// return;
|
|
49
|
+
// }
|
|
50
|
+
// const nextSelectedState = !checkedSelectionManager.isSelected(data.value);
|
|
51
|
+
// let treeItemValues = getAllSubTreeItemValues(data).add(data.value);
|
|
52
|
+
// let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;
|
|
53
|
+
// walkerRef.current.currentElement = data.event.currentTarget;
|
|
54
|
+
// while (walkerRef.current.parentElement() !== null) {
|
|
55
|
+
// const descendants = Array.from(
|
|
56
|
+
// walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role="treeitem"]'),
|
|
57
|
+
// ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);
|
|
58
|
+
// const isAllSiblingsEqualSelectionState = descendants.every(item => {
|
|
59
|
+
// return (
|
|
60
|
+
// (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||
|
|
61
|
+
// treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
|
|
62
|
+
// );
|
|
63
|
+
// });
|
|
64
|
+
// if (isAllSiblingsEqualSelectionState) {
|
|
65
|
+
// treeItemValues = treeItemValues.add(
|
|
66
|
+
// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
|
|
67
|
+
// );
|
|
68
|
+
// mixedValues = mixedValues.delete(
|
|
69
|
+
// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
|
|
70
|
+
// );
|
|
71
|
+
// } else {
|
|
72
|
+
// treeItemValues = treeItemValues
|
|
73
|
+
// .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
|
|
74
|
+
// .add(data.value);
|
|
75
|
+
// mixedValues = mixedValues.add(
|
|
76
|
+
// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
|
|
77
|
+
// );
|
|
78
|
+
// }
|
|
79
|
+
// }
|
|
80
|
+
// unstable_batchedUpdates(() => {
|
|
81
|
+
// nextSelectedState
|
|
82
|
+
// ? checkedSelectionManager.selectItems(treeItemValues)
|
|
83
|
+
// : checkedSelectionManager.deselectItems(treeItemValues);
|
|
84
|
+
// let nextMixedSelection = ImmutableSet.create(mixedSelection);
|
|
85
|
+
// for (const value of mixedValues) {
|
|
86
|
+
// nextMixedSelection = nextMixedSelection.add(value);
|
|
87
|
+
// }
|
|
88
|
+
// for (const value of treeItemValues) {
|
|
89
|
+
// nextMixedSelection = nextMixedSelection.delete(value);
|
|
90
|
+
// }
|
|
91
|
+
// setMixedSelection(nextMixedSelection);
|
|
92
|
+
// });
|
|
93
|
+
// });
|
|
94
|
+
// return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;
|
|
95
|
+
// }
|
|
96
|
+
// function getAllSubTreeItemValues(data: TreeCheckedChangeData) {
|
|
97
|
+
// const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role="treeitem"]'));
|
|
98
|
+
// const values = new Set<TreeItemValue>();
|
|
99
|
+
// for (const item of subTreeItems) {
|
|
100
|
+
// values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);
|
|
101
|
+
// }
|
|
102
|
+
// return ImmutableSet.dangerouslyCreate(values);
|
|
103
|
+
// }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useControllableCheckedItems.js"],"sourcesContent":["import { useControllableState } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { ImmutableMap } from '../../utils/ImmutableMap';\nimport { createCheckedItems } from '../../utils/createCheckedItems';\nexport function useControllableCheckedItems(props) {\n return useControllableState({\n initialState: ImmutableMap.empty,\n state: React.useMemo(()=>props.checkedItems && createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]),\n defaultState: ()=>createCheckedItems(props.defaultCheckedItems)\n });\n} // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {\n // const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n // const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);\n // const defaultSelections = React.useMemo(\n // () => initializeSelection(props.defaultCheckedItems ?? []),\n // [props.defaultCheckedItems],\n // );\n // const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({\n // selectionMode: props.selectionMode ?? 'single',\n // selectedItems: selections.checkedSelection,\n // defaultSelectedItems: defaultSelections.checkedSelection,\n // });\n // const [mixedSelection, setMixedSelection] = useControllableState({\n // initialState: ImmutableSet.empty,\n // defaultState: React.useMemo(\n // () => ImmutableSet.create(defaultSelections.mixedSelection),\n // [defaultSelections.mixedSelection],\n // ),\n // state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),\n // });\n // const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {\n // if (props.selectionMode === 'single') {\n // checkedSelectionManager.selectItem(data.value);\n // return;\n // }\n // if (walkerRef.current === null) {\n // return;\n // }\n // const nextSelectedState = !checkedSelectionManager.isSelected(data.value);\n // let treeItemValues = getAllSubTreeItemValues(data).add(data.value);\n // let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;\n // walkerRef.current.currentElement = data.event.currentTarget;\n // while (walkerRef.current.parentElement() !== null) {\n // const descendants = Array.from(\n // walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n // ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);\n // const isAllSiblingsEqualSelectionState = descendants.every(item => {\n // return (\n // (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||\n // treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n // );\n // });\n // if (isAllSiblingsEqualSelectionState) {\n // treeItemValues = treeItemValues.add(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // mixedValues = mixedValues.delete(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // } else {\n // treeItemValues = treeItemValues\n // .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n // .add(data.value);\n // mixedValues = mixedValues.add(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // }\n // }\n // unstable_batchedUpdates(() => {\n // nextSelectedState\n // ? checkedSelectionManager.selectItems(treeItemValues)\n // : checkedSelectionManager.deselectItems(treeItemValues);\n // let nextMixedSelection = ImmutableSet.create(mixedSelection);\n // for (const value of mixedValues) {\n // nextMixedSelection = nextMixedSelection.add(value);\n // }\n // for (const value of treeItemValues) {\n // nextMixedSelection = nextMixedSelection.delete(value);\n // }\n // setMixedSelection(nextMixedSelection);\n // });\n // });\n // return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;\n // }\n // function getAllSubTreeItemValues(data: TreeCheckedChangeData) {\n // const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role=\"treeitem\"]'));\n // const values = new Set<TreeItemValue>();\n // for (const item of subTreeItems) {\n // values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);\n // }\n // return ImmutableSet.dangerouslyCreate(values);\n // }\n"],"names":["useControllableCheckedItems","props","useControllableState","initialState","ImmutableMap","empty","state","React","useMemo","checkedItems","createCheckedItems","defaultState","defaultCheckedItems"],"mappings":";;;;+BAIgBA;;aAAAA;;;gCAJqB;6DACd;8BACM;oCACM;AAC5B,SAASA,4BAA4BC,KAAK,EAAE;IAC/C,OAAOC,IAAAA,oCAAoB,EAAC;QACxBC,cAAcC,0BAAY,CAACC,KAAK;QAChCC,OAAOC,OAAMC,OAAO,CAAC,IAAIP,MAAMQ,YAAY,IAAIC,IAAAA,sCAAkB,EAACT,MAAMQ,YAAY,GAAG;YACnFR,MAAMQ,YAAY;SACrB;QACDE,cAAc,IAAID,IAAAA,sCAAkB,EAACT,MAAMW,mBAAmB;IAClE;AACJ,EAAE,2HAA2H;CAC5H,0EAA0E;CAC1E,iHAAiH;CACjH,6CAA6C;CAC7C,kEAAkE;CAClE,mCAAmC;CACnC,OAAO;CACP,sFAAsF;CACtF,sDAAsD;CACtD,kDAAkD;CAClD,gEAAgE;CAChE,QAAQ;CACR,uEAAuE;CACvE,wCAAwC;CACxC,mCAAmC;CACnC,qEAAqE;CACrE,4CAA4C;CAC5C,SAAS;CACT,+GAA+G;CAC/G,QAAQ;CACR,mFAAmF;CACnF,8CAA8C;CAC9C,wDAAwD;CACxD,gBAAgB;CAChB,QAAQ;CACR,wCAAwC;CACxC,gBAAgB;CAChB,QAAQ;CACR,iFAAiF;CACjF,0EAA0E;CAC1E,yEAAyE;CACzE,mEAAmE;CACnE,2DAA2D;CAC3D,wCAAwC;CACxC,+FAA+F;CAC/F,uFAAuF;CACvF,6EAA6E;CAC7E,mBAAmB;CACnB,qFAAqF;CACrF,8FAA8F;CAC9F,aAAa;CACb,YAAY;CACZ,gDAAgD;CAChD,+CAA+C;CAC/C,uGAAuG;CACvG,aAAa;CACb,4CAA4C;CAC5C,uGAAuG;CACvG,aAAa;CACb,iBAAiB;CACjB,0CAA0C;CAC1C,+GAA+G;CAC/G,8BAA8B;CAC9B,yCAAyC;CACzC,uGAAuG;CACvG,aAAa;CACb,UAAU;CACV,QAAQ;CACR,sCAAsC;CACtC,0BAA0B;CAC1B,gEAAgE;CAChE,mEAAmE;CACnE,sEAAsE;CACtE,2CAA2C;CAC3C,8DAA8D;CAC9D,UAAU;CACV,8CAA8C;CAC9C,iEAAiE;CACjE,UAAU;CACV,+CAA+C;CAC/C,UAAU;CACV,QAAQ;CACR,qFAAqF;CACrF,IAAI;CACJ,kEAAkE;CAClE,qGAAqG;CACrG,6CAA6C;CAC7C,uCAAuC;CACvC,iFAAiF;CACjF,MAAM;CACN,mDAAmD;CACnD,IAAI"}
|
|
@@ -8,13 +8,45 @@ Object.defineProperty(exports, "useTree_unstable", {
|
|
|
8
8
|
});
|
|
9
9
|
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
10
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
11
|
+
const _reactUtilities = require("@fluentui/react-utilities");
|
|
12
|
+
const _useControllableOpenItems = require("../../hooks/useControllableOpenItems");
|
|
13
|
+
const _useTreeNavigation = require("./useTreeNavigation");
|
|
14
|
+
const _useControllableCheckedItems = require("./useControllableCheckedItems");
|
|
15
|
+
const _treeContext = require("../../contexts/treeContext");
|
|
16
|
+
const _useRootTree = require("../../hooks/useRootTree");
|
|
17
|
+
const _useSubtree = require("../../hooks/useSubtree");
|
|
14
18
|
const useTree_unstable = (props, ref)=>{
|
|
15
|
-
const
|
|
16
|
-
|
|
19
|
+
const [openItems, setOpenItems] = (0, _useControllableOpenItems.useControllableOpenItems)(props);
|
|
20
|
+
const [checkedItems] = (0, _useControllableCheckedItems.useControllableCheckedItems)(props);
|
|
21
|
+
const [navigate, navigationRef] = (0, _useTreeNavigation.useTreeNavigation)();
|
|
22
|
+
const handleOpenChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
23
|
+
var _props_onOpenChange;
|
|
24
|
+
(_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);
|
|
25
|
+
setOpenItems((0, _useControllableOpenItems.createNextOpenItems)(data, openItems));
|
|
26
|
+
});
|
|
27
|
+
const handleCheckedChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
28
|
+
var _props_onCheckedChange;
|
|
29
|
+
(_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, event, data);
|
|
30
|
+
// TODO: implement next checked items for tree
|
|
31
|
+
});
|
|
32
|
+
const handleNavigation = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
33
|
+
var _props_onNavigation_unstable;
|
|
34
|
+
(_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, event, data);
|
|
35
|
+
navigate(data);
|
|
36
|
+
});
|
|
37
|
+
const baseProps = {
|
|
38
|
+
...props,
|
|
39
|
+
openItems,
|
|
40
|
+
checkedItems,
|
|
41
|
+
onOpenChange: handleOpenChange,
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
43
|
+
onNavigation_unstable: handleNavigation,
|
|
44
|
+
onCheckedChange: handleCheckedChange
|
|
45
|
+
};
|
|
46
|
+
const baseRef = (0, _reactUtilities.useMergedRefs)(ref, navigationRef);
|
|
47
|
+
const isSubtree = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.level > 0);
|
|
48
|
+
// as isSubTree is static, this doesn't break rule of hooks
|
|
17
49
|
// and if this becomes an issue later on, this can be easily converted
|
|
18
50
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
19
|
-
return isSubtree ? (0, _useSubtree.useSubtree)(
|
|
51
|
+
return isSubtree ? (0, _useSubtree.useSubtree)(baseProps, baseRef) : (0, _useRootTree.useRootTree)(baseProps, baseRef);
|
|
20
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useTree.js"],"sourcesContent":["import * as React from 'react';\nimport {
|
|
1
|
+
{"version":3,"sources":["useTree.js"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { createNextOpenItems, useControllableOpenItems } from '../../hooks/useControllableOpenItems';\nimport { useTreeNavigation } from './useTreeNavigation';\nimport { useControllableCheckedItems } from './useControllableCheckedItems';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { useRootTree } from '../../hooks/useRootTree';\nimport { useSubtree } from '../../hooks/useSubtree';\nexport const useTree_unstable = (props, ref)=>{\n const [openItems, setOpenItems] = useControllableOpenItems(props);\n const [checkedItems] = useControllableCheckedItems(props);\n const [navigate, navigationRef] = useTreeNavigation();\n const handleOpenChange = useEventCallback((event, data)=>{\n var _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);\n setOpenItems(createNextOpenItems(data, openItems));\n });\n const handleCheckedChange = useEventCallback((event, data)=>{\n var _props_onCheckedChange;\n (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, event, data);\n // TODO: implement next checked items for tree\n });\n const handleNavigation = useEventCallback((event, data)=>{\n var _props_onNavigation_unstable;\n (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, event, data);\n navigate(data);\n });\n const baseProps = {\n ...props,\n openItems,\n checkedItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n onCheckedChange: handleCheckedChange\n };\n const baseRef = useMergedRefs(ref, navigationRef);\n const isSubtree = useTreeContext_unstable((ctx)=>ctx.level > 0);\n // as isSubTree is static, this doesn't break rule of hooks\n // and if this becomes an issue later on, this can be easily converted\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isSubtree ? useSubtree(baseProps, baseRef) : useRootTree(baseProps, baseRef);\n};\n"],"names":["useTree_unstable","props","ref","openItems","setOpenItems","useControllableOpenItems","checkedItems","useControllableCheckedItems","navigate","navigationRef","useTreeNavigation","handleOpenChange","useEventCallback","event","data","_props_onOpenChange","onOpenChange","call","createNextOpenItems","handleCheckedChange","_props_onCheckedChange","onCheckedChange","handleNavigation","_props_onNavigation_unstable","onNavigation_unstable","baseProps","baseRef","useMergedRefs","isSubtree","useTreeContext_unstable","ctx","level","useSubtree","useRootTree"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;gCACyB;0CACc;mCAC5B;6CACU;6BACJ;6BACZ;4BACD;AACpB,MAAMA,mBAAmB,CAACC,OAAOC,MAAM;IAC1C,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,kDAAwB,EAACJ;IAC3D,MAAM,CAACK,aAAa,GAAGC,IAAAA,wDAA2B,EAACN;IACnD,MAAM,CAACO,UAAUC,cAAc,GAAGC,IAAAA,oCAAiB;IACnD,MAAMC,mBAAmBC,IAAAA,gCAAgB,EAAC,CAACC,OAAOC,OAAO;QACrD,IAAIC;QACHA,CAAAA,sBAAsBd,MAAMe,YAAY,AAAD,MAAO,IAAI,IAAID,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBE,IAAI,CAAChB,OAAOY,OAAOC,KAAK;QAC7IV,aAAac,IAAAA,6CAAmB,EAACJ,MAAMX;IAC3C;IACA,MAAMgB,sBAAsBP,IAAAA,gCAAgB,EAAC,CAACC,OAAOC,OAAO;QACxD,IAAIM;QACHA,CAAAA,yBAAyBnB,MAAMoB,eAAe,AAAD,MAAO,IAAI,IAAID,2BAA2B,KAAK,IAAI,KAAK,IAAIA,uBAAuBH,IAAI,CAAChB,OAAOY,OAAOC,KAAK;IAC7J,+CAA+C;IAC/C;IACA,MAAMQ,mBAAmBV,IAAAA,gCAAgB,EAAC,CAACC,OAAOC,OAAO;QACrD,IAAIS;QACHA,CAAAA,+BAA+BtB,MAAMuB,qBAAqB,AAAD,MAAO,IAAI,IAAID,iCAAiC,KAAK,IAAI,KAAK,IAAIA,6BAA6BN,IAAI,CAAChB,OAAOY,OAAOC,KAAK;QACjLN,SAASM;IACb;IACA,MAAMW,YAAY;QACd,GAAGxB,KAAK;QACRE;QACAG;QACAU,cAAcL;QACd,gEAAgE;QAChEa,uBAAuBF;QACvBD,iBAAiBF;IACrB;IACA,MAAMO,UAAUC,IAAAA,6BAAa,EAACzB,KAAKO;IACnC,MAAMmB,YAAYC,IAAAA,oCAAuB,EAAC,CAACC,MAAMA,IAAIC,KAAK,GAAG;IAC7D,2DAA2D;IAC3D,sEAAsE;IACtE,sDAAsD;IACtD,OAAOH,YAAYI,IAAAA,sBAAU,EAACP,WAAWC,WAAWO,IAAAA,wBAAW,EAACR,WAAWC,QAAQ;AACvF"}
|
|
@@ -7,15 +7,17 @@ Object.defineProperty(exports, "useTreeContextValues_unstable", {
|
|
|
7
7
|
get: ()=>useTreeContextValues_unstable
|
|
8
8
|
});
|
|
9
9
|
function useTreeContextValues_unstable(state) {
|
|
10
|
-
const { openItems , level , appearance , size , requestTreeResponse } = state;
|
|
10
|
+
const { openItems , checkedItems , selectionMode , 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
|
|
14
14
|
*/ const tree = {
|
|
15
|
-
appearance,
|
|
16
15
|
size,
|
|
17
16
|
level,
|
|
18
17
|
openItems,
|
|
18
|
+
appearance,
|
|
19
|
+
checkedItems,
|
|
20
|
+
selectionMode,
|
|
19
21
|
requestTreeResponse
|
|
20
22
|
};
|
|
21
23
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const { openItems , level , appearance , size , requestTreeResponse } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */ const tree = {\n
|
|
1
|
+
{"version":3,"sources":["useTreeContextValues.js"],"sourcesContent":["export function useTreeContextValues_unstable(state) {\n const { openItems , checkedItems , selectionMode , level , appearance , size , requestTreeResponse } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */ const tree = {\n size,\n level,\n openItems,\n appearance,\n checkedItems,\n selectionMode,\n requestTreeResponse\n };\n return {\n tree\n };\n}\n"],"names":["useTreeContextValues_unstable","state","openItems","checkedItems","selectionMode","level","appearance","size","requestTreeResponse","tree"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,8BAA8BC,KAAK,EAAE;IACjD,MAAM,EAAEC,UAAS,EAAGC,aAAY,EAAGC,cAAa,EAAGC,MAAK,EAAGC,WAAU,EAAGC,KAAI,EAAGC,oBAAmB,EAAG,GAAGP;IACxG;;;GAGD,GAAG,MAAMQ,OAAO;QACXF;QACAF;QACAH;QACAI;QACAH;QACAC;QACAI;IACJ;IACA,OAAO;QACHC;IACJ;AACJ"}
|
package/lib-commonjs/{hooks/useNestedTreeNavigation.js → components/Tree/useTreeNavigation.js}
RENAMED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "useTreeNavigation", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()=>
|
|
7
|
+
get: ()=>useTreeNavigation
|
|
8
8
|
});
|
|
9
9
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
function
|
|
10
|
+
const _nextTypeAheadElement = require("../../utils/nextTypeAheadElement");
|
|
11
|
+
const _tokens = require("../../utils/tokens");
|
|
12
|
+
const _treeItemFilter = require("../../utils/treeItemFilter");
|
|
13
|
+
const _useRovingTabIndexes = require("../../hooks/useRovingTabIndexes");
|
|
14
|
+
const _useHTMLElementWalker = require("../../hooks/useHTMLElementWalker");
|
|
15
|
+
function useTreeNavigation() {
|
|
16
16
|
const [{ rove }, rovingRootRef] = (0, _useRovingTabIndexes.useRovingTabIndex)(_treeItemFilter.treeItemFilter);
|
|
17
17
|
const [walkerRef, rootRef] = (0, _useHTMLElementWalker.useHTMLElementWalkerRef)(_treeItemFilter.treeItemFilter);
|
|
18
18
|
const getNextElement = (data)=>{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useTreeNavigation.js"],"sourcesContent":["import { useMergedRefs } from '@fluentui/react-utilities';\nimport { nextTypeAheadElement } from '../../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { treeItemFilter } from '../../utils/treeItemFilter';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndexes';\nimport { useHTMLElementWalkerRef } from '../../hooks/useHTMLElementWalker';\nexport function useTreeNavigation() {\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const getNextElement = (data)=>{\n if (!walkerRef.current) {\n return;\n }\n const treeItemWalker = walkerRef.current;\n switch(data.type){\n case treeDataTypes.Click:\n return data.target;\n case treeDataTypes.TypeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.ArrowLeft:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.parentElement();\n case treeDataTypes.ArrowRight:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.firstChild();\n case treeDataTypes.End:\n treeItemWalker.currentElement = treeItemWalker.root;\n return lastChildRecursive(treeItemWalker);\n case treeDataTypes.Home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.ArrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.ArrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n };\n function navigate(data) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [\n navigate,\n useMergedRefs(rootRef, rovingRootRef)\n ];\n}\nfunction lastChildRecursive(walker) {\n let lastElement = null;\n let nextElement = null;\n while(nextElement = walker.lastChild()){\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"names":["useTreeNavigation","rove","rovingRootRef","useRovingTabIndex","treeItemFilter","walkerRef","rootRef","useHTMLElementWalkerRef","getNextElement","data","current","treeItemWalker","type","treeDataTypes","Click","target","TypeAhead","currentElement","nextTypeAheadElement","event","key","ArrowLeft","parentElement","ArrowRight","firstChild","End","root","lastChildRecursive","Home","ArrowDown","nextElement","ArrowUp","previousElement","navigate","useMergedRefs","walker","lastElement","lastChild"],"mappings":";;;;+BAMgBA;;aAAAA;;gCANc;sCACO;wBACP;gCACC;qCACG;sCACM;AACjC,SAASA,oBAAoB;IAChC,MAAM,CAAC,EAAEC,KAAI,EAAG,EAAEC,cAAc,GAAGC,IAAAA,sCAAiB,EAACC,8BAAc;IACnE,MAAM,CAACC,WAAWC,QAAQ,GAAGC,IAAAA,6CAAuB,EAACH,8BAAc;IACnE,MAAMI,iBAAiB,CAACC,OAAO;QAC3B,IAAI,CAACJ,UAAUK,OAAO,EAAE;YACpB;QACJ,CAAC;QACD,MAAMC,iBAAiBN,UAAUK,OAAO;QACxC,OAAOD,KAAKG,IAAI;YACZ,KAAKC,qBAAa,CAACC,KAAK;gBACpB,OAAOL,KAAKM,MAAM;YACtB,KAAKF,qBAAa,CAACG,SAAS;gBACxBL,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOG,IAAAA,0CAAoB,EAACP,gBAAgBF,KAAKU,KAAK,CAACC,GAAG;YAC9D,KAAKP,qBAAa,CAACQ,SAAS;gBACxBV,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAeW,aAAa;YACvC,KAAKT,qBAAa,CAACU,UAAU;gBACzBZ,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAea,UAAU;YACpC,KAAKX,qBAAa,CAACY,GAAG;gBAClBd,eAAeM,cAAc,GAAGN,eAAee,IAAI;gBACnD,OAAOC,mBAAmBhB;YAC9B,KAAKE,qBAAa,CAACe,IAAI;gBACnBjB,eAAeM,cAAc,GAAGN,eAAee,IAAI;gBACnD,OAAOf,eAAea,UAAU;YACpC,KAAKX,qBAAa,CAACgB,SAAS;gBACxBlB,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAemB,WAAW;YACrC,KAAKjB,qBAAa,CAACkB,OAAO;gBACtBpB,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAeqB,eAAe;QAC7C;IACJ;IACA,SAASC,SAASxB,IAAI,EAAE;QACpB,MAAMqB,cAActB,eAAeC;QACnC,IAAIqB,aAAa;YACb7B,KAAK6B;QACT,CAAC;IACL;IACA,OAAO;QACHG;QACAC,IAAAA,6BAAa,EAAC5B,SAASJ;KAC1B;AACL;AACA,SAASyB,mBAAmBQ,MAAM,EAAE;IAChC,IAAIC,cAAc,IAAI;IACtB,IAAIN,cAAc,IAAI;IACtB,MAAMA,cAAcK,OAAOE,SAAS,GAAG;QACnCD,cAAcN;IAClB;IACA,OAAOM;AACX"}
|
|
@@ -47,7 +47,7 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
|
|
|
47
47
|
});
|
|
48
48
|
const useTreeStyles_unstable = (state)=>{
|
|
49
49
|
const styles = useStyles();
|
|
50
|
-
const
|
|
51
|
-
state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root,
|
|
50
|
+
const isSubTree = state.level > 0;
|
|
51
|
+
state.root.className = (0, _react.mergeClasses)(treeClassNames.root, styles.root, isSubTree && styles.subtree, state.root.className);
|
|
52
52
|
return state;
|
|
53
53
|
}; //# sourceMappingURL=useTreeStyles.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["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{-ms-grid-row:subtree;grid-row-start:subtree;}\", \".fwt6ga{-ms-grid-column:subtree;grid-column-start:subtree;}\", \".fi45nfw{-ms-grid-row-span:subtree;grid-row-end:subtree;}\", \".f10ort2y{-ms-grid-column-span:subtree;grid-column-end:subtree;}\"]\n});\nexport const useTreeStyles_unstable = state => {\n const styles = useStyles();\n const
|
|
1
|
+
{"version":3,"sources":["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{-ms-grid-row:subtree;grid-row-start:subtree;}\", \".fwt6ga{-ms-grid-column:subtree;grid-column-start:subtree;}\", \".fi45nfw{-ms-grid-row-span:subtree;grid-row-end:subtree;}\", \".f10ort2y{-ms-grid-column-span:subtree;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;QAA2D;QAA+D;QAA6D;KAAmE;AACttB;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"}
|
|
@@ -13,7 +13,5 @@ const renderTreeItem_unstable = (state, contextValues)=>{
|
|
|
13
13
|
const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
|
|
14
14
|
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
|
|
15
15
|
value: contextValues.treeItem
|
|
16
|
-
},
|
|
17
|
-
value: contextValues.treeItemSlots
|
|
18
|
-
}, slotProps.root.children)));
|
|
16
|
+
}, slotProps.root.children));
|
|
19
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider
|
|
1
|
+
{"version":3,"sources":["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 */ export const renderTreeItem_unstable = (state, contextValues)=>{\n const { slots , slotProps } = getSlotsNext(state);\n return /*#__PURE__*/ createElement(slots.root, slotProps.root, /*#__PURE__*/ createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, slotProps.root.children));\n};\n"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","root","TreeItemProvider","value","treeItem","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACtD;0BACI;AAGtB,MAAMA,0BAA0B,CAACC,OAAOC,gBAAgB;IAC/D,MAAM,EAAEC,MAAK,EAAGC,UAAS,EAAG,GAAGC,IAAAA,4BAAY,EAACJ;IAC5C,OAAO,WAAW,GAAGK,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAEH,UAAUG,IAAI,EAAE,WAAW,GAAGD,IAAAA,8BAAa,EAACE,0BAAgB,EAAE;QACzGC,OAAOP,cAAcQ,QAAQ;IACjC,GAAGN,UAAUG,IAAI,CAACI,QAAQ;AAC9B"}
|