@fluentui/react-tree 9.2.1 → 9.4.0

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 (88) hide show
  1. package/CHANGELOG.json +258 -1
  2. package/CHANGELOG.md +67 -2
  3. package/dist/index.d.ts +49 -20
  4. package/lib/components/FlatTree/FlatTree.types.js.map +1 -1
  5. package/lib/components/FlatTree/renderFlatTree.js.map +1 -1
  6. package/lib/components/FlatTree/useFlatTree.js +71 -2
  7. package/lib/components/FlatTree/useFlatTree.js.map +1 -1
  8. package/lib/components/FlatTree/useFlatTreeContextValues.js +20 -2
  9. package/lib/components/FlatTree/useFlatTreeContextValues.js.map +1 -1
  10. package/lib/components/FlatTree/useFlatTreeNavigation.js +28 -14
  11. package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -1
  12. package/lib/components/FlatTree/useHeadlessFlatTree.js +16 -16
  13. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  14. package/lib/components/Tree/Tree.types.js.map +1 -1
  15. package/lib/components/Tree/renderTree.js +1 -1
  16. package/lib/components/Tree/renderTree.js.map +1 -1
  17. package/lib/components/Tree/useTree.js +11 -14
  18. package/lib/components/Tree/useTree.js.map +1 -1
  19. package/lib/components/Tree/useTreeContextValues.js +29 -15
  20. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  21. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  22. package/lib/components/TreeItem/useTreeItem.js +52 -26
  23. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  24. package/lib/components/TreeItemLayout/useTreeItemLayout.js +2 -3
  25. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  26. package/lib/components/TreeProvider.js +21 -0
  27. package/lib/components/TreeProvider.js.map +1 -0
  28. package/lib/contexts/index.js +1 -0
  29. package/lib/contexts/index.js.map +1 -1
  30. package/lib/contexts/subtreeContext.js +14 -0
  31. package/lib/contexts/subtreeContext.js.map +1 -0
  32. package/lib/contexts/treeContext.js +9 -5
  33. package/lib/contexts/treeContext.js.map +1 -1
  34. package/lib/hooks/useRootTree.js +25 -78
  35. package/lib/hooks/useRootTree.js.map +1 -1
  36. package/lib/hooks/useSubtree.js +2 -14
  37. package/lib/hooks/useSubtree.js.map +1 -1
  38. package/lib/index.js +2 -1
  39. package/lib/index.js.map +1 -1
  40. package/lib/utils/createHTMLElementWalker.js +2 -3
  41. package/lib/utils/createHTMLElementWalker.js.map +1 -1
  42. package/lib/utils/createHeadlessTree.js +5 -3
  43. package/lib/utils/createHeadlessTree.js.map +1 -1
  44. package/lib/utils/flattenTree.js +1 -2
  45. package/lib/utils/flattenTree.js.map +1 -1
  46. package/lib/utils/normalizeOpenItems.js +1 -2
  47. package/lib/utils/normalizeOpenItems.js.map +1 -1
  48. package/lib-commonjs/components/FlatTree/useFlatTree.js +71 -2
  49. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -1
  50. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js +20 -2
  51. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js.map +1 -1
  52. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js +27 -13
  53. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -1
  54. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +16 -16
  55. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  56. package/lib-commonjs/components/Tree/renderTree.js +2 -2
  57. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  58. package/lib-commonjs/components/Tree/useTree.js +11 -14
  59. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  60. package/lib-commonjs/components/Tree/useTreeContextValues.js +30 -15
  61. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  62. package/lib-commonjs/components/TreeItem/useTreeItem.js +55 -29
  63. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  64. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +2 -3
  65. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  66. package/lib-commonjs/components/TreeProvider.js +32 -0
  67. package/lib-commonjs/components/TreeProvider.js.map +1 -0
  68. package/lib-commonjs/contexts/index.js +1 -0
  69. package/lib-commonjs/contexts/index.js.map +1 -1
  70. package/lib-commonjs/contexts/subtreeContext.js +31 -0
  71. package/lib-commonjs/contexts/subtreeContext.js.map +1 -0
  72. package/lib-commonjs/contexts/treeContext.js +6 -7
  73. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  74. package/lib-commonjs/hooks/useRootTree.js +25 -78
  75. package/lib-commonjs/hooks/useRootTree.js.map +1 -1
  76. package/lib-commonjs/hooks/useSubtree.js +2 -14
  77. package/lib-commonjs/hooks/useSubtree.js.map +1 -1
  78. package/lib-commonjs/index.js +7 -3
  79. package/lib-commonjs/index.js.map +1 -1
  80. package/lib-commonjs/utils/createHTMLElementWalker.js +2 -3
  81. package/lib-commonjs/utils/createHTMLElementWalker.js.map +1 -1
  82. package/lib-commonjs/utils/createHeadlessTree.js +5 -3
  83. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -1
  84. package/lib-commonjs/utils/flattenTree.js +1 -2
  85. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  86. package/lib-commonjs/utils/normalizeOpenItems.js +1 -2
  87. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  88. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["useTreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getNativeElementProps, useId, useMergedRefs, useEventCallback, slot } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport { Space } from '@fluentui/keyboard-keys';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { useTreeContext_unstable } from '../../contexts/index';\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 treeType = useTreeContext_unstable((ctx)=>ctx.treeType);\n if (treeType === 'flat') {\n warnIfNoProperPropsFlatTreeItem(props);\n }\n const requestTreeResponse = useTreeContext_unstable((ctx)=>ctx.requestTreeResponse);\n const contextLevel = useTreeContext_unstable((ctx)=>ctx.level);\n // note, if the value is not externally provided,\n // then selection and expansion will not work properly\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 [isActionsVisible, setActionsVisible] = React.useState(false);\n const [isAsideVisible, setAsideVisible] = React.useState(true);\n const handleActionsRef = React.useCallback((actionsElement)=>{\n setAsideVisible(actionsElement === null);\n }, []);\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 selectionRef = React.useRef(null);\n var _props_open;\n const open = useTreeContext_unstable((ctx)=>(_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : ctx.openItems.has(value));\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n var _ctx_checkedItems_get;\n const checked = useTreeContext_unstable((ctx)=>(_ctx_checkedItems_get = ctx.checkedItems.get(value)) !== null && _ctx_checkedItems_get !== void 0 ? _ctx_checkedItems_get : false);\n const handleClick = useEventCallback((event)=>{\n var _onClick;\n (_onClick = 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 isEventFromSelection = selectionRef.current && elementContains(selectionRef.current, event.target);\n if (isEventFromSelection) {\n return;\n }\n const isEventFromExpandIcon = expandIconRef.current && elementContains(expandIconRef.current, event.target);\n ReactDOM.unstable_batchedUpdates(()=>{\n var _props_onOpenChange, _props;\n const data = {\n event,\n value,\n open: !open,\n target: event.currentTarget,\n type: isEventFromExpandIcon ? treeDataTypes.ExpandIconClick : treeDataTypes.Click\n };\n (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, event, data);\n requestTreeResponse({\n ...data,\n itemType\n });\n });\n });\n const handleKeyDown = useEventCallback((event)=>{\n var _onKeyDown;\n (_onKeyDown = 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 Space:\n if (selectionMode !== 'none') {\n var _selectionRef_current;\n (_selectionRef_current = selectionRef.current) === null || _selectionRef_current === void 0 ? void 0 : _selectionRef_current.click();\n event.preventDefault();\n }\n return;\n case treeDataTypes.Enter:\n {\n var _props_onOpenChange, _props;\n const data = {\n value,\n event,\n open: !open,\n type: event.key,\n target: event.currentTarget\n };\n (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, event, data);\n return requestTreeResponse({\n ...data,\n itemType\n });\n }\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n return requestTreeResponse({\n event,\n value,\n itemType,\n type: event.key,\n target: event.currentTarget\n });\n case treeDataTypes.ArrowLeft:\n {\n // do not navigate to parent if the item is on the top level\n if (level === 1 && !open) {\n return;\n }\n const data = {\n value,\n event,\n open: !open,\n type: event.key,\n target: event.currentTarget\n };\n if (open) {\n var _props_onOpenChange1, _props1;\n (_props_onOpenChange1 = (_props1 = props).onOpenChange) === null || _props_onOpenChange1 === void 0 ? void 0 : _props_onOpenChange1.call(_props1, event, data);\n }\n return requestTreeResponse({\n ...data,\n itemType\n });\n }\n case treeDataTypes.ArrowRight:\n // do not navigate or open if the item is a leaf\n if (itemType === 'leaf') {\n return;\n }\n const data = {\n value,\n event,\n open: !open,\n type: event.key,\n target: event.currentTarget\n };\n if (!open) {\n var _props_onOpenChange2, _props2;\n (_props_onOpenChange2 = (_props2 = props).onOpenChange) === null || _props_onOpenChange2 === void 0 ? void 0 : _props_onOpenChange2.call(_props2, event, data);\n }\n return requestTreeResponse({\n ...data,\n itemType\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 handleChange = useEventCallback((event)=>{\n if (event.isDefaultPrevented()) {\n return;\n }\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (isEventFromSubtree) {\n return;\n }\n requestTreeResponse({\n event,\n value,\n itemType,\n type: 'Change',\n target: event.currentTarget,\n checked: checked === 'mixed' ? true : !checked\n });\n });\n return {\n value,\n open,\n checked,\n subtreeRef,\n layoutRef,\n selectionRef,\n expandIconRef,\n actionsRef: useMergedRefs(handleActionsRef, actionsRef),\n itemType,\n level,\n components: {\n root: 'div'\n },\n isAsideVisible,\n isActionsVisible,\n root: slot.always(getNativeElementProps(as, {\n tabIndex: -1,\n [dataTreeItemValueAttrName]: value,\n ...rest,\n ref,\n role: 'treeitem',\n 'aria-level': level,\n 'aria-checked': selectionMode === 'multiselect' ? checked : undefined,\n // aria-selected is required according to WAI-ARIA spec\n // https://www.w3.org/TR/wai-aria-1.1/#treeitem\n // Casting: when selectionMode is 'single', checked is a boolean\n 'aria-selected': selectionMode === 'single' ? checked : 'false',\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 onChange: handleChange\n }), {\n elementType: 'div'\n })\n };\n}\nfunction warnIfNoProperPropsFlatTreeItem(props) {\n if (process.env.NODE_ENV !== 'production') {\n if (props['aria-posinset'] === undefined || props['aria-setsize'] === undefined || props['aria-level'] === undefined) {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [${useTreeItem_unstable.name}]:\nA flat treeitem must have \"aria-posinset\", \"aria-setsize\", \"aria-level\" to ensure a11y and navigation.\n\n- \"aria-posinset\": the position of this treeitem in the current level of the tree.\n- \"aria-setsize\": the number of siblings in this level of the tree.\n- \"aria-level\": the current level of the treeitem.`);\n }\n }\n}\n"],"names":["useTreeItem_unstable","props","ref","_props_value","treeType","useTreeContext_unstable","ctx","warnIfNoProperPropsFlatTreeItem","requestTreeResponse","contextLevel","level","value","useId","toString","onClick","onKeyDown","as","itemType","rest","isActionsVisible","setActionsVisible","React","useState","isAsideVisible","setAsideVisible","handleActionsRef","useCallback","actionsElement","actionsRef","useRef","expandIconRef","layoutRef","subtreeRef","selectionRef","_props_open","open","openItems","has","selectionMode","_ctx_checkedItems_get","checked","checkedItems","get","handleClick","useEventCallback","event","_onClick","isDefaultPrevented","isEventFromActions","current","elementContains","target","isEventFromSubtree","isEventFromSelection","isEventFromExpandIcon","ReactDOM","unstable_batchedUpdates","_props_onOpenChange","_props","data","currentTarget","type","treeDataTypes","ExpandIconClick","Click","onOpenChange","call","handleKeyDown","_onKeyDown","key","Space","_selectionRef_current","click","preventDefault","Enter","End","Home","ArrowUp","ArrowDown","ArrowLeft","_props_onOpenChange1","_props1","ArrowRight","_props_onOpenChange2","_props2","isTypeAheadCharacter","length","match","altKey","ctrlKey","metaKey","TypeAhead","handleActionsVisible","isTargetFromSubtree","Boolean","handleActionsInvisible","isRelatedTargetFromActions","relatedTarget","handleChange","useMergedRefs","components","root","slot","always","getNativeElementProps","tabIndex","dataTreeItemValueAttrName","role","undefined","onMouseOver","onFocus","onMouseOut","onBlur","onChange","elementType","process","env","NODE_ENV","console","error","name"],"mappings":"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"}
1
+ {"version":3,"sources":["useTreeItem.js"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { getNativeElementProps, useId, useMergedRefs, useEventCallback, slot } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport { Space } from '@fluentui/keyboard-keys';\nimport { treeDataTypes } from '../../utils/tokens';\nimport { useTreeContext_unstable, useSubtreeContext_unstable, useTreeItemContext_unstable } from '../../contexts';\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 treeType = useTreeContext_unstable((ctx)=>ctx.treeType);\n if (treeType === 'flat') {\n warnIfNoProperPropsFlatTreeItem(props);\n }\n const requestTreeResponse = useTreeContext_unstable((ctx)=>ctx.requestTreeResponse);\n const { level: contextLevel } = useSubtreeContext_unstable();\n const parentValue = useTreeItemContext_unstable((ctx)=>{\n var _props_parentValue;\n return (_props_parentValue = props.parentValue) !== null && _props_parentValue !== void 0 ? _props_parentValue : ctx.value;\n });\n // note, if the value is not externally provided,\n // then selection and expansion will not work properly\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 [isActionsVisible, setActionsVisible] = React.useState(false);\n const [isAsideVisible, setAsideVisible] = React.useState(true);\n const handleActionsRef = React.useCallback((actionsElement)=>{\n setAsideVisible(actionsElement === null);\n }, []);\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 selectionRef = React.useRef(null);\n const open = useTreeContext_unstable((ctx)=>{\n var _props_open;\n return (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : ctx.openItems.has(value);\n });\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n const checked = useTreeContext_unstable((ctx)=>{\n var _ctx_checkedItems_get;\n return (_ctx_checkedItems_get = ctx.checkedItems.get(value)) !== null && _ctx_checkedItems_get !== void 0 ? _ctx_checkedItems_get : false;\n });\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 isEventFromSelection = selectionRef.current && elementContains(selectionRef.current, event.target);\n if (isEventFromSelection) {\n return;\n }\n const isEventFromExpandIcon = expandIconRef.current && elementContains(expandIconRef.current, event.target);\n ReactDOM.unstable_batchedUpdates(()=>{\n var _props_onOpenChange;\n const data = {\n event,\n value,\n open: !open,\n target: event.currentTarget,\n type: isEventFromExpandIcon ? treeDataTypes.ExpandIconClick : treeDataTypes.Click\n };\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);\n requestTreeResponse({\n ...data,\n itemType,\n requestType: 'open'\n });\n requestTreeResponse({\n ...data,\n itemType,\n parentValue,\n requestType: 'navigate',\n type: treeDataTypes.Click\n });\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 Space:\n if (selectionMode !== 'none') {\n var _selectionRef_current;\n (_selectionRef_current = selectionRef.current) === null || _selectionRef_current === void 0 ? void 0 : _selectionRef_current.click();\n event.preventDefault();\n }\n return;\n case treeDataTypes.Enter:\n {\n var _props_onOpenChange;\n const data = {\n value,\n event,\n open: !open,\n type: event.key,\n target: event.currentTarget\n };\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, data);\n return requestTreeResponse({\n ...data,\n itemType,\n requestType: 'open'\n });\n }\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n return requestTreeResponse({\n requestType: 'navigate',\n event,\n value,\n itemType,\n parentValue,\n type: event.key,\n target: event.currentTarget\n });\n case treeDataTypes.ArrowLeft:\n {\n // do not navigate to parent if the item is on the top level\n if (level === 1 && !open) {\n return;\n }\n const data = {\n value,\n event,\n open: !open,\n type: event.key,\n target: event.currentTarget\n };\n if (open) {\n var _props_onOpenChange1;\n (_props_onOpenChange1 = props.onOpenChange) === null || _props_onOpenChange1 === void 0 ? void 0 : _props_onOpenChange1.call(props, event, data);\n }\n return requestTreeResponse({\n ...data,\n itemType,\n parentValue,\n requestType: open ? 'open' : 'navigate'\n });\n }\n case treeDataTypes.ArrowRight:\n // do not navigate or open if the item is a leaf\n if (itemType === 'leaf') {\n return;\n }\n const data = {\n value,\n event,\n open: !open,\n type: event.key,\n target: event.currentTarget\n };\n if (!open) {\n var _props_onOpenChange2;\n (_props_onOpenChange2 = props.onOpenChange) === null || _props_onOpenChange2 === void 0 ? void 0 : _props_onOpenChange2.call(props, event, data);\n }\n return requestTreeResponse({\n ...data,\n itemType,\n parentValue,\n requestType: open ? 'navigate' : 'open'\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 requestType: 'navigate',\n event,\n target: event.currentTarget,\n value,\n itemType,\n type: treeDataTypes.TypeAhead,\n parentValue\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 handleChange = useEventCallback((event)=>{\n if (event.isDefaultPrevented()) {\n return;\n }\n const isEventFromSubtree = subtreeRef.current && elementContains(subtreeRef.current, event.target);\n if (isEventFromSubtree) {\n return;\n }\n requestTreeResponse({\n requestType: 'selection',\n event,\n value,\n itemType,\n type: 'Change',\n target: event.currentTarget,\n checked: checked === 'mixed' ? true : !checked\n });\n });\n return {\n value,\n open,\n checked,\n subtreeRef,\n layoutRef,\n selectionRef,\n expandIconRef,\n actionsRef: useMergedRefs(handleActionsRef, actionsRef),\n itemType,\n level,\n components: {\n root: 'div'\n },\n isAsideVisible,\n isActionsVisible,\n root: slot.always(getNativeElementProps(as, {\n tabIndex: -1,\n [dataTreeItemValueAttrName]: value,\n ...rest,\n ref,\n role: 'treeitem',\n 'aria-level': level,\n 'aria-checked': selectionMode === 'multiselect' ? checked : undefined,\n // aria-selected is required according to WAI-ARIA spec\n // https://www.w3.org/TR/wai-aria-1.1/#treeitem\n // Casting: when selectionMode is 'single', checked is a boolean\n 'aria-selected': selectionMode === 'single' ? checked : 'false',\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 onChange: handleChange\n }), {\n elementType: 'div'\n })\n };\n}\nfunction warnIfNoProperPropsFlatTreeItem(props) {\n if (process.env.NODE_ENV !== 'production') {\n if (props['aria-posinset'] === undefined || props['aria-setsize'] === undefined || props['aria-level'] === undefined || props.parentValue === undefined && props['aria-level'] !== 1) {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [${useTreeItem_unstable.name}]:\nA flat treeitem must have \"aria-posinset\", \"aria-setsize\", \"aria-level\"\nand \"parentValue\" (if \"aria-level\" > 1) to ensure a11y and navigation.\n\n- \"aria-posinset\": the position of this treeitem in the current level of the tree.\n- \"aria-setsize\": the number of siblings in this level of the tree.\n- \"aria-level\": the current level of the treeitem.\n- \"parentValue\": the \"value\" property of the parent item of this item.`);\n }\n }\n}\n"],"names":["useTreeItem_unstable","props","ref","_props_value","treeType","useTreeContext_unstable","ctx","warnIfNoProperPropsFlatTreeItem","requestTreeResponse","level","contextLevel","useSubtreeContext_unstable","parentValue","useTreeItemContext_unstable","_props_parentValue","value","useId","toString","onClick","onKeyDown","as","itemType","rest","isActionsVisible","setActionsVisible","React","useState","isAsideVisible","setAsideVisible","handleActionsRef","useCallback","actionsElement","actionsRef","useRef","expandIconRef","layoutRef","subtreeRef","selectionRef","open","_props_open","openItems","has","selectionMode","checked","_ctx_checkedItems_get","checkedItems","get","handleClick","useEventCallback","event","isDefaultPrevented","isEventFromActions","current","elementContains","target","isEventFromSubtree","isEventFromSelection","isEventFromExpandIcon","ReactDOM","unstable_batchedUpdates","_props_onOpenChange","data","currentTarget","type","treeDataTypes","ExpandIconClick","Click","onOpenChange","call","requestType","handleKeyDown","key","Space","_selectionRef_current","click","preventDefault","Enter","End","Home","ArrowUp","ArrowDown","ArrowLeft","_props_onOpenChange1","ArrowRight","_props_onOpenChange2","isTypeAheadCharacter","length","match","altKey","ctrlKey","metaKey","TypeAhead","handleActionsVisible","isTargetFromSubtree","Boolean","handleActionsInvisible","isRelatedTargetFromActions","relatedTarget","handleChange","useMergedRefs","components","root","slot","always","getNativeElementProps","tabIndex","dataTreeItemValueAttrName","role","undefined","onMouseOver","onFocus","onMouseOut","onBlur","onChange","elementType","process","env","NODE_ENV","console","error","name"],"mappings":"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"}
@@ -17,7 +17,6 @@ const _reactradio = require("@fluentui/react-radio");
17
17
  const _TreeItemChevron = require("../TreeItemChevron");
18
18
  const _reacttabster = require("@fluentui/react-tabster");
19
19
  const useTreeItemLayout_unstable = (props, ref)=>{
20
- var _expandIcon, _actions;
21
20
  const { main, iconAfter, iconBefore, as = 'span' } = props;
22
21
  const layoutRef = (0, _contexts.useTreeItemContext_unstable)((ctx)=>ctx.layoutRef);
23
22
  const selectionMode = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.selectionMode);
@@ -46,7 +45,7 @@ const useTreeItemLayout_unstable = (props, ref)=>{
46
45
  },
47
46
  elementType: 'div'
48
47
  });
49
- const expandIconRefs = (0, _reactutilities.useMergedRefs)((_expandIcon = expandIcon) === null || _expandIcon === void 0 ? void 0 : _expandIcon.ref, expandIconRef);
48
+ const expandIconRefs = (0, _reactutilities.useMergedRefs)(expandIcon === null || expandIcon === void 0 ? void 0 : expandIcon.ref, expandIconRef);
50
49
  if (expandIcon) {
51
50
  expandIcon.ref = expandIconRefs;
52
51
  }
@@ -61,7 +60,7 @@ const useTreeItemLayout_unstable = (props, ref)=>{
61
60
  },
62
61
  elementType: 'div'
63
62
  }) : undefined;
64
- const actionsRefs = (0, _reactutilities.useMergedRefs)((_actions = actions) === null || _actions === void 0 ? void 0 : _actions.ref, actionsRef);
63
+ const actionsRefs = (0, _reactutilities.useMergedRefs)(actions === null || actions === void 0 ? void 0 : actions.ref, actionsRef);
65
64
  if (actions) {
66
65
  actions.ref = actionsRefs;
67
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["useTreeItemLayout.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, isResolvedShorthand, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { Radio } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\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 var _expandIcon, _actions;\n const { main, iconAfter, iconBefore, as = 'span' } = props;\n const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n const [isActionsVisibleExternal, actionsShorthand] = 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 = useTreeItemContext_unstable((ctx)=>ctx.isActionsVisible) || isActionsVisibleExternal;\n const isAsideVisible = useTreeItemContext_unstable((ctx)=>ctx.isAsideVisible);\n const selectionRef = useTreeItemContext_unstable((ctx)=>ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable((ctx)=>ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable((ctx)=>ctx.actionsRef);\n const checked = useTreeItemContext_unstable((ctx)=>ctx.checked);\n const isBranch = useTreeItemContext_unstable((ctx)=>ctx.itemType === 'branch');\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(TreeItemChevron, null),\n 'aria-hidden': true\n },\n elementType: 'div'\n });\n const expandIconRefs = useMergedRefs((_expandIcon = expandIcon) === null || _expandIcon === void 0 ? void 0 : _expandIcon.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal'\n });\n const actions = isActionsVisible ? slot.optional(actionsShorthand, {\n defaultProps: {\n ...arrowNavigationProps,\n role: 'toolbar'\n },\n elementType: 'div'\n }) : undefined;\n const actionsRefs = useMergedRefs((_actions = actions) === null || _actions === void 0 ? void 0 : _actions.ref, actionsRef);\n if (actions) {\n actions.ref = actionsRefs;\n }\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: selectionMode === 'multiselect' ? Checkbox : Radio\n },\n buttonContextValue: {\n size: 'small'\n },\n root: slot.always(getNativeElementProps(as, {\n ...props,\n ref: useMergedRefs(ref, layoutRef)\n }), {\n elementType: 'div'\n }),\n iconBefore: slot.optional(iconBefore, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n main: slot.always(main, {\n elementType: 'div'\n }),\n iconAfter: slot.optional(iconAfter, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n aside: isAsideVisible ? slot.optional(props.aside, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }) : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef\n },\n elementType: selectionMode === 'multiselect' ? Checkbox : Radio\n })\n };\n};\n"],"names":["useTreeItemLayout_unstable","props","ref","_expandIcon","_actions","main","iconAfter","iconBefore","as","layoutRef","useTreeItemContext_unstable","ctx","selectionMode","useTreeContext_unstable","isActionsVisibleExternal","actionsShorthand","isResolvedShorthand","actions","visible","undefined","isActionsVisible","isAsideVisible","selectionRef","expandIconRef","actionsRef","checked","isBranch","itemType","expandIcon","slot","optional","renderByDefault","defaultProps","children","React","createElement","TreeItemChevron","elementType","expandIconRefs","useMergedRefs","arrowNavigationProps","useArrowNavigationGroup","circular","axis","role","actionsRefs","components","root","aside","selector","Checkbox","Radio","buttonContextValue","size","always","getNativeElementProps","tabIndex"],"mappings":"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"}
1
+ {"version":3,"sources":["useTreeItemLayout.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, isResolvedShorthand, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { Radio } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\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 { main, iconAfter, iconBefore, as = 'span' } = props;\n const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n const [isActionsVisibleExternal, actionsShorthand] = 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 = useTreeItemContext_unstable((ctx)=>ctx.isActionsVisible) || isActionsVisibleExternal;\n const isAsideVisible = useTreeItemContext_unstable((ctx)=>ctx.isAsideVisible);\n const selectionRef = useTreeItemContext_unstable((ctx)=>ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable((ctx)=>ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable((ctx)=>ctx.actionsRef);\n const checked = useTreeItemContext_unstable((ctx)=>ctx.checked);\n const isBranch = useTreeItemContext_unstable((ctx)=>ctx.itemType === 'branch');\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(TreeItemChevron, null),\n 'aria-hidden': true\n },\n elementType: 'div'\n });\n const expandIconRefs = useMergedRefs(expandIcon === null || expandIcon === void 0 ? void 0 : expandIcon.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal'\n });\n const actions = isActionsVisible ? slot.optional(actionsShorthand, {\n defaultProps: {\n ...arrowNavigationProps,\n role: 'toolbar'\n },\n elementType: 'div'\n }) : undefined;\n const actionsRefs = useMergedRefs(actions === null || actions === void 0 ? void 0 : actions.ref, actionsRef);\n if (actions) {\n actions.ref = actionsRefs;\n }\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: selectionMode === 'multiselect' ? Checkbox : Radio\n },\n buttonContextValue: {\n size: 'small'\n },\n root: slot.always(getNativeElementProps(as, {\n ...props,\n ref: useMergedRefs(ref, layoutRef)\n }), {\n elementType: 'div'\n }),\n iconBefore: slot.optional(iconBefore, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n main: slot.always(main, {\n elementType: 'div'\n }),\n iconAfter: slot.optional(iconAfter, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n aside: isAsideVisible ? slot.optional(props.aside, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }) : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef\n },\n elementType: selectionMode === 'multiselect' ? Checkbox : Radio\n })\n };\n};\n"],"names":["useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","as","layoutRef","useTreeItemContext_unstable","ctx","selectionMode","useTreeContext_unstable","isActionsVisibleExternal","actionsShorthand","isResolvedShorthand","actions","visible","undefined","isActionsVisible","isAsideVisible","selectionRef","expandIconRef","actionsRef","checked","isBranch","itemType","expandIcon","slot","optional","renderByDefault","defaultProps","children","React","createElement","TreeItemChevron","elementType","expandIconRefs","useMergedRefs","arrowNavigationProps","useArrowNavigationGroup","circular","axis","role","actionsRefs","components","root","aside","selector","Checkbox","Radio","buttonContextValue","size","always","getNativeElementProps","tabIndex"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TreeProvider", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TreeProvider;
9
+ }
10
+ });
11
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
+ const _contexts = require("../contexts");
14
+ /**
15
+ * @internal
16
+ */ const rootSubtreeContextValue = {
17
+ level: 1,
18
+ contextType: 'subtree'
19
+ };
20
+ const TreeProvider = (props)=>{
21
+ if (props.value.contextType === 'subtree') {
22
+ return /*#__PURE__*/ _react.createElement(_contexts.SubtreeContext.Provider, {
23
+ value: props.value
24
+ }, props.children);
25
+ }
26
+ return /*#__PURE__*/ _react.createElement(_contexts.TreeContext.Provider, {
27
+ value: props.value
28
+ }, /*#__PURE__*/ _react.createElement(_contexts.SubtreeContext.Provider, {
29
+ value: rootSubtreeContextValue
30
+ }, props.children));
31
+ };
32
+ TreeProvider.displayName = 'TreeProvider';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["TreeProvider.js"],"sourcesContent":["import * as React from 'react';\nimport { SubtreeContext, TreeContext } from '../contexts';\n/**\n * @internal\n */ const rootSubtreeContextValue = {\n level: 1,\n contextType: 'subtree'\n};\nexport const TreeProvider = (props)=>{\n if (props.value.contextType === 'subtree') {\n return /*#__PURE__*/ React.createElement(SubtreeContext.Provider, {\n value: props.value\n }, props.children);\n }\n return /*#__PURE__*/ React.createElement(TreeContext.Provider, {\n value: props.value\n }, /*#__PURE__*/ React.createElement(SubtreeContext.Provider, {\n value: rootSubtreeContextValue\n }, props.children));\n};\nTreeProvider.displayName = 'TreeProvider';\n"],"names":["TreeProvider","rootSubtreeContextValue","level","contextType","props","value","React","createElement","SubtreeContext","Provider","children","TreeContext","displayName"],"mappings":";;;;+BAQaA;;;eAAAA;;;;iEARU;0BACqB;AAC5C;;CAEC,GAAG,MAAMC,0BAA0B;IAChCC,OAAO;IACPC,aAAa;AACjB;AACO,MAAMH,eAAe,CAACI;IACzB,IAAIA,MAAMC,KAAK,CAACF,WAAW,KAAK,WAAW;QACvC,OAAO,WAAW,GAAGG,OAAMC,aAAa,CAACC,wBAAc,CAACC,QAAQ,EAAE;YAC9DJ,OAAOD,MAAMC,KAAK;QACtB,GAAGD,MAAMM,QAAQ;IACrB;IACA,OAAO,WAAW,GAAGJ,OAAMC,aAAa,CAACI,qBAAW,CAACF,QAAQ,EAAE;QAC3DJ,OAAOD,MAAMC,KAAK;IACtB,GAAG,WAAW,GAAGC,OAAMC,aAAa,CAACC,wBAAc,CAACC,QAAQ,EAAE;QAC1DJ,OAAOJ;IACX,GAAGG,MAAMM,QAAQ;AACrB;AACAV,aAAaY,WAAW,GAAG"}
@@ -4,4 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _export_star = require("@swc/helpers/_/_export_star");
6
6
  _export_star._(require("./treeContext"), exports);
7
+ _export_star._(require("./subtreeContext"), exports);
7
8
  _export_star._(require("./treeItemContext"), exports);
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"sourcesContent":["export * from './treeContext';\nexport * from './treeItemContext';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA"}
1
+ {"version":3,"sources":["index.js"],"sourcesContent":["export * from './treeContext';\nexport * from './subtreeContext';\nexport * from './treeItemContext';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA;uBACA"}
@@ -0,0 +1,31 @@
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
+ SubtreeContext: function() {
13
+ return SubtreeContext;
14
+ },
15
+ useSubtreeContext_unstable: function() {
16
+ return useSubtreeContext_unstable;
17
+ }
18
+ });
19
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
20
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
21
+ /**
22
+ * @internal
23
+ */ const defaultSubTreeContextValue = {
24
+ level: 0,
25
+ contextType: 'subtree'
26
+ };
27
+ const SubtreeContext = /*#__PURE__*/ _react.createContext(undefined);
28
+ const useSubtreeContext_unstable = ()=>{
29
+ var _React_useContext;
30
+ return (_React_useContext = _react.useContext(SubtreeContext)) !== null && _React_useContext !== void 0 ? _React_useContext : defaultSubTreeContextValue;
31
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["subtreeContext.js"],"sourcesContent":["import * as React from 'react';\n/**\n * @internal\n */ const defaultSubTreeContextValue = {\n level: 0,\n contextType: 'subtree'\n};\n/**\n * @internal\n */ export const SubtreeContext = React.createContext(undefined);\nexport const useSubtreeContext_unstable = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(SubtreeContext)) !== null && _React_useContext !== void 0 ? _React_useContext : defaultSubTreeContextValue;\n};\n"],"names":["SubtreeContext","useSubtreeContext_unstable","defaultSubTreeContextValue","level","contextType","React","createContext","undefined","_React_useContext","useContext"],"mappings":";;;;;;;;;;;IASiBA,cAAc;eAAdA;;IACJC,0BAA0B;eAA1BA;;;;iEAVU;AACvB;;CAEC,GAAG,MAAMC,6BAA6B;IACnCC,OAAO;IACPC,aAAa;AACjB;AAGW,MAAMJ,+BAAiBK,OAAMC,aAAa,CAACC;AAC/C,MAAMN,6BAA6B;IACtC,IAAIO;IACJ,OAAO,AAACA,CAAAA,oBAAoBH,OAAMI,UAAU,CAACT,eAAc,MAAO,QAAQQ,sBAAsB,KAAK,IAAIA,oBAAoBN;AACjI"}
@@ -12,9 +12,6 @@ _export(exports, {
12
12
  TreeContext: function() {
13
13
  return TreeContext;
14
14
  },
15
- TreeProvider: function() {
16
- return TreeProvider;
17
- },
18
15
  useTreeContext_unstable: function() {
19
16
  return useTreeContext_unstable;
20
17
  }
@@ -22,9 +19,12 @@ _export(exports, {
22
19
  const _reactcontextselector = require("@fluentui/react-context-selector");
23
20
  const _ImmutableSet = require("../utils/ImmutableSet");
24
21
  const _ImmutableMap = require("../utils/ImmutableMap");
25
- const defaultContextValue = {
26
- treeType: 'nested',
22
+ /**
23
+ * @internal
24
+ */ const defaultTreeContextValue = {
27
25
  level: 0,
26
+ contextType: 'root',
27
+ treeType: 'nested',
28
28
  selectionMode: 'none',
29
29
  openItems: _ImmutableSet.ImmutableSet.empty,
30
30
  checkedItems: _ImmutableMap.ImmutableMap.empty,
@@ -35,5 +35,4 @@ const defaultContextValue = {
35
35
  function noop() {
36
36
  /* noop */ }
37
37
  const TreeContext = (0, _reactcontextselector.createContext)(undefined);
38
- const { Provider: TreeProvider } = TreeContext;
39
- const useTreeContext_unstable = (selector)=>(0, _reactcontextselector.useContextSelector)(TreeContext, (ctx = defaultContextValue)=>selector(ctx));
38
+ const useTreeContext_unstable = (selector)=>(0, _reactcontextselector.useContextSelector)(TreeContext, (ctx = defaultTreeContextValue)=>selector(ctx));
@@ -1 +1 @@
1
- {"version":3,"sources":["treeContext.js"],"sourcesContent":["import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport { ImmutableSet } from '../utils/ImmutableSet';\nimport { ImmutableMap } from '../utils/ImmutableMap';\nconst defaultContextValue = {\n treeType: 'nested',\n level: 0,\n selectionMode: 'none',\n openItems: ImmutableSet.empty,\n checkedItems: ImmutableMap.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","treeType","level","selectionMode","openItems","ImmutableSet","empty","checkedItems","ImmutableMap","requestTreeResponse","noop","appearance","size","createContext","undefined","Provider","selector","useContextSelector","ctx"],"mappings":";;;;;;;;;;;IAeaA,WAAW;eAAXA;;IACYC,YAAY;eAAZA;;IACZC,uBAAuB;eAAvBA;;;sCAjBqC;8BACrB;8BACA;AAC7B,MAAMC,sBAAsB;IACxBC,UAAU;IACVC,OAAO;IACPC,eAAe;IACfC,WAAWC,0BAAY,CAACC,KAAK;IAC7BC,cAAcC,0BAAY,CAACF,KAAK;IAChCG,qBAAqBC;IACrBC,YAAY;IACZC,MAAM;AACV;AACA,SAASF;AACT,QAAQ,GAAG;AACJ,MAAMb,cAAcgB,IAAAA,mCAAa,EAACC;AAClC,MAAM,EAAEC,UAAUjB,YAAY,EAAE,GAAGD;AACnC,MAAME,0BAA0B,CAACiB,WAAWC,IAAAA,wCAAkB,EAACpB,aAAa,CAACqB,MAAMlB,mBAAmB,GAAGgB,SAASE"}
1
+ {"version":3,"sources":["treeContext.js"],"sourcesContent":["import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport { ImmutableSet } from '../utils/ImmutableSet';\nimport { ImmutableMap } from '../utils/ImmutableMap';\n/**\n * @internal\n */ const defaultTreeContextValue = {\n level: 0,\n contextType: 'root',\n treeType: 'nested',\n selectionMode: 'none',\n openItems: ImmutableSet.empty,\n checkedItems: ImmutableMap.empty,\n requestTreeResponse: noop,\n appearance: 'subtle',\n size: 'medium'\n};\nfunction noop() {\n/* noop */ }\n/**\n * @internal\n */ export const TreeContext = createContext(undefined);\nexport const useTreeContext_unstable = (selector)=>useContextSelector(TreeContext, (ctx = defaultTreeContextValue)=>selector(ctx));\n"],"names":["TreeContext","useTreeContext_unstable","defaultTreeContextValue","level","contextType","treeType","selectionMode","openItems","ImmutableSet","empty","checkedItems","ImmutableMap","requestTreeResponse","noop","appearance","size","createContext","undefined","selector","useContextSelector","ctx"],"mappings":";;;;;;;;;;;IAoBiBA,WAAW;eAAXA;;IACJC,uBAAuB;eAAvBA;;;sCArBqC;8BACrB;8BACA;AAC7B;;CAEC,GAAG,MAAMC,0BAA0B;IAChCC,OAAO;IACPC,aAAa;IACbC,UAAU;IACVC,eAAe;IACfC,WAAWC,0BAAY,CAACC,KAAK;IAC7BC,cAAcC,0BAAY,CAACF,KAAK;IAChCG,qBAAqBC;IACrBC,YAAY;IACZC,MAAM;AACV;AACA,SAASF;AACT,QAAQ,GAAG;AAGA,MAAMb,cAAcgB,IAAAA,mCAAa,EAACC;AACtC,MAAMhB,0BAA0B,CAACiB,WAAWC,IAAAA,wCAAkB,EAACnB,aAAa,CAACoB,MAAMlB,uBAAuB,GAAGgB,SAASE"}
@@ -11,10 +11,10 @@ Object.defineProperty(exports, "useRootTree", {
11
11
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
12
  const _reactutilities = require("@fluentui/react-utilities");
13
13
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
- const _reactdom = /*#__PURE__*/ _interop_require_wildcard._(require("react-dom"));
15
14
  const _createOpenItems = require("../utils/createOpenItems");
16
15
  const _createCheckedItems = require("../utils/createCheckedItems");
17
16
  const _tokens = require("../utils/tokens");
17
+ const _useControllableOpenItems = require("./useControllableOpenItems");
18
18
  function useRootTree(props, ref) {
19
19
  warnIfNoProperPropsRootTree(props);
20
20
  const { appearance = 'subtle', size = 'medium', selectionMode = 'none' } = props;
@@ -25,16 +25,20 @@ function useRootTree(props, ref) {
25
25
  props.checkedItems
26
26
  ]);
27
27
  const requestOpenChange = (data)=>{
28
- var _props_onOpenChange, _props;
29
- return (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, data.event, data);
28
+ var _props_onOpenChange;
29
+ const nextOpenItems = (0, _useControllableOpenItems.createNextOpenItems)(data, openItems);
30
+ (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, {
31
+ ...data,
32
+ openItems: nextOpenItems.dangerouslyGetInternalSet_unstable()
33
+ });
30
34
  };
31
35
  const requestCheckedChange = (data)=>{
32
- var _props_onCheckedChange, _props;
33
- return (_props_onCheckedChange = (_props = props).onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(_props, data.event, data);
36
+ var _props_onCheckedChange;
37
+ return (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, data.event, data);
34
38
  };
35
39
  const requestNavigation = (data)=>{
36
- var _props_onNavigation, _props;
37
- (_props_onNavigation = (_props = props).onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(_props, data.event, data);
40
+ var _props_onNavigation;
41
+ (_props_onNavigation = props.onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(props, data.event, data);
38
42
  switch(data.type){
39
43
  case _tokens.treeDataTypes.ArrowDown:
40
44
  case _tokens.treeDataTypes.ArrowUp:
@@ -46,85 +50,28 @@ function useRootTree(props, ref) {
46
50
  }
47
51
  };
48
52
  const requestTreeResponse = (0, _reactutilities.useEventCallback)((request)=>{
49
- switch(request.type){
50
- case _tokens.treeDataTypes.Click:
51
- case _tokens.treeDataTypes.ExpandIconClick:
52
- {
53
- return _reactdom.unstable_batchedUpdates(()=>{
54
- requestOpenChange({
55
- ...request,
56
- open: request.itemType === 'branch' && !openItems.has(request.value),
57
- openItems: openItems.dangerouslyGetInternalSet_unstable()
58
- });
59
- requestNavigation({
60
- ...request,
61
- type: _tokens.treeDataTypes.Click
62
- });
63
- });
64
- }
65
- case _tokens.treeDataTypes.ArrowRight:
66
- {
67
- if (request.itemType === 'leaf') {
68
- return;
69
- }
70
- const open = openItems.has(request.value);
71
- if (!open) {
72
- return requestOpenChange({
73
- ...request,
74
- open: true,
75
- openItems: openItems.dangerouslyGetInternalSet_unstable()
76
- });
77
- }
78
- return requestNavigation(request);
79
- }
80
- case _tokens.treeDataTypes.Enter:
81
- {
82
- const open = openItems.has(request.value);
83
- return requestOpenChange({
84
- ...request,
85
- open: request.itemType === 'branch' && !open,
86
- openItems: openItems.dangerouslyGetInternalSet_unstable()
87
- });
88
- }
89
- case _tokens.treeDataTypes.ArrowLeft:
90
- {
91
- const open = openItems.has(request.value);
92
- if (open && request.itemType === 'branch') {
93
- return requestOpenChange({
94
- ...request,
95
- open: false,
96
- type: _tokens.treeDataTypes.ArrowLeft,
97
- openItems: openItems.dangerouslyGetInternalSet_unstable()
98
- });
99
- }
100
- return requestNavigation({
101
- ...request,
102
- type: _tokens.treeDataTypes.ArrowLeft
103
- });
104
- }
105
- case _tokens.treeDataTypes.End:
106
- case _tokens.treeDataTypes.Home:
107
- case _tokens.treeDataTypes.ArrowUp:
108
- case _tokens.treeDataTypes.ArrowDown:
109
- case _tokens.treeDataTypes.TypeAhead:
110
- return requestNavigation({
53
+ switch(request.requestType){
54
+ case 'navigate':
55
+ return requestNavigation(request);
56
+ case 'open':
57
+ return requestOpenChange({
58
+ ...request,
59
+ open: request.itemType === 'branch' && !openItems.has(request.value),
60
+ openItems: openItems.dangerouslyGetInternalSet_unstable()
61
+ });
62
+ case 'selection':
63
+ return requestCheckedChange({
111
64
  ...request,
112
- target: request.event.currentTarget
65
+ selectionMode: selectionMode,
66
+ checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()
113
67
  });
114
- case _tokens.treeDataTypes.Change:
115
- {
116
- return requestCheckedChange({
117
- ...request,
118
- selectionMode: selectionMode,
119
- checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()
120
- });
121
- }
122
68
  }
123
69
  });
124
70
  return {
125
71
  components: {
126
72
  root: 'div'
127
73
  },
74
+ contextType: 'root',
128
75
  selectionMode,
129
76
  open: true,
130
77
  appearance,
@@ -1 +1 @@
1
- {"version":3,"sources":["useRootTree.js"],"sourcesContent":["import { getNativeElementProps, useEventCallback, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createOpenItems } from '../utils/createOpenItems';\nimport { createCheckedItems } from '../utils/createCheckedItems';\nimport { treeDataTypes } from '../utils/tokens';\n/**\n * Create the state required to render the root level tree.\n *\n * @param props - props from this instance of tree\n * @param ref - reference to root HTMLElement of tree\n */ export function useRootTree(props, ref) {\n warnIfNoProperPropsRootTree(props);\n const { appearance = 'subtle', size = 'medium', selectionMode = 'none' } = props;\n const openItems = React.useMemo(()=>createOpenItems(props.openItems), [\n props.openItems\n ]);\n const checkedItems = React.useMemo(()=>createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]);\n const requestOpenChange = (data)=>{\n var _props_onOpenChange, _props;\n return (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, data.event, data);\n };\n const requestCheckedChange = (data)=>{\n var _props_onCheckedChange, _props;\n return (_props_onCheckedChange = (_props = props).onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(_props, data.event, data);\n };\n const requestNavigation = (data)=>{\n var _props_onNavigation, _props;\n (_props_onNavigation = (_props = props).onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(_props, data.event, data);\n switch(data.type){\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.Home:\n case treeDataTypes.End:\n // stop the default behavior of the event\n // which is to scroll the page\n data.event.preventDefault();\n }\n };\n const requestTreeResponse = useEventCallback((request)=>{\n switch(request.type){\n case treeDataTypes.Click:\n case treeDataTypes.ExpandIconClick:\n {\n return ReactDOM.unstable_batchedUpdates(()=>{\n requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !openItems.has(request.value),\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n requestNavigation({\n ...request,\n type: treeDataTypes.Click\n });\n });\n }\n case treeDataTypes.ArrowRight:\n {\n if (request.itemType === 'leaf') {\n return;\n }\n const open = openItems.has(request.value);\n if (!open) {\n return requestOpenChange({\n ...request,\n open: true,\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n }\n return requestNavigation(request);\n }\n case treeDataTypes.Enter:\n {\n const open = openItems.has(request.value);\n return requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !open,\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n }\n case treeDataTypes.ArrowLeft:\n {\n const open = openItems.has(request.value);\n if (open && request.itemType === 'branch') {\n return requestOpenChange({\n ...request,\n open: false,\n type: treeDataTypes.ArrowLeft,\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n }\n return requestNavigation({\n ...request,\n type: treeDataTypes.ArrowLeft\n });\n }\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n case treeDataTypes.TypeAhead:\n return requestNavigation({\n ...request,\n target: request.event.currentTarget\n });\n case treeDataTypes.Change:\n {\n return requestCheckedChange({\n ...request,\n selectionMode: selectionMode,\n checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()\n });\n }\n }\n });\n return {\n components: {\n root: 'div'\n },\n selectionMode,\n open: true,\n appearance,\n size,\n level: 1,\n openItems,\n checkedItems,\n requestTreeResponse,\n root: slot.always(getNativeElementProps('div', {\n ref,\n role: 'tree',\n 'aria-multiselectable': selectionMode === 'multiselect' ? true : undefined,\n ...props\n }), {\n elementType: 'div'\n })\n };\n}\nfunction warnIfNoProperPropsRootTree(props) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn(`@fluentui/react-tree [useRootTree]:\nTree must have either a \\`aria-label\\` or \\`aria-labelledby\\` property defined`);\n }\n }\n}\n"],"names":["useRootTree","props","ref","warnIfNoProperPropsRootTree","appearance","size","selectionMode","openItems","React","useMemo","createOpenItems","checkedItems","createCheckedItems","requestOpenChange","data","_props_onOpenChange","_props","onOpenChange","call","event","requestCheckedChange","_props_onCheckedChange","onCheckedChange","requestNavigation","_props_onNavigation","onNavigation","type","treeDataTypes","ArrowDown","ArrowUp","Home","End","preventDefault","requestTreeResponse","useEventCallback","request","Click","ExpandIconClick","ReactDOM","unstable_batchedUpdates","open","itemType","has","value","dangerouslyGetInternalSet_unstable","ArrowRight","Enter","ArrowLeft","TypeAhead","target","currentTarget","Change","dangerouslyGetInternalMap_unstable","components","root","level","slot","always","getNativeElementProps","role","undefined","elementType","process","env","NODE_ENV","console","warn"],"mappings":"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"}
1
+ {"version":3,"sources":["useRootTree.js"],"sourcesContent":["import { getNativeElementProps, useEventCallback, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createOpenItems } from '../utils/createOpenItems';\nimport { createCheckedItems } from '../utils/createCheckedItems';\nimport { treeDataTypes } from '../utils/tokens';\nimport { createNextOpenItems } from './useControllableOpenItems';\n/**\n * Create the state required to render the root level tree.\n *\n * @param props - props from this instance of tree\n * @param ref - reference to root HTMLElement of tree\n */ export function useRootTree(props, ref) {\n warnIfNoProperPropsRootTree(props);\n const { appearance = 'subtle', size = 'medium', selectionMode = 'none' } = props;\n const openItems = React.useMemo(()=>createOpenItems(props.openItems), [\n props.openItems\n ]);\n const checkedItems = React.useMemo(()=>createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]);\n const requestOpenChange = (data)=>{\n var _props_onOpenChange;\n const nextOpenItems = createNextOpenItems(data, openItems);\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, {\n ...data,\n openItems: nextOpenItems.dangerouslyGetInternalSet_unstable()\n });\n };\n const requestCheckedChange = (data)=>{\n var _props_onCheckedChange;\n return (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, data.event, data);\n };\n const requestNavigation = (data)=>{\n var _props_onNavigation;\n (_props_onNavigation = props.onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(props, data.event, data);\n switch(data.type){\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.Home:\n case treeDataTypes.End:\n // stop the default behavior of the event\n // which is to scroll the page\n data.event.preventDefault();\n }\n };\n const requestTreeResponse = useEventCallback((request)=>{\n switch(request.requestType){\n case 'navigate':\n return requestNavigation(request);\n case 'open':\n return requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !openItems.has(request.value),\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n case 'selection':\n return requestCheckedChange({\n ...request,\n selectionMode: selectionMode,\n checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()\n });\n }\n });\n return {\n components: {\n root: 'div'\n },\n contextType: 'root',\n selectionMode,\n open: true,\n appearance,\n size,\n level: 1,\n openItems,\n checkedItems,\n requestTreeResponse,\n root: slot.always(getNativeElementProps('div', {\n ref,\n role: 'tree',\n 'aria-multiselectable': selectionMode === 'multiselect' ? true : undefined,\n ...props\n }), {\n elementType: 'div'\n })\n };\n}\nfunction warnIfNoProperPropsRootTree(props) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn(`@fluentui/react-tree [useRootTree]:\nTree must have either a \\`aria-label\\` or \\`aria-labelledby\\` property defined`);\n }\n }\n}\n"],"names":["useRootTree","props","ref","warnIfNoProperPropsRootTree","appearance","size","selectionMode","openItems","React","useMemo","createOpenItems","checkedItems","createCheckedItems","requestOpenChange","data","_props_onOpenChange","nextOpenItems","createNextOpenItems","onOpenChange","call","event","dangerouslyGetInternalSet_unstable","requestCheckedChange","_props_onCheckedChange","onCheckedChange","requestNavigation","_props_onNavigation","onNavigation","type","treeDataTypes","ArrowDown","ArrowUp","Home","End","preventDefault","requestTreeResponse","useEventCallback","request","requestType","open","itemType","has","value","dangerouslyGetInternalMap_unstable","components","root","contextType","level","slot","always","getNativeElementProps","role","undefined","elementType","process","env","NODE_ENV","console","warn"],"mappings":"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"}
@@ -13,24 +13,15 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _index = require("../contexts/index");
14
14
  const _reactutilities = require("@fluentui/react-utilities");
15
15
  function useSubtree(props, ref) {
16
- const contextAppearance = (0, _index.useTreeContext_unstable)((ctx)=>ctx.appearance);
17
- const contextSize = (0, _index.useTreeContext_unstable)((ctx)=>ctx.size);
18
16
  const subtreeRef = (0, _index.useTreeItemContext_unstable)((ctx)=>ctx.subtreeRef);
19
- const { appearance = contextAppearance !== null && contextAppearance !== void 0 ? contextAppearance : 'subtle', size = contextSize !== null && contextSize !== void 0 ? contextSize : 'medium' } = props;
20
17
  const parentLevel = (0, _index.useTreeContext_unstable)((ctx)=>ctx.level);
21
- const selectionMode = (0, _index.useTreeContext_unstable)((ctx)=>ctx.selectionMode);
22
- const openItems = (0, _index.useTreeContext_unstable)((ctx)=>ctx.openItems);
23
- const checkedItems = (0, _index.useTreeContext_unstable)((ctx)=>ctx.checkedItems);
24
- const requestTreeResponse = (0, _index.useTreeContext_unstable)((ctx)=>ctx.requestTreeResponse);
25
18
  const open = (0, _index.useTreeItemContext_unstable)((ctx)=>ctx.open);
26
19
  return {
20
+ contextType: 'subtree',
27
21
  open,
28
22
  components: {
29
23
  root: 'div'
30
24
  },
31
- appearance,
32
- size,
33
- selectionMode,
34
25
  level: parentLevel + 1,
35
26
  root: _reactutilities.slot.always((0, _reactutilities.getNativeElementProps)('div', {
36
27
  ref: (0, _reactutilities.useMergedRefs)(ref, subtreeRef),
@@ -38,9 +29,6 @@ function useSubtree(props, ref) {
38
29
  ...props
39
30
  }), {
40
31
  elementType: 'div'
41
- }),
42
- openItems,
43
- checkedItems,
44
- requestTreeResponse
32
+ })
45
33
  };
46
34
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["useSubtree.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeContext_unstable, useTreeItemContext_unstable } from '../contexts/index';\nimport { getNativeElementProps, useMergedRefs, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render a sub-level tree.\n *\n * @param props - props from this instance of tree\n * @param ref - reference to root HTMLElement of tree\n */ export function useSubtree(props, ref) {\n const contextAppearance = useTreeContext_unstable((ctx)=>ctx.appearance);\n const contextSize = useTreeContext_unstable((ctx)=>ctx.size);\n const subtreeRef = useTreeItemContext_unstable((ctx)=>ctx.subtreeRef);\n const { appearance = contextAppearance !== null && contextAppearance !== void 0 ? contextAppearance : 'subtle', size = contextSize !== null && contextSize !== void 0 ? contextSize : 'medium' } = props;\n const parentLevel = useTreeContext_unstable((ctx)=>ctx.level);\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n const openItems = useTreeContext_unstable((ctx)=>ctx.openItems);\n const checkedItems = useTreeContext_unstable((ctx)=>ctx.checkedItems);\n const requestTreeResponse = useTreeContext_unstable((ctx)=>ctx.requestTreeResponse);\n const open = useTreeItemContext_unstable((ctx)=>ctx.open);\n return {\n open,\n components: {\n root: 'div'\n },\n appearance,\n size,\n selectionMode,\n level: parentLevel + 1,\n root: slot.always(getNativeElementProps('div', {\n ref: useMergedRefs(ref, subtreeRef),\n role: 'group',\n ...props\n }), {\n elementType: 'div'\n }),\n openItems,\n checkedItems,\n requestTreeResponse\n };\n}\n"],"names":["useSubtree","props","ref","contextAppearance","useTreeContext_unstable","ctx","appearance","contextSize","size","subtreeRef","useTreeItemContext_unstable","parentLevel","level","selectionMode","openItems","checkedItems","requestTreeResponse","open","components","root","slot","always","getNativeElementProps","useMergedRefs","role","elementType"],"mappings":";;;;+BAQoBA;;;eAAAA;;;;iEARG;uBAC8C;gCACV;AAMhD,SAASA,WAAWC,KAAK,EAAEC,GAAG;IACrC,MAAMC,oBAAoBC,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIC,UAAU;IACvE,MAAMC,cAAcH,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIG,IAAI;IAC3D,MAAMC,aAAaC,IAAAA,kCAA2B,EAAC,CAACL,MAAMA,IAAII,UAAU;IACpE,MAAM,EAAEH,aAAaH,sBAAsB,QAAQA,sBAAsB,KAAK,IAAIA,oBAAoB,QAAQ,EAAEK,OAAOD,gBAAgB,QAAQA,gBAAgB,KAAK,IAAIA,cAAc,QAAQ,EAAE,GAAGN;IACnM,MAAMU,cAAcP,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIO,KAAK;IAC5D,MAAMC,gBAAgBT,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIQ,aAAa;IACtE,MAAMC,YAAYV,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIS,SAAS;IAC9D,MAAMC,eAAeX,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIU,YAAY;IACpE,MAAMC,sBAAsBZ,IAAAA,8BAAuB,EAAC,CAACC,MAAMA,IAAIW,mBAAmB;IAClF,MAAMC,OAAOP,IAAAA,kCAA2B,EAAC,CAACL,MAAMA,IAAIY,IAAI;IACxD,OAAO;QACHA;QACAC,YAAY;YACRC,MAAM;QACV;QACAb;QACAE;QACAK;QACAD,OAAOD,cAAc;QACrBQ,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3CpB,KAAKqB,IAAAA,6BAAa,EAACrB,KAAKO;YACxBe,MAAM;YACN,GAAGvB,KAAK;QACZ,IAAI;YACAwB,aAAa;QACjB;QACAX;QACAC;QACAC;IACJ;AACJ"}
1
+ {"version":3,"sources":["useSubtree.js"],"sourcesContent":["import * as React from 'react';\nimport { useTreeContext_unstable, useTreeItemContext_unstable } from '../contexts/index';\nimport { getNativeElementProps, useMergedRefs, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render a sub-level tree.\n *\n * @param props - props from this instance of tree\n * @param ref - reference to root HTMLElement of tree\n */ export function useSubtree(props, ref) {\n const subtreeRef = useTreeItemContext_unstable((ctx)=>ctx.subtreeRef);\n const parentLevel = useTreeContext_unstable((ctx)=>ctx.level);\n const open = useTreeItemContext_unstable((ctx)=>ctx.open);\n return {\n contextType: 'subtree',\n open,\n components: {\n root: 'div'\n },\n level: parentLevel + 1,\n root: slot.always(getNativeElementProps('div', {\n ref: useMergedRefs(ref, subtreeRef),\n role: 'group',\n ...props\n }), {\n elementType: 'div'\n })\n };\n}\n"],"names":["useSubtree","props","ref","subtreeRef","useTreeItemContext_unstable","ctx","parentLevel","useTreeContext_unstable","level","open","contextType","components","root","slot","always","getNativeElementProps","useMergedRefs","role","elementType"],"mappings":";;;;+BAQoBA;;;eAAAA;;;;iEARG;uBAC8C;gCACV;AAMhD,SAASA,WAAWC,KAAK,EAAEC,GAAG;IACrC,MAAMC,aAAaC,IAAAA,kCAA2B,EAAC,CAACC,MAAMA,IAAIF,UAAU;IACpE,MAAMG,cAAcC,IAAAA,8BAAuB,EAAC,CAACF,MAAMA,IAAIG,KAAK;IAC5D,MAAMC,OAAOL,IAAAA,kCAA2B,EAAC,CAACC,MAAMA,IAAII,IAAI;IACxD,OAAO;QACHC,aAAa;QACbD;QACAE,YAAY;YACRC,MAAM;QACV;QACAJ,OAAOF,cAAc;QACrBM,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3Cb,KAAKc,IAAAA,6BAAa,EAACd,KAAKC;YACxBc,MAAM;YACN,GAAGhB,KAAK;QACZ,IAAI;YACAiB,aAAa;QACjB;IACJ;AACJ"}
@@ -45,18 +45,21 @@ _export(exports, {
45
45
  renderFlatTree_unstable: function() {
46
46
  return _FlatTree.renderFlatTree_unstable;
47
47
  },
48
+ TreeProvider: function() {
49
+ return _TreeProvider.TreeProvider;
50
+ },
48
51
  useTreeContext_unstable: function() {
49
52
  return _contexts.useTreeContext_unstable;
50
53
  },
51
54
  useTreeItemContext_unstable: function() {
52
55
  return _contexts.useTreeItemContext_unstable;
53
56
  },
57
+ useSubtreeContext_unstable: function() {
58
+ return _contexts.useSubtreeContext_unstable;
59
+ },
54
60
  TreeItemProvider: function() {
55
61
  return _contexts.TreeItemProvider;
56
62
  },
57
- TreeProvider: function() {
58
- return _contexts.TreeProvider;
59
- },
60
63
  treeItemLevelToken: function() {
61
64
  return _tokens.treeItemLevelToken;
62
65
  },
@@ -120,6 +123,7 @@ _export(exports, {
120
123
  });
121
124
  const _Tree = require("./Tree");
122
125
  const _FlatTree = require("./FlatTree");
126
+ const _TreeProvider = require("./components/TreeProvider");
123
127
  const _contexts = require("./contexts");
124
128
  const _tokens = require("./utils/tokens");
125
129
  const _useHeadlessFlatTree = require("./components/FlatTree/useHeadlessFlatTree");
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"sourcesContent":["export { Tree, treeClassNames, useTree_unstable, useTreeStyles_unstable, useTreeContextValues_unstable, renderTree_unstable } from './Tree';\nexport { FlatTree, flatTreeClassNames, useFlatTree_unstable, useFlatTreeStyles_unstable, useFlatTreeContextValues_unstable, renderFlatTree_unstable } from './FlatTree';\nexport { useTreeContext_unstable, useTreeItemContext_unstable, TreeItemProvider, TreeProvider } from './contexts';\nexport { treeItemLevelToken } from './utils/tokens';\nexport { useHeadlessFlatTree_unstable } from './components/FlatTree/useHeadlessFlatTree';\nexport { TreeItem, treeItemClassNames, renderTreeItem_unstable, useTreeItemStyles_unstable, useTreeItemContextValues_unstable, useTreeItem_unstable } from './TreeItem';\nexport { FlatTreeItem } from './FlatTreeItem';\nexport { TreeItemLayout, treeItemLayoutClassNames, renderTreeItemLayout_unstable, useTreeItemLayoutStyles_unstable, useTreeItemLayout_unstable } from './TreeItemLayout';\nexport { TreeItemPersonaLayout, treeItemPersonaLayoutClassNames, renderTreeItemPersonaLayout_unstable, useTreeItemPersonaLayoutStyles_unstable, useTreeItemPersonaLayout_unstable } from './TreeItemPersonaLayout';\nexport { flattenTree_unstable } from './utils/flattenTree';\n"],"names":["Tree","treeClassNames","useTree_unstable","useTreeStyles_unstable","useTreeContextValues_unstable","renderTree_unstable","FlatTree","flatTreeClassNames","useFlatTree_unstable","useFlatTreeStyles_unstable","useFlatTreeContextValues_unstable","renderFlatTree_unstable","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","TreeProvider","treeItemLevelToken","useHeadlessFlatTree_unstable","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItemContextValues_unstable","useTreeItem_unstable","FlatTreeItem","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","flattenTree_unstable"],"mappings":";;;;;;;;;;;IAASA,IAAI;eAAJA,UAAI;;IAAEC,cAAc;eAAdA,oBAAc;;IAAEC,gBAAgB;eAAhBA,sBAAgB;;IAAEC,sBAAsB;eAAtBA,4BAAsB;;IAAEC,6BAA6B;eAA7BA,mCAA6B;;IAAEC,mBAAmB;eAAnBA,yBAAmB;;IAClHC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAC1IC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,2BAA2B;eAA3BA,qCAA2B;;IAAEC,gBAAgB;eAAhBA,0BAAgB;;IAAEC,YAAY;eAAZA,sBAAY;;IACpFC,kBAAkB;eAAlBA,0BAAkB;;IAClBC,4BAA4B;eAA5BA,iDAA4B;;IAC5BC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAC1IC,YAAY;eAAZA,0BAAY;;IACZC,cAAc;eAAdA,8BAAc;;IAAEC,wBAAwB;eAAxBA,wCAAwB;;IAAEC,6BAA6B;eAA7BA,6CAA6B;;IAAEC,gCAAgC;eAAhCA,gDAAgC;;IAAEC,0BAA0B;eAA1BA,0CAA0B;;IACrIC,qBAAqB;eAArBA,4CAAqB;;IAAEC,+BAA+B;eAA/BA,sDAA+B;;IAAEC,oCAAoC;eAApCA,2DAAoC;;IAAEC,uCAAuC;eAAvCA,8DAAuC;;IAAEC,iCAAiC;eAAjCA,wDAAiC;;IACxKC,oBAAoB;eAApBA,iCAAoB;;;sBATsG;0BACwB;0BACtD;wBAClE;qCACU;0BAC8G;8BAC9H;gCACyH;uCACmC;6BACpJ"}
1
+ {"version":3,"sources":["index.js"],"sourcesContent":["export { Tree, treeClassNames, useTree_unstable, useTreeStyles_unstable, useTreeContextValues_unstable, renderTree_unstable } from './Tree';\nexport { FlatTree, flatTreeClassNames, useFlatTree_unstable, useFlatTreeStyles_unstable, useFlatTreeContextValues_unstable, renderFlatTree_unstable } from './FlatTree';\nexport { TreeProvider } from './components/TreeProvider';\nexport { useTreeContext_unstable, useTreeItemContext_unstable, useSubtreeContext_unstable, TreeItemProvider } from './contexts';\nexport { treeItemLevelToken } from './utils/tokens';\nexport { useHeadlessFlatTree_unstable } from './components/FlatTree/useHeadlessFlatTree';\nexport { TreeItem, treeItemClassNames, renderTreeItem_unstable, useTreeItemStyles_unstable, useTreeItemContextValues_unstable, useTreeItem_unstable } from './TreeItem';\nexport { FlatTreeItem } from './FlatTreeItem';\nexport { TreeItemLayout, treeItemLayoutClassNames, renderTreeItemLayout_unstable, useTreeItemLayoutStyles_unstable, useTreeItemLayout_unstable } from './TreeItemLayout';\nexport { TreeItemPersonaLayout, treeItemPersonaLayoutClassNames, renderTreeItemPersonaLayout_unstable, useTreeItemPersonaLayoutStyles_unstable, useTreeItemPersonaLayout_unstable } from './TreeItemPersonaLayout';\nexport { flattenTree_unstable } from './utils/flattenTree';\n"],"names":["Tree","treeClassNames","useTree_unstable","useTreeStyles_unstable","useTreeContextValues_unstable","renderTree_unstable","FlatTree","flatTreeClassNames","useFlatTree_unstable","useFlatTreeStyles_unstable","useFlatTreeContextValues_unstable","renderFlatTree_unstable","TreeProvider","useTreeContext_unstable","useTreeItemContext_unstable","useSubtreeContext_unstable","TreeItemProvider","treeItemLevelToken","useHeadlessFlatTree_unstable","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItemContextValues_unstable","useTreeItem_unstable","FlatTreeItem","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","flattenTree_unstable"],"mappings":";;;;;;;;;;;IAASA,IAAI;eAAJA,UAAI;;IAAEC,cAAc;eAAdA,oBAAc;;IAAEC,gBAAgB;eAAhBA,sBAAgB;;IAAEC,sBAAsB;eAAtBA,4BAAsB;;IAAEC,6BAA6B;eAA7BA,mCAA6B;;IAAEC,mBAAmB;eAAnBA,yBAAmB;;IAClHC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAC1IC,YAAY;eAAZA,0BAAY;;IACZC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,2BAA2B;eAA3BA,qCAA2B;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,gBAAgB;eAAhBA,0BAAgB;;IAClGC,kBAAkB;eAAlBA,0BAAkB;;IAClBC,4BAA4B;eAA5BA,iDAA4B;;IAC5BC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAC1IC,YAAY;eAAZA,0BAAY;;IACZC,cAAc;eAAdA,8BAAc;;IAAEC,wBAAwB;eAAxBA,wCAAwB;;IAAEC,6BAA6B;eAA7BA,6CAA6B;;IAAEC,gCAAgC;eAAhCA,gDAAgC;;IAAEC,0BAA0B;eAA1BA,0CAA0B;;IACrIC,qBAAqB;eAArBA,4CAAqB;;IAAEC,+BAA+B;eAA/BA,sDAA+B;;IAAEC,oCAAoC;eAApCA,2DAAoC;;IAAEC,uCAAuC;eAAvCA,8DAAuC;;IAAEC,iCAAiC;eAAjCA,wDAAiC;;IACxKC,oBAAoB;eAApBA,iCAAoB;;;sBAVsG;0BACwB;8BAC9H;0BACsF;wBAChF;qCACU;0BAC8G;8BAC9H;gCACyH;uCACmC;6BACpJ"}