@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
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { ArrowRight } from '@fluentui/keyboard-keys';
|
|
|
6
6
|
import { ArrowUp } from '@fluentui/keyboard-keys';
|
|
7
7
|
import type { AvatarContextValue } from '@fluentui/react-avatar';
|
|
8
8
|
import type { AvatarSize } from '@fluentui/react-avatar';
|
|
9
|
-
import
|
|
9
|
+
import { ButtonContextValue } from '@fluentui/react-button';
|
|
10
10
|
import type { ComponentProps } from '@fluentui/react-utilities';
|
|
11
11
|
import type { ComponentState } from '@fluentui/react-utilities';
|
|
12
12
|
import { ContextSelector } from '@fluentui/react-context-selector';
|
|
@@ -22,10 +22,49 @@ import * as React_2 from 'react';
|
|
|
22
22
|
import type { Slot } from '@fluentui/react-utilities';
|
|
23
23
|
import type { SlotClassNames } from '@fluentui/react-utilities';
|
|
24
24
|
|
|
25
|
+
declare type FlattenedTreeItem<Props extends TreeItemProps> = FlatTreeItemProps & Props;
|
|
26
|
+
|
|
25
27
|
/**
|
|
26
28
|
* Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const defaultItems = flattenTree_unstable([
|
|
32
|
+
* {
|
|
33
|
+
* children: <TreeItemLayout>level 1, item 1</TreeItemLayout>,
|
|
34
|
+
* subtree: [
|
|
35
|
+
* {
|
|
36
|
+
* children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,
|
|
37
|
+
* },
|
|
38
|
+
* {
|
|
39
|
+
* children: <TreeItemLayout>level 2, item 2</TreeItemLayout>,
|
|
40
|
+
* },
|
|
41
|
+
* {
|
|
42
|
+
* children: <TreeItemLayout>level 2, item 3</TreeItemLayout>,
|
|
43
|
+
* },
|
|
44
|
+
* ],
|
|
45
|
+
* },
|
|
46
|
+
* {
|
|
47
|
+
* children: <TreeItemLayout>level 1, item 2</TreeItemLayout>,
|
|
48
|
+
* subtree: [
|
|
49
|
+
* {
|
|
50
|
+
* children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,
|
|
51
|
+
* subtree: [
|
|
52
|
+
* {
|
|
53
|
+
* children: <TreeItemLayout>level 3, item 1</TreeItemLayout>,
|
|
54
|
+
* subtree: [
|
|
55
|
+
* {
|
|
56
|
+
* children: <TreeItemLayout>level 4, item 1</TreeItemLayout>,
|
|
57
|
+
* },
|
|
58
|
+
* ],
|
|
59
|
+
* },
|
|
60
|
+
* ],
|
|
61
|
+
* },
|
|
62
|
+
* ],
|
|
63
|
+
* },
|
|
64
|
+
* ]);
|
|
65
|
+
* ```
|
|
27
66
|
*/
|
|
28
|
-
export declare const flattenTree_unstable: (items: NestedTreeItem[]) =>
|
|
67
|
+
export declare const flattenTree_unstable: <Props extends TreeItemProps>(items: NestedTreeItem<Props>[]) => FlattenedTreeItem<Props>[];
|
|
29
68
|
|
|
30
69
|
/**
|
|
31
70
|
* FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems
|
|
@@ -37,7 +76,7 @@ export declare const flattenTree_unstable: (items: NestedTreeItem[]) => FlatTree
|
|
|
37
76
|
*
|
|
38
77
|
* On simple scenarios it is advised to simply use a nested structure instead.
|
|
39
78
|
*/
|
|
40
|
-
export declare type FlatTree = {
|
|
79
|
+
export declare type FlatTree<Props extends FlatTreeItemProps = FlatTreeItemProps> = {
|
|
41
80
|
/**
|
|
42
81
|
* returns the properties required for the Tree component to work properly.
|
|
43
82
|
* That includes:
|
|
@@ -57,7 +96,7 @@ export declare type FlatTree = {
|
|
|
57
96
|
* event.preventDefault();
|
|
58
97
|
* const nextItem = tree.getNextNavigableItem(data);
|
|
59
98
|
* // scroll to item using virtualization scroll mechanism
|
|
60
|
-
* if (nextItem &&
|
|
99
|
+
* if (nextItem && tree.getElementFromItem(nextItem)) {
|
|
61
100
|
* listRef.current.scrollToItem(nextItem.index);
|
|
62
101
|
* }
|
|
63
102
|
* // wait for scrolling to happen and then invoke navigate method
|
|
@@ -72,34 +111,44 @@ export declare type FlatTree = {
|
|
|
72
111
|
* returns next item to be focused on a navigation.
|
|
73
112
|
* This method is provided to decouple the element that needs to be focused from
|
|
74
113
|
* the action of focusing it itself.
|
|
114
|
+
*
|
|
115
|
+
* On the case of TypeAhead navigation this method returns the current item.
|
|
75
116
|
*/
|
|
76
|
-
getNextNavigableItem(data: TreeNavigationData_unstable): FlatTreeItem |
|
|
117
|
+
getNextNavigableItem(visibleItems: FlatTreeItem<Props>[], data: TreeNavigationData_unstable): FlatTreeItem<Props> | undefined;
|
|
77
118
|
/**
|
|
78
|
-
*
|
|
119
|
+
* similar to getElementById but for FlatTreeItems
|
|
79
120
|
*/
|
|
80
|
-
|
|
121
|
+
getElementFromItem(item: FlatTreeItem<Props>): HTMLElement | null;
|
|
81
122
|
/**
|
|
82
|
-
*
|
|
123
|
+
* an iterable containing all visually available flat tree items
|
|
83
124
|
*/
|
|
84
|
-
items():
|
|
125
|
+
items(): IterableIterator<FlatTreeItem<Props>>;
|
|
85
126
|
};
|
|
86
127
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
128
|
+
/**
|
|
129
|
+
* The item that is returned by `useFlatTree`, it represents a wrapper around the properties provided to
|
|
130
|
+
* `useFlatTree` but with extra information that might be useful on flat tree scenarios
|
|
131
|
+
*/
|
|
132
|
+
export declare type FlatTreeItem<Props extends FlatTreeItemProps = FlatTreeItemProps> = {
|
|
91
133
|
index: number;
|
|
92
|
-
id: string;
|
|
93
134
|
level: number;
|
|
135
|
+
childrenSize: number;
|
|
136
|
+
value: TreeItemValue;
|
|
137
|
+
parentValue: TreeItemValue | undefined;
|
|
138
|
+
getTreeItemProps(): Required<Pick<Props, 'value' | 'aria-setsize' | 'aria-level' | 'aria-posinset' | 'itemType'>> & Omit<Props, 'parentId'>;
|
|
94
139
|
};
|
|
95
140
|
|
|
96
|
-
export declare type FlatTreeItemProps =
|
|
97
|
-
|
|
141
|
+
export declare type FlatTreeItemProps = Omit<TreeItemProps, 'itemType'> & Partial<Pick<TreeItemProps, 'itemType'>> & {
|
|
142
|
+
value: TreeItemValue;
|
|
143
|
+
parentValue?: TreeItemValue;
|
|
98
144
|
};
|
|
99
145
|
|
|
100
|
-
|
|
146
|
+
declare type FlatTreeOptions = Pick<TreeProps, 'openItems' | 'defaultOpenItems' | 'onOpenChange' | 'onNavigation_unstable'>;
|
|
147
|
+
|
|
148
|
+
export declare type FlatTreeProps = Required<Pick<TreeProps, 'openItems' | 'onOpenChange' | 'onNavigation_unstable'>> & {
|
|
101
149
|
ref: React_2.Ref<HTMLDivElement>;
|
|
102
|
-
|
|
150
|
+
openItems: ImmutableSet<string>;
|
|
151
|
+
};
|
|
103
152
|
|
|
104
153
|
declare interface ImmutableSet<Value> {
|
|
105
154
|
/**
|
|
@@ -127,10 +176,12 @@ declare interface ImmutableSet<Value> {
|
|
|
127
176
|
[Symbol.iterator](): IterableIterator<Value>;
|
|
128
177
|
}
|
|
129
178
|
|
|
130
|
-
export declare type NestedTreeItem = Omit<
|
|
131
|
-
subtree?: NestedTreeItem[];
|
|
179
|
+
export declare type NestedTreeItem<Props extends TreeItemProps> = Omit<Props, 'subtree' | 'itemType'> & {
|
|
180
|
+
subtree?: NestedTreeItem<Props>[];
|
|
132
181
|
};
|
|
133
182
|
|
|
183
|
+
declare type OmitWithoutExpanding<P, K extends string | number | symbol> = P extends unknown ? Omit<P, K> : P;
|
|
184
|
+
|
|
134
185
|
export declare const renderTree_unstable: (state: TreeState, contextValues: TreeContextValues) => JSX.Element;
|
|
135
186
|
|
|
136
187
|
/**
|
|
@@ -164,12 +215,11 @@ export declare type TreeContextValue = {
|
|
|
164
215
|
level: number;
|
|
165
216
|
appearance: 'subtle' | 'subtle-alpha' | 'transparent';
|
|
166
217
|
size: 'small' | 'medium';
|
|
167
|
-
openItems: ImmutableSet<
|
|
218
|
+
openItems: ImmutableSet<unknown>;
|
|
168
219
|
/**
|
|
169
|
-
*
|
|
220
|
+
* requests root Tree component to respond to some tree item event,
|
|
170
221
|
*/
|
|
171
|
-
|
|
172
|
-
requestNavigation(data: TreeNavigationData_unstable): void;
|
|
222
|
+
requestTreeResponse(request: TreeItemRequest): void;
|
|
173
223
|
};
|
|
174
224
|
|
|
175
225
|
declare type TreeContextValues = {
|
|
@@ -177,7 +227,16 @@ declare type TreeContextValues = {
|
|
|
177
227
|
};
|
|
178
228
|
|
|
179
229
|
/**
|
|
180
|
-
* TreeItem component
|
|
230
|
+
* The `TreeItem` component represents a single item in a tree.
|
|
231
|
+
* It expects a certain order of children to work properly: the first child should be the node itself,
|
|
232
|
+
* and the second child should be a nested subtree in the form of another Tree component or a standalone TreeItem.
|
|
233
|
+
* This order follows the same order as document traversal for the TreeWalker API in JavaScript:
|
|
234
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.
|
|
235
|
+
* The content and layout of a TreeItem can be defined using the TreeItemLayout or TreeItemPersonaLayout component,
|
|
236
|
+
* which should be used as a direct child of TreeItem.
|
|
237
|
+
*
|
|
238
|
+
* When a TreeItem has nested child subtree, an expand/collapse control is displayed,
|
|
239
|
+
* allowing the user to show or hide the children.
|
|
181
240
|
*/
|
|
182
241
|
export declare const TreeItem: ForwardRefComponent<TreeItemProps>;
|
|
183
242
|
|
|
@@ -185,21 +244,28 @@ export declare const treeItemClassNames: SlotClassNames<TreeItemSlots>;
|
|
|
185
244
|
|
|
186
245
|
declare type TreeItemContextValue = {
|
|
187
246
|
isActionsVisible: boolean;
|
|
247
|
+
isAsideVisible: boolean;
|
|
248
|
+
actionsRef: React_2.Ref<HTMLDivElement>;
|
|
249
|
+
expandIconRef: React_2.Ref<HTMLDivElement>;
|
|
250
|
+
layoutRef: React_2.Ref<HTMLDivElement>;
|
|
251
|
+
subtreeRef: React_2.Ref<HTMLDivElement>;
|
|
252
|
+
itemType: TreeItemType;
|
|
253
|
+
value: string;
|
|
254
|
+
open: boolean;
|
|
188
255
|
};
|
|
189
256
|
|
|
190
257
|
declare type TreeItemContextValues = {
|
|
191
258
|
treeItem: TreeItemContextValue;
|
|
192
|
-
button: ButtonContextValue;
|
|
193
259
|
};
|
|
194
260
|
|
|
195
261
|
declare type TreeItemCSSProperties = React_2.CSSProperties & {
|
|
196
262
|
[treeItemLevelToken]?: string | number;
|
|
197
263
|
};
|
|
198
264
|
|
|
199
|
-
export declare type TreeItemId = string | number;
|
|
200
|
-
|
|
201
265
|
/**
|
|
202
|
-
* TreeItemLayout component
|
|
266
|
+
* The `TreeItemLayout` component is used as a child of `TreeItem` to define the content and layout of a tree item.
|
|
267
|
+
* It provides a consistent visual structure for tree items in a `Tree` component.
|
|
268
|
+
* This component should only be used as a direct child of `TreeItem`.
|
|
203
269
|
*/
|
|
204
270
|
export declare const TreeItemLayout: ForwardRefComponent<TreeItemLayoutProps>;
|
|
205
271
|
|
|
@@ -215,23 +281,42 @@ export declare type TreeItemLayoutSlots = {
|
|
|
215
281
|
/**
|
|
216
282
|
* Icon slot that renders right before main content
|
|
217
283
|
*/
|
|
218
|
-
iconBefore?: Slot<'
|
|
284
|
+
iconBefore?: Slot<'div'>;
|
|
219
285
|
/**
|
|
220
286
|
* Icon slot that renders right after main content
|
|
221
287
|
*/
|
|
222
|
-
iconAfter?: Slot<'
|
|
223
|
-
|
|
288
|
+
iconAfter?: Slot<'div'>;
|
|
289
|
+
/**
|
|
290
|
+
* Expand icon slot,
|
|
291
|
+
* by default renders a chevron icon to indicate opening and closing
|
|
292
|
+
*/
|
|
293
|
+
expandIcon?: Slot<'div'>;
|
|
294
|
+
aside?: Slot<'div'>;
|
|
295
|
+
/**
|
|
296
|
+
* actionable elements are normally buttons, menus, or other focusable elements.
|
|
297
|
+
* Those elements are only visibly available if the given tree item is currently active.
|
|
298
|
+
*/
|
|
299
|
+
actions?: Slot<ExtractSlotProps<Slot<'div'> & {
|
|
300
|
+
/**
|
|
301
|
+
* Forces visibility of the aside/action content
|
|
302
|
+
*/
|
|
303
|
+
visible?: boolean;
|
|
304
|
+
}>>;
|
|
224
305
|
};
|
|
225
306
|
|
|
226
307
|
/**
|
|
227
308
|
* State used in rendering TreeItemLayout
|
|
228
309
|
*/
|
|
229
|
-
export declare type TreeItemLayoutState = ComponentState<TreeItemLayoutSlots> &
|
|
310
|
+
export declare type TreeItemLayoutState = ComponentState<TreeItemLayoutSlots> & {
|
|
311
|
+
buttonContextValue: ButtonContextValue;
|
|
312
|
+
};
|
|
230
313
|
|
|
231
314
|
export declare const treeItemLevelToken: "--fluent-TreeItem--level";
|
|
232
315
|
|
|
233
316
|
/**
|
|
234
|
-
* TreeItemPersonaLayout component
|
|
317
|
+
* The `TreeItemPersonaLayout` component is used as a child of `TreeItem` to display a `TreeItem` with a media (typically an avatar) and a description.
|
|
318
|
+
* It provides a more visually appealing representation of a `TreeItem` and is typically used to display a list of people or topics.
|
|
319
|
+
* This component should only be used as a direct child of `TreeItem`.
|
|
235
320
|
*/
|
|
236
321
|
export declare const TreeItemPersonaLayout: ForwardRefComponent<TreeItemPersonaLayoutProps>;
|
|
237
322
|
|
|
@@ -246,121 +331,96 @@ declare type TreeItemPersonaLayoutContextValues = {
|
|
|
246
331
|
*/
|
|
247
332
|
export declare type TreeItemPersonaLayoutProps = ComponentProps<Partial<TreeItemPersonaLayoutSlots>>;
|
|
248
333
|
|
|
249
|
-
export declare type TreeItemPersonaLayoutSlots = {
|
|
250
|
-
root: Slot<'
|
|
334
|
+
export declare type TreeItemPersonaLayoutSlots = Pick<TreeItemLayoutSlots, 'actions' | 'aside' | 'expandIcon'> & {
|
|
335
|
+
root: NonNullable<Slot<'div'>>;
|
|
251
336
|
/**
|
|
252
337
|
* Avatar to display.
|
|
253
338
|
*/
|
|
254
|
-
media: NonNullable<Slot<'
|
|
339
|
+
media: NonNullable<Slot<'div'>>;
|
|
255
340
|
/**
|
|
256
341
|
* Main text. Children of the root slot are automatically rendered here
|
|
257
342
|
*/
|
|
258
|
-
main: Slot<'
|
|
343
|
+
main: NonNullable<Slot<'div'>>;
|
|
259
344
|
/**
|
|
260
345
|
* Secondary text that describes or complements the main text
|
|
261
346
|
*/
|
|
262
|
-
description?: Slot<'
|
|
263
|
-
/**
|
|
264
|
-
* aside text that works as extra textual information
|
|
265
|
-
*/
|
|
266
|
-
aside?: Slot<'span'>;
|
|
267
|
-
/**
|
|
268
|
-
* A layout wrapper for the main and description slots
|
|
269
|
-
*/
|
|
270
|
-
content: Slot<'div'>;
|
|
347
|
+
description?: Slot<'div'>;
|
|
271
348
|
};
|
|
272
349
|
|
|
273
350
|
/**
|
|
274
351
|
* State used in rendering TreeItemPersonaLayout
|
|
275
352
|
*/
|
|
276
|
-
export declare type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> &
|
|
353
|
+
export declare type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> & {
|
|
277
354
|
avatarSize: AvatarSize;
|
|
355
|
+
buttonContextValue: ButtonContextValue;
|
|
278
356
|
};
|
|
279
357
|
|
|
280
358
|
/**
|
|
281
359
|
* TreeItem Props
|
|
282
360
|
*/
|
|
283
361
|
export declare type TreeItemProps = ComponentProps<Partial<TreeItemSlots>> & {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
* This attribute is used to force the decision if a TreeItem is a leaf or not. By not providing this property
|
|
287
|
-
* this will be inferred by the presence of a subtree as part of the TreeItem children.
|
|
288
|
-
*/
|
|
289
|
-
leaf?: boolean;
|
|
362
|
+
itemType: TreeItemType;
|
|
363
|
+
value?: TreeItemValue;
|
|
290
364
|
};
|
|
291
365
|
|
|
292
|
-
export declare const TreeItemProvider: React_2.Provider<TreeItemContextValue | undefined
|
|
366
|
+
export declare const TreeItemProvider: React_2.Provider<TreeItemContextValue | undefined> & React_2.FC<React_2.ProviderProps<TreeItemContextValue | undefined>>;
|
|
367
|
+
|
|
368
|
+
declare type TreeItemRequest = {
|
|
369
|
+
itemType: TreeItemType;
|
|
370
|
+
} & (OmitWithoutExpanding<TreeOpenChangeData, 'open' | 'target'> | OmitWithoutExpanding<TreeNavigationData_unstable, 'target'>);
|
|
293
371
|
|
|
294
372
|
export declare type TreeItemSlots = {
|
|
295
373
|
root: Slot<ExtractSlotProps<Slot<'div'> & {
|
|
296
374
|
style?: TreeItemCSSProperties;
|
|
297
375
|
}>>;
|
|
298
|
-
content: NonNullable<Slot<'div'>>;
|
|
299
|
-
subtree?: Slot<'span'>;
|
|
300
|
-
/**
|
|
301
|
-
* Expand icon slot,
|
|
302
|
-
* by default renders a chevron icon to indicate opening and closing
|
|
303
|
-
*/
|
|
304
|
-
expandIcon?: Slot<'span'>;
|
|
305
|
-
/**
|
|
306
|
-
* Actions slot that renders on the end of tree item
|
|
307
|
-
* when the item is hovered/focused
|
|
308
|
-
*/
|
|
309
|
-
actions?: Slot<'span'>;
|
|
310
376
|
};
|
|
311
377
|
|
|
312
378
|
/**
|
|
313
379
|
* State used in rendering TreeItem
|
|
314
380
|
*/
|
|
315
|
-
export declare type TreeItemState = ComponentState<TreeItemSlots> & {
|
|
316
|
-
open: boolean;
|
|
317
|
-
isLeaf: boolean;
|
|
381
|
+
export declare type TreeItemState = ComponentState<TreeItemSlots> & TreeItemContextValue & {
|
|
318
382
|
level: number;
|
|
319
|
-
|
|
320
|
-
* By design, a button included on the actions slot should be small
|
|
321
|
-
*/
|
|
322
|
-
buttonSize: 'small';
|
|
323
|
-
isActionsVisible: boolean;
|
|
383
|
+
itemType: TreeItemType;
|
|
324
384
|
};
|
|
325
385
|
|
|
386
|
+
declare type TreeItemType = 'leaf' | 'branch';
|
|
387
|
+
|
|
388
|
+
declare type TreeItemValue = string | number;
|
|
389
|
+
|
|
326
390
|
export declare type TreeNavigationData_unstable = {
|
|
327
|
-
event: React_2.MouseEvent<HTMLElement>;
|
|
328
391
|
target: HTMLElement;
|
|
392
|
+
value: string;
|
|
393
|
+
} & ({
|
|
394
|
+
event: React_2.MouseEvent<HTMLElement>;
|
|
329
395
|
type: 'Click';
|
|
330
396
|
} | {
|
|
331
397
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
332
|
-
target: HTMLElement;
|
|
333
398
|
type: 'TypeAhead';
|
|
334
399
|
} | {
|
|
335
400
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
336
|
-
target: HTMLElement;
|
|
337
401
|
type: typeof ArrowRight;
|
|
338
402
|
} | {
|
|
339
403
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
340
|
-
target: HTMLElement;
|
|
341
404
|
type: typeof ArrowLeft;
|
|
342
405
|
} | {
|
|
343
406
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
344
|
-
target: HTMLElement;
|
|
345
407
|
type: typeof ArrowUp;
|
|
346
408
|
} | {
|
|
347
409
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
348
|
-
target: HTMLElement;
|
|
349
410
|
type: typeof ArrowDown;
|
|
350
411
|
} | {
|
|
351
412
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
352
|
-
target: HTMLElement;
|
|
353
413
|
type: typeof Home;
|
|
354
414
|
} | {
|
|
355
415
|
event: React_2.KeyboardEvent<HTMLElement>;
|
|
356
|
-
target: HTMLElement;
|
|
357
416
|
type: typeof End;
|
|
358
|
-
};
|
|
417
|
+
});
|
|
359
418
|
|
|
360
419
|
export declare type TreeNavigationEvent_unstable = TreeNavigationData_unstable['event'];
|
|
361
420
|
|
|
362
421
|
export declare type TreeOpenChangeData = {
|
|
363
422
|
open: boolean;
|
|
423
|
+
value: string;
|
|
364
424
|
} & ({
|
|
365
425
|
event: React_2.MouseEvent<HTMLElement>;
|
|
366
426
|
target: HTMLElement;
|
|
@@ -404,13 +464,13 @@ export declare type TreeProps = ComponentProps<TreeSlots> & {
|
|
|
404
464
|
* Controls the state of the open tree items.
|
|
405
465
|
* These property is ignored for subtrees.
|
|
406
466
|
*/
|
|
407
|
-
openItems?: Iterable<
|
|
467
|
+
openItems?: Iterable<string>;
|
|
408
468
|
/**
|
|
409
469
|
* This refers to a list of ids of opened tree items.
|
|
410
470
|
* Default value for the uncontrolled state of open tree items.
|
|
411
471
|
* These property is ignored for subtrees.
|
|
412
472
|
*/
|
|
413
|
-
defaultOpenItems?: Iterable<
|
|
473
|
+
defaultOpenItems?: Iterable<string>;
|
|
414
474
|
/**
|
|
415
475
|
* Callback fired when the component changes value from open state.
|
|
416
476
|
* These property is ignored for subtrees.
|
|
@@ -441,7 +501,9 @@ export declare type TreeSlots = {
|
|
|
441
501
|
/**
|
|
442
502
|
* State used in rendering Tree
|
|
443
503
|
*/
|
|
444
|
-
export declare type TreeState = ComponentState<TreeSlots> & TreeContextValue
|
|
504
|
+
export declare type TreeState = ComponentState<TreeSlots> & TreeContextValue & {
|
|
505
|
+
open: boolean;
|
|
506
|
+
};
|
|
445
507
|
|
|
446
508
|
/**
|
|
447
509
|
* this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems
|
|
@@ -452,10 +514,10 @@ export declare type TreeState = ComponentState<TreeSlots> & TreeContextValue;
|
|
|
452
514
|
* It should be used on cases where more complex interactions with a Tree is required.
|
|
453
515
|
* On simple scenarios it is advised to simply use a nested structure instead.
|
|
454
516
|
*
|
|
455
|
-
* @param
|
|
517
|
+
* @param flatTreeItemProps - a list of tree items
|
|
456
518
|
* @param options - in case control over the internal openItems is required
|
|
457
519
|
*/
|
|
458
|
-
export declare function useFlatTree_unstable(
|
|
520
|
+
export declare function useFlatTree_unstable<Props extends FlatTreeItemProps = FlatTreeItemProps>(flatTreeItemProps: Props[], options?: FlatTreeOptions): FlatTree<Props>;
|
|
459
521
|
|
|
460
522
|
/**
|
|
461
523
|
* Create the state required to render Tree.
|
|
@@ -481,9 +543,9 @@ export declare function useTreeContextValues_unstable(state: TreeState): TreeCon
|
|
|
481
543
|
* @param props - props from this instance of TreeItem
|
|
482
544
|
* @param ref - reference to root HTMLElement of TreeItem
|
|
483
545
|
*/
|
|
484
|
-
export declare
|
|
546
|
+
export declare function useTreeItem_unstable(props: TreeItemProps, ref: React_2.Ref<HTMLDivElement>): TreeItemState;
|
|
485
547
|
|
|
486
|
-
export declare const useTreeItemContext_unstable: () =>
|
|
548
|
+
export declare const useTreeItemContext_unstable: <T>(selector: ContextSelector<TreeItemContextValue, T>) => T;
|
|
487
549
|
|
|
488
550
|
/**
|
|
489
551
|
* Create the state required to render TreeItemLayout.
|
package/lib/Tree.js
CHANGED
package/lib/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["Tree.ts"],"sourcesContent":["export * from './components/Tree/index';\n"],"names":[],"mappings":"AAAA,cAAc,0BAA0B"}
|
package/lib/TreeItem.js
CHANGED
package/lib/TreeItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["TreeItem.ts"],"sourcesContent":["export * from './components/TreeItem/index';\n"],"names":[],"mappings":"AAAA,cAAc,8BAA8B"}
|
package/lib/TreeItemLayout.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["TreeItemLayout.ts"],"sourcesContent":["export * from './components/TreeItemLayout/index';\n"],"names":[],"mappings":"AAAA,cAAc,oCAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["TreeItemPersonaLayout.ts"],"sourcesContent":["export * from './components/TreeItemPersonaLayout/index';\n"],"names":[],"mappings":"AAAA,cAAc,2CAA2C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useTree_unstable } from './useTree';
|
|
3
3
|
import { renderTree_unstable } from './renderTree';
|
|
4
|
-
import { useTreeStyles_unstable } from './useTreeStyles';
|
|
4
|
+
import { useTreeStyles_unstable } from './useTreeStyles.styles';
|
|
5
5
|
import { useTreeContextValues_unstable } from './useTreeContextValues';
|
|
6
6
|
/**
|
|
7
7
|
* A tree view widget presents a hierarchical list.
|
|
@@ -10,12 +10,10 @@ import { useTreeContextValues_unstable } from './useTreeContextValues';
|
|
|
10
10
|
* For example, in a file system navigator that uses a tree view to display folders and files,
|
|
11
11
|
* an item representing a folder can be expanded to reveal the contents of the folder,
|
|
12
12
|
* which may be files, folders, or both.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return renderTree_unstable(state, contextValues);
|
|
13
|
+
*/ export const Tree = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
14
|
+
const state = useTree_unstable(props, ref);
|
|
15
|
+
useTreeStyles_unstable(state);
|
|
16
|
+
const contextValues = useTreeContextValues_unstable(state);
|
|
17
|
+
return renderTree_unstable(state, contextValues);
|
|
19
18
|
});
|
|
20
19
|
Tree.displayName = 'Tree';
|
|
21
|
-
//# sourceMappingURL=Tree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["Tree.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useTree_unstable } from './useTree';\nimport { renderTree_unstable } from './renderTree';\nimport { useTreeStyles_unstable } from './useTreeStyles.styles';\nimport type { TreeProps } from './Tree.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTreeContextValues_unstable } from './useTreeContextValues';\n\n/**\n * A tree view widget presents a hierarchical list.\n * Any item in the hierarchy may have child items,\n * and items that have children may be expanded or collapsed to show or hide the children.\n * For example, in a file system navigator that uses a tree view to display folders and files,\n * an item representing a folder can be expanded to reveal the contents of the folder,\n * which may be files, folders, or both.\n */\nexport const Tree: ForwardRefComponent<TreeProps> = React.forwardRef((props, ref) => {\n const state = useTree_unstable(props, ref);\n useTreeStyles_unstable(state);\n const contextValues = useTreeContextValues_unstable(state);\n return renderTree_unstable(state, contextValues);\n});\n\nTree.displayName = 'Tree';\n"],"names":["React","useTree_unstable","renderTree_unstable","useTreeStyles_unstable","useTreeContextValues_unstable","Tree","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ,YAAY;AAC7C,SAASC,mBAAmB,QAAQ,eAAe;AACnD,SAASC,sBAAsB,QAAQ,yBAAyB;AAGhE,SAASC,6BAA6B,QAAQ,yBAAyB;AAEvE;;;;;;;CAOC,GACD,OAAO,MAAMC,qBAAuCL,MAAMM,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACnF,MAAMC,QAAQR,iBAAiBM,OAAOC;IACtCL,uBAAuBM;IACvB,MAAMC,gBAAgBN,8BAA8BK;IACpD,OAAOP,oBAAoBO,OAAOC;AACpC,GAAG;AAEHL,KAAKM,WAAW,GAAG"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=Tree.types.js.map
|
|
1
|
+
import * as React from 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["Tree.types.ts"],"sourcesContent":["import * as React from 'react';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { TreeContextValue } from '../../contexts/treeContext';\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Enter, Home } from '@fluentui/keyboard-keys';\n\nexport type TreeSlots = {\n root: Slot<'div'>;\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport type TreeNavigationData_unstable = { target: HTMLElement; value: string } & (\n | { event: React.MouseEvent<HTMLElement>; type: 'Click' }\n | { event: React.KeyboardEvent<HTMLElement>; type: 'TypeAhead' }\n | { event: React.KeyboardEvent<HTMLElement>; type: typeof ArrowRight }\n | { event: React.KeyboardEvent<HTMLElement>; type: typeof ArrowLeft }\n | { event: React.KeyboardEvent<HTMLElement>; type: typeof ArrowUp }\n | { event: React.KeyboardEvent<HTMLElement>; type: typeof ArrowDown }\n | { event: React.KeyboardEvent<HTMLElement>; type: typeof Home }\n | { event: React.KeyboardEvent<HTMLElement>; type: typeof End }\n);\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport type TreeNavigationEvent_unstable = TreeNavigationData_unstable['event'];\n\nexport type TreeOpenChangeData = { open: boolean; value: string } & (\n | {\n event: React.MouseEvent<HTMLElement>;\n target: HTMLElement;\n type: 'ExpandIconClick';\n }\n | {\n event: React.MouseEvent<HTMLElement>;\n target: HTMLElement;\n type: 'Click';\n }\n | {\n event: React.KeyboardEvent<HTMLElement>;\n target: HTMLElement;\n type: typeof Enter;\n }\n | {\n event: React.KeyboardEvent<HTMLElement>;\n target: HTMLElement;\n type: typeof ArrowRight;\n }\n | {\n event: React.KeyboardEvent<HTMLElement>;\n target: HTMLElement;\n type: typeof ArrowLeft;\n }\n);\n\nexport type TreeOpenChangeEvent = TreeOpenChangeData['event'];\n\nexport type TreeContextValues = {\n tree: TreeContextValue;\n};\n\nexport type TreeProps = ComponentProps<TreeSlots> & {\n /**\n * A tree item can have various appearances:\n * - 'subtle' (default): The default tree item styles.\n * - 'subtle-alpha': Minimizes emphasis on hovered or focused states.\n * - 'transparent': Removes background color.\n * @default 'subtle'\n */\n appearance?: 'subtle' | 'subtle-alpha' | 'transparent';\n /**\n * Size of the tree item.\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n /**\n * This refers to a list of ids of opened tree items.\n * Controls the state of the open tree items.\n * These property is ignored for subtrees.\n */\n openItems?: Iterable<string>;\n /**\n * This refers to a list of ids of opened tree items.\n * Default value for the uncontrolled state of open tree items.\n * These property is ignored for subtrees.\n */\n defaultOpenItems?: Iterable<string>;\n /**\n * Callback fired when the component changes value from open state.\n * These property is ignored for subtrees.\n *\n * @param event - a React's Synthetic event\n * @param data - A data object with relevant information,\n * such as open value and type of interaction that created the event.\n */\n onOpenChange?(event: TreeOpenChangeEvent, data: TreeOpenChangeData): void;\n\n /**\n * Callback fired when navigation happens inside the component.\n * These property is ignored for subtrees.\n *\n * FIXME: This method is not ideal, as navigation should be handled internally by tabster.\n *\n * @param event - a React's Synthetic event\n * @param data - A data object with relevant information,\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable?(event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable): void;\n};\n\n/**\n * State used in rendering Tree\n */\nexport type TreeState = ComponentState<TreeSlots> &\n TreeContextValue & {\n open: boolean;\n };\n"],"names":["React"],"mappings":"AAAA,YAAYA,WAAW,QAAQ"}
|
|
@@ -2,6 +2,5 @@ export * from './Tree';
|
|
|
2
2
|
export * from './Tree.types';
|
|
3
3
|
export * from './renderTree';
|
|
4
4
|
export * from './useTree';
|
|
5
|
-
export * from './useTreeStyles';
|
|
5
|
+
export * from './useTreeStyles.styles';
|
|
6
6
|
export * from './useTreeContextValues';
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './Tree';\nexport * from './Tree.types';\nexport * from './renderTree';\nexport * from './useTree';\nexport * from './useTreeStyles.styles';\nexport * from './useTreeContextValues';\n"],"names":[],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,YAAY;AAC1B,cAAc,yBAAyB;AACvC,cAAc,yBAAyB"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';
|
|
2
|
+
import { getSlotsNext } from '@fluentui/react-utilities';
|
|
3
3
|
import { TreeProvider } from '../../contexts';
|
|
4
|
-
export const renderTree_unstable = (state, contextValues)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return /*#__PURE__*/React.createElement(TreeProvider, {
|
|
10
|
-
value: contextValues.tree
|
|
11
|
-
}, /*#__PURE__*/React.createElement(slots.root, {
|
|
12
|
-
...slotProps.root
|
|
13
|
-
}, slotProps.root.children));
|
|
4
|
+
export const renderTree_unstable = (state, contextValues)=>{
|
|
5
|
+
const { slots , slotProps } = getSlotsNext(state);
|
|
6
|
+
return /*#__PURE__*/ createElement(TreeProvider, {
|
|
7
|
+
value: contextValues.tree
|
|
8
|
+
}, state.open && /*#__PURE__*/ createElement(slots.root, slotProps.root, slotProps.root.children));
|
|
14
9
|
};
|
|
15
|
-
//# sourceMappingURL=renderTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["renderTree.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsx createElement */\n\nimport { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport type { TreeState, TreeSlots, TreeContextValues } from './Tree.types';\nimport { TreeProvider } from '../../contexts';\n\nexport const renderTree_unstable = (state: TreeState, contextValues: TreeContextValues) => {\n const { slots, slotProps } = getSlotsNext<TreeSlots>(state);\n return (\n <TreeProvider value={contextValues.tree}>\n {state.open && <slots.root {...slotProps.root}>{slotProps.root.children}</slots.root>}\n </TreeProvider>\n );\n};\n"],"names":["createElement","getSlotsNext","TreeProvider","renderTree_unstable","state","contextValues","slots","slotProps","value","tree","open","root","children"],"mappings":"AAAA,wBAAwB,GACxB,uBAAuB,GAEvB,SAASA,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,OAAO,MAAMC,sBAAsB,CAACC,OAAkBC,gBAAqC;IACzF,MAAM,EAAEC,MAAK,EAAEC,UAAS,EAAE,GAAGN,aAAwBG;IACrD,qBACE,AAVJ,cAUKF;QAAaM,OAAOH,cAAcI,IAAI;OACpCL,MAAMM,IAAI,kBAAI,AAXrB,cAWsBJ,MAAMK,IAAI,EAAKJ,UAAUI,IAAI,EAAGJ,UAAUI,IAAI,CAACC,QAAQ;AAG7E,EAAE"}
|