Files
simpleidp/wwwroot/lib/popper.js/esm/dom-utils/getOffsetParent.min.js
2025-08-19 16:58:51 +02:00

1 line
1.3 KiB
JavaScript

import getWindow from"./getWindow.js";import getNodeName from"./getNodeName.js";import getComputedStyle from"./getComputedStyle.js";import{isHTMLElement,isShadowRoot}from"./instanceOf.js";import isTableElement from"./isTableElement.js";import getParentNode from"./getParentNode.js";import getUAString from"../utils/userAgent.js";function getTrueOffsetParent(e){return isHTMLElement(e)&&"fixed"!==getComputedStyle(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString()),o=/Trident/i.test(getUAString());if(o&&isHTMLElement(e)&&"fixed"===getComputedStyle(e).position)return null;var n=getParentNode(e);for(isShadowRoot(n)&&(n=n.host);isHTMLElement(n)&&["html","body"].indexOf(getNodeName(n))<0;){var i=getComputedStyle(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}export default function getOffsetParent(e){for(var t=getWindow(e),o=getTrueOffsetParent(e);o&&isTableElement(o)&&"static"===getComputedStyle(o).position;)o=getTrueOffsetParent(o);return(!o||"html"!==getNodeName(o)&&("body"!==getNodeName(o)||"static"!==getComputedStyle(o).position))&&(o||getContainingBlock(e))||t}