{"version":3,"file":"static/js/5186.90b776f3.chunk.js","mappings":"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","sources":["../../../../../../../../../tmp/mct/frontend/node_modules/@cmsgov/design-system/dist/react-components/esm/Icons/CloseIconThin.js","../../../../../../../../../tmp/mct/frontend/node_modules/dom-helpers/esm/removeClass.js","../../../../../../../../../tmp/mct/frontend/node_modules/react-transition-group/esm/config.js","../../../../../../../../../tmp/mct/frontend/node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../../../../../../../tmp/mct/frontend/node_modules/react-transition-group/esm/utils/reflow.js","../../../../../../../../../tmp/mct/frontend/node_modules/react-transition-group/esm/Transition.js","../../../../../../../../../tmp/mct/frontend/node_modules/react-transition-group/esm/CSSTransition.js","../../../../../../../../../tmp/mct/frontend/node_modules/dom-helpers/esm/addClass.js","../../../../../../../../../tmp/mct/frontend/node_modules/dom-helpers/esm/hasClass.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/math.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/enums.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/debounce.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/createPopper.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/within.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/popper.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../../../../../../../tmp/mct/frontend/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../../../../../../../tmp/mct/frontend/node_modules/@cmsgov/design-system/dist/react-components/esm/Tooltip/Tooltip.js","../../../../../../../../../tmp/mct/frontend/node_modules/@cmsgov/design-system/node_modules/focus-trap-react/dist/focus-trap-react.js","../../../../../../../../../tmp/mct/frontend/node_modules/@cmsgov/design-system/node_modules/focus-trap/index.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/a-callable.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/an-object.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/array-includes.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/classof-raw.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/copy-constructor-properties.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/create-non-enumerable-property.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/create-property-descriptor.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/descriptors.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/document-create-element.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/engine-user-agent.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/engine-v8-version.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/enum-bug-keys.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/export.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/fails.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/function-call.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/function-name.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/function-uncurry-this.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/get-built-in.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/get-method.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/global.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/has-own-property.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/hidden-keys.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/ie8-dom-define.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/indexed-object.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/inspect-source.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/internal-state.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/is-callable.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/is-forced.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/is-object.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/is-pure.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/is-symbol.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/length-of-array-like.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/native-symbol.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/native-weak-map.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/new-promise-capability.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-define-property.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-get-own-property-names.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-get-own-property-symbols.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-is-prototype-of.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-keys-internal.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/object-property-is-enumerable.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/ordinary-to-primitive.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/own-keys.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/perform.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/redefine.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/require-object-coercible.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/set-global.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/shared-key.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/shared-store.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/shared.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-absolute-index.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-indexed-object.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-integer-or-infinity.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-length.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-object.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-primitive.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/to-property-key.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/try-to-string.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/uid.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/use-symbol-as-uid.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/v8-prototype-define-bug.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/internals/well-known-symbol.js","../../../../../../../../../tmp/mct/frontend/node_modules/core-js/modules/esnext.promise.try.js","../../../../../../../../../tmp/mct/frontend/node_modules/tabbable/src/index.js"],"sourcesContent":["function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport { t } from '../i18n';\nimport { SvgIcon } from './SvgIcon';\nvar defaultProps = {\n className: '',\n viewBox: '-2 -2 18 18'\n};\nexport function CloseIconThin(props) {\n var iconCssClasses = \"ds-c-icon--close ds-c-icon--close-thin \".concat(props.className || '');\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n title: t('icons.close')\n }, defaultProps, props, {\n className: iconCssClasses\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeWidth: \"2\",\n d: \"M0 13.0332964L13.0332964 0M13.0332964 13.0332964L0 0\"\n }));\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"activeClassName\", \"ariaLabel\", \"children\", \"className\", \"component\", \"dialog\", \"id\", \"offset\", \"onClose\", \"onOpen\", \"inversed\", \"interactiveBorder\", \"placement\", \"maxWidth\", \"title\", \"transitionDuration\", \"zIndex\", \"showCloseButton\", \"closeButtonLabel\", \"contentHeading\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React from 'react';\n// Polyfills required for IE11 compatibility\n// Features used by app or its dependencies (i.e. @popperjs/core in Tooltip)\nimport 'core-js/stable/object/assign';\nimport 'core-js/stable/array/find';\nimport 'core-js/features/promise';\n// TODO: Update react-transition-group once we update react peer dep\nimport CSSTransition from 'react-transition-group/CSSTransition';\nimport FocusTrap from 'focus-trap-react';\nimport { useState, useRef, useEffect, useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { createPopper } from '@popperjs/core';\nimport useId from '../utilities/useId';\nimport { Button } from '../Button';\nimport { CloseIconThin } from '../Icons';\nimport usePrevious from '../utilities/usePrevious';\n/**\n * Tooltips provide additional information upon hover, focus or click.\n * For information about how and when to use this component,\n * [refer to its full documentation page](https://design.cms.gov/components/tooltip/).\n *\n * When using the `<TooltipIcon>` as the only child of `<Tooltip>`, be sure to\n * provide an `aria-label` on the `<Tooltip>` to ensure an accessible name for\n * the trigger.\n */\nexport var Tooltip = function Tooltip(props) {\n var popper = useRef(null);\n var contentId = useId('tooltip-trigger--', props.id);\n var triggerElement = useRef(null);\n var tooltipElement = useRef(null);\n var setTriggerElement = function setTriggerElement(elem) {\n triggerElement.current = elem;\n };\n var setTooltipElement = function setTooltipElement(elem) {\n tooltipElement.current = elem;\n };\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n active = _useState2[0],\n setActive = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isHover = _useState4[0],\n setIsHover = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n isMobile = _useState6[0],\n setIsMobile = _useState6[1];\n var prevActiveStateVar = usePrevious(active);\n var handleEscapeKey = function handleEscapeKey(event) {\n var ESCAPE_KEY = 27;\n if (active && event.keyCode === ESCAPE_KEY) {\n setActive(false);\n }\n };\n var handleClickOutside = function handleClickOutside(event) {\n if (active && (props.dialog || isMobile)) {\n var _triggerElement$curre, _tooltipElement$curre;\n var clickedTrigger = (_triggerElement$curre = triggerElement.current) === null || _triggerElement$curre === void 0 ? void 0 : _triggerElement$curre.contains(event.target);\n var clickedTooltip = (_tooltipElement$curre = tooltipElement.current) === null || _tooltipElement$curre === void 0 ? void 0 : _tooltipElement$curre.contains(event.target);\n if (!clickedTooltip && !clickedTrigger) {\n setActive(false);\n }\n }\n };\n var handleCloseButtonClick = function handleCloseButtonClick() {\n if (active && (props.dialog || isMobile)) {\n setActive(false);\n }\n };\n var handleBlur = function handleBlur(event) {\n setTimeout(function () {\n if (!isHover && event.currentTarget !== event.target) setActive(false);\n }, 10);\n };\n var handleTouch = function handleTouch() {\n // On mobile, touch -> mouseenter -> click events can all be fired simultaneously\n // `isMobile` flag is used inside onClick and onMouseEnter handlers, so touch events can be used in isolation on mobile\n // https://stackoverflow.com/a/65055198\n setIsMobile(true);\n setActive(!active);\n };\n useEffect(function () {\n if (!triggerElement.current || !tooltipElement.current) return;\n popper.current = createPopper(triggerElement.current, tooltipElement.current, {\n placement: props.placement,\n modifiers: [{\n name: 'offset',\n options: {\n offset: props.offset\n }\n }]\n });\n return function () {\n if (popper.current) popper.current.destroy();\n };\n }, []);\n useEffect(function () {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscapeKey);\n return function () {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscapeKey);\n };\n }, [handleClickOutside, handleEscapeKey]);\n useEffect(function () {\n if (active) {\n props.onOpen && props.onOpen();\n } else {\n props.onClose && props.onClose();\n\n // if tooltip goes from active to inactive and is the dialog version, focus the trigger\n if (prevActiveStateVar && (props.dialog || isMobile) && props.showCloseButton) {\n if (triggerElement && triggerElement.current) {\n triggerElement.current.focus();\n }\n }\n }\n }, [active]);\n useLayoutEffect(function () {\n if (popper.current) {\n popper.current.setOptions(props);\n popper.current.forceUpdate();\n }\n });\n var renderTrigger = function renderTrigger(props) {\n var _classNames;\n var activeClassName = props.activeClassName,\n ariaLabel = props.ariaLabel,\n children = props.children,\n className = props.className,\n component = props.component,\n dialog = props.dialog,\n id = props.id,\n offset = props.offset,\n onClose = props.onClose,\n onOpen = props.onOpen,\n inversed = props.inversed,\n interactiveBorder = props.interactiveBorder,\n placement = props.placement,\n maxWidth = props.maxWidth,\n title = props.title,\n transitionDuration = props.transitionDuration,\n zIndex = props.zIndex,\n showCloseButton = props.showCloseButton,\n closeButtonLabel = props.closeButtonLabel,\n contentHeading = props.contentHeading,\n others = _objectWithoutProperties(props, _excluded);\n var TriggerComponent = component;\n var triggerClasses = classNames('ds-c-tooltip__trigger', className, (_classNames = {}, _defineProperty(_classNames, activeClassName, activeClassName && active), _defineProperty(_classNames, 'ds-c-tooltip__trigger--inverse', inversed), _classNames));\n var linkTriggerOverrides = {\n tabIndex: TriggerComponent === 'a' ? 0 : undefined\n };\n var eventHandlers = dialog ? {\n onTouchStart: function onTouchStart() {\n return handleTouch();\n },\n onClick: function onClick() {\n if (!isMobile) {\n setActive(!active);\n }\n }\n } : {\n onTouchStart: function onTouchStart() {\n return handleTouch();\n },\n onClick: function onClick() {\n if (!isMobile) {\n setActive(!active);\n }\n },\n onFocus: function onFocus() {\n return setActive(true);\n },\n onBlur: function onBlur(event) {\n return handleBlur(event);\n }\n };\n return /*#__PURE__*/React.createElement(TriggerComponent, _extends({\n type: TriggerComponent === 'button' ? 'button' : undefined,\n \"aria-label\": ariaLabel || undefined,\n \"aria-describedby\": dialog ? undefined : contentId,\n className: triggerClasses,\n ref: setTriggerElement\n }, others, linkTriggerOverrides, eventHandlers), children);\n };\n var renderContent = function renderContent(props) {\n var closeButtonLabel = props.closeButtonLabel,\n dialog = props.dialog,\n contentHeading = props.contentHeading,\n inversed = props.inversed,\n interactiveBorder = props.interactiveBorder,\n placement = props.placement,\n maxWidth = props.maxWidth,\n showCloseButton = props.showCloseButton,\n title = props.title,\n transitionDuration = props.transitionDuration,\n zIndex = props.zIndex;\n var tooltipStyle = {\n maxWidth: maxWidth,\n zIndex: zIndex\n };\n var interactiveBorderStyle = {\n left: \"-\".concat(interactiveBorder, \"px\"),\n top: \"-\".concat(interactiveBorder, \"px\"),\n border: \"\".concat(interactiveBorder, \"px solid transparent\"),\n zIndex: -999 // ensures interactive border doesnt cover tooltip content\n };\n\n var eventHandlers = dialog ? {} : {\n onBlur: function onBlur(event) {\n return handleBlur(event);\n }\n };\n var tooltipContent = /*#__PURE__*/React.createElement(\"div\", _extends({\n id: contentId,\n tabIndex: dialog ? -1 : null,\n ref: setTooltipElement,\n className: classNames('ds-c-tooltip', {\n 'ds-c-tooltip--inverse': inversed\n }),\n style: tooltipStyle,\n \"data-placement\": placement,\n \"aria-hidden\": !active,\n role: dialog ? 'dialog' : 'tooltip'\n }, eventHandlers), /*#__PURE__*/React.createElement(\"span\", {\n className: \"ds-c-tooltip__arrow\",\n \"data-popper-arrow\": true\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"ds-c-tooltip__content\"\n }, contentHeading || showCloseButton ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames('ds-c-tooltip__header', {\n 'ds-c-tooltip__header--right': !contentHeading\n })\n }, contentHeading, showCloseButton && /*#__PURE__*/React.createElement(Button, {\n variation: \"ghost\",\n size: \"small\",\n className: \"ds-c-tooltip__close-button\",\n onClick: handleCloseButtonClick,\n \"aria-label\": closeButtonLabel || 'Close'\n }, /*#__PURE__*/React.createElement(CloseIconThin, null))) : null, title), !dialog && /*#__PURE__*/React.createElement(\"span\", {\n className: \"ds-c-tooltip__interactive-border\",\n style: interactiveBorderStyle\n }));\n return /*#__PURE__*/React.createElement(CSSTransition, {\n in: active,\n classNames: \"ds-c-tooltip\",\n timeout: transitionDuration\n }, dialog ? /*#__PURE__*/React.createElement(FocusTrap, {\n active: active,\n focusTrapOptions: {\n fallbackFocus: function fallbackFocus() {\n return document.getElementById(\"\".concat(contentId)).parentElement;\n },\n initialFocus: function initialFocus() {\n return document.getElementById(\"\".concat(contentId));\n },\n clickOutsideDeactivates: true\n }\n }, tooltipContent) : tooltipContent);\n };\n var mainEventHandlers = props.dialog ? {} : {\n onMouseEnter: function onMouseEnter() {\n if (!isMobile) {\n setIsHover(true);\n setActive(true);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!isMobile) {\n setIsHover(false);\n setActive(false);\n }\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"ds-c-tooltip__container\"\n }, mainEventHandlers), renderTrigger(props), renderContent(props));\n};\nTooltip.defaultProps = {\n component: 'button',\n interactiveBorder: 15,\n maxWidth: '300px',\n offset: [0, 5],\n placement: 'top',\n transitionDuration: 250,\n // Equivalent to $animation-speed-1\n zIndex: 9999\n};\nexport default Tooltip;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar React = require('react');\nvar PropTypes = require('prop-types');\nvar _require = require('focus-trap'),\n createFocusTrap = _require.createFocusTrap;\nvar _require2 = require('tabbable'),\n isFocusable = _require2.isFocusable;\nvar FocusTrap = /*#__PURE__*/function (_React$Component) {\n _inherits(FocusTrap, _React$Component);\n var _super = _createSuper(FocusTrap);\n function FocusTrap(props) {\n var _this;\n _classCallCheck(this, FocusTrap);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"getNodeForOption\", function (optionName) {\n var _this$internalOptions;\n // use internal options first, falling back to original options\n var optionValue = (_this$internalOptions = this.internalOptions[optionName]) !== null && _this$internalOptions !== void 0 ? _this$internalOptions : this.originalOptions[optionName];\n if (typeof optionValue === 'function') {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n optionValue = optionValue.apply(void 0, params);\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n var _this$getDocument;\n node = (_this$getDocument = this.getDocument()) === null || _this$getDocument === void 0 ? void 0 : _this$getDocument.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n return node;\n });\n _this.handleDeactivate = _this.handleDeactivate.bind(_assertThisInitialized(_this));\n _this.handlePostDeactivate = _this.handlePostDeactivate.bind(_assertThisInitialized(_this));\n _this.handleClickOutsideDeactivates = _this.handleClickOutsideDeactivates.bind(_assertThisInitialized(_this));\n\n // focus-trap options used internally when creating the trap\n _this.internalOptions = {\n // We need to hijack the returnFocusOnDeactivate option,\n // because React can move focus into the element before we arrived at\n // this lifecycle hook (e.g. with autoFocus inputs). So the component\n // captures the previouslyFocusedElement in componentWillMount,\n // then (optionally) returns focus to it in componentWillUnmount.\n returnFocusOnDeactivate: false,\n // the rest of these are also related to deactivation of the trap, and we\n // need to use them and control them as well\n checkCanReturnFocus: null,\n onDeactivate: _this.handleDeactivate,\n onPostDeactivate: _this.handlePostDeactivate,\n // we need to special-case this setting as well so that we can know if we should\n // NOT return focus if the trap gets auto-deactivated as the result of an\n // outside click (otherwise, we'll always think we should return focus because\n // of how we manage that flag internally here)\n clickOutsideDeactivates: _this.handleClickOutsideDeactivates\n };\n\n // original options provided by the consumer\n _this.originalOptions = {\n // because of the above `internalOptions`, we maintain our own flag for\n // this option, and default it to `true` because that's focus-trap's default\n returnFocusOnDeactivate: true,\n // because of the above `internalOptions`, we keep these separate since\n // they're part of the deactivation process which we configure (internally) to\n // be shared between focus-trap and focus-trap-react\n onDeactivate: null,\n onPostDeactivate: null,\n checkCanReturnFocus: null,\n // the user's setting, defaulted to false since focus-trap defaults this to false\n clickOutsideDeactivates: false\n };\n var focusTrapOptions = props.focusTrapOptions;\n for (var optionName in focusTrapOptions) {\n if (!Object.prototype.hasOwnProperty.call(focusTrapOptions, optionName)) {\n continue;\n }\n if (optionName === 'returnFocusOnDeactivate' || optionName === 'onDeactivate' || optionName === 'onPostDeactivate' || optionName === 'checkCanReturnFocus' || optionName === 'clickOutsideDeactivates') {\n _this.originalOptions[optionName] = focusTrapOptions[optionName];\n continue; // exclude from internalOptions\n }\n\n _this.internalOptions[optionName] = focusTrapOptions[optionName];\n }\n\n // if set, `{ target: Node, allowDeactivation: boolean }` where `target` is the outside\n // node that was clicked, and `allowDeactivation` is the result of the consumer's\n // option (stored in `this.originalOptions.clickOutsideDeactivates`, which may be a\n // function) whether to allow or deny auto-deactivation on click on this outside node\n _this.outsideClick = null;\n\n // elements from which to create the focus trap on mount; if a child is used\n // instead of the `containerElements` prop, we'll get the child's related\n // element when the trap renders and then is declared 'mounted'\n _this.focusTrapElements = props.containerElements || [];\n\n // now we remember what the currently focused element is, not relying on focus-trap\n _this.updatePreviousElement();\n return _this;\n }\n\n /**\n * Gets the configured document.\n * @returns {Document|undefined} Configured document, falling back to the main\n * document, if it exists. During SSR, `undefined` is returned since the\n * document doesn't exist.\n */\n _createClass(FocusTrap, [{\n key: \"getDocument\",\n value: function getDocument() {\n // SSR: careful to check if `document` exists before accessing it as a variable\n return this.props.focusTrapOptions.document || (typeof document !== 'undefined' ? document : undefined);\n }\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n }, {\n key: \"getReturnFocusNode\",\n value: function getReturnFocusNode() {\n var node = this.getNodeForOption('setReturnFocus', this.previouslyFocusedElement);\n return node ? node : node === false ? false : this.previouslyFocusedElement;\n }\n\n /** Update the previously focused element with the currently focused element. */\n }, {\n key: \"updatePreviousElement\",\n value: function updatePreviousElement() {\n var currentDocument = this.getDocument();\n if (currentDocument) {\n this.previouslyFocusedElement = currentDocument.activeElement;\n }\n }\n }, {\n key: \"deactivateTrap\",\n value: function deactivateTrap() {\n // NOTE: it's possible the focus trap has already been deactivated without our knowing it,\n // especially if the user set the `clickOutsideDeactivates: true` option on the trap,\n // and the mouse was clicked on some element outside the trap; at that point, focus-trap\n // will initiate its auto-deactivation process, which will call our own\n // handleDeactivate(), which will call into this method\n if (!this.focusTrap || !this.focusTrap.active) {\n return;\n }\n this.focusTrap.deactivate({\n // NOTE: we never let the trap return the focus since we do that ourselves\n returnFocus: false,\n // we'll call this in our own post deactivate handler so make sure the trap doesn't\n // do it prematurely\n checkCanReturnFocus: null,\n // let it call the user's original deactivate handler, if any, instead of\n // our own which calls back into this function\n onDeactivate: this.originalOptions.onDeactivate\n // NOTE: for post deactivate, don't specify anything so that it calls the\n // onPostDeactivate handler specified on `this.internalOptions`\n // which will always be our own `handlePostDeactivate()` handler, which\n // will finish things off by calling the user's provided onPostDeactivate\n // handler, if any, at the right time\n // onPostDeactivate: NOTHING\n });\n }\n }, {\n key: \"handleClickOutsideDeactivates\",\n value: function handleClickOutsideDeactivates(event) {\n // use consumer's option (or call their handler) as the permission or denial\n var allowDeactivation = typeof this.originalOptions.clickOutsideDeactivates === 'function' ? this.originalOptions.clickOutsideDeactivates.call(null, event) // call out of context\n : this.originalOptions.clickOutsideDeactivates; // boolean\n\n if (allowDeactivation) {\n // capture the outside target that was clicked so we can use it in the deactivation\n // process since the consumer allowed it to cause auto-deactivation\n this.outsideClick = {\n target: event.target,\n allowDeactivation: allowDeactivation\n };\n }\n return allowDeactivation;\n }\n }, {\n key: \"handleDeactivate\",\n value: function handleDeactivate() {\n if (this.originalOptions.onDeactivate) {\n this.originalOptions.onDeactivate.call(null); // call user's handler out of context\n }\n\n this.deactivateTrap();\n }\n }, {\n key: \"handlePostDeactivate\",\n value: function handlePostDeactivate() {\n var _this2 = this;\n var finishDeactivation = function finishDeactivation() {\n var returnFocusNode = _this2.getReturnFocusNode();\n var canReturnFocus = !!(\n // did the consumer allow it?\n\n _this2.originalOptions.returnFocusOnDeactivate && // can we actually focus the node?\n returnFocusNode !== null && returnFocusNode !== void 0 && returnFocusNode.focus && (\n // was there an outside click that allowed deactivation?\n !_this2.outsideClick ||\n // did the consumer allow deactivation when the outside node was clicked?\n _this2.outsideClick.allowDeactivation &&\n // is the outside node NOT focusable (implying that it did NOT receive focus\n // as a result of the click-through) -- in which case do NOT restore focus\n // to `returnFocusNode` because focus should remain on the outside node\n !isFocusable(_this2.outsideClick.target, _this2.internalOptions.tabbableOptions))\n\n // if no, the restore focus to `returnFocusNode` at this point\n );\n\n var _this2$internalOption = _this2.internalOptions.preventScroll,\n preventScroll = _this2$internalOption === void 0 ? false : _this2$internalOption;\n if (canReturnFocus) {\n // return focus to the element that had focus when the trap was activated\n returnFocusNode.focus({\n preventScroll: preventScroll\n });\n }\n if (_this2.originalOptions.onPostDeactivate) {\n _this2.originalOptions.onPostDeactivate.call(null); // don't call it in context of \"this\"\n }\n\n _this2.outsideClick = null; // reset: no longer needed\n };\n\n if (this.originalOptions.checkCanReturnFocus) {\n this.originalOptions.checkCanReturnFocus.call(null, this.getReturnFocusNode()) // call out of context\n .then(finishDeactivation, finishDeactivation);\n } else {\n finishDeactivation();\n }\n }\n }, {\n key: \"setupFocusTrap\",\n value: function setupFocusTrap() {\n if (this.focusTrap) {\n // trap already exists: it's possible we're in StrictMode and we're being remounted,\n // in which case, we will have deactivated the trap when we got unmounted (remember,\n // StrictMode, in development, purposely unmounts and remounts components after\n // mounting them the first time to make sure they have reusable state,\n // @see https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state) so now\n // we need to restore the state of the trap according to our component state\n // NOTE: Strict mode __violates__ assumptions about the `componentWillUnmount()` API\n // which clearly states -- even for React 18 -- that, \"Once a component instance is\n // unmounted, __it will never be mounted again.__\" (emphasis ours). So when we get\n // unmounted, we assume we're gone forever and we deactivate the trap. But then\n // we get remounted and we're supposed to restore state. But if you had paused,\n // we've now deactivated (we don't know we're amount to get remounted again)\n // which means we need to reactivate and then pause. Otherwise, do nothing.\n if (this.props.active && !this.focusTrap.active) {\n this.focusTrap.activate();\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n } else {\n var nodesExist = this.focusTrapElements.some(Boolean);\n if (nodesExist) {\n // eslint-disable-next-line react/prop-types -- _createFocusTrap is an internal prop\n this.focusTrap = this.props._createFocusTrap(this.focusTrapElements, this.internalOptions);\n if (this.props.active) {\n this.focusTrap.activate();\n }\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.active) {\n this.setupFocusTrap();\n }\n // else, wait for later activation in case the `focusTrapOptions` will be updated\n // again before the trap is activated (e.g. if waiting to know what the document\n // object will be, so the Trap must be rendered, but the consumer is waiting to\n // activate until they have obtained the document from a ref)\n // @see https://github.com/focus-trap/focus-trap-react/issues/539\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.focusTrap) {\n if (prevProps.containerElements !== this.props.containerElements) {\n this.focusTrap.updateContainerElements(this.props.containerElements);\n }\n var hasActivated = !prevProps.active && this.props.active;\n var hasDeactivated = prevProps.active && !this.props.active;\n var hasPaused = !prevProps.paused && this.props.paused;\n var hasUnpaused = prevProps.paused && !this.props.paused;\n if (hasActivated) {\n this.updatePreviousElement();\n this.focusTrap.activate();\n }\n if (hasDeactivated) {\n this.deactivateTrap();\n return; // un/pause does nothing on an inactive trap\n }\n\n if (hasPaused) {\n this.focusTrap.pause();\n }\n if (hasUnpaused) {\n this.focusTrap.unpause();\n }\n } else {\n // NOTE: if we're in `componentDidUpdate` and we don't have a trap yet,\n // it either means it shouldn't be active, or it should be but none of\n // of given `containerElements` were present in the DOM the last time\n // we tried to create the trap\n\n if (prevProps.containerElements !== this.props.containerElements) {\n this.focusTrapElements = this.props.containerElements;\n }\n\n // don't create the trap unless it should be active in case the consumer\n // is still updating `focusTrapOptions`\n // @see https://github.com/focus-trap/focus-trap-react/issues/539\n if (this.props.active) {\n this.updatePreviousElement();\n this.setupFocusTrap();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.deactivateTrap();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var child = this.props.children ? React.Children.only(this.props.children) : undefined;\n if (child) {\n if (child.type && child.type === React.Fragment) {\n throw new Error('A focus-trap cannot use a Fragment as its child container. Try replacing it with a <div> element.');\n }\n var callbackRef = function callbackRef(element) {\n var containerElements = _this3.props.containerElements;\n if (child) {\n if (typeof child.ref === 'function') {\n child.ref(element);\n } else if (child.ref) {\n child.ref.current = element;\n }\n }\n _this3.focusTrapElements = containerElements ? containerElements : [element];\n };\n var childWithRef = React.cloneElement(child, {\n ref: callbackRef\n });\n return childWithRef;\n }\n return null;\n }\n }]);\n return FocusTrap;\n}(React.Component); // support server-side rendering where `Element` will not be defined\nvar ElementType = typeof Element === 'undefined' ? Function : Element;\nFocusTrap.propTypes = {\n active: PropTypes.bool,\n paused: PropTypes.bool,\n focusTrapOptions: PropTypes.shape({\n document: PropTypes.object,\n onActivate: PropTypes.func,\n onPostActivate: PropTypes.func,\n checkCanFocusTrap: PropTypes.func,\n onPause: PropTypes.func,\n onPostPause: PropTypes.func,\n onUnpause: PropTypes.func,\n onPostUnpause: PropTypes.func,\n onDeactivate: PropTypes.func,\n onPostDeactivate: PropTypes.func,\n checkCanReturnFocus: PropTypes.func,\n initialFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.bool, PropTypes.func]),\n fallbackFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string,\n // NOTE: does not support `false` as value (or return value from function)\n PropTypes.func]),\n escapeDeactivates: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n clickOutsideDeactivates: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n returnFocusOnDeactivate: PropTypes.bool,\n setReturnFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.bool, PropTypes.func]),\n allowOutsideClick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n preventScroll: PropTypes.bool,\n tabbableOptions: PropTypes.shape({\n displayCheck: PropTypes.oneOf(['full', 'legacy-full', 'non-zero-area', 'none']),\n getShadowRoot: PropTypes.oneOfType([PropTypes.bool, PropTypes.func])\n }),\n trapStack: PropTypes.array,\n isKeyForward: PropTypes.func,\n isKeyBackward: PropTypes.func\n }),\n containerElements: PropTypes.arrayOf(PropTypes.instanceOf(ElementType)),\n // DOM element ONLY\n children: PropTypes.oneOfType([PropTypes.element,\n // React element\n PropTypes.instanceOf(ElementType) // DOM element\n ])\n\n // NOTE: _createFocusTrap is internal, for testing purposes only, so we don't\n // specify it here. It's expected to be set to the function returned from\n // require('focus-trap'), or one with a compatible interface.\n};\n\nFocusTrap.defaultProps = {\n active: true,\n paused: false,\n focusTrapOptions: {},\n _createFocusTrap: createFocusTrap\n};\nmodule.exports = FocusTrap;","import { tabbable, focusable, isFocusable, isTabbable } from 'tabbable';\n\nconst activeFocusTraps = {\n activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n const activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n\n deactivateTrap(trapStack, trap) {\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n },\n};\n\nconst isSelectableInput = function (node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n};\n\nconst isEscapeEvent = function (e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nconst isTabEvent = function (e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\n// checks for TAB by default\nconst isKeyForward = function (e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nconst isKeyBackward = function (e) {\n return isTabEvent(e) && e.shiftKey;\n};\n\nconst delay = function (fn) {\n return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\nconst findIndex = function (arr, fn) {\n let idx = -1;\n\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n\n return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nconst valueOrHandler = function (value, ...params) {\n return typeof value === 'function' ? value(...params) : value;\n};\n\nconst getActualTarget = function (event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function'\n ? event.composedPath()[0]\n : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nconst internalTrapStack = [];\n\nconst createFocusTrap = function (elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n const doc = userOptions?.document || document;\n\n const trapStack = userOptions?.trapStack || internalTrapStack;\n\n const config = {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward,\n isKeyBackward,\n ...userOptions,\n };\n\n const state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [], // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n };\n\n let trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n const getOption = (configOverrideOptions, optionName, configOptionName) => {\n return configOverrideOptions &&\n configOverrideOptions[optionName] !== undefined\n ? configOverrideOptions[optionName]\n : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n const findContainerIndex = function (element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(\n ({ container, tabbableNodes }) =>\n container.contains(element) ||\n // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find((node) => node === element)\n );\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n const getNodeForOption = function (optionName, ...params) {\n let optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n optionValue = optionValue(...params);\n }\n\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\n `\\`${optionName}\\` was specified but was not a node, or did not return a node`\n );\n }\n\n let node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\n `\\`${optionName}\\` as selector refers to no known node`\n );\n }\n }\n\n return node;\n };\n\n const getInitialFocusNode = function () {\n let node = getNodeForOption('initialFocus');\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n const firstTabbableGroup = state.tabbableGroups[0];\n const firstTabbableNode =\n firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error(\n 'Your focus-trap needs to have at least one focusable element'\n );\n }\n\n return node;\n };\n\n const updateTabbableNodes = function () {\n state.containerGroups = state.containers.map((container) => {\n const tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n const focusableNodes = focusable(container, config.tabbableOptions);\n\n return {\n container,\n tabbableNodes,\n focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode:\n tabbableNodes.length > 0\n ? tabbableNodes[tabbableNodes.length - 1]\n : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode(node, forward = true) {\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n const nodeIdx = focusableNodes.findIndex((n) => n === node);\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes\n .slice(nodeIdx + 1)\n .find((n) => isTabbable(n, config.tabbableOptions));\n }\n\n return focusableNodes\n .slice(0, nodeIdx)\n .reverse()\n .find((n) => isTabbable(n, config.tabbableOptions));\n },\n };\n });\n\n state.tabbableGroups = state.containerGroups.filter(\n (group) => group.tabbableNodes.length > 0\n );\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (\n state.tabbableGroups.length <= 0 &&\n !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error(\n 'Your focus-trap must have at least one container with at least one tabbable node in it at all times'\n );\n }\n };\n\n const tryFocus = function (node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({ preventScroll: !!config.preventScroll });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n const getReturnFocusNode = function (previousActiveElement) {\n const node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n const checkPointerDown = function (e) {\n const target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate,\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n const checkFocusIn = function (e) {\n const target = getActualTarget(e);\n const targetContained = findContainerIndex(target) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n const checkKeyNav = function (event, isBackward = false) {\n const target = getActualTarget(event);\n updateTabbableNodes();\n\n let destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n const containerIndex = findContainerIndex(target);\n const containerGroup =\n containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode =\n state.tabbableGroups[state.tabbableGroups.length - 1]\n .lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n let startOfGroupIndex = findIndex(\n state.tabbableGroups,\n ({ firstTabbableNode }) => target === firstTabbableNode\n );\n\n if (\n startOfGroupIndex < 0 &&\n (containerGroup.container === target ||\n (isFocusable(target, config.tabbableOptions) &&\n !isTabbable(target, config.tabbableOptions) &&\n !containerGroup.nextTabbableNode(target, false)))\n ) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n const destinationGroupIndex =\n startOfGroupIndex === 0\n ? state.tabbableGroups.length - 1\n : startOfGroupIndex - 1;\n\n const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n let lastOfGroupIndex = findIndex(\n state.tabbableGroups,\n ({ lastTabbableNode }) => target === lastTabbableNode\n );\n\n if (\n lastOfGroupIndex < 0 &&\n (containerGroup.container === target ||\n (isFocusable(target, config.tabbableOptions) &&\n !isTabbable(target, config.tabbableOptions) &&\n !containerGroup.nextTabbableNode(target)))\n ) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n const destinationGroupIndex =\n lastOfGroupIndex === state.tabbableGroups.length - 1\n ? 0\n : lastOfGroupIndex + 1;\n\n const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.firstTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n\n const checkKey = function (event) {\n if (\n isEscapeEvent(event) &&\n valueOrHandler(config.escapeDeactivates, event) !== false\n ) {\n event.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n const checkClick = function (e) {\n const target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n const addListeners = function () {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus\n ? delay(function () {\n tryFocus(getInitialFocusNode());\n })\n : tryFocus(getInitialFocusNode());\n\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false,\n });\n\n return trap;\n };\n\n const removeListeners = function () {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n const onActivate = getOption(activateOptions, 'onActivate');\n const onPostActivate = getOption(activateOptions, 'onPostActivate');\n const checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n onActivate?.();\n\n const finishActivation = () => {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n onPostActivate?.();\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(\n finishActivation,\n finishActivation\n );\n return this;\n }\n\n finishActivation();\n return this;\n },\n\n deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n const options = {\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus,\n ...deactivateOptions,\n };\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trapStack, trap);\n\n const onDeactivate = getOption(options, 'onDeactivate');\n const onPostDeactivate = getOption(options, 'onPostDeactivate');\n const checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n const returnFocus = getOption(\n options,\n 'returnFocus',\n 'returnFocusOnDeactivate'\n );\n\n onDeactivate?.();\n\n const finishDeactivation = () => {\n delay(() => {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate?.();\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(\n getReturnFocusNode(state.nodeFocusedBeforeActivation)\n ).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n\n pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n\n const onPause = getOption(pauseOptions, 'onPause');\n const onPostPause = getOption(pauseOptions, 'onPostPause');\n\n state.paused = true;\n onPause?.();\n\n removeListeners();\n\n onPostPause?.();\n return this;\n },\n\n unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n\n const onUnpause = getOption(unpauseOptions, 'onUnpause');\n const onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n\n state.paused = false;\n onUnpause?.();\n\n updateTabbableNodes();\n addListeners();\n\n onPostUnpause?.();\n return this;\n },\n\n updateContainerElements(containerElements) {\n const elementsAsArray = [].concat(containerElements).filter(Boolean);\n\n state.containers = elementsAsArray.map((element) =>\n typeof element === 'string' ? doc.querySelector(element) : element\n );\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n },\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n\n return trap;\n};\n\nexport { createFocusTrap };\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = bind && bind.bind(call, call);\n\nmodule.exports = bind ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2022 Denis Pushkarev (zloirock.ru)'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nconst candidateSelectors = [\n 'input:not([inert])',\n 'select:not([inert])',\n 'textarea:not([inert])',\n 'a[href]:not([inert])',\n 'button:not([inert])',\n '[tabindex]:not(slot):not([inert])',\n 'audio[controls]:not([inert])',\n 'video[controls]:not([inert])',\n '[contenteditable]:not([contenteditable=\"false\"]):not([inert])',\n 'details>summary:first-of-type:not([inert])',\n 'details:not([inert])',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n ? function () {}\n : Element.prototype.matches ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n !NoElement && Element.prototype.getRootNode\n ? (element) => element?.getRootNode?.()\n : (element) => element?.ownerDocument;\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nconst isInert = function (node, lookUp = true) {\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n const inertAtt = node?.getAttribute?.('inert');\n const inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n const result = inert || (lookUp && node && isInert(node.parentNode)); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nconst isContentEditable = function (node) {\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n const attValue = node?.getAttribute?.('contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n\n let candidates = Array.prototype.slice.apply(\n el.querySelectorAll(candidateSelector)\n );\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nconst getCandidatesIteratively = function (\n elements,\n includeContainer,\n options\n) {\n const candidates = [];\n const elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n const element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n const assigned = element.assignedElements();\n const content = assigned.length ? assigned : element.children;\n const nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // check candidate element\n const validCandidate = matches.call(element, candidateSelector);\n if (\n validCandidate &&\n options.filter(element) &&\n (includeContainer || !elements.includes(element))\n ) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n const shadowRoot =\n element.shadowRoot ||\n // check for an undisclosed shadow\n (typeof options.getShadowRoot === 'function' &&\n options.getShadowRoot(element));\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n const validShadowRoot =\n !isInert(shadowRoot, false) &&\n (!options.shadowRootFilter || options.shadowRootFilter(element));\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n const nestedCandidates = getCandidatesIteratively(\n shadowRoot === true ? element.children : shadowRoot.children,\n true,\n options\n );\n\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift(...element.children);\n }\n }\n }\n return candidates;\n};\n\nconst getTabindex = function (node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if (\n (isScope ||\n /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) ||\n isContentEditable(node)) &&\n isNaN(parseInt(node.getAttribute('tabindex'), 10))\n ) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nconst sortOrderedTabbables = function (a, b) {\n return a.tabIndex === b.tabIndex\n ? a.documentOrder - b.documentOrder\n : a.tabIndex - b.tabIndex;\n};\n\nconst isInput = function (node) {\n return node.tagName === 'INPUT';\n};\n\nconst isHiddenInput = function (node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nconst isDetailsWithSummary = function (node) {\n const r =\n node.tagName === 'DETAILS' &&\n Array.prototype.slice\n .apply(node.children)\n .some((child) => child.tagName === 'SUMMARY');\n return r;\n};\n\nconst getCheckedRadio = function (nodes, form) {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nconst isTabbableRadio = function (node) {\n if (!node.name) {\n return true;\n }\n const radioScope = node.form || getRootNode(node);\n const queryRadios = function (name) {\n return radioScope.querySelectorAll(\n 'input[type=\"radio\"][name=\"' + name + '\"]'\n );\n };\n\n let radioSet;\n if (\n typeof window !== 'undefined' &&\n typeof window.CSS !== 'undefined' &&\n typeof window.CSS.escape === 'function'\n ) {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\n 'Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s',\n err.message\n );\n return false;\n }\n }\n\n const checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nconst isRadio = function (node) {\n return isInput(node) && node.type === 'radio';\n};\n\nconst isNonTabbableRadio = function (node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nconst isNodeAttached = function (node) {\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n let nodeRoot = node && getRootNode(node);\n let nodeRootHost = nodeRoot?.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n let attached = false;\n if (nodeRoot && nodeRoot !== node) {\n attached = !!(\n nodeRootHost?.ownerDocument?.contains(nodeRootHost) ||\n node?.ownerDocument?.contains(node)\n );\n\n while (!attached && nodeRootHost) {\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = nodeRoot?.host;\n attached = !!nodeRootHost?.ownerDocument?.contains(nodeRootHost);\n }\n }\n\n return attached;\n};\n\nconst isZeroArea = function (node) {\n const { width, height } = node.getBoundingClientRect();\n return width === 0 && height === 0;\n};\nconst isHidden = function (node, { displayCheck, getShadowRoot }) {\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n const isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n const nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (\n !displayCheck ||\n displayCheck === 'full' ||\n displayCheck === 'legacy-full'\n ) {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n const originalNode = node;\n while (node) {\n const parentElement = node.parentElement;\n const rootNode = getRootNode(node);\n if (\n parentElement &&\n !parentElement.shadowRoot &&\n getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nconst isDisabledFromFieldset = function (node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n let parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (let i = 0; i < parentNode.children.length; i++) {\n const child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *')\n ? true\n : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\n\nconst isNodeMatchingSelectorFocusable = function (options, node) {\n if (\n node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) ||\n isHiddenInput(node) ||\n isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) ||\n isDisabledFromFieldset(node)\n ) {\n return false;\n }\n return true;\n};\n\nconst isNodeMatchingSelectorTabbable = function (options, node) {\n if (\n isNonTabbableRadio(node) ||\n getTabindex(node) < 0 ||\n !isNodeMatchingSelectorFocusable(options, node)\n ) {\n return false;\n }\n return true;\n};\n\nconst isValidShadowRootTabbable = function (shadowHostNode) {\n const tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nconst sortByOrder = function (candidates) {\n const regularTabbables = [];\n const orderedTabbables = [];\n candidates.forEach(function (item, i) {\n const isScope = !!item.scopeParent;\n const element = isScope ? item.scopeParent : item;\n const candidateTabindex = getTabindex(element, isScope);\n const elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope\n ? regularTabbables.push(...elements)\n : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements,\n });\n }\n });\n\n return orderedTabbables\n .sort(sortOrderedTabbables)\n .reduce((acc, sortable) => {\n sortable.isScope\n ? acc.push(...sortable.content)\n : acc.push(sortable.content);\n return acc;\n }, [])\n .concat(regularTabbables);\n};\n\nconst tabbable = function (el, options) {\n options = options || {};\n\n let candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable,\n });\n } else {\n candidates = getCandidates(\n el,\n options.includeContainer,\n isNodeMatchingSelectorTabbable.bind(null, options)\n );\n }\n return sortByOrder(candidates);\n};\n\nconst focusable = function (el, options) {\n options = options || {};\n\n let candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot,\n });\n } else {\n candidates = getCandidates(\n el,\n options.includeContainer,\n isNodeMatchingSelectorFocusable.bind(null, options)\n );\n }\n\n return candidates;\n};\n\nconst isTabbable = function (node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nconst focusableCandidateSelector = /* #__PURE__ */ candidateSelectors\n .concat('iframe')\n .join(',');\n\nconst isFocusable = function (node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { tabbable, focusable, isTabbable, isFocusable };\n"],"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","defaultProps","className","viewBox","CloseIconThin","props","iconCssClasses","concat","React","SvgIcon","title","t","fill","stroke","strokeLinecap","strokeWidth","d","replaceClassName","origClass","classToRemove","replace","RegExp","forceReflow","node","scrollTop","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","context","_this","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","state","status","nextCallback","_inheritsLoose","getDerivedStateFromProps","_ref","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","undefined","mounting","nodeRef","current","ReactDOM","performEnter","performExit","setState","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","setTimeout","render","_this$props","children","childProps","_objectWithoutPropertiesLoose","TransitionGroupContext","Provider","value","only","noop","contextType","propTypes","removeClass","classes","split","forEach","c","element","classList","remove","setAttribute","baseVal","CSSTransition","_len","args","Array","_key","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","type","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","add","contains","indexOf","hasClass","_addClass","_this$appliedClasses$","base","done","getWindow","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getBoundingClientRect","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","top","right","bottom","left","x","y","getWindowScroll","win","scrollLeft","pageXOffset","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","test","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","abs","offsetLeft","offsetTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","body","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","navigator","userAgent","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","auto","basePlacements","start","end","viewport","popper","variationPlacements","reduce","acc","placement","placements","modifierPhases","order","modifiers","map","Map","visited","Set","result","sort","modifier","name","requires","requiresIfExists","dep","has","depModifier","get","push","set","debounce","fn","pending","Promise","resolve","then","DEFAULT_OPTIONS","strategy","areValidElements","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","options","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","orderModifiers","merged","existing","data","keys","mergeByName","m","enabled","_ref3$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","rects","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","destroy","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_options$offset","offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","hash","getOppositePlacement","matched","getOppositeVariationPlacement","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","mathMax","mathMin","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","resize","addEventListener","removeEventListener","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","style","removeAttribute","initialStyles","margin","property","attribute","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","a","b","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","slice","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_typeof","obj","Symbol","iterator","constructor","_excluded","_defineProperty","arg","input","hint","prim","toPrimitive","res","TypeError","String","Number","_toPrimitive","_toPropertyKey","defineProperty","enumerable","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_slicedToArray","arr","isArray","_arrayWithHoles","_s","_e","_x","_r","_arr","_n","_d","err","return","_iterableToArrayLimit","o","_arrayLikeToArray","n","from","_unsupportedIterableToArray","_nonIterableRest","arr2","Tooltip","useRef","contentId","useId","id","triggerElement","tooltipElement","setTriggerElement","elem","setTooltipElement","_useState2","useState","setActive","_useState4","isHover","setIsHover","_useState6","isMobile","setIsMobile","prevActiveStateVar","usePrevious","handleEscapeKey","keyCode","handleClickOutside","dialog","_triggerElement$curre","_tooltipElement$curre","clickedTrigger","handleCloseButtonClick","handleBlur","currentTarget","handleTouch","useEffect","onOpen","onClose","showCloseButton","focus","useLayoutEffect","mainEventHandlers","onMouseEnter","onMouseLeave","_classNames","ariaLabel","component","inversed","others","interactiveBorder","maxWidth","transitionDuration","zIndex","closeButtonLabel","contentHeading","TriggerComponent","triggerClasses","linkTriggerOverrides","tabIndex","eventHandlers","onTouchStart","onClick","onFocus","onBlur","ref","renderTrigger","tooltipStyle","interactiveBorderStyle","border","tooltipContent","role","Button","size","FocusTrap","focusTrapOptions","fallbackFocus","getElementById","parentElement","initialFocus","clickOutsideDeactivates","renderContent","_defineProperties","descriptor","_setPrototypeOf","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","require","PropTypes","createFocusTrap","isFocusable","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_classCallCheck","optionName","_this$internalOptions","optionValue","internalOptions","originalOptions","params","Error","_this$getDocument","getDocument","handleDeactivate","handlePostDeactivate","handleClickOutsideDeactivates","returnFocusOnDeactivate","checkCanReturnFocus","onDeactivate","onPostDeactivate","outsideClick","focusTrapElements","containerElements","updatePreviousElement","getNodeForOption","previouslyFocusedElement","currentDocument","activeElement","focusTrap","deactivate","returnFocus","allowDeactivation","deactivateTrap","finishDeactivation","returnFocusNode","getReturnFocusNode","canReturnFocus","tabbableOptions","_this2$internalOption","preventScroll","activate","paused","pause","_createFocusTrap","setupFocusTrap","updateContainerElements","hasActivated","hasDeactivated","hasPaused","hasUnpaused","unpause","Children","Fragment","cloneElement","Component","ElementType","Function","bool","shape","object","onActivate","func","onPostActivate","checkCanFocusTrap","onPause","onPostPause","onUnpause","onPostUnpause","oneOfType","instanceOf","string","escapeDeactivates","setReturnFocus","allowOutsideClick","displayCheck","oneOf","getShadowRoot","trapStack","array","isKeyForward","isKeyBackward","arrayOf","module","exports","activeFocusTraps","trap","activeTrap","trapIndex","splice","isTabEvent","shiftKey","delay","findIndex","idx","valueOrHandler","getActualTarget","shadowRoot","composedPath","internalTrapStack","userOptions","doc","_objectSpread2","delayInitialFocus","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","delayInitialFocusTimer","getOption","configOverrideOptions","configOptionName","findContainerIndex","container","tabbableNodes","_len2","_key2","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbable","focusableNodes","focusable","lastTabbableNode","nextTabbableNode","forward","nodeIdx","isTabbable","reverse","group","tryFocus","tagName","select","isSelectableInput","previousActiveElement","checkPointerDown","preventDefault","checkFocusIn","targetContained","Document","stopImmediatePropagation","checkKey","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","destinationGroupIndex","lastOfGroupIndex","_destinationGroupIndex","checkKeyNav","checkClick","addListeners","capture","removeListeners","activateOptions","finishActivation","deactivateOptions","clearTimeout","pauseOptions","unpauseOptions","elementsAsArray","global","isCallable","tryToString","argument","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","includes","uncurryThis","stringSlice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","getOwnPropertyDescriptor","DESCRIPTORS","createPropertyDescriptor","bitmap","fails","EXISTS","createElement","getBuiltIn","match","version","process","Deno","versions","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","exec","error","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","aFunction","namespace","method","aCallable","V","P","globalThis","toObject","classof","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","replacement","feature","detection","normalize","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","V8_VERSION","symbol","PromiseCapability","C","reject","promise","$$resolve","$$reject","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","internalObjectKeys","getOwnPropertyNames","names","$propertyIsEnumerable","NASHORN_BUG","pref","val","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","join","uid","SHARED","IS_PURE","mode","copyright","toIntegerOrInfinity","integer","IndexedObject","requireObjectCoercible","ceil","floor","number","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$","newPromiseCapabilityModule","perform","callbackfn","promiseCapability","candidateSelectors","candidateSelector","NoElement","matches","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","isInert","lookUp","_node$getAttribute","inertAtt","getAttribute","getCandidates","includeContainer","candidates","querySelectorAll","unshift","getCandidatesIteratively","elementsToCheck","shift","assigned","assignedElements","nestedCandidates","flatten","scopeParent","validShadowRoot","shadowRootFilter","_nestedCandidates","getTabindex","isScope","_node$getAttribute2","attValue","isContentEditable","isNaN","parseInt","sortOrderedTabbables","documentOrder","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","CSS","escape","console","message","checked","nodes","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","visibility","nodeUnderDetails","originalNode","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","nodeRoot","nodeRootHost","attached","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","getClientRects","isNodeMatchingSelectorFocusable","disabled","isHiddenInput","isDetailsWithSummary","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","content","sortable","focusableCandidateSelector"],"sourceRoot":""}