Added "installed" flag and removed Object.defineProperty

This commit is contained in:
euvl
2017-06-21 20:19:04 +01:00
parent b6c596b514
commit 375ae806ae
4 changed files with 22 additions and 30 deletions

File diff suppressed because one or more lines are too long

15
dist/index.js vendored
View File

@@ -88,10 +88,13 @@ var Plugin = {
install: function install(Vue) { install: function install(Vue) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!this.hasOwnProperty("event")) { if (this.installed) {
this.event = new Vue(); return;
} }
this.installed = true;
this.event = new Vue();
var $modal = { var $modal = {
show: function show(name, params) { show: function show(name, params) {
Plugin.event.$emit('toggle', name, true, params); Plugin.event.$emit('toggle', name, true, params);
@@ -104,14 +107,8 @@ var Plugin = {
} }
}; };
Object.defineProperty(Vue.prototype, '$modal', { Vue.prototype.$modal = $modal;
get: function get() {
return $modal;
}
});
Vue.component('modal', _Modal2.default); Vue.component('modal', _Modal2.default);
return null;
} }
}; };

15
dist/ssr.index.js vendored
View File

@@ -88,10 +88,13 @@ var Plugin = {
install: function install(Vue) { install: function install(Vue) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!this.hasOwnProperty("event")) { if (this.installed) {
this.event = new Vue(); return;
} }
this.installed = true;
this.event = new Vue();
var $modal = { var $modal = {
show: function show(name, params) { show: function show(name, params) {
Plugin.event.$emit('toggle', name, true, params); Plugin.event.$emit('toggle', name, true, params);
@@ -104,14 +107,8 @@ var Plugin = {
} }
}; };
Object.defineProperty(Vue.prototype, '$modal', { Vue.prototype.$modal = $modal;
get: function get() {
return $modal;
}
});
Vue.component('modal', _Modal2.default); Vue.component('modal', _Modal2.default);
return null;
} }
}; };

View File

@@ -1,31 +1,30 @@
import Modal from './Modal.vue' import Modal from './Modal.vue'
const Plugin = { const Plugin = {
install(Vue, options = {}) { install (Vue, options = {}) {
if (!this.hasOwnProperty("event")) { if (this.installed) {
this.event = new Vue() return
} }
this.installed = true
this.event = new Vue()
const $modal = { const $modal = {
show(name, params) { show (name, params) {
Plugin.event.$emit('toggle', name, true, params) Plugin.event.$emit('toggle', name, true, params)
}, },
hide(name, params) { hide (name, params) {
Plugin.event.$emit('toggle', name, false, params) Plugin.event.$emit('toggle', name, false, params)
}, },
toggle(name, params) { toggle (name, params) {
Plugin.event.$emit('toggle', name, undefined, params) Plugin.event.$emit('toggle', name, undefined, params)
} }
} }
Object.defineProperty(Vue.prototype, '$modal', { Vue.prototype.$modal = $modal
get: () => $modal
})
Vue.component('modal', Modal) Vue.component('modal', Modal)
return null
} }
} }