@fluentui/react-tree 9.0.0-beta.2 → 9.0.0-beta.21
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 +1073 -1
- package/CHANGELOG.md +295 -2
- package/dist/index.d.ts +153 -91
- package/lib/Tree.js +0 -1
- package/lib/Tree.js.map +1 -1
- package/lib/TreeItem.js +0 -1
- package/lib/TreeItem.js.map +1 -1
- package/lib/TreeItemLayout.js +0 -1
- package/lib/TreeItemLayout.js.map +1 -1
- package/lib/TreeItemPersonaLayout.js +0 -1
- package/lib/TreeItemPersonaLayout.js.map +1 -1
- package/lib/components/Tree/Tree.js +6 -8
- package/lib/components/Tree/Tree.js.map +1 -1
- package/lib/components/Tree/Tree.types.js +1 -2
- package/lib/components/Tree/Tree.types.js.map +1 -1
- package/lib/components/Tree/index.js +1 -2
- package/lib/components/Tree/index.js.map +1 -1
- package/lib/components/Tree/renderTree.js +7 -13
- package/lib/components/Tree/renderTree.js.map +1 -1
- package/lib/components/Tree/useRootTree.js +145 -0
- package/lib/components/Tree/useRootTree.js.map +1 -0
- package/lib/components/Tree/useSubtree.js +35 -0
- package/lib/components/Tree/useSubtree.js.map +1 -0
- package/lib/components/Tree/useTree.js +9 -103
- package/lib/components/Tree/useTree.js.map +1 -1
- package/lib/components/Tree/useTreeContextValues.js +12 -22
- 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 +16 -9
- package/lib/components/TreeItem/TreeItem.js.map +1 -1
- package/lib/components/TreeItem/TreeItem.types.js +1 -2
- package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib/components/TreeItem/index.js +1 -2
- package/lib/components/TreeItem/index.js.map +1 -1
- package/lib/components/TreeItem/renderTreeItem.js +7 -25
- package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItem.js +116 -234
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +18 -16
- package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemStyles.styles.js +100 -0
- package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
- package/lib/components/TreeItemChevron.js +24 -0
- package/lib/components/TreeItemChevron.js.map +1 -0
- package/lib/components/TreeItemLayout/TreeItemLayout.js +8 -8
- package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js +1 -2
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib/components/TreeItemLayout/index.js +1 -2
- package/lib/components/TreeItemLayout/index.js.map +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js +8 -21
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayout.js +58 -39
- package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +191 -0
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +9 -9
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -2
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/index.js +1 -2
- package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +10 -27
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +35 -48
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +9 -10
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +206 -0
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
- package/lib/contexts/index.js +0 -1
- package/lib/contexts/index.js.map +1 -1
- package/lib/contexts/treeContext.js +9 -14
- package/lib/contexts/treeContext.js.map +1 -1
- package/lib/contexts/treeItemContext.js +13 -10
- package/lib/contexts/treeItemContext.js.map +1 -1
- package/lib/hooks/index.js +0 -1
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useFlatTree.js +81 -35
- package/lib/hooks/useFlatTree.js.map +1 -1
- package/lib/hooks/useFlatTreeNavigation.js +65 -62
- package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
- package/lib/hooks/useHTMLElementWalker.js +78 -76
- package/lib/hooks/useHTMLElementWalker.js.map +1 -1
- package/lib/hooks/useNestedTreeNavigation.js +49 -49
- package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
- package/lib/hooks/useOpenItemsState.js +21 -15
- package/lib/hooks/useOpenItemsState.js.map +1 -1
- package/lib/hooks/useRovingTabIndexes.js +46 -45
- package/lib/hooks/useRovingTabIndexes.js.map +1 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/ImmutableSet.js +27 -30
- package/lib/utils/ImmutableSet.js.map +1 -1
- package/lib/utils/assert.js +5 -5
- package/lib/utils/assert.js.map +1 -1
- package/lib/utils/createFlatTreeItems.js +113 -0
- package/lib/utils/createFlatTreeItems.js.map +1 -0
- package/lib/utils/flattenTree.js +58 -28
- package/lib/utils/flattenTree.js.map +1 -1
- package/lib/utils/getTreeItemValueFromElement.js +4 -0
- package/lib/utils/getTreeItemValueFromElement.js.map +1 -0
- package/lib/utils/nextTypeAheadElement.js +11 -12
- package/lib/utils/nextTypeAheadElement.js.map +1 -1
- package/lib/utils/normalizeOpenItems.js +6 -5
- package/lib/utils/normalizeOpenItems.js.map +1 -1
- package/lib/utils/tokens.js +13 -14
- package/lib/utils/tokens.js.map +1 -1
- package/lib/utils/treeItemFilter.js +2 -3
- package/lib/utils/treeItemFilter.js.map +1 -1
- package/lib-commonjs/Tree.js +3 -5
- package/lib-commonjs/Tree.js.map +1 -1
- package/lib-commonjs/TreeItem.js +3 -5
- package/lib-commonjs/TreeItem.js.map +1 -1
- package/lib-commonjs/TreeItemLayout.js +3 -5
- package/lib-commonjs/TreeItemLayout.js.map +1 -1
- package/lib-commonjs/TreeItemPersonaLayout.js +3 -5
- package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/Tree/Tree.js +17 -23
- package/lib-commonjs/components/Tree/Tree.js.map +1 -1
- package/lib-commonjs/components/Tree/Tree.types.js +3 -3
- package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
- package/lib-commonjs/components/Tree/index.js +8 -10
- package/lib-commonjs/components/Tree/index.js.map +1 -1
- package/lib-commonjs/components/Tree/renderTree.js +14 -19
- package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useRootTree.js +149 -0
- package/lib-commonjs/components/Tree/useRootTree.js.map +1 -0
- package/lib-commonjs/components/Tree/useSubtree.js +39 -0
- package/lib-commonjs/components/Tree/useSubtree.js.map +1 -0
- package/lib-commonjs/components/Tree/useTree.js +16 -116
- package/lib-commonjs/components/Tree/useTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeContextValues.js +17 -26
- package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js +53 -0
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItem/TreeItem.js +17 -18
- package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/TreeItem.types.js +3 -4
- package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib-commonjs/components/TreeItem/index.js +7 -9
- package/lib-commonjs/components/TreeItem/index.js.map +1 -1
- package/lib-commonjs/components/TreeItem/renderTreeItem.js +14 -33
- package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItem.js +126 -251
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +23 -20
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +202 -0
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemChevron.js +33 -0
- package/lib-commonjs/components/TreeItemChevron.js.map +1 -0
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +15 -16
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js +1 -3
- package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/index.js +7 -9
- package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +14 -28
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +64 -52
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +321 -0
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +17 -18
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +1 -3
- package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/index.js +7 -9
- package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +17 -35
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +42 -61
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +16 -15
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +375 -0
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -0
- package/lib-commonjs/contexts/index.js +4 -6
- package/lib-commonjs/contexts/index.js.map +1 -1
- package/lib-commonjs/contexts/treeContext.js +23 -18
- package/lib-commonjs/contexts/treeContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemContext.js +27 -13
- package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
- package/lib-commonjs/hooks/index.js +5 -7
- package/lib-commonjs/hooks/index.js.map +1 -1
- package/lib-commonjs/hooks/useFlatTree.js +88 -52
- package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
- package/lib-commonjs/hooks/useFlatTreeNavigation.js +76 -72
- package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
- package/lib-commonjs/hooks/useHTMLElementWalker.js +92 -83
- package/lib-commonjs/hooks/useHTMLElementWalker.js.map +1 -1
- package/lib-commonjs/hooks/useNestedTreeNavigation.js +59 -58
- package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
- package/lib-commonjs/hooks/useOpenItemsState.js +30 -22
- package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
- package/lib-commonjs/hooks/useRovingTabIndexes.js +54 -53
- package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
- package/lib-commonjs/index.js +46 -181
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/ImmutableSet.js +37 -38
- package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
- package/lib-commonjs/utils/assert.js +11 -9
- package/lib-commonjs/utils/assert.js.map +1 -1
- package/lib-commonjs/utils/createFlatTreeItems.js +127 -0
- package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -0
- package/lib-commonjs/utils/flattenTree.js +25 -33
- package/lib-commonjs/utils/flattenTree.js.map +1 -1
- package/lib-commonjs/utils/getTreeItemValueFromElement.js +18 -0
- package/lib-commonjs/utils/getTreeItemValueFromElement.js.map +1 -0
- package/lib-commonjs/utils/nextTypeAheadElement.js +16 -16
- package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
- package/lib-commonjs/utils/normalizeOpenItems.js +11 -9
- package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
- package/lib-commonjs/utils/tokens.js +28 -20
- package/lib-commonjs/utils/tokens.js.map +1 -1
- package/lib-commonjs/utils/treeItemFilter.js +7 -7
- package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
- package/package.json +23 -17
- 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 +0 -115
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
- package/lib/utils/createUnfilteredFlatTree.js +0 -77
- package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
- package/lib/utils/createVisibleFlatTree.js +0 -80
- package/lib/utils/createVisibleFlatTree.js.map +0 -1
- package/lib-commonjs/components/Tree/useTreeStyles.js +0 -27
- package/lib-commonjs/components/Tree/useTreeStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +0 -210
- package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +0 -105
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +0 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +0 -122
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +0 -1
- package/lib-commonjs/utils/createUnfilteredFlatTree.js +0 -84
- package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
- package/lib-commonjs/utils/createVisibleFlatTree.js +0 -87
- package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
|
@@ -1,88 +1,97 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
|
|
12
|
-
acceptNode(node) {
|
|
13
|
-
var _a;
|
|
14
|
-
if (!react_utilities_1.isHTMLElement(node)) {
|
|
15
|
-
return NodeFilter.FILTER_REJECT;
|
|
16
|
-
}
|
|
17
|
-
const filterResult = filter(node);
|
|
18
|
-
return filterResult === NodeFilter.FILTER_ACCEPT ? (_a = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _a !== void 0 ? _a : filterResult : filterResult;
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
return {
|
|
22
|
-
get root() {
|
|
23
|
-
return treeWalker.root;
|
|
24
|
-
},
|
|
25
|
-
get currentElement() {
|
|
26
|
-
return treeWalker.currentNode;
|
|
27
|
-
},
|
|
28
|
-
set currentElement(element) {
|
|
29
|
-
treeWalker.currentNode = element;
|
|
30
|
-
},
|
|
31
|
-
firstChild: localFilter => {
|
|
32
|
-
temporaryFilter = localFilter;
|
|
33
|
-
const result = treeWalker.firstChild();
|
|
34
|
-
temporaryFilter = undefined;
|
|
35
|
-
return result;
|
|
36
|
-
},
|
|
37
|
-
lastChild: localFilter => {
|
|
38
|
-
temporaryFilter = localFilter;
|
|
39
|
-
const result = treeWalker.lastChild();
|
|
40
|
-
temporaryFilter = undefined;
|
|
41
|
-
return result;
|
|
42
|
-
},
|
|
43
|
-
nextElement: localFilter => {
|
|
44
|
-
temporaryFilter = localFilter;
|
|
45
|
-
const result = treeWalker.nextNode();
|
|
46
|
-
temporaryFilter = undefined;
|
|
47
|
-
return result;
|
|
48
|
-
},
|
|
49
|
-
nextSibling: localFilter => {
|
|
50
|
-
temporaryFilter = localFilter;
|
|
51
|
-
const result = treeWalker.nextSibling();
|
|
52
|
-
temporaryFilter = undefined;
|
|
53
|
-
return result;
|
|
54
|
-
},
|
|
55
|
-
parentElement: localFilter => {
|
|
56
|
-
temporaryFilter = localFilter;
|
|
57
|
-
const result = treeWalker.parentNode();
|
|
58
|
-
temporaryFilter = undefined;
|
|
59
|
-
return result;
|
|
60
|
-
},
|
|
61
|
-
previousElement: localFilter => {
|
|
62
|
-
temporaryFilter = localFilter;
|
|
63
|
-
const result = treeWalker.previousNode();
|
|
64
|
-
temporaryFilter = undefined;
|
|
65
|
-
return result;
|
|
66
|
-
},
|
|
67
|
-
previousSibling: localFilter => {
|
|
68
|
-
temporaryFilter = localFilter;
|
|
69
|
-
const result = treeWalker.previousSibling();
|
|
70
|
-
temporaryFilter = undefined;
|
|
71
|
-
return result;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
74
10
|
}
|
|
75
|
-
exports
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
11
|
+
_export(exports, {
|
|
12
|
+
createHTMLElementWalker: ()=>createHTMLElementWalker,
|
|
13
|
+
useHTMLElementWalkerRef: ()=>useHTMLElementWalkerRef
|
|
14
|
+
});
|
|
15
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
16
|
+
const _reactUtilities = require("@fluentui/react-utilities");
|
|
17
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
18
|
+
function createHTMLElementWalker(root, filter = ()=>NodeFilter.FILTER_ACCEPT) {
|
|
19
|
+
let temporaryFilter;
|
|
20
|
+
const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
|
|
21
|
+
acceptNode (node) {
|
|
22
|
+
if (!(0, _reactUtilities.isHTMLElement)(node)) {
|
|
23
|
+
return NodeFilter.FILTER_REJECT;
|
|
24
|
+
}
|
|
25
|
+
const filterResult = filter(node);
|
|
26
|
+
var _temporaryFilter;
|
|
27
|
+
return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _temporaryFilter !== void 0 ? _temporaryFilter : filterResult : filterResult;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
get root () {
|
|
32
|
+
return treeWalker.root;
|
|
33
|
+
},
|
|
34
|
+
get currentElement () {
|
|
35
|
+
return treeWalker.currentNode;
|
|
36
|
+
},
|
|
37
|
+
set currentElement (element){
|
|
38
|
+
treeWalker.currentNode = element;
|
|
39
|
+
},
|
|
40
|
+
firstChild: (localFilter)=>{
|
|
41
|
+
temporaryFilter = localFilter;
|
|
42
|
+
const result = treeWalker.firstChild();
|
|
43
|
+
temporaryFilter = undefined;
|
|
44
|
+
return result;
|
|
45
|
+
},
|
|
46
|
+
lastChild: (localFilter)=>{
|
|
47
|
+
temporaryFilter = localFilter;
|
|
48
|
+
const result = treeWalker.lastChild();
|
|
49
|
+
temporaryFilter = undefined;
|
|
50
|
+
return result;
|
|
51
|
+
},
|
|
52
|
+
nextElement: (localFilter)=>{
|
|
53
|
+
temporaryFilter = localFilter;
|
|
54
|
+
const result = treeWalker.nextNode();
|
|
55
|
+
temporaryFilter = undefined;
|
|
56
|
+
return result;
|
|
57
|
+
},
|
|
58
|
+
nextSibling: (localFilter)=>{
|
|
59
|
+
temporaryFilter = localFilter;
|
|
60
|
+
const result = treeWalker.nextSibling();
|
|
61
|
+
temporaryFilter = undefined;
|
|
62
|
+
return result;
|
|
63
|
+
},
|
|
64
|
+
parentElement: (localFilter)=>{
|
|
65
|
+
temporaryFilter = localFilter;
|
|
66
|
+
const result = treeWalker.parentNode();
|
|
67
|
+
temporaryFilter = undefined;
|
|
68
|
+
return result;
|
|
69
|
+
},
|
|
70
|
+
previousElement: (localFilter)=>{
|
|
71
|
+
temporaryFilter = localFilter;
|
|
72
|
+
const result = treeWalker.previousNode();
|
|
73
|
+
temporaryFilter = undefined;
|
|
74
|
+
return result;
|
|
75
|
+
},
|
|
76
|
+
previousSibling: (localFilter)=>{
|
|
77
|
+
temporaryFilter = localFilter;
|
|
78
|
+
const result = treeWalker.previousSibling();
|
|
79
|
+
temporaryFilter = undefined;
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
const useHTMLElementWalkerRef = (filter)=>{
|
|
85
|
+
const walkerRef = _react.useRef();
|
|
86
|
+
const rootRefCallback = (element1)=>{
|
|
87
|
+
if (!element1) {
|
|
88
|
+
walkerRef.current = undefined;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
walkerRef.current = createHTMLElementWalker(element1, filter);
|
|
92
|
+
};
|
|
93
|
+
return [
|
|
94
|
+
walkerRef,
|
|
95
|
+
rootRefCallback
|
|
96
|
+
];
|
|
86
97
|
};
|
|
87
|
-
exports.useHTMLElementWalkerRef = useHTMLElementWalkerRef;
|
|
88
|
-
//# sourceMappingURL=useHTMLElementWalker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["useHTMLElementWalker.js"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nimport * as React from 'react';\nexport function createHTMLElementWalker(root, filter = ()=>NodeFilter.FILTER_ACCEPT) {\n let temporaryFilter;\n const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n if (!isHTMLElement(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n const filterResult = filter(node);\n var _temporaryFilter;\n return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _temporaryFilter !== void 0 ? _temporaryFilter : filterResult : filterResult;\n }\n });\n return {\n get root () {\n return treeWalker.root;\n },\n get currentElement () {\n return treeWalker.currentNode;\n },\n set currentElement (element){\n treeWalker.currentNode = element;\n },\n firstChild: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.firstChild();\n temporaryFilter = undefined;\n return result;\n },\n lastChild: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.lastChild();\n temporaryFilter = undefined;\n return result;\n },\n nextElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.nextNode();\n temporaryFilter = undefined;\n return result;\n },\n nextSibling: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.nextSibling();\n temporaryFilter = undefined;\n return result;\n },\n parentElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.parentNode();\n temporaryFilter = undefined;\n return result;\n },\n previousElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.previousNode();\n temporaryFilter = undefined;\n return result;\n },\n previousSibling: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.previousSibling();\n temporaryFilter = undefined;\n return result;\n }\n };\n}\nexport const useHTMLElementWalkerRef = (filter)=>{\n const walkerRef = React.useRef();\n const rootRefCallback = (element1)=>{\n if (!element1) {\n walkerRef.current = undefined;\n return;\n }\n walkerRef.current = createHTMLElementWalker(element1, filter);\n };\n return [\n walkerRef,\n rootRefCallback\n ];\n};\n"],"names":["createHTMLElementWalker","useHTMLElementWalkerRef","root","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","document","createTreeWalker","SHOW_ELEMENT","acceptNode","node","isHTMLElement","FILTER_REJECT","filterResult","_temporaryFilter","currentElement","currentNode","element","firstChild","localFilter","result","undefined","lastChild","nextElement","nextNode","nextSibling","parentElement","parentNode","previousElement","previousNode","previousSibling","walkerRef","React","useRef","rootRefCallback","element1","current"],"mappings":";;;;;;;;;;;IAEgBA,uBAAuB,MAAvBA;IAkEHC,uBAAuB,MAAvBA;;;gCApEiB;6DACP;AAChB,SAASD,wBAAwBE,IAAI,EAAEC,SAAS,IAAIC,WAAWC,aAAa,EAAE;IACjF,IAAIC;IACJ,MAAMC,aAAaC,SAASC,gBAAgB,CAACP,MAAME,WAAWM,YAAY,EAAE;QACxEC,YAAYC,IAAI,EAAE;YACd,IAAI,CAACC,IAAAA,6BAAa,EAACD,OAAO;gBACtB,OAAOR,WAAWU,aAAa;YACnC,CAAC;YACD,MAAMC,eAAeZ,OAAOS;YAC5B,IAAII;YACJ,OAAOD,iBAAiBX,WAAWC,aAAa,GAAG,AAACW,CAAAA,mBAAmBV,oBAAoB,IAAI,IAAIA,oBAAoB,KAAK,IAAI,KAAK,IAAIA,gBAAgBM,KAAK,AAAD,MAAO,IAAI,IAAII,qBAAqB,KAAK,IAAIA,mBAAmBD,YAAY,GAAGA,YAAY;QAC5P;IACJ;IACA,OAAO;QACH,IAAIb,QAAQ;YACR,OAAOK,WAAWL,IAAI;QAC1B;QACA,IAAIe,kBAAkB;YAClB,OAAOV,WAAWW,WAAW;QACjC;QACA,IAAID,gBAAgBE,QAAQ;YACxBZ,WAAWW,WAAW,GAAGC;QAC7B;QACAC,YAAY,CAACC,cAAc;YACvBf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWa,UAAU;YACpCd,kBAAkBiB;YAClB,OAAOD;QACX;QACAE,WAAW,CAACH,cAAc;YACtBf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWiB,SAAS;YACnClB,kBAAkBiB;YAClB,OAAOD;QACX;QACAG,aAAa,CAACJ,cAAc;YACxBf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWmB,QAAQ;YAClCpB,kBAAkBiB;YAClB,OAAOD;QACX;QACAK,aAAa,CAACN,cAAc;YACxBf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWoB,WAAW;YACrCrB,kBAAkBiB;YAClB,OAAOD;QACX;QACAM,eAAe,CAACP,cAAc;YAC1Bf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWsB,UAAU;YACpCvB,kBAAkBiB;YAClB,OAAOD;QACX;QACAQ,iBAAiB,CAACT,cAAc;YAC5Bf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWwB,YAAY;YACtCzB,kBAAkBiB;YAClB,OAAOD;QACX;QACAU,iBAAiB,CAACX,cAAc;YAC5Bf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWyB,eAAe;YACzC1B,kBAAkBiB;YAClB,OAAOD;QACX;IACJ;AACJ;AACO,MAAMrB,0BAA0B,CAACE,SAAS;IAC7C,MAAM8B,YAAYC,OAAMC,MAAM;IAC9B,MAAMC,kBAAkB,CAACC,WAAW;QAChC,IAAI,CAACA,UAAU;YACXJ,UAAUK,OAAO,GAAGf;YACpB;QACJ,CAAC;QACDU,UAAUK,OAAO,GAAGtC,wBAAwBqC,UAAUlC;IAC1D;IACA,OAAO;QACH8B;QACAG;KACH;AACL"}
|
|
@@ -1,66 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
5
|
+
Object.defineProperty(exports, "useNestedTreeNavigation", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>useNestedTreeNavigation
|
|
8
|
+
});
|
|
9
|
+
const _reactUtilities = require("@fluentui/react-utilities");
|
|
10
|
+
const _useHTMLElementWalker = require("./useHTMLElementWalker");
|
|
11
|
+
const _nextTypeAheadElement = require("../utils/nextTypeAheadElement");
|
|
12
|
+
const _tokens = require("../utils/tokens");
|
|
13
|
+
const _treeItemFilter = require("../utils/treeItemFilter");
|
|
14
|
+
const _useRovingTabIndexes = require("./useRovingTabIndexes");
|
|
13
15
|
function useNestedTreeNavigation() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
16
|
+
const [{ rove }, rovingRootRef] = (0, _useRovingTabIndexes.useRovingTabIndex)(_treeItemFilter.treeItemFilter);
|
|
17
|
+
const [walkerRef, rootRef] = (0, _useHTMLElementWalker.useHTMLElementWalkerRef)(_treeItemFilter.treeItemFilter);
|
|
18
|
+
const getNextElement = (data)=>{
|
|
19
|
+
if (!walkerRef.current) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const treeItemWalker = walkerRef.current;
|
|
23
|
+
switch(data.type){
|
|
24
|
+
case _tokens.treeDataTypes.Click:
|
|
25
|
+
return data.target;
|
|
26
|
+
case _tokens.treeDataTypes.TypeAhead:
|
|
27
|
+
treeItemWalker.currentElement = data.target;
|
|
28
|
+
return (0, _nextTypeAheadElement.nextTypeAheadElement)(treeItemWalker, data.event.key);
|
|
29
|
+
case _tokens.treeDataTypes.ArrowLeft:
|
|
30
|
+
treeItemWalker.currentElement = data.target;
|
|
31
|
+
return treeItemWalker.parentElement();
|
|
32
|
+
case _tokens.treeDataTypes.ArrowRight:
|
|
33
|
+
treeItemWalker.currentElement = data.target;
|
|
34
|
+
return treeItemWalker.firstChild();
|
|
35
|
+
case _tokens.treeDataTypes.End:
|
|
36
|
+
treeItemWalker.currentElement = treeItemWalker.root;
|
|
37
|
+
return lastChildRecursive(treeItemWalker);
|
|
38
|
+
case _tokens.treeDataTypes.Home:
|
|
39
|
+
treeItemWalker.currentElement = treeItemWalker.root;
|
|
40
|
+
return treeItemWalker.firstChild();
|
|
41
|
+
case _tokens.treeDataTypes.ArrowDown:
|
|
42
|
+
treeItemWalker.currentElement = data.target;
|
|
43
|
+
return treeItemWalker.nextElement();
|
|
44
|
+
case _tokens.treeDataTypes.ArrowUp:
|
|
45
|
+
treeItemWalker.currentElement = data.target;
|
|
46
|
+
return treeItemWalker.previousElement();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
function navigate(data) {
|
|
50
|
+
const nextElement = getNextElement(data);
|
|
51
|
+
if (nextElement) {
|
|
52
|
+
rove(nextElement);
|
|
53
|
+
}
|
|
47
54
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
rove(nextElement);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return [navigate, react_utilities_1.useMergedRefs(rootRef, rovingRootRef)];
|
|
55
|
+
return [
|
|
56
|
+
navigate,
|
|
57
|
+
(0, _reactUtilities.useMergedRefs)(rootRef, rovingRootRef)
|
|
58
|
+
];
|
|
56
59
|
}
|
|
57
|
-
exports.useNestedTreeNavigation = useNestedTreeNavigation;
|
|
58
60
|
function lastChildRecursive(walker) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
let lastElement = null;
|
|
62
|
+
let nextElement = null;
|
|
63
|
+
while(nextElement = walker.lastChild()){
|
|
64
|
+
lastElement = nextElement;
|
|
65
|
+
}
|
|
66
|
+
return lastElement;
|
|
65
67
|
}
|
|
66
|
-
//# sourceMappingURL=useNestedTreeNavigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["useNestedTreeNavigation.js"],"sourcesContent":["import { useMergedRefs } from '@fluentui/react-utilities';\nimport { useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\nexport function useNestedTreeNavigation() {\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":["useNestedTreeNavigation","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;sCACU;sCACH;wBACP;gCACC;qCACG;AAC3B,SAASA,0BAA0B;IACtC,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"}
|
|
@@ -1,29 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Object.defineProperty(exports, "useOpenItemsState", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>useOpenItemsState
|
|
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 _immutableSet = require("../utils/ImmutableSet");
|
|
10
13
|
function useOpenItemsState(props) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const [openItems, setOpenItems] = (0, _reactUtilities.useControllableState)({
|
|
15
|
+
state: _react.useMemo(()=>props.openItems && (0, _immutableSet.createImmutableSet)(props.openItems), [
|
|
16
|
+
props.openItems
|
|
17
|
+
]),
|
|
18
|
+
defaultState: props.defaultOpenItems && (()=>(0, _immutableSet.createImmutableSet)(props.defaultOpenItems)),
|
|
19
|
+
initialState: _immutableSet.emptyImmutableSet
|
|
20
|
+
});
|
|
21
|
+
const updateOpenItems = (0, _reactUtilities.useEventCallback)((data)=>setOpenItems((currentOpenItems)=>createNextOpenItems(data, currentOpenItems)));
|
|
22
|
+
return [
|
|
23
|
+
openItems,
|
|
24
|
+
updateOpenItems
|
|
25
|
+
];
|
|
18
26
|
}
|
|
19
|
-
exports.useOpenItemsState = useOpenItemsState;
|
|
20
27
|
function createNextOpenItems(data, previousOpenItems) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
if (data.value === null) {
|
|
29
|
+
return previousOpenItems;
|
|
30
|
+
}
|
|
31
|
+
const previousOpenItemsHasId = previousOpenItems.has(data.value);
|
|
32
|
+
if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {
|
|
33
|
+
return previousOpenItems;
|
|
34
|
+
}
|
|
35
|
+
const nextOpenItems = (0, _immutableSet.createImmutableSet)(previousOpenItems);
|
|
36
|
+
return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);
|
|
28
37
|
}
|
|
29
|
-
//# sourceMappingURL=useOpenItemsState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["useOpenItemsState.js"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createImmutableSet, emptyImmutableSet } from '../utils/ImmutableSet';\nexport function useOpenItemsState(props) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(()=>props.openItems && createImmutableSet(props.openItems), [\n props.openItems\n ]),\n defaultState: props.defaultOpenItems && (()=>createImmutableSet(props.defaultOpenItems)),\n initialState: emptyImmutableSet\n });\n const updateOpenItems = useEventCallback((data)=>setOpenItems((currentOpenItems)=>createNextOpenItems(data, currentOpenItems)));\n return [\n openItems,\n updateOpenItems\n ];\n}\nfunction createNextOpenItems(data, previousOpenItems) {\n if (data.value === null) {\n return previousOpenItems;\n }\n const previousOpenItemsHasId = previousOpenItems.has(data.value);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = createImmutableSet(previousOpenItems);\n return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);\n}\n"],"names":["useOpenItemsState","props","openItems","setOpenItems","useControllableState","state","React","useMemo","createImmutableSet","defaultState","defaultOpenItems","initialState","emptyImmutableSet","updateOpenItems","useEventCallback","data","currentOpenItems","createNextOpenItems","previousOpenItems","value","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"mappings":";;;;+BAGgBA;;aAAAA;;;gCAHuC;6DAChC;8BAC+B;AAC/C,SAASA,kBAAkBC,KAAK,EAAE;IACrC,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,oCAAoB,EAAC;QACnDC,OAAOC,OAAMC,OAAO,CAAC,IAAIN,MAAMC,SAAS,IAAIM,IAAAA,gCAAkB,EAACP,MAAMC,SAAS,GAAG;YAC7ED,MAAMC,SAAS;SAClB;QACDO,cAAcR,MAAMS,gBAAgB,IAAK,CAAA,IAAIF,IAAAA,gCAAkB,EAACP,MAAMS,gBAAgB,CAAA;QACtFC,cAAcC,+BAAiB;IACnC;IACA,MAAMC,kBAAkBC,IAAAA,gCAAgB,EAAC,CAACC,OAAOZ,aAAa,CAACa,mBAAmBC,oBAAoBF,MAAMC;IAC5G,OAAO;QACHd;QACAW;KACH;AACL;AACA,SAASI,oBAAoBF,IAAI,EAAEG,iBAAiB,EAAE;IAClD,IAAIH,KAAKI,KAAK,KAAK,IAAI,EAAE;QACrB,OAAOD;IACX,CAAC;IACD,MAAME,yBAAyBF,kBAAkBG,GAAG,CAACN,KAAKI,KAAK;IAC/D,IAAIJ,KAAKO,IAAI,GAAGF,yBAAyB,CAACA,sBAAsB,EAAE;QAC9D,OAAOF;IACX,CAAC;IACD,MAAMK,gBAAgBf,IAAAA,gCAAkB,EAACU;IACzC,OAAOH,KAAKO,IAAI,GAAGC,cAAcC,GAAG,CAACT,KAAKI,KAAK,IAAII,cAAcE,MAAM,CAACV,KAAKI,KAAK,CAAC;AACvF"}
|
|
@@ -1,60 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
5
|
+
Object.defineProperty(exports, "useRovingTabIndex", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>useRovingTabIndex
|
|
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 _useHTMLElementWalker = require("./useHTMLElementWalker");
|
|
13
13
|
function useRovingTabIndex(filter) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
14
|
+
const currentElementRef = _react.useRef();
|
|
15
|
+
const [walkerRef, rootRef] = (0, _useHTMLElementWalker.useHTMLElementWalkerRef)(filter);
|
|
16
|
+
const rootRefCallback = (element)=>{
|
|
17
|
+
if (!element) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
reset();
|
|
21
|
+
};
|
|
22
|
+
function reset() {
|
|
23
|
+
if (!walkerRef.current) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const walker = walkerRef.current;
|
|
27
|
+
walker.currentElement = walker.root;
|
|
28
|
+
let tabbableChild = walker.firstChild((element)=>element.tabIndex === 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP);
|
|
29
|
+
walker.currentElement = walker.root;
|
|
30
|
+
tabbableChild !== null && tabbableChild !== void 0 ? tabbableChild : tabbableChild = walker.firstChild();
|
|
31
|
+
if (!tabbableChild) {
|
|
32
|
+
if (process.env.NODE_ENV === 'development') {
|
|
33
|
+
// eslint-disable-next-line no-console
|
|
34
|
+
console.warn('useRovingTabIndexes: internal error, no tabbable element was found');
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
tabbableChild.tabIndex = 0;
|
|
39
|
+
currentElementRef.current = tabbableChild;
|
|
40
|
+
let nextElement = null;
|
|
41
|
+
while((nextElement = walker.nextElement()) && nextElement !== tabbableChild){
|
|
42
|
+
nextElement.tabIndex = -1;
|
|
43
|
+
}
|
|
43
44
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
function rove(nextElement) {
|
|
46
|
+
if (!currentElementRef.current) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
currentElementRef.current.tabIndex = -1;
|
|
50
|
+
nextElement.tabIndex = 0;
|
|
51
|
+
nextElement.focus();
|
|
52
|
+
currentElementRef.current = nextElement;
|
|
48
53
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
reset
|
|
57
|
-
}, react_utilities_1.useMergedRefs(rootRef, rootRefCallback)];
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
rove,
|
|
57
|
+
reset
|
|
58
|
+
},
|
|
59
|
+
(0, _reactUtilities.useMergedRefs)(rootRef, rootRefCallback)
|
|
60
|
+
];
|
|
58
61
|
}
|
|
59
|
-
exports.useRovingTabIndex = useRovingTabIndex;
|
|
60
|
-
//# sourceMappingURL=useRovingTabIndexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["useRovingTabIndexes.js"],"sourcesContent":["import { useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useHTMLElementWalkerRef } from './useHTMLElementWalker';\n/**\n * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex\n */ export function useRovingTabIndex(filter) {\n const currentElementRef = React.useRef();\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(filter);\n const rootRefCallback = (element)=>{\n if (!element) {\n return;\n }\n reset();\n };\n function reset() {\n if (!walkerRef.current) {\n return;\n }\n const walker = walkerRef.current;\n walker.currentElement = walker.root;\n let tabbableChild = walker.firstChild((element)=>element.tabIndex === 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP);\n walker.currentElement = walker.root;\n tabbableChild !== null && tabbableChild !== void 0 ? tabbableChild : tabbableChild = walker.firstChild();\n if (!tabbableChild) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('useRovingTabIndexes: internal error, no tabbable element was found');\n }\n return;\n }\n tabbableChild.tabIndex = 0;\n currentElementRef.current = tabbableChild;\n let nextElement = null;\n while((nextElement = walker.nextElement()) && nextElement !== tabbableChild){\n nextElement.tabIndex = -1;\n }\n }\n function rove(nextElement) {\n if (!currentElementRef.current) {\n return;\n }\n currentElementRef.current.tabIndex = -1;\n nextElement.tabIndex = 0;\n nextElement.focus();\n currentElementRef.current = nextElement;\n }\n return [\n {\n rove,\n reset\n },\n useMergedRefs(rootRef, rootRefCallback)\n ];\n}\n"],"names":["useRovingTabIndex","filter","currentElementRef","React","useRef","walkerRef","rootRef","useHTMLElementWalkerRef","rootRefCallback","element","reset","current","walker","currentElement","root","tabbableChild","firstChild","tabIndex","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","process","env","NODE_ENV","console","warn","nextElement","rove","focus","useMergedRefs"],"mappings":";;;;+BAKoBA;;aAAAA;;;gCALU;6DACP;sCACiB;AAG7B,SAASA,kBAAkBC,MAAM,EAAE;IAC1C,MAAMC,oBAAoBC,OAAMC,MAAM;IACtC,MAAM,CAACC,WAAWC,QAAQ,GAAGC,IAAAA,6CAAuB,EAACN;IACrD,MAAMO,kBAAkB,CAACC,UAAU;QAC/B,IAAI,CAACA,SAAS;YACV;QACJ,CAAC;QACDC;IACJ;IACA,SAASA,QAAQ;QACb,IAAI,CAACL,UAAUM,OAAO,EAAE;YACpB;QACJ,CAAC;QACD,MAAMC,SAASP,UAAUM,OAAO;QAChCC,OAAOC,cAAc,GAAGD,OAAOE,IAAI;QACnC,IAAIC,gBAAgBH,OAAOI,UAAU,CAAC,CAACP,UAAUA,QAAQQ,QAAQ,KAAK,IAAIC,WAAWC,aAAa,GAAGD,WAAWE,WAAW;QAC3HR,OAAOC,cAAc,GAAGD,OAAOE,IAAI;QACnCC,kBAAkB,IAAI,IAAIA,kBAAkB,KAAK,IAAIA,gBAAgBA,gBAAgBH,OAAOI,UAAU,EAAE;QACxG,IAAI,CAACD,eAAe;YAChB,IAAIM,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;gBACxC,sCAAsC;gBACtCC,QAAQC,IAAI,CAAC;YACjB,CAAC;YACD;QACJ,CAAC;QACDV,cAAcE,QAAQ,GAAG;QACzBf,kBAAkBS,OAAO,GAAGI;QAC5B,IAAIW,cAAc,IAAI;QACtB,MAAM,AAACA,CAAAA,cAAcd,OAAOc,WAAW,EAAC,KAAMA,gBAAgBX,cAAc;YACxEW,YAAYT,QAAQ,GAAG,CAAC;QAC5B;IACJ;IACA,SAASU,KAAKD,WAAW,EAAE;QACvB,IAAI,CAACxB,kBAAkBS,OAAO,EAAE;YAC5B;QACJ,CAAC;QACDT,kBAAkBS,OAAO,CAACM,QAAQ,GAAG,CAAC;QACtCS,YAAYT,QAAQ,GAAG;QACvBS,YAAYE,KAAK;QACjB1B,kBAAkBS,OAAO,GAAGe;IAChC;IACA,OAAO;QACH;YACIC;YACAjB;QACJ;QACAmB,IAAAA,6BAAa,EAACvB,SAASE;KAC1B;AACL"}
|