UNPKG

@stackoverfloweth/prefect-design

Version:

A collection of low-level Vue components.

141 lines (113 loc) 3.87 kB
import { PositionMethod, Position } from '@/types/position' export const top: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top - content.height const left = target.left - container.left + target.width / 2 - content.width / 2 return { top, left, } } export const right: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top - content.height / 2 + target.height / 2 const left = target.left - container.left + target.width return { top, left, } } export const rightInside: PositionMethod = function(target, content, container): Position { const top = target.top - container.top - content.height / 2 + target.height / 2 const left = target.right - content.width return { top, left, } } export const bottom: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top + target.height const left = target.left - container.left + target.width / 2 - content.width / 2 return { top, left, } } export const left: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top - content.height / 2 + target.height / 2 const left = target.left - container.left - content.width return { top, left, } } export const leftInside: PositionMethod = function(target, content, container): Position { const top = target.top - container.top - content.height / 2 + target.height / 2 const { left } = target return { top, left, } } export const topRight: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top - content.height const left = target.right - container.left - content.width return { top, left, } } export const bottomRight: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top + target.height const left = target.right - container.left - content.width return { top, left, } } export const topLeft: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top - content.height const left = target.right - container.left - target.width return { top, left, } } export const bottomLeft: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top + target.height const left = target.right - container.left - target.width return { top, left, } } export const leftBottom: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.bottom - container.top - content.height const left = target.left - container.left - content.width return { top, left, } } export const rightBottom: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.bottom - container.top - content.height const left = target.left - container.left + target.width return { top, left, } } export const leftTop: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top const left = target.left - container.left - content.width return { top, left, } } export const rightTop: PositionMethod = function(target: DOMRect, content: DOMRect, container: DOMRect): Position { const top = target.top - container.top const left = target.left - container.left + target.width return { top, left, } }