@fluentui/react-tree 9.0.0-beta.24 → 9.0.0-beta.26
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 +118 -1
- package/CHANGELOG.md +32 -2
- package/dist/index.d.ts +192 -52
- package/lib/components/Tree/Tree.types.js +1 -1
- package/lib/components/Tree/Tree.types.js.map +1 -1
- package/lib/components/Tree/useRootTree.js +71 -73
- package/lib/components/Tree/useRootTree.js.map +1 -1
- package/lib/components/Tree/useSubtree.js +4 -0
- package/lib/components/Tree/useSubtree.js.map +1 -1
- package/lib/components/Tree/useTreeContextValues.js +4 -2
- package/lib/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib/components/TreeItem/renderTreeItem.js +4 -2
- package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItem.js +104 -18
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +15 -6
- 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 +14 -30
- 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.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib/contexts/index.js +1 -0
- package/lib/contexts/index.js.map +1 -1
- package/lib/contexts/treeContext.js +5 -2
- package/lib/contexts/treeContext.js.map +1 -1
- package/lib/contexts/treeItemContext.js +0 -4
- package/lib/contexts/treeItemContext.js.map +1 -1
- package/lib/contexts/treeItemSlotsContext.js +9 -0
- package/lib/contexts/treeItemSlotsContext.js.map +1 -0
- package/lib/hooks/index.js +3 -1
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useControllableOpenItems.js +25 -0
- package/lib/hooks/useControllableOpenItems.js.map +1 -0
- package/lib/hooks/useFlatControllableCheckedItems.js +76 -0
- package/lib/hooks/useFlatControllableCheckedItems.js.map +1 -0
- package/lib/hooks/useFlatTree.js +17 -6
- package/lib/hooks/useFlatTree.js.map +1 -1
- package/lib/hooks/useNestedControllableCheckedItems.js +107 -0
- package/lib/hooks/useNestedControllableCheckedItems.js.map +1 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/ImmutableMap.js +37 -0
- package/lib/utils/ImmutableMap.js.map +1 -0
- package/lib/utils/ImmutableSet.js +17 -9
- package/lib/utils/ImmutableSet.js.map +1 -1
- package/lib/utils/createFlatTreeItems.js +60 -8
- package/lib/utils/createFlatTreeItems.js.map +1 -1
- package/lib/utils/flattenTree.js +0 -5
- 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/components/Tree/Tree.types.js +0 -2
- package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
- package/lib-commonjs/components/Tree/useRootTree.js +70 -72
- package/lib-commonjs/components/Tree/useRootTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useSubtree.js +4 -0
- package/lib-commonjs/components/Tree/useSubtree.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/components/TreeItem/renderTreeItem.js +3 -1
- package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItem.js +103 -17
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +16 -6
- 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 +14 -29
- 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/contexts/index.js +1 -0
- package/lib-commonjs/contexts/index.js.map +1 -1
- package/lib-commonjs/contexts/treeContext.js +4 -1
- package/lib-commonjs/contexts/treeContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemContext.js +0 -4
- package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemSlotsContext.js +25 -0
- package/lib-commonjs/contexts/treeItemSlotsContext.js.map +1 -0
- package/lib-commonjs/hooks/index.js +3 -1
- package/lib-commonjs/hooks/index.js.map +1 -1
- package/lib-commonjs/hooks/{useOpenItemsState.js → useControllableOpenItems.js} +15 -14
- package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -0
- package/lib-commonjs/hooks/useFlatControllableCheckedItems.js +91 -0
- package/lib-commonjs/hooks/useFlatControllableCheckedItems.js.map +1 -0
- package/lib-commonjs/hooks/useFlatTree.js +16 -5
- package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
- package/lib-commonjs/hooks/useNestedControllableCheckedItems.js +116 -0
- package/lib-commonjs/hooks/useNestedControllableCheckedItems.js.map +1 -0
- package/lib-commonjs/utils/ImmutableMap.js +45 -0
- package/lib-commonjs/utils/ImmutableMap.js.map +1 -0
- package/lib-commonjs/utils/ImmutableSet.js +22 -16
- package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
- package/lib-commonjs/utils/createFlatTreeItems.js +60 -8
- package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -1
- package/lib-commonjs/utils/flattenTree.js +0 -5
- package/lib-commonjs/utils/flattenTree.js.map +1 -1
- package/lib-commonjs/utils/tokens.js +2 -1
- package/lib-commonjs/utils/tokens.js.map +1 -1
- package/package.json +9 -7
- package/lib/hooks/useOpenItemsState.js +0 -28
- package/lib/hooks/useOpenItemsState.js.map +0 -1
- package/lib-commonjs/hooks/useOpenItemsState.js.map +0 -1
|
@@ -13,8 +13,7 @@ function _export(target, all) {
|
|
|
13
13
|
}
|
|
14
14
|
_export(exports, {
|
|
15
15
|
createFlatTreeItems: ()=>createFlatTreeItems,
|
|
16
|
-
flatTreeRootId: ()=>flatTreeRootId
|
|
17
|
-
VisibleFlatTreeItemGenerator: ()=>VisibleFlatTreeItemGenerator
|
|
16
|
+
flatTreeRootId: ()=>flatTreeRootId
|
|
18
17
|
});
|
|
19
18
|
function createFlatTreeItems(flatTreeItemProps) {
|
|
20
19
|
const root = createFlatTreeRootItem();
|
|
@@ -40,30 +39,38 @@ function createFlatTreeItems(flatTreeItemProps) {
|
|
|
40
39
|
const itemType = (_treeItemProps_itemType = treeItemProps.itemType) !== null && _treeItemProps_itemType !== void 0 ? _treeItemProps_itemType : treeItemProps.value === undefined || (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentValue) !== treeItemProps.value ? 'leaf' : 'branch';
|
|
41
40
|
var _currentParent_level;
|
|
42
41
|
const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;
|
|
43
|
-
const currentChildrenSize = ++currentParent.childrenSize;
|
|
44
42
|
const flatTreeItem = {
|
|
45
43
|
value: treeItemProps.value,
|
|
46
44
|
getTreeItemProps: ()=>({
|
|
47
45
|
...treeItemProps,
|
|
48
46
|
'aria-level': currentLevel,
|
|
49
47
|
'aria-posinset': currentChildrenSize,
|
|
50
|
-
'aria-setsize': currentParent.
|
|
48
|
+
'aria-setsize': currentParent.childrenValues.length,
|
|
51
49
|
itemType
|
|
52
50
|
}),
|
|
53
51
|
level: currentLevel,
|
|
54
52
|
parentValue,
|
|
55
|
-
|
|
53
|
+
childrenValues: [],
|
|
56
54
|
index: -1
|
|
57
55
|
};
|
|
56
|
+
const currentChildrenSize = currentParent.childrenValues.push(flatTreeItem.value);
|
|
58
57
|
itemsPerValue.set(flatTreeItem.value, flatTreeItem);
|
|
59
58
|
items.push(flatTreeItem);
|
|
60
59
|
}
|
|
60
|
+
var _itemsPerValue_get_parentValue, _itemsPerValue_get;
|
|
61
61
|
const flatTreeItems = {
|
|
62
62
|
root,
|
|
63
63
|
size: items.length,
|
|
64
64
|
getByIndex: (index)=>items[index],
|
|
65
|
+
getParent: (key)=>{
|
|
66
|
+
var _itemsPerValue_get1;
|
|
67
|
+
return (_itemsPerValue_get = itemsPerValue.get((_itemsPerValue_get_parentValue = (_itemsPerValue_get1 = itemsPerValue.get(key)) === null || _itemsPerValue_get1 === void 0 ? void 0 : _itemsPerValue_get1.parentValue) !== null && _itemsPerValue_get_parentValue !== void 0 ? _itemsPerValue_get_parentValue : root.value)) !== null && _itemsPerValue_get !== void 0 ? _itemsPerValue_get : root;
|
|
68
|
+
},
|
|
65
69
|
get: (key)=>itemsPerValue.get(key),
|
|
66
|
-
|
|
70
|
+
subtree: (key)=>FlatTreeSubtreeGenerator(key, flatTreeItems),
|
|
71
|
+
children: (key)=>FlatTreeChildrenGenerator(key, flatTreeItems),
|
|
72
|
+
ancestors: (key)=>FlatTreeAncestorsGenerator(key, flatTreeItems),
|
|
73
|
+
visibleItems: (openItems)=>VisibleFlatTreeItemGenerator(openItems, flatTreeItems)
|
|
67
74
|
};
|
|
68
75
|
return flatTreeItems;
|
|
69
76
|
}
|
|
@@ -86,7 +93,7 @@ function createFlatTreeRootItem() {
|
|
|
86
93
|
itemType: 'branch'
|
|
87
94
|
};
|
|
88
95
|
},
|
|
89
|
-
|
|
96
|
+
childrenValues: [],
|
|
90
97
|
get index () {
|
|
91
98
|
if (process.env.NODE_ENV !== 'production') {
|
|
92
99
|
// eslint-disable-next-line no-console
|
|
@@ -97,6 +104,51 @@ function createFlatTreeRootItem() {
|
|
|
97
104
|
level: 0
|
|
98
105
|
};
|
|
99
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Generator that returns all subtree of a given flat tree item
|
|
109
|
+
* @param key the key of the item to get the subtree from
|
|
110
|
+
*/ // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
111
|
+
function* FlatTreeSubtreeGenerator(key, flatTreeItems) {
|
|
112
|
+
const item = flatTreeItems.get(key);
|
|
113
|
+
if (!item || item.childrenValues.length === 0) {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
let counter = item.childrenValues.length;
|
|
117
|
+
let index = item.index;
|
|
118
|
+
while(counter > 0){
|
|
119
|
+
const children = flatTreeItems.getByIndex(++index);
|
|
120
|
+
yield children;
|
|
121
|
+
counter += children.childrenValues.length - 1;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Generator that returns all children of a given flat tree item
|
|
126
|
+
* @param key the key of the item to get the children from
|
|
127
|
+
*/ // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
128
|
+
function* FlatTreeChildrenGenerator(key, flatTreeItems) {
|
|
129
|
+
const item = flatTreeItems.get(key);
|
|
130
|
+
if (!item || item.childrenValues.length === 0) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
for (const childValue of item.childrenValues){
|
|
134
|
+
yield flatTreeItems.get(childValue);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Generator that returns all ancestors of a given flat tree item
|
|
139
|
+
* @param key the key of the item to get the children from
|
|
140
|
+
*/ // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
141
|
+
function* FlatTreeAncestorsGenerator(key, flatTreeItems) {
|
|
142
|
+
let parent = flatTreeItems.getParent(key);
|
|
143
|
+
while(parent !== flatTreeItems.root){
|
|
144
|
+
yield parent;
|
|
145
|
+
parent = flatTreeItems.getParent(parent.value);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Generator that returns all visible items of a given flat tree
|
|
150
|
+
* @param openItems the open items of the tree
|
|
151
|
+
*/ // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
100
152
|
function* VisibleFlatTreeItemGenerator(openItems, flatTreeItems) {
|
|
101
153
|
for(let index = 0, visibleIndex = 0; index < flatTreeItems.size; index++){
|
|
102
154
|
const item = flatTreeItems.getByIndex(index);
|
|
@@ -105,7 +157,7 @@ function* VisibleFlatTreeItemGenerator(openItems, flatTreeItems) {
|
|
|
105
157
|
yield item;
|
|
106
158
|
} else {
|
|
107
159
|
// Jump the amount of children the current item has, since those items will also be hidden
|
|
108
|
-
index += item.
|
|
160
|
+
index += item.childrenValues.length;
|
|
109
161
|
}
|
|
110
162
|
}
|
|
111
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createFlatTreeItems.js"],"sourcesContent":["/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */ export function createFlatTreeItems(flatTreeItemProps) {\n const root = createFlatTreeRootItem();\n const itemsPerValue = new Map([\n [\n root.value,\n root\n ]\n ]);\n const items = [];\n for(let index = 0; index < flatTreeItemProps.length; index++){\n const { parentValue =flatTreeRootId , ...treeItemProps } = flatTreeItemProps[index];\n const nextItemProps = flatTreeItemProps[index + 1];\n const currentParent = itemsPerValue.get(parentValue);\n if (!currentParent) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(`useFlatTree: item ${flatTreeItemProps[index].value} is wrongly positioned, did you properly ordered provided item props? make sure provided items are organized`);\n }\n break;\n }\n var _treeItemProps_itemType;\n const itemType = (_treeItemProps_itemType = treeItemProps.itemType) !== null && _treeItemProps_itemType !== void 0 ? _treeItemProps_itemType : treeItemProps.value === undefined || (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentValue) !== treeItemProps.value ? 'leaf' : 'branch';\n var _currentParent_level;\n const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;\n const currentChildrenSize = ++currentParent.childrenSize;\n const flatTreeItem = {\n value: treeItemProps.value,\n getTreeItemProps: ()=>({\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentChildrenSize,\n 'aria-setsize': currentParent.childrenSize,\n itemType\n }),\n level: currentLevel,\n parentValue,\n childrenSize: 0,\n index: -1\n };\n itemsPerValue.set(flatTreeItem.value, flatTreeItem);\n items.push(flatTreeItem);\n }\n const flatTreeItems = {\n root,\n size: items.length,\n getByIndex: (index)=>items[index],\n get: (key)=>itemsPerValue.get(key),\n set: (key, value)=>itemsPerValue.set(key, value)\n };\n return flatTreeItems;\n}\nexport const flatTreeRootId = '__fuiFlatTreeRoot';\nfunction createFlatTreeRootItem() {\n return {\n parentValue: undefined,\n value: flatTreeRootId,\n getTreeItemProps: ()=>{\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return {\n id: flatTreeRootId,\n value: flatTreeRootId,\n 'aria-setsize': -1,\n 'aria-level': -1,\n 'aria-posinset': -1,\n itemType: 'branch'\n };\n },\n childrenSize: 0,\n get index () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return -1;\n },\n level: 0\n };\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function* VisibleFlatTreeItemGenerator(openItems, flatTreeItems) {\n for(let index = 0, visibleIndex = 0; index < flatTreeItems.size; index++){\n const item = flatTreeItems.getByIndex(index);\n if (isItemVisible(item, openItems, flatTreeItems)) {\n item.index = visibleIndex++;\n yield item;\n } else {\n // Jump the amount of children the current item has, since those items will also be hidden\n index += item.childrenSize;\n }\n }\n}\nfunction isItemVisible(item, openItems, flatTreeItems) {\n if (item.level === 1) {\n return true;\n }\n while(item.parentValue && item.parentValue !== flatTreeItems.root.value){\n if (!openItems.has(item.parentValue)) {\n return false;\n }\n const parent = flatTreeItems.get(item.parentValue);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n return true;\n}\n"],"names":["createFlatTreeItems","flatTreeRootId","VisibleFlatTreeItemGenerator","flatTreeItemProps","root","createFlatTreeRootItem","itemsPerValue","Map","value","items","index","length","parentValue","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","_treeItemProps_itemType","itemType","undefined","_currentParent_level","currentLevel","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","set","push","flatTreeItems","size","getByIndex","key","id","openItems","visibleIndex","item","isItemVisible","has","parent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["createFlatTreeItems.js"],"sourcesContent":["/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */ export function createFlatTreeItems(flatTreeItemProps) {\n const root = createFlatTreeRootItem();\n const itemsPerValue = new Map([\n [\n root.value,\n root\n ]\n ]);\n const items = [];\n for(let index = 0; index < flatTreeItemProps.length; index++){\n const { parentValue =flatTreeRootId , ...treeItemProps } = flatTreeItemProps[index];\n const nextItemProps = flatTreeItemProps[index + 1];\n const currentParent = itemsPerValue.get(parentValue);\n if (!currentParent) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(`useFlatTree: item ${flatTreeItemProps[index].value} is wrongly positioned, did you properly ordered provided item props? make sure provided items are organized`);\n }\n break;\n }\n var _treeItemProps_itemType;\n const itemType = (_treeItemProps_itemType = treeItemProps.itemType) !== null && _treeItemProps_itemType !== void 0 ? _treeItemProps_itemType : treeItemProps.value === undefined || (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentValue) !== treeItemProps.value ? 'leaf' : 'branch';\n var _currentParent_level;\n const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;\n const flatTreeItem = {\n value: treeItemProps.value,\n getTreeItemProps: ()=>({\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentChildrenSize,\n 'aria-setsize': currentParent.childrenValues.length,\n itemType\n }),\n level: currentLevel,\n parentValue,\n childrenValues: [],\n index: -1\n };\n const currentChildrenSize = currentParent.childrenValues.push(flatTreeItem.value);\n itemsPerValue.set(flatTreeItem.value, flatTreeItem);\n items.push(flatTreeItem);\n }\n var _itemsPerValue_get_parentValue, _itemsPerValue_get;\n const flatTreeItems = {\n root,\n size: items.length,\n getByIndex: (index)=>items[index],\n getParent: (key)=>{\n var _itemsPerValue_get1;\n return (_itemsPerValue_get = itemsPerValue.get((_itemsPerValue_get_parentValue = (_itemsPerValue_get1 = itemsPerValue.get(key)) === null || _itemsPerValue_get1 === void 0 ? void 0 : _itemsPerValue_get1.parentValue) !== null && _itemsPerValue_get_parentValue !== void 0 ? _itemsPerValue_get_parentValue : root.value)) !== null && _itemsPerValue_get !== void 0 ? _itemsPerValue_get : root;\n },\n get: (key)=>itemsPerValue.get(key),\n subtree: (key)=>FlatTreeSubtreeGenerator(key, flatTreeItems),\n children: (key)=>FlatTreeChildrenGenerator(key, flatTreeItems),\n ancestors: (key)=>FlatTreeAncestorsGenerator(key, flatTreeItems),\n visibleItems: (openItems)=>VisibleFlatTreeItemGenerator(openItems, flatTreeItems)\n };\n return flatTreeItems;\n}\nexport const flatTreeRootId = '__fuiFlatTreeRoot';\nfunction createFlatTreeRootItem() {\n return {\n parentValue: undefined,\n value: flatTreeRootId,\n getTreeItemProps: ()=>{\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return {\n id: flatTreeRootId,\n value: flatTreeRootId,\n 'aria-setsize': -1,\n 'aria-level': -1,\n 'aria-posinset': -1,\n itemType: 'branch'\n };\n },\n childrenValues: [],\n get index () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return -1;\n },\n level: 0\n };\n}\n/**\n * Generator that returns all subtree of a given flat tree item\n * @param key the key of the item to get the subtree from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* FlatTreeSubtreeGenerator(key, flatTreeItems) {\n const item = flatTreeItems.get(key);\n if (!item || item.childrenValues.length === 0) {\n return [];\n }\n let counter = item.childrenValues.length;\n let index = item.index;\n while(counter > 0){\n const children = flatTreeItems.getByIndex(++index);\n yield children;\n counter += children.childrenValues.length - 1;\n }\n}\n/**\n * Generator that returns all children of a given flat tree item\n * @param key the key of the item to get the children from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* FlatTreeChildrenGenerator(key, flatTreeItems) {\n const item = flatTreeItems.get(key);\n if (!item || item.childrenValues.length === 0) {\n return;\n }\n for (const childValue of item.childrenValues){\n yield flatTreeItems.get(childValue);\n }\n}\n/**\n * Generator that returns all ancestors of a given flat tree item\n * @param key the key of the item to get the children from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* FlatTreeAncestorsGenerator(key, flatTreeItems) {\n let parent = flatTreeItems.getParent(key);\n while(parent !== flatTreeItems.root){\n yield parent;\n parent = flatTreeItems.getParent(parent.value);\n }\n}\n/**\n * Generator that returns all visible items of a given flat tree\n * @param openItems the open items of the tree\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* VisibleFlatTreeItemGenerator(openItems, flatTreeItems) {\n for(let index = 0, visibleIndex = 0; index < flatTreeItems.size; index++){\n const item = flatTreeItems.getByIndex(index);\n if (isItemVisible(item, openItems, flatTreeItems)) {\n item.index = visibleIndex++;\n yield item;\n } else {\n // Jump the amount of children the current item has, since those items will also be hidden\n index += item.childrenValues.length;\n }\n }\n}\nfunction isItemVisible(item, openItems, flatTreeItems) {\n if (item.level === 1) {\n return true;\n }\n while(item.parentValue && item.parentValue !== flatTreeItems.root.value){\n if (!openItems.has(item.parentValue)) {\n return false;\n }\n const parent = flatTreeItems.get(item.parentValue);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n return true;\n}\n"],"names":["createFlatTreeItems","flatTreeRootId","flatTreeItemProps","root","createFlatTreeRootItem","itemsPerValue","Map","value","items","index","length","parentValue","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","_treeItemProps_itemType","itemType","undefined","_currentParent_level","currentLevel","level","flatTreeItem","getTreeItemProps","currentChildrenSize","childrenValues","push","set","_itemsPerValue_get_parentValue","_itemsPerValue_get","flatTreeItems","size","getByIndex","getParent","key","_itemsPerValue_get1","subtree","FlatTreeSubtreeGenerator","children","FlatTreeChildrenGenerator","ancestors","FlatTreeAncestorsGenerator","visibleItems","openItems","VisibleFlatTreeItemGenerator","id","item","counter","childValue","parent","visibleIndex","isItemVisible","has"],"mappings":"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"}
|
|
@@ -6,18 +6,13 @@ Object.defineProperty(exports, "flattenTree_unstable", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>flattenTree_unstable
|
|
8
8
|
});
|
|
9
|
-
let count = 1;
|
|
10
9
|
function flattenTreeRecursive(items, parent, level = 1) {
|
|
11
10
|
return items.reduce((acc, { subtree , ...item }, index)=>{
|
|
12
|
-
var _item_id;
|
|
13
|
-
const id = (_item_id = item.id) !== null && _item_id !== void 0 ? _item_id : `fui-FlatTreeItem-${count++}`;
|
|
14
|
-
var _item_value;
|
|
15
11
|
const flatTreeItem = {
|
|
16
12
|
'aria-level': level,
|
|
17
13
|
'aria-posinset': index + 1,
|
|
18
14
|
'aria-setsize': items.length,
|
|
19
15
|
parentValue: parent === null || parent === void 0 ? void 0 : parent.value,
|
|
20
|
-
value: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : id,
|
|
21
16
|
...item
|
|
22
17
|
};
|
|
23
18
|
acc.push(flatTreeItem);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["flattenTree.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["flattenTree.js"],"sourcesContent":["function flattenTreeRecursive(items, parent, level = 1) {\n return items.reduce((acc, { subtree , ...item }, index)=>{\n const flatTreeItem = {\n 'aria-level': level,\n 'aria-posinset': index + 1,\n 'aria-setsize': items.length,\n parentValue: parent === null || parent === void 0 ? void 0 : parent.value,\n ...item\n };\n acc.push(flatTreeItem);\n if (subtree !== undefined) {\n acc.push(...flattenTreeRecursive(subtree, flatTreeItem, level + 1));\n }\n return acc;\n }, []);\n}\n/**\n * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`\n * @example\n * ```tsx\n * const defaultItems = flattenTree_unstable([\n * {\n * children: <TreeItemLayout>level 1, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 2</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 3</TreeItemLayout>,\n * },\n * ],\n * },\n * {\n * children: <TreeItemLayout>level 1, item 2</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 3, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 4, item 1</TreeItemLayout>,\n * },\n * ],\n * },\n * ],\n * },\n * ],\n * },\n * ]);\n * ```\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nexport const flattenTree_unstable = (items)=>flattenTreeRecursive(items);\n"],"names":["flattenTree_unstable","flattenTreeRecursive","items","parent","level","reduce","acc","subtree","item","index","flatTreeItem","length","parentValue","value","push","undefined"],"mappings":";;;;+BAwDaA;;aAAAA;;AAxDb,SAASC,qBAAqBC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,CAAC,EAAE;IACpD,OAAOF,MAAMG,MAAM,CAAC,CAACC,KAAK,EAAEC,QAAO,EAAG,GAAGC,MAAM,EAAEC,QAAQ;QACrD,MAAMC,eAAe;YACjB,cAAcN;YACd,iBAAiBK,QAAQ;YACzB,gBAAgBP,MAAMS,MAAM;YAC5BC,aAAaT,WAAW,IAAI,IAAIA,WAAW,KAAK,IAAI,KAAK,IAAIA,OAAOU,KAAK;YACzE,GAAGL,IAAI;QACX;QACAF,IAAIQ,IAAI,CAACJ;QACT,IAAIH,YAAYQ,WAAW;YACvBT,IAAIQ,IAAI,IAAIb,qBAAqBM,SAASG,cAAcN,QAAQ;QACpE,CAAC;QACD,OAAOE;IACX,GAAG,EAAE;AACT;AAyCO,MAAMN,uBAAuB,CAACE,QAAQD,qBAAqBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tokens.js"],"sourcesContent":["import { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Home, Enter } from '@fluentui/keyboard-keys';\nexport const treeItemLevelToken = '--fluent-TreeItem--level';\nexport const treeAvatarSize = {\n medium: 32,\n small: 24\n};\nexport const treeDataTypes = {\n ArrowLeft,\n ArrowRight,\n Enter,\n Click: 'Click',\n ExpandIconClick: 'ExpandIconClick',\n End,\n Home,\n ArrowUp,\n ArrowDown,\n TypeAhead: 'TypeAhead'\n};\n"],"names":["treeItemLevelToken","treeAvatarSize","treeDataTypes","medium","small","ArrowLeft","ArrowRight","Enter","Click","ExpandIconClick","End","Home","ArrowUp","ArrowDown","TypeAhead"],"mappings":";;;;;;;;;;;IACaA,kBAAkB,MAAlBA;IACAC,cAAc,MAAdA;IAIAC,aAAa,MAAbA;;8BAN+D;AACrE,MAAMF,qBAAqB;AAC3B,MAAMC,iBAAiB;IAC1BE,QAAQ;IACRC,OAAO;AACX;AACO,MAAMF,gBAAgB;IACzBG,WAAAA,uBAAS;IACTC,YAAAA,wBAAU;IACVC,OAAAA,mBAAK;IACLC,OAAO;IACPC,iBAAiB;IACjBC,KAAAA,iBAAG;IACHC,MAAAA,kBAAI;IACJC,SAAAA,qBAAO;IACPC,WAAAA,uBAAS;IACTC,WAAW;
|
|
1
|
+
{"version":3,"sources":["tokens.js"],"sourcesContent":["import { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Home, Enter } from '@fluentui/keyboard-keys';\nexport const treeItemLevelToken = '--fluent-TreeItem--level';\nexport const treeAvatarSize = {\n medium: 32,\n small: 24\n};\nexport const treeDataTypes = {\n ArrowLeft,\n ArrowRight,\n Enter,\n Click: 'Click',\n ExpandIconClick: 'ExpandIconClick',\n End,\n Home,\n ArrowUp,\n ArrowDown,\n TypeAhead: 'TypeAhead',\n Change: 'Change'\n};\n"],"names":["treeItemLevelToken","treeAvatarSize","treeDataTypes","medium","small","ArrowLeft","ArrowRight","Enter","Click","ExpandIconClick","End","Home","ArrowUp","ArrowDown","TypeAhead","Change"],"mappings":";;;;;;;;;;;IACaA,kBAAkB,MAAlBA;IACAC,cAAc,MAAdA;IAIAC,aAAa,MAAbA;;8BAN+D;AACrE,MAAMF,qBAAqB;AAC3B,MAAMC,iBAAiB;IAC1BE,QAAQ;IACRC,OAAO;AACX;AACO,MAAMF,gBAAgB;IACzBG,WAAAA,uBAAS;IACTC,YAAAA,wBAAU;IACVC,OAAAA,mBAAK;IACLC,OAAO;IACPC,iBAAiB;IACjBC,KAAAA,iBAAG;IACHC,MAAAA,kBAAI;IACJC,SAAAA,qBAAO;IACPC,WAAAA,uBAAS;IACTC,WAAW;IACXC,QAAQ;AACZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-tree",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.26",
|
|
4
4
|
"description": "React components for building web experiences",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@fluentui/eslint-plugin": "*",
|
|
31
31
|
"@fluentui/react-conformance": "*",
|
|
32
|
-
"@fluentui/react-conformance-griffel": "
|
|
32
|
+
"@fluentui/react-conformance-griffel": "*",
|
|
33
33
|
"@fluentui/scripts-api-extractor": "*",
|
|
34
34
|
"@fluentui/scripts-tasks": "*",
|
|
35
35
|
"@fluentui/scripts-cypress": "*",
|
|
@@ -37,17 +37,19 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@fluentui/keyboard-keys": "^9.0.3",
|
|
40
|
-
"@fluentui/react-aria": "^9.3.
|
|
41
|
-
"@fluentui/react-avatar": "^9.5.
|
|
42
|
-
"@fluentui/react-button": "^9.3.
|
|
40
|
+
"@fluentui/react-aria": "^9.3.27",
|
|
41
|
+
"@fluentui/react-avatar": "^9.5.13",
|
|
42
|
+
"@fluentui/react-button": "^9.3.24",
|
|
43
|
+
"@fluentui/react-checkbox": "^9.1.25",
|
|
43
44
|
"@fluentui/react-context-selector": "^9.1.26",
|
|
44
45
|
"@fluentui/react-icons": "^2.0.203",
|
|
45
|
-
"@fluentui/react-portal": "^9.3.
|
|
46
|
+
"@fluentui/react-portal": "^9.3.2",
|
|
47
|
+
"@fluentui/react-radio": "^9.1.25",
|
|
46
48
|
"@fluentui/react-shared-contexts": "^9.6.0",
|
|
47
49
|
"@fluentui/react-tabster": "^9.10.0",
|
|
48
50
|
"@fluentui/react-theme": "^9.1.9",
|
|
49
51
|
"@fluentui/react-utilities": "^9.10.1",
|
|
50
|
-
"@fluentui/react-jsx-runtime": "9.0.0-alpha.
|
|
52
|
+
"@fluentui/react-jsx-runtime": "9.0.0-alpha.12",
|
|
51
53
|
"@griffel/react": "^1.5.7",
|
|
52
54
|
"@swc/helpers": "^0.4.14"
|
|
53
55
|
},
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { useControllableState, useEventCallback } from '@fluentui/react-utilities';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { createImmutableSet, emptyImmutableSet } from '../utils/ImmutableSet';
|
|
4
|
-
export function useOpenItemsState(props) {
|
|
5
|
-
const [openItems, setOpenItems] = useControllableState({
|
|
6
|
-
state: React.useMemo(()=>props.openItems && createImmutableSet(props.openItems), [
|
|
7
|
-
props.openItems
|
|
8
|
-
]),
|
|
9
|
-
defaultState: props.defaultOpenItems && (()=>createImmutableSet(props.defaultOpenItems)),
|
|
10
|
-
initialState: emptyImmutableSet
|
|
11
|
-
});
|
|
12
|
-
const updateOpenItems = useEventCallback((data)=>setOpenItems((currentOpenItems)=>createNextOpenItems(data, currentOpenItems)));
|
|
13
|
-
return [
|
|
14
|
-
openItems,
|
|
15
|
-
updateOpenItems
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
function createNextOpenItems(data, previousOpenItems) {
|
|
19
|
-
if (data.value === null) {
|
|
20
|
-
return previousOpenItems;
|
|
21
|
-
}
|
|
22
|
-
const previousOpenItemsHasId = previousOpenItems.has(data.value);
|
|
23
|
-
if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {
|
|
24
|
-
return previousOpenItems;
|
|
25
|
-
}
|
|
26
|
-
const nextOpenItems = createImmutableSet(previousOpenItems);
|
|
27
|
-
return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);
|
|
28
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["useOpenItemsState.ts"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createImmutableSet, emptyImmutableSet, ImmutableSet } from '../utils/ImmutableSet';\nimport type { TreeOpenChangeData, TreeProps } from '../Tree';\n\nexport function useOpenItemsState(props: Pick<TreeProps, 'openItems' | 'defaultOpenItems'>) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => props.openItems && createImmutableSet(props.openItems), [props.openItems]),\n defaultState: props.defaultOpenItems && (() => createImmutableSet(props.defaultOpenItems)),\n initialState: emptyImmutableSet,\n });\n const updateOpenItems = useEventCallback((data: TreeOpenChangeData) =>\n setOpenItems(currentOpenItems => createNextOpenItems(data, currentOpenItems)),\n );\n return [openItems, updateOpenItems] as const;\n}\n\nfunction createNextOpenItems(data: TreeOpenChangeData, previousOpenItems: ImmutableSet<string>): ImmutableSet<string> {\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":["useControllableState","useEventCallback","React","createImmutableSet","emptyImmutableSet","useOpenItemsState","props","openItems","setOpenItems","state","useMemo","defaultState","defaultOpenItems","initialState","updateOpenItems","data","currentOpenItems","createNextOpenItems","previousOpenItems","value","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ,4BAA4B;AACnF,YAAYC,WAAW,QAAQ;AAC/B,SAASC,kBAAkB,EAAEC,iBAAiB,QAAsB,wBAAwB;AAG5F,OAAO,SAASC,kBAAkBC,KAAwD,EAAE;IAC1F,MAAM,CAACC,WAAWC,aAAa,GAAGR,qBAAqB;QACrDS,OAAOP,MAAMQ,OAAO,CAAC,IAAMJ,MAAMC,SAAS,IAAIJ,mBAAmBG,MAAMC,SAAS,GAAG;YAACD,MAAMC,SAAS;SAAC;QACpGI,cAAcL,MAAMM,gBAAgB,IAAK,CAAA,IAAMT,mBAAmBG,MAAMM,gBAAgB,CAAA;QACxFC,cAAcT;IAChB;IACA,MAAMU,kBAAkBb,iBAAiB,CAACc,OACxCP,aAAaQ,CAAAA,mBAAoBC,oBAAoBF,MAAMC;IAE7D,OAAO;QAACT;QAAWO;KAAgB;AACrC,CAAC;AAED,SAASG,oBAAoBF,IAAwB,EAAEG,iBAAuC,EAAwB;IACpH,IAAIH,KAAKI,KAAK,KAAK,IAAI,EAAE;QACvB,OAAOD;IACT,CAAC;IACD,MAAME,yBAAyBF,kBAAkBG,GAAG,CAACN,KAAKI,KAAK;IAC/D,IAAIJ,KAAKO,IAAI,GAAGF,yBAAyB,CAACA,sBAAsB,EAAE;QAChE,OAAOF;IACT,CAAC;IACD,MAAMK,gBAAgBpB,mBAAmBe;IACzC,OAAOH,KAAKO,IAAI,GAAGC,cAAcC,GAAG,CAACT,KAAKI,KAAK,IAAII,cAAcE,MAAM,CAACV,KAAKI,KAAK,CAAC;AACrF"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|