import getParentNode from "./getParentNode.js"; import isScrollParent from "./isScrollParent.js"; import getNodeName from "./getNodeName.js"; import { isHTMLElement } from "./instanceOf.js"; export default function getScrollParent(node) { if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { // $FlowFixMe[incompatible-return]: assume body is always available return node.ownerDocument.body; } if (isHTMLElement(node) && isScrollParent(node)) { return node; } return getScrollParent(getParentNode(node)); }