plotly-icons
Version:
set of plotly icons
61 lines (47 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _set = require("babel-runtime/core-js/set");
var _set2 = _interopRequireDefault(_set);
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var EventEmitter = function () {
function EventEmitter() {
(0, _classCallCheck3.default)(this, EventEmitter);
this.listeners = {};
}
(0, _createClass3.default)(EventEmitter, [{
key: "on",
value: function on(event, cb) {
if (!this.listeners[event]) {
this.listeners[event] = new _set2.default();
}
if (this.listeners[event].has(cb)) {
throw new Error("The listener already exising in event: " + event);
}
this.listeners[event].add(cb);
}
}, {
key: "emit",
value: function emit(event) {
for (var _len = arguments.length, data = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
data[_key - 1] = arguments[_key];
}
if (!this.listeners[event]) return;
this.listeners[event].forEach(function (cb) {
return cb.apply(undefined, data);
});
}
}, {
key: "off",
value: function off(event, cb) {
this.listeners[event].delete(cb);
}
}]);
return EventEmitter;
}();
exports.default = EventEmitter;