{"version":3,"file":"useElementLazyRender.mjs","sources":["../../src/hooks/useElementLazyRender.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '../_common/js/utils/observe';\n\nexport function useElementLazyRender(labelRef: Ref<HTMLElement>, lazyLoad: Ref<boolean>) {\n  const ioObserver = ref<IntersectionObserver>();\n  const showElement = ref(true);\n\n  const handleLazyLoad = () => {\n    if (!lazyLoad.value) return;\n    showElement.value = false;\n    const io = observe(\n      labelRef.value,\n      null,\n      () => {\n        showElement.value = true;\n      },\n      10,\n    );\n    ioObserver.value = io;\n  };\n\n  onMounted(handleLazyLoad);\n\n  lazyLoad.value && watch([lazyLoad], handleLazyLoad);\n\n  onBeforeUnmount(() => {\n    if (!lazyLoad.value) return;\n    ioObserver.value?.unobserve(labelRef.value);\n  });\n\n  return {\n    showElement,\n  };\n}\n\nexport default useElementLazyRender;\n"],"names":["onBeforeUnmount","showElement"],"mappings":";;;;;;;;;AAGO,SAAA,oBAAA,CAAA,QAAA,EAAA,QAAA,EAAA;AACL,EAAA,IAAA,UAAA,GAAA,GAAA,EAAA,CAAA;AACM,EAAA,IAAA,WAAA,GAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AAEN,EAAA,IAAA,cAAA,GAAA,SAAA,cAAA,GAAA;AACE,IAAA,IAAA,CAAA,QAAA,CAAA,KAAA,EAAA,OAAA;;;;;;;;;AAiBFA,EAAAA,eAAAA,CAAAA,YAAAA;AAAsB,IAAA,IAAA,iBAAA,CAAA;AACpB,IAAA,IAAA,CAAA,QAAA,CAAA,KAAA,EAAA,OAAA;AACW,IAAA,CAAA,iBAAA,GAAA,UAAA,CAAA,KAAA,MAAA,IAAA,IAAA,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAA,SAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AACb,GAAA,CAAA,CAAA;;AAGEC,IAAAA,WAAAA,EAAAA,WAAAA;;AAEJ;;;;"}