{"version":3,"file":"use-mutation-observer.cjs","names":[],"sources":["../../src/use-mutation-observer/use-mutation-observer.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nexport function useMutationObserver<T extends HTMLElement = any>(\n  callback: MutationCallback,\n  options: MutationObserverInit\n): React.RefCallback<T | null> {\n  const observer = useRef<MutationObserver | null>(null);\n\n  const refCallback: React.RefCallback<T | null> = useCallback(\n    (node) => {\n      if (observer.current) {\n        observer.current.disconnect();\n        observer.current = null;\n      }\n\n      if (node) {\n        observer.current = new MutationObserver(callback);\n        observer.current.observe(node, options);\n      }\n\n      return () => {\n        if (observer.current) {\n          observer.current.disconnect();\n          observer.current = null;\n        }\n      };\n    },\n    [callback, options]\n  );\n\n  return refCallback;\n}\n\nexport function useMutationObserverTarget(\n  callback: MutationCallback,\n  options: MutationObserverInit,\n  target?: HTMLElement | (() => HTMLElement) | null\n): void {\n  const observer = useRef<MutationObserver | null>(null);\n\n  useEffect(() => {\n    if (observer.current) {\n      observer.current.disconnect();\n      observer.current = null;\n    }\n\n    const targetElement = typeof target === 'function' ? target() : target;\n\n    if (targetElement) {\n      observer.current = new MutationObserver(callback);\n      observer.current.observe(targetElement, options);\n    }\n\n    return () => {\n      if (observer.current) {\n        observer.current.disconnect();\n        observer.current = null;\n      }\n    };\n  }, [callback, options, target]);\n}\n"],"mappings":";;;AAEA,SAAgB,oBACd,UACA,SAC6B;CAC7B,MAAM,YAAA,GAAA,MAAA,QAA2C,IAAI;CAwBrD,QAAA,GAAA,MAAA,cArBG,SAAS;EACR,IAAI,SAAS,SAAS;GACpB,SAAS,QAAQ,WAAW;GAC5B,SAAS,UAAU;EACrB;EAEA,IAAI,MAAM;GACR,SAAS,UAAU,IAAI,iBAAiB,QAAQ;GAChD,SAAS,QAAQ,QAAQ,MAAM,OAAO;EACxC;EAEA,aAAa;GACX,IAAI,SAAS,SAAS;IACpB,SAAS,QAAQ,WAAW;IAC5B,SAAS,UAAU;GACrB;EACF;CACF,GACA,CAAC,UAAU,OAAO,CAGH;AACnB;AAEA,SAAgB,0BACd,UACA,SACA,QACM;CACN,MAAM,YAAA,GAAA,MAAA,QAA2C,IAAI;CAErD,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,SAAS,SAAS;GACpB,SAAS,QAAQ,WAAW;GAC5B,SAAS,UAAU;EACrB;EAEA,MAAM,gBAAgB,OAAO,WAAW,aAAa,OAAO,IAAI;EAEhE,IAAI,eAAe;GACjB,SAAS,UAAU,IAAI,iBAAiB,QAAQ;GAChD,SAAS,QAAQ,QAAQ,eAAe,OAAO;EACjD;EAEA,aAAa;GACX,IAAI,SAAS,SAAS;IACpB,SAAS,QAAQ,WAAW;IAC5B,SAAS,UAAU;GACrB;EACF;CACF,GAAG;EAAC;EAAU;EAAS;CAAM,CAAC;AAChC"}