UNPKG

@aotearoan/neon

Version:

Neon is a lightweight design library of Vue 3 components with minimal dependencies.

3 lines (2 loc) 1.29 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../enums/NeonPosition.cjs.js"),a=require("./NeonPlacementUtils.cjs.js");class n{static calculatePlacement(e,i,t,s){const{maxWidth:c,maxHeight:P}=a.NeonPlacementUtils.calculateBounds(s),r=a.NeonPlacementUtils.calculateAvailableSpace(e,c,P,s),N=n.calculatePlacementOrder(t);return n.findPlacement(i,r,N)}static calculatePlacementOrder(e){switch(e){case o.NeonPosition.Top:return[o.NeonPosition.Top,o.NeonPosition.Bottom,o.NeonPosition.Left,o.NeonPosition.Right];case o.NeonPosition.Bottom:return[o.NeonPosition.Bottom,o.NeonPosition.Top,o.NeonPosition.Left,o.NeonPosition.Right];case o.NeonPosition.Left:return[o.NeonPosition.Left,o.NeonPosition.Right,o.NeonPosition.Top,o.NeonPosition.Bottom];case o.NeonPosition.Right:return[o.NeonPosition.Right,o.NeonPosition.Left,o.NeonPosition.Top,o.NeonPosition.Bottom]}}static findPlacement(e,i,t){const s=t.findIndex(c=>n.validPlacement(e,i,c));return t[s]||t[0]}static validPlacement(e,i,t){switch(t){case o.NeonPosition.Top:case o.NeonPosition.Bottom:return e.offsetHeight<=i[t];case o.NeonPosition.Left:case o.NeonPosition.Right:return e.offsetWidth<=i[t]}}}exports.NeonTooltipPlacementUtils=n; //# sourceMappingURL=NeonTooltipPlacementUtils.cjs.js.map