{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-resize/index.ts"],"sourcesContent":["export type ResizeHandler = (entry: ResizeObserverEntry) => any\n\nconst handlerMap = new WeakMap<Element, ResizeHandler>()\n\nfunction handleResize(entries: ResizeObserverEntry[]) {\n  for (let i = 0, len = entries.length; i < len; ++i) {\n    const entry = entries[i]\n    const handler = handlerMap.get(entry.target)\n\n    if (typeof handler === 'function') {\n      handler(entry)\n    }\n  }\n}\n\nlet resizeObserver: ResizeObserver | null = null\n\nconst createResizeObserver = () => {\n  if (!resizeObserver) {\n    resizeObserver = new window.ResizeObserver(handleResize)\n  }\n}\n\nexport function observeResize(el: Element, handler: ResizeHandler) {\n  handlerMap.set(el, handler)\n  resizeObserver?.observe(el)\n}\n\nexport function unobserveResize(el: Element) {\n  if (handlerMap.has(el)) {\n    resizeObserver?.unobserve(el)\n    handlerMap.delete(el)\n  }\n}\n\nexport function useResize() {\n  createResizeObserver()\n\n  return {\n    observeResize,\n    unobserveResize,\n  }\n}\n"],"names":[],"mappings":"AAEA,MAAM,UAAA,uBAAiB,OAAgC,EAAA,CAAA;AAEvD,SAAS,aAAa,OAAgC,EAAA;AACpD,EAAS,KAAA,IAAA,CAAA,GAAI,GAAG,GAAM,GAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,GAAA,EAAK,EAAE,CAAG,EAAA;AAClD,IAAA,MAAM,QAAQ,OAAQ,CAAA,CAAA,CAAA,CAAA;AACtB,IAAA,MAAM,OAAU,GAAA,UAAA,CAAW,GAAI,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAE3C,IAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AACjC,MAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,KACf;AAAA,GACF;AACF,CAAA;AAEA,IAAI,cAAwC,GAAA,IAAA,CAAA;AAE5C,MAAM,uBAAuB,MAAM;AACjC,EAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,IAAiB,cAAA,GAAA,IAAI,MAAO,CAAA,cAAA,CAAe,YAAY,CAAA,CAAA;AAAA,GACzD;AACF,CAAA,CAAA;AAEgB,SAAA,aAAA,CAAc,IAAa,OAAwB,EAAA;AACjE,EAAW,UAAA,CAAA,GAAA,CAAI,IAAI,OAAO,CAAA,CAAA;AAC1B,EAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,OAAQ,CAAA,EAAA,CAAA,CAAA;AAC1B,CAAA;AAEO,SAAS,gBAAgB,EAAa,EAAA;AAC3C,EAAI,IAAA,UAAA,CAAW,GAAI,CAAA,EAAE,CAAG,EAAA;AACtB,IAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,SAAU,CAAA,EAAA,CAAA,CAAA;AAC1B,IAAA,UAAA,CAAW,OAAO,EAAE,CAAA,CAAA;AAAA,GACtB;AACF,CAAA;AAEO,SAAS,SAAY,GAAA;AAC1B,EAAqB,oBAAA,EAAA,CAAA;AAErB,EAAO,OAAA;AAAA,IACL,aAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AACF;;;;"}