{"version":3,"file":"utils.mjs","sources":["../../../../src/components/LegacyTooltip/utils.ts"],"sourcesContent":["import {\n  type GetReplacement,\n  type GetTooltipStyle,\n  type LegacyTooltipPosition,\n} from './LegacyTooltip.types'\n\nexport function getReplacement({\n  tooltip,\n  keepInContainer,\n  placement,\n  rootElement,\n}: GetReplacement): LegacyTooltipPosition {\n  if (!keepInContainer) {\n    return placement\n  }\n\n  const {\n    width: tooltipWidth,\n    height: tooltipHeight,\n    top: tooltipTop,\n    left: tooltipLeft,\n  } = tooltip.getBoundingClientRect()\n\n  const {\n    width: rootWidth,\n    height: rootHeight,\n    top: rootTop,\n    left: rootLeft,\n  } = rootElement.getBoundingClientRect()\n\n  const isOverTop = tooltipTop < rootTop\n  const isOverBottom = tooltipTop + tooltipHeight > rootTop + rootHeight\n  const isOverLeft = tooltipLeft < rootLeft\n  const isOverRight = tooltipLeft + tooltipWidth > rootLeft + rootWidth\n\n  if (isOverTop) {\n    if (isOverLeft) {\n      return 'bottom-left'\n    }\n    if (isOverRight) {\n      return 'bottom-right'\n    }\n    return 'bottom-center'\n  }\n\n  if (isOverBottom) {\n    if (isOverLeft) {\n      return 'top-left'\n    }\n    if (isOverRight) {\n      return 'top-right'\n    }\n    return 'top-center'\n  }\n\n  if (isOverLeft) {\n    if (isOverTop) {\n      return 'right-top'\n    }\n    if (isOverBottom) {\n      return 'right-bottom'\n    }\n    return 'right-center'\n  }\n\n  if (isOverRight) {\n    if (isOverTop) {\n      return 'left-top'\n    }\n    if (isOverBottom) {\n      return 'left-bottom'\n    }\n    return 'left-center'\n  }\n\n  return placement\n}\n\nexport function getTooltipStyle({\n  tooltipContainer,\n  placement,\n  offset,\n  allowHover,\n}: GetTooltipStyle) {\n  const {\n    top: containerTop,\n    left: containerLeft,\n    width: containerWidth,\n    height: containerHeight,\n  } = tooltipContainer.getBoundingClientRect()\n\n  let top = containerTop\n  let left = containerLeft\n  let translateX = 0\n  let translateY = 0\n\n  let offsetTop = 0\n  let offsetRight = 0\n  let offsetBottom = 0\n  let offsetLeft = 0\n  let offsetStyle = {}\n\n  switch (placement) {\n    case 'top-center':\n    case 'top-left':\n    case 'top-right':\n      translateY = -100\n      offsetBottom = offset\n      break\n    case 'right-center':\n    case 'right-top':\n    case 'right-bottom':\n      left += containerWidth\n      offsetLeft = offset\n      break\n    case 'bottom-center':\n    case 'bottom-left':\n    case 'bottom-right':\n      top += containerHeight\n      offsetTop = offset\n      break\n    case 'left-center':\n    case 'left-top':\n    case 'left-bottom':\n      translateX = -100\n      offsetRight = offset\n      break\n  }\n\n  switch (placement) {\n    case 'top-center':\n    case 'bottom-center':\n      translateX = -50\n      left += containerWidth / 2\n      break\n    case 'top-right':\n    case 'bottom-right':\n      translateX = -100\n      left += containerWidth\n      break\n    case 'right-center':\n    case 'left-center':\n      translateY = -50\n      top += containerHeight / 2\n      break\n    case 'right-bottom':\n    case 'left-bottom':\n      translateY = -100\n      top += containerHeight\n      break\n  }\n\n  if (allowHover) {\n    offsetStyle = {\n      paddingTop: offsetTop,\n      paddingRight: offsetRight,\n      paddingBottom: offsetBottom,\n      paddingLeft: offsetLeft,\n    }\n  } else {\n    top += offsetTop - offsetBottom\n    left += offsetLeft - offsetRight\n  }\n\n  return {\n    position: 'fixed',\n    top,\n    left,\n    transform: `translate(${translateX}%, ${translateY}%)`,\n    ...offsetStyle,\n  }\n}\n"],"names":["getReplacement","tooltip","keepInContainer","placement","rootElement","width","tooltipWidth","height","tooltipHeight","top","tooltipTop","left","tooltipLeft","getBoundingClientRect","rootWidth","rootHeight","rootTop","rootLeft","isOverTop","isOverBottom","isOverLeft","isOverRight","getTooltipStyle","tooltipContainer","offset","allowHover","containerTop","containerLeft","containerWidth","containerHeight","translateX","translateY","offsetTop","offsetRight","offsetBottom","offsetLeft","offsetStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","position","transform"],"mappings":"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"}