{"version":3,"file":"useListener.mjs","sources":["../../src/hooks/useListener.tsx"],"sourcesContent":["import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n  onMounted(() => {\n    window.addEventListener(type, listener);\n  });\n\n  onBeforeUnmount(() => {\n    window.removeEventListener(type, listener);\n  });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n  useListener('resize', listener);\n\n  let resizeObserver: ResizeObserver = null;\n\n  onMounted(() => {\n    if (!window.ResizeObserver || !observer) return;\n    resizeObserver = new window.ResizeObserver(listener);\n    resizeObserver.observe(observer);\n  });\n\n  onBeforeUnmount(() => {\n    resizeObserver?.disconnect();\n  });\n}\n"],"names":["onMounted","window","onBeforeUnmount","useListener","resizeObserver"],"mappings":";;;;;;;;AAKO,SAAA,WAAA,CAAA,IAAA,EAAA,QAAA,EAAA;AACLA,EAAAA,SAAAA,CAAAA,YAAAA;AACSC,IAAAA,MAAAA,CAAAA,gBAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AACT,GAAA,CAAA,CAAA;AAEAC,EAAAA,eAAAA,CAAAA,YAAAA;AACSD,IAAAA,MAAAA,CAAAA,mBAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AACT,GAAA,CAAA,CAAA;AACF,CAAA;AAEO,SAAA,SAAA,CAAA,QAAA,EAAA,QAAA,EAAA;AACLE,EAAAA,WAAAA,CAAAA,QAAAA,EAAAA,QAAAA,CAAAA,CAAAA;;AAIAH,EAAAA,SAAAA,CAAAA,YAAAA;AACM,IAAA,IAAA,CAAA,MAAA,CAAA,cAAA,IAAA,CAAA,QAAA,EAAA,OAAA;AACaI,IAAAA,cAAAA,GAAAA,IAAAA,MAAAA,CAAAA,cAAAA,CAAAA,QAAAA,CAAAA,CAAAA;AACjBA,IAAAA,cAAAA,CAAAA,OAAAA,CAAAA,QAAAA,CAAAA,CAAAA;AACF,GAAA,CAAA,CAAA;AAEAF,EAAAA,eAAAA,CAAAA,YAAAA;AAAsB,IAAA,IAAA,eAAA,CAAA;;AAEtB,GAAA,CAAA,CAAA;AACF;;;;"}