UNPKG

transition-manager

Version:

Transition Manager. Framework independent transition manager to transition elements using states and actions.

149 lines (115 loc) 5.24 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _coreFsm = require('./core/fsm'); var _coreFsm2 = _interopRequireDefault(_coreFsm); var _coreTransitionViewManager = require('./core/transitionViewManager'); var _coreTransitionViewManager2 = _interopRequireDefault(_coreTransitionViewManager); var _coreTransitionController = require('./core/transitionController'); var _coreTransitionController2 = _interopRequireDefault(_coreTransitionController); var _coreDefaultViewManager = require('./core/defaultViewManager'); var _coreDefaultViewManager2 = _interopRequireDefault(_coreDefaultViewManager); var _parsersDataParser = require('./parsers/dataParser'); var _parsersDataParser2 = _interopRequireDefault(_parsersDataParser); var _commonLogger = require('./common/logger'); var _commonLogger2 = _interopRequireDefault(_commonLogger); var _utilsMixin = require('./utils/mixin'); var _utilsMixin2 = _interopRequireDefault(_utilsMixin); var _utilsPick = require('./utils/pick'); var _utilsPick2 = _interopRequireDefault(_utilsPick); /* import signals */ var _commonDispatcher = require('./common/dispatcher'); /* fsm config pluck keys */ var fsmKeys = ['history', 'limitq', 'qtransitions', 'debug']; /* tvm config pluck keys */ var tvmKeys = ['viewManager', 'views', 'useCache', 'debug']; /* tc config pluck keys */ var tcKeys = ['transitions', 'debug']; /* this config pluck keys */ var indexKeys = ['debug', 'views', 'viewManager']; /** * ransition manager - Transition component facad wrapper * @type {Object} */ var TransitionManager = {}; (function () { /* private Logger */ var Log = _utilsMixin2['default']({ name: 'TransitionManager' }, _commonLogger2['default']); TransitionManager.init = function (config) { var parsedData = _parsersDataParser2['default'].parseData(config.data); /* FSM setup */ _coreFsm2['default'].init(_utilsMixin2['default'](_utilsPick2['default'](config, fsmKeys), config.fsm)); _coreFsm2['default'].create(parsedData.fsmConfig); /* Transition View Manager setup */ config.viewManager = config.viewManager || _coreDefaultViewManager2['default'].init(_utilsPick2['default'](config, indexKeys)); var tvmConfig = _utilsMixin2['default']({ config: parsedData.TVMConfig }, _utilsPick2['default'](config, tvmKeys), config.tvm); _coreTransitionViewManager2['default'].create(tvmConfig); /* Transition Controller setup */ _coreTransitionController2['default'].init(_utilsMixin2['default'](_utilsPick2['default'](config, tcKeys), config.tc)); /*** Connect each module ***/ _coreFsm2['default'].stateChangedMethod = _coreTransitionViewManager2['default'].processViews; _coreTransitionViewManager2['default'].viewsReady = _coreTransitionController2['default'].processTransition; _coreTransitionController2['default'].transitionCompleted = _coreFsm2['default'].transitionComplete; Log.initLogger(config.debug); Log.log('initiated'); }; /** * start the transition-manager * transitions to the initial state */ TransitionManager.start = function () { _coreFsm2['default'].start(); }; /** * Getters for the Transition Manager Components * - action - declare action to start * - currentState - get current state * - cancel - cancel fsm transition * - addTransition - add a transition component * - removeTransition - remove transition * - history - action history */ Object.defineProperty(TransitionManager, 'action', { get: function get() { return _coreFsm2['default'].action; } }); Object.defineProperty(TransitionManager, 'currentState', { get: function get() { return _coreFsm2['default'].getCurrentState; } }); Object.defineProperty(TransitionManager, 'cancel', { get: function get() { return _coreFsm2['default'].cancel; } }); Object.defineProperty(TransitionManager, 'addTransition', { get: function get() { return _coreTransitionController2['default'].addModule; } }); Object.defineProperty(TransitionManager, 'removeTransition', { get: function get() { return _coreTransitionController2['default'].removeModule; } }); Object.defineProperty(TransitionManager, 'getHistory', { get: function get() { return _coreFsm2['default'].getHistory; } }); /** * Signals * - fsm state changed * - tc transition started * - tc allTransitionStarted */ Object.defineProperty(TransitionManager, 'onStateChanged', { get: function get() { return _commonDispatcher.stateChanged; } }); Object.defineProperty(TransitionManager, 'onTransitionStarted', { get: function get() { return _commonDispatcher.transitionStarted; } }); Object.defineProperty(TransitionManager, 'onAllTransitionStarted', { get: function get() { return transitionsStarted; } }); Object.defineProperty(TransitionManager, 'onAllTransitionCompleted', { get: function get() { return _commonDispatcher.allTransitionCompleted; } }); Object.defineProperty(TransitionManager, 'onTransitionComplete', { get: function get() { return _commonDispatcher.transitionComplete; } }); })(); exports['default'] = TransitionManager; module.exports = exports['default'];