![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/bootstrap-vue/src/mixins/ |
import { Vue } from '../vue' import { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events' import { contains } from '../utils/dom' import { eventOn, eventOff } from '../utils/events' // @vue/component export const clickOutMixin = Vue.extend({ data() { return { listenForClickOut: false } }, watch: { listenForClickOut(newValue, oldValue) { if (newValue !== oldValue) { eventOff( this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE ) if (newValue) { eventOn( this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE ) } } } }, beforeCreate() { // Declare non-reactive properties this.clickOutElement = null this.clickOutEventName = null }, mounted() { if (!this.clickOutElement) { this.clickOutElement = document } if (!this.clickOutEventName) { this.clickOutEventName = 'click' } if (this.listenForClickOut) { eventOn( this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE ) } }, beforeDestroy() { eventOff( this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE ) }, methods: { isClickOut(event) { return !contains(this.$el, event.target) }, _clickOutHandler(event) { if (this.clickOutHandler && this.isClickOut(event)) { this.clickOutHandler(event) } } } })