UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

49 lines (40 loc) 1.73 kB
import { css } from "styled-components"; import { isHorizontal, isVertical } from "./isPosition"; import { isAlignCenter, isAlignEnd, isAlignStart } from "./isAlign"; import { TOOLTIP_ARROW_SIZE, TOOLTIP_PADDING } from "../consts"; var resolveContainerAlign = function resolveContainerAlign(_ref) { var align = _ref.align, position = _ref.position, containerTop = _ref.containerTop, containerLeft = _ref.containerLeft, containerHeight = _ref.containerHeight, containerWidth = _ref.containerWidth, tooltipHeight = _ref.tooltipHeight, tooltipWidth = _ref.tooltipWidth; if (isAlignCenter(align)) { if (isHorizontal(position)) { return css(["top:", "px;"], Math.floor(containerTop + containerHeight / 2 - tooltipHeight / 2)); } if (isVertical(position)) { return css(["left:", "px;"], Math.floor(containerLeft + containerWidth / 2 - tooltipWidth / 2)); } return null; } if (isAlignStart(align)) { if (isHorizontal(position)) { return css(["top:", "px;"], Math.floor(containerTop - parseFloat(TOOLTIP_ARROW_SIZE))); } if (isVertical(position)) { return css(["left:", "px;"], Math.floor(containerLeft + containerWidth / 2 - parseFloat(TOOLTIP_PADDING) - parseFloat(TOOLTIP_ARROW_SIZE))); } } else if (isAlignEnd(align)) { if (isHorizontal(position)) { return css(["top:", "px;"], Math.floor(containerTop - tooltipHeight + containerHeight + parseFloat(TOOLTIP_ARROW_SIZE))); } if (isVertical(position)) { return css(["left:", "px;"], Math.floor(containerLeft + containerWidth - tooltipWidth + parseFloat(TOOLTIP_ARROW_SIZE))); } } return null; }; export default resolveContainerAlign;