transition-manager
Version:
Transition Manager. Framework independent transition manager to transition elements using states and actions.
149 lines (115 loc) • 5.24 kB
JavaScript
;
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'];