@robotlegsjs/createjs
Version:
CreateJS View Integration with RobotlegsJS
58 lines • 2.89 kB
JavaScript
"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