{"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","refElement","SUPPORTS_RESIZE_OBSERVER","useResizeObserver","callback","resizeRef","contentRect","observer","ResizeObserver","entries","length","value","disconnect","newValue","oldValue","unobserve","undefined","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { refElement } from '@/utils'\nimport { SUPPORTS_RESIZE_OBSERVER } from '@/utils/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\n\ninterface ResizeState {\n  resizeRef: Ref<HTMLElement | undefined>\n  contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver(\n  callback?: ResizeObserverCallback\n): ResizeState {\n  const resizeRef = ref<HTMLElement>()\n  const contentRect = ref<DOMRectReadOnly>()\n\n  if (SUPPORTS_RESIZE_OBSERVER) {\n    const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n      callback?.(entries, observer)\n\n      if (!entries.length) return\n\n      contentRect.value = entries[0].contentRect\n    })\n\n    onBeforeUnmount(() => {\n      observer.disconnect()\n    })\n\n    watch(\n      resizeRef,\n      (newValue, oldValue) => {\n        if (oldValue) {\n          observer.unobserve(refElement(oldValue))\n          contentRect.value = undefined\n        }\n\n        if (newValue) observer.observe(refElement(newValue))\n      },\n      {\n        flush: 'post',\n      }\n    )\n  }\n\n  return {\n    resizeRef,\n    contentRect: readonly(contentRect),\n  }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,UAAU;AAAA,SACVC,wBAAwB,gCAEjC;AAQA,OAAO,SAASC,iBAAiBA,CAC/BC,QAAiC,EACpB;EACb,IAAMC,SAAS,GAAGN,GAAG,CAAc,CAAC;EACpC,IAAMO,WAAW,GAAGP,GAAG,CAAkB,CAAC;EAE1C,IAAIG,wBAAwB,EAAE;IAC5B,IAAMK,QAAQ,GAAG,IAAIC,cAAc,CAAC,UAACC,OAA8B,EAAK;MACtEL,QAAQ,oBAARA,QAAQ,CAAGK,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACC,MAAM,EAAE;MAErBJ,WAAW,CAACK,KAAK,GAAGF,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;IAC5C,CAAC,CAAC;IAEFT,eAAe,CAAC,YAAM;MACpBU,QAAQ,CAACK,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFZ,KAAK,CACHK,SAAS,EACT,UAACQ,QAAQ,EAAEC,QAAQ,EAAK;MACtB,IAAIA,QAAQ,EAAE;QACZP,QAAQ,CAACQ,SAAS,CAACd,UAAU,CAACa,QAAQ,CAAC,CAAC;QACxCR,WAAW,CAACK,KAAK,GAAGK,SAAS;MAC/B;MAEA,IAAIH,QAAQ,EAAEN,QAAQ,CAACU,OAAO,CAAChB,UAAU,CAACY,QAAQ,CAAC,CAAC;IACtD,CAAC,EACD;MACEK,KAAK,EAAE;IACT,CACF,CAAC;EACH;EAEA,OAAO;IACLb,SAAS,EAATA,SAAS;IACTC,WAAW,EAAER,QAAQ,CAACQ,WAAW;EACnC,CAAC;AACH"}