UNPKG

awv3

Version:
280 lines (261 loc) 7.78 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _Assembly, _Part, _LineSegments, _Group, _Mesh, _Region, _RegionPoint, _SketcherMesh, _DimensionHandle, _CSYSHandle, _Workaxis, _Workpoint; import * as THREE from 'three'; import omit from 'lodash/omit'; import without from 'lodash/without'; import { actions as pluginActions } from './plugins'; import { actions as connectionActions } from './connections'; var scope = 'globals'; var HOVERED = THREE.Object3D.Events.Interaction.Hovered; var CLICKED = THREE.Object3D.Events.Interaction.Clicked; export var 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", setColorMode: scope + "/setColorMode" }; export var actions = { setLocale: function setLocale(locale) { if (locale === void 0) { locale = 'en_US'; } return { type: types.setLocale, locale: locale }; }, setActiveSelection: function setActiveSelection(activeSelection) { if (activeSelection === void 0) { activeSelection = 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 }, _ref["type"] = type, _ref.message = message, _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(activeConnection) { if (activeConnection === void 0) { activeConnection = undefined; } return function (dispatch) { dispatch(pluginActions.closeAllFeatures()); activeConnection && dispatch(connectionActions.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 }; }, setColorMode: function setColorMode(day) { return { type: types.setColorMode, day: day }; } }; var originalState = { locale: 'en_US', url: '', activeConnection: undefined, activeSelection: undefined, tasks: {}, resources: {}, plugins: [], day: true, colors: { hue: 0, bg: '#efefef', primary: '#c23369', accent: '#28d79f', text: '#373737' }, selection: { Assembly: (_Assembly = {}, _Assembly[HOVERED] = { opacity: 1 }, _Assembly[CLICKED] = { opacity: 1 }, _Assembly), Part: (_Part = {}, _Part[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _Part[CLICKED] = { color: new THREE.Color('#c9366e'), opacity: 1 }, _Part), LineSegments: (_LineSegments = {}, _LineSegments[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _LineSegments[CLICKED] = { color: new THREE.Color('#28b4d7'), opacity: 1 }, _LineSegments), Group: (_Group = {}, _Group[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _Group[CLICKED] = { color: new THREE.Color('#c9366e'), opacity: 1 }, _Group), Mesh: (_Mesh = {}, _Mesh[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _Mesh[CLICKED] = { color: new THREE.Color('#c9366e'), opacity: 1 }, _Mesh), Region: (_Region = {}, _Region[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _Region[CLICKED] = { color: new THREE.Color('#28b4d7'), opacity: 1 }, _Region), RegionPoint: (_RegionPoint = {}, _RegionPoint[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _RegionPoint[CLICKED] = { color: new THREE.Color('#28b4d7'), opacity: 1 }, _RegionPoint), SketcherMesh: (_SketcherMesh = {}, _SketcherMesh[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1, polygonOffsetFactor: -10, polygonOffsetUnits: -50 }, _SketcherMesh[CLICKED] = { color: new THREE.Color('#c9366e'), opacity: 1, polygonOffsetFactor: -5, polygonOffsetUnits: -25 }, _SketcherMesh), DimensionHandle: (_DimensionHandle = {}, _DimensionHandle[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _DimensionHandle[CLICKED] = { color: new THREE.Color('#c9366e'), opacity: 1 }, _DimensionHandle), CSYSHandle: (_CSYSHandle = {}, _CSYSHandle[HOVERED] = { color: new THREE.Color('#28d79f'), opacity: 1 }, _CSYSHandle[CLICKED] = { color: new THREE.Color('#c9366e'), opacity: 1 }, _CSYSHandle), Workaxis: (_Workaxis = {}, _Workaxis[HOVERED] = { color: new THREE.Color('#28d79f') }, _Workaxis[CLICKED] = { color: new THREE.Color('#c9366e') }, _Workaxis), Workpoint: (_Workpoint = {}, _Workpoint[HOVERED] = { color: new THREE.Color('#28d79f') }, _Workpoint[CLICKED] = { color: new THREE.Color('#c9366e') }, _Workpoint) }, camera: 'perspective' }; var reducer = function reducer(state, _ref2) { var _extends2; if (state === void 0) { state = originalState; } var type = _ref2.type, payload = _objectWithoutProperties(_ref2, ["type"]); switch (type) { case types.setLocale: case types.setActiveSelection: case types.setActiveConnection: case types.setCamera: return _extends({}, state, payload); case types.setColorMode: return _extends({}, state, payload); break; case types.setColors: return _extends({}, state, { colors: _extends({}, state.colors, payload.values) }); case types.addResources: return _extends({}, state, { resources: _extends({}, state.resources, payload.resources) }); case types.linkPlugins: return _extends({}, state, { plugins: state.plugins.concat(Array.isArray(payload.plugins) ? payload.plugins : [payload.plugins]) }); case types.unlinkPlugins: return _extends({}, state, { plugins: without.apply(void 0, [state.plugins].concat(Array.isArray(payload.plugins) ? payload.plugins : [payload.plugins])) }); case types.beginTask: return _extends({}, state, { tasks: _extends({}, state.tasks, (_extends2 = {}, _extends2[payload.id] = payload.command, _extends2)) }); case types.finishTask: return _extends({}, state, { tasks: omit(state.tasks, payload.id) }); default: return state; } }; export { reducer };