1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | var on = function on(name, _callback, one) {
|
22 | var self = this,
|
23 | origCb = _callback;
|
24 | if (Object.prototype.toString.call(name) == '[object Array]') {
|
25 |
|
26 | for (var i in name) {
|
27 | this.on(name[i], _callback);
|
28 | }
|
29 | return this;
|
30 | } else if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) == 'object') {
|
31 |
|
32 | for (var key in name) {
|
33 | this.on(key, name[key]);
|
34 | }
|
35 | return this;
|
36 | }
|
37 | if (one) {
|
38 | _callback = function callback() {
|
39 | self.off(name, _callback);
|
40 | origCb.apply(this, arguments);
|
41 | };
|
42 | }
|
43 | name = name.toLowerCase();
|
44 | this._events || (this._events = {});
|
45 | var events = this._events[name] || (this._events[name] = []);
|
46 | events.push({
|
47 | callback: _callback
|
48 | });
|
49 | return this;
|
50 | };
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 | var off = function off(name, callback) {
|
57 | if (Object.prototype.toString.call(name) == '[object Array]') {
|
58 |
|
59 | for (var i in name) {
|
60 | this.off(name[i], callback);
|
61 | }
|
62 | return this;
|
63 | } else if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) == 'object') {
|
64 |
|
65 | for (var key in name) {
|
66 | this.off(key, name[key]);
|
67 | }
|
68 | return this;
|
69 | }
|
70 | var cbs = this._events[name];
|
71 | if (!cbs) return this;
|
72 | if (!callback) {
|
73 |
|
74 | cbs = null;
|
75 | } else {
|
76 | for (var i = cbs.length - 1; i >= 0; i--) {
|
77 | if (cbs[i] == callback) {
|
78 | cbs.splice(i, 1);
|
79 | }
|
80 | }
|
81 | }
|
82 | return this;
|
83 | };
|
84 |
|
85 |
|
86 |
|
87 |
|
88 | var one = function one(name, callback) {
|
89 | this.on(name, callback, 1);
|
90 | };
|
91 |
|
92 |
|
93 |
|
94 |
|
95 | var trigger = function trigger(name) {
|
96 | name = name.toLowerCase();
|
97 | if (!this._events || !this._events[name]) return this;
|
98 | var args = Array.prototype.slice.call(arguments, 1);
|
99 | var events = this._events[name];
|
100 | for (var i = 0, count = events.length; i < count; i++) {
|
101 | events[i].callback.apply(this, args);
|
102 | }
|
103 | return this;
|
104 | };
|
105 |
|
106 | var triggerReturn = function triggerReturn(name) {
|
107 | name = name.toLowerCase();
|
108 | if (!this._events || !this._events[name]) return this;
|
109 | var args = Array.prototype.slice.call(arguments, 1);
|
110 | var events = this._events[name];
|
111 | var flag = true;
|
112 | for (var i = 0, count = events.length; i < count; i++) {
|
113 | flag = flag && events[i].callback.apply(this, args);
|
114 | }
|
115 | return flag;
|
116 | };
|
117 |
|
118 | var getEvent = function getEvent(name) {
|
119 | name = name.toLowerCase();
|
120 | this._events || (this._events = {});
|
121 | return this._events[name];
|
122 | };
|
123 |
|
124 | exports.on = on;
|
125 | exports.off = off;
|
126 | exports.one = one;
|
127 | exports.trigger = trigger;
|
128 | exports.triggerReturn = triggerReturn;
|
129 | exports.getEvent = getEvent; |
\ | No newline at end of file |