/ shared / components / src / actions / click-outside.ts
click-outside.ts
 1  export default function clickOutside(
 2      node: HTMLElement,
 3      handler: (event: any) => void,
 4  ) {
 5      const handleClick = (event) => {
 6          if (!node.contains(event.target)) {
 7              handler(event);
 8          }
 9      };
10  
11      document.addEventListener('click', handleClick);
12  
13      return {
14          destroy() {
15              document.removeEventListener('click', handleClick);
16          },
17      };
18  }