Files
MoonPro.net/MP-LAND/Scripts/src/modifiers/inner.js
T
Samuele E. Locatelli 4b8ed3219b Update popper packages
2020-01-31 16:44:33 +01:00

28 lines
922 B
JavaScript

import getClientRect from '../utils/getClientRect';
import getOppositePlacement from '../utils/getOppositePlacement';
/**
* @function
* @memberof Modifiers
* @argument {Object} data - The data object generated by `update` method
* @argument {Object} options - Modifiers configuration and options
* @returns {Object} The data object, properly modified
*/
export default function inner(data) {
const placement = data.placement;
const basePlacement = placement.split('-')[0];
const { popper, reference } = data.offsets;
const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
popper[isHoriz ? 'left' : 'top'] =
reference[basePlacement] -
(subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
data.placement = getOppositePlacement(placement);
data.offsets.popper = getClientRect(popper);
return data;
}