1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = void 0;
|
5 |
|
6 |
|
7 | var _default = {
|
8 | on: function on(events, handler, priority) {
|
9 | var self = this;
|
10 | if (typeof handler !== 'function') return self;
|
11 | var method = priority ? 'unshift' : 'push';
|
12 | events.split(' ').forEach(function (event) {
|
13 | if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
|
14 | self.eventsListeners[event][method](handler);
|
15 | });
|
16 | return self;
|
17 | },
|
18 | once: function once(events, handler, priority) {
|
19 | var self = this;
|
20 | if (typeof handler !== 'function') return self;
|
21 |
|
22 | function onceHandler() {
|
23 | self.off(events, onceHandler);
|
24 |
|
25 | if (onceHandler.__emitterProxy) {
|
26 | delete onceHandler.__emitterProxy;
|
27 | }
|
28 |
|
29 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
30 | args[_key] = arguments[_key];
|
31 | }
|
32 |
|
33 | handler.apply(self, args);
|
34 | }
|
35 |
|
36 | onceHandler.__emitterProxy = handler;
|
37 | return self.on(events, onceHandler, priority);
|
38 | },
|
39 | onAny: function onAny(handler, priority) {
|
40 | var self = this;
|
41 | if (typeof handler !== 'function') return self;
|
42 | var method = priority ? 'unshift' : 'push';
|
43 |
|
44 | if (self.eventsAnyListeners.indexOf(handler) < 0) {
|
45 | self.eventsAnyListeners[method](handler);
|
46 | }
|
47 |
|
48 | return self;
|
49 | },
|
50 | offAny: function offAny(handler) {
|
51 | var self = this;
|
52 | if (!self.eventsAnyListeners) return self;
|
53 | var index = self.eventsAnyListeners.indexOf(handler);
|
54 |
|
55 | if (index >= 0) {
|
56 | self.eventsAnyListeners.splice(index, 1);
|
57 | }
|
58 |
|
59 | return self;
|
60 | },
|
61 | off: function off(events, handler) {
|
62 | var self = this;
|
63 | if (!self.eventsListeners) return self;
|
64 | events.split(' ').forEach(function (event) {
|
65 | if (typeof handler === 'undefined') {
|
66 | self.eventsListeners[event] = [];
|
67 | } else if (self.eventsListeners[event]) {
|
68 | self.eventsListeners[event].forEach(function (eventHandler, index) {
|
69 | if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
|
70 | self.eventsListeners[event].splice(index, 1);
|
71 | }
|
72 | });
|
73 | }
|
74 | });
|
75 | return self;
|
76 | },
|
77 | emit: function emit() {
|
78 | var self = this;
|
79 | if (!self.eventsListeners) return self;
|
80 | var events;
|
81 | var data;
|
82 | var context;
|
83 |
|
84 | for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
85 | args[_key2] = arguments[_key2];
|
86 | }
|
87 |
|
88 | if (typeof args[0] === 'string' || Array.isArray(args[0])) {
|
89 | events = args[0];
|
90 | data = args.slice(1, args.length);
|
91 | context = self;
|
92 | } else {
|
93 | events = args[0].events;
|
94 | data = args[0].data;
|
95 | context = args[0].context || self;
|
96 | }
|
97 |
|
98 | data.unshift(context);
|
99 | var eventsArray = Array.isArray(events) ? events : events.split(' ');
|
100 | eventsArray.forEach(function (event) {
|
101 | if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
|
102 | self.eventsAnyListeners.forEach(function (eventHandler) {
|
103 | eventHandler.apply(context, [event].concat(data));
|
104 | });
|
105 | }
|
106 |
|
107 | if (self.eventsListeners && self.eventsListeners[event]) {
|
108 | self.eventsListeners[event].forEach(function (eventHandler) {
|
109 | eventHandler.apply(context, data);
|
110 | });
|
111 | }
|
112 | });
|
113 | return self;
|
114 | }
|
115 | };
|
116 | exports.default = _default; |
\ | No newline at end of file |