UNPKG

kitchen-simulator

Version:

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

172 lines (171 loc) 5.51 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = Layer; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _export = require("./export"); var _export2 = require("../../utils/export"); var _constants = require("../../constants"); var _utils = require("./utils"); var STYLE = { stroke: '#494949', strokeWidth: 1, strokeLinecap: 'round', strokeLinejoin: 'round', strokeMiterlimit: 2.613, fill: '#D6F0EE' }; var STYLE_TEXT = { textAnchor: 'middle', fontSize: 10, fontFamily: "'Courier New', Courier, monospace", fontWeight: 'bold', fill: '#506ad3' }; var HINT_STYLE_TEXT = { textAnchor: 'middle', fontSize: '10px', fontFamily: "'Microsoft YaHei UI', Courier, monospace", fontWeight: 'bold', fill: '1a75ff' }; function Layer(_ref) { var layer = _ref.layer, scene = _ref.scene, catalog = _ref.catalog, mode = _ref.mode, state = _ref.state, relatedLines = _ref.relatedLines; var unit = scene.unit, groups = scene.groups; var lines = layer.lines, areas = layer.areas, vertices = layer.vertices, holes = layer.holes, layerID = layer.id, items = layer.items, opacity = layer.opacity; var allLines; var allLineRects; allLines = _export2.GeometryUtils.getAllLines(layer); allLineRects = _export2.GeometryUtils.buildRectFromLines(layer, allLines); var hintVertex = { x: 0, y: 0 }; var angleVertexes = []; vertices.valueSeq().forEach(function (vert) { var vertexes = [vert]; lines.valueSeq().forEach(function (line) { var vertex0 = layer.vertices.get(line.vertices.get(0)); var vertex1 = layer.vertices.get(line.vertices.get(1)); if (vertex0 === vert) vertexes.push(vertex1); if (vertex1 === vert) vertexes.push(vertex0); }); if (vertexes.length === 3) { angleVertexes.push(vertexes); } hintVertex.x += vert.x; hintVertex.y += vert.y; }); hintVertex.x /= vertices.size; hintVertex.y /= vertices.size; var itemData = []; var itemWall = []; var itemSelected = []; items = items.sort(function (a, b) { return a.getIn(['properties', 'altitude', '_length']) - b.getIn(['properties', 'altitude', '_length']); }); items.valueSeq().filter(function (a) { return a.selected === true; }).forEach(function (item) { itemSelected.push(/*#__PURE__*/_react["default"].createElement(_export.Item, { key: item.id, layer: layer, item: item, scene: scene, catalog: catalog, mode: mode })); }); items.valueSeq().forEach(function (item) { if (item.layoutpos !== _constants.WALL_CABINET_LAYOUTPOS) { if (catalog.elements.hasOwnProperty(item.type) || !catalog.elements[item.type] && !!catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(item.type)]) itemData.push(/*#__PURE__*/_react["default"].createElement(_export.Item, { key: item.id, layer: layer, item: item, scene: scene, catalog: catalog }));else { console.log("Element ".concat(item.type, " does not exist in catalog.")); } } }); items.valueSeq().filter(function (a) { return a.selected === false; }).forEach(function (item) { if (item.layoutpos === _constants.WALL_CABINET_LAYOUTPOS) { if (catalog.elements.hasOwnProperty(item.type) || !catalog.elements[item.type] && !!catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(item.type)]) itemWall.push(/*#__PURE__*/_react["default"].createElement(_export.Item, { key: item.id, layer: layer, item: item, scene: scene, catalog: catalog }));else { console.log("Element ".concat(item.type, " does not exist in catalog.")); } } }); var lineData = []; lines.sort(function compare(a, b) { return a.createdDateTime - b.createdDateTime; }).valueSeq().forEach(function (line) { lineData.push(/*#__PURE__*/_react["default"].createElement(_export.Line, { key: line.id, layer: layer, line: line, scene: scene, catalog: catalog, state: state, relatedLines: relatedLines })); }); return /*#__PURE__*/_react["default"].createElement("g", { opacity: opacity }, areas.valueSeq().map(function (area) { return /*#__PURE__*/_react["default"].createElement(_export.Area, { key: area.id, layer: layer, area: area, unit: unit, catalog: catalog }); }), itemData, itemWall, lineData, itemSelected, mode !== _constants.MODE_DRAWING_LINE && vertices.valueSeq().filter(function (v) { return v.selected; }).map(function (vertex) { return /*#__PURE__*/_react["default"].createElement(_export.Vertex, { key: vertex.id, layer: layer, vertex: vertex }); }), groups.valueSeq().filter(function (g) { return g.hasIn(['elements', layerID]) && g.get('selected'); }).map(function (group) { return /*#__PURE__*/_react["default"].createElement(_export.Group, { key: group.get('id'), layer: layer, group: group, scene: scene, catalog: catalog }); })); } Layer.propTypes = { layer: _propTypes["default"].object.isRequired, scene: _propTypes["default"].object.isRequired, catalog: _propTypes["default"].object.isRequired }; module.exports = exports.default;