UNPKG

ngx-bootstrap

Version:
28 lines 1.03 kB
/** * Returns the scrolling parent of the given element */ import { getStyleComputedProperty } from './getStyleComputedProperty'; import { getParentNode } from './getParentNode'; // todo: valorkin fix // eslint-disable-next-line @typescript-eslint/no-explicit-any export function getScrollParent(element) { // Return body, `getScroll` will take care to get the correct `scrollTop` from it if (!element) { return document.body; } switch (element.nodeName) { case 'HTML': case 'BODY': return element.ownerDocument.body; case '#document': return element.body; default: } // Firefox want us to check `-x` and `-y` variations as well const { overflow, overflowX, overflowY } = getStyleComputedProperty(element); if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) { return element; } return getScrollParent(getParentNode(element)); } //# sourceMappingURL=getScrollParent.js.map