UNPKG

@robotlegsjs/pixi-palidor

Version:
93 lines 4.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.FlowManager = void 0; var tslib_1 = require("tslib"); var core_1 = require("@robotlegsjs/core"); var eventemitter3_1 = require("@robotlegsjs/eventemitter3"); var IContainerController_1 = require("../api/IContainerController"); var PalidorEvent_1 = require("../events/PalidorEvent"); var FlowViewMapping_1 = require("./FlowViewMapping"); var FlowManager = /** @class */ (function () { function FlowManager(eventMap, controller, eventDispatcher) { this._eventMap = eventMap; this._dispatcher = eventDispatcher; this._controller = controller; this._views = new Map(); this._mapPalidorListeners(); } Object.defineProperty(FlowManager.prototype, "controller", { get: function () { return this._controller; }, enumerable: false, configurable: true }); Object.defineProperty(FlowManager.prototype, "dispatcher", { get: function () { return this._dispatcher; }, enumerable: false, configurable: true }); Object.defineProperty(FlowManager.prototype, "views", { get: function () { return this._views; }, enumerable: false, configurable: true }); FlowManager.prototype.map = function (event) { var clazz = this._views.get(event); if (clazz !== undefined) { return null; } return new FlowViewMapping_1.FlowViewMapping(event, this); }; FlowManager.prototype.mapView = function (eventString, viewClass) { this._views.set(eventString, viewClass); this._eventMap.mapListener(this._dispatcher, eventString, this._onChangeView, this); }; FlowManager.prototype.mapFloatingView = function (eventString, viewClass) { this._views.set(eventString, viewClass); this._eventMap.mapListener(this._dispatcher, eventString, this._onAddFloatingView, this); }; FlowManager.prototype._mapPalidorListeners = function () { this._eventMap.mapListener(this._dispatcher, PalidorEvent_1.PalidorEvent.REMOVE_CURRENT_VIEW, this._onRemoveCurrentView, this); this._eventMap.mapListener(this._dispatcher, PalidorEvent_1.PalidorEvent.REMOVE_LAST_FLOATING_VIEW_ADDED, this._onRemoveLastFloatingView, this); this._eventMap.mapListener(this._dispatcher, PalidorEvent_1.PalidorEvent.REMOVE_ALL_FLOATING_VIEWS, this._onRemoveAllFloatingView, this); }; FlowManager.prototype._onChangeView = function (e) { var clazz = this._views.get(e.type); this._controller.removeCurrentView(); this._controller.changeView(new clazz()); }; FlowManager.prototype._onAddFloatingView = function (e) { var clazz = this._views.get(e.type); this._controller.addView(new clazz()); }; FlowManager.prototype._onRemoveCurrentView = function (e) { this._controller.removeCurrentView(); }; FlowManager.prototype._onRemoveLastFloatingView = function () { this._controller.removeLastFloatingViewAdded(); }; FlowManager.prototype._onRemoveAllFloatingView = function (e) { this._controller.removeAllFloatingViews(); }; FlowManager = tslib_1.__decorate([ core_1.injectable(), tslib_1.__param(0, core_1.inject(eventemitter3_1.IEventEmitterMap)), tslib_1.__param(1, core_1.inject(IContainerController_1.IContainerController)), tslib_1.__param(2, core_1.inject(core_1.IEventDispatcher)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object]) ], FlowManager); return FlowManager; }()); exports.FlowManager = FlowManager; //# sourceMappingURL=FlowManager.js.map