UNPKG

@robotlegsjs/phaser

Version:

RobotlegsJS integration with Phaser Scene Manager

81 lines 3.14 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.ViewMediatorManager = void 0; /** * @private */ var ViewMediatorManager = /** @class */ (function () { /*============================================================================*/ /* Constructor */ /*============================================================================*/ /** * @private */ function ViewMediatorManager(factory) { this._factory = factory; } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @private */ ViewMediatorManager.prototype.addMediator = function (mediator, item, mapping) { var view = item; // Watch view for destroy if (view && mapping.autoRemoveEnabled) { view.on("destroy", this._onViewDestroy, this); } // Synchronize with item life-cycle this._initializeMediator(mediator, item); }; /** * @private */ ViewMediatorManager.prototype.removeMediator = function (mediator, item, mapping) { this._destroyMediator(mediator); }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ ViewMediatorManager.prototype._onViewDestroy = function (view) { this._factory.removeMediators(view); }; ViewMediatorManager.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(); } }; ViewMediatorManager.prototype._destroyMediator = function (mediator) { if ("preDestroy" in mediator) { mediator.preDestroy(); } if ("destroy" in mediator) { mediator.destroy(); } if ("scene" in mediator) { mediator.scene = null; } if ("postDestroy" in mediator) { mediator.postDestroy(); } }; return ViewMediatorManager; }()); exports.ViewMediatorManager = ViewMediatorManager; //# sourceMappingURL=ViewMediatorManager.js.map