{"version":3,"file":"useClick.cjs","sources":["../../src/hooks/useClick.ts"],"sourcesContent":["import { type RefObject, useEffect } from 'react'\n\nexport function useClick(\n  innerRefs: Array<RefObject<HTMLElement>>,\n  innerCallback: (e: MouseEvent) => void,\n  outerCallback: (e: MouseEvent) => void,\n) {\n  useEffect(() => {\n    const handleClick = (e: MouseEvent) => {\n      if (innerRefs.some((target) => isEventIncludedParent(e, target.current))) {\n        innerCallback(e)\n\n        return\n      }\n\n      outerCallback(e)\n    }\n\n    window.addEventListener('click', handleClick)\n\n    return () => {\n      window.removeEventListener('click', handleClick)\n    }\n  }, [innerRefs, innerCallback, outerCallback])\n}\n\nfunction isEventIncludedParent(e: MouseEvent, parent: Element | null): boolean {\n  if (!parent) return false\n\n  const path = e.composedPath()\n\n  if (path.length === 0) return false\n\n  return path.includes(parent)\n}\n"],"names":["useEffect"],"mappings":";;;;SAEgB,QAAQ,CACtB,SAAwC,EACxC,aAAsC,EACtC,aAAsC,EAAA;IAEtCA,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;AACpC,YAAA,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,qBAAqB,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;gBACxE,aAAa,CAAC,CAAC,CAAC;gBAEhB;YACF;YAEA,aAAa,CAAC,CAAC,CAAC;AAClB,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;AAE7C,QAAA,OAAO,MAAK;AACV,YAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC;AAClD,QAAA,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAC/C;AAEA,SAAS,qBAAqB,CAAC,CAAa,EAAE,MAAsB,EAAA;AAClE,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;AAEzB,IAAA,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE;AAE7B,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;AAEnC,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9B;;;;"}