UNPKG

awv3

Version:
148 lines (125 loc) 5.87 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducer = exports.actions = exports.types = undefined; var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _omit = require('lodash/omit'); var _omit2 = _interopRequireDefault(_omit); var _without = require('lodash/without'); var _without2 = _interopRequireDefault(_without); var _plugins = require('./plugins'); var _connections = require('./connections'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var scope = 'globals'; var types = exports.types = { setLocale: scope + '/setLocale', setActiveSelection: scope + '/setActiveSelection', setActiveConnection: scope + '/setActiveConnection', linkPlugins: scope + '/linkPlugins', unlinkPlugins: scope + '/unlinkPlugins', addResources: scope + '/addResources', addMessage: scope + '/addMessage', beginTask: scope + '/beginTask', finishTask: scope + '/finishTask', setCamera: scope + '/setCamera', setColors: scope + '/setColors' }; var actions = exports.actions = { setLocale: function setLocale() { var locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en_US'; return { type: types.setLocale, locale: locale }; }, setActiveSelection: function setActiveSelection() { var activeSelection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; return { type: types.setActiveSelection, activeSelection: activeSelection }; }, addResources: function addResources(resources) { return { type: types.addResources, resources: resources }; }, linkPlugins: function linkPlugins(plugins) { return { type: types.linkPlugins, plugins: plugins }; }, unlinkPlugins: function unlinkPlugins(plugins) { return { type: types.unlinkPlugins, plugins: plugins }; }, addMessage: function addMessage(type, message, reset) { var _ref; return _ref = { type: types.addMessage }, (0, _defineProperty3.default)(_ref, 'type', type), (0, _defineProperty3.default)(_ref, 'message', message), (0, _defineProperty3.default)(_ref, 'reset', reset), _ref; }, beginTask: function beginTask(id, command) { return { type: types.beginTask, id: id, command: command }; }, finishTask: function finishTask(id) { return { type: types.finishTask, id: id }; }, setActiveConnection: function setActiveConnection() { var activeConnection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; return function (dispatch) { dispatch(_plugins.actions.closeAllFeatures()); activeConnection && dispatch(_connections.actions.setActiveFeature(activeConnection, undefined)); dispatch(actions.setActiveSelection()); dispatch({ type: types.setActiveConnection, activeConnection: activeConnection }); }; }, setCamera: function setCamera(camera) { return { type: types.setCamera, camera: camera }; }, setColors: function setColors(values) { return { type: types.setColors, values: values }; } }; var originalState = { locale: 'en_US', url: '', activeConnection: undefined, activeSelection: undefined, tasks: {}, resources: {}, plugins: [], colors: { primary: '#c23369', accent: '#28d79f', text: '#373737' }, camera: 'perspective' }; var reducer = function reducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : originalState; var _ref2 = arguments[1]; var type = _ref2.type, payload = (0, _objectWithoutProperties3.default)(_ref2, ['type']); switch (type) { case types.setLocale: case types.setActiveSelection: case types.setActiveConnection: case types.setCamera: return (0, _extends4.default)({}, state, payload); case types.setColors: return (0, _extends4.default)({}, state, { colors: (0, _extends4.default)({}, state.colors, payload.values) }); case types.addResources: return (0, _extends4.default)({}, state, { resources: (0, _extends4.default)({}, state.resources, payload.resources) }); case types.linkPlugins: return (0, _extends4.default)({}, state, { plugins: [].concat((0, _toConsumableArray3.default)(state.plugins), (0, _toConsumableArray3.default)(Array.isArray(payload.plugins) ? payload.plugins : [payload.plugins])) }); case types.unlinkPlugins: return (0, _extends4.default)({}, state, { plugins: _without2.default.apply(undefined, [state.plugins].concat((0, _toConsumableArray3.default)(Array.isArray(payload.plugins) ? payload.plugins : [payload.plugins]))) }); case types.beginTask: return (0, _extends4.default)({}, state, { tasks: (0, _extends4.default)({}, state.tasks, (0, _defineProperty3.default)({}, payload.id, payload.command)) }); case types.finishTask: return (0, _extends4.default)({}, state, { tasks: (0, _omit2.default)(state.tasks, payload.id) }); default: return state; } }; exports.reducer = reducer;