{"version":3,"file":"use-click-outside.0xK4kodUPO.js","sources":["../../../../xpack/root/useClickOutside.ts"],"sourcesContent":["import { RefObject, useEffect } from \"react\";\n\nexport function useOnClickOutside(ref: RefObject, handler: (event: MouseEvent | TouchEvent) => void, otherDependenceRef?: RefObject[]) {\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!event.target || !ref.current || ref.current.contains(event.target as Node)) {\n return;\n }\n\n if (otherDependenceRef && otherDependenceRef.some((r) => r.current?.contains(event.target as Node))) {\n return;\n }\n\n handler(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler, otherDependenceRef]);\n}"],"names":["useOnClickOutside","ref","handler","otherDependenceRef","useEffect","listener","event","r","_a"],"mappings":"gDAEgB,SAAAA,EAAkBC,EAA6BC,EAAmDC,EAA+C,CAC/JC,EAAAA,UAAU,IAAM,CACR,MAAAC,EAAYC,GAAmC,CAE/C,CAACA,EAAM,QAAU,CAACL,EAAI,SAAWA,EAAI,QAAQ,SAASK,EAAM,MAAc,GAI1EH,GAAsBA,EAAmB,KAAMI,GAAA,OAAM,OAAAC,EAAAD,EAAE,UAAF,YAAAC,EAAW,SAASF,EAAM,QAAe,GAIlGJ,EAAQI,CAAK,CAAA,EAGN,gBAAA,iBAAiB,YAAaD,CAAQ,EACtC,SAAA,iBAAiB,aAAcA,CAAQ,EAEzC,IAAM,CACF,SAAA,oBAAoB,YAAaA,CAAQ,EACzC,SAAA,oBAAoB,aAAcA,CAAQ,CAAA,CAEpD,EAAA,CAACJ,EAAKC,EAASC,CAAkB,CAAC,CACvC"}