{"version":3,"file":"useResizeObserver.mjs","sources":["../../../components/hooks/useResizeObserver.ts"],"sourcesContent":["import { Ref, watch, onBeforeUnmount } from 'vue';\n\nexport default function useResizeObserver(\n  container: Ref<HTMLElement>,\n  callback: (data: ResizeObserverEntry[]) => void,\n) {\n  if (typeof window === 'undefined') return;\n\n  const isSupport = window && (window as Window & typeof globalThis).ResizeObserver;\n  // unit tests do not need any warn console; too many warns influence focusing on more important log info\n  if (!isSupport) return;\n\n  let containerObserver: ResizeObserver = null;\n\n  const cleanupObserver = () => {\n    if (!containerObserver || !container.value) return;\n    containerObserver.unobserve(container.value);\n    containerObserver.disconnect();\n    containerObserver = null;\n  };\n\n  const addObserver = (el: HTMLElement) => {\n    containerObserver = new ResizeObserver(callback);\n    containerObserver.observe(el);\n  };\n\n  // can not use container.value to judge\n  container &&\n    watch(\n      container,\n      (el) => {\n        cleanupObserver();\n        el && addObserver(el);\n      },\n      { immediate: true, flush: 'post' },\n    );\n\n  onBeforeUnmount(() => {\n    cleanupObserver();\n  });\n}\n"],"names":["useResizeObserver","container","callback","window","isSupport","ResizeObserver","containerObserver","cleanupObserver","value","unobserve","disconnect","addObserver","el","observe","watch","immediate","flush","onBeforeUnmount"],"mappings":";;;;;;;;AAEwB,SAAAA,iBAAAA,CACtBC,WACAC,QACA,EAAA;AACA,EAAA,IAAI,OAAOC,MAAW,KAAA,WAAA,EAAa,OAAA;AAE7B,EAAA,IAAAC,SAAA,GAAYD,UAAWA,MAAsC,CAAAE,cAAA,CAAA;EAEnE,IAAI,CAACD,SAAA,EAAW,OAAA;EAEhB,IAAIE,iBAAoC,GAAA,IAAA,CAAA;AAExC,EAAA,IAAMC,kBAAkB,SAAlBA,kBAAwB;AACxB,IAAA,IAAA,CAACD,iBAAqB,IAAA,CAACL,SAAU,CAAAO,KAAA,EAAO,OAAA;AAC1BF,IAAAA,iBAAA,CAAAG,SAAA,CAAUR,UAAUO,KAAK,CAAA,CAAA;IAC3CF,iBAAA,CAAkBI,UAAW,EAAA,CAAA;AACTJ,IAAAA,iBAAA,GAAA,IAAA,CAAA;GACtB,CAAA;AAEM,EAAA,IAAAK,WAAA,GAAc,SAAdA,WAAAA,CAAeC,EAAoB,EAAA;AACnBN,IAAAA,iBAAA,GAAA,IAAID,eAAeH,QAAQ,CAAA,CAAA;AAC/CI,IAAAA,iBAAA,CAAkBO,QAAQD,EAAE,CAAA,CAAA;GAC9B,CAAA;AAIEX,EAAAA,SAAA,IAAAa,KAAA,CACEb,SAAA,EACA,UAACW,EAAO,EAAA;AACUL,IAAAA,eAAA,EAAA,CAAA;AAChBK,IAAAA,EAAA,IAAMD,YAAYC,EAAE,CAAA,CAAA;AACtB,GAAA,EACA;AAAEG,IAAAA,SAAA,EAAW,IAAM;AAAAC,IAAAA,KAAA,EAAO,MAAA;AAAO,GACnC,CAAA,CAAA;AAEFC,EAAAA,eAAA,CAAgB,YAAM;AACJV,IAAAA,eAAA,EAAA,CAAA;AAClB,GAAC,CAAA,CAAA;AACH;;;;"}