all files / popper/utils/ getReferenceOffsets.js

100% Statements 4/4
75% Branches 3/4
100% Functions 1/1
100% Lines 4/4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                          210× 210× 210×   210×    
import getOffsetParent from './getOffsetParent';
import getOffsetRectRelativeToCustomParent from './getOffsetRectRelativeToCustomParent';
 
/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
export default function getReferenceOffsets(state, popper, reference) {
    const isParentFixed = state.position === 'fixed';
    const isParentTransformed = state.isParentTransformed;
    const offsetParent = getOffsetParent((isParentFixed && isParentTransformed) ? reference : popper);
 
    return getOffsetRectRelativeToCustomParent(reference, offsetParent, isParentFixed, isParentTransformed);
}