UNPKG

@robotlegsjs/phaser

Version:

RobotlegsJS integration with Phaser Scene Manager

58 lines 3.01 kB
"use strict"; // ------------------------------------------------------------------------------ // Copyright (c) 2017-present, RobotlegsJS. 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.ViewMediatorMapExtension = void 0; var ISceneManager_1 = require("../viewManager/api/ISceneManager"); var IViewMediatorMap_1 = require("./api/IViewMediatorMap"); var ViewMediatorMap_1 = require("./impl/ViewMediatorMap"); /** * This extension installs a shared IViewMediatorMap into the context */ var ViewMediatorMapExtension = /** @class */ (function () { function ViewMediatorMapExtension() { } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @inheritDoc */ ViewMediatorMapExtension.prototype.extend = function (context) { context .beforeInitializing(this._beforeInitializing.bind(this)) .beforeDestroying(this._beforeDestroying.bind(this)) .whenDestroying(this._whenDestroying.bind(this)); this._injector = context.injector; this._injector.bind(IViewMediatorMap_1.IViewMediatorMap).to(ViewMediatorMap_1.ViewMediatorMap).inSingletonScope(); }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ ViewMediatorMapExtension.prototype._beforeInitializing = function () { this._mediatorMap = this._injector.get(IViewMediatorMap_1.IViewMediatorMap); if (this._injector.isBound(ISceneManager_1.ISceneManager)) { this._sceneManager = this._injector.get(ISceneManager_1.ISceneManager); this._sceneManager.addViewHandler(this._mediatorMap); } }; ViewMediatorMapExtension.prototype._beforeDestroying = function () { this._mediatorMap.unmediateAll(); if (this._injector.isBound(ISceneManager_1.ISceneManager)) { this._sceneManager = this._injector.get(ISceneManager_1.ISceneManager); this._sceneManager.removeViewHandler(this._mediatorMap); } }; ViewMediatorMapExtension.prototype._whenDestroying = function () { if (this._injector.isBound(IViewMediatorMap_1.IViewMediatorMap)) { this._injector.unbind(IViewMediatorMap_1.IViewMediatorMap); } }; return ViewMediatorMapExtension; }()); exports.ViewMediatorMapExtension = ViewMediatorMapExtension; //# sourceMappingURL=ViewMediatorMapExtension.js.map