@fluentui/react-tree 9.0.0-beta.25 → 9.0.0-beta.27
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 +136 -1
- package/CHANGELOG.md +35 -2
- package/dist/index.d.ts +261 -83
- package/lib/FlatTree.js +1 -0
- package/lib/FlatTree.js.map +1 -0
- package/lib/components/FlatTree/FlatTree.js +13 -0
- package/lib/components/FlatTree/FlatTree.js.map +1 -0
- package/lib/components/FlatTree/FlatTree.types.js +1 -0
- package/lib/components/FlatTree/FlatTree.types.js.map +1 -0
- package/lib/components/FlatTree/index.js +6 -0
- package/lib/components/FlatTree/index.js.map +1 -0
- package/lib/components/FlatTree/useFlatControllableCheckedItems.js +63 -0
- package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
- package/lib/components/FlatTree/useFlatTree.js +3 -0
- package/lib/components/FlatTree/useFlatTree.js.map +1 -0
- package/lib/{hooks → components/FlatTree}/useFlatTreeNavigation.js +12 -12
- package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
- package/lib/components/FlatTree/useFlatTreeStyles.styles.js +30 -0
- package/lib/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
- package/lib/{hooks/useFlatTree.js → components/FlatTree/useHeadlessFlatTree.js} +21 -16
- package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
- package/lib/components/Tree/Tree.js +4 -9
- package/lib/components/Tree/Tree.js.map +1 -1
- package/lib/components/Tree/Tree.types.js.map +1 -1
- package/lib/components/Tree/index.js +2 -2
- package/lib/components/Tree/index.js.map +1 -1
- package/lib/components/Tree/renderTree.js.map +1 -1
- package/lib/components/Tree/useControllableCheckedItems.js +94 -0
- package/lib/components/Tree/useControllableCheckedItems.js.map +1 -0
- package/lib/components/Tree/useTree.js +38 -14
- package/lib/components/Tree/useTree.js.map +1 -1
- package/lib/components/Tree/useTreeContextValues.js +4 -2
- package/lib/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib/{hooks/useNestedTreeNavigation.js → components/Tree/useTreeNavigation.js} +6 -6
- package/lib/components/Tree/useTreeNavigation.js.map +1 -0
- package/lib/components/Tree/useTreeStyles.styles.js +2 -2
- package/lib/components/Tree/useTreeStyles.styles.js.map +1 -1
- package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
- package/lib/components/TreeItem/renderTreeItem.js +2 -4
- package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItem.js +49 -51
- package/lib/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib/components/TreeItem/useTreeItemContextValues.js +8 -14
- package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -1
- package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayout.js +55 -8
- package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +15 -8
- package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +1 -1
- package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +6 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +5 -1
- package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
- package/lib/contexts/index.js +0 -1
- package/lib/contexts/index.js.map +1 -1
- package/lib/contexts/treeContext.js +3 -0
- package/lib/contexts/treeContext.js.map +1 -1
- package/lib/contexts/treeItemContext.js +5 -0
- package/lib/contexts/treeItemContext.js.map +1 -1
- package/lib/hooks/useControllableOpenItems.js +6 -3
- package/lib/hooks/useControllableOpenItems.js.map +1 -1
- package/lib/{components/Tree → hooks}/useRootTree.js +34 -25
- package/lib/hooks/useRootTree.js.map +1 -0
- package/lib/{components/Tree → hooks}/useSubtree.js +8 -4
- package/lib/hooks/useSubtree.js.map +1 -0
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/utils/ImmutableMap.js +41 -0
- package/lib/utils/ImmutableMap.js.map +1 -0
- package/lib/utils/ImmutableSet.js +7 -2
- package/lib/utils/ImmutableSet.js.map +1 -1
- package/lib/utils/createCheckedItems.js +18 -0
- package/lib/utils/createCheckedItems.js.map +1 -0
- package/lib/utils/createHeadlessTree.js +165 -0
- package/lib/utils/createHeadlessTree.js.map +1 -0
- package/lib/utils/createOpenItems.js +10 -0
- package/lib/utils/createOpenItems.js.map +1 -0
- package/lib/utils/flattenTree.js.map +1 -1
- package/lib/utils/tokens.js +2 -1
- package/lib/utils/tokens.js.map +1 -1
- package/lib-commonjs/FlatTree.js +6 -0
- package/lib-commonjs/FlatTree.js.map +1 -0
- package/lib-commonjs/components/FlatTree/FlatTree.js +20 -0
- package/lib-commonjs/components/FlatTree/FlatTree.js.map +1 -0
- package/lib-commonjs/components/FlatTree/FlatTree.types.js +4 -0
- package/lib-commonjs/components/FlatTree/FlatTree.types.js.map +1 -0
- package/lib-commonjs/components/FlatTree/index.js +21 -0
- package/lib-commonjs/components/FlatTree/index.js.map +1 -0
- package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js +78 -0
- package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -0
- package/lib-commonjs/components/FlatTree/useFlatTree.js +12 -0
- package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -0
- package/lib-commonjs/{hooks → components/FlatTree}/useFlatTreeNavigation.js +12 -12
- package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -0
- package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +53 -0
- package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -0
- package/lib-commonjs/{hooks/useFlatTree.js → components/FlatTree/useHeadlessFlatTree.js} +23 -18
- package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -0
- package/lib-commonjs/components/Tree/Tree.js +3 -3
- package/lib-commonjs/components/Tree/Tree.js.map +1 -1
- package/lib-commonjs/components/Tree/index.js +2 -2
- package/lib-commonjs/components/Tree/index.js.map +1 -1
- package/lib-commonjs/components/Tree/useControllableCheckedItems.js +103 -0
- package/lib-commonjs/components/Tree/useControllableCheckedItems.js.map +1 -0
- package/lib-commonjs/components/Tree/useTree.js +38 -6
- package/lib-commonjs/components/Tree/useTree.js.map +1 -1
- package/lib-commonjs/components/Tree/useTreeContextValues.js +4 -2
- package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
- package/lib-commonjs/{hooks/useNestedTreeNavigation.js → components/Tree/useTreeNavigation.js} +8 -8
- package/lib-commonjs/components/Tree/useTreeNavigation.js.map +1 -0
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js +2 -2
- package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -1
- package/lib-commonjs/components/TreeItem/renderTreeItem.js +1 -3
- package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItem.js +48 -50
- package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +8 -15
- package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +1 -1
- package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +55 -8
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +12 -8
- package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +6 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +5 -1
- package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
- package/lib-commonjs/contexts/index.js +0 -1
- package/lib-commonjs/contexts/index.js.map +1 -1
- package/lib-commonjs/contexts/treeContext.js +3 -0
- package/lib-commonjs/contexts/treeContext.js.map +1 -1
- package/lib-commonjs/contexts/treeItemContext.js +5 -0
- package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
- package/lib-commonjs/hooks/useControllableOpenItems.js +3 -2
- package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -1
- package/lib-commonjs/{components/Tree → hooks}/useRootTree.js +31 -22
- package/lib-commonjs/hooks/useRootTree.js.map +1 -0
- package/lib-commonjs/{components/Tree → hooks}/useSubtree.js +12 -8
- package/lib-commonjs/hooks/useSubtree.js.map +1 -0
- package/lib-commonjs/index.js +10 -4
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/ImmutableMap.js +49 -0
- package/lib-commonjs/utils/ImmutableMap.js.map +1 -0
- package/lib-commonjs/utils/ImmutableSet.js +7 -2
- package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
- package/lib-commonjs/utils/createCheckedItems.js +26 -0
- package/lib-commonjs/utils/createCheckedItems.js.map +1 -0
- package/lib-commonjs/utils/createHeadlessTree.js +179 -0
- package/lib-commonjs/utils/createHeadlessTree.js.map +1 -0
- package/lib-commonjs/utils/createOpenItems.js +18 -0
- package/lib-commonjs/utils/createOpenItems.js.map +1 -0
- package/lib-commonjs/utils/tokens.js +2 -1
- package/lib-commonjs/utils/tokens.js.map +1 -1
- package/package.json +11 -9
- package/lib/components/Tree/useRootTree.js.map +0 -1
- package/lib/components/Tree/useSubtree.js.map +0 -1
- package/lib/contexts/treeItemSlotsContext.js +0 -9
- package/lib/contexts/treeItemSlotsContext.js.map +0 -1
- package/lib/hooks/index.js +0 -3
- package/lib/hooks/index.js.map +0 -1
- package/lib/hooks/useFlatTree.js.map +0 -1
- package/lib/hooks/useFlatTreeNavigation.js.map +0 -1
- package/lib/hooks/useNestedTreeNavigation.js.map +0 -1
- package/lib/utils/createFlatTreeItems.js +0 -113
- package/lib/utils/createFlatTreeItems.js.map +0 -1
- package/lib-commonjs/components/Tree/useRootTree.js.map +0 -1
- package/lib-commonjs/components/Tree/useSubtree.js.map +0 -1
- package/lib-commonjs/contexts/treeItemSlotsContext.js +0 -25
- package/lib-commonjs/contexts/treeItemSlotsContext.js.map +0 -1
- package/lib-commonjs/hooks/index.js +0 -8
- package/lib-commonjs/hooks/index.js.map +0 -1
- package/lib-commonjs/hooks/useFlatTree.js.map +0 -1
- package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +0 -1
- package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +0 -1
- package/lib-commonjs/utils/createFlatTreeItems.js +0 -127
- package/lib-commonjs/utils/createFlatTreeItems.js.map +0 -1
|
@@ -1,25 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
|
6
|
-
_exportStar(require("./useFlatTree"), exports);
|
|
7
|
-
_exportStar(require("./useNestedTreeNavigation"), exports);
|
|
8
|
-
_exportStar(require("./useControllableOpenItems"), exports);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './useFlatTree';\nexport * from './useNestedTreeNavigation';\nexport * from './useControllableOpenItems';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["useFlatTreeNavigation.js"],"sourcesContent":["import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\nimport { dataTreeItemValueAttrName, getTreeItemValueFromElement } from '../utils/getTreeItemValueFromElement';\nexport function useFlatTreeNavigation(flatTreeItems) {\n const { targetDocument } = useFluent_unstable();\n const [treeItemWalkerRef, treeItemWalkerRootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n function getNextElement(data) {\n if (!targetDocument || !treeItemWalkerRef.current) {\n return null;\n }\n const treeItemWalker = treeItemWalkerRef.current;\n switch(data.type){\n case treeDataTypes.Click:\n return data.target;\n case treeDataTypes.TypeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.ArrowLeft:\n return parentElement(flatTreeItems, data.target, treeItemWalker);\n case treeDataTypes.ArrowRight:\n treeItemWalker.currentElement = data.target;\n return firstChild(data.target, treeItemWalker);\n case treeDataTypes.End:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.lastChild();\n case treeDataTypes.Home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.ArrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.ArrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n }\n const navigate = useEventCallback((data)=>{\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n });\n return [\n navigate,\n useMergedRefs(treeItemWalkerRootRef, rovingRootRef)\n ];\n}\nfunction firstChild(target, treeWalker) {\n const nextElement = treeWalker.nextElement();\n if (!nextElement) {\n return null;\n }\n const nextElementAriaPosInSet = nextElement.getAttribute('aria-posinset');\n const nextElementAriaLevel = nextElement.getAttribute('aria-level');\n const targetAriaLevel = target.getAttribute('aria-level');\n if (nextElementAriaPosInSet === '1' && Number(nextElementAriaLevel) === Number(targetAriaLevel) + 1) {\n return nextElement;\n }\n return null;\n}\nfunction parentElement(flatTreeItems, target, treeWalker) {\n const value = getTreeItemValueFromElement(target);\n if (value === null) {\n return null;\n }\n const flatTreeItem = flatTreeItems.get(value);\n if (flatTreeItem === null || flatTreeItem === void 0 ? void 0 : flatTreeItem.parentValue) {\n return treeWalker.root.querySelector(`[${dataTreeItemValueAttrName}=\"${flatTreeItem.parentValue}\"]`);\n }\n return null;\n}\n"],"names":["useFlatTreeNavigation","flatTreeItems","targetDocument","useFluent_unstable","treeItemWalkerRef","treeItemWalkerRootRef","useHTMLElementWalkerRef","treeItemFilter","rove","rovingRootRef","useRovingTabIndex","getNextElement","data","current","treeItemWalker","type","treeDataTypes","Click","target","TypeAhead","currentElement","nextTypeAheadElement","event","key","ArrowLeft","parentElement","ArrowRight","firstChild","End","root","lastChild","Home","ArrowDown","nextElement","ArrowUp","previousElement","navigate","useEventCallback","useMergedRefs","treeWalker","nextElementAriaPosInSet","getAttribute","nextElementAriaLevel","targetAriaLevel","Number","value","getTreeItemValueFromElement","flatTreeItem","get","parentValue","querySelector","dataTreeItemValueAttrName"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["useNestedTreeNavigation.js"],"sourcesContent":["import { useMergedRefs } from '@fluentui/react-utilities';\nimport { useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\nexport function useNestedTreeNavigation() {\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const getNextElement = (data)=>{\n if (!walkerRef.current) {\n return;\n }\n const treeItemWalker = walkerRef.current;\n switch(data.type){\n case treeDataTypes.Click:\n return data.target;\n case treeDataTypes.TypeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.ArrowLeft:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.parentElement();\n case treeDataTypes.ArrowRight:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.firstChild();\n case treeDataTypes.End:\n treeItemWalker.currentElement = treeItemWalker.root;\n return lastChildRecursive(treeItemWalker);\n case treeDataTypes.Home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.ArrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.ArrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n };\n function navigate(data) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [\n navigate,\n useMergedRefs(rootRef, rovingRootRef)\n ];\n}\nfunction lastChildRecursive(walker) {\n let lastElement = null;\n let nextElement = null;\n while(nextElement = walker.lastChild()){\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"names":["useNestedTreeNavigation","rove","rovingRootRef","useRovingTabIndex","treeItemFilter","walkerRef","rootRef","useHTMLElementWalkerRef","getNextElement","data","current","treeItemWalker","type","treeDataTypes","Click","target","TypeAhead","currentElement","nextTypeAheadElement","event","key","ArrowLeft","parentElement","ArrowRight","firstChild","End","root","lastChildRecursive","Home","ArrowDown","nextElement","ArrowUp","previousElement","navigate","useMergedRefs","walker","lastElement","lastChild"],"mappings":";;;;+BAMgBA;;aAAAA;;gCANc;sCACU;sCACH;wBACP;gCACC;qCACG;AAC3B,SAASA,0BAA0B;IACtC,MAAM,CAAC,EAAEC,KAAI,EAAG,EAAEC,cAAc,GAAGC,IAAAA,sCAAiB,EAACC,8BAAc;IACnE,MAAM,CAACC,WAAWC,QAAQ,GAAGC,IAAAA,6CAAuB,EAACH,8BAAc;IACnE,MAAMI,iBAAiB,CAACC,OAAO;QAC3B,IAAI,CAACJ,UAAUK,OAAO,EAAE;YACpB;QACJ,CAAC;QACD,MAAMC,iBAAiBN,UAAUK,OAAO;QACxC,OAAOD,KAAKG,IAAI;YACZ,KAAKC,qBAAa,CAACC,KAAK;gBACpB,OAAOL,KAAKM,MAAM;YACtB,KAAKF,qBAAa,CAACG,SAAS;gBACxBL,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOG,IAAAA,0CAAoB,EAACP,gBAAgBF,KAAKU,KAAK,CAACC,GAAG;YAC9D,KAAKP,qBAAa,CAACQ,SAAS;gBACxBV,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAeW,aAAa;YACvC,KAAKT,qBAAa,CAACU,UAAU;gBACzBZ,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAea,UAAU;YACpC,KAAKX,qBAAa,CAACY,GAAG;gBAClBd,eAAeM,cAAc,GAAGN,eAAee,IAAI;gBACnD,OAAOC,mBAAmBhB;YAC9B,KAAKE,qBAAa,CAACe,IAAI;gBACnBjB,eAAeM,cAAc,GAAGN,eAAee,IAAI;gBACnD,OAAOf,eAAea,UAAU;YACpC,KAAKX,qBAAa,CAACgB,SAAS;gBACxBlB,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAemB,WAAW;YACrC,KAAKjB,qBAAa,CAACkB,OAAO;gBACtBpB,eAAeM,cAAc,GAAGR,KAAKM,MAAM;gBAC3C,OAAOJ,eAAeqB,eAAe;QAC7C;IACJ;IACA,SAASC,SAASxB,IAAI,EAAE;QACpB,MAAMqB,cAActB,eAAeC;QACnC,IAAIqB,aAAa;YACb7B,KAAK6B;QACT,CAAC;IACL;IACA,OAAO;QACHG;QACAC,IAAAA,6BAAa,EAAC5B,SAASJ;KAC1B;AACL;AACA,SAASyB,mBAAmBQ,MAAM,EAAE;IAChC,IAAIC,cAAc,IAAI;IACtB,IAAIN,cAAc,IAAI;IACtB,MAAMA,cAAcK,OAAOE,SAAS,GAAG;QACnCD,cAAcN;IAClB;IACA,OAAOM;AACX"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* creates a list of flat tree items
|
|
3
|
-
* and provides a map to access each item by id
|
|
4
|
-
*/ "use strict";
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
function _export(target, all) {
|
|
9
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: all[name]
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
_export(exports, {
|
|
15
|
-
createFlatTreeItems: ()=>createFlatTreeItems,
|
|
16
|
-
flatTreeRootId: ()=>flatTreeRootId,
|
|
17
|
-
VisibleFlatTreeItemGenerator: ()=>VisibleFlatTreeItemGenerator
|
|
18
|
-
});
|
|
19
|
-
function createFlatTreeItems(flatTreeItemProps) {
|
|
20
|
-
const root = createFlatTreeRootItem();
|
|
21
|
-
const itemsPerValue = new Map([
|
|
22
|
-
[
|
|
23
|
-
root.value,
|
|
24
|
-
root
|
|
25
|
-
]
|
|
26
|
-
]);
|
|
27
|
-
const items = [];
|
|
28
|
-
for(let index = 0; index < flatTreeItemProps.length; index++){
|
|
29
|
-
const { parentValue =flatTreeRootId , ...treeItemProps } = flatTreeItemProps[index];
|
|
30
|
-
const nextItemProps = flatTreeItemProps[index + 1];
|
|
31
|
-
const currentParent = itemsPerValue.get(parentValue);
|
|
32
|
-
if (!currentParent) {
|
|
33
|
-
if (process.env.NODE_ENV === 'development') {
|
|
34
|
-
// eslint-disable-next-line no-console
|
|
35
|
-
console.error(`useFlatTree: item ${flatTreeItemProps[index].value} is wrongly positioned, did you properly ordered provided item props? make sure provided items are organized`);
|
|
36
|
-
}
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
var _treeItemProps_itemType;
|
|
40
|
-
const itemType = (_treeItemProps_itemType = treeItemProps.itemType) !== null && _treeItemProps_itemType !== void 0 ? _treeItemProps_itemType : treeItemProps.value === undefined || (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentValue) !== treeItemProps.value ? 'leaf' : 'branch';
|
|
41
|
-
var _currentParent_level;
|
|
42
|
-
const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;
|
|
43
|
-
const currentChildrenSize = ++currentParent.childrenSize;
|
|
44
|
-
const flatTreeItem = {
|
|
45
|
-
value: treeItemProps.value,
|
|
46
|
-
getTreeItemProps: ()=>({
|
|
47
|
-
...treeItemProps,
|
|
48
|
-
'aria-level': currentLevel,
|
|
49
|
-
'aria-posinset': currentChildrenSize,
|
|
50
|
-
'aria-setsize': currentParent.childrenSize,
|
|
51
|
-
itemType
|
|
52
|
-
}),
|
|
53
|
-
level: currentLevel,
|
|
54
|
-
parentValue,
|
|
55
|
-
childrenSize: 0,
|
|
56
|
-
index: -1
|
|
57
|
-
};
|
|
58
|
-
itemsPerValue.set(flatTreeItem.value, flatTreeItem);
|
|
59
|
-
items.push(flatTreeItem);
|
|
60
|
-
}
|
|
61
|
-
const flatTreeItems = {
|
|
62
|
-
root,
|
|
63
|
-
size: items.length,
|
|
64
|
-
getByIndex: (index)=>items[index],
|
|
65
|
-
get: (key)=>itemsPerValue.get(key),
|
|
66
|
-
set: (key, value)=>itemsPerValue.set(key, value)
|
|
67
|
-
};
|
|
68
|
-
return flatTreeItems;
|
|
69
|
-
}
|
|
70
|
-
const flatTreeRootId = '__fuiFlatTreeRoot';
|
|
71
|
-
function createFlatTreeRootItem() {
|
|
72
|
-
return {
|
|
73
|
-
parentValue: undefined,
|
|
74
|
-
value: flatTreeRootId,
|
|
75
|
-
getTreeItemProps: ()=>{
|
|
76
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
77
|
-
// eslint-disable-next-line no-console
|
|
78
|
-
console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
id: flatTreeRootId,
|
|
82
|
-
value: flatTreeRootId,
|
|
83
|
-
'aria-setsize': -1,
|
|
84
|
-
'aria-level': -1,
|
|
85
|
-
'aria-posinset': -1,
|
|
86
|
-
itemType: 'branch'
|
|
87
|
-
};
|
|
88
|
-
},
|
|
89
|
-
childrenSize: 0,
|
|
90
|
-
get index () {
|
|
91
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
92
|
-
// eslint-disable-next-line no-console
|
|
93
|
-
console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
|
|
94
|
-
}
|
|
95
|
-
return -1;
|
|
96
|
-
},
|
|
97
|
-
level: 0
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
function* VisibleFlatTreeItemGenerator(openItems, flatTreeItems) {
|
|
101
|
-
for(let index = 0, visibleIndex = 0; index < flatTreeItems.size; index++){
|
|
102
|
-
const item = flatTreeItems.getByIndex(index);
|
|
103
|
-
if (isItemVisible(item, openItems, flatTreeItems)) {
|
|
104
|
-
item.index = visibleIndex++;
|
|
105
|
-
yield item;
|
|
106
|
-
} else {
|
|
107
|
-
// Jump the amount of children the current item has, since those items will also be hidden
|
|
108
|
-
index += item.childrenSize;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
function isItemVisible(item, openItems, flatTreeItems) {
|
|
113
|
-
if (item.level === 1) {
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
while(item.parentValue && item.parentValue !== flatTreeItems.root.value){
|
|
117
|
-
if (!openItems.has(item.parentValue)) {
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
const parent = flatTreeItems.get(item.parentValue);
|
|
121
|
-
if (!parent) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
item = parent;
|
|
125
|
-
}
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["createFlatTreeItems.js"],"sourcesContent":["/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */ export function createFlatTreeItems(flatTreeItemProps) {\n const root = createFlatTreeRootItem();\n const itemsPerValue = new Map([\n [\n root.value,\n root\n ]\n ]);\n const items = [];\n for(let index = 0; index < flatTreeItemProps.length; index++){\n const { parentValue =flatTreeRootId , ...treeItemProps } = flatTreeItemProps[index];\n const nextItemProps = flatTreeItemProps[index + 1];\n const currentParent = itemsPerValue.get(parentValue);\n if (!currentParent) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(`useFlatTree: item ${flatTreeItemProps[index].value} is wrongly positioned, did you properly ordered provided item props? make sure provided items are organized`);\n }\n break;\n }\n var _treeItemProps_itemType;\n const itemType = (_treeItemProps_itemType = treeItemProps.itemType) !== null && _treeItemProps_itemType !== void 0 ? _treeItemProps_itemType : treeItemProps.value === undefined || (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentValue) !== treeItemProps.value ? 'leaf' : 'branch';\n var _currentParent_level;\n const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;\n const currentChildrenSize = ++currentParent.childrenSize;\n const flatTreeItem = {\n value: treeItemProps.value,\n getTreeItemProps: ()=>({\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentChildrenSize,\n 'aria-setsize': currentParent.childrenSize,\n itemType\n }),\n level: currentLevel,\n parentValue,\n childrenSize: 0,\n index: -1\n };\n itemsPerValue.set(flatTreeItem.value, flatTreeItem);\n items.push(flatTreeItem);\n }\n const flatTreeItems = {\n root,\n size: items.length,\n getByIndex: (index)=>items[index],\n get: (key)=>itemsPerValue.get(key),\n set: (key, value)=>itemsPerValue.set(key, value)\n };\n return flatTreeItems;\n}\nexport const flatTreeRootId = '__fuiFlatTreeRoot';\nfunction createFlatTreeRootItem() {\n return {\n parentValue: undefined,\n value: flatTreeRootId,\n getTreeItemProps: ()=>{\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return {\n id: flatTreeRootId,\n value: flatTreeRootId,\n 'aria-setsize': -1,\n 'aria-level': -1,\n 'aria-posinset': -1,\n itemType: 'branch'\n };\n },\n childrenSize: 0,\n get index () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return -1;\n },\n level: 0\n };\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function* VisibleFlatTreeItemGenerator(openItems, flatTreeItems) {\n for(let index = 0, visibleIndex = 0; index < flatTreeItems.size; index++){\n const item = flatTreeItems.getByIndex(index);\n if (isItemVisible(item, openItems, flatTreeItems)) {\n item.index = visibleIndex++;\n yield item;\n } else {\n // Jump the amount of children the current item has, since those items will also be hidden\n index += item.childrenSize;\n }\n }\n}\nfunction isItemVisible(item, openItems, flatTreeItems) {\n if (item.level === 1) {\n return true;\n }\n while(item.parentValue && item.parentValue !== flatTreeItems.root.value){\n if (!openItems.has(item.parentValue)) {\n return false;\n }\n const parent = flatTreeItems.get(item.parentValue);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n return true;\n}\n"],"names":["createFlatTreeItems","flatTreeRootId","VisibleFlatTreeItemGenerator","flatTreeItemProps","root","createFlatTreeRootItem","itemsPerValue","Map","value","items","index","length","parentValue","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","_treeItemProps_itemType","itemType","undefined","_currentParent_level","currentLevel","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","set","push","flatTreeItems","size","getByIndex","key","id","openItems","visibleIndex","item","isItemVisible","has","parent"],"mappings":"AAAA;;;CAGC;;;;;;;;;;;IAAmBA,mBAAmB,MAAnBA;IAmDPC,cAAc,MAAdA;IA+BIC,4BAA4B,MAA5BA;;AAlFN,SAASF,oBAAoBG,iBAAiB,EAAE;IACvD,MAAMC,OAAOC;IACb,MAAMC,gBAAgB,IAAIC,IAAI;QAC1B;YACIH,KAAKI,KAAK;YACVJ;SACH;KACJ;IACD,MAAMK,QAAQ,EAAE;IAChB,IAAI,IAAIC,QAAQ,GAAGA,QAAQP,kBAAkBQ,MAAM,EAAED,QAAQ;QACzD,MAAM,EAAEE,aAAaX,eAAc,EAAG,GAAGY,eAAe,GAAGV,iBAAiB,CAACO,MAAM;QACnF,MAAMI,gBAAgBX,iBAAiB,CAACO,QAAQ,EAAE;QAClD,MAAMK,gBAAgBT,cAAcU,GAAG,CAACJ;QACxC,IAAI,CAACG,eAAe;YAChB,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;gBACxC,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC,CAAC,kBAAkB,EAAElB,iBAAiB,CAACO,MAAM,CAACF,KAAK,CAAC,4GAA4G,CAAC;YACnL,CAAC;YACD,KAAM;QACV,CAAC;QACD,IAAIc;QACJ,MAAMC,WAAW,AAACD,CAAAA,0BAA0BT,cAAcU,QAAQ,AAAD,MAAO,IAAI,IAAID,4BAA4B,KAAK,IAAIA,0BAA0BT,cAAcL,KAAK,KAAKgB,aAAa,AAACV,CAAAA,kBAAkB,IAAI,IAAIA,kBAAkB,KAAK,IAAI,KAAK,IAAIA,cAAcF,WAAW,AAAD,MAAOC,cAAcL,KAAK,GAAG,SAAS,QAAQ;QACzT,IAAIiB;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,uBAAuBV,cAAcY,KAAK,AAAD,MAAO,IAAI,IAAIF,yBAAyB,KAAK,IAAIA,uBAAuB,CAAC,AAAD,IAAK;QAC7I,MAAMG,sBAAsB,EAAEb,cAAcc,YAAY;QACxD,MAAMC,eAAe;YACjBtB,OAAOK,cAAcL,KAAK;YAC1BuB,kBAAkB,IAAK,CAAA;oBACf,GAAGlB,aAAa;oBAChB,cAAca;oBACd,iBAAiBE;oBACjB,gBAAgBb,cAAcc,YAAY;oBAC1CN;gBACJ,CAAA;YACJI,OAAOD;YACPd;YACAiB,cAAc;YACdnB,OAAO,CAAC;QACZ;QACAJ,cAAc0B,GAAG,CAACF,aAAatB,KAAK,EAAEsB;QACtCrB,MAAMwB,IAAI,CAACH;IACf;IACA,MAAMI,gBAAgB;QAClB9B;QACA+B,MAAM1B,MAAME,MAAM;QAClByB,YAAY,CAAC1B,QAAQD,KAAK,CAACC,MAAM;QACjCM,KAAK,CAACqB,MAAM/B,cAAcU,GAAG,CAACqB;QAC9BL,KAAK,CAACK,KAAK7B,QAAQF,cAAc0B,GAAG,CAACK,KAAK7B;IAC9C;IACA,OAAO0B;AACX;AACO,MAAMjC,iBAAiB;AAC9B,SAASI,yBAAyB;IAC9B,OAAO;QACHO,aAAaY;QACbhB,OAAOP;QACP8B,kBAAkB,IAAI;YAClB,IAAId,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;gBACvC,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC;YAClB,CAAC;YACD,OAAO;gBACHiB,IAAIrC;gBACJO,OAAOP;gBACP,gBAAgB,CAAC;gBACjB,cAAc,CAAC;gBACf,iBAAiB,CAAC;gBAClBsB,UAAU;YACd;QACJ;QACAM,cAAc;QACd,IAAInB,SAAS;YACT,IAAIO,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;gBACvC,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC;YAClB,CAAC;YACD,OAAO,CAAC;QACZ;QACAM,OAAO;IACX;AACJ;AAEO,UAAUzB,6BAA6BqC,SAAS,EAAEL,aAAa,EAAE;IACpE,IAAI,IAAIxB,QAAQ,GAAG8B,eAAe,GAAG9B,QAAQwB,cAAcC,IAAI,EAAEzB,QAAQ;QACrE,MAAM+B,OAAOP,cAAcE,UAAU,CAAC1B;QACtC,IAAIgC,cAAcD,MAAMF,WAAWL,gBAAgB;YAC/CO,KAAK/B,KAAK,GAAG8B;YACb,MAAMC;QACV,OAAO;YACH,0FAA0F;YAC1F/B,SAAS+B,KAAKZ,YAAY;QAC9B,CAAC;IACL;AACJ;AACA,SAASa,cAAcD,IAAI,EAAEF,SAAS,EAAEL,aAAa,EAAE;IACnD,IAAIO,KAAKd,KAAK,KAAK,GAAG;QAClB,OAAO,IAAI;IACf,CAAC;IACD,MAAMc,KAAK7B,WAAW,IAAI6B,KAAK7B,WAAW,KAAKsB,cAAc9B,IAAI,CAACI,KAAK,CAAC;QACpE,IAAI,CAAC+B,UAAUI,GAAG,CAACF,KAAK7B,WAAW,GAAG;YAClC,OAAO,KAAK;QAChB,CAAC;QACD,MAAMgC,SAASV,cAAclB,GAAG,CAACyB,KAAK7B,WAAW;QACjD,IAAI,CAACgC,QAAQ;YACT,OAAO,KAAK;QAChB,CAAC;QACDH,OAAOG;IACX;IACA,OAAO,IAAI;AACf"}
|