kitchen-simulator 11.28.2 → 11.29.0

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 (87) hide show
  1. package/es/actions/items-actions.js +1 -12
  2. package/es/assets/img/svg/3d_item_move.svg +105 -9
  3. package/es/assets/img/svg/3d_item_rotation.svg +75 -3
  4. package/es/assets/img/svg/accessories.svg +4 -4
  5. package/es/assets/img/svg/bottombar/elevation-back.svg +6 -6
  6. package/es/assets/img/svg/bottombar/elevation-front.svg +6 -6
  7. package/es/assets/img/svg/bottombar/elevation-left.svg +6 -6
  8. package/es/assets/img/svg/bottombar/elevation-right.svg +7 -7
  9. package/es/assets/img/svg/bottombar/elevation.svg +13 -13
  10. package/es/assets/img/svg/delete.svg +2 -6
  11. package/es/assets/img/svg/detail.svg +77 -77
  12. package/es/assets/img/svg/duplicate.svg +6 -6
  13. package/es/assets/img/svg/filtersActive.svg +19 -19
  14. package/es/assets/img/svg/invert.svg +127 -12
  15. package/es/assets/img/svg/menubar/login.svg +84 -84
  16. package/es/assets/img/svg/menubar/my_projects.svg +85 -85
  17. package/es/assets/img/svg/menubar/new_project.svg +110 -110
  18. package/es/assets/img/svg/menubar/save_project.svg +84 -84
  19. package/es/assets/img/svg/options.svg +3 -3
  20. package/es/assets/img/svg/positioning.svg +3 -3
  21. package/es/assets/img/svg/toggleFilters.svg +19 -19
  22. package/es/assets/img/svg/toolbar/shopping-cart.svg +13 -13
  23. package/es/assets/img/svg/wizardstep/detail_view.svg +87 -87
  24. package/es/assets/img/svg/wizardstep/tile_view.svg +95 -95
  25. package/es/catalog/utils/exporter.js +0 -4
  26. package/es/catalog/utils/item-loader.js +8 -18
  27. package/es/class/item.js +12 -39
  28. package/es/components/viewer2d/item.js +125 -139
  29. package/es/components/viewer2d/viewer2d.js +2 -5
  30. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  31. package/es/components/viewer3d/scene-creator.js +0 -18
  32. package/es/components/viewer3d/viewer3d.js +49 -137
  33. package/es/constants.js +0 -4
  34. package/es/events/external/handleExternalEvent.js +33 -36
  35. package/es/events/external/handlers.elementOps.js +0 -8
  36. package/es/mappings/external-events/mapExternalEventPayload.js +4 -4
  37. package/es/mappings/external-events/mappers/addItemMapper.js +9 -9
  38. package/es/mappings/external-events/mappers/ccdfMapper.js +1 -1
  39. package/es/models.js +0 -4
  40. package/es/reducers/items-reducer.js +1 -8
  41. package/es/shared/domain/asset/sanitize-asset-url.js +5 -5
  42. package/es/utils/skinPanelEngine.js +14 -14
  43. package/lib/actions/items-actions.js +0 -12
  44. package/lib/assets/img/svg/3d_item_move.svg +105 -9
  45. package/lib/assets/img/svg/3d_item_rotation.svg +75 -3
  46. package/lib/assets/img/svg/accessories.svg +4 -4
  47. package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -6
  48. package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -6
  49. package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -6
  50. package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -7
  51. package/lib/assets/img/svg/bottombar/elevation.svg +13 -13
  52. package/lib/assets/img/svg/delete.svg +2 -6
  53. package/lib/assets/img/svg/detail.svg +77 -77
  54. package/lib/assets/img/svg/duplicate.svg +6 -6
  55. package/lib/assets/img/svg/filtersActive.svg +19 -19
  56. package/lib/assets/img/svg/invert.svg +127 -12
  57. package/lib/assets/img/svg/menubar/login.svg +84 -84
  58. package/lib/assets/img/svg/menubar/my_projects.svg +85 -85
  59. package/lib/assets/img/svg/menubar/new_project.svg +110 -110
  60. package/lib/assets/img/svg/menubar/save_project.svg +84 -84
  61. package/lib/assets/img/svg/options.svg +3 -3
  62. package/lib/assets/img/svg/positioning.svg +3 -3
  63. package/lib/assets/img/svg/toggleFilters.svg +19 -19
  64. package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -13
  65. package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -87
  66. package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -95
  67. package/lib/catalog/utils/exporter.js +0 -4
  68. package/lib/catalog/utils/item-loader.js +8 -18
  69. package/lib/class/item.js +11 -38
  70. package/lib/components/viewer2d/item.js +124 -138
  71. package/lib/components/viewer2d/viewer2d.js +2 -5
  72. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  73. package/lib/components/viewer3d/scene-creator.js +0 -18
  74. package/lib/components/viewer3d/viewer3d.js +49 -137
  75. package/lib/constants.js +4 -8
  76. package/lib/events/external/handleExternalEvent.js +31 -34
  77. package/lib/events/external/handlers.elementOps.js +0 -9
  78. package/lib/mappings/external-events/mapExternalEventPayload.js +4 -4
  79. package/lib/mappings/external-events/mappers/addItemMapper.js +9 -9
  80. package/lib/mappings/external-events/mappers/ccdfMapper.js +1 -1
  81. package/lib/models.js +0 -4
  82. package/lib/reducers/items-reducer.js +0 -7
  83. package/lib/shared/domain/asset/sanitize-asset-url.js +5 -5
  84. package/lib/utils/skinPanelEngine.js +14 -14
  85. package/package.json +1 -1
  86. package/es/shared/domain/cabinet-mirror.js +0 -7
  87. package/lib/shared/domain/cabinet-mirror.js +0 -13
@@ -493,8 +493,6 @@ function replaceObject(modifiedPath, layer, planData, actions, sceneData, oldSce
493
493
  getDistances(layer, item);
494
494
  }, 50);
495
495
  removeSelItemMesh(tmpMoldings, item, planData, mode);
496
- } else if (modifiedPath[keyIndex] == 'mirrored') {
497
- applyMirrorToItem3D(item3D, item.mirrored);
498
496
  } else if (modifiedPath[keyIndex] == 'selected') {
499
497
  var itemType = !!catalog.elements[item.type] ? catalog.elements[item.type].type : catalog.elements[returnReplaceableDeepSearchType(item.type)].type;
500
498
  if (value == false) {
@@ -2215,22 +2213,6 @@ function updateItem(sceneData, oldSceneData, planData, layer, itemID, difference
2215
2213
  if (!mesh) return null;
2216
2214
  return catalog.getElement(item.type).updateRender3D(item, layer, sceneData, mesh, oldItem, differences, selfDestroy, selfBuild);
2217
2215
  }
2218
- function applyMirrorToItem3D(item3D, mirrored) {
2219
- var _item3D$children, _object$children;
2220
- var object = item3D === null || item3D === void 0 || (_item3D$children = item3D.children) === null || _item3D$children === void 0 ? void 0 : _item3D$children[0];
2221
- if (!object || !object.scale) return;
2222
- var shouldMirror = mirrored === true;
2223
- var isCurrentlyMirrored = object.scale.x < 0;
2224
- if (shouldMirror !== isCurrentlyMirrored) object.scale.x *= -1;
2225
- var transformGizmo = (_object$children = object.children) === null || _object$children === void 0 ? void 0 : _object$children.find(function (child) {
2226
- return child.name === 'TransformGizmo';
2227
- });
2228
- if (transformGizmo !== null && transformGizmo !== void 0 && transformGizmo.scale) {
2229
- var sign = object.scale.x < 0 ? -1 : 1;
2230
- transformGizmo.scale.x = sign * Math.abs(transformGizmo.scale.x);
2231
- }
2232
- object.userData.mirrored = shouldMirror;
2233
- }
2234
2216
 
2235
2217
  // Apply interact function to children of an Object3D
2236
2218
  function applyInteract(object, interactFunction) {
@@ -29,8 +29,6 @@ import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';
29
29
  import CameraControls from 'camera-controls';
30
30
  import { getAllMeshes, vectorIntersectWithMesh } from "../../utils/objects-utils";
31
31
  import { returnReplaceableDeepSearchType } from "../viewer2d/utils";
32
- import { canMirrorCabinet } from "../../shared/domain/cabinet-mirror";
33
- var ICON_SPACING = 0;
34
32
  CameraControls.install({
35
33
  THREE: Three
36
34
  });
@@ -345,7 +343,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
345
343
  var bRotate = false;
346
344
  var bMove = false;
347
345
  var bMoveUP = false;
348
- var bMirror = false;
349
346
  /** Transformation matrix of grid */
350
347
  var gridMatrix = new Three.Matrix4();
351
348
  var rayDirection = new Three.Vector3();
@@ -1047,73 +1044,35 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1047
1044
  var firstMove = false;
1048
1045
  var prevX, prevY;
1049
1046
  var selObj = null;
1050
- var TOOL_CANVAS_WIDTH = 100;
1051
- var TOOL_CANVAS_TWO_BUTTON_HEIGHT = 200;
1052
- var TOOL_CANVAS_THREE_BUTTON_HEIGHT = 300;
1053
- var TOOL_BUTTON_RADIUS = 40;
1054
- var TOOL_BUTTONS_SPACING = 20;
1055
- var TOOL_HIT_RADIUS = 20;
1056
- var getItemMirrored = function getItemMirrored(item) {
1057
- return (item === null || item === void 0 ? void 0 : item.mirrored) === true;
1058
- };
1059
- var canMirrorItem = function canMirrorItem(item) {
1060
- return canMirrorCabinet(item);
1061
- };
1062
- var toolTexture = null;
1063
1047
  var createToolObject = function createToolObject() {
1064
- var mirrorActive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1065
- var canMirror = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1066
- var buttons = [{
1067
- src: '/assets/img/svg/3d_item_rotation.svg',
1068
- y: 50
1069
- }, {
1070
- src: '/assets/img/svg/3d_item_move.svg',
1071
- y: 150
1072
- }, canMirror && {
1073
- src: '/assets/img/svg/invert.svg',
1074
- y: 250,
1075
- flip: !mirrorActive
1076
- }].filter(Boolean);
1077
1048
  var canvas = document.createElement('canvas');
1078
- canvas.width = TOOL_CANVAS_WIDTH;
1079
- canvas.height = canMirror ? TOOL_CANVAS_THREE_BUTTON_HEIGHT : TOOL_CANVAS_TWO_BUTTON_HEIGHT;
1080
- canvas.style.width = '50px';
1081
- canvas.style.height = canMirror ? '150px' : '100px';
1049
+ canvas.width = 100;
1050
+ canvas.height = 200;
1051
+ canvas.style.width = 50 + 'px';
1052
+ canvas.style.height = 100 + 'px';
1082
1053
  var ctx = canvas.getContext('2d');
1083
- var drawShadowCircle = function drawShadowCircle(x, y, radius) {
1084
- ctx.save();
1085
- ctx.shadowColor = 'rgba(0, 0, 0, 0.16)';
1086
- ctx.shadowBlur = 2.4;
1087
- ctx.shadowOffsetX = 0;
1088
- ctx.shadowOffsetY = -1;
1089
- ctx.fillStyle = '#FFFFFF';
1090
- ctx.beginPath();
1091
- ctx.arc(x, y, radius, 0, 2 * Math.PI);
1092
- ctx.fill();
1093
- ctx.restore();
1054
+ ctx.fillStyle = '#FFFFFF';
1055
+ ctx.strokeStyle = '#000000';
1056
+ ctx.beginPath();
1057
+ ctx.arc(50, 50, 40, 0, 4 * Math.PI);
1058
+ ctx.fill();
1059
+ ctx.stroke();
1060
+ var img1 = new Image();
1061
+ img1.crossOrigin = 'anonymous';
1062
+ img1.src = '/assets/img/svg/3d_item_rotation.svg';
1063
+ img1.onload = function () {
1064
+ ctx.drawImage(img1, 16, 16, 68, 68);
1094
1065
  };
1095
- var drawIcon = function drawIcon(_ref) {
1096
- var src = _ref.src,
1097
- y = _ref.y,
1098
- flip = _ref.flip;
1099
- drawShadowCircle(50, y, TOOL_BUTTON_RADIUS);
1100
- var img = new Image();
1101
- img.crossOrigin = 'anonymous';
1102
- img.src = src;
1103
- img.onload = function () {
1104
- ctx.save();
1105
- if (flip) {
1106
- ctx.translate(100, 0);
1107
- ctx.scale(-1, 1);
1108
- }
1109
- ctx.imageSmoothingEnabled = true;
1110
- ctx.imageSmoothingQuality = 'high';
1111
- ctx.drawImage(img, 25, y - 25, 50, 50);
1112
- ctx.restore();
1113
- if (toolTexture) toolTexture.needsUpdate = true;
1114
- };
1066
+ ctx.beginPath();
1067
+ ctx.arc(50, 150, 40, 0, 4 * Math.PI);
1068
+ ctx.fill();
1069
+ ctx.stroke();
1070
+ var img2 = new Image();
1071
+ img2.crossOrigin = 'anonymous';
1072
+ img2.src = '/assets/img/svg/3d_item_move.svg';
1073
+ img2.onload = function () {
1074
+ ctx.drawImage(img2, 16, 116, 68, 68);
1115
1075
  };
1116
- buttons.forEach(drawIcon);
1117
1076
  return canvas;
1118
1077
  };
1119
1078
  var clockWise = true;
@@ -1152,7 +1111,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1152
1111
  lastAngle = rotate;
1153
1112
  return canvas;
1154
1113
  };
1155
- toolTexture = new Three.Texture(createToolObject(false, false));
1114
+ var toolTexture = new Three.Texture(createToolObject());
1156
1115
  toolTexture.needsUpdate = true;
1157
1116
  var toolObj = new Three.Sprite(new Three.SpriteMaterial({
1158
1117
  map: toolTexture,
@@ -1163,15 +1122,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1163
1122
  toolObj.scale.set(20, 40, 20);
1164
1123
  toolObj.renderOrder = 3;
1165
1124
  toolObj.name = 'toolObj';
1166
- toolObj.userData.canMirror = false;
1167
- var refreshToolObject = function refreshToolObject(item) {
1168
- var showMirror = canMirrorItem(item);
1169
- toolTexture.image = createToolObject(getItemMirrored(item), showMirror);
1170
- toolTexture.needsUpdate = true;
1171
- toolObj.scale.set(20, showMirror ? 60 : 40, 20);
1172
- toolObj.userData.canMirror = showMirror;
1173
- };
1174
- this.refreshToolObject = refreshToolObject;
1175
1125
  var angleTexture = new Three.Texture(createAngleObject(0));
1176
1126
  angleTexture.needsUpdate = true;
1177
1127
  var angleObj = new Three.Sprite(new Three.SpriteMaterial({
@@ -1249,7 +1199,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1249
1199
  }
1250
1200
  };
1251
1201
  this.mouseDownEvent = function (event) {
1252
- var _selectedObject;
1253
1202
  gridPlanOrigin = gridPlane.position;
1254
1203
  gridMatrix.copy(gridPlane.matrixWorld).invert();
1255
1204
  var altitude = 0;
@@ -1278,7 +1227,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1278
1227
  * 1 - move up/down
1279
1228
  * 2 - move x/y
1280
1229
  * 3 - camera rotate
1281
- * 4 - mirror
1282
1230
  */
1283
1231
  var transflag = 3;
1284
1232
  raycaster.setFromCamera(mouse, camera);
@@ -1292,23 +1240,20 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1292
1240
  var intersects = raycaster.intersectObjects(meshes, true);
1293
1241
  var toolIntersects = raycaster.intersectObjects([toolObj], true);
1294
1242
 
1295
- // This code is excuted when click the tool object(rotation, move or mirror icon).
1243
+ // This code is excuted when click the tool object(rotation or move icon).
1296
1244
  if (toolIntersects.length > 0) {
1297
1245
  updateSelectedObject();
1298
- var toolHeight = toolObj.userData.canMirror ? TOOL_CANVAS_THREE_BUTTON_HEIGHT : TOOL_CANVAS_TWO_BUTTON_HEIGHT;
1299
- var yScale = toolHeight / 2;
1300
- var distanceFromToolButton = function distanceFromToolButton(centerY) {
1301
- return Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - centerY) * yScale, 2));
1302
- };
1303
- var moveCenter = toolObj.userData.canMirror ? 0.5 : 0.25;
1304
- var rotateCenter = toolObj.userData.canMirror ? 5 / 6 : 0.75;
1305
- var mirrorCenter = 1 / 6;
1306
- if (toolObj.userData.canMirror && distanceFromToolButton(mirrorCenter) <= TOOL_HIT_RADIUS) {
1307
- transflag = 4;
1308
- } else if (distanceFromToolButton(moveCenter) <= TOOL_HIT_RADIUS) {
1246
+ // it determines whether mouse is over on rotation icon or move icon.
1247
+ var distance = Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - 0.25) * 100, 2));
1248
+ // move icon selected
1249
+ if (distance <= 20) {
1309
1250
  transflag = 2;
1310
- } else if (distanceFromToolButton(rotateCenter) <= TOOL_HIT_RADIUS) {
1311
- transflag = 0;
1251
+ } else {
1252
+ distance = Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - 0.75) * 100, 2));
1253
+ // rotation icon selected
1254
+ if (distance <= 20) {
1255
+ transflag = 0;
1256
+ }
1312
1257
  }
1313
1258
  }
1314
1259
  if (intersects.length > 0) {
@@ -1327,19 +1272,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1327
1272
  }
1328
1273
  }
1329
1274
  if (_this2.props.state.mode == MODE_DRAWING_ITEM_3D) return;
1330
- if (isSelected && transflag == 4 && (_selectedObject = selectedObject) !== null && _selectedObject !== void 0 && _selectedObject.itemID) {
1331
- var _this2$props$state$sc;
1332
- var selectedItem = (_this2$props$state$sc = _this2.props.state.scene.getIn(['layers', selectedObject.layerID])) === null || _this2$props$state$sc === void 0 ? void 0 : _this2$props$state$sc.items.get(selectedObject.itemID);
1333
- if (canMirrorItem(selectedItem)) {
1334
- var mirrored = selectedItem.mirrored !== true;
1335
- var mirroredItem = selectedItem.set('mirrored', mirrored);
1336
- refreshToolObject(mirroredItem);
1337
- _this2.context.itemsActions.toggleItemMirror(selectedObject.layerID, selectedObject.itemID, mirrored, _this2.props.onInternalEvent);
1338
- cameraControls.mouseButtons.left = CameraControls.ACTION.NONE;
1339
- bMirror = true;
1340
- }
1341
- return;
1342
- }
1343
1275
  if (isSelected) {
1344
1276
  !_this2.props.downloadFlag && _this2.props.setToolbar('');
1345
1277
  if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
@@ -1358,13 +1290,13 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1358
1290
  }
1359
1291
  if (selectedObject !== undefined) {
1360
1292
  // get selected object from planData.sceneGraph
1361
- var _selectedItem = null;
1293
+ var selectedItem = null;
1362
1294
  switch (true) {
1363
1295
  case 'itemID' in selectedObject:
1364
- _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1296
+ selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1365
1297
  break;
1366
1298
  case 'holeID' in selectedObject:
1367
- _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].holes[selectedObject.holeID];
1299
+ selectedItem = planData.sceneGraph.layers[selectedObject.layerID].holes[selectedObject.holeID];
1368
1300
  break;
1369
1301
  default:
1370
1302
  break;
@@ -1383,7 +1315,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1383
1315
  offsetX: event.offsetX - 50,
1384
1316
  offsetY: event.offsetY
1385
1317
  }, alti);
1386
- if (isUndefined(_selectedItem)) return;
1318
+ if (isUndefined(selectedItem)) return;
1387
1319
  var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1388
1320
  lastAngle = 0;
1389
1321
  angleObj.position.set(planData.plan.position.x + Point.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : selItem.properties.get('altitude').get('length') + planData.plan.position.y, planData.plan.position.z - Point.y);
@@ -1412,7 +1344,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1412
1344
  scene3D.remove(toolObj);
1413
1345
  }
1414
1346
  for (_i1 = 0; _i1 < intersects.length; _i1++) {
1415
- if (_selectedItem != undefined && intersects[_i1].object.parent && intersects[_i1].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) selectedFlag = true;
1347
+ if (selectedItem != undefined && intersects[_i1].object.parent && intersects[_i1].object.parent.parent.userData.itemId === selectedItem.userData.itemId) selectedFlag = true;
1416
1348
  }
1417
1349
  if (selectedFlag || toolIntersects.length > 0 && !isElevationView(mode)) {
1418
1350
  cameraControls.mouseButtons.left = CameraControls.ACTION.NONE;
@@ -1429,24 +1361,18 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1429
1361
  }
1430
1362
  };
1431
1363
  this.mouseUpEvent = function (event) {
1432
- var _selectedObject2;
1364
+ var _selectedObject;
1433
1365
  var internalType = ''; // internalEvent type - select/drag/draw
1434
1366
  var selectedElement; // internalEvent data
1435
1367
  firstMove = 0;
1436
1368
  var altitude = 0;
1437
- var curLayer = _this2.props.state.scene.getIn(['layers', (_selectedObject2 = selectedObject) === null || _selectedObject2 === void 0 ? void 0 : _selectedObject2.layerID]);
1369
+ var curLayer = _this2.props.state.scene.getIn(['layers', (_selectedObject = selectedObject) === null || _selectedObject === void 0 ? void 0 : _selectedObject.layerID]);
1438
1370
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1439
1371
  var properties = allItemRect.cur.itemInfo.properties;
1440
1372
  altitude = properties.getIn(['altitude', '_length']);
1441
1373
  var unit = properties.getIn(['altitude', '_unit']) || 'in';
1442
1374
  altitude = convert(altitude).from(unit).to(_this2.props.state.scene.unit);
1443
1375
  }
1444
- if (bMirror) {
1445
- bMirror = false;
1446
- cameraControls.mouseButtons.left = CameraControls.ACTION.ROTATE;
1447
- event.preventDefault();
1448
- return;
1449
- }
1450
1376
  scene3D.remove(angleObj);
1451
1377
  scene3D.remove(toolObj);
1452
1378
  if (!_this2.props.downloadFlag && !_this2.props.state.mode.includes('ING')) {
@@ -1555,11 +1481,10 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1555
1481
  }
1556
1482
  gridMatrix.copy(gridPlane.matrixWorld).invert();
1557
1483
  var addItemToolObj = function addItemToolObj() {
1558
- var _planData$sceneGraph, _selectedObject3, _intersects$_i;
1559
- var selectedItem = (_planData$sceneGraph = planData.sceneGraph) === null || _planData$sceneGraph === void 0 || (_planData$sceneGraph = _planData$sceneGraph.layers[selectedObject.layerID]) === null || _planData$sceneGraph === void 0 ? void 0 : _planData$sceneGraph.items[(_selectedObject3 = selectedObject) === null || _selectedObject3 === void 0 ? void 0 : _selectedObject3.itemID];
1484
+ var _planData$sceneGraph, _selectedObject2, _intersects$_i;
1485
+ var selectedItem = (_planData$sceneGraph = planData.sceneGraph) === null || _planData$sceneGraph === void 0 || (_planData$sceneGraph = _planData$sceneGraph.layers[selectedObject.layerID]) === null || _planData$sceneGraph === void 0 ? void 0 : _planData$sceneGraph.items[(_selectedObject2 = selectedObject) === null || _selectedObject2 === void 0 ? void 0 : _selectedObject2.itemID];
1560
1486
  if (isUndefined(selectedItem)) return;
1561
1487
  selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1562
- refreshToolObject(selectedElement);
1563
1488
  var itemPos = selectedItem.position.clone();
1564
1489
  if (((_intersects$_i = intersects[_i10]) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.object) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.userData) === null || _intersects$_i === void 0 ? void 0 : _intersects$_i.itemId) === selectedItem.userData.itemId) {
1565
1490
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
@@ -1659,7 +1584,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1659
1584
  selectedObj = allItemRect.cur;
1660
1585
  }
1661
1586
  } else {
1662
- var _planData$sceneGraph2, _selectedObject4, _selectedObject5;
1587
+ var _planData$sceneGraph2, _selectedObject3, _selectedObject4;
1663
1588
  visibleTransformBox(false);
1664
1589
  var alti = 0;
1665
1590
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
@@ -1669,8 +1594,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1669
1594
  alti = convert(alti).from(_unit2).to(_this2.props.state.scene.unit);
1670
1595
  }
1671
1596
  getPoint(event, alti);
1672
- var _selectedItem2 = planData === null || planData === void 0 || (_planData$sceneGraph2 = planData.sceneGraph) === null || _planData$sceneGraph2 === void 0 || (_planData$sceneGraph2 = _planData$sceneGraph2.layers[(_selectedObject4 = selectedObject) === null || _selectedObject4 === void 0 ? void 0 : _selectedObject4.layerID]) === null || _planData$sceneGraph2 === void 0 ? void 0 : _planData$sceneGraph2.items[(_selectedObject5 = selectedObject) === null || _selectedObject5 === void 0 ? void 0 : _selectedObject5.itemID];
1673
- if (isSelected && !isEmpty(_selectedItem2)) addItemToolObj();
1597
+ var _selectedItem = planData === null || planData === void 0 || (_planData$sceneGraph2 = planData.sceneGraph) === null || _planData$sceneGraph2 === void 0 || (_planData$sceneGraph2 = _planData$sceneGraph2.layers[(_selectedObject3 = selectedObject) === null || _selectedObject3 === void 0 ? void 0 : _selectedObject3.layerID]) === null || _planData$sceneGraph2 === void 0 ? void 0 : _planData$sceneGraph2.items[(_selectedObject4 = selectedObject) === null || _selectedObject4 === void 0 ? void 0 : _selectedObject4.itemID];
1598
+ if (isSelected && !isEmpty(_selectedItem)) addItemToolObj();
1674
1599
  if (bRotate) {
1675
1600
  _this2.setState({
1676
1601
  toolObj: toolObj
@@ -2169,7 +2094,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2169
2094
  _this2.context.itemsActions.setMoveStatus(false);
2170
2095
  _this2.context.itemsActions.setRotateStatus(false);
2171
2096
  bMoveUP = false;
2172
- bMirror = false;
2173
2097
  removeSnapBox();
2174
2098
  break;
2175
2099
  case 65:
@@ -2253,7 +2177,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2253
2177
  currentObject = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
2254
2178
  if (isUndefined(currentObject)) return;
2255
2179
  var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
2256
- refreshToolObject(selItem);
2257
2180
  var itemPos = currentObject.position.clone();
2258
2181
  toolObj.position.set(planData.plan.position.x + itemPos.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : planData.plan.position.y + currentObject.children[0].position.y, planData.plan.position.z + itemPos.z);
2259
2182
  scene3D.add(toolObj);
@@ -2598,14 +2521,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2598
2521
  }
2599
2522
  if (nextProps.state.scene !== this.props.state.scene || nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') !== this.props.state.doorStyle.get('name')) {
2600
2523
  var changedValues = diff(this.props.state.scene, nextProps.state.scene);
2601
- var changedValuesJS = changedValues.toJS();
2602
- var selectedItemID = layer.selected.items.size ? layer.selected.items.get(0) : null;
2603
- var selectedItem = selectedItemID ? layer.items.get(selectedItemID) : null;
2604
- var shouldRefreshSelectedToolObject = selectedItem && changedValuesJS.some(function (_ref2) {
2605
- var path = _ref2.path;
2606
- var modifiedPath = path.split('/');
2607
- return modifiedPath[1] === 'layers' && modifiedPath[2] === String(data.selectedLayer) && modifiedPath[3] === 'items' && modifiedPath[4] === String(selectedItemID) && modifiedPath[5] === 'mirrored';
2608
- });
2609
2524
  prepareSnapSpec(layer);
2610
2525
  var isInteractiveMove = nextProps.state.mode === MODE_DRAGGING_ITEM_3D || nextProps.state.mode === MODE_ROTATING_ITEM_3D || nextProps.state.mode === MODE_DRAWING_ITEM_3D || nextProps.state.mode === MODE_DRAGGING_HOLE_3D || nextProps.state.mode === MODE_IDLE_3D;
2611
2526
  if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') === this.props.state.doorStyle.get('name')) {
@@ -2638,11 +2553,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2638
2553
  var _this$state = this.state,
2639
2554
  toolObj = _this$state.toolObj,
2640
2555
  angleObj = _this$state.angleObj;
2641
- var _updateScene = updateScene(this.planData, nextProps.state.scene, this.props.state.scene, changedValuesJS, actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
2556
+ var _updateScene = updateScene(this.planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
2642
2557
  promise = _updateScene.promise;
2643
- if (shouldRefreshSelectedToolObject && this.refreshToolObject) {
2644
- this.refreshToolObject(selectedItem);
2645
- }
2646
2558
  self.setState();
2647
2559
  promise.then(function (p1Value) {
2648
2560
  self.setState({
package/es/constants.js CHANGED
@@ -79,7 +79,6 @@ export var END_LOADING = 'END_LOADING';
79
79
  export var TOGGLE_LOADING_CABINET = 'TOGGLE_LOADING_CABINET';
80
80
  export var EDIT_WIDTH = 'EDIT_WIDTH';
81
81
  export var DUPLICATE_SELECTED = 'DUPLICATE_SELECTED';
82
- export var TOGGLE_ITEM_MIRROR = 'TOGGLE_ITEM_MIRROR';
83
82
  export var REPLACE_ITEM = 'REPLACE_ITEM';
84
83
  export var SELECT_TOOL_DRAWING_ITEM = 'SELECT_TOOL_DRAWING_ITEM';
85
84
  export var SELECT_TOOL_DRAWING_ITEM_3D = 'SELECT_TOOL_DRAWING_ITEM_3D';
@@ -314,7 +313,6 @@ export var ITEMS_ACTIONS = {
314
313
  // SET_MOVE_STATUS,
315
314
  // SET_ROTATE_STATUS,
316
315
  DUPLICATE_SELECTED: DUPLICATE_SELECTED,
317
- TOGGLE_ITEM_MIRROR: TOGGLE_ITEM_MIRROR,
318
316
  EDIT_WIDTH: EDIT_WIDTH,
319
317
  TOGGLE_LOADING_CABINET: TOGGLE_LOADING_CABINET,
320
318
  END_LOADING: END_LOADING,
@@ -746,7 +744,6 @@ export var EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING'; //
746
744
  export var EXTERNAL_EVENT_CENTERING_2D = 'EXTERNAL_EVENT_CENTERING_2D';
747
745
  export var EXTERNAL_EVENT_DUPLICATE_ELEMENT = 'EXTERNAL_EVENT_DUPLICATE_ELEMENT';
748
746
  export var EXTERNAL_EVENT_DELETE_ELEMENT = 'EXTERNAL_EVENT_DELETE_ELEMENT';
749
- export var EXTERNAL_EVENT_MIRROR_ELEMENT = 'EXTERNAL_EVENT_MIRROR_ELEMENT';
750
747
  export var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE'; // update the element's attributes (distance, rotation...) in the property window
751
748
  export var EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
752
749
  export var EXTERNAL_EVENT_REPLACE_CABINET = 'EXTERNAL_EVENT_REPLACE_CABINET';
@@ -759,7 +756,6 @@ export var INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';
759
756
  export var INTERNAL_EVENT_DRAG_ELEMENT = 'INTERNAL_EVENT_DRAG_ELEMENT';
760
757
  export var INTERNAL_EVENT_DRAW_ELEMENT = 'INTERNAL_EVENT_DRAW_ELEMENT';
761
758
  export var INTERNAL_EVENT_ROTATE_ELEMENT = 'INTERNAL_EVENT_ROTATE_ELEMENT';
762
- export var INTERNAL_EVENT_MIRROR_ELEMENT = 'INTERNAL_EVENT_MIRROR_ELEMENT';
763
759
  export var INTERNAL_EVENT_REPLACE_CABINET = 'INTERNAL_EVENT_REPLACE_CABINET';
764
760
  export var INTERNAL_EVENT_START_DRAW_WALL = 'INTERNAL_EVENT_START_DRAW_WALL';
765
761
  export var INTERNAL_EVENT_TOGGLE_TO_ELEVATION = 'INTERNAL_EVENT_TOGGLE_TO_ELEVATION';
@@ -1,6 +1,6 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import { ARRAY_3D_MODES, DOORSTYLE_SCOPE_ALL, DOORSTYLE_SCOPE_MULTIPLE, DOORSTYLE_SCOPE_SINGLE, DEFAULT_MOLDING_PIECE_LENGTH, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_CENTERING_2D, EXTERNAL_EVENT_DELETE_ELEMENT, EXTERNAL_EVENT_DUPLICATE_ELEMENT, EXTERNAL_EVENT_MIRROR_ELEMENT, EXTERNAL_EVENT_LOAD_PROJECT, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_PROJECT_SETTING, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_ROTATE_PAN, EXTERNAL_EVENT_SET_FINISHING, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, EXTERNAL_EVENT_UPDATE_PROPERTY, INTERNAL_EVENT_ITEMS_CATALOG, INTERNAL_EVENT_SYNC_SCENE, MODE_ELEVATION_VIEW, MODE_IDLE, MODE_IDLE_3D } from "../../constants";
3
+ import { ARRAY_3D_MODES, DOORSTYLE_SCOPE_ALL, DOORSTYLE_SCOPE_MULTIPLE, DOORSTYLE_SCOPE_SINGLE, DEFAULT_MOLDING_PIECE_LENGTH, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_CENTERING_2D, EXTERNAL_EVENT_DELETE_ELEMENT, EXTERNAL_EVENT_DUPLICATE_ELEMENT, EXTERNAL_EVENT_LOAD_PROJECT, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_PROJECT_SETTING, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_ROTATE_PAN, EXTERNAL_EVENT_SET_FINISHING, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, EXTERNAL_EVENT_UPDATE_PROPERTY, INTERNAL_EVENT_ITEMS_CATALOG, INTERNAL_EVENT_SYNC_SCENE, MODE_ELEVATION_VIEW, MODE_IDLE, MODE_IDLE_3D } from "../../constants";
4
4
  import { isEmpty } from "../../utils/helper";
5
5
  import { mapExternalEventPayload } from "../../mappings/external-events/mapExternalEventPayload";
6
6
  import { ccdfMapper } from "../../mappings/external-events/mappers/ccdfMapper";
@@ -17,7 +17,7 @@ import { handleAddWall } from "./handlers.wall";
17
17
  import { handleAddHole } from "./handlers.hole";
18
18
  import { handleAddRoomShape } from "./handlers.roomShape";
19
19
  import { handleSetMolding } from "./handlers.molding";
20
- import { handleDuplicateElement, handleDeleteElement, handleMirrorElement } from "./handlers.elementOps";
20
+ import { handleDuplicateElement, handleDeleteElement } from "./handlers.elementOps";
21
21
  import { handleReplaceCabinet } from "./handlers.replaceCabinet";
22
22
  import { handleSyncScene } from "./handlers.syncScene";
23
23
  import { handleLoadProjectEvent } from "./handlers.loadProject";
@@ -46,95 +46,92 @@ function _handleExternalEvent() {
46
46
  layerId = state.getIn(['scene', 'selectedLayer']);
47
47
  layer = state.getIn(['scene', 'layers', layerId]);
48
48
  _t = evt === null || evt === void 0 ? void 0 : evt.type;
49
- _context.next = _t === EXTERNAL_EVENT_LOAD_PROJECT ? 2 : _t === EXTERNAL_EVENT_TOGGLE_TO_3D ? 4 : _t === EXTERNAL_EVENT_TOGGLE_TO_2D ? 5 : _t === EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 6 : _t === EXTERNAL_EVENT_ADD_WALL ? 7 : _t === EXTERNAL_EVENT_ADD_ITEM ? 8 : _t === EXTERNAL_EVENT_ADD_HOLE ? 10 : _t === EXTERNAL_EVENT_ROTATE_PAN ? 11 : _t === EXTERNAL_EVENT_MOVE_PAN ? 11 : _t === EXTERNAL_EVENT_NEW_PROJECT ? 12 : _t === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 13 : _t === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 15 : _t === EXTERNAL_EVENT_ZOOM_IN ? 16 : _t === EXTERNAL_EVENT_ZOOM_OUT ? 17 : _t === EXTERNAL_EVENT_CENTERING_2D ? 18 : _t === EXTERNAL_EVENT_UNDO ? 19 : _t === EXTERNAL_EVENT_REDO ? 20 : _t === EXTERNAL_EVENT_SET_MOLDING ? 21 : _t === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 23 : _t === EXTERNAL_EVENT_DELETE_ELEMENT ? 24 : _t === EXTERNAL_EVENT_MIRROR_ELEMENT ? 25 : _t === EXTERNAL_EVENT_PROJECT_SETTING ? 26 : _t === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 27 : _t === EXTERNAL_EVENT_UPDATE_PROPERTY ? 27 : _t === EXTERNAL_EVENT_REPLACE_CABINET ? 28 : _t === EXTERNAL_EVENT_SET_FINISHING ? 30 : _t === EXTERNAL_EVENT_SYNC_SCENE ? 31 : 32;
49
+ _context.next = _t === EXTERNAL_EVENT_LOAD_PROJECT ? 2 : _t === EXTERNAL_EVENT_TOGGLE_TO_3D ? 4 : _t === EXTERNAL_EVENT_TOGGLE_TO_2D ? 5 : _t === EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 6 : _t === EXTERNAL_EVENT_ADD_WALL ? 7 : _t === EXTERNAL_EVENT_ADD_ITEM ? 8 : _t === EXTERNAL_EVENT_ADD_HOLE ? 10 : _t === EXTERNAL_EVENT_ROTATE_PAN ? 11 : _t === EXTERNAL_EVENT_MOVE_PAN ? 11 : _t === EXTERNAL_EVENT_NEW_PROJECT ? 12 : _t === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 13 : _t === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 15 : _t === EXTERNAL_EVENT_ZOOM_IN ? 16 : _t === EXTERNAL_EVENT_ZOOM_OUT ? 17 : _t === EXTERNAL_EVENT_CENTERING_2D ? 18 : _t === EXTERNAL_EVENT_UNDO ? 19 : _t === EXTERNAL_EVENT_REDO ? 20 : _t === EXTERNAL_EVENT_SET_MOLDING ? 21 : _t === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 23 : _t === EXTERNAL_EVENT_DELETE_ELEMENT ? 24 : _t === EXTERNAL_EVENT_PROJECT_SETTING ? 25 : _t === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 26 : _t === EXTERNAL_EVENT_UPDATE_PROPERTY ? 26 : _t === EXTERNAL_EVENT_REPLACE_CABINET ? 27 : _t === EXTERNAL_EVENT_SET_FINISHING ? 29 : _t === EXTERNAL_EVENT_SYNC_SCENE ? 30 : 31;
50
50
  break;
51
51
  case 2:
52
52
  _context.next = 3;
53
53
  return handleLoadProjectEvent(props, state, evt, mapFromCCDFToCDS, updateProjectWithCDSList, ccdfMapper, mergeSameElements, addItemToCatalog);
54
54
  case 3:
55
- return _context.abrupt("continue", 32);
55
+ return _context.abrupt("continue", 31);
56
56
  case 4:
57
57
  handleToggleTo3D(props, MODE_IDLE_3D);
58
- return _context.abrupt("continue", 32);
58
+ return _context.abrupt("continue", 31);
59
59
  case 5:
60
60
  handleToggleTo2D(props, MODE_IDLE);
61
- return _context.abrupt("continue", 32);
61
+ return _context.abrupt("continue", 31);
62
62
  case 6:
63
63
  handleToggleToElevation(props, layer, MODE_ELEVATION_VIEW);
64
- return _context.abrupt("continue", 32);
64
+ return _context.abrupt("continue", 31);
65
65
  case 7:
66
66
  handleAddWall(props, state);
67
- return _context.abrupt("continue", 32);
67
+ return _context.abrupt("continue", 31);
68
68
  case 8:
69
69
  _context.next = 9;
70
70
  return handleAddItemEvent(props, state, evt === null || evt === void 0 ? void 0 : evt.payload, addItemToCatalog, isEmpty, ARRAY_3D_MODES);
71
71
  case 9:
72
- return _context.abrupt("continue", 32);
72
+ return _context.abrupt("continue", 31);
73
73
  case 10:
74
74
  handleAddHole(props, state, evt === null || evt === void 0 ? void 0 : evt.payload);
75
- return _context.abrupt("continue", 32);
75
+ return _context.abrupt("continue", 31);
76
76
  case 11:
77
77
  handleMoveAndRotatePan2D3D(evt.type, props, evt.payload, state);
78
- return _context.abrupt("continue", 32);
78
+ return _context.abrupt("continue", 31);
79
79
  case 12:
80
80
  handleNewProject(props);
81
- return _context.abrupt("continue", 32);
81
+ return _context.abrupt("continue", 31);
82
82
  case 13:
83
83
  _context.next = 14;
84
84
  return handleChangeDoorStyleEvent(props, state, layer, evt.payload, DOORSTYLE_SCOPE_SINGLE, DOORSTYLE_SCOPE_MULTIPLE, DOORSTYLE_SCOPE_ALL, INTERNAL_EVENT_ITEMS_CATALOG, mapFromCCDFToCDS, ccdfMapper, mergeSameElements, addItemToCatalog);
85
85
  case 14:
86
- return _context.abrupt("continue", 32);
86
+ return _context.abrupt("continue", 31);
87
87
  case 15:
88
88
  handleAddRoomShape(props, evt.payload);
89
- return _context.abrupt("continue", 32);
89
+ return _context.abrupt("continue", 31);
90
90
  case 16:
91
91
  handleZoomIn(props, state);
92
- return _context.abrupt("continue", 32);
92
+ return _context.abrupt("continue", 31);
93
93
  case 17:
94
94
  handleZoomOut(props, state);
95
- return _context.abrupt("continue", 32);
95
+ return _context.abrupt("continue", 31);
96
96
  case 18:
97
97
  handleCentering2D(props, state);
98
- return _context.abrupt("continue", 32);
98
+ return _context.abrupt("continue", 31);
99
99
  case 19:
100
100
  handleUndo(props);
101
- return _context.abrupt("continue", 32);
101
+ return _context.abrupt("continue", 31);
102
102
  case 20:
103
103
  handleRedo(props);
104
- return _context.abrupt("continue", 32);
104
+ return _context.abrupt("continue", 31);
105
105
  case 21:
106
106
  _context.next = 22;
107
107
  return handleSetMolding(props, loadMoldingSvg, evt.payload);
108
108
  case 22:
109
- return _context.abrupt("continue", 32);
109
+ return _context.abrupt("continue", 31);
110
110
  case 23:
111
111
  handleDuplicateElement(props, getElement, evt.payload, state);
112
- return _context.abrupt("continue", 32);
112
+ return _context.abrupt("continue", 31);
113
113
  case 24:
114
114
  handleDeleteElement(props, getElement, evt.payload, state);
115
- return _context.abrupt("continue", 32);
115
+ return _context.abrupt("continue", 31);
116
116
  case 25:
117
- handleMirrorElement(props, getElement, evt.payload, state);
118
- return _context.abrupt("continue", 32);
119
- case 26:
120
117
  handleProjectSetting(props, evt.payload, layer);
121
- return _context.abrupt("continue", 32);
122
- case 27:
118
+ return _context.abrupt("continue", 31);
119
+ case 26:
123
120
  handleUpdateSelectedElementsEvent(props, state, evt, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, updateAttributeOfSelectedElement, updatePropertyOfSelectedElement);
124
- return _context.abrupt("continue", 32);
125
- case 28:
126
- _context.next = 29;
121
+ return _context.abrupt("continue", 31);
122
+ case 27:
123
+ _context.next = 28;
127
124
  return handleReplaceCabinet(props, addItemToCatalog, evt === null || evt === void 0 ? void 0 : evt.payload, state);
125
+ case 28:
126
+ return _context.abrupt("continue", 31);
128
127
  case 29:
129
- return _context.abrupt("continue", 32);
130
- case 30:
131
128
  handleSetFinishing(props, state, evt.payload);
132
- return _context.abrupt("continue", 32);
133
- case 31:
129
+ return _context.abrupt("continue", 31);
130
+ case 30:
134
131
  console.log('*** catalog ***', props.catalog);
135
132
  handleSyncScene(props, state, layer, layerId, getMoldingDataOfScene2, computeSkinPanels, DEFAULT_MOLDING_PIECE_LENGTH, INTERNAL_EVENT_SYNC_SCENE);
136
- return _context.abrupt("continue", 32);
137
- case 32:
133
+ return _context.abrupt("continue", 31);
134
+ case 31:
138
135
  case "end":
139
136
  return _context.stop();
140
137
  }
@@ -1,4 +1,3 @@
1
- import { canMirrorCabinet } from "../../shared/domain/cabinet-mirror";
2
1
  export function handleDuplicateElement(props, getElement, payload, state) {
3
2
  var distElement = getElement(payload, state);
4
3
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
@@ -6,11 +5,4 @@ export function handleDuplicateElement(props, getElement, payload, state) {
6
5
  export function handleDeleteElement(props, getElement, payload, state) {
7
6
  var distElement = getElement(payload, state);
8
7
  if (distElement) props.projectActions.remove(distElement);
9
- }
10
- export function handleMirrorElement(props, getElement, payload, state) {
11
- var distElement = getElement(payload, state);
12
- if (!distElement || distElement.prototype !== 'items' || !canMirrorCabinet(distElement)) return;
13
- var layerID = state.getIn(['scene', 'selectedLayer']);
14
- var mirrored = typeof (payload === null || payload === void 0 ? void 0 : payload.mirrored) === 'boolean' ? payload.mirrored : null;
15
- props.itemsActions.toggleItemMirror(layerID, distElement.id, mirrored, props.onInternalEvent);
16
8
  }
@@ -4,10 +4,10 @@ import { mapAddItemEvent } from "./mappers/addItemMapper";
4
4
  import { mapChangeDoorStyleEvent } from "./mappers/changeDoorStyleMapper";
5
5
  import { mapLoadProjectEvent } from "./mappers/loadProjectMapper";
6
6
 
7
- /**
8
- * Main dispatcher for external event payload mapping.
9
- * Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
10
- * without changing the behavior of the existing 3D tool.
7
+ /**
8
+ * Main dispatcher for external event payload mapping.
9
+ * Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
10
+ * without changing the behavior of the existing 3D tool.
11
11
  */
12
12
  export function mapExternalEventPayload(evt, state, defaultTextures) {
13
13
  if (isEmpty(evt)) return null;
@@ -5,15 +5,15 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  import { ITEM_TYPE } from "../../../constants";
6
6
  import { isEmpty } from "../../../utils/helper";
7
7
 
8
- /**
9
- * Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
10
- *
11
- * Converts the new assets3d payload shape into the legacy structure_json format
12
- * expected by the existing 3D tool.
13
- *
14
- * @param {Object} evt.payload External event payload
15
- * @param {Immutable.Map} state Planner state
16
- * @returns {Object|null} Updated event (or null when payload is empty)
8
+ /**
9
+ * Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
10
+ *
11
+ * Converts the new assets3d payload shape into the legacy structure_json format
12
+ * expected by the existing 3D tool.
13
+ *
14
+ * @param {Object} evt.payload External event payload
15
+ * @param {Immutable.Map} state Planner state
16
+ * @returns {Object|null} Updated event (or null when payload is empty)
17
17
  */
18
18
  export function mapAddItemEvent(orgEvtPayload, state) {
19
19
  var _evtPayload, _evtPayload3;
@@ -70,7 +70,7 @@ export function ccdfMapper(ccdf_list, layer) {
70
70
  });
71
71
  }
72
72
  // make structure_json
73
- if (cd.category === 'cabinet' || cd.category === 'Base') structure_json = {
73
+ if (cd.category === 'cabinet' || cd.category === 'Base' || cd.category === 'Wall' || cd.category === 'Tall') structure_json = {
74
74
  tempPlaceholders: tempPlaceholders
75
75
  };else structure_json = structure;
76
76
  // make cabinet definition using structure_json and catalog