awv3
Version:
⚡ AWV3 embedded CAD
148 lines (125 loc) • 5.87 kB
JavaScript
;
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;