UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

53 lines (52 loc) 1.91 kB
import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase"; import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey"; var _events = /*#__PURE__*/_classPrivateFieldLooseKey("events"); export default class EventEmitter { constructor() { Object.defineProperty(this, _events, { writable: true, value: [] }); this.on = this.on.bind(this); this.off = this.off.bind(this); this.emit = this.emit.bind(this); this.once = this.once.bind(this); this.removeListener = this.removeListener.bind(this); } on(event, listener) { if (!_classPrivateFieldLooseBase(this, _events)[_events][event]) { _classPrivateFieldLooseBase(this, _events)[_events][event] = []; } _classPrivateFieldLooseBase(this, _events)[_events][event].push(listener); return this; } off(event, listener) { this.removeListener(event, listener); return this; } removeListener(event, listener) { if (_classPrivateFieldLooseBase(this, _events)[_events][event]) { const idx = _classPrivateFieldLooseBase(this, _events)[_events][event].indexOf(listener); if (idx > -1) { _classPrivateFieldLooseBase(this, _events)[_events][event].splice(idx, 1); } } } emit(event) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } if (_classPrivateFieldLooseBase(this, _events)[_events][event]) { _classPrivateFieldLooseBase(this, _events)[_events][event].forEach(listener => listener(...args)); } } once(event, listener) { var _this = this; const listenerWrapper = function () { _this.removeListener(event, listenerWrapper); listener(...arguments); }; this.on(event, listenerWrapper); } } //# sourceMappingURL=EventEmitter.js.map