{"version":3,"file":"useFocusOutside.cjs","sources":["../../../../src/hooks/useFocusOutside/useFocusOutside.ts"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\n/**\n * Hook for å lytte etter fokus utenfor et element. Nyttig dersom flere fokuserbare elementer samspiller i en komponent.\n * @param ref Elementet som skal observeres\n * @param fn Funksjon som kalles når fokus flyttes utenfor elementet\n */\nexport function useFocusOutside(\n    ref: RefObject<HTMLElement | null> | null,\n    fn: () => void,\n): void {\n    function handleFocusOutside(event: FocusEvent) {\n        if (ref?.current && !ref.current.contains(event.target as Node)) {\n            fn();\n        }\n    }\n\n    useEffect(() => {\n        if (ref) {\n            document?.addEventListener(\"focusin\", handleFocusOutside);\n        }\n        return () => {\n            document?.removeEventListener(\"focusin\", handleFocusOutside);\n        };\n    });\n}\n"],"names":["ref","fn","handleFocusOutside","event","current","contains","target","useEffect","document","addEventListener","removeEventListener"],"mappings":"iIAOO,SACHA,EACAC,GAEA,SAASC,EAAmBC,GACpBH,GAAKI,UAAYJ,EAAII,QAAQC,SAASF,EAAMG,SAC5CL,GAER,CAEAM,EAAAA,UAAU,KACFP,GACAQ,UAAUC,iBAAiB,UAAWP,GAEnC,KACHM,UAAUE,oBAAoB,UAAWR,KAGrD"}