UNPKG

@opensig/opendesign

Version:

40 lines (39 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const vue = require("vue"); const dom = require("../_utils/dom.js"); const useResizeObserver = require("./use-resize-observer.js"); function useElementOverflown(elementRef) { const result = vue.ref(false); const check = () => { result.value = dom.isOverflown(vue.toValue(elementRef) ?? void 0); }; vue.onMounted(() => { const { observe, unobserve } = useResizeObserver.useResizeObserver(); const el = vue.toValue(elementRef); if (el) { check(); observe(el, check); } const stopWatch = vue.watch( () => vue.toValue(elementRef), (_el, oldEl) => { if (oldEl) unobserve(oldEl, check); if (_el) { check(); observe(_el, check); } else { result.value = false; } }, { flush: "post" } ); vue.onUnmounted(() => { stopWatch(); const _el = vue.toValue(elementRef); if (_el) unobserve(_el, check); }); }); return result; } exports.useElementOverflown = useElementOverflown;