export function clickOutside(node: HTMLElement, callback: () => void) { const handleClick = (event: MouseEvent | TouchEvent) => { // Prüfen, ob der Klick auf ein Element außerhalb des Containers erfolgte if (node && !node.contains(event.target as Node) && !event.defaultPrevented) { callback(); } }; // Event-Listener in der Capture-Phase hinzufügen (true) document.addEventListener('click', handleClick, true); document.addEventListener('touchstart', handleClick, { passive: true, capture: true }); return { update(newCallback: () => void) { callback = newCallback; }, destroy() { // Event-Listener beim Zerstören der Komponente entfernen document.removeEventListener('click', handleClick, true); document.removeEventListener('touchstart', handleClick, true); } }; }