kitchen-simulator
Version:
It is a kitchen simulator (self-contained micro-frontend).
804 lines (797 loc) • 28.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _immutable = require("immutable");
var _constants = _interopRequireWildcard(require("../constants"));
var constants = _constants;
var _models = require("../models");
var _export = require("../utils/export");
var _export2 = require("../class/export");
var viewer2DActions = _interopRequireWildcard(require("../actions/viewer2d-actions"));
var _helper = require("../utils/helper");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var Project = exports["default"] = /*#__PURE__*/function () {
function Project() {
(0, _classCallCheck2["default"])(this, Project);
}
return (0, _createClass2["default"])(Project, null, [{
key: "setAlterate",
value: function setAlterate(state) {
return {
updatedState: state.set('alterate', !state.alterate)
};
}
}, {
key: "openCatalog",
value: function openCatalog(state) {
state = this.setMode(state, _constants.MODE_VIEWING_CATALOG).updatedState;
return {
updatedState: state
};
}
}, {
key: "newProject",
value: function newProject(state) {
var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
// let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
// let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
var _viewer2D = state.viewer2D;
var viewer = state.viewer2D.toJS();
_viewer2D = _viewer2D.merge({
e: viewer.viewerWidth / 2 - viewer.SVGWidth / 2,
f: viewer.viewerHeight / 2 - viewer.SVGHeight / 2,
a: 0.99,
d: 0.99
});
state = new _models.State({});
state = state.merge({
doorStyle: doorStyle,
viewer2D: _viewer2D
});
// state = Item.setCounterTop(state, counterTop).updatedState;
// state = Area.setFloorStyles(state, floorStyle).updatedState;
return {
updatedState: state
};
}
}, {
key: "loadProject",
value: function loadProject(state, sceneJSON) {
var doorStyle = state.doorStyle;
var layerID = state.scene.selectedLayer;
var _viewer2D = state.viewer2D;
var viewer = state.viewer2D.toJS();
var counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
var floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
var a, e, f;
e = viewer.viewerWidth / 2 - viewer.SVGWidth / 2;
f = viewer.viewerHeight / 2 - viewer.SVGHeight / 2;
_viewer2D = _viewer2D.merge({
e: e,
f: f,
a: 0.99,
d: 0.99
});
var _state = state,
oldScene = _state.scene,
oldSceneHistory = _state.sceneHistory;
var json_items = sceneJSON.layers[sceneJSON.selectedLayer].items;
var elements = state.catalog.get('elements').toArray();
var _loop = function _loop(x) {
var idx = elements.findIndex(function (it) {
return it.itemID === json_items[x].itemID && it.type === json_items[x].category;
});
if (idx > -1) {
json_items[x].name = elements[idx].name;
json_items[x].type = elements[idx].name;
}
};
for (var x in json_items) {
_loop(x);
}
var newScene = new _models.Scene(sceneJSON);
state = new _models.State({
scene: newScene.toJS(),
catalog: state.catalog.toJS()
});
state = state.merge({
sceneHistory: _export.history.historyPush(oldSceneHistory, oldScene)
});
if (state.scene.title === '') {
state = state.mergeIn(['scene', 'title'], oldScene.title);
}
//Validate item positions after loading project.
state = _export2.Item.validateItemPositions(state, layerID).updatedState;
// get counterTop and floorStyle is after state created from sceneJSON
if (state.getIn(['scene', 'layers', layerID, 'counterTop']).uri) {
counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
}
if (state.getIn(['scene', 'layers', layerID, 'floorStyle']).uri) {
floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
}
var layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
var bb = {
minX: Infinity,
maxX: -Infinity,
minY: Infinity,
maxY: -Infinity
};
bb = layer.vertices.reduce(function (pre, cur) {
pre.minX = Math.min(pre.minX, cur.x);
pre.maxX = Math.max(pre.maxX, cur.x);
pre.minY = Math.min(pre.minY, cur.y);
pre.maxY = Math.max(pre.maxY, cur.y);
return pre;
}, bb);
var w = bb.maxX - bb.minX;
var h = bb.maxY - bb.minY;
if (w != 0 && Math.abs(w) != Infinity && h != 0 && Math.abs(h) != Infinity) {
a = viewer.viewerHeight < h ? viewer.viewerHeight / h : (viewer.viewerHeight / h * 3 / 5 - 0.5) / constants.ZOOM_VARIABLE > 400 ? viewer.viewerHeight / h * 400 / ((viewer.viewerHeight / h - 0.5) / constants.ZOOM_VARIABLE) : viewer.viewerHeight / h * 3 / 5;
e = (viewer.viewerWidth - (bb.maxX + bb.minX) * a) / 2;
f = (viewer.viewerHeight - (viewer.SVGHeight * 2 - bb.maxY - bb.minY) * a) / 2;
while (!(e <= 10)) {
e -= 0.1;
}
while (!(e + a * viewer.SVGWidth + 10 >= viewer.viewerWidth)) {
e += 0.1;
}
while (!(f <= 80)) {
f -= 0.1;
}
while (!(f + a * viewer.SVGHeight + 10 >= viewer.viewerHeight)) {
f += 0.1;
}
_viewer2D = _viewer2D.merge({
a: a,
d: a,
e: e,
f: f
});
}
if (!doorStyle) {
if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
}
}
state = state.merge({
doorStyle: doorStyle,
viewer2D: _viewer2D
});
state = _export2.Item.setCounterTop(state, counterTop).updatedState;
state = _export2.Area.setFloorStyles(state, floorStyle).updatedState;
this.updateZoomScale(state, a);
viewer2DActions.updateCameraView(_viewer2D);
return {
updatedState: state
};
}
}, {
key: "setProperties",
value: function setProperties(state, layerID, properties) {
var propJS = properties.toJS();
if (propJS && !propJS.altitude) {
alert('You can not set width to 0');
return {
updatedState: state
};
}
state = _export2.Layer.setPropertiesOnSelected(state, layerID, properties).updatedState;
state = _export2.Layer.updateMovingState(state, false).updatedState;
return {
updatedState: state
};
}
}, {
key: "updateProperties",
value: function updateProperties(state, layerID, properties) {
state = _export2.Layer.updatePropertiesOnSelected(state, layerID, properties).updatedState;
return {
updatedState: state
};
}
}, {
key: "setItemsAttributes",
value: function setItemsAttributes(state, attributes) {
//TODO apply only to items
state = _export2.Layer.updateMovingState(state, false).updatedState;
state.getIn(['scene', 'layers']).forEach(function (layer) {
state = _export2.Layer.setAttributesOnSelected(state, layer.id, attributes).updatedState;
});
return {
updatedState: state
};
}
}, {
key: "setLinesAttributes",
value: function setLinesAttributes(state, attributes, isDirect, directData) {
//TODO apply only to lines
if (!isDirect) {
state.getIn(['scene', 'layers']).forEach(function (layer) {
state = _export2.Layer.setAttributesOnSelected(state, layer.id, attributes).updatedState;
});
} else if (isDirect && directData !== null) {
var layerID = directData.layerID,
lineID = directData.lineID;
if (layerID && lineID) state = _export2.Line.setAttributes(state, layerID, lineID, attributes).updatedState;
}
return {
updatedState: state
};
}
}, {
key: "setHolesAttributes",
value: function setHolesAttributes(state, attributes) {
//TODO apply only to holes
state.getIn(['scene', 'layers']).forEach(function (layer) {
state = _export2.Layer.setAttributesOnSelected(state, layer.id, attributes).updatedState;
});
return {
updatedState: state
};
}
}, {
key: "unselectAll",
value: function unselectAll(state) {
state.getIn(['scene', 'layers']).forEach(function (_ref) {
var layerID = _ref.id;
state = _export2.Layer.unselectAll(state, layerID).updatedState;
});
state.getIn(['scene', 'groups']).forEach(function (group) {
state = _export2.Group.unselect(state, group.get('id')).updatedState;
});
var mode = state.getIn(['mode']);
if (mode === constants.MODE_DRAGGING_LINE || mode === constants.MODE_DRAGGING_VERTEX) {
if (mode.includes('3D')) {
state = state.setIn(['mode'], _constants.MODE_IDLE_3D);
} else state = state.setIn(['mode'], _constants.MODE_IDLE);
state = state.merge({
activeSnapElement: null,
snapElements: new _immutable.List()
});
}
return {
updatedState: state
};
}
}, {
key: "selectAll",
value: function selectAll(state, value) {
if (value == null) {
state.getIn(['scene', 'layers']).forEach(function (_ref2) {
var layerID = _ref2.id;
state = _export2.Layer.selectAll(state, layerID).updatedState;
});
} else {
var layerID = state.getIn(['scene', 'selectedLayer']);
var layer = state.scene.layers.get(layerID);
layer.items.forEach(function (data) {
var x = state.getIn(['scene', 'layers', layerID, 'items', data.id, 'x']);
state = state.mergeIn(['scene', 'layers', layerID, 'items', data.id, 'x'], x + value.x);
var y = state.getIn(['scene', 'layers', layerID, 'items', data.id, 'y']);
state = state.mergeIn(['scene', 'layers', layerID, 'items', data.id, 'y'], y + value.y);
});
// layer.lines.forEach(data => { state = Layer.selectElement(state, layerID, "lines", data.id).updatedState });
// layer.holes.forEach(data => { state = Layer.selectElement(state, layerID, "holes", data.id).updatedState });
// layer.areas.forEach(data => { state = Layer.selectElement(state, layerID, "areas", data.id).updatedState });
layer.vertices.forEach(function (data) {
var x = state.getIn(['scene', 'layers', layerID, 'vertices', data.id, 'x']);
state = state.mergeIn(['scene', 'layers', layerID, 'vertices', data.id, 'x'], x + value.x);
var y = state.getIn(['scene', 'layers', layerID, 'vertices', data.id, 'y']);
state = state.mergeIn(['scene', 'layers', layerID, 'vertices', data.id, 'y'], y + value.y);
});
return {
updatedState: state
};
}
// state.getIn(['scene', 'groups']).forEach(group => { state = Group.unselect(state, group.get('id')).updatedState; });
return {
updatedState: state
};
}
}, {
key: "remove",
value: function remove(state) {
var selectedLayer = state.getIn(['scene', 'selectedLayer']);
var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
selectedLines = _state$getIn.lines,
selectedHoles = _state$getIn.holes,
selectedItems = _state$getIn.items;
var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', 'lines']).toJS();
var lineID = selLines[0];
var delLine = !(0, _helper.isEmpty)(lineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', lineID]).toJS();
var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
var relatedLines = [];
!(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
selectedLines.forEach(function (lineID) {
state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
});
selectedHoles.forEach(function (holeID) {
state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
});
selectedItems.forEach(function (itemID) {
state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
});
if (!(0, _helper.isEmpty)(selectedLines) && !(0, _helper.isEmpty)(relatedLines)) {
state = state.setIn(['mode'], _constants.MODE_DRAWING_LINE);
relatedLines.forEach(function (relLine, index) {
state = _export2.Line.select(state, selectedLayer, relLine.id).updatedState;
state = _export2.Line.applyWallChanges(state, _constants.END_DRAWING_LINE).updatedState;
});
} else {
state = _export2.Line.applyWallChanges(state, _constants.END_DRAWING_LINE).updatedState;
}
state = _export2.Layer.unselectAll(state, selectedLayer).updatedState;
var mode = state.getIn(['mode']);
if (mode.includes('DRAWING') || mode.includes('DRAGGING') || mode.includes('ROTATING')) {
state = state.merge({
activeSnapElement: null
});
if (mode.endsWith('3D')) state = state.setIn(['mode'], _constants.MODE_IDLE_3D);else state = state.setIn(['mode'], _constants.MODE_IDLE);
}
return {
updatedState: state
};
}
}, {
key: "undo",
value: function undo(state) {
var ActiveDrawingHelpers = document.getElementsByName('line_type_ActiveDrawingHelper');
ActiveDrawingHelpers.forEach(function (element, index) {
element.style.display = 'none';
});
var sceneHistory = state.sceneHistory;
var forRedo = window.forRedo;
window.forRedo = forRedo;
if (state.scene === sceneHistory.last && sceneHistory.list.size > 1) {
sceneHistory = _export.history.historyPop(sceneHistory);
}
forRedo.push(state.scene);
var mode;
if (_constants.ARRAY_3D_MODES.includes(state.mode)) mode = _constants.MODE_IDLE_3D;else mode = _constants.MODE_IDLE;
state = state.merge({
mode: mode,
scene: sceneHistory.last,
sceneHistory: _export.history.historyPop(sceneHistory)
});
return {
updatedState: state
};
}
}, {
key: "redo",
value: function redo(state) {
var forRedo = window.forRedo;
if (forRedo.length == 0) return {
updatedState: state
};
var scene = forRedo.pop();
var mode;
if (_constants.ARRAY_3D_MODES.includes(state.mode)) mode = _constants.MODE_IDLE_3D;else mode = _constants.MODE_IDLE;
state = state.merge({
mode: mode,
scene: scene,
sceneHistory: _export.history.historyPush(state.sceneHistory, state.scene)
});
window.forRedo = forRedo;
return {
updatedState: state
};
}
}, {
key: "uncreate",
value: function uncreate(state) {
state = state.merge({
popup: false
});
return {
updatedState: state
};
}
}, {
key: "rename",
value: function rename(state, name) {
state = state.mergeIn(['scene', 'title'], name);
return {
updatedState: state
};
}
}, {
key: "recreate",
value: function recreate(state) {
if (state.getIn(['drawingSupport', 'type']) !== undefined) state = state.merge({
mode: _constants.MODE_DRAWING_ITEM_3D,
popup: true
});
return {
updatedState: state
};
}
}, {
key: "shift2don",
value: function shift2don(state) {
state = state.merge({
popup: false
});
return {
updatedState: state
};
}
}, {
key: "shift2doff",
value: function shift2doff(state) {
if (state.getIn(['drawingSupport', 'type']) !== undefined) {
if (state.get('selectedElementsHistory')._tail.array[0].prototype === 'holes') state = state.merge({
mode: _constants.MODE_DRAWING_HOLE,
popup: true
});else state = state.merge({
mode: _constants.MODE_DRAWING_ITEM,
popup: true
});
}
return {
updatedState: state
};
}
}, {
key: "rollback",
value: function rollback(state) {
var sceneHistory = state.sceneHistory;
state = this.unselectAll(state).updatedState;
// if create a design and any elements is not added then no need rollback to last scene state
if (!sceneHistory.last && sceneHistory.list.isEmpty()) {
return {
updatedState: state
};
}
// ESC event doesn't need when mode = MODE_IDLE || MODE_IDLE_3D
if (state.mode == _constants.MODE_IDLE_3D || state.mode == _constants.MODE_IDLE) {
return {
updatedState: state
};
}
var mode;
var isLineAction = false;
if (state.mode.includes('LINE')) {
isLineAction = true;
}
if (state.mode == _constants.MODE_DRAWING_ITEM_3D) {
mode = _constants.MODE_IDLE_3D;
if (state.drawingSupport.has('currentID')) state = _export2.Layer.removeElement(state, state.scene.selectedLayer, 'items', state.drawingSupport.get('currentID')).updatedState;
state = state.merge({
mode: mode,
snapElements: new _immutable.List(),
activeSnapElement: null,
drawingSupport: new _immutable.Map(),
draggingSupport: new _immutable.Map(),
rotatingSupport: new _immutable.Map()
});
return {
updatedState: state
};
}
// when Add Walls button clicked
if (state.mode == _constants.MODE_WAITING_DRAWING_LINE) {
mode = _constants.MODE_IDLE;
state = state.merge({
mode: mode,
snapElements: new _immutable.List(),
activeSnapElement: null,
drawingSupport: new _immutable.Map(),
draggingSupport: new _immutable.Map(),
rotatingSupport: new _immutable.Map()
});
return {
updatedState: state
};
}
if (_constants.ARRAY_3D_MODES.includes(state.mode)) mode = _constants.MODE_IDLE_3D;else mode = _constants.MODE_IDLE;
state = state.merge({
mode: mode,
scene: sceneHistory.last,
sceneHistory: _export.history.historyPush(sceneHistory, sceneHistory.last),
snapElements: new _immutable.List(),
activeSnapElement: null,
drawingSupport: new _immutable.Map(),
draggingSupport: new _immutable.Map(),
rotatingSupport: new _immutable.Map()
});
if (isLineAction) {
state = _export2.Line.applyWallChanges(state, _constants.END_DRAWING_LINE).updatedState;
}
return {
updatedState: state
};
}
}, {
key: "removeDrawingSupport",
value: function removeDrawingSupport(state) {
var sceneHistory = state.sceneHistory;
var mode = state.mode;
if (!sceneHistory.last && sceneHistory.list.isEmpty() || mode != _constants.MODE_DRAWING_ITEM_3D) {
return {
updatedState: state
};
}
state = this.unselectAll(state).updatedState;
state = state.merge({
scene: sceneHistory.last,
sceneHistory: _export.history.historyPush(sceneHistory, sceneHistory.last),
drawingSupport: new _immutable.Map()
});
return {
updatedState: state
};
}
}, {
key: "setProjectProperties",
value: function setProjectProperties(state, properties) {
var scene = state.scene.merge(properties);
state = state.merge({
mode: _constants.MODE_IDLE,
scene: scene
});
return {
updatedState: state
};
}
}, {
key: "setProjectId",
value: function setProjectId(state, id) {
var scene = state.scene.merge(id);
state = state.merge({
scene: scene
});
return {
updatedState: state
};
}
}, {
key: "openProjectConfigurator",
value: function openProjectConfigurator(state) {
state = state.merge({
mode: _constants.MODE_CONFIGURING_PROJECT
});
return {
updatedState: state
};
}
}, {
key: "initCatalog",
value: function initCatalog(state, catalog) {
try {
state = state.set('catalog', new _models.Catalog(catalog));
return {
updatedState: state
};
} catch (error) {
console.log('initCatalogError', error);
return {
updatedState: state
};
}
}
}, {
key: "addElementToCatalog",
value: function addElementToCatalog(state, element) {
try {
var elements = state.getIn(['catalog', 'elements']).toJS();
elements[element.name] = element;
var newElements = (0, _models.safeLoadMapList)(elements, _models.CatalogElement);
state = state.setIn(['catalog', 'elements'], newElements);
return {
updatedState: state
};
} catch (error) {
console.log('addElementToCatalogError', error);
return {
updatedState: state
};
}
}
}, {
key: "updateMouseCoord",
value: function updateMouseCoord(state, coords) {
state = state.set('mouse', new _immutable.Map(coords));
return {
updatedState: state
};
}
}, {
key: "updateZoomScale",
value: function updateZoomScale(state, scale) {
state = state.set('zoom', scale);
return {
updatedState: state
};
}
}, {
key: "toggleSnap",
value: function toggleSnap(state, mask) {
state = state.set('snapMask', mask);
return {
updatedState: state
};
}
}, {
key: "throwError",
value: function throwError(state, error) {
state = state.set('errors', state.get('errors').push({
date: Date.now(),
error: error
}));
return {
updatedState: state
};
}
}, {
key: "throwWarning",
value: function throwWarning(state, warning) {
state = state.set('warnings', state.get('warnings').push({
date: Date.now(),
warning: warning
}));
return {
updatedState: state
};
}
}, {
key: "copyProperties",
value: function copyProperties(state, properties) {
var layerID = state.getIn(['drawingSupport', 'layerID']);
var layer = state.getIn(['scene', 'layers', layerID]);
if (layer === undefined) return {
updatedState: state
};else {
state = state.merge({
mode: _constants.MODE_WAITING_DRAWING_LINE,
activeSnapElement: null
});
return {
updatedState: state
};
}
}
}, {
key: "pasteProperties",
value: function pasteProperties(state) {
state = this.updateProperties(state, state.getIn(['scene', 'selectedLayer']), state.get('clipboardProperties')).updatedState;
return {
updatedState: state
};
}
}, {
key: "pushLastSelectedCatalogElementToHistory",
value: function pushLastSelectedCatalogElementToHistory(state, element) {
var currHistory = state.selectedElementsHistory;
var previousPosition = currHistory.findIndex(function (el) {
return el.name === element.name;
});
if (previousPosition !== -1) {
currHistory = currHistory.splice(previousPosition, 1);
}
currHistory = currHistory.splice(0, 0, element);
state = state.set('selectedElementsHistory', currHistory);
return {
updatedState: state
};
}
}, {
key: "changeCatalogPage",
value: function changeCatalogPage(state, oldPage, newPage) {
state = state.setIn(['catalog', 'page'], newPage).updateIn(['catalog', 'path'], function (path) {
return path.push(oldPage);
});
return {
updatedState: state
};
}
}, {
key: "goBackToCatalogPage",
value: function goBackToCatalogPage(state, newPage) {
var pageIndex = state.catalog.path.findIndex(function (page) {
return page === newPage;
});
state = state.setIn(['catalog', 'page'], newPage).updateIn(['catalog', 'path'], function (path) {
return path.take(pageIndex);
});
return {
updatedState: state
};
}
}, {
key: "setMode",
value: function setMode(state, mode) {
state = state.set('mode', mode);
return {
updatedState: state
};
}
}, {
key: "addHorizontalGuide",
value: function addHorizontalGuide(state, coordinate) {
state = _export2.HorizontalGuide.create(state, coordinate).updatedState;
return {
updatedState: state
};
}
}, {
key: "addVerticalGuide",
value: function addVerticalGuide(state, coordinate) {
state = _export2.VerticalGuide.create(state, coordinate).updatedState;
return {
updatedState: state
};
}
}, {
key: "addCircularGuide",
value: function addCircularGuide(state, x, y, radius) {
console.log('adding horizontal guide at', x, y, radius);
return {
updatedState: state
};
}
}, {
key: "removeHorizontalGuide",
value: function removeHorizontalGuide(state, guideID) {
state = _export2.HorizontalGuide.remove(state, guideID).updatedState;
return {
updatedState: state
};
}
}, {
key: "removeVerticalGuide",
value: function removeVerticalGuide(state, guideID) {
state = _export2.VerticalGuide.remove(state, guideID).updatedState;
return {
updatedState: state
};
}
}, {
key: "removeCircularGuide",
value: function removeCircularGuide(state, guideID) {
console.log('removeing horizontal guide ', guideID);
return {
updatedState: state
};
}
}, {
key: "setStateProperties",
value: function setStateProperties(state, properties) {
state = state.merge(_objectSpread({}, properties));
return {
updatedState: state
};
}
}, {
key: "setIsHelp",
value: function setIsHelp(state, isHelp) {
state = state.merge({
isHelp: isHelp
});
return {
updatedState: state
};
}
}, {
key: "setIsCabinetDrawing",
value: function setIsCabinetDrawing(state, isCabinetDrawing) {
state = state.merge({
isCabinetDrawing: isCabinetDrawing
});
return {
updatedState: state
};
}
}]);
}();
module.exports = exports.default;