{"version":3,"file":"get-offset-parent.mjs","sources":["../../../../../../../packages/hooks/use-floating/dom/platform/get-offset-parent.ts"],"sourcesContent":["import {\n  getContainingBlock,\n  getNodeName,\n  getWindow,\n  isContainingBlock,\n  isHTMLElement,\n  isTableElement,\n} from '@vuesax-alpha/hooks/use-floating/utils/dom'\n\ntype Polyfill = (element: HTMLElement) => Element | null\n\nfunction getTrueOffsetParent(\n  element: Element,\n  polyfill: Polyfill | undefined\n): Element | null {\n  if (\n    !isHTMLElement(element) ||\n    getComputedStyle(element).position === 'fixed'\n  ) {\n    return null\n  }\n\n  if (polyfill) {\n    return polyfill(element)\n  }\n\n  return element.offsetParent\n}\n\nexport function getOffsetParent(\n  element: Element,\n  polyfill?: Polyfill\n): Element | Window {\n  const window = getWindow(element)\n\n  if (!isHTMLElement(element)) {\n    return window\n  }\n\n  let offsetParent = getTrueOffsetParent(element, polyfill)\n\n  while (\n    offsetParent &&\n    isTableElement(offsetParent) &&\n    getComputedStyle(offsetParent).position === 'static'\n  ) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill)\n  }\n\n  if (\n    offsetParent &&\n    (getNodeName(offsetParent) === 'html' ||\n      (getNodeName(offsetParent) === 'body' &&\n        getComputedStyle(offsetParent).position === 'static' &&\n        !isContainingBlock(offsetParent)))\n  ) {\n    return window\n  }\n\n  return offsetParent || getContainingBlock(element) || window\n}\n"],"names":[],"mappings":";;AAWA,SAAS,mBAAA,CACP,SACA,QACgB,EAAA;AAChB,EACE,IAAA,CAAC,cAAc,OAAO,CAAA,IACtB,iBAAiB,OAAO,CAAA,CAAE,aAAa,OACvC,EAAA;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,OAAO,SAAS,OAAO,CAAA,CAAA;AAAA,GACzB;AAEA,EAAA,OAAO,OAAQ,CAAA,YAAA,CAAA;AACjB,CAAA;AAEgB,SAAA,eAAA,CACd,SACA,QACkB,EAAA;AAClB,EAAM,MAAA,MAAA,GAAS,UAAU,OAAO,CAAA,CAAA;AAEhC,EAAI,IAAA,CAAC,aAAc,CAAA,OAAO,CAAG,EAAA;AAC3B,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAEA,EAAI,IAAA,YAAA,GAAe,mBAAoB,CAAA,OAAA,EAAS,QAAQ,CAAA,CAAA;AAExD,EACE,OAAA,YAAA,IACA,eAAe,YAAY,CAAA,IAC3B,iBAAiB,YAAY,CAAA,CAAE,aAAa,QAC5C,EAAA;AACA,IAAe,YAAA,GAAA,mBAAA,CAAoB,cAAc,QAAQ,CAAA,CAAA;AAAA,GAC3D;AAEA,EAAA,IACE,iBACC,WAAY,CAAA,YAAY,CAAM,KAAA,MAAA,IAC5B,YAAY,YAAY,CAAA,KAAM,MAC7B,IAAA,gBAAA,CAAiB,YAAY,CAAE,CAAA,QAAA,KAAa,YAC5C,CAAC,iBAAA,CAAkB,YAAY,CACnC,CAAA,EAAA;AACA,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAEA,EAAO,OAAA,YAAA,IAAgB,kBAAmB,CAAA,OAAO,CAAK,IAAA,MAAA,CAAA;AACxD;;;;"}