@fluentui/react-tree 9.0.0-beta.23 → 9.0.0-beta.25
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 +88 -10
- package/CHANGELOG.md +37 -11
- package/dist/index.d.ts +75 -49
- 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 +55 -73
- package/lib/components/Tree/useRootTree.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 +58 -16
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +13 -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.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayout.js +7 -28
- package/lib/components/TreeItemLayout/useTreeItemLayout.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 +2 -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 +1 -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/useFlatTree.js +3 -3
- package/lib/hooks/useFlatTree.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/ImmutableSet.js +16 -9
- package/lib/utils/ImmutableSet.js.map +1 -1
- 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-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 +54 -72
- package/lib-commonjs/components/Tree/useRootTree.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 +57 -15
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +14 -6
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +6 -26
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.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 +1 -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 +1 -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/useFlatTree.js +3 -3
- package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
- package/lib-commonjs/utils/ImmutableSet.js +21 -16
- package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
- package/lib-commonjs/utils/flattenTree.js +0 -5
- package/lib-commonjs/utils/flattenTree.js.map +1 -1
- package/package.json +7 -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
|
@@ -15,15 +15,19 @@ const _tokens = require("../../utils/tokens");
|
|
|
15
15
|
function useRootTree(props, ref) {
|
|
16
16
|
warnIfNoProperPropsRootTree(props);
|
|
17
17
|
const { appearance ='subtle' , size ='medium' } = props;
|
|
18
|
-
const [openItems,
|
|
18
|
+
const [openItems, setOpenItems] = (0, _hooks.useControllableOpenItems)(props);
|
|
19
19
|
const [navigate, navigationRef] = (0, _hooks.useNestedTreeNavigation)();
|
|
20
20
|
const requestOpenChange = (data)=>{
|
|
21
21
|
var _props_onOpenChange;
|
|
22
|
-
|
|
22
|
+
const nextOpenItems = (0, _hooks.createNextOpenItems)(data, openItems);
|
|
23
|
+
(_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, {
|
|
24
|
+
...data,
|
|
25
|
+
openItems: nextOpenItems
|
|
26
|
+
});
|
|
23
27
|
if (data.event.isDefaultPrevented()) {
|
|
24
28
|
return;
|
|
25
29
|
}
|
|
26
|
-
return
|
|
30
|
+
return setOpenItems(nextOpenItems);
|
|
27
31
|
};
|
|
28
32
|
const requestNavigation = (data)=>{
|
|
29
33
|
var _props_onNavigation_unstable;
|
|
@@ -36,91 +40,69 @@ function useRootTree(props, ref) {
|
|
|
36
40
|
data.event.preventDefault();
|
|
37
41
|
}
|
|
38
42
|
};
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
56
|
-
const handleTreeItemKeyDown = ({ event , type , value , itemType })=>{
|
|
57
|
-
const open = openItems.has(value);
|
|
58
|
-
switch(type){
|
|
43
|
+
const requestTreeResponse = (0, _reactUtilities.useEventCallback)((request)=>{
|
|
44
|
+
switch(request.type){
|
|
45
|
+
case _tokens.treeDataTypes.Click:
|
|
46
|
+
case _tokens.treeDataTypes.ExpandIconClick:
|
|
47
|
+
{
|
|
48
|
+
return _reactDom.unstable_batchedUpdates(()=>{
|
|
49
|
+
requestOpenChange({
|
|
50
|
+
...request,
|
|
51
|
+
open: request.itemType === 'branch' && !openItems.has(request.value)
|
|
52
|
+
});
|
|
53
|
+
requestNavigation({
|
|
54
|
+
...request,
|
|
55
|
+
type: _tokens.treeDataTypes.Click
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
59
|
case _tokens.treeDataTypes.ArrowRight:
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
{
|
|
61
|
+
if (request.itemType === 'leaf') {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const open = openItems.has(request.value);
|
|
65
|
+
if (!open) {
|
|
66
|
+
return requestOpenChange({
|
|
67
|
+
...request,
|
|
68
|
+
open: true
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return requestNavigation(request);
|
|
62
72
|
}
|
|
63
|
-
|
|
73
|
+
case _tokens.treeDataTypes.Enter:
|
|
74
|
+
{
|
|
75
|
+
const open = openItems.has(request.value);
|
|
64
76
|
return requestOpenChange({
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
open: true,
|
|
68
|
-
type: _tokens.treeDataTypes.ArrowRight,
|
|
69
|
-
target: event.currentTarget
|
|
77
|
+
...request,
|
|
78
|
+
open: request.itemType === 'branch' && !open
|
|
70
79
|
});
|
|
71
80
|
}
|
|
72
|
-
return requestNavigation({
|
|
73
|
-
event,
|
|
74
|
-
value,
|
|
75
|
-
type,
|
|
76
|
-
target: event.currentTarget
|
|
77
|
-
});
|
|
78
|
-
case _tokens.treeDataTypes.Enter:
|
|
79
|
-
return requestOpenChange({
|
|
80
|
-
event,
|
|
81
|
-
value,
|
|
82
|
-
open: itemType === 'branch' && !open,
|
|
83
|
-
type: _tokens.treeDataTypes.Enter,
|
|
84
|
-
target: event.currentTarget
|
|
85
|
-
});
|
|
86
81
|
case _tokens.treeDataTypes.ArrowLeft:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
82
|
+
{
|
|
83
|
+
const open = openItems.has(request.value);
|
|
84
|
+
if (open && request.itemType === 'branch') {
|
|
85
|
+
return requestOpenChange({
|
|
86
|
+
...request,
|
|
87
|
+
open: false,
|
|
88
|
+
type: _tokens.treeDataTypes.ArrowLeft
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return requestNavigation({
|
|
92
|
+
...request,
|
|
93
|
+
type: _tokens.treeDataTypes.ArrowLeft
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
-
return requestNavigation({
|
|
97
|
-
event,
|
|
98
|
-
value,
|
|
99
|
-
target: event.currentTarget,
|
|
100
|
-
type: _tokens.treeDataTypes.ArrowLeft
|
|
101
|
-
});
|
|
102
96
|
case _tokens.treeDataTypes.End:
|
|
103
97
|
case _tokens.treeDataTypes.Home:
|
|
104
98
|
case _tokens.treeDataTypes.ArrowUp:
|
|
105
99
|
case _tokens.treeDataTypes.ArrowDown:
|
|
106
100
|
case _tokens.treeDataTypes.TypeAhead:
|
|
107
101
|
return requestNavigation({
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
type,
|
|
111
|
-
target: event.currentTarget
|
|
102
|
+
...request,
|
|
103
|
+
target: request.event.currentTarget
|
|
112
104
|
});
|
|
113
105
|
}
|
|
114
|
-
};
|
|
115
|
-
const requestTreeResponse = (0, _reactUtilities.useEventCallback)((request)=>{
|
|
116
|
-
switch(request.event.type){
|
|
117
|
-
case 'click':
|
|
118
|
-
// casting is required here as we're narrowing down the event to only click events
|
|
119
|
-
return handleTreeItemClick(request);
|
|
120
|
-
case 'keydown':
|
|
121
|
-
// casting is required here as we're narrowing down the event to only keyboard events
|
|
122
|
-
return handleTreeItemKeyDown(request);
|
|
123
|
-
}
|
|
124
106
|
});
|
|
125
107
|
return {
|
|
126
108
|
components: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useRootTree.js"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport {
|
|
1
|
+
{"version":3,"sources":["useRootTree.js"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { createNextOpenItems, useControllableOpenItems, useNestedTreeNavigation } from '../../hooks';\nimport { treeDataTypes } from '../../utils/tokens';\n/**\n * Create the state required to render the root level Tree.\n *\n * @param props - props from this instance of Tree\n * @param ref - reference to root HTMLElement of Tree\n */ export function useRootTree(props, ref) {\n warnIfNoProperPropsRootTree(props);\n const { appearance ='subtle' , size ='medium' } = props;\n const [openItems, setOpenItems] = useControllableOpenItems(props);\n const [navigate, navigationRef] = useNestedTreeNavigation();\n const requestOpenChange = (data)=>{\n var _props_onOpenChange;\n const nextOpenItems = createNextOpenItems(data, openItems);\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, {\n ...data,\n openItems: nextOpenItems\n });\n if (data.event.isDefaultPrevented()) {\n return;\n }\n return setOpenItems(nextOpenItems);\n };\n const requestNavigation = (data)=>{\n var _props_onNavigation_unstable;\n (_props_onNavigation_unstable = props.onNavigation_unstable) === null || _props_onNavigation_unstable === void 0 ? void 0 : _props_onNavigation_unstable.call(props, data.event, data);\n if (data.event.isDefaultPrevented()) {\n return;\n }\n navigate(data);\n if (data.type === treeDataTypes.ArrowDown || data.type === treeDataTypes.ArrowUp) {\n data.event.preventDefault();\n }\n };\n const requestTreeResponse = useEventCallback((request)=>{\n switch(request.type){\n case treeDataTypes.Click:\n case treeDataTypes.ExpandIconClick:\n {\n return ReactDOM.unstable_batchedUpdates(()=>{\n requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !openItems.has(request.value)\n });\n requestNavigation({\n ...request,\n type: treeDataTypes.Click\n });\n });\n }\n case treeDataTypes.ArrowRight:\n {\n if (request.itemType === 'leaf') {\n return;\n }\n const open = openItems.has(request.value);\n if (!open) {\n return requestOpenChange({\n ...request,\n open: true\n });\n }\n return requestNavigation(request);\n }\n case treeDataTypes.Enter:\n {\n const open = openItems.has(request.value);\n return requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !open\n });\n }\n case treeDataTypes.ArrowLeft:\n {\n const open = openItems.has(request.value);\n if (open && request.itemType === 'branch') {\n return requestOpenChange({\n ...request,\n open: false,\n type: treeDataTypes.ArrowLeft\n });\n }\n return requestNavigation({\n ...request,\n type: treeDataTypes.ArrowLeft\n });\n }\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n case treeDataTypes.TypeAhead:\n return requestNavigation({\n ...request,\n target: request.event.currentTarget\n });\n }\n });\n return {\n components: {\n root: 'div'\n },\n open: true,\n appearance,\n size,\n level: 1,\n openItems,\n requestTreeResponse,\n root: getNativeElementProps('div', {\n ref: useMergedRefs(navigationRef, ref),\n role: 'tree',\n ...props\n })\n };\n}\nfunction warnIfNoProperPropsRootTree(props) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn('Tree must have either a `aria-label` or `aria-labelledby` property defined');\n }\n }\n}\n"],"names":["useRootTree","props","ref","warnIfNoProperPropsRootTree","appearance","size","openItems","setOpenItems","useControllableOpenItems","navigate","navigationRef","useNestedTreeNavigation","requestOpenChange","data","_props_onOpenChange","nextOpenItems","createNextOpenItems","onOpenChange","call","event","isDefaultPrevented","requestNavigation","_props_onNavigation_unstable","onNavigation_unstable","type","treeDataTypes","ArrowDown","ArrowUp","preventDefault","requestTreeResponse","useEventCallback","request","Click","ExpandIconClick","ReactDOM","unstable_batchedUpdates","open","itemType","has","value","ArrowRight","Enter","ArrowLeft","End","Home","TypeAhead","target","currentTarget","components","root","level","getNativeElementProps","useMergedRefs","role","process","env","NODE_ENV","console","warn"],"mappings":"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"}
|
|
@@ -13,5 +13,7 @@ const renderTreeItem_unstable = (state, contextValues)=>{
|
|
|
13
13
|
const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
|
|
14
14
|
return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemProvider, {
|
|
15
15
|
value: contextValues.treeItem
|
|
16
|
-
},
|
|
16
|
+
}, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_contexts.TreeItemSlotsProvider, {
|
|
17
|
+
value: contextValues.treeItemSlots
|
|
18
|
+
}, slotProps.root.children)));
|
|
17
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider } from '../../contexts';\n/**\n * Render the final JSX of TreeItem\n */ export const renderTreeItem_unstable = (state, contextValues)=>{\n const { slots , slotProps } = getSlotsNext(state);\n return /*#__PURE__*/ createElement(slots.root, slotProps.root, /*#__PURE__*/ createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, slotProps.root.children));\n};\n"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","root","TreeItemProvider","value","treeItem","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACtD;
|
|
1
|
+
{"version":3,"sources":["renderTreeItem.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { TreeItemProvider, TreeItemSlotsProvider } from '../../contexts';\n/**\n * Render the final JSX of TreeItem\n */ export const renderTreeItem_unstable = (state, contextValues)=>{\n const { slots , slotProps } = getSlotsNext(state);\n return /*#__PURE__*/ createElement(slots.root, slotProps.root, /*#__PURE__*/ createElement(TreeItemProvider, {\n value: contextValues.treeItem\n }, /*#__PURE__*/ createElement(TreeItemSlotsProvider, {\n value: contextValues.treeItemSlots\n }, slotProps.root.children)));\n};\n"],"names":["renderTreeItem_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","root","TreeItemProvider","value","treeItem","TreeItemSlotsProvider","treeItemSlots","children"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACtD;0BAC2B;AAG7C,MAAMA,0BAA0B,CAACC,OAAOC,gBAAgB;IAC/D,MAAM,EAAEC,MAAK,EAAGC,UAAS,EAAG,GAAGC,IAAAA,4BAAY,EAACJ;IAC5C,OAAO,WAAW,GAAGK,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAEH,UAAUG,IAAI,EAAE,WAAW,GAAGD,IAAAA,8BAAa,EAACE,0BAAgB,EAAE;QACzGC,OAAOP,cAAcQ,QAAQ;IACjC,GAAG,WAAW,GAAGJ,IAAAA,8BAAa,EAACK,+BAAqB,EAAE;QAClDF,OAAOP,cAAcU,aAAa;IACtC,GAAGR,UAAUG,IAAI,CAACM,QAAQ;AAC9B"}
|
|
@@ -13,22 +13,39 @@ const _reactPortal = require("@fluentui/react-portal");
|
|
|
13
13
|
const _index = require("../../contexts/index");
|
|
14
14
|
const _tokens = require("../../utils/tokens");
|
|
15
15
|
const _getTreeItemValueFromElement = require("../../utils/getTreeItemValueFromElement");
|
|
16
|
+
const _treeItemChevron = require("../TreeItemChevron");
|
|
16
17
|
function useTreeItem_unstable(props, ref) {
|
|
17
18
|
var _props_value;
|
|
18
19
|
const contextLevel = (0, _index.useTreeContext_unstable)((ctx)=>ctx.level);
|
|
19
20
|
const value = (0, _reactUtilities.useId)('fuiTreeItemValue-', (_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.toString());
|
|
20
|
-
const { onClick , onKeyDown , as ='div' , itemType ='leaf' , 'aria-level': level = contextLevel , ...rest } = props;
|
|
21
|
+
const { onClick , onKeyDown , as ='div' , itemType ='leaf' , 'aria-level': level = contextLevel , expandIcon , aside , ...rest } = props;
|
|
21
22
|
const requestTreeResponse = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestTreeResponse);
|
|
22
|
-
const [
|
|
23
|
+
const [isActionsVisibleExternal, actions] = (0, _reactUtilities.isResolvedShorthand)(props.actions) ? [
|
|
24
|
+
props.actions.visible,
|
|
25
|
+
{
|
|
26
|
+
...props.actions,
|
|
27
|
+
visible: undefined
|
|
28
|
+
}
|
|
29
|
+
] : [
|
|
30
|
+
undefined,
|
|
31
|
+
props.actions
|
|
32
|
+
];
|
|
33
|
+
const [isActionsVisible, setActionsVisible] = (0, _reactUtilities.useControllableState)({
|
|
34
|
+
state: isActionsVisibleExternal,
|
|
35
|
+
defaultState: false,
|
|
36
|
+
initialState: false
|
|
37
|
+
});
|
|
23
38
|
const [isAsideVisible, setAsideVisible] = _react.useState(true);
|
|
24
|
-
const handleActionsRef = (
|
|
25
|
-
setAsideVisible(
|
|
39
|
+
const handleActionsRef = (actionsElement)=>{
|
|
40
|
+
setAsideVisible(actionsElement === null);
|
|
26
41
|
};
|
|
27
42
|
const open = (0, _index.useTreeContext_unstable)((ctx)=>ctx.openItems.has(value));
|
|
28
43
|
const actionsRef = _react.useRef(null);
|
|
29
44
|
const expandIconRef = _react.useRef(null);
|
|
30
45
|
const layoutRef = _react.useRef(null);
|
|
31
46
|
const subtreeRef = _react.useRef(null);
|
|
47
|
+
const actionsRefs = (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(actions) ? actions.ref : undefined, handleActionsRef, actionsRef);
|
|
48
|
+
const expandIconRefs = (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(expandIcon) ? expandIcon.ref : undefined, expandIconRef);
|
|
32
49
|
const handleClick = (0, _reactUtilities.useEventCallback)((event)=>{
|
|
33
50
|
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
34
51
|
if (event.isDefaultPrevented()) {
|
|
@@ -45,17 +62,16 @@ function useTreeItem_unstable(props, ref) {
|
|
|
45
62
|
const isFromExpandIcon = expandIconRef.current && (0, _reactPortal.elementContains)(expandIconRef.current, event.target);
|
|
46
63
|
requestTreeResponse({
|
|
47
64
|
event,
|
|
48
|
-
itemType,
|
|
49
65
|
value,
|
|
66
|
+
itemType,
|
|
67
|
+
target: event.currentTarget,
|
|
50
68
|
type: isFromExpandIcon ? _tokens.treeDataTypes.ExpandIconClick : _tokens.treeDataTypes.Click
|
|
51
69
|
});
|
|
52
70
|
});
|
|
53
71
|
const handleKeyDown = (0, _reactUtilities.useEventCallback)((event)=>{
|
|
54
72
|
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
if (event.currentTarget !== event.target) {
|
|
73
|
+
// Ignore keyboard events that do not originate from the current tree item.
|
|
74
|
+
if (event.isDefaultPrevented() || event.currentTarget !== event.target) {
|
|
59
75
|
return;
|
|
60
76
|
}
|
|
61
77
|
switch(event.key){
|
|
@@ -68,6 +84,7 @@ function useTreeItem_unstable(props, ref) {
|
|
|
68
84
|
case _tokens.treeDataTypes.ArrowRight:
|
|
69
85
|
return requestTreeResponse({
|
|
70
86
|
event,
|
|
87
|
+
target: event.currentTarget,
|
|
71
88
|
value,
|
|
72
89
|
itemType,
|
|
73
90
|
type: event.key
|
|
@@ -77,6 +94,7 @@ function useTreeItem_unstable(props, ref) {
|
|
|
77
94
|
if (isTypeAheadCharacter) {
|
|
78
95
|
requestTreeResponse({
|
|
79
96
|
event,
|
|
97
|
+
target: event.currentTarget,
|
|
80
98
|
value,
|
|
81
99
|
itemType,
|
|
82
100
|
type: _tokens.treeDataTypes.TypeAhead
|
|
@@ -99,16 +117,37 @@ function useTreeItem_unstable(props, ref) {
|
|
|
99
117
|
return setActionsVisible(false);
|
|
100
118
|
}
|
|
101
119
|
});
|
|
120
|
+
const isBranch = itemType === 'branch';
|
|
121
|
+
const actionsSlot = _react.useMemo(()=>isActionsVisible ? (0, _reactUtilities.resolveShorthand)(actions) : undefined, [
|
|
122
|
+
actions,
|
|
123
|
+
isActionsVisible
|
|
124
|
+
]);
|
|
125
|
+
if (actionsSlot) {
|
|
126
|
+
actionsSlot.ref = actionsRefs;
|
|
127
|
+
}
|
|
128
|
+
const asideSlot = _react.useMemo(()=>isAsideVisible ? (0, _reactUtilities.resolveShorthand)(aside) : undefined, [
|
|
129
|
+
aside,
|
|
130
|
+
isAsideVisible
|
|
131
|
+
]);
|
|
132
|
+
const expandIconSlot = _react.useMemo(()=>(0, _reactUtilities.resolveShorthand)(expandIcon, {
|
|
133
|
+
required: isBranch,
|
|
134
|
+
defaultProps: {
|
|
135
|
+
children: /*#__PURE__*/ _react.createElement(_treeItemChevron.TreeItemChevron, null),
|
|
136
|
+
'aria-hidden': true
|
|
137
|
+
}
|
|
138
|
+
}), [
|
|
139
|
+
expandIcon,
|
|
140
|
+
isBranch
|
|
141
|
+
]);
|
|
142
|
+
if (expandIconSlot) {
|
|
143
|
+
expandIconSlot.ref = expandIconRefs;
|
|
144
|
+
}
|
|
102
145
|
return {
|
|
103
146
|
value,
|
|
104
147
|
open,
|
|
105
148
|
subtreeRef,
|
|
106
|
-
actionsRef: (0, _reactUtilities.useMergedRefs)(actionsRef, handleActionsRef),
|
|
107
|
-
expandIconRef,
|
|
108
149
|
layoutRef,
|
|
109
150
|
itemType,
|
|
110
|
-
isActionsVisible,
|
|
111
|
-
isAsideVisible,
|
|
112
151
|
level,
|
|
113
152
|
components: {
|
|
114
153
|
root: 'div'
|
|
@@ -120,13 +159,16 @@ function useTreeItem_unstable(props, ref) {
|
|
|
120
159
|
role: 'treeitem',
|
|
121
160
|
'aria-level': level,
|
|
122
161
|
[_getTreeItemValueFromElement.dataTreeItemValueAttrName]: value,
|
|
123
|
-
'aria-expanded':
|
|
162
|
+
'aria-expanded': isBranch ? open : undefined,
|
|
124
163
|
onClick: handleClick,
|
|
125
164
|
onKeyDown: handleKeyDown,
|
|
126
165
|
onMouseOver: handleActionsVisible,
|
|
127
166
|
onFocus: handleActionsVisible,
|
|
128
167
|
onMouseOut: handleActionsInvisible,
|
|
129
168
|
onBlur: handleActionsInvisible
|
|
130
|
-
})
|
|
169
|
+
}),
|
|
170
|
+
actions: actionsSlot,
|
|
171
|
+
aside: asideSlot,
|
|
172
|
+
expandIcon: expandIconSlot
|
|
131
173
|
};
|
|
132
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useTreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useId, useMergedRefs } from '@fluentui/react-utilities';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport { useTreeContext_unstable } from '../../contexts/index';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { dataTreeItemValueAttrName } from '../../utils/getTreeItemValueFromElement';\n/**\n * Create the state required to render TreeItem.\n *\n * The returned state can be modified with hooks such as useTreeItemStyles_unstable,\n * before being passed to renderTreeItem_unstable.\n *\n * @param props - props from this instance of TreeItem\n * @param ref - reference to root HTMLElement of TreeItem\n */ export function useTreeItem_unstable(props, ref) {\n var _props_value;\n const contextLevel = useTreeContext_unstable((ctx)=>ctx.level);\n const value = useId('fuiTreeItemValue-', (_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.toString());\n const { onClick , onKeyDown , as ='div' , itemType ='leaf' , 'aria-level': level = contextLevel , ...rest } = props;\n const requestTreeResponse = useTreeContext_unstable((ctx)=>ctx.requestTreeResponse);\n const [isActionsVisible, setActionsVisible] = React.useState(false);\n const [isAsideVisible, setAsideVisible] = React.useState(true);\n const handleActionsRef = (actions)=>{\n setAsideVisible(actions === null);\n };\n const open = useTreeContext_unstable((ctx)=>ctx.openItems.has(value));\n const actionsRef = React.useRef(null);\n const expandIconRef = React.useRef(null);\n const layoutRef = React.useRef(null);\n const subtreeRef = React.useRef(null);\n const handleClick = useEventCallback((event)=>{\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n if (event.isDefaultPrevented()) {\n return;\n }\n const isEventFromActions = actionsRef.current && elementContains(actionsRef.current, event.target);\n if (isEventFromActions) {\n return;\n }\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (isEventFromSubtree) {\n return;\n }\n const isFromExpandIcon = expandIconRef.current && elementContains(expandIconRef.current, event.target);\n requestTreeResponse({\n event,\n itemType,\n value,\n type: isFromExpandIcon ? treeDataTypes.ExpandIconClick : treeDataTypes.Click\n });\n });\n const handleKeyDown = useEventCallback((event)=>{\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.currentTarget !== event.target) {\n return;\n }\n switch(event.key){\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.Enter:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowLeft:\n case treeDataTypes.ArrowRight:\n return requestTreeResponse({\n event,\n value,\n itemType,\n type: event.key\n });\n }\n const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;\n if (isTypeAheadCharacter) {\n requestTreeResponse({\n event,\n value,\n itemType,\n type: treeDataTypes.TypeAhead\n });\n }\n });\n const handleActionsVisible = useEventCallback((event)=>{\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n setActionsVisible(true);\n }\n });\n const handleActionsInvisible = useEventCallback((event)=>{\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n const isRelatedTargetFromActions = Boolean(actionsRef.current && elementContains(actionsRef.current, event.relatedTarget));\n if (isRelatedTargetFromActions) {\n return setActionsVisible(true);\n }\n if (!isTargetFromSubtree) {\n return setActionsVisible(false);\n }\n });\n return {\n value,\n open,\n subtreeRef,\n actionsRef: useMergedRefs(actionsRef, handleActionsRef),\n expandIconRef,\n layoutRef,\n itemType,\n isActionsVisible,\n isAsideVisible,\n level,\n components: {\n root: 'div'\n },\n root: getNativeElementProps(as, {\n tabIndex: -1,\n ...rest,\n ref,\n role: 'treeitem',\n 'aria-level': level,\n [dataTreeItemValueAttrName]: value,\n 'aria-expanded': itemType === 'branch' ? open : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onMouseOver: handleActionsVisible,\n onFocus: handleActionsVisible,\n onMouseOut: handleActionsInvisible,\n onBlur: handleActionsInvisible\n })\n };\n}\n"],"names":["useTreeItem_unstable","props","ref","_props_value","contextLevel","useTreeContext_unstable","ctx","level","value","useId","toString","onClick","onKeyDown","as","itemType","rest","requestTreeResponse","isActionsVisible","setActionsVisible","React","useState","isAsideVisible","setAsideVisible","handleActionsRef","actions","open","openItems","has","actionsRef","useRef","expandIconRef","layoutRef","subtreeRef","handleClick","useEventCallback","event","isDefaultPrevented","isEventFromActions","current","elementContains","target","isEventFromSubtree","isFromExpandIcon","type","treeDataTypes","ExpandIconClick","Click","handleKeyDown","currentTarget","key","End","Home","Enter","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","isTypeAheadCharacter","length","match","altKey","ctrlKey","metaKey","TypeAhead","handleActionsVisible","isTargetFromSubtree","Boolean","handleActionsInvisible","isRelatedTargetFromActions","relatedTarget","useMergedRefs","components","root","getNativeElementProps","tabIndex","role","dataTreeItemValueAttrName","undefined","onMouseOver","onFocus","onMouseOut","onBlur"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useTreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, isResolvedShorthand, resolveShorthand, useControllableState, useId, useMergedRefs } from '@fluentui/react-utilities';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport { useTreeContext_unstable } from '../../contexts/index';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { dataTreeItemValueAttrName } from '../../utils/getTreeItemValueFromElement';\nimport { TreeItemChevron } from '../TreeItemChevron';\n/**\n * Create the state required to render TreeItem.\n *\n * The returned state can be modified with hooks such as useTreeItemStyles_unstable,\n * before being passed to renderTreeItem_unstable.\n *\n * @param props - props from this instance of TreeItem\n * @param ref - reference to root HTMLElement of TreeItem\n */ export function useTreeItem_unstable(props, ref) {\n var _props_value;\n const contextLevel = useTreeContext_unstable((ctx)=>ctx.level);\n const value = useId('fuiTreeItemValue-', (_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.toString());\n const { onClick , onKeyDown , as ='div' , itemType ='leaf' , 'aria-level': level = contextLevel , expandIcon , aside , ...rest } = props;\n const requestTreeResponse = useTreeContext_unstable((ctx)=>ctx.requestTreeResponse);\n const [isActionsVisibleExternal, actions] = isResolvedShorthand(props.actions) ? [\n props.actions.visible,\n {\n ...props.actions,\n visible: undefined\n }\n ] : [\n undefined,\n props.actions\n ];\n const [isActionsVisible, setActionsVisible] = useControllableState({\n state: isActionsVisibleExternal,\n defaultState: false,\n initialState: false\n });\n const [isAsideVisible, setAsideVisible] = React.useState(true);\n const handleActionsRef = (actionsElement)=>{\n setAsideVisible(actionsElement === null);\n };\n const open = useTreeContext_unstable((ctx)=>ctx.openItems.has(value));\n const actionsRef = React.useRef(null);\n const expandIconRef = React.useRef(null);\n const layoutRef = React.useRef(null);\n const subtreeRef = React.useRef(null);\n const actionsRefs = useMergedRefs(isResolvedShorthand(actions) ? actions.ref : undefined, handleActionsRef, actionsRef);\n const expandIconRefs = useMergedRefs(isResolvedShorthand(expandIcon) ? expandIcon.ref : undefined, expandIconRef);\n const handleClick = useEventCallback((event)=>{\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n if (event.isDefaultPrevented()) {\n return;\n }\n const isEventFromActions = actionsRef.current && elementContains(actionsRef.current, event.target);\n if (isEventFromActions) {\n return;\n }\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (isEventFromSubtree) {\n return;\n }\n const isFromExpandIcon = expandIconRef.current && elementContains(expandIconRef.current, event.target);\n requestTreeResponse({\n event,\n value,\n itemType,\n target: event.currentTarget,\n type: isFromExpandIcon ? treeDataTypes.ExpandIconClick : treeDataTypes.Click\n });\n });\n const handleKeyDown = useEventCallback((event)=>{\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n // Ignore keyboard events that do not originate from the current tree item.\n if (event.isDefaultPrevented() || event.currentTarget !== event.target) {\n return;\n }\n switch(event.key){\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.Enter:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowLeft:\n case treeDataTypes.ArrowRight:\n return requestTreeResponse({\n event,\n target: event.currentTarget,\n value,\n itemType,\n type: event.key\n });\n }\n const isTypeAheadCharacter = event.key.length === 1 && event.key.match(/\\w/) && !event.altKey && !event.ctrlKey && !event.metaKey;\n if (isTypeAheadCharacter) {\n requestTreeResponse({\n event,\n target: event.currentTarget,\n value,\n itemType,\n type: treeDataTypes.TypeAhead\n });\n }\n });\n const handleActionsVisible = useEventCallback((event)=>{\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n setActionsVisible(true);\n }\n });\n const handleActionsInvisible = useEventCallback((event)=>{\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n const isRelatedTargetFromActions = Boolean(actionsRef.current && elementContains(actionsRef.current, event.relatedTarget));\n if (isRelatedTargetFromActions) {\n return setActionsVisible(true);\n }\n if (!isTargetFromSubtree) {\n return setActionsVisible(false);\n }\n });\n const isBranch = itemType === 'branch';\n const actionsSlot = React.useMemo(()=>isActionsVisible ? resolveShorthand(actions) : undefined, [\n actions,\n isActionsVisible\n ]);\n if (actionsSlot) {\n actionsSlot.ref = actionsRefs;\n }\n const asideSlot = React.useMemo(()=>isAsideVisible ? resolveShorthand(aside) : undefined, [\n aside,\n isAsideVisible\n ]);\n const expandIconSlot = React.useMemo(()=>resolveShorthand(expandIcon, {\n required: isBranch,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(TreeItemChevron, null),\n 'aria-hidden': true\n }\n }), [\n expandIcon,\n isBranch\n ]);\n if (expandIconSlot) {\n expandIconSlot.ref = expandIconRefs;\n }\n return {\n value,\n open,\n subtreeRef,\n layoutRef,\n itemType,\n level,\n components: {\n root: 'div'\n },\n root: getNativeElementProps(as, {\n tabIndex: -1,\n ...rest,\n ref,\n role: 'treeitem',\n 'aria-level': level,\n [dataTreeItemValueAttrName]: value,\n 'aria-expanded': isBranch ? open : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onMouseOver: handleActionsVisible,\n onFocus: handleActionsVisible,\n onMouseOut: handleActionsInvisible,\n onBlur: handleActionsInvisible\n }),\n actions: actionsSlot,\n aside: asideSlot,\n expandIcon: expandIconSlot\n };\n}\n"],"names":["useTreeItem_unstable","props","ref","_props_value","contextLevel","useTreeContext_unstable","ctx","level","value","useId","toString","onClick","onKeyDown","as","itemType","expandIcon","aside","rest","requestTreeResponse","isActionsVisibleExternal","actions","isResolvedShorthand","visible","undefined","isActionsVisible","setActionsVisible","useControllableState","state","defaultState","initialState","isAsideVisible","setAsideVisible","React","useState","handleActionsRef","actionsElement","open","openItems","has","actionsRef","useRef","expandIconRef","layoutRef","subtreeRef","actionsRefs","useMergedRefs","expandIconRefs","handleClick","useEventCallback","event","isDefaultPrevented","isEventFromActions","current","elementContains","target","isEventFromSubtree","isFromExpandIcon","currentTarget","type","treeDataTypes","ExpandIconClick","Click","handleKeyDown","key","End","Home","Enter","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","isTypeAheadCharacter","length","match","altKey","ctrlKey","metaKey","TypeAhead","handleActionsVisible","isTargetFromSubtree","Boolean","handleActionsInvisible","isRelatedTargetFromActions","relatedTarget","isBranch","actionsSlot","useMemo","resolveShorthand","asideSlot","expandIconSlot","required","defaultProps","children","createElement","TreeItemChevron","components","root","getNativeElementProps","tabIndex","role","dataTreeItemValueAttrName","onMouseOver","onFocus","onMouseOut","onBlur"],"mappings":"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"}
|
|
@@ -6,23 +6,31 @@ Object.defineProperty(exports, "useTreeItemContextValues_unstable", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>useTreeItemContextValues_unstable
|
|
8
8
|
});
|
|
9
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
9
11
|
function useTreeItemContextValues_unstable(state) {
|
|
10
|
-
const { value ,
|
|
12
|
+
const { value , itemType , layoutRef , subtreeRef , open , actions , aside , expandIcon } = state;
|
|
11
13
|
/**
|
|
12
14
|
* This context is created with "@fluentui/react-context-selector",
|
|
13
15
|
* there is no sense to memoize it
|
|
14
16
|
*/ const treeItem = {
|
|
15
|
-
isActionsVisible,
|
|
16
|
-
isAsideVisible,
|
|
17
17
|
value,
|
|
18
|
-
actionsRef,
|
|
19
18
|
itemType,
|
|
20
19
|
layoutRef,
|
|
21
20
|
subtreeRef,
|
|
22
|
-
expandIconRef,
|
|
23
21
|
open
|
|
24
22
|
};
|
|
23
|
+
const treeItemSlots = _react.useMemo(()=>({
|
|
24
|
+
actions,
|
|
25
|
+
aside,
|
|
26
|
+
expandIcon
|
|
27
|
+
}), [
|
|
28
|
+
actions,
|
|
29
|
+
aside,
|
|
30
|
+
expandIcon
|
|
31
|
+
]);
|
|
25
32
|
return {
|
|
26
|
-
treeItem
|
|
33
|
+
treeItem,
|
|
34
|
+
treeItemSlots
|
|
27
35
|
};
|
|
28
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useTreeItemContextValues.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["useTreeItemContextValues.js"],"sourcesContent":["import * as React from 'react';\nexport function useTreeItemContextValues_unstable(state) {\n const { value , itemType , layoutRef , subtreeRef , open , actions , aside , expandIcon } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */ const treeItem = {\n value,\n itemType,\n layoutRef,\n subtreeRef,\n open\n };\n const treeItemSlots = React.useMemo(()=>({\n actions,\n aside,\n expandIcon\n }), [\n actions,\n aside,\n expandIcon\n ]);\n return {\n treeItem,\n treeItemSlots\n };\n}\n"],"names":["useTreeItemContextValues_unstable","state","value","itemType","layoutRef","subtreeRef","open","actions","aside","expandIcon","treeItem","treeItemSlots","React","useMemo"],"mappings":";;;;+BACgBA;;aAAAA;;;6DADO;AAChB,SAASA,kCAAkCC,KAAK,EAAE;IACrD,MAAM,EAAEC,MAAK,EAAGC,SAAQ,EAAGC,UAAS,EAAGC,WAAU,EAAGC,KAAI,EAAGC,QAAO,EAAGC,MAAK,EAAGC,WAAU,EAAG,GAAGR;IAC7F;;;GAGD,GAAG,MAAMS,WAAW;QACfR;QACAC;QACAC;QACAC;QACAC;IACJ;IACA,MAAMK,gBAAgBC,OAAMC,OAAO,CAAC,IAAK,CAAA;YACjCN;YACAC;YACAC;QACJ,CAAA,GAAI;QACJF;QACAC;QACAC;KACH;IACD,OAAO;QACHC;QACAC;IACJ;AACJ"}
|
|
@@ -10,17 +10,11 @@ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildc
|
|
|
10
10
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
11
11
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
12
12
|
const _treeItemContext = require("../../contexts/treeItemContext");
|
|
13
|
-
const
|
|
13
|
+
const _treeItemSlotsContext = require("../../contexts/treeItemSlotsContext");
|
|
14
14
|
const useTreeItemLayout_unstable = (props, ref)=>{
|
|
15
|
-
const { content , iconAfter , iconBefore ,
|
|
15
|
+
const { content , iconAfter , iconBefore , as ='span' } = props;
|
|
16
|
+
const { actions , aside , expandIcon } = (0, _treeItemSlotsContext.useTreeItemSlotsContext_unstable)();
|
|
16
17
|
const layoutRef = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.layoutRef);
|
|
17
|
-
const expandIconRef = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.expandIconRef);
|
|
18
|
-
const isActionsVisibleContext = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.isActionsVisible);
|
|
19
|
-
const isAsideVisible = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.isAsideVisible);
|
|
20
|
-
var _ref;
|
|
21
|
-
const isActionsVisible = (_ref = (0, _reactUtilities.isResolvedShorthand)(actions) ? actions.visible : undefined) !== null && _ref !== void 0 ? _ref : isActionsVisibleContext;
|
|
22
|
-
const isBranch = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType === 'branch');
|
|
23
|
-
const actionsRef = (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(actions) ? actions.ref : undefined, (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.actionsRef));
|
|
24
18
|
return {
|
|
25
19
|
components: {
|
|
26
20
|
root: 'div',
|
|
@@ -51,22 +45,8 @@ const useTreeItemLayout_unstable = (props, ref)=>{
|
|
|
51
45
|
'aria-hidden': true
|
|
52
46
|
}
|
|
53
47
|
}),
|
|
54
|
-
aside:
|
|
55
|
-
actions:
|
|
56
|
-
|
|
57
|
-
visible: undefined
|
|
58
|
-
} : actions, {
|
|
59
|
-
defaultProps: {
|
|
60
|
-
ref: actionsRef
|
|
61
|
-
}
|
|
62
|
-
}) : undefined,
|
|
63
|
-
expandIcon: (0, _reactUtilities.resolveShorthand)(expandIcon, {
|
|
64
|
-
required: isBranch,
|
|
65
|
-
defaultProps: {
|
|
66
|
-
children: /*#__PURE__*/ _react.createElement(_treeItemChevron.TreeItemChevron, null),
|
|
67
|
-
'aria-hidden': true,
|
|
68
|
-
ref: (0, _reactUtilities.useMergedRefs)((0, _reactUtilities.isResolvedShorthand)(expandIcon) ? expandIcon.ref : undefined, expandIconRef)
|
|
69
|
-
}
|
|
70
|
-
})
|
|
48
|
+
aside: (0, _reactUtilities.resolveShorthand)(aside),
|
|
49
|
+
actions: (0, _reactUtilities.resolveShorthand)(actions),
|
|
50
|
+
expandIcon: (0, _reactUtilities.resolveShorthand)(expandIcon)
|
|
71
51
|
};
|
|
72
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useTreeItemLayout.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps,
|
|
1
|
+
{"version":3,"sources":["useTreeItemLayout.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, resolveShorthand, useMergedRefs } from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nimport { useTreeItemSlotsContext_unstable } from '../../contexts/treeItemSlotsContext';\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */ export const useTreeItemLayout_unstable = (props, ref)=>{\n const { content , iconAfter , iconBefore , as ='span' } = props;\n const { actions , aside , expandIcon } = useTreeItemSlotsContext_unstable();\n const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n content: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div'\n },\n buttonContextValue: {\n size: 'small'\n },\n root: getNativeElementProps(as, {\n ...props,\n ref: useMergedRefs(ref, layoutRef)\n }),\n iconBefore: resolveShorthand(iconBefore, {\n defaultProps: {\n 'aria-hidden': true\n }\n }),\n content: resolveShorthand(content, {\n required: true\n }),\n iconAfter: resolveShorthand(iconAfter, {\n defaultProps: {\n 'aria-hidden': true\n }\n }),\n aside: resolveShorthand(aside),\n actions: resolveShorthand(actions),\n expandIcon: resolveShorthand(expandIcon)\n };\n};\n"],"names":["useTreeItemLayout_unstable","props","ref","content","iconAfter","iconBefore","as","actions","aside","expandIcon","useTreeItemSlotsContext_unstable","layoutRef","useTreeItemContext_unstable","ctx","components","root","buttonContextValue","size","getNativeElementProps","useMergedRefs","resolveShorthand","defaultProps","required"],"mappings":";;;;+BAYiBA;;aAAAA;;;6DAZM;gCACgD;iCAC3B;sCACK;AAStC,MAAMA,6BAA6B,CAACC,OAAOC,MAAM;IACxD,MAAM,EAAEC,QAAO,EAAGC,UAAS,EAAGC,WAAU,EAAGC,IAAI,OAAM,EAAG,GAAGL;IAC3D,MAAM,EAAEM,QAAO,EAAGC,MAAK,EAAGC,WAAU,EAAG,GAAGC,IAAAA,sDAAgC;IAC1E,MAAMC,YAAYC,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAIF,SAAS;IAClE,OAAO;QACHG,YAAY;YACRC,MAAM;YACNN,YAAY;YACZJ,YAAY;YACZF,SAAS;YACTC,WAAW;YACXG,SAAS;YACTC,OAAO;QACX;QACAQ,oBAAoB;YAChBC,MAAM;QACV;QACAF,MAAMG,IAAAA,qCAAqB,EAACZ,IAAI;YAC5B,GAAGL,KAAK;YACRC,KAAKiB,IAAAA,6BAAa,EAACjB,KAAKS;QAC5B;QACAN,YAAYe,IAAAA,gCAAgB,EAACf,YAAY;YACrCgB,cAAc;gBACV,eAAe,IAAI;YACvB;QACJ;QACAlB,SAASiB,IAAAA,gCAAgB,EAACjB,SAAS;YAC/BmB,UAAU,IAAI;QAClB;QACAlB,WAAWgB,IAAAA,gCAAgB,EAAChB,WAAW;YACnCiB,cAAc;gBACV,eAAe,IAAI;YACvB;QACJ;QACAb,OAAOY,IAAAA,gCAAgB,EAACZ;QACxBD,SAASa,IAAAA,gCAAgB,EAACb;QAC1BE,YAAYW,IAAAA,gCAAgB,EAACX;IACjC;AACJ"}
|
|
@@ -5,3 +5,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
|
6
6
|
_exportStar(require("./treeContext"), exports);
|
|
7
7
|
_exportStar(require("./treeItemContext"), exports);
|
|
8
|
+
_exportStar(require("./treeItemSlotsContext"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './treeContext';\nexport * from './treeItemContext';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA"}
|
|
1
|
+
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './treeContext';\nexport * from './treeItemContext';\nexport * from './treeItemSlotsContext';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA"}
|
|
@@ -17,7 +17,7 @@ const _reactContextSelector = require("@fluentui/react-context-selector");
|
|
|
17
17
|
const _immutableSet = require("../utils/ImmutableSet");
|
|
18
18
|
const defaultContextValue = {
|
|
19
19
|
level: 0,
|
|
20
|
-
openItems: _immutableSet.
|
|
20
|
+
openItems: _immutableSet.ImmutableSet.empty,
|
|
21
21
|
requestTreeResponse: noop,
|
|
22
22
|
appearance: 'subtle',
|
|
23
23
|
size: 'medium'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["treeContext.js"],"sourcesContent":["import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport {
|
|
1
|
+
{"version":3,"sources":["treeContext.js"],"sourcesContent":["import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport { ImmutableSet } from '../utils/ImmutableSet';\nconst defaultContextValue = {\n level: 0,\n openItems: ImmutableSet.empty,\n requestTreeResponse: noop,\n appearance: 'subtle',\n size: 'medium'\n};\nfunction noop() {\n/* noop */ }\nexport const TreeContext = createContext(undefined);\nexport const { Provider: TreeProvider } = TreeContext;\nexport const useTreeContext_unstable = (selector)=>useContextSelector(TreeContext, (ctx = defaultContextValue)=>selector(ctx));\n"],"names":["TreeContext","TreeProvider","useTreeContext_unstable","defaultContextValue","level","openItems","ImmutableSet","empty","requestTreeResponse","noop","appearance","size","createContext","undefined","Provider","selector","useContextSelector","ctx"],"mappings":";;;;;;;;;;;IAWaA,WAAW,MAAXA;IACYC,YAAY,MAAZA;IACZC,uBAAuB,MAAvBA;;sCAbqC;8BACrB;AAC7B,MAAMC,sBAAsB;IACxBC,OAAO;IACPC,WAAWC,0BAAY,CAACC,KAAK;IAC7BC,qBAAqBC;IACrBC,YAAY;IACZC,MAAM;AACV;AACA,SAASF,OAAO;AAChB,QAAQ,GAAG;AACJ,MAAMT,cAAcY,IAAAA,mCAAa,EAACC;AAClC,MAAM,EAAEC,UAAUb,aAAY,EAAG,GAAGD;AACpC,MAAME,0BAA0B,CAACa,WAAWC,IAAAA,wCAAkB,EAAChB,aAAa,CAACiB,MAAMd,mBAAmB,GAAGY,SAASE"}
|
|
@@ -18,10 +18,6 @@ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
|
18
18
|
const _reactContextSelector = require("@fluentui/react-context-selector");
|
|
19
19
|
const defaultContextValue = {
|
|
20
20
|
value: '',
|
|
21
|
-
isActionsVisible: false,
|
|
22
|
-
isAsideVisible: true,
|
|
23
|
-
actionsRef: /*#__PURE__*/ _react.createRef(),
|
|
24
|
-
expandIconRef: /*#__PURE__*/ _react.createRef(),
|
|
25
21
|
layoutRef: /*#__PURE__*/ _react.createRef(),
|
|
26
22
|
subtreeRef: /*#__PURE__*/ _react.createRef(),
|
|
27
23
|
itemType: 'leaf',
|