UNPKG

@vuesax-alpha/nightly

Version:
47 lines (42 loc) 1.57 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var index = require('../utils/index.js'); function computeCoordsFromPlacement({ reference, floating }, placement, rtl) { const sideAxis = index.getSideAxis(placement); const alignmentAxis = index.getAlignmentAxis(placement); const alignLength = index.getAxisLength(alignmentAxis); const side = index.getSide(placement); const isVertical = sideAxis === "y"; const commonX = reference.x + reference.width / 2 - floating.width / 2; const commonY = reference.y + reference.height / 2 - floating.height / 2; const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; let coords; switch (side) { case "top": coords = { x: commonX, y: reference.y - floating.height }; break; case "bottom": coords = { x: commonX, y: reference.y + reference.height }; break; case "right": coords = { x: reference.x + reference.width, y: commonY }; break; case "left": coords = { x: reference.x - floating.width, y: commonY }; break; default: coords = { x: reference.x, y: reference.y }; } switch (index.getAlignment(placement)) { case "start": coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); break; case "end": coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); break; default: } return coords; } exports.computeCoordsFromPlacement = computeCoordsFromPlacement; //# sourceMappingURL=compute-coord-from-placement.js.map