import getStyleComputedProperty from './getStyleComputedProperty';
|
import isIE from './isIE';
|
/**
|
* Finds the first parent of an element that has a transformed property defined
|
* @method
|
* @memberof Popper.Utils
|
* @argument {Element} element
|
* @returns {Element} first transformed parent or documentElement
|
*/
|
|
export default function getFixedPositionOffsetParent(element) {
|
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
|
if (!element || !element.parentElement || isIE()) {
|
return document.documentElement;
|
}
|
let el = element.parentElement;
|
while (el && getStyleComputedProperty(el, 'transform') === 'none') {
|
el = el.parentElement;
|
}
|
return el || document.documentElement;
|
|
}
|