vuesax-alpha
Version:
A Component Library for Vue 3
1 lines • 2.47 kB
Source Map (JSON)
{"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;;;;"}