{"version":3,"file":"dom_misc.min.mjs","names":[],"sources":["../../../src/util/dom_misc.ts"],"sourcesContent":["/**\n * Returns element scroll offsets\n * @param {HTMLElement} element Element to operate on\n * @return {Object} Object with left/top values\n */\nexport function getScrollLeftTop(element: HTMLElement | null) {\n  const doc = element && getDocumentFromElement(element);\n  let left = 0,\n    top = 0;\n  if (!element || !doc) {\n    return { left, top };\n  }\n  let elementLoop: HTMLElement | Document | ShadowRoot = element;\n  const docElement = doc.documentElement,\n    body = doc.body || {\n      scrollLeft: 0,\n      scrollTop: 0,\n    };\n  // While loop checks (and then sets element to) .parentNode OR .host\n  //  to account for ShadowDOM. We still want to traverse up out of ShadowDOM,\n  //  but the .parentNode of a root ShadowDOM node will always be null, instead\n  //  it should be accessed through .host. See http://stackoverflow.com/a/24765528/4383938\n  while (\n    elementLoop &&\n    (elementLoop.parentNode || (elementLoop as unknown as ShadowRoot).host)\n  ) {\n    elementLoop = (elementLoop.parentNode ||\n      (elementLoop as unknown as ShadowRoot).host) as\n      | HTMLElement\n      | Document\n      | ShadowRoot;\n    if (elementLoop === doc) {\n      left = body.scrollLeft || docElement.scrollLeft || 0;\n      top = body.scrollTop || docElement.scrollTop || 0;\n    } else {\n      left += (elementLoop as HTMLElement).scrollLeft || 0;\n      top += (elementLoop as HTMLElement).scrollTop || 0;\n    }\n\n    if (\n      elementLoop.nodeType === 1 &&\n      (elementLoop as HTMLElement).style.position === 'fixed'\n    ) {\n      break;\n    }\n  }\n\n  return { left, top };\n}\n\nexport const getDocumentFromElement = (el: HTMLElement) =>\n  el.ownerDocument || null;\n\nexport const getWindowFromElement = (el: HTMLElement) =>\n  el.ownerDocument?.defaultView || null;\n"],"mappings":"AAKA,SAAgB,EAAiB,EAAA,CAC/B,IAAM,EAAM,GAAW,EAAuB,EAAA,CAC1C,EAAO,EACT,EAAM,EACR,GAAA,CAAK,GAAA,CAAY,EACf,MAAO,CAAE,KAAA,EAAM,IAAA,EAAA,CAEjB,IAAI,EAAmD,EACjD,EAAa,EAAI,gBACrB,EAAO,EAAI,MAAQ,CACjB,WAAY,EACZ,UAAW,EAAA,CAMf,KACE,IACC,EAAY,YAAe,EAAsC,QAElE,EAAe,EAAY,YACxB,EAAsC,KAIrC,IAAgB,GAClB,EAAO,EAAK,YAAc,EAAW,YAAc,EACnD,EAAM,EAAK,WAAa,EAAW,WAAa,IAEhD,GAAS,EAA4B,YAAc,EACnD,GAAQ,EAA4B,WAAa,GAIjD,EAAY,WAAa,GACxB,EAA4B,MAAM,WAAa,WAMpD,MAAO,CAAE,KAAA,EAAM,IAAA,EAAA,CAGjB,MAAa,EAA0B,GACrC,EAAG,eAAiB,KAET,EAAwB,GAAA,CAAA,IAAA,EAAA,QAChC,EAAA,EAAA,gBAAA,KAAA,IAAA,GAAA,EAAe,cAAe,MAAA,OAAA,KAAA,uBAAA,KAAA,iBAAA,KAAA"}