UNPKG

@robotlegsjs/createjs

Version:
84 lines 3.35 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.MediatorManager = void 0; /** * @private */ var MediatorManager = /** @class */ (function () { /*============================================================================*/ /* Constructor */ /*============================================================================*/ /** * @private */ function MediatorManager(factory) { this._factory = factory; } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @private */ MediatorManager.prototype.addMediator = function (mediator, item, mapping) { // Watch Display Object for removal if (item instanceof createjs.DisplayObject && mapping.autoRemoveEnabled) { item._onRemovedFromStage = this._onRemovedFromStage.bind(this, item); item.on("removed", item._onRemovedFromStage, this); } // Synchronize with item life-cycle this._initializeMediator(mediator, item); }; /** * @private */ MediatorManager.prototype.removeMediator = function (mediator, item, mapping) { if (item instanceof createjs.DisplayObject) { item.off("removed", item._onRemovedFromStage); } this._destroyMediator(mediator); }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ MediatorManager.prototype._onRemovedFromStage = function (displayObject, fromContainer) { this._factory.removeMediators(displayObject); }; MediatorManager.prototype._initializeMediator = function (mediator, mediatedItem) { if ("preInitialize" in mediator) { mediator.preInitialize(); } if ("view" in mediator) { mediator.view = mediatedItem; } if ("initialize" in mediator) { mediator.initialize(); } if ("postInitialize" in mediator) { mediator.postInitialize(); } }; MediatorManager.prototype._destroyMediator = function (mediator) { if ("preDestroy" in mediator) { mediator.preDestroy(); } if ("destroy" in mediator) { mediator.destroy(); } if ("view" in mediator) { mediator.view = null; } if ("postDestroy" in mediator) { mediator.postDestroy(); } }; return MediatorManager; }()); exports.MediatorManager = MediatorManager; //# sourceMappingURL=MediatorManager.js.map