12345678910111213141516171819202122232425262728 |
- import Vue from 'vue';
- var dropdowns = [];
- !Vue.prototype.$isServer && document.addEventListener('click', function(event) {
- dropdowns.forEach(function(dropdown) {
- var target = event.target;
- if (!dropdown || !dropdown.$el) return;
- if (target === dropdown.$el || dropdown.$el.contains(target)) {
- return;
- }
- dropdown.handleOutsideClick && dropdown.handleOutsideClick(event);
- });
- });
- export default {
- open(instance) {
- if (instance) {
- dropdowns.push(instance);
- }
- },
- close(instance) {
- var index = dropdowns.indexOf(instance);
- if (index !== -1) {
- dropdowns.splice(instance, 1);
- }
- }
- };
|