{"version":3,"file":"Overlay.fb9ffedc.js","sources":["../../../node_modules/@fluentui/dom-utilities/lib/getActiveElement.js","../../../node_modules/@fluentui/dom-utilities/lib/getEventTarget.js","../../../node_modules/@fluentui/react-hooks/lib/useEventCallback.js","../../../node_modules/@fluentui/react-hooks/lib/useUnmount.js","../../../node_modules/@fluentui/style-utilities/lib/cdn.js","../../../node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","../../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","../../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","../../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.js"],"sourcesContent":["export var getActiveElement = function (doc) {\n var ae = doc.activeElement;\n while (ae === null || ae === void 0 ? void 0 : ae.shadowRoot) {\n ae = ae.shadowRoot.activeElement;\n }\n return ae;\n};\n//# sourceMappingURL=getActiveElement.js.map","export var getEventTarget = function (event) {\n var target = event.target;\n if (target && target.shadowRoot) {\n target = event.composedPath()[0];\n }\n return target;\n};\n//# sourceMappingURL=getEventTarget.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n * every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n * handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n var callbackRef = React.useRef(function () {\n throw new Error('Cannot call an event handler while rendering');\n });\n useIsomorphicLayoutEffect(function () {\n callbackRef.current = fn;\n }, [fn]);\n // useConst rather than useCallback to ensure the reference is always stable\n // (useCallback's deps list is an optimization, not a guarantee)\n return useConst(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback = callbackRef.current;\n return callback.apply(void 0, args);\n }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n var unmountRef = React.useRef(callback);\n unmountRef.current = callback;\n React.useEffect(function () { return function () {\n var _a;\n (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","export var FLUENT_CDN_BASE_URL = 'https://res.cdn.office.net/files/fabric-cdn-prod_20241209.001';\n//# sourceMappingURL=cdn.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getActiveElement, getEventTarget, elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, useHasMergeStylesShadowRootContext, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nimport { useWindowEx } from '../../utilities/dom';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n disabled: false,\n disableFirstFocus: false,\n forceFocusInsideTrap: true,\n isClickableOutsideFocusTrap: false,\n // Hardcoding completely uncontrolled flag for proper interop with FluentUI V9.\n 'data-tabster': '{\"uncontrolled\": {\"completely\": true}}',\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n React.useImperativeHandle(componentRef, function () { return ({\n get previouslyFocusedElement() {\n return previouslyFocusedElement;\n },\n focus: focusFTZ,\n }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a;\n var root = React.useRef(null);\n var firstBumper = React.useRef(null);\n var lastBumper = React.useRef(null);\n var mergedRootRef = useMergedRefs(root, ref);\n var doc = useDocument();\n var win = useWindowEx();\n var inShadow = useHasMergeStylesShadowRootContext();\n var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var internalState = useConst({\n hasFocus: false,\n focusStackId: useId('ftz-', props.id),\n });\n var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n // eslint-disable-next-line @typescript-eslint/no-deprecated\n firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n // eslint-disable-next-line @typescript-eslint/no-deprecated\n _b = props.disableRestoreFocus, \n // eslint-disable-next-line @typescript-eslint/no-deprecated\n disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n },\n tabIndex: disabled ? -1 : 0, // make bumpers tabbable only when enabled\n 'data-is-visible': true,\n 'data-is-focus-trap-zone-bumper': true,\n };\n var focusElementAsync = React.useCallback(function (element) {\n if (element !== firstBumper.current && element !== lastBumper.current) {\n focusAsync(element);\n }\n }, []);\n /**\n * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n * useEventCallback always returns the same callback reference but updates the implementation\n * every render to avoid stale captured values.\n */\n var focusFTZ = useEventCallback(function () {\n if (!root.current) {\n return; // not done mounting\n }\n var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n if (focusPreviouslyFocusedInnerElement &&\n previouslyFocusedElementInTrapZone &&\n elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n focusElementAsync(previouslyFocusedElementInTrapZone);\n return;\n }\n var firstFocusableChild = null;\n if (typeof firstFocusableTarget === 'string') {\n firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n firstFocusableChild = firstFocusableTarget(root.current);\n }\n else if (firstFocusableSelector) {\n var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n firstFocusableChild = root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!firstFocusableChild) {\n firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true, undefined, undefined, undefined, inShadow);\n }\n if (firstFocusableChild) {\n focusElementAsync(firstFocusableChild);\n }\n });\n /** Used in root div focus/blur handlers */\n var focusBumper = function (isFirstBumper) {\n if (disabled || !root.current) {\n return;\n }\n var nextFocusable = isFirstBumper === internalState.hasFocus\n ? getLastTabbable(root.current, lastBumper.current, true, false, inShadow)\n : getFirstTabbable(root.current, firstBumper.current, true, false, inShadow);\n if (nextFocusable) {\n if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n // This can happen when FTZ contains no tabbable elements.\n // focusFTZ() will take care of finding a focusable element in FTZ.\n focusFTZ();\n }\n else {\n nextFocusable.focus();\n }\n }\n };\n /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n var onRootBlurCapture = function (ev) {\n var _a;\n (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the root\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = getActiveElement(doc);\n }\n if (!elementContains(root.current, relatedTarget)) {\n internalState.hasFocus = false;\n }\n };\n /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n var onRootFocusCapture = function (ev) {\n var _a;\n (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n if (ev.target === firstBumper.current) {\n focusBumper(true);\n }\n else if (ev.target === lastBumper.current) {\n focusBumper(false);\n }\n internalState.hasFocus = true;\n if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n internalState.previouslyFocusedElementInTrapZone = getEventTarget(ev.nativeEvent);\n }\n };\n /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n if (!doc) {\n return;\n }\n // Do not use getActiveElement() here.\n // When the FTZ is in shadow DOM focus returns to the\n // shadow host rather than body so we need to be\n // able to inspect that\n var activeElement = doc.activeElement;\n if (!disableRestoreFocus &&\n typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n (elementContains(root.current, activeElement) || activeElement === doc.body || activeElement.shadowRoot)) {\n focusElementAsync(elementToFocusOnDismiss);\n }\n });\n /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n // be sure to use the latest values here\n if (disabled) {\n return;\n }\n if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n var targetElement = getEventTarget(ev);\n if (targetElement && !elementContains(root.current, targetElement)) {\n if (doc && getActiveElement(doc) === doc.body) {\n setTimeout(function () {\n if (doc && getActiveElement(doc) === doc.body) {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n }, 0);\n }\n else {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n });\n // Update window event handlers when relevant props change\n React.useEffect(function () {\n var disposables = [];\n if (forceFocusInsideTrap) {\n disposables.push(on(win, 'focus', forceFocusOrClickInTrap, true));\n }\n if (!isClickableOutsideFocusTrap) {\n disposables.push(on(win, 'click', forceFocusOrClickInTrap, true));\n }\n return function () {\n disposables.forEach(function (dispose) { return dispose(); });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, isClickableOutsideFocusTrap, win]);\n // On prop change or first render, focus the FTZ and update focusStack if appropriate\n React.useEffect(function () {\n // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n // is false, though it's debatable whether it should do this)\n if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n return;\n }\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n FocusTrapZone.focusStack.push(internalState.focusStackId);\n var elementToFocusOnDismiss = props.elementToFocusOnDismiss || getActiveElement(doc);\n if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n focusFTZ();\n }\n // To match existing behavior, always return focus on cleanup (even if we didn't handle\n // initial focus), but it's debatable whether that's correct\n return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, disabled]);\n // Handle modalization separately from first focus\n React.useEffect(function () {\n if (!disabled && enableAriaHiddenSiblings) {\n var unmodalize = modalize(root.current);\n return unmodalize;\n }\n }, [disabled, enableAriaHiddenSiblings, root]);\n // Cleanup lifecyle method for internalState.\n useUnmount(function () {\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete internalState.previouslyFocusedElementInTrapZone;\n });\n useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map"],"names":["getActiveElement","doc","ae","getEventTarget","event","target","useEventCallback","fn","callbackRef","React.useRef","useIsomorphicLayoutEffect","useConst","args","_i","callback","useUnmount","unmountRef","React.useEffect","_a","FLUENT_CDN_BASE_URL","COMPONENT_NAME","DEFAULT_PROPS","useComponentRef","componentRef","previouslyFocusedElement","focusFTZ","React.useImperativeHandle","FocusTrapZone","React.forwardRef","propsWithoutDefaults","ref","root","firstBumper","lastBumper","mergedRootRef","useMergedRefs","useDocument","win","useWindowEx","inShadow","useHasMergeStylesShadowRootContext","isFirstRender","usePrevious","props","getPropsWithDefaults","internalState","useId","children","disabled","disableFirstFocus","forceFocusInsideTrap","focusPreviouslyFocusedInnerElement","firstFocusableSelector","firstFocusableTarget","_b","disableRestoreFocus","isClickableOutsideFocusTrap","enableAriaHiddenSiblings","bumperProps","focusElementAsync","React.useCallback","element","focusAsync","previouslyFocusedElementInTrapZone","elementContains","firstFocusableChild","focusSelector","getNextElement","focusBumper","isFirstBumper","nextFocusable","getLastTabbable","getFirstTabbable","onRootBlurCapture","ev","relatedTarget","onRootFocusCapture","returnFocusToInitiator","elementToFocusOnDismiss","value","activeElement","forceFocusOrClickInTrap","targetElement","disposables","on","dispose","unmodalize","modalize","React.createElement","__assign","getNativeProps","divProperties","getClassNames","classNamesFunction","OverlayBase","_super","__extends","_this","initializeComponentRef","allowTouchBodyScroll","disableBodyScroll","enableBodyScroll","isDark","className","theme","styles","divProps","classNames","React.Component","GlobalClassNames","getStyles","isNone","palette","getGlobalClassNames","HighContrastSelector","Overlay","styled"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}