You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
967 B

"use strict";
exports.__esModule = true;
exports.ClickOutsideMixin = void 0;
var _event = require("../utils/dom/event");
/**
* Listen to click outside event
*/
var ClickOutsideMixin = function ClickOutsideMixin(config) {
return {
props: {
closeOnClickOutside: {
type: Boolean,
default: true
}
},
data: function data() {
var _this = this;
var clickOutsideHandler = function clickOutsideHandler(event) {
if (_this.closeOnClickOutside && !_this.$el.contains(event.target)) {
_this[config.method]();
}
};
return {
clickOutsideHandler: clickOutsideHandler
};
},
mounted: function mounted() {
(0, _event.on)(document, config.event, this.clickOutsideHandler);
},
beforeDestroy: function beforeDestroy() {
(0, _event.off)(document, config.event, this.clickOutsideHandler);
}
};
};
exports.ClickOutsideMixin = ClickOutsideMixin;