@inkline/inkline
Version:
Inkline is the Vue.js UI/UX Library built for creating your next design system
26 lines • 682 B
JavaScript
import { on, isVisible } from '../helpers/index.mjs';
export const onClickOutside = (element, binding) => (e) => {
if (!isVisible(element) || !e.target) {
return;
}
if (element === e.target || element.contains(e.target)) {
return;
}
binding.value(e);
};
/**
* v-click-outside
* @example
* ```vue
* <div v-click-outside="handleClose">
* ```
*/
export const ClickOutsideDirective = {
beforeMount(element, binding) {
if (typeof window !== 'undefined') {
on(window.document, 'mouseup', onClickOutside(element, binding));
}
}
};
export default ClickOutsideDirective;
//# sourceMappingURL=click-outside.mjs.map