Files
ETB/ETB-FrontEnd/node_modules/.cache/babel-loader/79d07597a095b96baac7bef9609444561bbf41871a3f149a1098ba3c828e0c79.json
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

1 line
82 KiB
JSON

{"ast":null,"code":"import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\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 }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };","map":{"version":3,"names":["rectToClientRect","arrow","arrow$1","autoPlacement","autoPlacement$1","detectOverflow","detectOverflow$1","flip","flip$1","hide","hide$1","inline","inline$1","limitShift","limitShift$1","offset","offset$1","shift","shift$1","size","size$1","computePosition","computePosition$1","round","createCoords","max","min","floor","getComputedStyle","getComputedStyle$1","isHTMLElement","isElement","getWindow","isWebKit","getFrameElement","getNodeScroll","getDocumentElement","isTopLayer","getNodeName","isOverflowElement","getOverflowAncestors","getParentNode","isLastTraversableNode","isContainingBlock","isTableElement","getContainingBlock","getCssDimensions","element","css","width","parseFloat","height","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","contextElement","getScale","domElement","rect","getBoundingClientRect","x","y","Number","isFinite","noOffsets","getVisualOffsets","win","visualViewport","offsetLeft","offsetTop","shouldAddVisualOffsets","isFixed","floatingOffsetParent","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","left","top","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","scrollLeft","getHTMLOffset","documentElement","scroll","htmlRect","scrollTop","convertOffsetParentRelativeRectToViewportRelativeRect","_ref","elements","strategy","topLayer","floating","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","Array","from","getDocumentRect","html","body","ownerDocument","scrollWidth","clientWidth","scrollHeight","clientHeight","direction","SCROLLBAR_MAX","getViewportRect","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","compatMode","marginLeft","marginRight","clippingStableScrollbarWidth","Math","abs","absoluteOrFixed","Set","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","parentNode","position","getClippingElementAncestors","cache","cachedResult","get","result","filter","el","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","shouldDropCurrentNode","has","ancestor","set","getClippingRect","boundary","rootBoundary","elementClippingAncestors","_c","concat","clippingAncestors","firstClippingAncestor","clippingRect","reduce","accRect","right","bottom","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","data","getOffsetParentFn","getDimensionsFn","floatingDimensions","reference","isRTL","platform","rectsAreEqual","a","b","observeMove","onMove","io","timeoutId","root","cleanup","_io","clearTimeout","disconnect","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","rootMargin","options","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","setTimeout","IntersectionObserver","_e","observe","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","animationFrame","referenceEl","ancestors","forEach","addEventListener","passive","cleanupIo","reobserveFrame","resizeObserver","firstEntry","target","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","removeEventListener","Map","mergedOptions","platformWithCache"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"],"sourcesContent":["import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\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 }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}