@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.
Files changed (75) hide show
  1. package/CHANGELOG.json +46 -1
  2. package/CHANGELOG.md +16 -2
  3. package/dist/index.d.ts +75 -49
  4. package/lib/components/Tree/Tree.types.js +1 -1
  5. package/lib/components/Tree/Tree.types.js.map +1 -1
  6. package/lib/components/Tree/useRootTree.js +55 -73
  7. package/lib/components/Tree/useRootTree.js.map +1 -1
  8. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  9. package/lib/components/TreeItem/renderTreeItem.js +4 -2
  10. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  11. package/lib/components/TreeItem/useTreeItem.js +58 -16
  12. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  13. package/lib/components/TreeItem/useTreeItemContextValues.js +13 -6
  14. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  15. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  16. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  17. package/lib/components/TreeItemLayout/useTreeItemLayout.js +7 -28
  18. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  19. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  20. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  21. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  22. package/lib/contexts/index.js +1 -0
  23. package/lib/contexts/index.js.map +1 -1
  24. package/lib/contexts/treeContext.js +2 -2
  25. package/lib/contexts/treeContext.js.map +1 -1
  26. package/lib/contexts/treeItemContext.js +0 -4
  27. package/lib/contexts/treeItemContext.js.map +1 -1
  28. package/lib/contexts/treeItemSlotsContext.js +9 -0
  29. package/lib/contexts/treeItemSlotsContext.js.map +1 -0
  30. package/lib/hooks/index.js +1 -1
  31. package/lib/hooks/index.js.map +1 -1
  32. package/lib/hooks/useControllableOpenItems.js +25 -0
  33. package/lib/hooks/useControllableOpenItems.js.map +1 -0
  34. package/lib/hooks/useFlatTree.js +3 -3
  35. package/lib/hooks/useFlatTree.js.map +1 -1
  36. package/lib/index.js.map +1 -1
  37. package/lib/utils/ImmutableSet.js +16 -9
  38. package/lib/utils/ImmutableSet.js.map +1 -1
  39. package/lib/utils/createFlatTreeItems.js.map +1 -1
  40. package/lib/utils/flattenTree.js +0 -5
  41. package/lib/utils/flattenTree.js.map +1 -1
  42. package/lib-commonjs/components/Tree/Tree.types.js +0 -2
  43. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  44. package/lib-commonjs/components/Tree/useRootTree.js +54 -72
  45. package/lib-commonjs/components/Tree/useRootTree.js.map +1 -1
  46. package/lib-commonjs/components/TreeItem/renderTreeItem.js +3 -1
  47. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  48. package/lib-commonjs/components/TreeItem/useTreeItem.js +57 -15
  49. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  50. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +14 -6
  51. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  52. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +6 -26
  53. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  54. package/lib-commonjs/contexts/index.js +1 -0
  55. package/lib-commonjs/contexts/index.js.map +1 -1
  56. package/lib-commonjs/contexts/treeContext.js +1 -1
  57. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  58. package/lib-commonjs/contexts/treeItemContext.js +0 -4
  59. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  60. package/lib-commonjs/contexts/treeItemSlotsContext.js +25 -0
  61. package/lib-commonjs/contexts/treeItemSlotsContext.js.map +1 -0
  62. package/lib-commonjs/hooks/index.js +1 -1
  63. package/lib-commonjs/hooks/index.js.map +1 -1
  64. package/lib-commonjs/hooks/{useOpenItemsState.js → useControllableOpenItems.js} +15 -14
  65. package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -0
  66. package/lib-commonjs/hooks/useFlatTree.js +3 -3
  67. package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
  68. package/lib-commonjs/utils/ImmutableSet.js +21 -16
  69. package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
  70. package/lib-commonjs/utils/flattenTree.js +0 -5
  71. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  72. package/package.json +5 -5
  73. package/lib/hooks/useOpenItemsState.js +0 -28
  74. package/lib/hooks/useOpenItemsState.js.map +0 -1
  75. 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 , isActionsVisible , isAsideVisible , actionsRef , itemType , layoutRef , subtreeRef , expandIconRef , open } = state;
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":["export function useTreeItemContextValues_unstable(state) {\n const { value , isActionsVisible , isAsideVisible , actionsRef , itemType , layoutRef , subtreeRef , expandIconRef , open } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */ const treeItem = {\n isActionsVisible,\n isAsideVisible,\n value,\n actionsRef,\n itemType,\n layoutRef,\n subtreeRef,\n expandIconRef,\n open\n };\n return {\n treeItem\n };\n}\n"],"names":["useTreeItemContextValues_unstable","state","value","isActionsVisible","isAsideVisible","actionsRef","itemType","layoutRef","subtreeRef","expandIconRef","open","treeItem"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,kCAAkCC,KAAK,EAAE;IACrD,MAAM,EAAEC,MAAK,EAAGC,iBAAgB,EAAGC,eAAc,EAAGC,WAAU,EAAGC,SAAQ,EAAGC,UAAS,EAAGC,WAAU,EAAGC,cAAa,EAAGC,KAAI,EAAG,GAAGT;IAC/H;;;GAGD,GAAG,MAAMU,WAAW;QACfR;QACAC;QACAF;QACAG;QACAC;QACAC;QACAC;QACAC;QACAC;IACJ;IACA,OAAO;QACHC;IACJ;AACJ"}
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 _treeItemChevron = require("../TreeItemChevron");
13
+ const _treeItemSlotsContext = require("../../contexts/treeItemSlotsContext");
14
14
  const useTreeItemLayout_unstable = (props, ref)=>{
15
- const { content , iconAfter , iconBefore , expandIcon , as ='span' , aside , actions } = props;
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: isAsideVisible ? (0, _reactUtilities.resolveShorthand)(aside) : undefined,
55
- actions: isActionsVisible ? (0, _reactUtilities.resolveShorthand)((0, _reactUtilities.isResolvedShorthand)(actions) ? {
56
- ...actions,
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, isResolvedShorthand, resolveShorthand, useMergedRefs } from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nimport { TreeItemChevron } from '../TreeItemChevron';\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 , expandIcon , as ='span' , aside , actions } = props;\n const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);\n const expandIconRef = useTreeItemContext_unstable((ctx)=>ctx.expandIconRef);\n const isActionsVisibleContext = useTreeItemContext_unstable((ctx)=>ctx.isActionsVisible);\n const isAsideVisible = useTreeItemContext_unstable((ctx)=>ctx.isAsideVisible);\n var _ref;\n const isActionsVisible = (_ref = isResolvedShorthand(actions) ? actions.visible : undefined) !== null && _ref !== void 0 ? _ref : isActionsVisibleContext;\n const isBranch = useTreeItemContext_unstable((ctx)=>ctx.itemType === 'branch');\n const actionsRef = useMergedRefs(isResolvedShorthand(actions) ? actions.ref : undefined, useTreeItemContext_unstable((ctx)=>ctx.actionsRef));\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: isAsideVisible ? resolveShorthand(aside) : undefined,\n actions: isActionsVisible ? resolveShorthand(// visible props should not be propagated to the DOM\n isResolvedShorthand(actions) ? {\n ...actions,\n visible: undefined\n } : actions, {\n defaultProps: {\n ref: actionsRef\n }\n }) : undefined,\n expandIcon: resolveShorthand(expandIcon, {\n required: isBranch,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(TreeItemChevron, null),\n 'aria-hidden': true,\n ref: useMergedRefs(isResolvedShorthand(expandIcon) ? expandIcon.ref : undefined, expandIconRef)\n }\n })\n };\n};\n"],"names":["useTreeItemLayout_unstable","props","ref","content","iconAfter","iconBefore","expandIcon","as","aside","actions","layoutRef","useTreeItemContext_unstable","ctx","expandIconRef","isActionsVisibleContext","isActionsVisible","isAsideVisible","_ref","isResolvedShorthand","visible","undefined","isBranch","itemType","actionsRef","useMergedRefs","components","root","buttonContextValue","size","getNativeElementProps","resolveShorthand","defaultProps","required","children","React","createElement","TreeItemChevron"],"mappings":";;;;+BAYiBA;;aAAAA;;;6DAZM;gCACqE;iCAChD;iCACZ;AASrB,MAAMA,6BAA6B,CAACC,OAAOC,MAAM;IACxD,MAAM,EAAEC,QAAO,EAAGC,UAAS,EAAGC,WAAU,EAAGC,WAAU,EAAGC,IAAI,OAAM,EAAGC,MAAK,EAAGC,QAAO,EAAG,GAAGR;IAC1F,MAAMS,YAAYC,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAIF,SAAS;IAClE,MAAMG,gBAAgBF,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAIC,aAAa;IAC1E,MAAMC,0BAA0BH,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAIG,gBAAgB;IACvF,MAAMC,iBAAiBL,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAII,cAAc;IAC5E,IAAIC;IACJ,MAAMF,mBAAmB,AAACE,CAAAA,OAAOC,IAAAA,mCAAmB,EAACT,WAAWA,QAAQU,OAAO,GAAGC,SAAS,AAAD,MAAO,IAAI,IAAIH,SAAS,KAAK,IAAIA,OAAOH,uBAAuB;IACzJ,MAAMO,WAAWV,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAIU,QAAQ,KAAK;IACrE,MAAMC,aAAaC,IAAAA,6BAAa,EAACN,IAAAA,mCAAmB,EAACT,WAAWA,QAAQP,GAAG,GAAGkB,SAAS,EAAET,IAAAA,4CAA2B,EAAC,CAACC,MAAMA,IAAIW,UAAU;IAC1I,OAAO;QACHE,YAAY;YACRC,MAAM;YACNpB,YAAY;YACZD,YAAY;YACZF,SAAS;YACTC,WAAW;YACXK,SAAS;YACTD,OAAO;QACX;QACAmB,oBAAoB;YAChBC,MAAM;QACV;QACAF,MAAMG,IAAAA,qCAAqB,EAACtB,IAAI;YAC5B,GAAGN,KAAK;YACRC,KAAKsB,IAAAA,6BAAa,EAACtB,KAAKQ;QAC5B;QACAL,YAAYyB,IAAAA,gCAAgB,EAACzB,YAAY;YACrC0B,cAAc;gBACV,eAAe,IAAI;YACvB;QACJ;QACA5B,SAAS2B,IAAAA,gCAAgB,EAAC3B,SAAS;YAC/B6B,UAAU,IAAI;QAClB;QACA5B,WAAW0B,IAAAA,gCAAgB,EAAC1B,WAAW;YACnC2B,cAAc;gBACV,eAAe,IAAI;YACvB;QACJ;QACAvB,OAAOQ,iBAAiBc,IAAAA,gCAAgB,EAACtB,SAASY,SAAS;QAC3DX,SAASM,mBAAmBe,IAAAA,gCAAgB,EAC5CZ,IAAAA,mCAAmB,EAACT,WAAW;YAC3B,GAAGA,OAAO;YACVU,SAASC;QACb,IAAIX,OAAO,EAAE;YACTsB,cAAc;gBACV7B,KAAKqB;YACT;QACJ,KAAKH,SAAS;QACdd,YAAYwB,IAAAA,gCAAgB,EAACxB,YAAY;YACrC0B,UAAUX;YACVU,cAAc;gBACVE,UAAU,WAAW,GAAGC,OAAMC,aAAa,CAACC,gCAAe,EAAE,IAAI;gBACjE,eAAe,IAAI;gBACnBlC,KAAKsB,IAAAA,6BAAa,EAACN,IAAAA,mCAAmB,EAACZ,cAAcA,WAAWJ,GAAG,GAAGkB,SAAS,EAAEP;YACrF;QACJ;IACJ;AACJ"}
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.emptyImmutableSet,
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 { emptyImmutableSet } from '../utils/ImmutableSet';\nconst defaultContextValue = {\n level: 0,\n openItems: emptyImmutableSet,\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","emptyImmutableSet","requestTreeResponse","noop","appearance","size","createContext","undefined","Provider","selector","useContextSelector","ctx"],"mappings":";;;;;;;;;;;IAWaA,WAAW,MAAXA;IACYC,YAAY,MAAZA;IACZC,uBAAuB,MAAvBA;;sCAbqC;8BAChB;AAClC,MAAMC,sBAAsB;IACxBC,OAAO;IACPC,WAAWC,+BAAiB;IAC5BC,qBAAqBC;IACrBC,YAAY;IACZC,MAAM;AACV;AACA,SAASF,OAAO;AAChB,QAAQ,GAAG;AACJ,MAAMR,cAAcW,IAAAA,mCAAa,EAACC;AAClC,MAAM,EAAEC,UAAUZ,aAAY,EAAG,GAAGD;AACpC,MAAME,0BAA0B,CAACY,WAAWC,IAAAA,wCAAkB,EAACf,aAAa,CAACgB,MAAMb,mBAAmB,GAAGW,SAASE"}
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 isActionsVisible: false,\n isAsideVisible: true,\n actionsRef: React.createRef(),\n expandIconRef: React.createRef(),\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","isActionsVisible","isAsideVisible","actionsRef","React","createRef","expandIconRef","layoutRef","subtreeRef","itemType","open","createContext","undefined","Provider","selector","useContextSelector","ctx"],"mappings":";;;;;;;;;;;IAaaA,eAAe,MAAfA;IACYC,gBAAgB,MAAhBA;IACZC,2BAA2B,MAA3BA;;;6DAfU;sCAC2B;AAClD,MAAMC,sBAAsB;IACxBC,OAAO;IACPC,kBAAkB,KAAK;IACvBC,gBAAgB,IAAI;IACpBC,0BAAYC,OAAMC,SAAS;IAC3BC,6BAAeF,OAAMC,SAAS;IAC9BE,yBAAWH,OAAMC,SAAS;IAC1BG,0BAAYJ,OAAMC,SAAS;IAC3BI,UAAU;IACVC,MAAM,KAAK;AACf;AACO,MAAMd,kBAAkBe,IAAAA,mCAAa,EAACC;AACtC,MAAM,EAAEC,UAAUhB,iBAAgB,EAAG,GAAGD;AACxC,MAAME,8BAA8B,CAACgB,WAAWC,IAAAA,wCAAkB,EAACnB,iBAAiB,CAACoB,MAAMjB,mBAAmB,GAAGe,SAASE"}
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("./useOpenItemsState"), exports);
8
+ _exportStar(require("./useControllableOpenItems"), exports);
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"sourcesContent":["export * from './useFlatTree';\nexport * from './useNestedTreeNavigation';\nexport * from './useOpenItemsState';\n"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA"}
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
- Object.defineProperty(exports, "useOpenItemsState", {
6
- enumerable: true,
7
- get: ()=>useOpenItemsState
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 useOpenItemsState(props) {
14
- const [openItems, setOpenItems] = (0, _reactUtilities.useControllableState)({
15
- state: _react.useMemo(()=>props.openItems && (0, _immutableSet.createImmutableSet)(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 && (()=>(0, _immutableSet.createImmutableSet)(props.defaultOpenItems)),
19
- initialState: _immutableSet.emptyImmutableSet
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 = (0, _immutableSet.createImmutableSet)(previousOpenItems);
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 _useOpenItemsState = require("./useOpenItemsState");
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
- updateOpenItems(data);
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 { useOpenItemsState } from './useOpenItemsState';\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 [openItems, updateOpenItems] = useOpenItemsState(options);\n const flatTreeItems = React.useMemo(()=>createFlatTreeItems(flatTreeItemProps), [\n flatTreeItemProps\n ]);\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 updateOpenItems(data);\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","openItems","updateOpenItems","useOpenItemsState","flatTreeItems","React","useMemo","createFlatTreeItems","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
+ {"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
- 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
- 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
- function createImmutableSet(iterable) {
18
- const internalSet = new Set(iterable);
19
- return dangerouslyCreateImmutableSet(internalSet);
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":["export const emptyImmutableSet = createImmutableSet();\n/**\n * properly creates an ImmutableSet instance from an iterable\n */ export function createImmutableSet(iterable) {\n const internalSet = new Set(iterable);\n return dangerouslyCreateImmutableSet(internalSet);\n}\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 */ export 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 };\n}\n"],"names":["emptyImmutableSet","createImmutableSet","dangerouslyCreateImmutableSet","iterable","internalSet","Set","size","add","value","nextSet","clear","delete","has","Symbol","iterator"],"mappings":";;;;;;;;;;;IAAaA,iBAAiB,MAAjBA;IAGOC,kBAAkB,MAAlBA;IAOAC,6BAA6B,MAA7BA;;AAVb,MAAMF,oBAAoBC;AAGtB,SAASA,mBAAmBE,QAAQ,EAAE;IAC7C,MAAMC,cAAc,IAAIC,IAAIF;IAC5B,OAAOD,8BAA8BE;AACzC;AAIW,SAASF,8BAA8BE,WAAW,EAAE;IAC3D,OAAO;QACHE,MAAMF,YAAYE,IAAI;QACtBC,KAAKC,KAAK,EAAE;YACR,MAAMC,UAAU,IAAIJ,IAAID;YACxBK,QAAQF,GAAG,CAACC;YACZ,OAAON,8BAA8BO;QACzC;QACAC,SAAS;YACL,OAAOV;QACX;QACAW,QAAQH,KAAK,EAAE;YACX,MAAMC,UAAU,IAAIJ,IAAID;YACxBK,QAAQE,MAAM,CAACH;YACf,OAAON,8BAA8BO;QACzC;QACAG,KAAKJ,KAAK,EAAE;YACR,OAAOJ,YAAYQ,GAAG,CAACJ;QAC3B;QACA,CAACK,OAAOC,QAAQ,CAAC,IAAI;YACjB,OAAOV,WAAW,CAACS,OAAOC,QAAQ,CAAC;QACvC;IACJ;AACJ"}
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":["let count = 1;\nfunction flattenTreeRecursive(items, parent, level = 1) {\n return items.reduce((acc, { subtree , ...item }, index)=>{\n var _item_id;\n const id = (_item_id = item.id) !== null && _item_id !== void 0 ? _item_id : `fui-FlatTreeItem-${count++}`;\n var _item_value;\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 value: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : id,\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","count","flattenTreeRecursive","items","parent","level","reduce","acc","subtree","item","index","_item_id","id","_item_value","flatTreeItem","length","parentValue","value","push","undefined"],"mappings":";;;;+BA6DaA;;aAAAA;;AA7Db,IAAIC,QAAQ;AACZ,SAASC,qBAAqBC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,CAAC,EAAE;IACpD,OAAOF,MAAMG,MAAM,CAAC,CAACC,KAAK,EAAEC,QAAO,EAAG,GAAGC,MAAM,EAAEC,QAAQ;QACrD,IAAIC;QACJ,MAAMC,KAAK,AAACD,CAAAA,WAAWF,KAAKG,EAAE,AAAD,MAAO,IAAI,IAAID,aAAa,KAAK,IAAIA,WAAW,CAAC,iBAAiB,EAAEV,QAAQ,CAAC;QAC1G,IAAIY;QACJ,MAAMC,eAAe;YACjB,cAAcT;YACd,iBAAiBK,QAAQ;YACzB,gBAAgBP,MAAMY,MAAM;YAC5BC,aAAaZ,WAAW,IAAI,IAAIA,WAAW,KAAK,IAAI,KAAK,IAAIA,OAAOa,KAAK;YACzEA,OAAO,AAACJ,CAAAA,cAAcJ,KAAKQ,KAAK,AAAD,MAAO,IAAI,IAAIJ,gBAAgB,KAAK,IAAIA,cAAcD,EAAE;YACvF,GAAGH,IAAI;QACX;QACAF,IAAIW,IAAI,CAACJ;QACT,IAAIN,YAAYW,WAAW;YACvBZ,IAAIW,IAAI,IAAIhB,qBAAqBM,SAASM,cAAcT,QAAQ;QACpE,CAAC;QACD,OAAOE;IACX,GAAG,EAAE;AACT;AAyCO,MAAMP,uBAAuB,CAACG,QAAQD,qBAAqBC"}
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.24",
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-beta.23",
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.11",
42
- "@fluentui/react-button": "^9.3.22",
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.10",
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"}