kitchen-simulator 4.1.0-react-18 → 4.1.1

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 (202) hide show
  1. package/README.md +3 -0
  2. package/es/AppContext.js +1 -1
  3. package/es/LiteKitchenConfigurator.js +162 -111
  4. package/es/LiteRenderer.js +161 -129
  5. package/es/actions/export.js +25 -12
  6. package/es/assets/gltf/door_sliding.bin +0 -0
  7. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  8. package/es/catalog/catalog.js +21 -5
  9. package/es/catalog/factories/area-factory-3d.js +17 -17
  10. package/es/catalog/factories/wall-factory.js +1 -1
  11. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  12. package/es/catalog/properties/export.js +21 -0
  13. package/es/catalog/properties/property-checkbox.js +68 -0
  14. package/es/catalog/properties/property-color.js +39 -0
  15. package/es/catalog/properties/property-enum.js +50 -0
  16. package/es/catalog/properties/property-hidden.js +19 -0
  17. package/es/catalog/properties/property-lenght-measure.js +100 -0
  18. package/es/catalog/properties/property-length-measure.js +84 -0
  19. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  20. package/es/catalog/properties/property-number.js +48 -0
  21. package/es/catalog/properties/property-read-only.js +26 -0
  22. package/es/catalog/properties/property-string.js +48 -0
  23. package/es/catalog/properties/property-toggle.js +39 -0
  24. package/es/catalog/properties/shared-property-style.js +14 -0
  25. package/es/catalog/utils/exporter.js +24 -11
  26. package/es/catalog/utils/item-loader.js +222 -213
  27. package/es/class/hole.js +0 -2
  28. package/es/class/item.js +89 -70
  29. package/es/class/layer.js +1 -1
  30. package/es/class/line.js +4 -8
  31. package/es/class/project.js +97 -80
  32. package/es/components/content.js +5 -93
  33. package/es/components/export.js +4 -6
  34. package/es/components/style/button.js +106 -0
  35. package/es/components/style/cancel-button.js +21 -0
  36. package/es/components/style/content-container.js +30 -0
  37. package/es/components/style/content-title.js +25 -0
  38. package/es/components/style/delete-button.js +24 -0
  39. package/es/components/style/export.js +28 -2
  40. package/es/components/style/form-block.js +20 -0
  41. package/es/components/style/form-color-input.js +26 -0
  42. package/es/components/style/form-label.js +22 -0
  43. package/es/components/style/form-number-input.js +29 -27
  44. package/es/components/style/form-number-input_2.js +200 -0
  45. package/es/components/style/form-select.js +19 -0
  46. package/es/components/style/form-slider.js +60 -0
  47. package/es/components/style/form-submit-button.js +25 -0
  48. package/es/components/style/form-text-input.js +69 -0
  49. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  50. package/es/components/viewer2d/group.js +5 -4
  51. package/es/components/viewer2d/item.js +155 -359
  52. package/es/components/viewer2d/layer.js +1 -1
  53. package/es/components/viewer2d/line.js +22 -52
  54. package/es/components/viewer2d/ruler.js +16 -11
  55. package/es/components/viewer2d/rulerDist.js +38 -51
  56. package/es/components/viewer2d/rulerX.js +4 -2
  57. package/es/components/viewer2d/rulerY.js +3 -0
  58. package/es/components/viewer2d/scene.js +17 -12
  59. package/es/components/viewer2d/state.js +1 -1
  60. package/es/components/viewer2d/utils.js +2 -2
  61. package/es/components/viewer2d/vertex.js +3 -2
  62. package/es/components/viewer2d/viewer2d.js +56 -87
  63. package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
  64. package/es/components/viewer3d/scene-creator.js +255 -58
  65. package/es/components/viewer3d/viewer3d-first-person.js +24 -26
  66. package/es/components/viewer3d/viewer3d.js +103 -124
  67. package/es/constants.js +7 -2
  68. package/es/devLiteRenderer.js +491 -150
  69. package/es/index.js +590 -21
  70. package/es/models.js +13 -8
  71. package/es/plugins/SVGLoader.js +1414 -0
  72. package/es/plugins/console-debugger.js +34 -0
  73. package/es/plugins/export.js +7 -0
  74. package/es/plugins/keyboard.js +110 -0
  75. package/es/reducers/project-reducer.js +3 -0
  76. package/es/reducers/viewer2d-reducer.js +3 -1
  77. package/es/reducers/viewer3d-reducer.js +3 -1
  78. package/es/styles/export.js +5 -0
  79. package/es/styles/tabs.css +40 -0
  80. package/es/utils/geometry.js +77 -119
  81. package/es/utils/helper.js +38 -1
  82. package/es/utils/isolate-event-handler.js +827 -607
  83. package/es/utils/molding.js +459 -11
  84. package/es/utils/ruler.js +58 -0
  85. package/lib/AppContext.js +1 -1
  86. package/lib/LiteKitchenConfigurator.js +161 -111
  87. package/lib/LiteRenderer.js +160 -129
  88. package/lib/actions/export.js +35 -39
  89. package/lib/assets/gltf/door_sliding.bin +0 -0
  90. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  91. package/lib/catalog/catalog.js +20 -4
  92. package/lib/catalog/factories/area-factory-3d.js +14 -14
  93. package/lib/catalog/factories/wall-factory.js +1 -1
  94. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  95. package/lib/catalog/properties/export.js +81 -0
  96. package/lib/catalog/properties/property-checkbox.js +76 -0
  97. package/lib/catalog/properties/property-color.js +47 -0
  98. package/lib/catalog/properties/property-enum.js +58 -0
  99. package/lib/catalog/properties/property-hidden.js +27 -0
  100. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  101. package/lib/catalog/properties/property-length-measure.js +92 -0
  102. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  103. package/lib/catalog/properties/property-number.js +56 -0
  104. package/lib/catalog/properties/property-read-only.js +34 -0
  105. package/lib/catalog/properties/property-string.js +56 -0
  106. package/lib/catalog/properties/property-toggle.js +47 -0
  107. package/lib/catalog/properties/shared-property-style.js +21 -0
  108. package/lib/catalog/utils/exporter.js +24 -11
  109. package/lib/catalog/utils/item-loader.js +219 -210
  110. package/lib/class/hole.js +0 -2
  111. package/lib/class/item.js +87 -68
  112. package/lib/class/layer.js +1 -1
  113. package/lib/class/line.js +3 -7
  114. package/lib/class/project.js +97 -80
  115. package/lib/components/content.js +5 -93
  116. package/lib/components/export.js +6 -26
  117. package/lib/components/style/button.js +115 -0
  118. package/lib/components/style/cancel-button.js +29 -0
  119. package/lib/components/style/content-container.js +38 -0
  120. package/lib/components/style/content-title.js +35 -0
  121. package/lib/components/style/delete-button.js +34 -0
  122. package/lib/components/style/export.js +105 -1
  123. package/lib/components/style/form-block.js +28 -0
  124. package/lib/components/style/form-color-input.js +34 -0
  125. package/lib/components/style/form-label.js +30 -0
  126. package/lib/components/style/form-number-input.js +29 -27
  127. package/lib/components/style/form-number-input_2.js +209 -0
  128. package/lib/components/style/form-select.js +29 -0
  129. package/lib/components/style/form-slider.js +68 -0
  130. package/lib/components/style/form-submit-button.js +35 -0
  131. package/lib/components/style/form-text-input.js +78 -0
  132. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  133. package/lib/components/viewer2d/group.js +5 -4
  134. package/lib/components/viewer2d/item.js +152 -356
  135. package/lib/components/viewer2d/layer.js +1 -1
  136. package/lib/components/viewer2d/line.js +22 -52
  137. package/lib/components/viewer2d/ruler.js +15 -10
  138. package/lib/components/viewer2d/rulerDist.js +38 -51
  139. package/lib/components/viewer2d/rulerX.js +4 -2
  140. package/lib/components/viewer2d/rulerY.js +3 -0
  141. package/lib/components/viewer2d/scene.js +17 -12
  142. package/lib/components/viewer2d/state.js +1 -1
  143. package/lib/components/viewer2d/utils.js +2 -2
  144. package/lib/components/viewer2d/vertex.js +3 -2
  145. package/lib/components/viewer2d/viewer2d.js +54 -84
  146. package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
  147. package/lib/components/viewer3d/scene-creator.js +252 -55
  148. package/lib/components/viewer3d/viewer3d-first-person.js +24 -26
  149. package/lib/components/viewer3d/viewer3d.js +100 -120
  150. package/lib/constants.js +12 -7
  151. package/lib/devLiteRenderer.js +489 -148
  152. package/lib/index.js +592 -21
  153. package/lib/models.js +13 -8
  154. package/lib/plugins/SVGLoader.js +1419 -0
  155. package/lib/plugins/console-debugger.js +42 -0
  156. package/lib/plugins/export.js +25 -0
  157. package/lib/plugins/keyboard.js +117 -0
  158. package/lib/reducers/project-reducer.js +3 -0
  159. package/lib/reducers/viewer2d-reducer.js +3 -1
  160. package/lib/reducers/viewer3d-reducer.js +3 -1
  161. package/lib/styles/export.js +13 -0
  162. package/lib/styles/tabs.css +40 -0
  163. package/lib/utils/geometry.js +77 -119
  164. package/lib/utils/helper.js +40 -1
  165. package/lib/utils/isolate-event-handler.js +827 -606
  166. package/lib/utils/molding.js +460 -9
  167. package/lib/utils/ruler.js +63 -0
  168. package/package.json +20 -15
  169. package/es/mocks/appliancePayload.json +0 -27
  170. package/es/mocks/cabinetPayload.json +0 -1914
  171. package/es/mocks/cabinetPayload2.json +0 -76
  172. package/es/mocks/dataBundle2.json +0 -4
  173. package/es/mocks/distancePayload.json +0 -6
  174. package/es/mocks/doorStylePayload2.json +0 -84
  175. package/es/mocks/furnishingPayload.json +0 -23
  176. package/es/mocks/itemCDSPayload.json +0 -27
  177. package/es/mocks/lightingPayload.json +0 -23
  178. package/es/mocks/mockProps.json +0 -43
  179. package/es/mocks/mockProps2.json +0 -9
  180. package/es/mocks/moldingPayload.json +0 -19
  181. package/es/mocks/projectItemsCatalog.json +0 -133
  182. package/es/mocks/rectangleShape.json +0 -238
  183. package/es/mocks/replaceCabinetPayload.json +0 -81
  184. package/es/mocks/roomShapePayload.json +0 -5
  185. package/es/useAppContext.js +0 -8
  186. package/lib/mocks/appliancePayload.json +0 -27
  187. package/lib/mocks/cabinetPayload.json +0 -1914
  188. package/lib/mocks/cabinetPayload2.json +0 -76
  189. package/lib/mocks/dataBundle2.json +0 -4
  190. package/lib/mocks/distancePayload.json +0 -6
  191. package/lib/mocks/doorStylePayload2.json +0 -84
  192. package/lib/mocks/furnishingPayload.json +0 -23
  193. package/lib/mocks/itemCDSPayload.json +0 -27
  194. package/lib/mocks/lightingPayload.json +0 -23
  195. package/lib/mocks/mockProps.json +0 -43
  196. package/lib/mocks/mockProps2.json +0 -9
  197. package/lib/mocks/moldingPayload.json +0 -19
  198. package/lib/mocks/projectItemsCatalog.json +0 -133
  199. package/lib/mocks/rectangleShape.json +0 -238
  200. package/lib/mocks/replaceCabinetPayload.json +0 -81
  201. package/lib/mocks/roomShapePayload.json +0 -5
  202. package/lib/useAppContext.js +0 -16
package/lib/class/hole.js CHANGED
@@ -783,11 +783,9 @@ var Hole = exports["default"] = /*#__PURE__*/function () {
783
783
  scene: scene.mergeIn(['layers', layerID, 'holes', holeID], hole)
784
784
  });
785
785
  state = state.updateIn(['scene', 'layers', layerID, 'lines', hole.line, 'holes'], function (holes) {
786
- console.log(holes, 'holes');
787
786
  var index = holes.findIndex(function (ID) {
788
787
  return holeID === ID;
789
788
  });
790
- console.log(index, 'index');
791
789
  return index === -1 ? holes.push(holeID) : holes;
792
790
  });
793
791
  return {
package/lib/class/item.js CHANGED
@@ -36,9 +36,11 @@ var Item = exports["default"] = /*#__PURE__*/function () {
36
36
  return (0, _createClass2["default"])(Item, null, [{
37
37
  key: "create",
38
38
  value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
39
+ var _item;
39
40
  var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
40
41
  var isInitialPos = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
41
42
  var refItem = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : null;
43
+ var counterTopURI = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : null;
42
44
  var itemID = _export2.IDBroker.acquireID();
43
45
  var item = state.catalog.factoryElement(type, {
44
46
  id: itemID,
@@ -64,13 +66,20 @@ var Item = exports["default"] = /*#__PURE__*/function () {
64
66
  doorStyle: refItem.doorStyle
65
67
  });
66
68
  } else {
67
- var _state$doorStyle;
69
+ var _state$doorStyle, _ref, _temp$doorStyles$cds$, _temp$doorStyles, _temp$cds, _state3;
68
70
  var layer = state.getIn(['scene', 'layers', layerID]);
69
71
  var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
70
- var cds = state.catalog.getIn(['elements', type, 'cds']);
72
+ var cds = (_ref = (_temp$doorStyles$cds$ = temp === null || temp === void 0 || (_temp$doorStyles = temp.doorStyles) === null || _temp$doorStyles === void 0 || (_temp$doorStyles = _temp$doorStyles.cds) === null || _temp$doorStyles === void 0 ? void 0 : _temp$doorStyles.find(function (elem) {
73
+ var _state;
74
+ return elem.itemID === ((_state = state) === null || _state === void 0 || (_state = _state.catalog) === null || _state === void 0 ? void 0 : _state.getIn(['elements', type, 'itemID']));
75
+ })) !== null && _temp$doorStyles$cds$ !== void 0 ? _temp$doorStyles$cds$ : temp === null || temp === void 0 || (_temp$cds = temp.cds) === null || _temp$cds === void 0 ? void 0 : _temp$cds.find(function (elem) {
76
+ var _state2;
77
+ return elem.itemID === ((_state2 = state) === null || _state2 === void 0 || (_state2 = _state2.catalog) === null || _state2 === void 0 ? void 0 : _state2.getIn(['elements', type, 'itemID']));
78
+ })) !== null && _ref !== void 0 ? _ref : (_state3 = state) === null || _state3 === void 0 || (_state3 = _state3.catalog) === null || _state3 === void 0 ? void 0 : _state3.getIn(['elements', type, 'cds']);
71
79
  if (cds) {
72
- var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
73
- cds: [cds]
80
+ var updatedDoorStyles = _objectSpread(_objectSpread({}, temp === null || temp === void 0 ? void 0 : temp.doorStyles), {}, {
81
+ cds: [cds],
82
+ cabinet_door_style_id: cds.cabinet_door_style_id
74
83
  });
75
84
  item = item.merge({
76
85
  doorStyle: (0, _immutable.fromJS)(_objectSpread(_objectSpread({}, temp), {}, {
@@ -167,6 +176,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
167
176
  }
168
177
  };
169
178
  item.category === 'cabinet' && setSizeOfItemByDoorStyle();
179
+ if (!(0, _utils.isEmpty)(counterTopURI) && !(0, _utils.isEmpty)((_item = item) === null || _item === void 0 ? void 0 : _item.counterTop)) {
180
+ item.counterTop.uri = counterTopURI;
181
+ }
170
182
  item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
171
183
  state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
172
184
  if (item.type.includes('Light')) {
@@ -338,17 +350,17 @@ var Item = exports["default"] = /*#__PURE__*/function () {
338
350
  if (isRect) {
339
351
  var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
340
352
  _stateI = _this$create2.updatedState,
341
- _item = _this$create2.item;
342
- duplicatedElement = _item;
343
- if (_item === null) {
353
+ _item2 = _this$create2.item;
354
+ duplicatedElement = _item2;
355
+ if (_item2 === null) {
344
356
  alert('There are no Door Colors in this cabinet.');
345
357
  state = state.merge({
346
358
  mode: _constants.MODE_IDLE,
347
359
  drawingSupport: new _immutable.Map()
348
360
  });
349
361
  } else {
350
- state = Item.select(_stateI, layerID, _item.id).updatedState;
351
- state = state.setIn(['drawingSupport', 'currentID'], _item.id);
362
+ state = Item.select(_stateI, layerID, _item2.id).updatedState;
363
+ state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
352
364
  }
353
365
  } else {
354
366
  var _val2 = {
@@ -365,17 +377,17 @@ var Item = exports["default"] = /*#__PURE__*/function () {
365
377
  if (isRectDown) {
366
378
  var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
367
379
  _stateI2 = _this$create3.updatedState,
368
- _item2 = _this$create3.item;
369
- duplicatedElement = _item2;
370
- if (_item2 === null) {
380
+ _item3 = _this$create3.item;
381
+ duplicatedElement = _item3;
382
+ if (_item3 === null) {
371
383
  alert('There are no Door Colors in this cabinet.');
372
384
  state = state.merge({
373
385
  mode: _constants.MODE_IDLE,
374
386
  drawingSupport: new _immutable.Map()
375
387
  });
376
388
  } else {
377
- state = Item.select(_stateI2, layerID, _item2.id).updatedState;
378
- state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
389
+ state = Item.select(_stateI2, layerID, _item3.id).updatedState;
390
+ state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
379
391
  }
380
392
  } else {
381
393
  var _val3 = {
@@ -392,17 +404,17 @@ var Item = exports["default"] = /*#__PURE__*/function () {
392
404
  if (isRectUp) {
393
405
  var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
394
406
  _stateI3 = _this$create4.updatedState,
395
- _item3 = _this$create4.item;
396
- duplicatedElement = _item3;
397
- if (_item3 === null) {
407
+ _item4 = _this$create4.item;
408
+ duplicatedElement = _item4;
409
+ if (_item4 === null) {
398
410
  alert('There are no Door Colors in this cabinet.');
399
411
  state = state.merge({
400
412
  mode: _constants.MODE_IDLE,
401
413
  drawingSupport: new _immutable.Map()
402
414
  });
403
415
  } else {
404
- state = Item.select(_stateI3, layerID, _item3.id).updatedState;
405
- state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
416
+ state = Item.select(_stateI3, layerID, _item4.id).updatedState;
417
+ state = state.setIn(['drawingSupport', 'currentID'], _item4.id);
406
418
  }
407
419
  } else {
408
420
  console.log('there is no space');
@@ -472,8 +484,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
472
484
  break;
473
485
  }
474
486
  if (onInternalEvent && duplicatedElement) {
475
- var jsElement = duplicatedElement.toJS();
476
- if (jsElement.prototype === 'items') jsElement.isWarning = (0, _utils.isWarningItem)(duplicatedElement);
487
+ var _state$get;
488
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
489
+ var jsElement = (0, _helper.updatePayloadOfInternalEvent)(duplicatedElement, layer, catalog);
477
490
  onInternalEvent({
478
491
  type: _constants.INTERNAL_EVENT_DRAW_ELEMENT,
479
492
  value: jsElement
@@ -538,8 +551,14 @@ var Item = exports["default"] = /*#__PURE__*/function () {
538
551
  }, {
539
552
  key: "replaceItem",
540
553
  value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
554
+ var _currentObject$counte;
555
+ var counterTopURI = '';
556
+ if (!(0, _utils.isEmpty)(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
557
+ var _currentObject$counte2;
558
+ counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
559
+ } else if (!(0, _utils.isEmpty)(state.getIn(['scene', 'layers', 'layer-1', 'counterTop']))) counterTopURI = state.getIn(['scene', 'layers', 'layer-1', 'counterTop']).uri;else counterTopURI = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
541
560
  state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
542
- state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false).updatedState;
561
+ state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false, [], false, null, counterTopURI).updatedState;
543
562
  // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
544
563
  return {
545
564
  updatedState: state
@@ -657,8 +676,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
657
676
  }, {
658
677
  key: "updateDraggingItemChanged",
659
678
  value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
660
- var _state = state,
661
- scene = _state.scene;
679
+ var _state4 = state,
680
+ scene = _state4.scene;
662
681
  // let originalX = draggingSupport.get('originalX');
663
682
  // let originalY = draggingSupport.get('originalY');
664
683
 
@@ -750,9 +769,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
750
769
  }, {
751
770
  key: "updateDraggingItem",
752
771
  value: function updateDraggingItem(state, x, y) {
753
- var _state2 = state,
754
- draggingSupport = _state2.draggingSupport,
755
- scene = _state2.scene;
772
+ var _state5 = state,
773
+ draggingSupport = _state5.draggingSupport,
774
+ scene = _state5.scene;
756
775
  var layerID = draggingSupport.get('layerID');
757
776
  var itemID = draggingSupport.get('itemID');
758
777
  var startPointX = draggingSupport.get('startPointX');
@@ -784,9 +803,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
784
803
  }, {
785
804
  key: "updateDraggingItem3DX",
786
805
  value: function updateDraggingItem3DX(state, x) {
787
- var _state3 = state,
788
- draggingSupport = _state3.draggingSupport,
789
- scene = _state3.scene;
806
+ var _state6 = state,
807
+ draggingSupport = _state6.draggingSupport,
808
+ scene = _state6.scene;
790
809
  var layerID = draggingSupport.get('layerID');
791
810
  var itemID = draggingSupport.get('itemID');
792
811
  var startPointX = draggingSupport.get('startPointX');
@@ -806,9 +825,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
806
825
  }, {
807
826
  key: "updateDraggingItem3DY",
808
827
  value: function updateDraggingItem3DY(state, y) {
809
- var _state4 = state,
810
- draggingSupport = _state4.draggingSupport,
811
- scene = _state4.scene;
828
+ var _state7 = state,
829
+ draggingSupport = _state7.draggingSupport,
830
+ scene = _state7.scene;
812
831
  var layerID = draggingSupport.get('layerID');
813
832
  var itemID = draggingSupport.get('itemID');
814
833
  var startPointY = draggingSupport.get('startPointY');
@@ -889,9 +908,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
889
908
  }, {
890
909
  key: "updateRotatingItem",
891
910
  value: function updateRotatingItem(state, x, y) {
892
- var _state5 = state,
893
- rotatingSupport = _state5.rotatingSupport,
894
- scene = _state5.scene;
911
+ var _state8 = state,
912
+ rotatingSupport = _state8.rotatingSupport,
913
+ scene = _state8.scene;
895
914
  var layerID = rotatingSupport.get('layerID');
896
915
  var itemID = rotatingSupport.get('itemID');
897
916
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -974,9 +993,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
974
993
  }, {
975
994
  key: "replaceSubmodule",
976
995
  value: function replaceSubmodule(state, url) {
977
- var _state6 = state,
978
- replacingSupport = _state6.replacingSupport,
979
- scene = _state6.scene;
996
+ var _state9 = state,
997
+ replacingSupport = _state9.replacingSupport,
998
+ scene = _state9.scene;
980
999
  url = 'catalog/texture.png';
981
1000
  var urlData = url.split('/');
982
1001
  var newURL = '';
@@ -1077,9 +1096,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1077
1096
  }, {
1078
1097
  key: "animateObject",
1079
1098
  value: function animateObject(state, value) {
1080
- var _state7 = state,
1081
- replacingSupport = _state7.replacingSupport,
1082
- scene = _state7.scene;
1099
+ var _state0 = state,
1100
+ replacingSupport = _state0.replacingSupport,
1101
+ scene = _state0.scene;
1083
1102
  var layerID = replacingSupport.get('layerID');
1084
1103
  var itemID = replacingSupport.get('itemID');
1085
1104
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1116,8 +1135,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1116
1135
  state = state.merge({
1117
1136
  doorStyle: doorStyle
1118
1137
  });
1119
- var _state8 = state,
1120
- scene = _state8.scene;
1138
+ var _state1 = state,
1139
+ scene = _state1.scene;
1121
1140
  var layerID = scene.get('selectedLayer');
1122
1141
  var layers = scene.layers.get(layerID);
1123
1142
  var items = layers.items;
@@ -1314,8 +1333,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1314
1333
  }, {
1315
1334
  key: "setCounterTop",
1316
1335
  value: function setCounterTop(state, counterTop) {
1317
- var _state9 = state,
1318
- scene = _state9.scene;
1336
+ var _state10 = state,
1337
+ scene = _state10.scene;
1319
1338
  var layerID = scene.get('selectedLayer');
1320
1339
  var layers = scene.layers.get(layerID);
1321
1340
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1359,8 +1378,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1359
1378
  }, {
1360
1379
  key: "setDoorHandle",
1361
1380
  value: function setDoorHandle(state, doorHandle) {
1362
- var _state0 = state,
1363
- scene = _state0.scene;
1381
+ var _state11 = state,
1382
+ scene = _state11.scene;
1364
1383
  var layerID = scene.get('selectedLayer');
1365
1384
  var layer = scene.layers.get(layerID);
1366
1385
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1384,8 +1403,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1384
1403
  }, {
1385
1404
  key: "setHandleMaterial",
1386
1405
  value: function setHandleMaterial(state, material) {
1387
- var _state1 = state,
1388
- scene = _state1.scene;
1406
+ var _state12 = state,
1407
+ scene = _state12.scene;
1389
1408
  var layerID = scene.get('selectedLayer');
1390
1409
  var layers = scene.layers.get(layerID);
1391
1410
  var items = layers.items;
@@ -1410,8 +1429,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1410
1429
  }, {
1411
1430
  key: "setWallColor",
1412
1431
  value: function setWallColor(state, wallColor) {
1413
- var _state10 = state,
1414
- scene = _state10.scene;
1432
+ var _state13 = state,
1433
+ scene = _state13.scene;
1415
1434
  var layerID = scene.get('selectedLayer');
1416
1435
  var layer = scene.layers.get(layerID);
1417
1436
  layer = layer.merge({
@@ -1437,8 +1456,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1437
1456
  }, {
1438
1457
  key: "setBacksplash",
1439
1458
  value: function setBacksplash(state, backsplash) {
1440
- var _state11 = state,
1441
- scene = _state11.scene;
1459
+ var _state14 = state,
1460
+ scene = _state14.scene;
1442
1461
  var layerID = scene.get('selectedLayer');
1443
1462
  var layer = scene.layers.get(layerID);
1444
1463
  var dataJSON = layer.toJS();
@@ -1466,8 +1485,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1466
1485
  }, {
1467
1486
  key: "setMolding",
1468
1487
  value: function setMolding(state, molding, isAll) {
1469
- var _state12 = state,
1470
- scene = _state12.scene;
1488
+ var _state15 = state,
1489
+ scene = _state15.scene;
1471
1490
  var layerID = scene.get('selectedLayer');
1472
1491
  var layer = scene.layers.get(layerID);
1473
1492
  if (isAll) {
@@ -1559,8 +1578,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1559
1578
  }, {
1560
1579
  key: "updateMolding",
1561
1580
  value: function updateMolding(state) {
1562
- var _state13 = state,
1563
- scene = _state13.scene;
1581
+ var _state16 = state,
1582
+ scene = _state16.scene;
1564
1583
  var layerID = scene.get('selectedLayer');
1565
1584
  var layer = scene.layers.get(layerID);
1566
1585
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1684,8 +1703,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1684
1703
  }, {
1685
1704
  key: "setBacksplashVisible",
1686
1705
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1687
- var _state14 = state,
1688
- scene = _state14.scene;
1706
+ var _state17 = state,
1707
+ scene = _state17.scene;
1689
1708
  var layerID = scene.get('selectedLayer');
1690
1709
  var layer = scene.layers.get(layerID);
1691
1710
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1705,8 +1724,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1705
1724
  }, {
1706
1725
  key: "setApplianceMaterial",
1707
1726
  value: function setApplianceMaterial(state, material) {
1708
- var _state15 = state,
1709
- scene = _state15.scene;
1727
+ var _state18 = state,
1728
+ scene = _state18.scene;
1710
1729
  var layerID = scene.get('selectedLayer');
1711
1730
  var layers = scene.layers.get(layerID);
1712
1731
  var items = layers.items;
@@ -1730,8 +1749,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1730
1749
  }, {
1731
1750
  key: "setModelling",
1732
1751
  value: function setModelling(state, molding) {
1733
- var _state16 = state,
1734
- scene = _state16.scene;
1752
+ var _state19 = state,
1753
+ scene = _state19.scene;
1735
1754
  var layerID = scene.get('selectedLayer');
1736
1755
  var layers = scene.layers.get(layerID);
1737
1756
  var items = layers.items;
@@ -1841,8 +1860,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1841
1860
  }, {
1842
1861
  key: "toggleLoadingCabinet",
1843
1862
  value: function toggleLoadingCabinet(state) {
1844
- var _state17 = state,
1845
- scene = _state17.scene;
1863
+ var _state20 = state,
1864
+ scene = _state20.scene;
1846
1865
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1847
1866
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1848
1867
  // state = state.set('scene', scene);
@@ -1854,8 +1873,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1854
1873
  }, {
1855
1874
  key: "endLoading",
1856
1875
  value: function endLoading(state) {
1857
- var _state18 = state,
1858
- scene = _state18.scene;
1876
+ var _state21 = state,
1877
+ scene = _state21.scene;
1859
1878
  state = state.setIn(['scene', 'loadFlag'], true);
1860
1879
  return {
1861
1880
  updatedState: state
@@ -574,7 +574,7 @@ var Layer = exports["default"] = /*#__PURE__*/function () {
574
574
  return v.id !== vertexID && _export2.GeometryUtils.samePoints(vertex, v) // &&
575
575
  //!v.lines.contains( vertexID ) &&
576
576
  //!v.areas.contains( vertexID )
577
- ;
577
+ ;
578
578
  });
579
579
  if (doubleVertices.isEmpty()) return {
580
580
  updatedState: state
package/lib/class/line.js CHANGED
@@ -15,7 +15,6 @@ var _export2 = require("../utils/export");
15
15
  var Three = _interopRequireWildcard(require("three"));
16
16
  var _constants = require("../constants");
17
17
  var _helper = require("../utils/helper");
18
- var _convertUnitsLite = require("../utils/convert-units-lite");
19
18
  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); }
20
19
  var timeGlobal = 0;
21
20
  var TimeRecorder = /*#__PURE__*/function () {
@@ -437,6 +436,7 @@ var Line = exports["default"] = /*#__PURE__*/function () {
437
436
  }, {
438
437
  key: "beginDrawingLine",
439
438
  value: function beginDrawingLine(state, layerID, x, y, onInternalEvent) {
439
+ var _state$get;
440
440
  // if end drawing by created area
441
441
  if (state.mode == _constants.MODE_IDLE) {
442
442
  return {
@@ -490,12 +490,8 @@ var Line = exports["default"] = /*#__PURE__*/function () {
490
490
  drawingSupport: drawingSupport
491
491
  });
492
492
  var layer = state.getIn(['scene', 'layers', layerID]);
493
- var payload = line.toJS();
494
- var v_a = layer.vertices.get(line.vertices.get(0));
495
- var v_b = layer.vertices.get(line.vertices.get(1));
496
- var distance = _export2.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
497
- var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to('in');
498
- payload.length = _length;
493
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
494
+ var payload = (0, _helper.updatePayloadOfInternalEvent)(line, layer, catalog);
499
495
  if (onInternalEvent) onInternalEvent({
500
496
  type: _constants.INTERNAL_EVENT_START_DRAW_WALL,
501
497
  value: payload
@@ -43,7 +43,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
43
43
  }, {
44
44
  key: "newProject",
45
45
  value: function newProject(state) {
46
- var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
46
+ var _state$toJS$doorStyle, _state;
47
+ var doorStyle = (_state$toJS$doorStyle = (_state = state) === null || _state === void 0 || (_state = _state.toJS()) === null || _state === void 0 ? void 0 : _state.doorStyle) !== null && _state$toJS$doorStyle !== void 0 ? _state$toJS$doorStyle : null;
47
48
  // let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
48
49
  // let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
49
50
  var _viewer2D = state.viewer2D;
@@ -83,9 +84,9 @@ var Project = exports["default"] = /*#__PURE__*/function () {
83
84
  a: 0.99,
84
85
  d: 0.99
85
86
  });
86
- var _state = state,
87
- oldScene = _state.scene,
88
- oldSceneHistory = _state.sceneHistory;
87
+ var _state2 = state,
88
+ oldScene = _state2.scene,
89
+ oldSceneHistory = _state2.sceneHistory;
89
90
  var json_items = sceneJSON.layers[sceneJSON.selectedLayer].items;
90
91
  var elements = state.catalog.get('elements').toArray();
91
92
  var _loop = function _loop(x) {
@@ -111,6 +112,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
111
112
  // sceneJSON && (sceneJSON.layers[layerID] = newlayer);
112
113
  // }
113
114
 
115
+ // check type of ceilHeight and make it to Number
116
+ if (typeof sceneJSON.layers[layerID].ceilHeight !== 'number') sceneJSON.layers[layerID].ceilHeight = Number(sceneJSON.layers[layerID].ceilHeight);
114
117
  var newScene = new _models.Scene(sceneJSON);
115
118
  state = new _models.State({
116
119
  scene: newScene.toJS(),
@@ -176,6 +179,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
176
179
  // Matching state.doorStyle with layer.doorStyle
177
180
  if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
178
181
  doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
182
+ } else if (!(0, _helper.isEmpty)(doorStyle)) {
183
+ state = state.setIn(['scene', 'layers', layerID, 'doorStyle'], doorStyle);
179
184
  }
180
185
  state = state.merge({
181
186
  doorStyle: doorStyle,
@@ -838,89 +843,101 @@ var Project = exports["default"] = /*#__PURE__*/function () {
838
843
  key: "createRoomWithShape",
839
844
  value: function createRoomWithShape(state, roomShapeType, width, height, doorStyle) {
840
845
  var catalog = state.catalog;
846
+ // keep measurement unit, sceneHistory
847
+ var curLayerID = state.scene.selectedLayer;
848
+ var layerUnit = state.getIn(['scene', 'layers', curLayerID, 'unit']);
849
+ var ceilHeight = state.getIn(['scene', 'layers', curLayerID, 'ceilHeight']);
850
+ var sceneHistory = state.getIn(['sceneHistory']);
841
851
  state = this.newProject(state).updatedState;
842
852
  state = state.merge({
843
853
  catalog: catalog
844
854
  });
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
855
  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]]);
856
+ var layerID = state.scene.selectedLayer;
857
+ if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !(0, _helper.isEmpty)(width) && !(0, _helper.isEmpty)(height) && width !== 0 && height !== 0) {
858
+ var _viewer2D = state.viewer2D;
859
+ var viewer = _viewer2D.toJS();
860
+ if ((0, _helper.isEmpty)(viewer)) return {
861
+ updatedState: state
862
+ };
863
+ width = (0, _convertUnitsLite.convert)(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
864
+ height = (0, _convertUnitsLite.convert)(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
865
+ var halfWidth = width / 2;
866
+ var halfHeight = height / 2;
867
+ var viewerWidth = viewer.SVGWidth;
868
+ var viewerHeight = viewer.SVGHeight;
869
+ var centerPos = {
870
+ x: viewerWidth / 2,
871
+ y: viewerHeight / 2
872
+ };
873
+ var vtLB = {
874
+ x: centerPos.x - halfWidth,
875
+ y: centerPos.y - halfHeight
876
+ };
877
+ var vtRB = {
878
+ x: centerPos.x + halfWidth,
879
+ y: centerPos.y - halfHeight
880
+ };
881
+ var vtRT = {
882
+ x: centerPos.x + halfWidth,
883
+ y: centerPos.y + halfHeight
884
+ };
885
+ var vtLT = {
886
+ x: centerPos.x - halfWidth,
887
+ y: centerPos.y + halfHeight
888
+ };
889
+ var vertices = [];
890
+ switch (roomShapeType) {
891
+ case 'rectangle':
892
+ vertices = [vtLB, vtLT, vtRT, vtRB];
893
+ break;
894
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
895
+ vertices = [vtLB, vtRB, vtRT];
896
+ break;
897
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
898
+ vertices = [vtRB, vtRT, vtLT];
899
+ break;
900
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
901
+ vertices = [vtRT, vtLT, vtLB];
902
+ break;
903
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
904
+ vertices = [vtLT, vtLB, vtRB];
905
+ break;
906
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
907
+ vertices = [vtRB, vtRT, vtLT, vtLB];
908
+ break;
909
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
910
+ vertices = [vtLB, vtRB, vtRT, vtLT];
911
+ break;
912
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
913
+ vertices = [vtLT, vtLB, vtRB, vtRT];
914
+ break;
915
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
916
+ vertices = [vtRT, vtLT, vtLB, vtRB];
917
+ break;
918
+ }
919
+ for (var i = 0; i < vertices.length - 1; i++) {
920
+ state = _export2.Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
921
+ }
922
+ if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
923
+ state = _export2.Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
924
+ }
925
+ var layer = state.getIn(['scene', 'layers', layerID]);
926
+ var lines = layer.getIn(['lines']).toJS();
927
+ var drawingInfo = {};
928
+ var lineKey = Object.keys(lines);
929
+ for (var _i = 0; _i < lineKey.length; _i++) {
930
+ if (!(0, _helper.isEmpty)(lineKey)) {
931
+ drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
932
+ }
933
+ state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
921
934
  }
922
- state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
923
935
  }
936
+
937
+ // copy keeped measurement unit, sceneHistory
938
+ state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
939
+ state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
940
+ state = state.setIn(['sceneHistory'], sceneHistory);
924
941
  state = (0, _helper.centering2D)(state);
925
942
  return {
926
943
  updatedState: state