/* Copyright © 2024 Melbet - All Rights Reserved */ import{onScopeDispose as f,watchEffect as l}from"../../../../shared-assets/__shared_vue_deps_SRT2KB67.js";import{useLogger as a,noop as b}from"./entry-Bl6dkD65.js";import{createSharedComposable as d}from"./SrvKkP3v8vpZ.js";import{unrefElement as m}from"./_r9fP6sa7pPh.js";const w=d(()=>{const v=a();let r;const s=new Map,o=window&&"ResizeObserver"in window,i=e=>e.forEach(n=>{var c;return(c=s.get(n.target))==null?void 0:c.forEach(u=>u(n))}),t=e=>{!r||!e||(r.unobserve(e),s.delete(e))},p=(e,n)=>{if(!r||!e)return b;const c=()=>t(e);r.observe(e);const u=s.get(e);return u?u.add(n):s.set(e,new Set([n])),c};if(o)try{r=new ResizeObserver(i)}catch(e){v.error("useResizeObserver",e)}return f(()=>{r==null||r.disconnect(),r=void 0}),{resizeObserve:p,resizeUnobserve:t}}),g=(v,r)=>{const{resizeObserve:s}=w();let o=b,i=b;const t=()=>{i(),o()};return i=l(()=>{const p=m(v);o(),o=s(p,r)}),f(t),t};export{w as useResizeObserver,g as useTemplateResizeObserver};