{"version":3,"file":"position.mjs","sources":["../../../../../packages/utils/dom/position.ts"],"sourcesContent":["import { isClient } from '@vueuse/core'\n\nexport const isInContainer = (\n  el?: Element,\n  container?: Element | Window\n): boolean => {\n  if (!isClient || !el || !container) return false\n\n  const elRect = el.getBoundingClientRect()\n\n  let containerRect: Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right'>\n  if (container instanceof Element) {\n    containerRect = container.getBoundingClientRect()\n  } else {\n    containerRect = {\n      top: 0,\n      right: window.innerWidth,\n      bottom: window.innerHeight,\n      left: 0,\n    }\n  }\n  return (\n    elRect.top < containerRect.bottom &&\n    elRect.bottom > containerRect.top &&\n    elRect.right > containerRect.left &&\n    elRect.left < containerRect.right\n  )\n}\n\nexport const getOffsetTop = (el: HTMLElement) => {\n  let offset = 0\n  let parent = el\n\n  while (parent) {\n    offset += parent.offsetTop\n    parent = parent.offsetParent as HTMLElement\n  }\n\n  return offset\n}\n\nexport const getOffsetTopDistance = (\n  el: HTMLElement,\n  containerEl: HTMLElement\n) => {\n  return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl))\n}\n\nexport const getClientXY = (event: MouseEvent | TouchEvent) => {\n  let clientX: number\n  let clientY: number\n  if (event.type === 'touchend') {\n    clientY = (event as TouchEvent).changedTouches[0].clientY\n    clientX = (event as TouchEvent).changedTouches[0].clientX\n  } else if (event.type.startsWith('touch')) {\n    clientY = (event as TouchEvent).touches[0].clientY\n    clientX = (event as TouchEvent).touches[0].clientX\n  } else {\n    clientY = (event as MouseEvent).clientY\n    clientX = (event as MouseEvent).clientX\n  }\n  return {\n    clientX,\n    clientY,\n  }\n}\n"],"names":[],"mappings":";;AAEa,MAAA,aAAA,GAAgB,CAC3B,EAAA,EACA,SACY,KAAA;AACZ,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,EAAA,IAAM,CAAC,SAAA;AAAW,IAAO,OAAA,KAAA,CAAA;AAE3C,EAAM,MAAA,MAAA,GAAS,GAAG,qBAAsB,EAAA,CAAA;AAExC,EAAI,IAAA,aAAA,CAAA;AACJ,EAAA,IAAI,qBAAqB,OAAS,EAAA;AAChC,IAAA,aAAA,GAAgB,UAAU,qBAAsB,EAAA,CAAA;AAAA,GAC3C,MAAA;AACL,IAAgB,aAAA,GAAA;AAAA,MACd,GAAK,EAAA,CAAA;AAAA,MACL,OAAO,MAAO,CAAA,UAAA;AAAA,MACd,QAAQ,MAAO,CAAA,WAAA;AAAA,MACf,IAAM,EAAA,CAAA;AAAA,KACR,CAAA;AAAA,GACF;AACA,EAAA,OACE,MAAO,CAAA,GAAA,GAAM,aAAc,CAAA,MAAA,IAC3B,OAAO,MAAS,GAAA,aAAA,CAAc,GAC9B,IAAA,MAAA,CAAO,KAAQ,GAAA,aAAA,CAAc,IAC7B,IAAA,MAAA,CAAO,OAAO,aAAc,CAAA,KAAA,CAAA;AAEhC,EAAA;AAEa,MAAA,YAAA,GAAe,CAAC,EAAoB,KAAA;AAC/C,EAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AACb,EAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AAEb,EAAA,OAAO,MAAQ,EAAA;AACb,IAAA,MAAA,IAAU,MAAO,CAAA,SAAA,CAAA;AACjB,IAAA,MAAA,GAAS,MAAO,CAAA,YAAA,CAAA;AAAA,GAClB;AAEA,EAAO,OAAA,MAAA,CAAA;AACT,EAAA;AAEa,MAAA,oBAAA,GAAuB,CAClC,EAAA,EACA,WACG,KAAA;AACH,EAAA,OAAO,KAAK,GAAI,CAAA,YAAA,CAAa,EAAE,CAAI,GAAA,YAAA,CAAa,WAAW,CAAC,CAAA,CAAA;AAC9D,EAAA;AAEa,MAAA,WAAA,GAAc,CAAC,KAAmC,KAAA;AAC7D,EAAI,IAAA,OAAA,CAAA;AACJ,EAAI,IAAA,OAAA,CAAA;AACJ,EAAI,IAAA,KAAA,CAAM,SAAS,UAAY,EAAA;AAC7B,IAAW,OAAA,GAAA,KAAA,CAAqB,eAAe,CAAG,CAAA,CAAA,OAAA,CAAA;AAClD,IAAW,OAAA,GAAA,KAAA,CAAqB,eAAe,CAAG,CAAA,CAAA,OAAA,CAAA;AAAA,GACzC,MAAA,IAAA,KAAA,CAAM,IAAK,CAAA,UAAA,CAAW,OAAO,CAAG,EAAA;AACzC,IAAW,OAAA,GAAA,KAAA,CAAqB,QAAQ,CAAG,CAAA,CAAA,OAAA,CAAA;AAC3C,IAAW,OAAA,GAAA,KAAA,CAAqB,QAAQ,CAAG,CAAA,CAAA,OAAA,CAAA;AAAA,GACtC,MAAA;AACL,IAAA,OAAA,GAAW,KAAqB,CAAA,OAAA,CAAA;AAChC,IAAA,OAAA,GAAW,KAAqB,CAAA,OAAA,CAAA;AAAA,GAClC;AACA,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}