import Vue from "vue";
/**
* Register a specific event: v-click-out
*
* Example for some modale div:
*
*
*
*
*
*
*
*
*/
Vue.directive("click-out", {
bind: function (el, binding, vnode) {
el.clickOutsideEvent = (event) => {
if (!(el === event.target || el.contains(event.target))) {
if(vnode.context[binding.expression])
vnode.context[binding.expression](event)
}
};
document.body.addEventListener("click", el.clickOutsideEvent);
},
unbind(el) {
document.body.removeEventListener("click", el.clickOutsideEvent);
},
});