UNPKG

@robotlegsjs/createjs

Version:
58 lines 2.89 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.MediatorMapExtension = void 0; var IViewManager_1 = require("../viewManager/api/IViewManager"); var IMediatorMap_1 = require("./api/IMediatorMap"); var MediatorMap_1 = require("./impl/MediatorMap"); /** * This extension installs a shared IMediatorMap into the context */ var MediatorMapExtension = /** @class */ (function () { function MediatorMapExtension() { } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @inheritDoc */ MediatorMapExtension.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(IMediatorMap_1.IMediatorMap).to(MediatorMap_1.MediatorMap).inSingletonScope(); }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ MediatorMapExtension.prototype._beforeInitializing = function () { this._mediatorMap = this._injector.get(IMediatorMap_1.IMediatorMap); if (this._injector.isBound(IViewManager_1.IViewManager)) { this._viewManager = this._injector.get(IViewManager_1.IViewManager); this._viewManager.addViewHandler(this._mediatorMap); } }; MediatorMapExtension.prototype._beforeDestroying = function () { this._mediatorMap.unmediateAll(); if (this._injector.isBound(IViewManager_1.IViewManager)) { this._viewManager = this._injector.get(IViewManager_1.IViewManager); this._viewManager.removeViewHandler(this._mediatorMap); } }; MediatorMapExtension.prototype._whenDestroying = function () { if (this._injector.isBound(IMediatorMap_1.IMediatorMap)) { this._injector.unbind(IMediatorMap_1.IMediatorMap); } }; return MediatorMapExtension; }()); exports.MediatorMapExtension = MediatorMapExtension; //# sourceMappingURL=MediatorMapExtension.js.map