'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* @fileOverview Find scroll parent
*/
exports.default = function (node) {
Iif (!node) {
return document;
}
var excludeStaticParent = node.style.position === 'absolute';
var overflowRegex = /(scroll|auto)/;
var parent = node;
while (parent) {
if (!parent.parentNode) {
return node.ownerDocument || document;
}
var style = window.getComputedStyle(parent);
var position = style.position;
var overflow = style.overflow;
var overflowX = style['overflow-x'];
var overflowY = style['overflow-y'];
Iif (position === 'static' && excludeStaticParent) {
continue;
}
if (overflowRegex.test(overflow + overflowX + overflowY)) {
return parent;
}
parent = parent.parentNode;
}
return node.ownerDocument || document;
};
|