UNPKG

kitchen-simulator

Version:

It is a kitchen simulator (self-contained micro-frontend).

148 lines (147 loc) 6.08 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 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 _export = require("./export"); var _export2 = require("../utils/export"); 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 Area = exports["default"] = /*#__PURE__*/function () { function Area() { (0, _classCallCheck2["default"])(this, Area); } return (0, _createClass2["default"])(Area, null, [{ key: "add", value: function add(state, layerID, type, verticesCoords, catalog) { var area; var layer = state.getIn(['scene', 'layers', layerID]); var areaID; areaID = _export2.IDBroker.acquireID(); var vertices = verticesCoords.map(function (v) { var retVal = _export.Vertex.add(state, layerID, v.x, v.y, 'areas', areaID); state = retVal.updatedState; return retVal.vertex.id; }); area = catalog.factoryElement(type, { id: areaID, name: _export2.NameGenerator.generateName('areas', catalog.getIn(['elements', type, 'info', 'title'])), type: type, prototype: 'areas', vertices: vertices }); state = state.setIn(['scene', 'layers', layerID, 'areas', areaID], area); // set default texture// var properties = area.properties; var JsProperty = properties.toJS(); JsProperty.texture = 'parquet'; // set parquet as default texture state = this.setJsProperties(state, layerID, areaID, JsProperty).updatedState; // ///////////////////// return { updatedState: state, area: area }; } }, { key: "select", value: function select(state, layerID, areaID) { state = _export.Layer.select(state, layerID).updatedState; state = _export.Layer.selectElement(state, layerID, 'areas', areaID).updatedState; return { updatedState: state }; } }, { key: "remove", value: function remove(state, layerID, areaID) { var area = state.getIn(['scene', 'layers', layerID, 'areas', areaID]); if (area.get('selected') === true) state = this.unselect(state, layerID, areaID).updatedState; area.vertices.forEach(function (vertexID) { state = _export.Vertex.remove(state, layerID, vertexID, 'areas', areaID).updatedState; }); state = state.deleteIn(['scene', 'layers', layerID, 'areas', areaID]); state.getIn(['scene', 'groups']).forEach(function (group) { return state = _export.Group.removeElement(state, group.id, layerID, 'areas', areaID).updatedState; }); return { updatedState: state }; } }, { key: "unselect", value: function unselect(state, layerID, areaID) { state = _export.Layer.unselect(state, layerID, 'areas', areaID).updatedState; return { updatedState: state }; } }, { key: "setProperties", value: function setProperties(state, layerID, areaID, properties) { state = state.mergeIn(['scene', 'layers', layerID, 'areas', areaID, 'properties'], properties); return { updatedState: state }; } }, { key: "setFloorStyles", value: function setFloorStyles(state, texture) { var _state = state, scene = _state.scene; var layerID = scene.get('selectedLayer'); var layer = scene.layers.get(layerID); layer = layer.mergeIn(['floorStyle'], texture); state = state.merge({ scene: scene.mergeIn(['layers', layerID], layer) }); var areas = layer.areas; areas.forEach(function (data) { var dataJSON = data.toJS(); var id = dataJSON.id; var newTex = dataJSON.texture; newTex = _objectSpread(_objectSpread({}, newTex), texture); data = data.mergeIn(['texture'], newTex); layer = layer.mergeIn(['areas', id], data); state = state.merge({ scene: scene.mergeIn(['layers', layerID], layer) }); }); return { updatedState: state }; } }, { key: "setJsProperties", value: function setJsProperties(state, layerID, areaID, properties) { return this.setProperties(state, layerID, areaID, (0, _immutable.fromJS)(properties)); } }, { key: "updateProperties", value: function updateProperties(state, layerID, areaID, properties) { properties.forEach(function (v, k) { if (state.hasIn(['scene', 'layers', layerID, 'areas', areaID, 'properties', k])) state = state.mergeIn(['scene', 'layers', layerID, 'areas', areaID, 'properties', k], v); }); return { updatedState: state }; } }, { key: "updateJsProperties", value: function updateJsProperties(state, layerID, areaID, properties) { return this.updateProperties(state, layerID, areaID, (0, _immutable.fromJS)(properties)); } }, { key: "setAttributes", value: function setAttributes(state) { return { updatedState: state }; } }]); }(); module.exports = exports.default;