UNPKG

wetrade-design

Version:

一款多语言支持Vue3的UI框架

63 lines (62 loc) 2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var GraphEvent = /*#__PURE__*/function () { function GraphEvent() { (0, _classCallCheck2.default)(this, GraphEvent); this.listeners = {}; } (0, _createClass2.default)(GraphEvent, [{ key: "add", value: function add(type, callback) { if (!(type in this.listeners)) { this.listeners[type] = []; } this.listeners[type].push(callback); } }, { key: "remove", value: function remove(type, callback) { if (!(type in this.listeners)) { return; } var stack = this.listeners[type]; for (var i = 0, l = stack.length; i < l; i++) { if (stack[i] === callback) { stack.splice(i, 1); return this.remove(type, callback); } } } }, { key: "dispatch", value: function dispatch(event) { var _this = this; var breakOff = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!(event.type in this.listeners)) { return; } var stack = this.listeners[event.type]; event.target = this; if (breakOff) { stack.some(function (fun, idx) { var result = fun.call(_this, event); if (result) stack.unshift.apply(stack, (0, _toConsumableArray2.default)(stack.splice(idx, 1))); return result; }); } else { stack.forEach(function (fun) { return fun.call(_this, event); }); } } }]); return GraphEvent; }(); exports.default = GraphEvent;