Files
veridian/app/plugins/clickOutside.ts
T

18 lines
580 B
TypeScript

export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.directive('click-outside', {
mounted(el: any, binding: any) {
el.clickOutsideEvent = (event: Event) => {
if (!el.contains(event.target as Node)) {
binding.value(event);
}
};
setTimeout(() => {
document.addEventListener("click", el.clickOutsideEvent);
});
},
unmounted(el: any) {
document.removeEventListener('click', el.clickOutsideEvent);
}
});
});