tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 2.47 kB
Source Map (JSON)
{"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;;;;"}