{"version":3,"file":"dom.mjs","sources":["../../../../packages/utils/dom.ts"],"sourcesContent":["import { camelize } from \"./utils\";\nimport type { Nullable } from \"./types\";\nexport const getStyle = function (\n  element: HTMLElement,\n  styleName: string\n): string {\n  if (!element || !styleName) return \"\";\n  styleName = camelize(styleName);\n  if (styleName === \"float\") {\n    styleName = \"cssFloat\";\n  }\n  try {\n    const style = element.style[styleName];\n    if (style) return style;\n    const computed = document.defaultView?.getComputedStyle(element, \"\");\n    return computed ? computed[styleName] : \"\";\n  } catch (e) {\n    return element.style[styleName];\n  }\n};\n\nexport const isScroll = (\n  el: HTMLElement,\n  isVertical?: Nullable<boolean>\n): RegExpMatchArray | null => {\n  const determinedDirection = isVertical === null || isVertical === undefined;\n  const overflow = determinedDirection\n    ? getStyle(el, \"overflow\")\n    : isVertical\n    ? getStyle(el, \"overflow-y\")\n    : getStyle(el, \"overflow-x\");\n\n  return overflow.match(/(scroll|auto|overlay)/);\n};\n\nexport const getScrollContainer = (\n  el: HTMLElement,\n  isVertical?: Nullable<boolean>\n): Window | HTMLElement | undefined => {\n  let parent: HTMLElement = el;\n  while (parent) {\n    if ([window, document, document.documentElement].includes(parent)) {\n      return window;\n    }\n    if (isScroll(parent, isVertical)) {\n      return parent;\n    }\n    parent = parent.parentNode as HTMLElement;\n  }\n  return parent;\n};\nexport const isInContainer = (\n  el: Element | undefined,\n  container: Element | Window | undefined\n): boolean => {\n  if (!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"],"names":[],"mappings":"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"}