kitchen-simulator 4.0.2-react-18 → 4.0.2

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 (188) hide show
  1. package/README.md +3 -0
  2. package/es/AppContext.js +1 -1
  3. package/es/LiteKitchenConfigurator.js +165 -107
  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/png/helper/video_preview_start.png +0 -0
  8. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  9. package/es/catalog/catalog.js +21 -5
  10. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  11. package/es/catalog/properties/export.js +21 -0
  12. package/es/catalog/properties/property-checkbox.js +68 -0
  13. package/es/catalog/properties/property-color.js +39 -0
  14. package/es/catalog/properties/property-enum.js +50 -0
  15. package/es/catalog/properties/property-hidden.js +19 -0
  16. package/es/catalog/properties/property-lenght-measure.js +100 -0
  17. package/es/catalog/properties/property-length-measure.js +84 -0
  18. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  19. package/es/catalog/properties/property-number.js +48 -0
  20. package/es/catalog/properties/property-read-only.js +26 -0
  21. package/es/catalog/properties/property-string.js +48 -0
  22. package/es/catalog/properties/property-toggle.js +39 -0
  23. package/es/catalog/properties/shared-property-style.js +14 -0
  24. package/es/catalog/utils/exporter.js +1 -0
  25. package/es/catalog/utils/item-loader.js +18 -12
  26. package/es/class/hole.js +0 -2
  27. package/es/class/item.js +95 -69
  28. package/es/class/line.js +4 -8
  29. package/es/class/project.js +93 -80
  30. package/es/components/content.js +5 -93
  31. package/es/components/export.js +4 -6
  32. package/es/components/style/button.js +106 -0
  33. package/es/components/style/cancel-button.js +21 -0
  34. package/es/components/style/content-container.js +30 -0
  35. package/es/components/style/content-title.js +25 -0
  36. package/es/components/style/delete-button.js +24 -0
  37. package/es/components/style/export.js +28 -2
  38. package/es/components/style/form-block.js +20 -0
  39. package/es/components/style/form-color-input.js +26 -0
  40. package/es/components/style/form-label.js +22 -0
  41. package/es/components/style/form-number-input.js +11 -22
  42. package/es/components/style/form-number-input_2.js +200 -0
  43. package/es/components/style/form-select.js +19 -0
  44. package/es/components/style/form-slider.js +60 -0
  45. package/es/components/style/form-submit-button.js +25 -0
  46. package/es/components/style/form-text-input.js +69 -0
  47. package/es/components/viewer2d/group.js +5 -4
  48. package/es/components/viewer2d/item.js +155 -359
  49. package/es/components/viewer2d/layer.js +1 -1
  50. package/es/components/viewer2d/line.js +17 -47
  51. package/es/components/viewer2d/ruler.js +5 -3
  52. package/es/components/viewer2d/rulerDist.js +8 -7
  53. package/es/components/viewer2d/rulerX.js +4 -2
  54. package/es/components/viewer2d/rulerY.js +3 -0
  55. package/es/components/viewer2d/scene.js +4 -1
  56. package/es/components/viewer2d/state.js +1 -1
  57. package/es/components/viewer2d/utils.js +2 -2
  58. package/es/components/viewer2d/viewer2d.js +51 -84
  59. package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
  60. package/es/components/viewer3d/scene-creator.js +51 -15
  61. package/es/components/viewer3d/viewer3d-first-person.js +8 -0
  62. package/es/components/viewer3d/viewer3d.js +80 -88
  63. package/es/constants.js +6 -2
  64. package/es/devLiteRenderer.js +491 -150
  65. package/es/index.js +567 -25
  66. package/es/models.js +2 -1
  67. package/es/plugins/SVGLoader.js +1414 -0
  68. package/es/plugins/console-debugger.js +34 -0
  69. package/es/plugins/export.js +7 -0
  70. package/es/plugins/keyboard.js +110 -0
  71. package/es/reducers/project-reducer.js +3 -0
  72. package/es/styles/export.js +5 -0
  73. package/es/styles/tabs.css +40 -0
  74. package/es/utils/geometry.js +64 -106
  75. package/es/utils/helper.js +38 -1
  76. package/es/utils/isolate-event-handler.js +824 -605
  77. package/es/utils/molding.js +457 -11
  78. package/lib/AppContext.js +1 -1
  79. package/lib/LiteKitchenConfigurator.js +164 -107
  80. package/lib/LiteRenderer.js +160 -129
  81. package/lib/actions/export.js +35 -39
  82. package/lib/assets/gltf/door_sliding.bin +0 -0
  83. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  84. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  85. package/lib/catalog/catalog.js +20 -4
  86. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  87. package/lib/catalog/properties/export.js +81 -0
  88. package/lib/catalog/properties/property-checkbox.js +76 -0
  89. package/lib/catalog/properties/property-color.js +47 -0
  90. package/lib/catalog/properties/property-enum.js +58 -0
  91. package/lib/catalog/properties/property-hidden.js +27 -0
  92. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  93. package/lib/catalog/properties/property-length-measure.js +92 -0
  94. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  95. package/lib/catalog/properties/property-number.js +56 -0
  96. package/lib/catalog/properties/property-read-only.js +34 -0
  97. package/lib/catalog/properties/property-string.js +56 -0
  98. package/lib/catalog/properties/property-toggle.js +47 -0
  99. package/lib/catalog/properties/shared-property-style.js +21 -0
  100. package/lib/catalog/utils/exporter.js +1 -0
  101. package/lib/catalog/utils/item-loader.js +18 -12
  102. package/lib/class/hole.js +0 -2
  103. package/lib/class/item.js +93 -67
  104. package/lib/class/line.js +3 -7
  105. package/lib/class/project.js +93 -80
  106. package/lib/components/content.js +5 -93
  107. package/lib/components/export.js +6 -26
  108. package/lib/components/style/button.js +115 -0
  109. package/lib/components/style/cancel-button.js +29 -0
  110. package/lib/components/style/content-container.js +38 -0
  111. package/lib/components/style/content-title.js +35 -0
  112. package/lib/components/style/delete-button.js +34 -0
  113. package/lib/components/style/export.js +105 -1
  114. package/lib/components/style/form-block.js +28 -0
  115. package/lib/components/style/form-color-input.js +34 -0
  116. package/lib/components/style/form-label.js +30 -0
  117. package/lib/components/style/form-number-input.js +11 -22
  118. package/lib/components/style/form-number-input_2.js +209 -0
  119. package/lib/components/style/form-select.js +29 -0
  120. package/lib/components/style/form-slider.js +68 -0
  121. package/lib/components/style/form-submit-button.js +35 -0
  122. package/lib/components/style/form-text-input.js +78 -0
  123. package/lib/components/viewer2d/group.js +5 -4
  124. package/lib/components/viewer2d/item.js +152 -356
  125. package/lib/components/viewer2d/layer.js +1 -1
  126. package/lib/components/viewer2d/line.js +17 -47
  127. package/lib/components/viewer2d/ruler.js +4 -2
  128. package/lib/components/viewer2d/rulerDist.js +8 -7
  129. package/lib/components/viewer2d/rulerX.js +4 -2
  130. package/lib/components/viewer2d/rulerY.js +3 -0
  131. package/lib/components/viewer2d/scene.js +4 -1
  132. package/lib/components/viewer2d/state.js +1 -1
  133. package/lib/components/viewer2d/utils.js +2 -2
  134. package/lib/components/viewer2d/viewer2d.js +49 -81
  135. package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
  136. package/lib/components/viewer3d/scene-creator.js +49 -13
  137. package/lib/components/viewer3d/viewer3d-first-person.js +8 -0
  138. package/lib/components/viewer3d/viewer3d.js +77 -84
  139. package/lib/constants.js +11 -7
  140. package/lib/devLiteRenderer.js +489 -148
  141. package/lib/index.js +567 -25
  142. package/lib/models.js +2 -1
  143. package/lib/plugins/SVGLoader.js +1419 -0
  144. package/lib/plugins/console-debugger.js +42 -0
  145. package/lib/plugins/export.js +25 -0
  146. package/lib/plugins/keyboard.js +117 -0
  147. package/lib/reducers/project-reducer.js +3 -0
  148. package/lib/styles/export.js +13 -0
  149. package/lib/styles/tabs.css +40 -0
  150. package/lib/utils/geometry.js +64 -106
  151. package/lib/utils/helper.js +40 -1
  152. package/lib/utils/isolate-event-handler.js +824 -604
  153. package/lib/utils/molding.js +458 -9
  154. package/package.json +21 -16
  155. package/es/mocks/appliancePayload.json +0 -27
  156. package/es/mocks/cabinetPayload.json +0 -1914
  157. package/es/mocks/cabinetPayload2.json +0 -76
  158. package/es/mocks/dataBundle2.json +0 -4
  159. package/es/mocks/distancePayload.json +0 -6
  160. package/es/mocks/doorStylePayload2.json +0 -84
  161. package/es/mocks/furnishingPayload.json +0 -23
  162. package/es/mocks/itemCDSPayload.json +0 -27
  163. package/es/mocks/lightingPayload.json +0 -23
  164. package/es/mocks/mockProps.json +0 -43
  165. package/es/mocks/mockProps2.json +0 -9
  166. package/es/mocks/moldingPayload.json +0 -19
  167. package/es/mocks/projectItemsCatalog.json +0 -133
  168. package/es/mocks/rectangleShape.json +0 -238
  169. package/es/mocks/replaceCabinetPayload.json +0 -81
  170. package/es/mocks/roomShapePayload.json +0 -5
  171. package/es/useAppContext.js +0 -8
  172. package/lib/mocks/appliancePayload.json +0 -27
  173. package/lib/mocks/cabinetPayload.json +0 -1914
  174. package/lib/mocks/cabinetPayload2.json +0 -76
  175. package/lib/mocks/dataBundle2.json +0 -4
  176. package/lib/mocks/distancePayload.json +0 -6
  177. package/lib/mocks/doorStylePayload2.json +0 -84
  178. package/lib/mocks/furnishingPayload.json +0 -23
  179. package/lib/mocks/itemCDSPayload.json +0 -27
  180. package/lib/mocks/lightingPayload.json +0 -23
  181. package/lib/mocks/mockProps.json +0 -43
  182. package/lib/mocks/mockProps2.json +0 -9
  183. package/lib/mocks/moldingPayload.json +0 -19
  184. package/lib/mocks/projectItemsCatalog.json +0 -133
  185. package/lib/mocks/rectangleShape.json +0 -238
  186. package/lib/mocks/replaceCabinetPayload.json +0 -81
  187. package/lib/mocks/roomShapePayload.json +0 -5
  188. package/lib/useAppContext.js +0 -16
package/es/class/item.js CHANGED
@@ -9,10 +9,11 @@ import { Group, Hole, Layer } from "./export";
9
9
  import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
10
10
  import { fromJS, Map } from 'immutable';
11
11
  import { INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
12
- import { debugUtil } from "../utils/helper";
12
+ import { debugUtil, updatePayloadOfInternalEvent } from "../utils/helper";
13
13
  import { isUndefined } from 'util';
14
14
  import { hasMoldingLayout } from "../utils/molding";
15
- import { getInstallationSuffix, isWarningItem } from "../components/viewer2d/utils";
15
+ import { getInstallationSuffix, isEmpty } from "../components/viewer2d/utils";
16
+ import { historyPush } from "../utils/history";
16
17
  var allItemRect;
17
18
  var allItemSnap;
18
19
  var allLines;
@@ -28,9 +29,11 @@ var Item = /*#__PURE__*/function () {
28
29
  return _createClass(Item, null, [{
29
30
  key: "create",
30
31
  value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
32
+ var _item;
31
33
  var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
32
34
  var isInitialPos = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
33
35
  var refItem = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : null;
36
+ var counterTopURI = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : null;
34
37
  var itemID = IDBroker.acquireID();
35
38
  var item = state.catalog.factoryElement(type, {
36
39
  id: itemID,
@@ -56,13 +59,20 @@ var Item = /*#__PURE__*/function () {
56
59
  doorStyle: refItem.doorStyle
57
60
  });
58
61
  } else {
59
- var _state$doorStyle;
62
+ var _state$doorStyle, _ref, _temp$doorStyles$cds$, _temp$doorStyles, _temp$cds, _state3;
60
63
  var layer = state.getIn(['scene', 'layers', layerID]);
61
64
  var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
62
- var cds = state.catalog.getIn(['elements', type, 'cds']);
65
+ 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) {
66
+ var _state;
67
+ return elem.itemID === ((_state = state) === null || _state === void 0 || (_state = _state.catalog) === null || _state === void 0 ? void 0 : _state.getIn(['elements', type, 'itemID']));
68
+ })) !== 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) {
69
+ var _state2;
70
+ return elem.itemID === ((_state2 = state) === null || _state2 === void 0 || (_state2 = _state2.catalog) === null || _state2 === void 0 ? void 0 : _state2.getIn(['elements', type, 'itemID']));
71
+ })) !== 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']);
63
72
  if (cds) {
64
73
  var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
65
- cds: [cds]
74
+ cds: [cds],
75
+ cabinet_door_style_id: cds.cabinet_door_style_id
66
76
  });
67
77
  item = item.merge({
68
78
  doorStyle: fromJS(_objectSpread(_objectSpread({}, temp), {}, {
@@ -159,6 +169,9 @@ var Item = /*#__PURE__*/function () {
159
169
  }
160
170
  };
161
171
  item.category === 'cabinet' && setSizeOfItemByDoorStyle();
172
+ if (counterTopURI || (_item = item) !== null && _item !== void 0 && _item.counterTop) {
173
+ item.counterTop.uri = counterTopURI;
174
+ }
162
175
  item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
163
176
  state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
164
177
  if (item.type.includes('Light')) {
@@ -330,17 +343,17 @@ var Item = /*#__PURE__*/function () {
330
343
  if (isRect) {
331
344
  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),
332
345
  _stateI = _this$create2.updatedState,
333
- _item = _this$create2.item;
334
- duplicatedElement = _item;
335
- if (_item === null) {
346
+ _item2 = _this$create2.item;
347
+ duplicatedElement = _item2;
348
+ if (_item2 === null) {
336
349
  alert('There are no Door Colors in this cabinet.');
337
350
  state = state.merge({
338
351
  mode: MODE_IDLE,
339
352
  drawingSupport: new Map()
340
353
  });
341
354
  } else {
342
- state = Item.select(_stateI, layerID, _item.id).updatedState;
343
- state = state.setIn(['drawingSupport', 'currentID'], _item.id);
355
+ state = Item.select(_stateI, layerID, _item2.id).updatedState;
356
+ state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
344
357
  }
345
358
  } else {
346
359
  var _val2 = {
@@ -357,17 +370,17 @@ var Item = /*#__PURE__*/function () {
357
370
  if (isRectDown) {
358
371
  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),
359
372
  _stateI2 = _this$create3.updatedState,
360
- _item2 = _this$create3.item;
361
- duplicatedElement = _item2;
362
- if (_item2 === null) {
373
+ _item3 = _this$create3.item;
374
+ duplicatedElement = _item3;
375
+ if (_item3 === null) {
363
376
  alert('There are no Door Colors in this cabinet.');
364
377
  state = state.merge({
365
378
  mode: MODE_IDLE,
366
379
  drawingSupport: new Map()
367
380
  });
368
381
  } else {
369
- state = Item.select(_stateI2, layerID, _item2.id).updatedState;
370
- state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
382
+ state = Item.select(_stateI2, layerID, _item3.id).updatedState;
383
+ state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
371
384
  }
372
385
  } else {
373
386
  var _val3 = {
@@ -384,17 +397,17 @@ var Item = /*#__PURE__*/function () {
384
397
  if (isRectUp) {
385
398
  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),
386
399
  _stateI3 = _this$create4.updatedState,
387
- _item3 = _this$create4.item;
388
- duplicatedElement = _item3;
389
- if (_item3 === null) {
400
+ _item4 = _this$create4.item;
401
+ duplicatedElement = _item4;
402
+ if (_item4 === null) {
390
403
  alert('There are no Door Colors in this cabinet.');
391
404
  state = state.merge({
392
405
  mode: MODE_IDLE,
393
406
  drawingSupport: new Map()
394
407
  });
395
408
  } else {
396
- state = Item.select(_stateI3, layerID, _item3.id).updatedState;
397
- state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
409
+ state = Item.select(_stateI3, layerID, _item4.id).updatedState;
410
+ state = state.setIn(['drawingSupport', 'currentID'], _item4.id);
398
411
  }
399
412
  } else {
400
413
  console.log('there is no space');
@@ -464,8 +477,9 @@ var Item = /*#__PURE__*/function () {
464
477
  break;
465
478
  }
466
479
  if (onInternalEvent && duplicatedElement) {
467
- var jsElement = duplicatedElement.toJS();
468
- if (jsElement.prototype === 'items') jsElement.isWarning = isWarningItem(duplicatedElement);
480
+ var _state$get;
481
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
482
+ var jsElement = updatePayloadOfInternalEvent(duplicatedElement, layer, catalog);
469
483
  onInternalEvent({
470
484
  type: INTERNAL_EVENT_DRAW_ELEMENT,
471
485
  value: jsElement
@@ -530,8 +544,14 @@ var Item = /*#__PURE__*/function () {
530
544
  }, {
531
545
  key: "replaceItem",
532
546
  value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
547
+ var _currentObject$counte;
548
+ var counterTopURI = '';
549
+ if (!isEmpty(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
550
+ var _currentObject$counte2;
551
+ counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
552
+ } else if (!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';
533
553
  state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
534
- state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false).updatedState;
554
+ 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;
535
555
  // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
536
556
  return {
537
557
  updatedState: state
@@ -649,8 +669,8 @@ var Item = /*#__PURE__*/function () {
649
669
  }, {
650
670
  key: "updateDraggingItemChanged",
651
671
  value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
652
- var _state = state,
653
- scene = _state.scene;
672
+ var _state4 = state,
673
+ scene = _state4.scene;
654
674
  // let originalX = draggingSupport.get('originalX');
655
675
  // let originalY = draggingSupport.get('originalY');
656
676
 
@@ -742,9 +762,9 @@ var Item = /*#__PURE__*/function () {
742
762
  }, {
743
763
  key: "updateDraggingItem",
744
764
  value: function updateDraggingItem(state, x, y) {
745
- var _state2 = state,
746
- draggingSupport = _state2.draggingSupport,
747
- scene = _state2.scene;
765
+ var _state5 = state,
766
+ draggingSupport = _state5.draggingSupport,
767
+ scene = _state5.scene;
748
768
  var layerID = draggingSupport.get('layerID');
749
769
  var itemID = draggingSupport.get('itemID');
750
770
  var startPointX = draggingSupport.get('startPointX');
@@ -776,9 +796,9 @@ var Item = /*#__PURE__*/function () {
776
796
  }, {
777
797
  key: "updateDraggingItem3DX",
778
798
  value: function updateDraggingItem3DX(state, x) {
779
- var _state3 = state,
780
- draggingSupport = _state3.draggingSupport,
781
- scene = _state3.scene;
799
+ var _state6 = state,
800
+ draggingSupport = _state6.draggingSupport,
801
+ scene = _state6.scene;
782
802
  var layerID = draggingSupport.get('layerID');
783
803
  var itemID = draggingSupport.get('itemID');
784
804
  var startPointX = draggingSupport.get('startPointX');
@@ -798,9 +818,9 @@ var Item = /*#__PURE__*/function () {
798
818
  }, {
799
819
  key: "updateDraggingItem3DY",
800
820
  value: function updateDraggingItem3DY(state, y) {
801
- var _state4 = state,
802
- draggingSupport = _state4.draggingSupport,
803
- scene = _state4.scene;
821
+ var _state7 = state,
822
+ draggingSupport = _state7.draggingSupport,
823
+ scene = _state7.scene;
804
824
  var layerID = draggingSupport.get('layerID');
805
825
  var itemID = draggingSupport.get('itemID');
806
826
  var startPointY = draggingSupport.get('startPointY');
@@ -881,9 +901,9 @@ var Item = /*#__PURE__*/function () {
881
901
  }, {
882
902
  key: "updateRotatingItem",
883
903
  value: function updateRotatingItem(state, x, y) {
884
- var _state5 = state,
885
- rotatingSupport = _state5.rotatingSupport,
886
- scene = _state5.scene;
904
+ var _state8 = state,
905
+ rotatingSupport = _state8.rotatingSupport,
906
+ scene = _state8.scene;
887
907
  var layerID = rotatingSupport.get('layerID');
888
908
  var itemID = rotatingSupport.get('itemID');
889
909
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -966,9 +986,9 @@ var Item = /*#__PURE__*/function () {
966
986
  }, {
967
987
  key: "replaceSubmodule",
968
988
  value: function replaceSubmodule(state, url) {
969
- var _state6 = state,
970
- replacingSupport = _state6.replacingSupport,
971
- scene = _state6.scene;
989
+ var _state9 = state,
990
+ replacingSupport = _state9.replacingSupport,
991
+ scene = _state9.scene;
972
992
  url = 'catalog/texture.png';
973
993
  var urlData = url.split('/');
974
994
  var newURL = '';
@@ -1069,9 +1089,9 @@ var Item = /*#__PURE__*/function () {
1069
1089
  }, {
1070
1090
  key: "animateObject",
1071
1091
  value: function animateObject(state, value) {
1072
- var _state7 = state,
1073
- replacingSupport = _state7.replacingSupport,
1074
- scene = _state7.scene;
1092
+ var _state0 = state,
1093
+ replacingSupport = _state0.replacingSupport,
1094
+ scene = _state0.scene;
1075
1095
  var layerID = replacingSupport.get('layerID');
1076
1096
  var itemID = replacingSupport.get('itemID');
1077
1097
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1108,8 +1128,8 @@ var Item = /*#__PURE__*/function () {
1108
1128
  state = state.merge({
1109
1129
  doorStyle: doorStyle
1110
1130
  });
1111
- var _state8 = state,
1112
- scene = _state8.scene;
1131
+ var _state1 = state,
1132
+ scene = _state1.scene;
1113
1133
  var layerID = scene.get('selectedLayer');
1114
1134
  var layers = scene.layers.get(layerID);
1115
1135
  var items = layers.items;
@@ -1306,8 +1326,8 @@ var Item = /*#__PURE__*/function () {
1306
1326
  }, {
1307
1327
  key: "setCounterTop",
1308
1328
  value: function setCounterTop(state, counterTop) {
1309
- var _state9 = state,
1310
- scene = _state9.scene;
1329
+ var _state10 = state,
1330
+ scene = _state10.scene;
1311
1331
  var layerID = scene.get('selectedLayer');
1312
1332
  var layers = scene.layers.get(layerID);
1313
1333
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1351,8 +1371,8 @@ var Item = /*#__PURE__*/function () {
1351
1371
  }, {
1352
1372
  key: "setDoorHandle",
1353
1373
  value: function setDoorHandle(state, doorHandle) {
1354
- var _state0 = state,
1355
- scene = _state0.scene;
1374
+ var _state11 = state,
1375
+ scene = _state11.scene;
1356
1376
  var layerID = scene.get('selectedLayer');
1357
1377
  var layer = scene.layers.get(layerID);
1358
1378
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1376,8 +1396,8 @@ var Item = /*#__PURE__*/function () {
1376
1396
  }, {
1377
1397
  key: "setHandleMaterial",
1378
1398
  value: function setHandleMaterial(state, material) {
1379
- var _state1 = state,
1380
- scene = _state1.scene;
1399
+ var _state12 = state,
1400
+ scene = _state12.scene;
1381
1401
  var layerID = scene.get('selectedLayer');
1382
1402
  var layers = scene.layers.get(layerID);
1383
1403
  var items = layers.items;
@@ -1402,8 +1422,8 @@ var Item = /*#__PURE__*/function () {
1402
1422
  }, {
1403
1423
  key: "setWallColor",
1404
1424
  value: function setWallColor(state, wallColor) {
1405
- var _state10 = state,
1406
- scene = _state10.scene;
1425
+ var _state13 = state,
1426
+ scene = _state13.scene;
1407
1427
  var layerID = scene.get('selectedLayer');
1408
1428
  var layer = scene.layers.get(layerID);
1409
1429
  layer = layer.merge({
@@ -1429,8 +1449,8 @@ var Item = /*#__PURE__*/function () {
1429
1449
  }, {
1430
1450
  key: "setBacksplash",
1431
1451
  value: function setBacksplash(state, backsplash) {
1432
- var _state11 = state,
1433
- scene = _state11.scene;
1452
+ var _state14 = state,
1453
+ scene = _state14.scene;
1434
1454
  var layerID = scene.get('selectedLayer');
1435
1455
  var layer = scene.layers.get(layerID);
1436
1456
  var dataJSON = layer.toJS();
@@ -1458,8 +1478,8 @@ var Item = /*#__PURE__*/function () {
1458
1478
  }, {
1459
1479
  key: "setMolding",
1460
1480
  value: function setMolding(state, molding, isAll) {
1461
- var _state12 = state,
1462
- scene = _state12.scene;
1481
+ var _state15 = state,
1482
+ scene = _state15.scene;
1463
1483
  var layerID = scene.get('selectedLayer');
1464
1484
  var layer = scene.layers.get(layerID);
1465
1485
  if (isAll) {
@@ -1541,6 +1561,9 @@ var Item = /*#__PURE__*/function () {
1541
1561
  });
1542
1562
  }
1543
1563
  }
1564
+ state = state.merge({
1565
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1566
+ });
1544
1567
  return {
1545
1568
  updatedState: state
1546
1569
  };
@@ -1548,8 +1571,8 @@ var Item = /*#__PURE__*/function () {
1548
1571
  }, {
1549
1572
  key: "updateMolding",
1550
1573
  value: function updateMolding(state) {
1551
- var _state13 = state,
1552
- scene = _state13.scene;
1574
+ var _state16 = state,
1575
+ scene = _state16.scene;
1553
1576
  var layerID = scene.get('selectedLayer');
1554
1577
  var layer = scene.layers.get(layerID);
1555
1578
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1663,6 +1686,9 @@ var Item = /*#__PURE__*/function () {
1663
1686
  updateSelectItemMolding();
1664
1687
  }
1665
1688
  }
1689
+ state = state.merge({
1690
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1691
+ });
1666
1692
  return {
1667
1693
  updatedState: state
1668
1694
  };
@@ -1670,8 +1696,8 @@ var Item = /*#__PURE__*/function () {
1670
1696
  }, {
1671
1697
  key: "setBacksplashVisible",
1672
1698
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1673
- var _state14 = state,
1674
- scene = _state14.scene;
1699
+ var _state17 = state,
1700
+ scene = _state17.scene;
1675
1701
  var layerID = scene.get('selectedLayer');
1676
1702
  var layer = scene.layers.get(layerID);
1677
1703
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1691,8 +1717,8 @@ var Item = /*#__PURE__*/function () {
1691
1717
  }, {
1692
1718
  key: "setApplianceMaterial",
1693
1719
  value: function setApplianceMaterial(state, material) {
1694
- var _state15 = state,
1695
- scene = _state15.scene;
1720
+ var _state18 = state,
1721
+ scene = _state18.scene;
1696
1722
  var layerID = scene.get('selectedLayer');
1697
1723
  var layers = scene.layers.get(layerID);
1698
1724
  var items = layers.items;
@@ -1716,8 +1742,8 @@ var Item = /*#__PURE__*/function () {
1716
1742
  }, {
1717
1743
  key: "setModelling",
1718
1744
  value: function setModelling(state, molding) {
1719
- var _state16 = state,
1720
- scene = _state16.scene;
1745
+ var _state19 = state,
1746
+ scene = _state19.scene;
1721
1747
  var layerID = scene.get('selectedLayer');
1722
1748
  var layers = scene.layers.get(layerID);
1723
1749
  var items = layers.items;
@@ -1827,8 +1853,8 @@ var Item = /*#__PURE__*/function () {
1827
1853
  }, {
1828
1854
  key: "toggleLoadingCabinet",
1829
1855
  value: function toggleLoadingCabinet(state) {
1830
- var _state17 = state,
1831
- scene = _state17.scene;
1856
+ var _state20 = state,
1857
+ scene = _state20.scene;
1832
1858
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1833
1859
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1834
1860
  // state = state.set('scene', scene);
@@ -1840,8 +1866,8 @@ var Item = /*#__PURE__*/function () {
1840
1866
  }, {
1841
1867
  key: "endLoading",
1842
1868
  value: function endLoading(state) {
1843
- var _state18 = state,
1844
- scene = _state18.scene;
1869
+ var _state21 = state,
1870
+ scene = _state21.scene;
1845
1871
  state = state.setIn(['scene', 'loadFlag'], true);
1846
1872
  return {
1847
1873
  updatedState: state
package/es/class/line.js CHANGED
@@ -6,8 +6,7 @@ import { Group, Hole, Layer, Vertex } from "./export";
6
6
  import { GeometryUtils, history, IDBroker, NameGenerator, SnapSceneUtils, SnapUtils } from "../utils/export";
7
7
  import * as Three from 'three';
8
8
  import { END_DRAGGING_LINE, END_DRAGGING_VERTEX, END_DRAWING_LINE, EPSILON, INTERNAL_EVENT_START_DRAW_WALL, MIN_ANGLE_DISALLOW_DRAW_WALL, MODE_DRAGGING_LINE, MODE_DRAWING_LINE, MODE_IDLE, MODE_WAITING_DRAWING_LINE, UNIT_ANGLE } from "../constants";
9
- import { isEmpty } from "../utils/helper";
10
- import { convert } from "../utils/convert-units-lite";
9
+ import { isEmpty, updatePayloadOfInternalEvent } from "../utils/helper";
11
10
  var timeGlobal = 0;
12
11
  var TimeRecorder = /*#__PURE__*/function () {
13
12
  function TimeRecorder(name) {
@@ -428,6 +427,7 @@ var Line = /*#__PURE__*/function () {
428
427
  }, {
429
428
  key: "beginDrawingLine",
430
429
  value: function beginDrawingLine(state, layerID, x, y, onInternalEvent) {
430
+ var _state$get;
431
431
  // if end drawing by created area
432
432
  if (state.mode == MODE_IDLE) {
433
433
  return {
@@ -481,12 +481,8 @@ var Line = /*#__PURE__*/function () {
481
481
  drawingSupport: drawingSupport
482
482
  });
483
483
  var layer = state.getIn(['scene', 'layers', layerID]);
484
- var payload = line.toJS();
485
- var v_a = layer.vertices.get(line.vertices.get(0));
486
- var v_b = layer.vertices.get(line.vertices.get(1));
487
- var distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
488
- var _length = convert(distance).from('cm').to('in');
489
- payload.length = _length;
484
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
485
+ var payload = updatePayloadOfInternalEvent(line, layer, catalog);
490
486
  if (onInternalEvent) onInternalEvent({
491
487
  type: INTERNAL_EVENT_START_DRAW_WALL,
492
488
  value: payload
@@ -34,7 +34,8 @@ var Project = /*#__PURE__*/function () {
34
34
  }, {
35
35
  key: "newProject",
36
36
  value: function newProject(state) {
37
- var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
37
+ var _state$toJS$doorStyle, _state;
38
+ 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;
38
39
  // let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
39
40
  // let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
40
41
  var _viewer2D = state.viewer2D;
@@ -74,9 +75,9 @@ var Project = /*#__PURE__*/function () {
74
75
  a: 0.99,
75
76
  d: 0.99
76
77
  });
77
- var _state = state,
78
- oldScene = _state.scene,
79
- oldSceneHistory = _state.sceneHistory;
78
+ var _state2 = state,
79
+ oldScene = _state2.scene,
80
+ oldSceneHistory = _state2.sceneHistory;
80
81
  var json_items = sceneJSON.layers[sceneJSON.selectedLayer].items;
81
82
  var elements = state.catalog.get('elements').toArray();
82
83
  var _loop = function _loop(x) {
@@ -829,89 +830,101 @@ var Project = /*#__PURE__*/function () {
829
830
  key: "createRoomWithShape",
830
831
  value: function createRoomWithShape(state, roomShapeType, width, height, doorStyle) {
831
832
  var catalog = state.catalog;
833
+ // keep measurement unit, sceneHistory
834
+ var curLayerID = state.scene.selectedLayer;
835
+ var layerUnit = state.getIn(['scene', 'layers', curLayerID, 'unit']);
836
+ var ceilHeight = state.getIn(['scene', 'layers', curLayerID, 'ceilHeight']);
837
+ var sceneHistory = state.getIn(['sceneHistory']);
832
838
  state = this.newProject(state).updatedState;
833
839
  state = state.merge({
834
840
  catalog: catalog
835
841
  });
836
- var _viewer2D = state.viewer2D;
837
- var viewer = _viewer2D.toJS();
838
- width = convert(width).from('in').to('cm');
839
- height = convert(height).from('in').to('cm');
840
- var layerID = state.scene.selectedLayer;
841
842
  state = Item.setInitialDoorStyle(state, doorStyle).updatedState;
842
- if (isEmpty(viewer)) return {
843
- updatedState: state
844
- };
845
- var halfWidth = width / 2;
846
- var halfHeight = height / 2;
847
- var viewerWidth = viewer.SVGWidth;
848
- var viewerHeight = viewer.SVGHeight;
849
- var centerPos = {
850
- x: viewerWidth / 2,
851
- y: viewerHeight / 2
852
- };
853
- var vtLB = {
854
- x: centerPos.x - halfWidth,
855
- y: centerPos.y - halfHeight
856
- };
857
- var vtRB = {
858
- x: centerPos.x + halfWidth,
859
- y: centerPos.y - halfHeight
860
- };
861
- var vtRT = {
862
- x: centerPos.x + halfWidth,
863
- y: centerPos.y + halfHeight
864
- };
865
- var vtLT = {
866
- x: centerPos.x - halfWidth,
867
- y: centerPos.y + halfHeight
868
- };
869
- var vertices = [];
870
- switch (roomShapeType) {
871
- case 'rectangle':
872
- vertices = [vtLB, vtLT, vtRT, vtRB];
873
- break;
874
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
875
- vertices = [vtLB, vtRB, vtRT];
876
- break;
877
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
878
- vertices = [vtRB, vtRT, vtLT];
879
- break;
880
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
881
- vertices = [vtRT, vtLT, vtLB];
882
- break;
883
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
884
- vertices = [vtLT, vtLB, vtRB];
885
- break;
886
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
887
- vertices = [vtRB, vtRT, vtLT, vtLB];
888
- break;
889
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
890
- vertices = [vtLB, vtRB, vtRT, vtLT];
891
- break;
892
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
893
- vertices = [vtLT, vtLB, vtRB, vtRT];
894
- break;
895
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
896
- vertices = [vtRT, vtLT, vtLB, vtRB];
897
- break;
898
- }
899
- for (var i = 0; i < vertices.length - 1; i++) {
900
- state = Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
901
- }
902
- if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
903
- state = Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
904
- }
905
- var layer = state.getIn(['scene', 'layers', layerID]);
906
- var lines = layer.getIn(['lines']).toJS();
907
- var drawingInfo = {};
908
- var lineKey = Object.keys(lines);
909
- for (var _i = 0; _i < lineKey.length; _i++) {
910
- if (!isEmpty(lineKey)) {
911
- drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
843
+ var layerID = state.scene.selectedLayer;
844
+ if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !isEmpty(width) && !isEmpty(height) && width !== 0 && height !== 0) {
845
+ var _viewer2D = state.viewer2D;
846
+ var viewer = _viewer2D.toJS();
847
+ if (isEmpty(viewer)) return {
848
+ updatedState: state
849
+ };
850
+ width = convert(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
851
+ height = convert(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
852
+ var halfWidth = width / 2;
853
+ var halfHeight = height / 2;
854
+ var viewerWidth = viewer.SVGWidth;
855
+ var viewerHeight = viewer.SVGHeight;
856
+ var centerPos = {
857
+ x: viewerWidth / 2,
858
+ y: viewerHeight / 2
859
+ };
860
+ var vtLB = {
861
+ x: centerPos.x - halfWidth,
862
+ y: centerPos.y - halfHeight
863
+ };
864
+ var vtRB = {
865
+ x: centerPos.x + halfWidth,
866
+ y: centerPos.y - halfHeight
867
+ };
868
+ var vtRT = {
869
+ x: centerPos.x + halfWidth,
870
+ y: centerPos.y + halfHeight
871
+ };
872
+ var vtLT = {
873
+ x: centerPos.x - halfWidth,
874
+ y: centerPos.y + halfHeight
875
+ };
876
+ var vertices = [];
877
+ switch (roomShapeType) {
878
+ case 'rectangle':
879
+ vertices = [vtLB, vtLT, vtRT, vtRB];
880
+ break;
881
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
882
+ vertices = [vtLB, vtRB, vtRT];
883
+ break;
884
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
885
+ vertices = [vtRB, vtRT, vtLT];
886
+ break;
887
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
888
+ vertices = [vtRT, vtLT, vtLB];
889
+ break;
890
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
891
+ vertices = [vtLT, vtLB, vtRB];
892
+ break;
893
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
894
+ vertices = [vtRB, vtRT, vtLT, vtLB];
895
+ break;
896
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
897
+ vertices = [vtLB, vtRB, vtRT, vtLT];
898
+ break;
899
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
900
+ vertices = [vtLT, vtLB, vtRB, vtRT];
901
+ break;
902
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
903
+ vertices = [vtRT, vtLT, vtLB, vtRB];
904
+ break;
905
+ }
906
+ for (var i = 0; i < vertices.length - 1; i++) {
907
+ state = Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
908
+ }
909
+ if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
910
+ state = Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
911
+ }
912
+ var layer = state.getIn(['scene', 'layers', layerID]);
913
+ var lines = layer.getIn(['lines']).toJS();
914
+ var drawingInfo = {};
915
+ var lineKey = Object.keys(lines);
916
+ for (var _i = 0; _i < lineKey.length; _i++) {
917
+ if (!isEmpty(lineKey)) {
918
+ drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
919
+ }
920
+ state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
912
921
  }
913
- state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
914
922
  }
923
+
924
+ // copy keeped measurement unit, sceneHistory
925
+ state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
926
+ state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
927
+ state = state.setIn(['sceneHistory'], sceneHistory);
915
928
  state = centering2D(state);
916
929
  return {
917
930
  updatedState: state