kitchen-simulator 3.1.15 → 4.0.0-alpha.12

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 (105) hide show
  1. package/es/LiteKitchenConfigurator.js +204 -21
  2. package/es/LiteRenderer.js +277 -12
  3. package/es/actions/items-actions.js +6 -10
  4. package/es/actions/lines-actions.js +1 -3
  5. package/es/actions/project-actions.js +5 -15
  6. package/es/assets/Window.hdr +2100 -0
  7. package/es/assets/gltf/door_sliding.bin +0 -0
  8. package/es/assets/img/1.jpg +0 -0
  9. package/es/catalog/areas/area/planner-element.js +5 -10
  10. package/es/catalog/catalog.js +4 -1
  11. package/es/catalog/factories/area-factory-3d.js +17 -18
  12. package/es/catalog/factories/wall-factory-3d.js +2 -2
  13. package/es/catalog/factories/wall-factory.js +8 -8
  14. package/es/catalog/lines/wall/planner-element.js +9 -18
  15. package/es/catalog/utils/exporter.js +3 -6
  16. package/es/catalog/utils/item-loader.js +197 -202
  17. package/es/catalog/utils/mtl-loader.js +2 -2
  18. package/es/catalog/utils/obj-loader.js +2 -2
  19. package/es/class/item.js +127 -107
  20. package/es/class/line.js +2 -14
  21. package/es/class/project.js +44 -150
  22. package/es/components/content.js +6 -19
  23. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  24. package/es/components/viewer2d/item.js +51 -84
  25. package/es/components/viewer2d/line.js +243 -315
  26. package/es/components/viewer2d/ruler.js +36 -16
  27. package/es/components/viewer2d/rulerDist.js +75 -44
  28. package/es/components/viewer2d/utils.js +0 -6
  29. package/es/components/viewer2d/viewer2d.js +205 -301
  30. package/es/components/viewer3d/front3D.js +2 -3
  31. package/es/components/viewer3d/libs/mtl-loader.js +2 -2
  32. package/es/components/viewer3d/libs/obj-loader.js +2 -2
  33. package/es/components/viewer3d/libs/orbit-controls.js +4 -3
  34. package/es/components/viewer3d/libs/pointer-lock-controls.js +7 -6
  35. package/es/components/viewer3d/viewer3d.js +80 -127
  36. package/es/constants.js +3 -110
  37. package/es/devLiteRenderer.js +38 -597
  38. package/es/index.js +86 -16
  39. package/es/models.js +5 -8
  40. package/es/plugins/SVGLoader.js +5 -7
  41. package/es/plugins/keyboard.js +6 -15
  42. package/es/reducers/items-reducer.js +5 -5
  43. package/es/reducers/lines-reducer.js +1 -1
  44. package/es/reducers/project-reducer.js +3 -5
  45. package/es/shared-style.js +4 -4
  46. package/es/utils/geometry.js +0 -161
  47. package/es/utils/get-edges-of-subgraphs.js +1 -1
  48. package/es/utils/graph-cycles.js +1 -1
  49. package/es/utils/graph.js +1 -1
  50. package/es/utils/helper.js +2 -67
  51. package/es/utils/isolate-event-handler.js +124 -1367
  52. package/es/utils/molding.js +2 -238
  53. package/lib/LiteKitchenConfigurator.js +205 -22
  54. package/lib/LiteRenderer.js +278 -13
  55. package/lib/actions/items-actions.js +6 -10
  56. package/lib/actions/lines-actions.js +1 -3
  57. package/lib/actions/project-actions.js +4 -15
  58. package/lib/assets/Window.hdr +2100 -0
  59. package/lib/assets/gltf/door_sliding.bin +0 -0
  60. package/lib/assets/img/1.jpg +0 -0
  61. package/lib/catalog/areas/area/planner-element.js +5 -11
  62. package/lib/catalog/catalog.js +4 -1
  63. package/lib/catalog/factories/area-factory-3d.js +14 -15
  64. package/lib/catalog/factories/wall-factory-3d.js +2 -2
  65. package/lib/catalog/factories/wall-factory.js +8 -8
  66. package/lib/catalog/lines/wall/planner-element.js +9 -19
  67. package/lib/catalog/utils/exporter.js +3 -6
  68. package/lib/catalog/utils/item-loader.js +194 -199
  69. package/lib/catalog/utils/mtl-loader.js +2 -9
  70. package/lib/catalog/utils/obj-loader.js +2 -10
  71. package/lib/class/item.js +125 -105
  72. package/lib/class/line.js +1 -13
  73. package/lib/class/project.js +43 -149
  74. package/lib/components/content.js +6 -19
  75. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  76. package/lib/components/viewer2d/item.js +50 -83
  77. package/lib/components/viewer2d/line.js +242 -315
  78. package/lib/components/viewer2d/ruler.js +35 -15
  79. package/lib/components/viewer2d/rulerDist.js +75 -44
  80. package/lib/components/viewer2d/utils.js +0 -7
  81. package/lib/components/viewer2d/viewer2d.js +205 -299
  82. package/lib/components/viewer3d/front3D.js +2 -3
  83. package/lib/components/viewer3d/libs/mtl-loader.js +2 -9
  84. package/lib/components/viewer3d/libs/obj-loader.js +2 -9
  85. package/lib/components/viewer3d/libs/orbit-controls.js +5 -11
  86. package/lib/components/viewer3d/libs/pointer-lock-controls.js +7 -13
  87. package/lib/components/viewer3d/viewer3d.js +79 -125
  88. package/lib/constants.js +7 -115
  89. package/lib/devLiteRenderer.js +33 -592
  90. package/lib/index.js +86 -16
  91. package/lib/models.js +5 -8
  92. package/lib/plugins/SVGLoader.js +5 -7
  93. package/lib/plugins/keyboard.js +6 -15
  94. package/lib/reducers/items-reducer.js +5 -5
  95. package/lib/reducers/lines-reducer.js +1 -1
  96. package/lib/reducers/project-reducer.js +2 -4
  97. package/lib/shared-style.js +4 -4
  98. package/lib/utils/geometry.js +0 -162
  99. package/lib/utils/get-edges-of-subgraphs.js +1 -6
  100. package/lib/utils/graph-cycles.js +8 -7
  101. package/lib/utils/graph.js +1 -6
  102. package/lib/utils/helper.js +3 -70
  103. package/lib/utils/isolate-event-handler.js +121 -1364
  104. package/lib/utils/molding.js +0 -238
  105. package/package.json +1 -1
@@ -17,7 +17,6 @@ var _export = require("../utils/export");
17
17
  var _export2 = require("../class/export");
18
18
  var viewer2DActions = _interopRequireWildcard(require("../actions/viewer2d-actions"));
19
19
  var _helper = require("../utils/helper");
20
- var _convertUnitsLite = require("../utils/convert-units-lite");
21
20
  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); }
22
21
  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; }
23
22
  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; }
@@ -44,6 +43,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
44
43
  key: "newProject",
45
44
  value: function newProject(state) {
46
45
  var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
46
+ var oStyle = state.oStyle;
47
47
  // let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
48
48
  // let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
49
49
  var _viewer2D = state.viewer2D;
@@ -57,6 +57,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
57
57
  state = new _models.State({});
58
58
  state = state.merge({
59
59
  doorStyle: doorStyle,
60
+ oStyle: oStyle,
60
61
  viewer2D: _viewer2D
61
62
  });
62
63
  // state = Item.setCounterTop(state, counterTop).updatedState;
@@ -67,8 +68,9 @@ var Project = exports["default"] = /*#__PURE__*/function () {
67
68
  }
68
69
  }, {
69
70
  key: "loadProject",
70
- value: function loadProject(state, sceneJSON) {
71
+ value: function loadProject(state, sceneJSON, categoryData) {
71
72
  var doorStyle = state.doorStyle;
73
+ var oStyle = state.oStyle;
72
74
  var layerID = state.scene.selectedLayer;
73
75
  var _viewer2D = state.viewer2D;
74
76
  var viewer = state.viewer2D.toJS();
@@ -100,17 +102,6 @@ var Project = exports["default"] = /*#__PURE__*/function () {
100
102
  for (var x in json_items) {
101
103
  _loop(x);
102
104
  }
103
-
104
- // making layer's doorStyle when changing room shape
105
- // THIS LOGIC WAS MOVED TO SET INITIAL DOOR STYLE
106
- // if (isEmpty(sceneJSON?.layers[layerID]?.doorStyle)) {
107
- // let newlayer = {
108
- // ...sceneJSON?.layers[layerID],
109
- // doorStyle: doorStyle.toJS()
110
- // };
111
- // sceneJSON && (sceneJSON.layers[layerID] = newlayer);
112
- // }
113
-
114
105
  var newScene = new _models.Scene(sceneJSON);
115
106
  state = new _models.State({
116
107
  scene: newScene.toJS(),
@@ -172,17 +163,35 @@ var Project = exports["default"] = /*#__PURE__*/function () {
172
163
  f: f
173
164
  });
174
165
  }
175
-
176
- // Matching state.doorStyle with layer.doorStyle
177
- if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
178
- doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
166
+ if (!doorStyle) {
167
+ if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
168
+ doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
169
+ }
179
170
  }
180
171
  state = state.merge({
181
172
  doorStyle: doorStyle,
173
+ oStyle: oStyle,
182
174
  viewer2D: _viewer2D
183
175
  });
184
176
  state = _export2.Item.setCounterTop(state, counterTop).updatedState;
185
177
  state = _export2.Area.setFloorStyles(state, floorStyle).updatedState;
178
+ if (state.getIn(['scene', 'layers', layerID, 'doorStyle']) && !state.getIn(['scene', 'layers', layerID, 'doorStyle', 'install'])) {
179
+ var layerDoorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
180
+ var install = '';
181
+ categoryData.data.doorStyles.items.forEach(function (category) {
182
+ category.items.forEach(function (element) {
183
+ if (element.items.filter(function (it) {
184
+ return it.id === layerDoorStyle.id && (layerDoorStyle.install ? category.name === layerDoorStyle.install : true);
185
+ }).length) {
186
+ install = category.name;
187
+ }
188
+ });
189
+ });
190
+ layerDoorStyle = _objectSpread(_objectSpread({}, layerDoorStyle), {}, {
191
+ install: install
192
+ });
193
+ state = state.mergeIn(['scene', 'layers', layerID, 'doorStyle'], layerDoorStyle);
194
+ }
186
195
  this.updateZoomScale(state, a);
187
196
  viewer2DActions.updateCameraView(_viewer2D);
188
197
  return {
@@ -315,52 +324,29 @@ var Project = exports["default"] = /*#__PURE__*/function () {
315
324
  }
316
325
  }, {
317
326
  key: "remove",
318
- value: function remove(state, delObject) {
327
+ value: function remove(state) {
319
328
  var selectedLayer = state.getIn(['scene', 'selectedLayer']);
320
329
  var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
321
330
  selectedLines = _state$getIn.lines,
322
331
  selectedHoles = _state$getIn.holes,
323
332
  selectedItems = _state$getIn.items;
333
+ var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
334
+ var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', 'lines']).toJS();
335
+ var lineID = selLines[0];
336
+ var delLine = !(0, _helper.isEmpty)(lineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', lineID]).toJS();
337
+ var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
324
338
  var relatedLines = [];
325
-
326
- // if deleting element is line then get the related lines that to update walls
327
- if (delObject && delObject.prototype === constants.ELEMENT_LINE || (0, _helper.isEmpty)(delObject) && !(0, _helper.isEmpty)(selectedLines)) {
328
- var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
329
- var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', constants.ELEMENT_LINE]).toJS();
330
- var curSelLineID = (delObject === null || delObject === void 0 ? void 0 : delObject.prototype) === constants.ELEMENT_LINE ? delObject.id : selLines[0];
331
- var delLine = !(0, _helper.isEmpty)(curSelLineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', curSelLineID]).toJS();
332
- var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
333
- !(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
334
- }
335
-
336
- // delete element
337
- if (delObject) {
338
- switch (delObject.prototype) {
339
- case constants.ELEMENT_LINE:
340
- state = _export2.Line.remove(state, selectedLayer, delObject.id).updatedState;
341
- break;
342
- case constants.ELEMENT_HOLE:
343
- state = _export2.Hole.remove(state, selectedLayer, delObject.id).updatedState;
344
- break;
345
- case constants.ELEMENT_ITEM:
346
- state = _export2.Item.remove(state, selectedLayer, delObject.id).updatedState;
347
- break;
348
- }
349
- } else {
350
- // no specified object, then remove all selected elements
351
- selectedLines.forEach(function (lineID) {
352
- state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
353
- });
354
- selectedHoles.forEach(function (holeID) {
355
- state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
356
- });
357
- selectedItems.forEach(function (itemID) {
358
- state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
359
- });
360
- }
361
-
362
- // update wall if line removed
363
- if (!(0, _helper.isEmpty)(relatedLines)) {
339
+ !(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
340
+ selectedLines.forEach(function (lineID) {
341
+ state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
342
+ });
343
+ selectedHoles.forEach(function (holeID) {
344
+ state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
345
+ });
346
+ selectedItems.forEach(function (itemID) {
347
+ state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
348
+ });
349
+ if (!(0, _helper.isEmpty)(selectedLines) && !(0, _helper.isEmpty)(relatedLines)) {
364
350
  state = state.setIn(['mode'], _constants.MODE_DRAWING_LINE);
365
351
  relatedLines.forEach(function (relLine, index) {
366
352
  state = _export2.Line.select(state, selectedLayer, relLine.id).updatedState;
@@ -834,98 +820,6 @@ var Project = exports["default"] = /*#__PURE__*/function () {
834
820
  updatedState: state
835
821
  };
836
822
  }
837
- }, {
838
- key: "createRoomWithShape",
839
- value: function createRoomWithShape(state, roomShapeType, width, height, doorStyle) {
840
- var catalog = state.catalog;
841
- state = this.newProject(state).updatedState;
842
- state = state.merge({
843
- catalog: catalog
844
- });
845
- var _viewer2D = state.viewer2D;
846
- var viewer = _viewer2D.toJS();
847
- width = (0, _convertUnitsLite.convert)(width).from('in').to('cm');
848
- height = (0, _convertUnitsLite.convert)(height).from('in').to('cm');
849
- var layerID = state.scene.selectedLayer;
850
- state = _export2.Item.setInitialDoorStyle(state, doorStyle).updatedState;
851
- if ((0, _helper.isEmpty)(viewer)) return {
852
- updatedState: state
853
- };
854
- var halfWidth = width / 2;
855
- var halfHeight = height / 2;
856
- var viewerWidth = viewer.SVGWidth;
857
- var viewerHeight = viewer.SVGHeight;
858
- var centerPos = {
859
- x: viewerWidth / 2,
860
- y: viewerHeight / 2
861
- };
862
- var vtLB = {
863
- x: centerPos.x - halfWidth,
864
- y: centerPos.y - halfHeight
865
- };
866
- var vtRB = {
867
- x: centerPos.x + halfWidth,
868
- y: centerPos.y - halfHeight
869
- };
870
- var vtRT = {
871
- x: centerPos.x + halfWidth,
872
- y: centerPos.y + halfHeight
873
- };
874
- var vtLT = {
875
- x: centerPos.x - halfWidth,
876
- y: centerPos.y + halfHeight
877
- };
878
- var vertices = [];
879
- switch (roomShapeType) {
880
- case 'rectangle':
881
- vertices = [vtLB, vtLT, vtRT, vtRB];
882
- break;
883
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
884
- vertices = [vtLB, vtRB, vtRT];
885
- break;
886
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
887
- vertices = [vtRB, vtRT, vtLT];
888
- break;
889
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
890
- vertices = [vtRT, vtLT, vtLB];
891
- break;
892
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
893
- vertices = [vtLT, vtLB, vtRB];
894
- break;
895
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
896
- vertices = [vtRB, vtRT, vtLT, vtLB];
897
- break;
898
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
899
- vertices = [vtLB, vtRB, vtRT, vtLT];
900
- break;
901
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
902
- vertices = [vtLT, vtLB, vtRB, vtRT];
903
- break;
904
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
905
- vertices = [vtRT, vtLT, vtLB, vtRB];
906
- break;
907
- }
908
- for (var i = 0; i < vertices.length - 1; i++) {
909
- state = _export2.Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
910
- }
911
- if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
912
- state = _export2.Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
913
- }
914
- var layer = state.getIn(['scene', 'layers', layerID]);
915
- var lines = layer.getIn(['lines']).toJS();
916
- var drawingInfo = {};
917
- var lineKey = Object.keys(lines);
918
- for (var _i = 0; _i < lineKey.length; _i++) {
919
- if (!(0, _helper.isEmpty)(lineKey)) {
920
- drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
921
- }
922
- state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
923
- }
924
- state = (0, _helper.centering2D)(state);
925
- return {
926
- updatedState: state
927
- };
928
- }
929
823
  }]);
930
824
  }();
931
825
  module.exports = exports.default;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = Content;
9
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = _interopRequireDefault(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _viewer2d = _interopRequireDefault(require("./viewer2d/viewer2d"));
12
12
  var _viewer3d = _interopRequireDefault(require("./viewer3d/viewer3d"));
@@ -26,18 +26,9 @@ function Content(_ref, _ref2) {
26
26
  setToolbar = _ref.setToolbar,
27
27
  replaceCabinet = _ref.replaceCabinet,
28
28
  keyDownEnable = _ref.keyDownEnable,
29
- catalog = _ref.catalog,
30
- onInternalEvent = _ref.onInternalEvent;
29
+ catalog = _ref.catalog;
31
30
  var projectActions = _ref2.projectActions;
32
31
  var mode = state.get('mode');
33
-
34
- // Internal Event for unselect_all
35
- (0, _react.useEffect)(function () {
36
- if (state.getIn(['scene', 'layers', 'layer-1', 'selected', 'vertices']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'holes']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'areas']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'items']).size < 1) onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
37
- type: constants.INTERNAL_EVENT_UNSELECT_ALL,
38
- value: null
39
- });
40
- }, [state.getIn(['scene', 'layers', 'layer-1', 'selected'])]);
41
32
  switch (mode) {
42
33
  // this mode is when view elevation
43
34
  case constants.MODE_ELEVATION_VIEW:
@@ -59,8 +50,7 @@ function Content(_ref, _ref2) {
59
50
  setToolbar: setToolbar,
60
51
  replaceCabinet: replaceCabinet,
61
52
  keyDownEnable: keyDownEnable,
62
- downloadFlag: false,
63
- onInternalEvent: onInternalEvent
53
+ downloadFlag: false
64
54
  });
65
55
  case constants.MODE_3D_FIRST_PERSON:
66
56
  return /*#__PURE__*/_react["default"].createElement(_viewer3dFirstPerson["default"], {
@@ -98,8 +88,7 @@ function Content(_ref, _ref2) {
98
88
  width: width,
99
89
  height: height,
100
90
  setToolbar: setToolbar,
101
- replaceCabinet: replaceCabinet,
102
- onInternalEvent: onInternalEvent
91
+ replaceCabinet: replaceCabinet
103
92
  });
104
93
  case constants.MODE_ROTATING_ITEM_3D:
105
94
  case constants.MODE_DRAGGING_ITEM_3D:
@@ -115,8 +104,7 @@ function Content(_ref, _ref2) {
115
104
  setToolbar: setToolbar,
116
105
  replaceCabinet: replaceCabinet,
117
106
  keyDownEnable: keyDownEnable,
118
- downloadFlag: false,
119
- onInternalEvent: onInternalEvent
107
+ downloadFlag: false
120
108
  });
121
109
 
122
110
  // case constants.MODE_CONFIGURING_PROJECT:
@@ -141,8 +129,7 @@ Content.propTypes = {
141
129
  state: _propTypes["default"].object.isRequired,
142
130
  width: _propTypes["default"].number.isRequired,
143
131
  height: _propTypes["default"].number.isRequired,
144
- replaceCabinet: _propTypes["default"].func.isRequired,
145
- onInternalEvent: _propTypes["default"].func.isRequired
132
+ replaceCabinet: _propTypes["default"].func.isRequired
146
133
  };
147
134
  Content.contextTypes = {
148
135
  projectActions: _propTypes["default"].object.isRequired
@@ -29,7 +29,7 @@ function GridStreak(_ref) {
29
29
  key: i,
30
30
  cx: x,
31
31
  cy: y,
32
- r: 2,
32
+ r: 1.5,
33
33
  fill: color
34
34
  }));
35
35
  }
@@ -14,7 +14,6 @@ var _convertUnitsLite = require("../../utils/convert-units-lite");
14
14
  var _export = require("../../utils/export");
15
15
  var _constants = require("../../constants");
16
16
  var _utils = require("./utils");
17
- var _geometry = require("../../utils/geometry");
18
17
  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); }
19
18
  var STYLE_LINE = {
20
19
  fill: '#0096fd',
@@ -31,7 +30,6 @@ var STYLE_CIRCLE2 = {
31
30
  cursor: 'ew-resize'
32
31
  };
33
32
  function Item(_ref, _ref2) {
34
- var _element$render2D;
35
33
  var layer = _ref.layer,
36
34
  item = _ref.item,
37
35
  scene = _ref.scene,
@@ -41,8 +39,7 @@ function Item(_ref, _ref2) {
41
39
  var x = item.x,
42
40
  y = item.y,
43
41
  rotation = item.rotation,
44
- id = item.id,
45
- layoutpos = item.layoutpos;
42
+ id = item.id;
46
43
  var showBaseCabinetMeasure = scene.showBaseCabinetMeasure,
47
44
  showWallCabinetMeasure = scene.showWallCabinetMeasure;
48
45
  var vertices = layer.vertices;
@@ -53,7 +50,6 @@ function Item(_ref, _ref2) {
53
50
  var allLineRects;
54
51
  var allItemRect;
55
52
  var width, height;
56
- var altitude = item.properties.getIn(['altitude', '_length']);
57
53
  var _useState = (0, _react.useState)(false),
58
54
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
59
55
  clockRotateState = _useState2[0],
@@ -122,11 +118,16 @@ function Item(_ref, _ref2) {
122
118
  var selectedItem;
123
119
  if (layer.selected.items.size > 0) {
124
120
  selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
125
- var _catid = selectedItem.type;
126
- var _cat = (0, _geometry.findCatalogElement)(catalog, _catid);
121
+ var catid = selectedItem.type;
122
+ var cat = catalog.elements[catid];
123
+ if (!cat) cat = catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(catid)];
124
+ if (cat === undefined || cat === null) {
125
+ cat = catalog.getIn(['elements', catid]);
126
+ if (!cat) cat = catalog.getIn(['elements', (0, _utils.returnReplaceableDeepSearchType)(catid)]);
127
+ }
127
128
  currentItem = {
128
129
  selectedItem: selectedItem,
129
- cat: _cat
130
+ cat: cat
130
131
  };
131
132
  }
132
133
  layer.items.forEach(function (item) {
@@ -138,7 +139,8 @@ function Item(_ref, _ref2) {
138
139
  rotRad: item.rotation / 180 * Math.PI
139
140
  };
140
141
  var catid = item.type;
141
- var cat = (0, _geometry.findCatalogElement)(catalog, catid);
142
+ var cat = catalog.elements[catid];
143
+ if (!cat) cat = catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(catid)];
142
144
  var width = (0, _convertUnitsLite.convert)(item.properties.getIn(['width', '_length'])).from('in').to('cm');
143
145
  var height = (0, _convertUnitsLite.convert)(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
144
146
  // let width = cat.info.sizeinfo.width;
@@ -157,36 +159,33 @@ function Item(_ref, _ref2) {
157
159
  // }
158
160
 
159
161
  if (!item.selected) {
160
- var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
161
- if (detectObjectsAtSameAltitudeFlag) {
162
- var _x = val.pos.x;
163
- var _y = val.pos.y;
164
- var rotRad = val.rotRad;
165
- var w = val.size.width / 2;
166
- var h = val.size.height / 2;
167
- var mx = _x - w * Math.cos(rotRad);
168
- var my = _y - w * Math.sin(rotRad);
169
- var x0 = mx + h * Math.sin(rotRad);
170
- var y0 = my - h * Math.cos(rotRad);
171
- var x3 = mx * 2 - x0;
172
- var y3 = my * 2 - y0;
173
- var x1 = _x * 2 - x3;
174
- var y1 = _y * 2 - y3;
175
- var x2 = _x * 2 - x0;
176
- var y2 = _y * 2 - y0;
177
- rectarray.push({
178
- rect: [point(x0, y0), point(x1, y1), point(x0, y0), point(x1, y1)]
179
- });
180
- rectarray.push({
181
- rect: [point(x1, y1), point(x2, y2), point(x1, y1), point(x2, y2)]
182
- });
183
- rectarray.push({
184
- rect: [point(x2, y2), point(x3, y3), point(x2, y2), point(x3, y3)]
185
- });
186
- rectarray.push({
187
- rect: [point(x3, y3), point(x0, y0), point(x3, y3), point(x0, y0)]
188
- });
189
- }
162
+ var _x = val.pos.x;
163
+ var _y = val.pos.y;
164
+ var rotRad = val.rotRad;
165
+ var w = val.size.width / 2;
166
+ var h = val.size.height / 2;
167
+ var mx = _x - w * Math.cos(rotRad);
168
+ var my = _y - w * Math.sin(rotRad);
169
+ var x0 = mx + h * Math.sin(rotRad);
170
+ var y0 = my - h * Math.cos(rotRad);
171
+ var x3 = mx * 2 - x0;
172
+ var y3 = my * 2 - y0;
173
+ var x1 = _x * 2 - x3;
174
+ var y1 = _y * 2 - y3;
175
+ var x2 = _x * 2 - x0;
176
+ var y2 = _y * 2 - y0;
177
+ rectarray.push({
178
+ rect: [point(x0, y0), point(x1, y1), point(x0, y0), point(x1, y1)]
179
+ });
180
+ rectarray.push({
181
+ rect: [point(x1, y1), point(x2, y2), point(x1, y1), point(x2, y2)]
182
+ });
183
+ rectarray.push({
184
+ rect: [point(x2, y2), point(x3, y3), point(x2, y2), point(x3, y3)]
185
+ });
186
+ rectarray.push({
187
+ rect: [point(x3, y3), point(x0, y0), point(x3, y3), point(x0, y0)]
188
+ });
190
189
  }
191
190
  });
192
191
 
@@ -247,38 +246,25 @@ function Item(_ref, _ref2) {
247
246
  */
248
247
  var getDistant = function getDistant(x, y, rotRad) {
249
248
  var center_h = 3 * height / 8;
250
- var center_x = x; // middle of front line of cabinet rect
249
+ var center_x = x;
251
250
  var center_y = y;
252
- var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
251
+ var center_x1 = x - center_h * Math.sin(rotRad);
253
252
  var center_y1 = y + center_h * Math.cos(rotRad);
254
253
  var PointArray = [];
255
- var _loop = function _loop(i) {
256
- var centerpoint = curiteminfo.rectCenterPoint[i];
257
- // [rectCenterPoint] has four middle points of cabinet rect edges
258
- var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
254
+ curiteminfo.rectCenterPoint.forEach(function (centerpoint) {
255
+ var comparelength = [];
259
256
  var a;
260
- var RectLineFuction; // normal line of cabinet rect edge
257
+ var RectLineFuction;
261
258
  if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = _export.GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = _export.GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
262
259
  allRect.forEach(function (linerect) {
263
- // calc distance to all other lines
264
260
  var p0 = _export.GeometryUtils.clone_point(linerect.rect[2]);
265
261
  var p1 = _export.GeometryUtils.clone_point(linerect.rect[3]);
266
- var lineFunction = {}; // other line function
262
+ var lineFunction = {};
267
263
  if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = _export.GeometryUtils.linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
268
- // intersection between normal line and other line
269
264
  var coordinatePoint = _export.GeometryUtils.twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
270
265
  if (coordinatePoint !== undefined) {
271
- if (
272
- // intersection point is on the other line
273
- _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
274
- // check the intersection point is outside direction of edge
275
- var isOutside = true;
276
- for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
277
- if (j === i) continue;
278
- var otherCenterPoint = curiteminfo.rectCenterPoint[j];
279
- if (_export.GeometryUtils.isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
280
- }
281
- if (isOutside && _export.GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > _export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
266
+ if (_export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
267
+ if (_export.GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > _export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
282
268
  comparelength.push(_export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
283
269
  a = Math.min.apply(null, comparelength);
284
270
  }
@@ -286,10 +272,7 @@ function Item(_ref, _ref2) {
286
272
  }
287
273
  });
288
274
  PointArray.push([a, centerpoint[1]]);
289
- };
290
- for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
291
- _loop(i);
292
- }
275
+ });
293
276
  return {
294
277
  PointArray: PointArray
295
278
  };
@@ -298,22 +281,9 @@ function Item(_ref, _ref2) {
298
281
  var nh = height / 2;
299
282
  var _getDistant = getDistant(x, y, val.rotRad),
300
283
  PointArray = _getDistant.PointArray;
301
- var catid = item.type;
302
- var cat = catalog.elements[catid];
303
284
  PointArray.forEach(function (pointElement, index) {
304
285
  if (pointElement[0] == undefined) PointArray[index][0] = 0;
305
- // if (pointElement[1] === -90 && cat.info.is_corner !== 1) {
306
- // PointArray[index][0] -= 4;
307
- // }
308
- });
309
- var cnt = 0;
310
- PointArray.forEach(function (pointElement) {
311
- if (pointElement[0] == 0) cnt++;
312
286
  });
313
- if (cnt == 4 || cnt == 3) {
314
- PointArray[0][0] = 100;
315
- PointArray[1][0] = 100;
316
- }
317
287
  if (Array.isArray(PointArray)) {
318
288
  itemsActions.storeDistArray(layerID, id, PointArray);
319
289
  }
@@ -341,12 +311,12 @@ function Item(_ref, _ref2) {
341
311
  length: itemDistanceFromLine,
342
312
  angle: rotation,
343
313
  rotation: element[1],
344
- transform: "translate(".concat(element[1] === 180 ? -nw : element[1] === 0 ? nw : 0, ", ").concat(element[1] === 90 ? nh : element[1] === -90 ? cat.info.is_corner !== 1 ? -(nh + 4) : -nh : 0, ") rotate(").concat(element[1], ", 0, 0)")
314
+ transform: "translate(".concat(element[1] === 180 ? -nw : element[1] === 0 ? nw : 0, ", ").concat(element[1] === 90 ? nh : element[1] === -90 ? -nh : 3 * nh / 4, ") rotate(").concat(element[1], ", 0, 0)")
345
315
  })));
346
316
  }
347
317
  });
348
318
  }
349
- var renderedItem = element === null || element === void 0 || (_element$render2D = element.render2D) === null || _element$render2D === void 0 ? void 0 : _element$render2D.call(element, item, layer, scene);
319
+ var renderedItem = element.render2D.call(element, item, layer, scene);
350
320
  var isSmall = false;
351
321
  if (width < 40) isSmall = true;
352
322
  var parts = [];
@@ -423,10 +393,7 @@ function Item(_ref, _ref2) {
423
393
  y: "-19",
424
394
  height: "16",
425
395
  width: "16",
426
- style: (0, _utils.isWarningItem)(item) ? {
427
- transform: 'rotateX(180deg)',
428
- opacity: 0.5
429
- } : {
396
+ style: {
430
397
  transform: 'rotateX(180deg)'
431
398
  }
432
399
  })), /*#__PURE__*/_react["default"].createElement("g", {