kitchen-simulator 1.0.0-alin.8 → 1.0.0-clark.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/es/LiteKitchenConfigurator.js +15 -156
  2. package/es/LiteRenderer.js +25 -113
  3. package/es/actions/items-actions.js +4 -5
  4. package/es/actions/project-actions.js +2 -3
  5. package/es/catalog/catalog.js +1 -4
  6. package/es/catalog/utils/exporter.js +3 -1
  7. package/es/class/item.js +57 -120
  8. package/es/class/project.js +9 -23
  9. package/es/components/viewer2d/item.js +10 -10
  10. package/es/components/viewer2d/layer.js +1 -1
  11. package/es/components/viewer2d/line.js +20 -17
  12. package/es/components/viewer2d/viewer2d.js +20 -56
  13. package/es/components/viewer3d/viewer3d.js +5 -17
  14. package/es/constants.js +10 -1
  15. package/es/devLiteRenderer.js +116 -9
  16. package/es/index.js +23 -3
  17. package/es/models.js +2 -1
  18. package/es/reducers/items-reducer.js +3 -3
  19. package/es/reducers/project-reducer.js +1 -1
  20. package/es/utils/geometry.js +6 -6
  21. package/es/utils/isolate-event-handler.js +97 -17
  22. package/lib/LiteKitchenConfigurator.js +16 -157
  23. package/lib/LiteRenderer.js +25 -113
  24. package/lib/actions/items-actions.js +4 -5
  25. package/lib/actions/project-actions.js +2 -3
  26. package/lib/catalog/catalog.js +1 -4
  27. package/lib/catalog/utils/exporter.js +3 -1
  28. package/lib/class/item.js +57 -120
  29. package/lib/class/project.js +9 -23
  30. package/lib/components/viewer2d/item.js +10 -10
  31. package/lib/components/viewer2d/layer.js +1 -1
  32. package/lib/components/viewer2d/line.js +19 -16
  33. package/lib/components/viewer2d/viewer2d.js +19 -55
  34. package/lib/components/viewer3d/viewer3d.js +5 -17
  35. package/lib/constants.js +14 -5
  36. package/lib/devLiteRenderer.js +115 -8
  37. package/lib/index.js +23 -3
  38. package/lib/models.js +2 -1
  39. package/lib/reducers/items-reducer.js +3 -3
  40. package/lib/reducers/project-reducer.js +1 -1
  41. package/lib/utils/geometry.js +6 -6
  42. package/lib/utils/isolate-event-handler.js +96 -16
  43. package/package.json +3 -3
@@ -1,11 +1,10 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
3
  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; }
5
4
  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) { _defineProperty(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; }
6
5
  import React, { useEffect, useRef, useState } from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import { ReactSVGPanZoom, TOOL_AUTO, TOOL_NONE, TOOL_PAN, TOOL_ZOOM_IN, TOOL_ZOOM_OUT, zoom } from 'react-svg-pan-zoom';
7
+ import { ReactSVGPanZoom, TOOL_AUTO, TOOL_NONE, TOOL_PAN, TOOL_ZOOM_IN, TOOL_ZOOM_OUT } from 'react-svg-pan-zoom';
9
8
  import * as constants from "../../constants";
10
9
  import { DECIMAL_PLACES_2, LINE_THICKNESS, MIN_ANGLE_DISALLOW_DRAW_WALL, MODE_ELEVATION_VIEW, MODE_IDLE, UNIT_ANGLE } from "../../constants";
11
10
  import State from "./state";
@@ -536,48 +535,18 @@ export default function Viewer2D(_ref, _ref2) {
536
535
  rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
537
536
  };
538
537
  };
539
- var calcDistanceArray = function calcDistanceArray() {
540
- var items = layer === null || layer === void 0 ? void 0 : layer.get('items');
541
- if (!items) return;
542
- items.forEach(function (item) {
543
- if ((item === null || item === void 0 ? void 0 : item.selected) === true) {
544
- var x = item.x,
545
- y = item.y,
546
- rotation = item.rotation,
547
- id = item.id;
548
- if (x == null || y == null) return;
549
- var val = {
550
- pos: {
551
- x: x,
552
- y: y
553
- },
554
- rotRad: rotation / 180 * Math.PI
555
- };
556
- var _width = getProperties(item, 'width');
557
- var depth = getProperties(item, 'depth');
558
- val.size = {
559
- width: _width,
560
- height: depth
561
- };
562
-
563
- // collect geometry
564
- var _allLines = GeometryUtils.getAllLines(layer) || [];
565
- var _allLineRects = GeometryUtils.buildRectFromLines(layer, _allLines) || [];
566
- var _allItemRect = GeometryUtils.getAllItems(scene, catalog, _allLineRects) || {
567
- others: []
568
- };
569
- var _allRect = [].concat(_toConsumableArray(_allItemRect.others || []), _toConsumableArray(_allLineRects));
570
-
571
- // current item
572
- var curItemInfo = getCalcRectFromItem(val);
573
- var pointArray = getDistant(x, y, val.rotRad, curItemInfo, _allRect);
574
-
575
- // store results safely
576
- if (Array.isArray(pointArray)) {
577
- itemsActions.storeDistArray(layerID, id, pointArray);
578
- }
579
- }
580
- });
538
+ var getConnectedLines = function getConnectedLines() {
539
+ var _state$getIn;
540
+ var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
541
+ var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
542
+ var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
543
+ var drawingLine = (_state$getIn = state.getIn(['scene', 'layers', layerID, 'lines', lineID])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.toJS();
544
+ // get the lines that have same points with drawing line.
545
+ if (!isEmpty(drawingLine)) {
546
+ var tlines = [];
547
+ getRelatedLines(tlines, drawingLine, vertices, lines);
548
+ setRelatedLines(tlines);
549
+ }
581
550
  };
582
551
  var onMouseMove = function onMouseMove(viewerEvent) {
583
552
  //workaround that allow imageful component to work
@@ -627,7 +596,6 @@ export default function Viewer2D(_ref, _ref2) {
627
596
  holesActions.updateDrawingHole(layerID, x, y);
628
597
  break;
629
598
  case constants.MODE_DRAWING_ITEM:
630
- calcDistanceArray();
631
599
  var _layer = scene.layers.get(layerID);
632
600
  var flag = false;
633
601
  _layer.items.some(function (item) {
@@ -713,11 +681,11 @@ export default function Viewer2D(_ref, _ref2) {
713
681
  break;
714
682
  case constants.MODE_DRAGGING_VERTEX:
715
683
  var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
684
+ getConnectedLines();
716
685
  var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
717
686
  verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
718
687
  break;
719
688
  case constants.MODE_DRAGGING_ITEM:
720
- calcDistanceArray();
721
689
  prepareSnap();
722
690
  var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
723
691
  nx = _GeometryUtils$calcSn2.nx,
@@ -889,10 +857,10 @@ export default function Viewer2D(_ref, _ref2) {
889
857
  projectActions.setMode(_mode);
890
858
  break;
891
859
  } else {
892
- var _tlines = [];
893
- var _drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', elementData.id]).toJS();
894
- getRelatedLines(_tlines, _drawingLine, vertices, lines);
895
- setRelatedLines(_tlines);
860
+ var tlines = [];
861
+ var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', elementData.id]).toJS();
862
+ getRelatedLines(tlines, drawingLine, vertices, lines);
863
+ setRelatedLines(tlines);
896
864
  linesActions.selectLine(elementData.layer, elementData.id);
897
865
  break;
898
866
  }
@@ -1178,12 +1146,7 @@ export default function Viewer2D(_ref, _ref2) {
1178
1146
  // if (dx > dy) y = prevVertex.y
1179
1147
  // else x = prevVertex.x;
1180
1148
  setdrawStart(true);
1181
- var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
1182
- var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
1183
- // get the lines that have same points with drawing line.
1184
- var tlines = [];
1185
- getRelatedLines(tlines, drawingLine, vertices, lines);
1186
- setRelatedLines(tlines);
1149
+ getConnectedLines();
1187
1150
  var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
1188
1151
  linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
1189
1152
  linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask);
@@ -1198,6 +1161,7 @@ export default function Viewer2D(_ref, _ref2) {
1198
1161
  linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);
1199
1162
  break;
1200
1163
  case constants.MODE_DRAGGING_VERTEX:
1164
+ getConnectedLines();
1201
1165
  var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
1202
1166
  verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);
1203
1167
  break;
@@ -94,9 +94,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
94
94
  } else {
95
95
  if (_this.props.downloadFlag) window.__elevationRendererDownload[mode] = _this.renderer;else window.__elevationRenderer = _this.renderer;
96
96
  }
97
- if (_this.renderer && _this.renderer.domElement) {
98
- _this.renderer.domElement.style.display = 'none';
99
- }
97
+ _this.renderer.domElement.style.display = 'none';
100
98
  return _this;
101
99
  }
102
100
  _inherits(Scene3DViewer, _React$Component);
@@ -2360,9 +2358,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2360
2358
  self.props.setIsLoadingElevation('front', false);
2361
2359
  }, 100);
2362
2360
  }
2363
- if (self.renderer && self.renderer.domElement) {
2364
- self.renderer.domElement.style.display = 'block';
2365
- }
2361
+ self.renderer.domElement.style.display = 'block';
2366
2362
  }
2367
2363
  }
2368
2364
  }
@@ -2506,9 +2502,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2506
2502
  break;
2507
2503
  }
2508
2504
  }
2509
- if (self.renderer && self.renderer.domElement) {
2510
- self.renderer.domElement.style.display = 'none';
2511
- }
2505
+ self.renderer.domElement.style.display = 'none';
2512
2506
  }
2513
2507
  if (nextProps.state.scene.showfg == true) {
2514
2508
  implementBacksplash();
@@ -2545,9 +2539,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2545
2539
  isLoadingCabinet = _this$state2.isLoadingCabinet;
2546
2540
  if (isLoading) {
2547
2541
  if (this.props.downloadFlag) {
2548
- if (this.renderer && this.renderer.domElement) {
2549
- this.renderer.domElement.style.display = 'none';
2550
- }
2542
+ this.renderer.domElement.style.display = 'none';
2551
2543
  return /*#__PURE__*/React.createElement("div", {
2552
2544
  style: {
2553
2545
  alignItems: ' center',
@@ -2567,10 +2559,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2567
2559
  }));
2568
2560
  } else {
2569
2561
  document.getElementById('front') && (document.getElementById('front').style.display = 'none');
2570
- document.getElementById('error').style.display = 'none';
2571
- if (this.renderer && this.renderer.domElement) {
2572
- this.renderer.domElement.style.display = 'none';
2573
- }
2562
+ this.renderer.domElement.style.display = 'none';
2574
2563
  return /*#__PURE__*/React.createElement("div", {
2575
2564
  style: {
2576
2565
  textAlign: 'center',
@@ -2604,7 +2593,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2604
2593
  alt: "img"
2605
2594
  }));
2606
2595
  } else {
2607
- !this.props.downloadFlag && (document.getElementById('error').style.display = 'block');
2608
2596
  this.renderer.domElement.style.pointerEvents = 'auto';
2609
2597
  this.renderer.domElement.style.opacity = '1';
2610
2598
  !this.props.downloadFlag && document.getElementById('front') && (document.getElementById('front').style.display = 'block');
package/es/constants.js CHANGED
@@ -579,6 +579,7 @@ export var ANIMATE_OBJECT_OPEN_DOOR_ROTATION_UNIT = 0.1;
579
579
  export var DIFFERENT_VALUES_PATH_LENGTH = 5;
580
580
  export var MIN_ANGLE_DISALLOW_DRAW_WALL = 45;
581
581
  export var UNIT_ANGLE = 5;
582
+ export var MAX_ANGLE_SCALE = 30;
582
583
  export var HDR_URLS = ['px.hdr', 'nx.hdr', 'py.hdr', 'ny.hdr', 'pz.hdr', 'nz.hdr'];
583
584
  export var SUBMIT_REQUEST_ASSIST = 'submit';
584
585
  export var SUBMIT_ADD_CART = 'addCart';
@@ -650,4 +651,12 @@ export var EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = 'EXTERNAL_EVENT_TOGGLE_TO_ELEVAT
650
651
  export var EXTERNAL_EVENT_ADD_WALL = 'EXTERNAL_EVENT_ADD_WALL';
651
652
  export var EXTERNAL_EVENT_ADD_ITEM = 'EXTERNAL_EVENT_ADD_ITEM';
652
653
  export var EXTERNAL_EVENT_MOVE_PAN = 'EXTERNAL_EVENT_MOVE_PAN';
653
- export var EXTERNAL_EVENT_NEW_PROJECT = 'EXTERNAL_EVENT_NEW_PROJECT';
654
+ export var EXTERNAL_EVENT_NEW_PROJECT = 'EXTERNAL_EVENT_NEW_PROJECT';
655
+ export var EXTERNAL_EVENT_CHANGE_DOORSTYLE = 'EXTERNAL_EVENT_CHANGE_DOORSTYLE';
656
+ export var EXTERNAL_EVENT_SET_INITIAL_DATA = 'EXTERNAL_EVENT_SET_INITIAL_DATA';
657
+ export var EXTERNAL_EVENT_ADD_ROOM_SHAPE = 'EXTERNAL_EVENT_ADD_ROOM_SHAPE';
658
+ export var EXTERNAL_EVENT_ZOOM_IN = 'EXTERNAL_EVENT_ZOOM_IN';
659
+ export var EXTERNAL_EVENT_ZOOM_OUT = 'EXTERNAL_EVENT_ZOOM_OUT';
660
+ export var EXTERNAL_EVENT_UNDO = 'EXTERNAL_EVENT_UNDO';
661
+ export var EXTERNAL_EVENT_REDO = 'EXTERNAL_EVENT_REDO';
662
+ export var EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
@@ -2,13 +2,17 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import React, { useState, useEffect } from 'react';
3
3
  import ContainerDimensions from 'react-container-dimensions';
4
4
  import mockProps from "./mocks/mockProps.json";
5
- import mockCategoryData from "./mocks/categoryData.json";
6
- import mockDataBundle from "./mocks/dataBundle.json";
7
- import cabinetPaylod from "./mocks/cabinetPayload.json";
5
+ import mockDataBundle from "./mocks/dataBundle2.json";
6
+ import cabinetPaylod from "./mocks/cabinetPayload2.json";
7
+ import doorStylePaylod from "./mocks/doorStylePayload.json";
8
+ import doorStylePaylod2 from "./mocks/doorStylePayload2.json";
9
+ import itemCDSPayload from "./mocks/itemCDSPayload.json";
10
+ import rectangleData from "./mocks/rectangleShape.json";
11
+ import moldingPayload from "./mocks/moldingPayload.json";
8
12
  import ReactDOM from 'react-dom';
9
13
  import LiteRenderer from "./LiteRenderer";
10
14
  import { Button } from 'antd';
11
- import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT } from "./constants";
15
+ import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING } from "./constants";
12
16
 
13
17
  // --- renderer props ---
14
18
  var options = {
@@ -22,6 +26,17 @@ function WorkSpace(props) {
22
26
  externalEvent = _useState2[0],
23
27
  setExternalEvent = _useState2[1];
24
28
  var offset = 5;
29
+ useEffect(function () {
30
+ var evt = {
31
+ type: EXTERNAL_EVENT_SET_INITIAL_DATA,
32
+ payload: {
33
+ doorStyle: {
34
+ doorStyle: doorStylePaylod
35
+ }
36
+ }
37
+ };
38
+ setExternalEvent(evt);
39
+ }, []);
25
40
  return /*#__PURE__*/React.createElement("div", {
26
41
  className: "flex gap-4"
27
42
  }, /*#__PURE__*/React.createElement(Button, {
@@ -107,6 +122,28 @@ function WorkSpace(props) {
107
122
  }
108
123
  }, /*#__PURE__*/React.createElement("img", {
109
124
  src: "/assets/img/svg/bottombar/arrow-right.svg"
125
+ })), /*#__PURE__*/React.createElement(Button, {
126
+ actionType: "primary",
127
+ onClick: function onClick() {
128
+ var evt = {
129
+ type: EXTERNAL_EVENT_ZOOM_IN,
130
+ payload: {}
131
+ };
132
+ setExternalEvent(evt);
133
+ }
134
+ }, /*#__PURE__*/React.createElement("img", {
135
+ src: "/assets/img/svg/bottombar/arrow-minus.svg"
136
+ })), /*#__PURE__*/React.createElement(Button, {
137
+ actionType: "primary",
138
+ onClick: function onClick() {
139
+ var evt = {
140
+ type: EXTERNAL_EVENT_ZOOM_OUT,
141
+ payload: {}
142
+ };
143
+ setExternalEvent(evt);
144
+ }
145
+ }, /*#__PURE__*/React.createElement("img", {
146
+ src: "/assets/img/svg/bottombar/arrow-plus.svg"
110
147
  })), /*#__PURE__*/React.createElement(Button, {
111
148
  actionType: "primary",
112
149
  onClick: function onClick() {
@@ -134,11 +171,74 @@ function WorkSpace(props) {
134
171
  };
135
172
  setExternalEvent(evt);
136
173
  }
137
- }, "Add B12 Cabinet"), /*#__PURE__*/React.createElement(LiteRenderer, {
138
- width: 1200,
139
- height: 953,
174
+ }, "Add B12 Cabinet"), /*#__PURE__*/React.createElement(Button, {
175
+ actionType: "danger",
176
+ onClick: function onClick() {
177
+ var evt = {
178
+ type: EXTERNAL_EVENT_CHANGE_DOORSTYLE,
179
+ payload: {
180
+ doorStyle: doorStylePaylod2,
181
+ itemCDS: itemCDSPayload,
182
+ isAll: true
183
+ }
184
+ };
185
+ setExternalEvent(evt);
186
+ }
187
+ }, "DoorStyle (Change into Midtown White Shaker)"), /*#__PURE__*/React.createElement(Button, {
188
+ actionType: "danger",
189
+ onClick: function onClick() {
190
+ var evt = {
191
+ type: EXTERNAL_EVENT_ADD_ROOM_SHAPE,
192
+ payload: rectangleData
193
+ };
194
+ setExternalEvent(evt);
195
+ }
196
+ }, "Add Room shape(rectangle)"), /*#__PURE__*/React.createElement(Button, {
197
+ actionType: "danger",
198
+ onClick: function onClick() {
199
+ var evt = {
200
+ type: EXTERNAL_EVENT_UNDO,
201
+ payload: {}
202
+ };
203
+ setExternalEvent(evt);
204
+ }
205
+ }, "Undo"), /*#__PURE__*/React.createElement(Button, {
206
+ actionType: "danger",
207
+ onClick: function onClick() {
208
+ var evt = {
209
+ type: EXTERNAL_EVENT_REDO,
210
+ payload: {}
211
+ };
212
+ setExternalEvent(evt);
213
+ }
214
+ }, "Redo"), /*#__PURE__*/React.createElement(Button, {
215
+ actionType: "danger",
216
+ onClick: function onClick() {
217
+ var evt = {
218
+ type: EXTERNAL_EVENT_SET_MOLDING,
219
+ payload: {
220
+ isGlobal: true,
221
+ moldingInfo: moldingPayload
222
+ }
223
+ };
224
+ setExternalEvent(evt);
225
+ }
226
+ }, "Global Molding (FBM)"), /*#__PURE__*/React.createElement(Button, {
227
+ actionType: "danger",
228
+ onClick: function onClick() {
229
+ var evt = {
230
+ type: EXTERNAL_EVENT_SET_MOLDING,
231
+ payload: {
232
+ isGlobal: false,
233
+ moldingInfo: moldingPayload
234
+ }
235
+ };
236
+ setExternalEvent(evt);
237
+ }
238
+ }, "Individual Molding (FBM)"), /*#__PURE__*/React.createElement(LiteRenderer, {
239
+ width: props.width,
240
+ height: props.height,
140
241
  projectElement: mockProps.projectElement,
141
- categoryData: mockCategoryData,
142
242
  dataBundle: mockDataBundle,
143
243
  configData: mockProps.configData,
144
244
  options: options,
@@ -158,4 +258,11 @@ function WorkSpace(props) {
158
258
  }
159
259
  }));
160
260
  }
161
- ReactDOM.render(/*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(WorkSpace, null)), document.getElementById('app'));
261
+ ReactDOM.render(/*#__PURE__*/React.createElement(ContainerDimensions, null, function (_ref) {
262
+ var width = _ref.width,
263
+ height = _ref.height;
264
+ return /*#__PURE__*/React.createElement(WorkSpace, {
265
+ width: width,
266
+ height: height
267
+ });
268
+ }), document.getElementById('app'));
package/es/index.js CHANGED
@@ -1,7 +1,27 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ 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; }
3
+ 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) { _defineProperty(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; }
4
+ import ReactDOM from 'react-dom';
1
5
  import React from 'react';
2
6
  import LiteRenderer from "./LiteRenderer";
3
- export function renderKitchenSimulator() {
4
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5
- return /*#__PURE__*/React.createElement(LiteRenderer, props);
7
+ export function renderKitchenSimulator(container) {
8
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9
+ var currentProps = props;
10
+
11
+ // Initial render
12
+ var root = ReactDOM.render(/*#__PURE__*/React.createElement(LiteRenderer, props), container);
13
+ return {
14
+ root: root,
15
+ updateExternalEvent: function updateExternalEvent(newExternalEvent) {
16
+ var prevEvent = currentProps.externalEvent;
17
+ var isSameEvent = prevEvent && newExternalEvent && prevEvent.type === newExternalEvent.type && JSON.stringify(prevEvent.payload) === JSON.stringify(newExternalEvent.payload);
18
+ if (!isSameEvent) {
19
+ currentProps = _objectSpread(_objectSpread({}, currentProps), {}, {
20
+ externalEvent: newExternalEvent
21
+ });
22
+ ReactDOM.render(/*#__PURE__*/React.createElement(LiteRenderer, currentProps), container);
23
+ }
24
+ }
25
+ };
6
26
  }
7
27
  export default renderKitchenSimulator;
package/es/models.js CHANGED
@@ -338,7 +338,8 @@ export var CatalogElement = /*#__PURE__*/function (_Record1) {
338
338
  info: new Map(),
339
339
  properties: new Map(),
340
340
  obj: new Map(),
341
- type: ''
341
+ type: '',
342
+ cds: new Map()
342
343
  }, 'CatalogElement'));
343
344
  export var Catalog = /*#__PURE__*/function (_Record10) {
344
345
  function Catalog() {
@@ -28,7 +28,7 @@ export default function (state, action) {
28
28
  state = state.merge({
29
29
  sceneHistory: history.historyPush(state.sceneHistory, state.scene)
30
30
  });
31
- return Item.selectToolDrawingItem(state, action.sceneComponentType, action.oStyle).updatedState;
31
+ return Item.selectToolDrawingItem(state, action.sceneComponentType).updatedState;
32
32
  case REPLACE_ITEM:
33
33
  return Item.replaceItem(state, action.selectedPos, action.currentObject, action.selectedObject).updatedState;
34
34
  case UPDATE_DRAWING_ITEM:
@@ -105,7 +105,7 @@ export default function (state, action) {
105
105
  case SELECT_TOOL_DRAWING_ITEM_3D:
106
106
  return Item.selectToolDrawingItem3D(state, action.sceneComponentType).updatedState;
107
107
  case SET_DOOR_STYLE:
108
- return Item.setDoorStyle(state, action.doorStyle, action.pathes, action.isAll).updatedState;
108
+ return Item.setDoorStyle(state, action.doorStyle, action.itemCDS, action.isAll).updatedState;
109
109
  case SET_HANDLE_MATERIAL:
110
110
  return Item.setHandleMaterial(state, action.material).updatedState;
111
111
  case SET_DOOR_HANDLE:
@@ -130,7 +130,7 @@ export default function (state, action) {
130
130
  case SET_APPLIANCE_MATERIAL:
131
131
  return Item.setApplianceMaterial(state, action.material).updatedState;
132
132
  case SET_INITIAL_DOOR_STYLE:
133
- return Item.setInitialDoorStyle(state, action.doorStyle, action.oStyle).updatedState;
133
+ return Item.setInitialDoorStyle(state, action.doorStyle).updatedState;
134
134
  case UPDATE_ITEM_POSITION:
135
135
  return Item.updateItemPosition(state, action.layerID, action.itemID, action.pos).updatedState;
136
136
  // case SET_MOVE_STATUS:
@@ -6,7 +6,7 @@ export default function (state, action) {
6
6
  case NEW_PROJECT:
7
7
  return Project.newProject(state).updatedState;
8
8
  case LOAD_PROJECT:
9
- return Project.loadProject(state, action.sceneJSON, action.categoryData).updatedState;
9
+ return Project.loadProject(state, action.sceneJSON).updatedState;
10
10
  case OPEN_CATALOG:
11
11
  return Project.openCatalog(state).updatedState;
12
12
  case CHANGE_CATALOG_PAGE:
@@ -873,18 +873,18 @@ export function getAllItemSnap(allItemRects) {
873
873
  var snap4 = itemrectInfo(rect.rect[3].x + ox0, rect.rect[3].y + oy0, nrot, cur && cur.size, rect.layoutpos, rect.is_corner);
874
874
  var sizeinfo = otherItems[index].cat && otherItems[index].cat.info.sizeinfo;
875
875
  if (sizeinfo) {
876
- var leftBlindLength = sizeinfo.leftBlindLength,
877
- rightBlindLength = sizeinfo.rightBlindLength;
878
- if (leftBlindLength > 0) {
879
- var vx = leftBlindLength - ch;
876
+ var left_blind_length = sizeinfo.left_blind_length,
877
+ right_blind_length = sizeinfo.right_blind_length;
878
+ if (left_blind_length > 0) {
879
+ var vx = left_blind_length - ch;
880
880
  var vy = cw;
881
881
  var dx = vx * cos + vy * sin;
882
882
  var dy = vx * sin - vy * cos;
883
883
  var snap6 = itemrectInfo(rect.rect[0].x + dx, rect.rect[0].y + dy, rect.rotRad + Math.PI / 2, cur && cur.size, rect.layoutpos, rect.is_corner);
884
884
  allItemSnap.push(snap6);
885
885
  }
886
- if (rightBlindLength > 0) {
887
- var _vx = ch - rightBlindLength;
886
+ if (right_blind_length > 0) {
887
+ var _vx = ch - right_blind_length;
888
888
  var _vy = cw;
889
889
  var _dx = _vx * cos + _vy * sin;
890
890
  var _dy = _vx * sin - _vy * cos;