@fluentui/react-tree 9.0.0-beta.24 → 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 +46 -1
- package/CHANGELOG.md +16 -2
- 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 +5 -5
- package/lib/hooks/useOpenItemsState.js +0 -28
- package/lib/hooks/useOpenItemsState.js.map +0 -1
- package/lib-commonjs/hooks/useOpenItemsState.js.map +0 -1
|
@@ -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',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["treeItemContext.js"],"sourcesContent":["import * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nconst defaultContextValue = {\n value: '',\n
|
|
1
|
+
{"version":3,"sources":["treeItemContext.js"],"sourcesContent":["import * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nconst defaultContextValue = {\n value: '',\n layoutRef: React.createRef(),\n subtreeRef: React.createRef(),\n itemType: 'leaf',\n open: false\n};\nexport const TreeItemContext = createContext(undefined);\nexport const { Provider: TreeItemProvider } = TreeItemContext;\nexport const useTreeItemContext_unstable = (selector)=>useContextSelector(TreeItemContext, (ctx = defaultContextValue)=>selector(ctx));\n"],"names":["TreeItemContext","TreeItemProvider","useTreeItemContext_unstable","defaultContextValue","value","layoutRef","React","createRef","subtreeRef","itemType","open","createContext","undefined","Provider","selector","useContextSelector","ctx"],"mappings":";;;;;;;;;;;IASaA,eAAe,MAAfA;IACYC,gBAAgB,MAAhBA;IACZC,2BAA2B,MAA3BA;;;6DAXU;sCAC2B;AAClD,MAAMC,sBAAsB;IACxBC,OAAO;IACPC,yBAAWC,OAAMC,SAAS;IAC1BC,0BAAYF,OAAMC,SAAS;IAC3BE,UAAU;IACVC,MAAM,KAAK;AACf;AACO,MAAMV,kBAAkBW,IAAAA,mCAAa,EAACC;AACtC,MAAM,EAAEC,UAAUZ,iBAAgB,EAAG,GAAGD;AACxC,MAAME,8BAA8B,CAACY,WAAWC,IAAAA,wCAAkB,EAACf,iBAAiB,CAACgB,MAAMb,mBAAmB,GAAGW,SAASE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
TreeItemSlotsContext: ()=>TreeItemSlotsContext,
|
|
13
|
+
TreeItemSlotsProvider: ()=>TreeItemSlotsProvider,
|
|
14
|
+
useTreeItemSlotsContext_unstable: ()=>useTreeItemSlotsContext_unstable
|
|
15
|
+
});
|
|
16
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
17
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
18
|
+
const defaultContextValue = {
|
|
19
|
+
actions: undefined,
|
|
20
|
+
aside: undefined,
|
|
21
|
+
expandIcon: undefined
|
|
22
|
+
};
|
|
23
|
+
const TreeItemSlotsContext = /*#__PURE__*/ _react.createContext(undefined);
|
|
24
|
+
const { Provider: TreeItemSlotsProvider } = TreeItemSlotsContext;
|
|
25
|
+
const useTreeItemSlotsContext_unstable = ()=>_react.useContext(TreeItemSlotsContext) || defaultContextValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["treeItemSlotsContext.js"],"sourcesContent":["import * as React from 'react';\nconst defaultContextValue = {\n actions: undefined,\n aside: undefined,\n expandIcon: undefined\n};\nexport const TreeItemSlotsContext = React.createContext(undefined);\nexport const { Provider: TreeItemSlotsProvider } = TreeItemSlotsContext;\nexport const useTreeItemSlotsContext_unstable = ()=>React.useContext(TreeItemSlotsContext) || defaultContextValue;\n"],"names":["TreeItemSlotsContext","TreeItemSlotsProvider","useTreeItemSlotsContext_unstable","defaultContextValue","actions","undefined","aside","expandIcon","React","createContext","Provider","useContext"],"mappings":";;;;;;;;;;;IAMaA,oBAAoB,MAApBA;IACYC,qBAAqB,MAArBA;IACZC,gCAAgC,MAAhCA;;;6DARU;AACvB,MAAMC,sBAAsB;IACxBC,SAASC;IACTC,OAAOD;IACPE,YAAYF;AAChB;AACO,MAAML,qCAAuBQ,OAAMC,aAAa,CAACJ;AACjD,MAAM,EAAEK,UAAUT,sBAAqB,EAAG,GAAGD;AAC7C,MAAME,mCAAmC,IAAIM,OAAMG,UAAU,CAACX,yBAAyBG"}
|
|
@@ -5,4 +5,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
|
6
6
|
_exportStar(require("./useFlatTree"), exports);
|
|
7
7
|
_exportStar(require("./useNestedTreeNavigation"), exports);
|
|
8
|
-
_exportStar(require("./
|
|
8
|
+
_exportStar(require("./useControllableOpenItems"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './useFlatTree';\nexport * from './useNestedTreeNavigation';\nexport * from './
|
|
1
|
+
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './useFlatTree';\nexport * from './useNestedTreeNavigation';\nexport * from './useControllableOpenItems';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA"}
|
|
@@ -2,27 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
useControllableOpenItems: ()=>useControllableOpenItems,
|
|
13
|
+
createNextOpenItems: ()=>createNextOpenItems
|
|
8
14
|
});
|
|
9
15
|
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
16
|
const _reactUtilities = require("@fluentui/react-utilities");
|
|
11
17
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
12
18
|
const _immutableSet = require("../utils/ImmutableSet");
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
state: _react.useMemo(()=>props.openItems &&
|
|
19
|
+
function useControllableOpenItems(props) {
|
|
20
|
+
return (0, _reactUtilities.useControllableState)({
|
|
21
|
+
state: _react.useMemo(()=>props.openItems && _immutableSet.ImmutableSet.create(props.openItems), [
|
|
16
22
|
props.openItems
|
|
17
23
|
]),
|
|
18
|
-
defaultState: props.defaultOpenItems && (()=>
|
|
19
|
-
initialState: _immutableSet.
|
|
24
|
+
defaultState: props.defaultOpenItems && (()=>_immutableSet.ImmutableSet.create(props.defaultOpenItems)),
|
|
25
|
+
initialState: _immutableSet.ImmutableSet.empty
|
|
20
26
|
});
|
|
21
|
-
const updateOpenItems = (0, _reactUtilities.useEventCallback)((data)=>setOpenItems((currentOpenItems)=>createNextOpenItems(data, currentOpenItems)));
|
|
22
|
-
return [
|
|
23
|
-
openItems,
|
|
24
|
-
updateOpenItems
|
|
25
|
-
];
|
|
26
27
|
}
|
|
27
28
|
function createNextOpenItems(data, previousOpenItems) {
|
|
28
29
|
if (data.value === null) {
|
|
@@ -32,6 +33,6 @@ function createNextOpenItems(data, previousOpenItems) {
|
|
|
32
33
|
if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {
|
|
33
34
|
return previousOpenItems;
|
|
34
35
|
}
|
|
35
|
-
const nextOpenItems =
|
|
36
|
+
const nextOpenItems = _immutableSet.ImmutableSet.create(previousOpenItems);
|
|
36
37
|
return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);
|
|
37
38
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useControllableOpenItems.js"],"sourcesContent":["import { useControllableState } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { ImmutableSet } from '../utils/ImmutableSet';\n/**\n * @internal\n */ export function useControllableOpenItems(props) {\n return useControllableState({\n state: React.useMemo(()=>props.openItems && ImmutableSet.create(props.openItems), [\n props.openItems\n ]),\n defaultState: props.defaultOpenItems && (()=>ImmutableSet.create(props.defaultOpenItems)),\n initialState: ImmutableSet.empty\n });\n}\nexport function createNextOpenItems(data, previousOpenItems) {\n if (data.value === null) {\n return previousOpenItems;\n }\n const previousOpenItemsHasId = previousOpenItems.has(data.value);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = ImmutableSet.create(previousOpenItems);\n return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);\n}\n"],"names":["useControllableOpenItems","createNextOpenItems","props","useControllableState","state","React","useMemo","openItems","ImmutableSet","create","defaultState","defaultOpenItems","initialState","empty","data","previousOpenItems","value","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"mappings":";;;;;;;;;;;IAKoBA,wBAAwB,MAAxBA;IASJC,mBAAmB,MAAnBA;;;gCAdqB;6DACd;8BACM;AAGlB,SAASD,yBAAyBE,KAAK,EAAE;IAChD,OAAOC,IAAAA,oCAAoB,EAAC;QACxBC,OAAOC,OAAMC,OAAO,CAAC,IAAIJ,MAAMK,SAAS,IAAIC,0BAAY,CAACC,MAAM,CAACP,MAAMK,SAAS,GAAG;YAC9EL,MAAMK,SAAS;SAClB;QACDG,cAAcR,MAAMS,gBAAgB,IAAK,CAAA,IAAIH,0BAAY,CAACC,MAAM,CAACP,MAAMS,gBAAgB,CAAA;QACvFC,cAAcJ,0BAAY,CAACK,KAAK;IACpC;AACJ;AACO,SAASZ,oBAAoBa,IAAI,EAAEC,iBAAiB,EAAE;IACzD,IAAID,KAAKE,KAAK,KAAK,IAAI,EAAE;QACrB,OAAOD;IACX,CAAC;IACD,MAAME,yBAAyBF,kBAAkBG,GAAG,CAACJ,KAAKE,KAAK;IAC/D,IAAIF,KAAKK,IAAI,GAAGF,yBAAyB,CAACA,sBAAsB,EAAE;QAC9D,OAAOF;IACX,CAAC;IACD,MAAMK,gBAAgBZ,0BAAY,CAACC,MAAM,CAACM;IAC1C,OAAOD,KAAKK,IAAI,GAAGC,cAAcC,GAAG,CAACP,KAAKE,KAAK,IAAII,cAAcE,MAAM,CAACR,KAAKE,KAAK,CAAC;AACvF"}
|
|
@@ -12,20 +12,20 @@ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
|
12
12
|
const _createFlatTreeItems = require("../utils/createFlatTreeItems");
|
|
13
13
|
const _tokens = require("../utils/tokens");
|
|
14
14
|
const _useFlatTreeNavigation = require("./useFlatTreeNavigation");
|
|
15
|
-
const
|
|
15
|
+
const _useControllableOpenItems = require("./useControllableOpenItems");
|
|
16
16
|
const _getTreeItemValueFromElement = require("../utils/getTreeItemValueFromElement");
|
|
17
17
|
function useFlatTree_unstable(flatTreeItemProps, options = {}) {
|
|
18
|
-
const [openItems, updateOpenItems] = (0, _useOpenItemsState.useOpenItemsState)(options);
|
|
19
18
|
const flatTreeItems = _react.useMemo(()=>(0, _createFlatTreeItems.createFlatTreeItems)(flatTreeItemProps), [
|
|
20
19
|
flatTreeItemProps
|
|
21
20
|
]);
|
|
21
|
+
const [openItems, setOpenItems] = (0, _useControllableOpenItems.useControllableOpenItems)(options);
|
|
22
22
|
const [navigate, navigationRef] = (0, _useFlatTreeNavigation.useFlatTreeNavigation)(flatTreeItems);
|
|
23
23
|
const treeRef = _react.useRef(null);
|
|
24
24
|
const handleOpenChange = (0, _reactUtilities.useEventCallback)((event, data)=>{
|
|
25
25
|
var _options_onOpenChange;
|
|
26
26
|
(_options_onOpenChange = options.onOpenChange) === null || _options_onOpenChange === void 0 ? void 0 : _options_onOpenChange.call(options, event, data);
|
|
27
27
|
if (!event.isDefaultPrevented()) {
|
|
28
|
-
|
|
28
|
+
setOpenItems(data.openItems);
|
|
29
29
|
}
|
|
30
30
|
event.preventDefault();
|
|
31
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useFlatTree.js"],"sourcesContent":["import { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createFlatTreeItems, VisibleFlatTreeItemGenerator } from '../utils/createFlatTreeItems';\nimport { treeDataTypes } from '../utils/tokens';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport {
|
|
1
|
+
{"version":3,"sources":["useFlatTree.js"],"sourcesContent":["import { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createFlatTreeItems, VisibleFlatTreeItemGenerator } from '../utils/createFlatTreeItems';\nimport { treeDataTypes } from '../utils/tokens';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport { useControllableOpenItems } from './useControllableOpenItems';\nimport { dataTreeItemValueAttrName } from '../utils/getTreeItemValueFromElement';\n/**\n * this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n * On simple scenarios it is advised to simply use a nested structure instead.\n *\n * @param flatTreeItemProps - a list of tree items\n * @param options - in case control over the internal openItems is required\n */ export function useFlatTree_unstable(flatTreeItemProps, options = {}) {\n const flatTreeItems = React.useMemo(()=>createFlatTreeItems(flatTreeItemProps), [\n flatTreeItemProps\n ]);\n const [openItems, setOpenItems] = useControllableOpenItems(options);\n const [navigate, navigationRef] = useFlatTreeNavigation(flatTreeItems);\n const treeRef = React.useRef(null);\n const handleOpenChange = useEventCallback((event, data)=>{\n var _options_onOpenChange;\n (_options_onOpenChange = options.onOpenChange) === null || _options_onOpenChange === void 0 ? void 0 : _options_onOpenChange.call(options, event, data);\n if (!event.isDefaultPrevented()) {\n setOpenItems(data.openItems);\n }\n event.preventDefault();\n });\n const handleNavigation = useEventCallback((event, data)=>{\n var _options_onNavigation_unstable;\n (_options_onNavigation_unstable = options.onNavigation_unstable) === null || _options_onNavigation_unstable === void 0 ? void 0 : _options_onNavigation_unstable.call(options, event, data);\n if (!event.isDefaultPrevented()) {\n navigate(data);\n }\n event.preventDefault();\n });\n const getNextNavigableItem = useEventCallback((visibleItems, data)=>{\n const item = flatTreeItems.get(data.value);\n if (item) {\n switch(data.type){\n case treeDataTypes.TypeAhead:\n return item;\n case treeDataTypes.ArrowLeft:\n return flatTreeItems.get(item.parentValue);\n case treeDataTypes.ArrowRight:\n return visibleItems[item.index + 1];\n case treeDataTypes.End:\n return visibleItems[visibleItems.length - 1];\n case treeDataTypes.Home:\n return visibleItems[0];\n case treeDataTypes.ArrowDown:\n return visibleItems[item.index + 1];\n case treeDataTypes.ArrowUp:\n return visibleItems[item.index - 1];\n }\n }\n });\n const getElementFromItem = React.useCallback((item)=>{\n var _treeRef_current;\n return (_treeRef_current = treeRef.current) === null || _treeRef_current === void 0 ? void 0 : _treeRef_current.querySelector(`[${dataTreeItemValueAttrName}=\"${item.value}\"]`);\n }, []);\n const ref = useMergedRefs(treeRef, navigationRef);\n const getTreeProps = React.useCallback(()=>({\n ref,\n openItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n openItems\n ]);\n const items = React.useCallback(()=>VisibleFlatTreeItemGenerator(openItems, flatTreeItems), [\n openItems,\n flatTreeItems\n ]);\n return React.useMemo(()=>({\n navigate,\n getTreeProps,\n getNextNavigableItem,\n getElementFromItem,\n items\n }), [\n navigate,\n getTreeProps,\n getNextNavigableItem,\n getElementFromItem,\n items\n ]);\n}\n"],"names":["useFlatTree_unstable","flatTreeItemProps","options","flatTreeItems","React","useMemo","createFlatTreeItems","openItems","setOpenItems","useControllableOpenItems","navigate","navigationRef","useFlatTreeNavigation","treeRef","useRef","handleOpenChange","useEventCallback","event","data","_options_onOpenChange","onOpenChange","call","isDefaultPrevented","preventDefault","handleNavigation","_options_onNavigation_unstable","onNavigation_unstable","getNextNavigableItem","visibleItems","item","get","value","type","treeDataTypes","TypeAhead","ArrowLeft","parentValue","ArrowRight","index","End","length","Home","ArrowDown","ArrowUp","getElementFromItem","useCallback","_treeRef_current","current","querySelector","dataTreeItemValueAttrName","ref","useMergedRefs","getTreeProps","items","VisibleFlatTreeItemGenerator"],"mappings":"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"}
|
|
@@ -2,23 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
emptyImmutableSet: ()=>emptyImmutableSet,
|
|
13
|
-
createImmutableSet: ()=>createImmutableSet,
|
|
14
|
-
dangerouslyCreateImmutableSet: ()=>dangerouslyCreateImmutableSet
|
|
5
|
+
Object.defineProperty(exports, "ImmutableSet", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>ImmutableSet
|
|
15
8
|
});
|
|
16
9
|
const emptyImmutableSet = createImmutableSet();
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
function dangerouslyCreateImmutableSet(internalSet) {
|
|
10
|
+
/**
|
|
11
|
+
* Avoid using *dangerouslyCreateImmutableSet*, since this method will expose internally used set, use createImmutableSet instead,
|
|
12
|
+
* @param internalSet - a set that is used internally to store values.
|
|
13
|
+
*/ function dangerouslyCreateImmutableSet(internalSet) {
|
|
22
14
|
return {
|
|
23
15
|
size: internalSet.size,
|
|
24
16
|
add (value) {
|
|
@@ -39,6 +31,19 @@ function dangerouslyCreateImmutableSet(internalSet) {
|
|
|
39
31
|
},
|
|
40
32
|
[Symbol.iterator] () {
|
|
41
33
|
return internalSet[Symbol.iterator]();
|
|
42
|
-
}
|
|
34
|
+
},
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
36
|
+
dangerousGetInternalSet_unstable: ()=>internalSet
|
|
43
37
|
};
|
|
44
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* properly creates an ImmutableSet instance from an iterable
|
|
41
|
+
*/ function createImmutableSet(iterable) {
|
|
42
|
+
const internalSet = new Set(iterable);
|
|
43
|
+
return dangerouslyCreateImmutableSet(internalSet);
|
|
44
|
+
}
|
|
45
|
+
const ImmutableSet = {
|
|
46
|
+
empty: emptyImmutableSet,
|
|
47
|
+
create: createImmutableSet,
|
|
48
|
+
dangerouslyCreate: dangerouslyCreateImmutableSet
|
|
49
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ImmutableSet.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["ImmutableSet.js"],"sourcesContent":["const emptyImmutableSet = createImmutableSet();\n/**\n * Avoid using *dangerouslyCreateImmutableSet*, since this method will expose internally used set, use createImmutableSet instead,\n * @param internalSet - a set that is used internally to store values.\n */ function dangerouslyCreateImmutableSet(internalSet) {\n return {\n size: internalSet.size,\n add (value) {\n const nextSet = new Set(internalSet);\n nextSet.add(value);\n return dangerouslyCreateImmutableSet(nextSet);\n },\n clear () {\n return emptyImmutableSet;\n },\n delete (value) {\n const nextSet = new Set(internalSet);\n nextSet.delete(value);\n return dangerouslyCreateImmutableSet(nextSet);\n },\n has (value) {\n return internalSet.has(value);\n },\n [Symbol.iterator] () {\n return internalSet[Symbol.iterator]();\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dangerousGetInternalSet_unstable: ()=>internalSet\n };\n}\n/**\n * properly creates an ImmutableSet instance from an iterable\n */ function createImmutableSet(iterable) {\n const internalSet = new Set(iterable);\n return dangerouslyCreateImmutableSet(internalSet);\n}\nexport const ImmutableSet = {\n empty: emptyImmutableSet,\n create: createImmutableSet,\n dangerouslyCreate: dangerouslyCreateImmutableSet\n};\n"],"names":["ImmutableSet","emptyImmutableSet","createImmutableSet","dangerouslyCreateImmutableSet","internalSet","size","add","value","nextSet","Set","clear","delete","has","Symbol","iterator","dangerousGetInternalSet_unstable","iterable","empty","create","dangerouslyCreate"],"mappings":";;;;+BAoCaA;;aAAAA;;AApCb,MAAMC,oBAAoBC;AAC1B;;;CAGC,GAAG,SAASC,8BAA8BC,WAAW,EAAE;IACpD,OAAO;QACHC,MAAMD,YAAYC,IAAI;QACtBC,KAAKC,KAAK,EAAE;YACR,MAAMC,UAAU,IAAIC,IAAIL;YACxBI,QAAQF,GAAG,CAACC;YACZ,OAAOJ,8BAA8BK;QACzC;QACAE,SAAS;YACL,OAAOT;QACX;QACAU,QAAQJ,KAAK,EAAE;YACX,MAAMC,UAAU,IAAIC,IAAIL;YACxBI,QAAQG,MAAM,CAACJ;YACf,OAAOJ,8BAA8BK;QACzC;QACAI,KAAKL,KAAK,EAAE;YACR,OAAOH,YAAYQ,GAAG,CAACL;QAC3B;QACA,CAACM,OAAOC,QAAQ,CAAC,IAAI;YACjB,OAAOV,WAAW,CAACS,OAAOC,QAAQ,CAAC;QACvC;QACA,gEAAgE;QAChEC,kCAAkC,IAAIX;IAC1C;AACJ;AACA;;CAEC,GAAG,SAASF,mBAAmBc,QAAQ,EAAE;IACtC,MAAMZ,cAAc,IAAIK,IAAIO;IAC5B,OAAOb,8BAA8BC;AACzC;AACO,MAAMJ,eAAe;IACxBiB,OAAOhB;IACPiB,QAAQhB;IACRiB,mBAAmBhB;AACvB"}
|
|
@@ -6,18 +6,13 @@ Object.defineProperty(exports, "flattenTree_unstable", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>flattenTree_unstable
|
|
8
8
|
});
|
|
9
|
-
let count = 1;
|
|
10
9
|
function flattenTreeRecursive(items, parent, level = 1) {
|
|
11
10
|
return items.reduce((acc, { subtree , ...item }, index)=>{
|
|
12
|
-
var _item_id;
|
|
13
|
-
const id = (_item_id = item.id) !== null && _item_id !== void 0 ? _item_id : `fui-FlatTreeItem-${count++}`;
|
|
14
|
-
var _item_value;
|
|
15
11
|
const flatTreeItem = {
|
|
16
12
|
'aria-level': level,
|
|
17
13
|
'aria-posinset': index + 1,
|
|
18
14
|
'aria-setsize': items.length,
|
|
19
15
|
parentValue: parent === null || parent === void 0 ? void 0 : parent.value,
|
|
20
|
-
value: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : id,
|
|
21
16
|
...item
|
|
22
17
|
};
|
|
23
18
|
acc.push(flatTreeItem);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["flattenTree.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["flattenTree.js"],"sourcesContent":["function flattenTreeRecursive(items, parent, level = 1) {\n return items.reduce((acc, { subtree , ...item }, index)=>{\n const flatTreeItem = {\n 'aria-level': level,\n 'aria-posinset': index + 1,\n 'aria-setsize': items.length,\n parentValue: parent === null || parent === void 0 ? void 0 : parent.value,\n ...item\n };\n acc.push(flatTreeItem);\n if (subtree !== undefined) {\n acc.push(...flattenTreeRecursive(subtree, flatTreeItem, level + 1));\n }\n return acc;\n }, []);\n}\n/**\n * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`\n * @example\n * ```tsx\n * const defaultItems = flattenTree_unstable([\n * {\n * children: <TreeItemLayout>level 1, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 2</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 3</TreeItemLayout>,\n * },\n * ],\n * },\n * {\n * children: <TreeItemLayout>level 1, item 2</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 3, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 4, item 1</TreeItemLayout>,\n * },\n * ],\n * },\n * ],\n * },\n * ],\n * },\n * ]);\n * ```\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nexport const flattenTree_unstable = (items)=>flattenTreeRecursive(items);\n"],"names":["flattenTree_unstable","flattenTreeRecursive","items","parent","level","reduce","acc","subtree","item","index","flatTreeItem","length","parentValue","value","push","undefined"],"mappings":";;;;+BAwDaA;;aAAAA;;AAxDb,SAASC,qBAAqBC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,CAAC,EAAE;IACpD,OAAOF,MAAMG,MAAM,CAAC,CAACC,KAAK,EAAEC,QAAO,EAAG,GAAGC,MAAM,EAAEC,QAAQ;QACrD,MAAMC,eAAe;YACjB,cAAcN;YACd,iBAAiBK,QAAQ;YACzB,gBAAgBP,MAAMS,MAAM;YAC5BC,aAAaT,WAAW,IAAI,IAAIA,WAAW,KAAK,IAAI,KAAK,IAAIA,OAAOU,KAAK;YACzE,GAAGL,IAAI;QACX;QACAF,IAAIQ,IAAI,CAACJ;QACT,IAAIH,YAAYQ,WAAW;YACvBT,IAAIQ,IAAI,IAAIb,qBAAqBM,SAASG,cAAcN,QAAQ;QACpE,CAAC;QACD,OAAOE;IACX,GAAG,EAAE;AACT;AAyCO,MAAMN,uBAAuB,CAACE,QAAQD,qBAAqBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-tree",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.25",
|
|
4
4
|
"description": "React components for building web experiences",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@fluentui/eslint-plugin": "*",
|
|
31
31
|
"@fluentui/react-conformance": "*",
|
|
32
|
-
"@fluentui/react-conformance-griffel": "9.0.0
|
|
32
|
+
"@fluentui/react-conformance-griffel": "9.0.0",
|
|
33
33
|
"@fluentui/scripts-api-extractor": "*",
|
|
34
34
|
"@fluentui/scripts-tasks": "*",
|
|
35
35
|
"@fluentui/scripts-cypress": "*",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@fluentui/keyboard-keys": "^9.0.3",
|
|
40
40
|
"@fluentui/react-aria": "^9.3.26",
|
|
41
|
-
"@fluentui/react-avatar": "^9.5.
|
|
42
|
-
"@fluentui/react-button": "^9.3.
|
|
41
|
+
"@fluentui/react-avatar": "^9.5.12",
|
|
42
|
+
"@fluentui/react-button": "^9.3.23",
|
|
43
43
|
"@fluentui/react-context-selector": "^9.1.26",
|
|
44
44
|
"@fluentui/react-icons": "^2.0.203",
|
|
45
45
|
"@fluentui/react-portal": "^9.3.1",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@fluentui/react-tabster": "^9.10.0",
|
|
48
48
|
"@fluentui/react-theme": "^9.1.9",
|
|
49
49
|
"@fluentui/react-utilities": "^9.10.1",
|
|
50
|
-
"@fluentui/react-jsx-runtime": "9.0.0-alpha.
|
|
50
|
+
"@fluentui/react-jsx-runtime": "9.0.0-alpha.11",
|
|
51
51
|
"@griffel/react": "^1.5.7",
|
|
52
52
|
"@swc/helpers": "^0.4.14"
|
|
53
53
|
},
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { useControllableState, useEventCallback } from '@fluentui/react-utilities';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { createImmutableSet, emptyImmutableSet } from '../utils/ImmutableSet';
|
|
4
|
-
export function useOpenItemsState(props) {
|
|
5
|
-
const [openItems, setOpenItems] = useControllableState({
|
|
6
|
-
state: React.useMemo(()=>props.openItems && createImmutableSet(props.openItems), [
|
|
7
|
-
props.openItems
|
|
8
|
-
]),
|
|
9
|
-
defaultState: props.defaultOpenItems && (()=>createImmutableSet(props.defaultOpenItems)),
|
|
10
|
-
initialState: emptyImmutableSet
|
|
11
|
-
});
|
|
12
|
-
const updateOpenItems = useEventCallback((data)=>setOpenItems((currentOpenItems)=>createNextOpenItems(data, currentOpenItems)));
|
|
13
|
-
return [
|
|
14
|
-
openItems,
|
|
15
|
-
updateOpenItems
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
function createNextOpenItems(data, previousOpenItems) {
|
|
19
|
-
if (data.value === null) {
|
|
20
|
-
return previousOpenItems;
|
|
21
|
-
}
|
|
22
|
-
const previousOpenItemsHasId = previousOpenItems.has(data.value);
|
|
23
|
-
if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {
|
|
24
|
-
return previousOpenItems;
|
|
25
|
-
}
|
|
26
|
-
const nextOpenItems = createImmutableSet(previousOpenItems);
|
|
27
|
-
return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);
|
|
28
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["useOpenItemsState.ts"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createImmutableSet, emptyImmutableSet, ImmutableSet } from '../utils/ImmutableSet';\nimport type { TreeOpenChangeData, TreeProps } from '../Tree';\n\nexport function useOpenItemsState(props: Pick<TreeProps, 'openItems' | 'defaultOpenItems'>) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => props.openItems && createImmutableSet(props.openItems), [props.openItems]),\n defaultState: props.defaultOpenItems && (() => createImmutableSet(props.defaultOpenItems)),\n initialState: emptyImmutableSet,\n });\n const updateOpenItems = useEventCallback((data: TreeOpenChangeData) =>\n setOpenItems(currentOpenItems => createNextOpenItems(data, currentOpenItems)),\n );\n return [openItems, updateOpenItems] as const;\n}\n\nfunction createNextOpenItems(data: TreeOpenChangeData, previousOpenItems: ImmutableSet<string>): ImmutableSet<string> {\n if (data.value === null) {\n return previousOpenItems;\n }\n const previousOpenItemsHasId = previousOpenItems.has(data.value);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = createImmutableSet(previousOpenItems);\n return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);\n}\n"],"names":["useControllableState","useEventCallback","React","createImmutableSet","emptyImmutableSet","useOpenItemsState","props","openItems","setOpenItems","state","useMemo","defaultState","defaultOpenItems","initialState","updateOpenItems","data","currentOpenItems","createNextOpenItems","previousOpenItems","value","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ,4BAA4B;AACnF,YAAYC,WAAW,QAAQ;AAC/B,SAASC,kBAAkB,EAAEC,iBAAiB,QAAsB,wBAAwB;AAG5F,OAAO,SAASC,kBAAkBC,KAAwD,EAAE;IAC1F,MAAM,CAACC,WAAWC,aAAa,GAAGR,qBAAqB;QACrDS,OAAOP,MAAMQ,OAAO,CAAC,IAAMJ,MAAMC,SAAS,IAAIJ,mBAAmBG,MAAMC,SAAS,GAAG;YAACD,MAAMC,SAAS;SAAC;QACpGI,cAAcL,MAAMM,gBAAgB,IAAK,CAAA,IAAMT,mBAAmBG,MAAMM,gBAAgB,CAAA;QACxFC,cAAcT;IAChB;IACA,MAAMU,kBAAkBb,iBAAiB,CAACc,OACxCP,aAAaQ,CAAAA,mBAAoBC,oBAAoBF,MAAMC;IAE7D,OAAO;QAACT;QAAWO;KAAgB;AACrC,CAAC;AAED,SAASG,oBAAoBF,IAAwB,EAAEG,iBAAuC,EAAwB;IACpH,IAAIH,KAAKI,KAAK,KAAK,IAAI,EAAE;QACvB,OAAOD;IACT,CAAC;IACD,MAAME,yBAAyBF,kBAAkBG,GAAG,CAACN,KAAKI,KAAK;IAC/D,IAAIJ,KAAKO,IAAI,GAAGF,yBAAyB,CAACA,sBAAsB,EAAE;QAChE,OAAOF;IACT,CAAC;IACD,MAAMK,gBAAgBpB,mBAAmBe;IACzC,OAAOH,KAAKO,IAAI,GAAGC,cAAcC,GAAG,CAACT,KAAKI,KAAK,IAAII,cAAcE,MAAM,CAACV,KAAKI,KAAK,CAAC;AACrF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["useOpenItemsState.js"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createImmutableSet, emptyImmutableSet } from '../utils/ImmutableSet';\nexport function useOpenItemsState(props) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(()=>props.openItems && createImmutableSet(props.openItems), [\n props.openItems\n ]),\n defaultState: props.defaultOpenItems && (()=>createImmutableSet(props.defaultOpenItems)),\n initialState: emptyImmutableSet\n });\n const updateOpenItems = useEventCallback((data)=>setOpenItems((currentOpenItems)=>createNextOpenItems(data, currentOpenItems)));\n return [\n openItems,\n updateOpenItems\n ];\n}\nfunction createNextOpenItems(data, previousOpenItems) {\n if (data.value === null) {\n return previousOpenItems;\n }\n const previousOpenItemsHasId = previousOpenItems.has(data.value);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = createImmutableSet(previousOpenItems);\n return data.open ? nextOpenItems.add(data.value) : nextOpenItems.delete(data.value);\n}\n"],"names":["useOpenItemsState","props","openItems","setOpenItems","useControllableState","state","React","useMemo","createImmutableSet","defaultState","defaultOpenItems","initialState","emptyImmutableSet","updateOpenItems","useEventCallback","data","currentOpenItems","createNextOpenItems","previousOpenItems","value","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"mappings":";;;;+BAGgBA;;aAAAA;;;gCAHuC;6DAChC;8BAC+B;AAC/C,SAASA,kBAAkBC,KAAK,EAAE;IACrC,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,oCAAoB,EAAC;QACnDC,OAAOC,OAAMC,OAAO,CAAC,IAAIN,MAAMC,SAAS,IAAIM,IAAAA,gCAAkB,EAACP,MAAMC,SAAS,GAAG;YAC7ED,MAAMC,SAAS;SAClB;QACDO,cAAcR,MAAMS,gBAAgB,IAAK,CAAA,IAAIF,IAAAA,gCAAkB,EAACP,MAAMS,gBAAgB,CAAA;QACtFC,cAAcC,+BAAiB;IACnC;IACA,MAAMC,kBAAkBC,IAAAA,gCAAgB,EAAC,CAACC,OAAOZ,aAAa,CAACa,mBAAmBC,oBAAoBF,MAAMC;IAC5G,OAAO;QACHd;QACAW;KACH;AACL;AACA,SAASI,oBAAoBF,IAAI,EAAEG,iBAAiB,EAAE;IAClD,IAAIH,KAAKI,KAAK,KAAK,IAAI,EAAE;QACrB,OAAOD;IACX,CAAC;IACD,MAAME,yBAAyBF,kBAAkBG,GAAG,CAACN,KAAKI,KAAK;IAC/D,IAAIJ,KAAKO,IAAI,GAAGF,yBAAyB,CAACA,sBAAsB,EAAE;QAC9D,OAAOF;IACX,CAAC;IACD,MAAMK,gBAAgBf,IAAAA,gCAAkB,EAACU;IACzC,OAAOH,KAAKO,IAAI,GAAGC,cAAcC,GAAG,CAACT,KAAKI,KAAK,IAAII,cAAcE,MAAM,CAACV,KAAKI,KAAK,CAAC;AACvF"}
|