| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | import getBasePlacement from "./getBasePlacement.js";import getVariation from "./getVariation.js";import getMainAxisFromPlacement from "./getMainAxisFromPlacement.js";import { top, right, bottom, left, start, end } from "../enums.js";export default function computeOffsets(_ref) {  var reference = _ref.reference,      element = _ref.element,      placement = _ref.placement;  var basePlacement = placement ? getBasePlacement(placement) : null;  var variation = placement ? getVariation(placement) : null;  var commonX = reference.x + reference.width / 2 - element.width / 2;  var commonY = reference.y + reference.height / 2 - element.height / 2;  var offsets;  switch (basePlacement) {    case top:      offsets = {        x: commonX,        y: reference.y - element.height      };      break;    case bottom:      offsets = {        x: commonX,        y: reference.y + reference.height      };      break;    case right:      offsets = {        x: reference.x + reference.width,        y: commonY      };      break;    case left:      offsets = {        x: reference.x - element.width,        y: commonY      };      break;    default:      offsets = {        x: reference.x,        y: reference.y      };  }  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;  if (mainAxis != null) {    var len = mainAxis === 'y' ? 'height' : 'width';    switch (variation) {      case start:        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);        break;      case end:        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);        break;      default:    }  }  return offsets;}
 |