%PDF- %PDF-
Direktori : /var/www/html/node_modules/@popperjs/core/dist/esm/dom-utils/ |
Current File : /var/www/html/node_modules/@popperjs/core/dist/esm/dom-utils/listScrollParents.js |
import getScrollParent from "./getScrollParent.js"; import getParentNode from "./getParentNode.js"; import getWindow from "./getWindow.js"; import isScrollParent from "./isScrollParent.js"; /* given a DOM element, return the list of all scroll parents, up the list of ancesors until we get to the top window object. This list is what we attach scroll listeners to, because if any of these parent elements scroll, we'll need to re-calculate the reference element's position. */ export default function listScrollParents(element, list) { var _element$ownerDocumen; if (list === void 0) { list = []; } var scrollParent = getScrollParent(element); var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); var win = getWindow(scrollParent); var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; var updatedList = list.concat(target); return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here updatedList.concat(listScrollParents(getParentNode(target))); }