diff --git a/README.md b/README.md
index c0693c5..6c8abaa 100644
--- a/README.md
+++ b/README.md
@@ -17,9 +17,9 @@ $ npm install vue-event-manager
```
### CDN
-Available on [jsdelivr](https://cdn.jsdelivr.net/npm/vue-event-manager@1.0.2) or [unpkg](https://unpkg.com/vue-event-manager@1.0.2).
+Available on [jsdelivr](https://cdn.jsdelivr.net/npm/vue-event-manager@1.0.3) or [unpkg](https://unpkg.com/vue-event-manager@1.0.3).
```html
-
+
```
## Example
diff --git a/dist/vue-event-manager.common.js b/dist/vue-event-manager.common.js
index d55017d..f5fa63e 100644
--- a/dist/vue-event-manager.common.js
+++ b/dist/vue-event-manager.common.js
@@ -1,5 +1,5 @@
/*!
- * vue-event-manager v1.0.2
+ * vue-event-manager v1.0.3
* https://github.com/pagekit/vue-event-manager
* Released under the MIT License.
*/
@@ -150,42 +150,39 @@ function plugin(Vue) {
}
var Events = new EventManager();
+ var version = Number(Vue.version.split('.')[0]);
- Vue.mixin({
-
- init: function init() {
- var this$1 = this;
+ function initEvents() {
+ var this$1 = this;
- var ref = this.$options;
- var events = ref.events;
- var _events = [];
+ var ref = this.$options;
+ var events = ref.events;
+ var _events = [];
- if (events) {
+ if (events) {
- forEach(events, function (listeners, event) {
- forEach(isArray(listeners) ? listeners : [listeners], function (listener) {
+ forEach(events, function (listeners, event) {
+ forEach(isArray(listeners) ? listeners : [listeners], function (listener) {
- var priority = 0;
+ var priority = 0;
- if (isObject(listener)) {
- priority = listener.priority;
- listener = listener.handler;
- }
+ if (isObject(listener)) {
+ priority = listener.priority;
+ listener = listener.handler;
+ }
- _events.push(Events.on(event, listener.bind(this$1), priority));
- });
+ _events.push(Events.on(event, listener.bind(this$1), priority));
});
+ });
- this.$on('hook:beforeDestroy', function () { return _events.forEach(function (off) { return off(); }); });
- }
-
+ this.$on('hook:beforeDestroy', function () { return _events.forEach(function (off) { return off(); }); });
}
-
- });
+ }
Vue.prototype.$events = Events;
Vue.prototype.$trigger = Events.trigger.bind(Events);
+ Vue.mixin(version < 2 ? {init: initEvents} : {beforeCreate: initEvents});
}
if (typeof window !== 'undefined' && window.Vue) {
diff --git a/dist/vue-event-manager.es2015.js b/dist/vue-event-manager.es2015.js
index 0948e4b..94a717b 100644
--- a/dist/vue-event-manager.es2015.js
+++ b/dist/vue-event-manager.es2015.js
@@ -1,5 +1,5 @@
/*!
- * vue-event-manager v1.0.2
+ * vue-event-manager v1.0.3
* https://github.com/pagekit/vue-event-manager
* Released under the MIT License.
*/
@@ -148,42 +148,39 @@ function plugin(Vue) {
}
var Events = new EventManager();
+ var version = Number(Vue.version.split('.')[0]);
- Vue.mixin({
-
- init: function init() {
- var this$1 = this;
+ function initEvents() {
+ var this$1 = this;
- var ref = this.$options;
- var events = ref.events;
- var _events = [];
+ var ref = this.$options;
+ var events = ref.events;
+ var _events = [];
- if (events) {
+ if (events) {
- forEach(events, function (listeners, event) {
- forEach(isArray(listeners) ? listeners : [listeners], function (listener) {
+ forEach(events, function (listeners, event) {
+ forEach(isArray(listeners) ? listeners : [listeners], function (listener) {
- var priority = 0;
+ var priority = 0;
- if (isObject(listener)) {
- priority = listener.priority;
- listener = listener.handler;
- }
+ if (isObject(listener)) {
+ priority = listener.priority;
+ listener = listener.handler;
+ }
- _events.push(Events.on(event, listener.bind(this$1), priority));
- });
+ _events.push(Events.on(event, listener.bind(this$1), priority));
});
+ });
- this.$on('hook:beforeDestroy', function () { return _events.forEach(function (off) { return off(); }); });
- }
-
+ this.$on('hook:beforeDestroy', function () { return _events.forEach(function (off) { return off(); }); });
}
-
- });
+ }
Vue.prototype.$events = Events;
Vue.prototype.$trigger = Events.trigger.bind(Events);
+ Vue.mixin(version < 2 ? {init: initEvents} : {beforeCreate: initEvents});
}
if (typeof window !== 'undefined' && window.Vue) {
diff --git a/dist/vue-event-manager.js b/dist/vue-event-manager.js
index 789f90d..02eaf80 100644
--- a/dist/vue-event-manager.js
+++ b/dist/vue-event-manager.js
@@ -1,5 +1,5 @@
/*!
- * vue-event-manager v1.0.2
+ * vue-event-manager v1.0.3
* https://github.com/pagekit/vue-event-manager
* Released under the MIT License.
*/
@@ -154,42 +154,39 @@ function plugin(Vue) {
}
var Events = new EventManager();
+ var version = Number(Vue.version.split('.')[0]);
- Vue.mixin({
-
- init: function init() {
- var this$1 = this;
+ function initEvents() {
+ var this$1 = this;
- var ref = this.$options;
- var events = ref.events;
- var _events = [];
+ var ref = this.$options;
+ var events = ref.events;
+ var _events = [];
- if (events) {
+ if (events) {
- forEach(events, function (listeners, event) {
- forEach(isArray(listeners) ? listeners : [listeners], function (listener) {
+ forEach(events, function (listeners, event) {
+ forEach(isArray(listeners) ? listeners : [listeners], function (listener) {
- var priority = 0;
+ var priority = 0;
- if (isObject(listener)) {
- priority = listener.priority;
- listener = listener.handler;
- }
+ if (isObject(listener)) {
+ priority = listener.priority;
+ listener = listener.handler;
+ }
- _events.push(Events.on(event, listener.bind(this$1), priority));
- });
+ _events.push(Events.on(event, listener.bind(this$1), priority));
});
+ });
- this.$on('hook:beforeDestroy', function () { return _events.forEach(function (off) { return off(); }); });
- }
-
+ this.$on('hook:beforeDestroy', function () { return _events.forEach(function (off) { return off(); }); });
}
-
- });
+ }
Vue.prototype.$events = Events;
Vue.prototype.$trigger = Events.trigger.bind(Events);
+ Vue.mixin(version < 2 ? {init: initEvents} : {beforeCreate: initEvents});
}
if (typeof window !== 'undefined' && window.Vue) {
diff --git a/dist/vue-event-manager.min.js b/dist/vue-event-manager.min.js
index ddd92ef..2dc7e5e 100644
--- a/dist/vue-event-manager.min.js
+++ b/dist/vue-event-manager.min.js
@@ -1,7 +1,7 @@
/*!
- * vue-event-manager v1.0.2
+ * vue-event-manager v1.0.3
* https://github.com/pagekit/vue-event-manager
* Released under the MIT License.
*/
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.VueEventManager=t()}(this,function(){"use strict";function n(n){return null!==n&&"object"==typeof n}function t(n,t){Object.keys(n||{}).forEach(function(e){t.call(null,n[e],e)})}function e(o){if(!e.installed){var u=new i;o.mixin({init:function(){var e=this,i=this.$options,o=i.events,f=[];o&&(t(o,function(i,o){t(r(i)?i:[i],function(t){var r=0;n(t)&&(r=t.priority,t=t.handler),f.push(u.on(o,t.bind(e),r))})}),this.$on("hook:beforeDestroy",function(){return f.forEach(function(n){return n()})}))}}),o.prototype.$events=u,o.prototype.$trigger=u.trigger.bind(u)}}var r=Array.isArray;Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(n){if(null==this)throw new TypeError('"this" is null or not defined');if("function"!=typeof n)throw new TypeError("predicate must be a function");for(var t=Object(this),e=t.length>>>0,r=arguments[1],i=0;i>>0,r=arguments[1],i=0;i