UNPKG

@robotlegsjs/pixi-signalmediator

Version:
66 lines 3.06 kB
"use strict"; // ------------------------------------------------------------------------------ // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved. // Copyright (c) 2016 San Dinh Studios. All Rights Reserved. // // NOTICE: You are permitted to use, modify, and distribute this file // in accordance with the terms of the license agreement accompanying it. // ------------------------------------------------------------------------------ Object.defineProperty(exports, "__esModule", { value: true }); exports.SignalMap = void 0; var tslib_1 = require("tslib"); var core_1 = require("@robotlegsjs/core"); var SignalMap = /** @class */ (function () { /*============================================================================*/ /* Constructor */ /*============================================================================*/ function SignalMap() { this._handlersBySignal = new Map(); } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ SignalMap.prototype.addToSignal = function (signal, handler) { signal.add(handler); this.storeSignalHandler(signal, handler); }; SignalMap.prototype.addOnceToSignal = function (signal, handler) { signal.addOnce(handler); this.storeSignalHandler(signal, handler); }; SignalMap.prototype.removeFromSignal = function (signal, handler) { signal.remove(handler); if (!this._handlersBySignal.has(signal) || this._handlersBySignal.get(signal).length === 0) { return; } var handlerIndex = this._handlersBySignal.get(signal).indexOf(handler); if (handlerIndex > -1) { this._handlersBySignal.get(signal).splice(handlerIndex, 1); } }; SignalMap.prototype.removeAll = function () { this._handlersBySignal.forEach(function (handlers, signal) { return handlers.forEach(function (handler) { return signal.remove(handler); }); }); this._handlersBySignal.clear(); }; /*============================================================================*/ /* Protected Functions */ /*============================================================================*/ SignalMap.prototype.storeSignalHandler = function (signal, handler) { if (!this._handlersBySignal.has(signal)) { this._handlersBySignal.set(signal, [handler]); } else { this._handlersBySignal.get(signal).push(handler); } }; SignalMap = tslib_1.__decorate([ core_1.injectable(), tslib_1.__metadata("design:paramtypes", []) ], SignalMap); return SignalMap; }()); exports.SignalMap = SignalMap; //# sourceMappingURL=SignalMap.js.map