kitchen-simulator 11.28.0 → 11.28.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 (85) hide show
  1. package/es/actions/items-actions.js +12 -1
  2. package/es/assets/img/svg/3d_item_move.svg +9 -105
  3. package/es/assets/img/svg/3d_item_rotation.svg +3 -75
  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 +6 -2
  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 +12 -127
  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 +4 -0
  26. package/es/catalog/utils/item-loader.js +18 -8
  27. package/es/class/item.js +32 -2
  28. package/es/components/viewer2d/item.js +139 -125
  29. package/es/components/viewer2d/viewer2d.js +5 -2
  30. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  31. package/es/components/viewer3d/scene-creator.js +18 -0
  32. package/es/components/viewer3d/viewer3d.js +137 -49
  33. package/es/constants.js +4 -0
  34. package/es/events/external/handleExternalEvent.js +36 -33
  35. package/es/events/external/handlers.elementOps.js +8 -0
  36. package/es/mappings/external-events/mapExternalEventPayload.js +4 -4
  37. package/es/mappings/external-events/mappers/addItemMapper.js +9 -9
  38. package/es/models.js +4 -0
  39. package/es/reducers/items-reducer.js +8 -1
  40. package/es/shared/domain/asset/sanitize-asset-url.js +5 -5
  41. package/es/shared/domain/cabinet-mirror.js +7 -0
  42. package/es/utils/skinPanelEngine.js +14 -14
  43. package/lib/actions/items-actions.js +12 -0
  44. package/lib/assets/img/svg/3d_item_move.svg +9 -105
  45. package/lib/assets/img/svg/3d_item_rotation.svg +3 -75
  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 +6 -2
  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 +12 -127
  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 +4 -0
  68. package/lib/catalog/utils/item-loader.js +18 -8
  69. package/lib/class/item.js +31 -1
  70. package/lib/components/viewer2d/item.js +138 -124
  71. package/lib/components/viewer2d/viewer2d.js +5 -2
  72. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  73. package/lib/components/viewer3d/scene-creator.js +18 -0
  74. package/lib/components/viewer3d/viewer3d.js +137 -49
  75. package/lib/constants.js +8 -4
  76. package/lib/events/external/handleExternalEvent.js +34 -31
  77. package/lib/events/external/handlers.elementOps.js +9 -0
  78. package/lib/mappings/external-events/mapExternalEventPayload.js +4 -4
  79. package/lib/mappings/external-events/mappers/addItemMapper.js +9 -9
  80. package/lib/models.js +4 -0
  81. package/lib/reducers/items-reducer.js +7 -0
  82. package/lib/shared/domain/asset/sanitize-asset-url.js +5 -5
  83. package/lib/shared/domain/cabinet-mirror.js +13 -0
  84. package/lib/utils/skinPanelEngine.js +14 -14
  85. package/package.json +1 -1
@@ -527,6 +527,8 @@ function replaceObject(modifiedPath, layer, planData, actions, sceneData, oldSce
527
527
  getDistances(layer, item);
528
528
  }, 50);
529
529
  removeSelItemMesh(tmpMoldings, item, planData, mode);
530
+ } else if (modifiedPath[keyIndex] == 'mirrored') {
531
+ applyMirrorToItem3D(item3D, item.mirrored);
530
532
  } else if (modifiedPath[keyIndex] == 'selected') {
531
533
  var itemType = !!catalog.elements[item.type] ? catalog.elements[item.type].type : catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(item.type)].type;
532
534
  if (value == false) {
@@ -2247,6 +2249,22 @@ function updateItem(sceneData, oldSceneData, planData, layer, itemID, difference
2247
2249
  if (!mesh) return null;
2248
2250
  return catalog.getElement(item.type).updateRender3D(item, layer, sceneData, mesh, oldItem, differences, selfDestroy, selfBuild);
2249
2251
  }
2252
+ function applyMirrorToItem3D(item3D, mirrored) {
2253
+ var _item3D$children, _object$children;
2254
+ var object = item3D === null || item3D === void 0 || (_item3D$children = item3D.children) === null || _item3D$children === void 0 ? void 0 : _item3D$children[0];
2255
+ if (!object || !object.scale) return;
2256
+ var shouldMirror = mirrored === true;
2257
+ var isCurrentlyMirrored = object.scale.x < 0;
2258
+ if (shouldMirror !== isCurrentlyMirrored) object.scale.x *= -1;
2259
+ var transformGizmo = (_object$children = object.children) === null || _object$children === void 0 ? void 0 : _object$children.find(function (child) {
2260
+ return child.name === 'TransformGizmo';
2261
+ });
2262
+ if (transformGizmo !== null && transformGizmo !== void 0 && transformGizmo.scale) {
2263
+ var sign = object.scale.x < 0 ? -1 : 1;
2264
+ transformGizmo.scale.x = sign * Math.abs(transformGizmo.scale.x);
2265
+ }
2266
+ object.userData.mirrored = shouldMirror;
2267
+ }
2250
2268
 
2251
2269
  // Apply interact function to children of an Object3D
2252
2270
  function applyInteract(object, interactFunction) {
@@ -31,11 +31,13 @@ var _RGBELoader = require("three/examples/jsm/loaders/RGBELoader");
31
31
  var _cameraControls = _interopRequireDefault(require("camera-controls"));
32
32
  var _objectsUtils = require("../../utils/objects-utils");
33
33
  var _utils = require("../viewer2d/utils");
34
+ var _cabinetMirror = require("../../shared/domain/cabinet-mirror");
34
35
  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); }
35
36
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36
37
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
37
38
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
38
39
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
40
+ var ICON_SPACING = 0;
39
41
  _cameraControls["default"].install({
40
42
  THREE: Three
41
43
  });
@@ -350,6 +352,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
350
352
  var bRotate = false;
351
353
  var bMove = false;
352
354
  var bMoveUP = false;
355
+ var bMirror = false;
353
356
  /** Transformation matrix of grid */
354
357
  var gridMatrix = new Three.Matrix4();
355
358
  var rayDirection = new Three.Vector3();
@@ -1051,35 +1054,73 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1051
1054
  var firstMove = false;
1052
1055
  var prevX, prevY;
1053
1056
  var selObj = null;
1057
+ var TOOL_CANVAS_WIDTH = 100;
1058
+ var TOOL_CANVAS_TWO_BUTTON_HEIGHT = 200;
1059
+ var TOOL_CANVAS_THREE_BUTTON_HEIGHT = 300;
1060
+ var TOOL_BUTTON_RADIUS = 40;
1061
+ var TOOL_BUTTONS_SPACING = 20;
1062
+ var TOOL_HIT_RADIUS = 20;
1063
+ var getItemMirrored = function getItemMirrored(item) {
1064
+ return (item === null || item === void 0 ? void 0 : item.mirrored) === true;
1065
+ };
1066
+ var canMirrorItem = function canMirrorItem(item) {
1067
+ return (0, _cabinetMirror.canMirrorCabinet)(item);
1068
+ };
1069
+ var toolTexture = null;
1054
1070
  var createToolObject = function createToolObject() {
1071
+ var mirrorActive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1072
+ var canMirror = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1073
+ var buttons = [{
1074
+ src: '/assets/img/svg/3d_item_rotation.svg',
1075
+ y: 50
1076
+ }, {
1077
+ src: '/assets/img/svg/3d_item_move.svg',
1078
+ y: 150
1079
+ }, canMirror && {
1080
+ src: '/assets/img/svg/invert.svg',
1081
+ y: 250,
1082
+ flip: !mirrorActive
1083
+ }].filter(Boolean);
1055
1084
  var canvas = document.createElement('canvas');
1056
- canvas.width = 100;
1057
- canvas.height = 200;
1058
- canvas.style.width = 50 + 'px';
1059
- canvas.style.height = 100 + 'px';
1085
+ canvas.width = TOOL_CANVAS_WIDTH;
1086
+ canvas.height = canMirror ? TOOL_CANVAS_THREE_BUTTON_HEIGHT : TOOL_CANVAS_TWO_BUTTON_HEIGHT;
1087
+ canvas.style.width = '50px';
1088
+ canvas.style.height = canMirror ? '150px' : '100px';
1060
1089
  var ctx = canvas.getContext('2d');
1061
- ctx.fillStyle = '#FFFFFF';
1062
- ctx.strokeStyle = '#000000';
1063
- ctx.beginPath();
1064
- ctx.arc(50, 50, 40, 0, 4 * Math.PI);
1065
- ctx.fill();
1066
- ctx.stroke();
1067
- var img1 = new Image();
1068
- img1.crossOrigin = 'anonymous';
1069
- img1.src = '/assets/img/svg/3d_item_rotation.svg';
1070
- img1.onload = function () {
1071
- ctx.drawImage(img1, 16, 16, 68, 68);
1090
+ var drawShadowCircle = function drawShadowCircle(x, y, radius) {
1091
+ ctx.save();
1092
+ ctx.shadowColor = 'rgba(0, 0, 0, 0.16)';
1093
+ ctx.shadowBlur = 2.4;
1094
+ ctx.shadowOffsetX = 0;
1095
+ ctx.shadowOffsetY = -1;
1096
+ ctx.fillStyle = '#FFFFFF';
1097
+ ctx.beginPath();
1098
+ ctx.arc(x, y, radius, 0, 2 * Math.PI);
1099
+ ctx.fill();
1100
+ ctx.restore();
1072
1101
  };
1073
- ctx.beginPath();
1074
- ctx.arc(50, 150, 40, 0, 4 * Math.PI);
1075
- ctx.fill();
1076
- ctx.stroke();
1077
- var img2 = new Image();
1078
- img2.crossOrigin = 'anonymous';
1079
- img2.src = '/assets/img/svg/3d_item_move.svg';
1080
- img2.onload = function () {
1081
- ctx.drawImage(img2, 16, 116, 68, 68);
1102
+ var drawIcon = function drawIcon(_ref) {
1103
+ var src = _ref.src,
1104
+ y = _ref.y,
1105
+ flip = _ref.flip;
1106
+ drawShadowCircle(50, y, TOOL_BUTTON_RADIUS);
1107
+ var img = new Image();
1108
+ img.crossOrigin = 'anonymous';
1109
+ img.src = src;
1110
+ img.onload = function () {
1111
+ ctx.save();
1112
+ if (flip) {
1113
+ ctx.translate(100, 0);
1114
+ ctx.scale(-1, 1);
1115
+ }
1116
+ ctx.imageSmoothingEnabled = true;
1117
+ ctx.imageSmoothingQuality = 'high';
1118
+ ctx.drawImage(img, 25, y - 25, 50, 50);
1119
+ ctx.restore();
1120
+ if (toolTexture) toolTexture.needsUpdate = true;
1121
+ };
1082
1122
  };
1123
+ buttons.forEach(drawIcon);
1083
1124
  return canvas;
1084
1125
  };
1085
1126
  var clockWise = true;
@@ -1118,7 +1159,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1118
1159
  lastAngle = rotate;
1119
1160
  return canvas;
1120
1161
  };
1121
- var toolTexture = new Three.Texture(createToolObject());
1162
+ toolTexture = new Three.Texture(createToolObject(false, false));
1122
1163
  toolTexture.needsUpdate = true;
1123
1164
  var toolObj = new Three.Sprite(new Three.SpriteMaterial({
1124
1165
  map: toolTexture,
@@ -1129,6 +1170,15 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1129
1170
  toolObj.scale.set(20, 40, 20);
1130
1171
  toolObj.renderOrder = 3;
1131
1172
  toolObj.name = 'toolObj';
1173
+ toolObj.userData.canMirror = false;
1174
+ var refreshToolObject = function refreshToolObject(item) {
1175
+ var showMirror = canMirrorItem(item);
1176
+ toolTexture.image = createToolObject(getItemMirrored(item), showMirror);
1177
+ toolTexture.needsUpdate = true;
1178
+ toolObj.scale.set(20, showMirror ? 60 : 40, 20);
1179
+ toolObj.userData.canMirror = showMirror;
1180
+ };
1181
+ this.refreshToolObject = refreshToolObject;
1132
1182
  var angleTexture = new Three.Texture(createAngleObject(0));
1133
1183
  angleTexture.needsUpdate = true;
1134
1184
  var angleObj = new Three.Sprite(new Three.SpriteMaterial({
@@ -1206,6 +1256,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1206
1256
  }
1207
1257
  };
1208
1258
  this.mouseDownEvent = function (event) {
1259
+ var _selectedObject;
1209
1260
  gridPlanOrigin = gridPlane.position;
1210
1261
  gridMatrix.copy(gridPlane.matrixWorld).invert();
1211
1262
  var altitude = 0;
@@ -1234,6 +1285,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1234
1285
  * 1 - move up/down
1235
1286
  * 2 - move x/y
1236
1287
  * 3 - camera rotate
1288
+ * 4 - mirror
1237
1289
  */
1238
1290
  var transflag = 3;
1239
1291
  raycaster.setFromCamera(mouse, camera);
@@ -1247,20 +1299,23 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1247
1299
  var intersects = raycaster.intersectObjects(meshes, true);
1248
1300
  var toolIntersects = raycaster.intersectObjects([toolObj], true);
1249
1301
 
1250
- // This code is excuted when click the tool object(rotation or move icon).
1302
+ // This code is excuted when click the tool object(rotation, move or mirror icon).
1251
1303
  if (toolIntersects.length > 0) {
1252
1304
  updateSelectedObject();
1253
- // it determines whether mouse is over on rotation icon or move icon.
1254
- var distance = Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - 0.25) * 100, 2));
1255
- // move icon selected
1256
- if (distance <= 20) {
1305
+ var toolHeight = toolObj.userData.canMirror ? TOOL_CANVAS_THREE_BUTTON_HEIGHT : TOOL_CANVAS_TWO_BUTTON_HEIGHT;
1306
+ var yScale = toolHeight / 2;
1307
+ var distanceFromToolButton = function distanceFromToolButton(centerY) {
1308
+ return Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - centerY) * yScale, 2));
1309
+ };
1310
+ var moveCenter = toolObj.userData.canMirror ? 0.5 : 0.25;
1311
+ var rotateCenter = toolObj.userData.canMirror ? 5 / 6 : 0.75;
1312
+ var mirrorCenter = 1 / 6;
1313
+ if (toolObj.userData.canMirror && distanceFromToolButton(mirrorCenter) <= TOOL_HIT_RADIUS) {
1314
+ transflag = 4;
1315
+ } else if (distanceFromToolButton(moveCenter) <= TOOL_HIT_RADIUS) {
1257
1316
  transflag = 2;
1258
- } else {
1259
- distance = Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - 0.75) * 100, 2));
1260
- // rotation icon selected
1261
- if (distance <= 20) {
1262
- transflag = 0;
1263
- }
1317
+ } else if (distanceFromToolButton(rotateCenter) <= TOOL_HIT_RADIUS) {
1318
+ transflag = 0;
1264
1319
  }
1265
1320
  }
1266
1321
  if (intersects.length > 0) {
@@ -1279,6 +1334,19 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1279
1334
  }
1280
1335
  }
1281
1336
  if (_this2.props.state.mode == _constants.MODE_DRAWING_ITEM_3D) return;
1337
+ if (isSelected && transflag == 4 && (_selectedObject = selectedObject) !== null && _selectedObject !== void 0 && _selectedObject.itemID) {
1338
+ var _this2$props$state$sc;
1339
+ 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);
1340
+ if (canMirrorItem(selectedItem)) {
1341
+ var mirrored = selectedItem.mirrored !== true;
1342
+ var mirroredItem = selectedItem.set('mirrored', mirrored);
1343
+ refreshToolObject(mirroredItem);
1344
+ _this2.context.itemsActions.toggleItemMirror(selectedObject.layerID, selectedObject.itemID, mirrored, _this2.props.onInternalEvent);
1345
+ cameraControls.mouseButtons.left = _cameraControls["default"].ACTION.NONE;
1346
+ bMirror = true;
1347
+ }
1348
+ return;
1349
+ }
1282
1350
  if (isSelected) {
1283
1351
  !_this2.props.downloadFlag && _this2.props.setToolbar('');
1284
1352
  if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
@@ -1297,13 +1365,13 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1297
1365
  }
1298
1366
  if (selectedObject !== undefined) {
1299
1367
  // get selected object from planData.sceneGraph
1300
- var selectedItem = null;
1368
+ var _selectedItem = null;
1301
1369
  switch (true) {
1302
1370
  case 'itemID' in selectedObject:
1303
- selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1371
+ _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1304
1372
  break;
1305
1373
  case 'holeID' in selectedObject:
1306
- selectedItem = planData.sceneGraph.layers[selectedObject.layerID].holes[selectedObject.holeID];
1374
+ _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].holes[selectedObject.holeID];
1307
1375
  break;
1308
1376
  default:
1309
1377
  break;
@@ -1322,7 +1390,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1322
1390
  offsetX: event.offsetX - 50,
1323
1391
  offsetY: event.offsetY
1324
1392
  }, alti);
1325
- if ((0, _util.isUndefined)(selectedItem)) return;
1393
+ if ((0, _util.isUndefined)(_selectedItem)) return;
1326
1394
  var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1327
1395
  lastAngle = 0;
1328
1396
  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);
@@ -1351,7 +1419,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1351
1419
  scene3D.remove(toolObj);
1352
1420
  }
1353
1421
  for (_i1 = 0; _i1 < intersects.length; _i1++) {
1354
- if (selectedItem != undefined && intersects[_i1].object.parent && intersects[_i1].object.parent.parent.userData.itemId === selectedItem.userData.itemId) selectedFlag = true;
1422
+ if (_selectedItem != undefined && intersects[_i1].object.parent && intersects[_i1].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) selectedFlag = true;
1355
1423
  }
1356
1424
  if (selectedFlag || toolIntersects.length > 0 && !(0, _helper.isElevationView)(mode)) {
1357
1425
  cameraControls.mouseButtons.left = _cameraControls["default"].ACTION.NONE;
@@ -1368,18 +1436,24 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1368
1436
  }
1369
1437
  };
1370
1438
  this.mouseUpEvent = function (event) {
1371
- var _selectedObject;
1439
+ var _selectedObject2;
1372
1440
  var internalType = ''; // internalEvent type - select/drag/draw
1373
1441
  var selectedElement; // internalEvent data
1374
1442
  firstMove = 0;
1375
1443
  var altitude = 0;
1376
- var curLayer = _this2.props.state.scene.getIn(['layers', (_selectedObject = selectedObject) === null || _selectedObject === void 0 ? void 0 : _selectedObject.layerID]);
1444
+ var curLayer = _this2.props.state.scene.getIn(['layers', (_selectedObject2 = selectedObject) === null || _selectedObject2 === void 0 ? void 0 : _selectedObject2.layerID]);
1377
1445
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1378
1446
  var properties = allItemRect.cur.itemInfo.properties;
1379
1447
  altitude = properties.getIn(['altitude', '_length']);
1380
1448
  var unit = properties.getIn(['altitude', '_unit']) || 'in';
1381
1449
  altitude = (0, _convertUnitsLite.convert)(altitude).from(unit).to(_this2.props.state.scene.unit);
1382
1450
  }
1451
+ if (bMirror) {
1452
+ bMirror = false;
1453
+ cameraControls.mouseButtons.left = _cameraControls["default"].ACTION.ROTATE;
1454
+ event.preventDefault();
1455
+ return;
1456
+ }
1383
1457
  scene3D.remove(angleObj);
1384
1458
  scene3D.remove(toolObj);
1385
1459
  if (!_this2.props.downloadFlag && !_this2.props.state.mode.includes('ING')) {
@@ -1488,10 +1562,11 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1488
1562
  }
1489
1563
  gridMatrix.copy(gridPlane.matrixWorld).invert();
1490
1564
  var addItemToolObj = function addItemToolObj() {
1491
- var _planData$sceneGraph, _selectedObject2, _intersects$_i;
1492
- 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];
1565
+ var _planData$sceneGraph, _selectedObject3, _intersects$_i;
1566
+ 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];
1493
1567
  if ((0, _util.isUndefined)(selectedItem)) return;
1494
1568
  selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1569
+ refreshToolObject(selectedElement);
1495
1570
  var itemPos = selectedItem.position.clone();
1496
1571
  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) {
1497
1572
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
@@ -1591,7 +1666,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1591
1666
  selectedObj = allItemRect.cur;
1592
1667
  }
1593
1668
  } else {
1594
- var _planData$sceneGraph2, _selectedObject3, _selectedObject4;
1669
+ var _planData$sceneGraph2, _selectedObject4, _selectedObject5;
1595
1670
  (0, _sceneCreator.visibleTransformBox)(false);
1596
1671
  var alti = 0;
1597
1672
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
@@ -1601,8 +1676,8 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1601
1676
  alti = (0, _convertUnitsLite.convert)(alti).from(_unit2).to(_this2.props.state.scene.unit);
1602
1677
  }
1603
1678
  getPoint(event, alti);
1604
- 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];
1605
- if (isSelected && !(0, _helper.isEmpty)(_selectedItem)) addItemToolObj();
1679
+ 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];
1680
+ if (isSelected && !(0, _helper.isEmpty)(_selectedItem2)) addItemToolObj();
1606
1681
  if (bRotate) {
1607
1682
  _this2.setState({
1608
1683
  toolObj: toolObj
@@ -2101,6 +2176,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2101
2176
  _this2.context.itemsActions.setMoveStatus(false);
2102
2177
  _this2.context.itemsActions.setRotateStatus(false);
2103
2178
  bMoveUP = false;
2179
+ bMirror = false;
2104
2180
  removeSnapBox();
2105
2181
  break;
2106
2182
  case 65:
@@ -2184,6 +2260,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2184
2260
  currentObject = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
2185
2261
  if ((0, _util.isUndefined)(currentObject)) return;
2186
2262
  var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
2263
+ refreshToolObject(selItem);
2187
2264
  var itemPos = currentObject.position.clone();
2188
2265
  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);
2189
2266
  scene3D.add(toolObj);
@@ -2528,6 +2605,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2528
2605
  }
2529
2606
  if (nextProps.state.scene !== this.props.state.scene || nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') !== this.props.state.doorStyle.get('name')) {
2530
2607
  var changedValues = (0, _immutablediff["default"])(this.props.state.scene, nextProps.state.scene);
2608
+ var changedValuesJS = changedValues.toJS();
2609
+ var selectedItemID = layer.selected.items.size ? layer.selected.items.get(0) : null;
2610
+ var selectedItem = selectedItemID ? layer.items.get(selectedItemID) : null;
2611
+ var shouldRefreshSelectedToolObject = selectedItem && changedValuesJS.some(function (_ref2) {
2612
+ var path = _ref2.path;
2613
+ var modifiedPath = path.split('/');
2614
+ return modifiedPath[1] === 'layers' && modifiedPath[2] === String(data.selectedLayer) && modifiedPath[3] === 'items' && modifiedPath[4] === String(selectedItemID) && modifiedPath[5] === 'mirrored';
2615
+ });
2531
2616
  prepareSnapSpec(layer);
2532
2617
  var isInteractiveMove = nextProps.state.mode === _constants.MODE_DRAGGING_ITEM_3D || nextProps.state.mode === _constants.MODE_ROTATING_ITEM_3D || nextProps.state.mode === _constants.MODE_DRAWING_ITEM_3D || nextProps.state.mode === _constants.MODE_DRAGGING_HOLE_3D || nextProps.state.mode === _constants.MODE_IDLE_3D;
2533
2618
  if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') === this.props.state.doorStyle.get('name')) {
@@ -2560,8 +2645,11 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2560
2645
  var _this$state = this.state,
2561
2646
  toolObj = _this$state.toolObj,
2562
2647
  angleObj = _this$state.angleObj;
2563
- var _updateScene = (0, _sceneCreator.updateScene)(this.planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
2648
+ var _updateScene = (0, _sceneCreator.updateScene)(this.planData, nextProps.state.scene, this.props.state.scene, changedValuesJS, actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
2564
2649
  promise = _updateScene.promise;
2650
+ if (shouldRefreshSelectedToolObject && this.refreshToolObject) {
2651
+ this.refreshToolObject(selectedItem);
2652
+ }
2565
2653
  self.setState();
2566
2654
  promise.then(function (p1Value) {
2567
2655
  self.setState({
package/lib/constants.js CHANGED
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.END_DRAGGING_VERTEX = exports.END_DRAGGING_LINE = exports.END_DRAGGING_ITEM_3D = exports.END_DRAGGING_ITEM = exports.END_DRAGGING_HOLE_3D = exports.END_DRAGGING_HOLE = exports.END_CREATING_HOLE = exports.END_CREATING_CABINET = exports.ELEVATION_VIEW_TITLE = exports.ELEVATION_VIEW_RIGHT = exports.ELEVATION_VIEW_LEFT = exports.ELEVATION_VIEW_KEYWORD = exports.ELEVATION_VIEW_FRONT = exports.ELEVATION_VIEW_BACK = exports.ELEVATION_VIEW = exports.ELEMENT_VERTEX = exports.ELEMENT_LINE = exports.ELEMENT_ITEM = exports.ELEMENT_HOLE = exports.ELEMENT_AREA = exports.EDIT_WIDTH = exports.EDIT = exports.DUPLICATE_SELECTED = exports.DOORSTYLE_SCOPE_SINGLE = exports.DOORSTYLE_SCOPE_MULTIPLE = exports.DOORSTYLE_SCOPE_ALL = exports.DISTANCE_MEASUREMENT_LINE_COLOR = exports.DISTANCE_EPSILON = exports.DIFFERENT_VALUES_PATH_LENGTH = exports.DELTA = exports.DEFAULT_MOLDING_PIECE_LENGTH = exports.DEFAULT_INTERIOR_TEXTURE = exports.DEFAULT_FONT_FAMILY = exports.DEFAULT_DOOR_HANDLE_TEXTURE_URL = exports.DECIMAL_PLACES_3 = exports.DECIMAL_PLACES_2 = exports.DASH_LINE_COLOR = exports.CREATE_ROOM_WITH_SHAPE = exports.COPY_PROPERTIES = exports.CLIENTS_NAME = exports.CHANGE_WINDOW_DOOR_MEASURE = exports.CHANGE_WALL_LENGTH_MEASURE = exports.CHANGE_WALL_CABINET_MEASURE = exports.CHANGE_MEASUREMENT_UNIT = exports.CHANGE_CATALOG_PAGE = exports.CHANGE_BASE_CABINET_MEASURE = exports.CEIL_UNITS_LENGTH = exports.BROWN_COLOR = exports.BOTTOM_MOLDING_LOCATION = exports.BOTTOM = exports.BG_COLOR_OVERLAY = exports.BG_COLOR_HOVER = exports.BG_COLOR_1 = exports.BG_COLOR_0 = exports.BEGIN_UPLOADING_IMAGE = exports.BEGIN_ROTATING_ITEM_3D = exports.BEGIN_ROTATING_ITEM = exports.BEGIN_FITTING_IMAGE = exports.BEGIN_DRAWING_LINE = exports.BEGIN_DRAGGING_VERTEX = exports.BEGIN_DRAGGING_LINE = exports.BEGIN_DRAGGING_ITEM_3D = exports.BEGIN_DRAGGING_ITEM = exports.BEGIN_DRAGGING_HOLE_3D = exports.BEGIN_DRAGGING_HOLE = exports.BASE_ITEM_MEASUREMENT_LINE_COLOR = exports.BASE_CABINET_LAYOUTPOS = exports.BACK_DIST_ANG = exports.ATT_VERTEXT_TWO = exports.ATT_VERTEXT_ONE = exports.ATT_LINE_LENGTH = exports.ATT_ITEM_ROTATION = exports.ATT_ITEM_POS = exports.ATT_HOLE_OFFSET_B = exports.ATT_HOLE_OFFSET_A = exports.ARROW_TEXT_FORECOLOR = exports.ARROW_TEXT_FONTFACE = exports.ARROW_TEXT_BACKCOLOR = exports.ARROW_COLOR = exports.ARRAY_ELEVATION_VIEW_MODES = exports.ARRAY_3D_MODES = exports.AREA_ACTIONS = exports.API_SERVER_URL = exports.ANIMATE_STEP_MIN = exports.ANIMATE_STEP_MAX = exports.ANIMATE_OBJECT_OPEN_DOOR_ROTATION_UNIT = exports.ANIMATE_OBJECT = exports.ALTERATE_STATE = exports.ADD_VERTICAL_GUIDE = exports.ADD_TO_GROUP = exports.ADD_LAYER = exports.ADD_HORIZONTAL_GUIDE = exports.ADD_GROUP_FROM_SELECTED = exports.ADD_GROUP = exports.ADD_ELEMENT_TO_CATALOG = exports.ADD_CIRCULAR_GUIDE = exports.ADD_CABINETS = exports.ADD_APPLIANCES = exports.ACCESSORIES_LAYOUTPOS = exports.ACCENT_COLOR = void 0;
7
- exports.MODE_DRAGGING_HOLE_3D = exports.MODE_DRAGGING_HOLE = exports.MODE_CONFIGURING_PROJECT = exports.MODE_BACK_ELEVATION_VIEW = exports.MODE_3D_VIEW = exports.MODE_3D_FIRST_PERSON = exports.MODE_2D_ZOOM_OUT = exports.MODE_2D_ZOOM_IN = exports.MODE_2D_PAN = exports.MODE = exports.MIN_ANGLE_DISALLOW_DRAW_WALL = exports.MIDDLE_MOLDING_LOCATION = exports.MEPSILON = exports.MAX_ZOOM_IN_SCALE = exports.MAX_ANGLE_SCALE = exports.MAKE_FLOOR_PLAN = exports.LOGOUT = exports.LOGIN_SUCCESS = exports.LOGIN_ERROR = exports.LOCAL_STORAGE_TOKEN_VALUE = exports.LOCAL_STORAGE_TOKEN_NAME = exports.LOCAL_STORAGE_ORIGINAL_TOKEN = exports.LOCAL_STORAGE_CUSTOMER_INFO = exports.LOCAL_STORAGE_CART_ACTION = exports.LOAD_PROJECT = exports.LIST_QUANTITIES = exports.LIST_PARTS = exports.LINE_THICKNESS = exports.LINE_ACTIONS = exports.LEFT_DIST_ANG = exports.LEFT = exports.LABEL_COLOR = exports.KITCHEN_KONFIGURATOR = exports.KEYBOARD_BUTTON_CODE = exports.ITEM_TYPE = exports.ITEM_MOVE_UP = exports.ITEMS_ACTIONS = exports.INVERT = exports.INTERNAL_EVENT_UNSELECT_ALL = exports.INTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.INTERNAL_EVENT_SYNC_SCENE = exports.INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = exports.INTERNAL_EVENT_REPLACE_CABINET = exports.INTERNAL_EVENT_ITEMS_CATALOG = exports.INTERNAL_EVENT_DRAW_ELEMENT = exports.INTERNAL_EVENT_DRAG_ELEMENT = exports.INSTALLATION_TYPE_SKU_SUFFIX = exports.INSTALLATION_TYPE_NAME = exports.INSTALLATION_SUFFIX_TYPE = exports.INIT_CATALOG = exports.HOLE_NAMES = exports.HOLE_ACTIONS = exports.HDR_URLS = exports.HAS_LOADINGBAR = exports.GROUP_TRANSLATE = exports.GROUP_ROTATE = exports.GROUP_ACTIONS = exports.GO_BACK_TO_CATALOG_PAGE = exports.FRONT_DIST_ANG = exports.FINISHING_TYPE = exports.FINISHING_TOUCH = exports.EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_IN = exports.EXTERNAL_EVENT_UPDATE_PROPERTY = exports.EXTERNAL_EVENT_UPDATE_ATTRIBUTE = exports.EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.EXTERNAL_EVENT_TOGGLE_TO_3D = exports.EXTERNAL_EVENT_TOGGLE_TO_2D = exports.EXTERNAL_EVENT_SYNC_SCENE = exports.EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_FINISHING = exports.EXTERNAL_EVENT_ROTATE_PAN = exports.EXTERNAL_EVENT_REPLACE_CABINET = exports.EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_NEW_PROJECT = exports.EXTERNAL_EVENT_MOVE_PAN = exports.EXTERNAL_EVENT_LOAD_PROJECT = exports.EXTERNAL_EVENT_DUPLICATE_ELEMENT = exports.EXTERNAL_EVENT_DELETE_ELEMENT = exports.EXTERNAL_EVENT_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_ADD_WALL = exports.EXTERNAL_EVENT_ADD_ROOM_SHAPE = exports.EXTERNAL_EVENT_ADD_ITEM = exports.EXTERNAL_EVENT_ADD_HOLE = exports.ERROR_DATABASE = exports.EPSILON = exports.END_UPLOADING_IMAGE = exports.END_ROTATING_ITEM_3D = exports.END_ROTATING_ITEM = exports.END_LOADING = exports.END_FITTING_IMAGE = exports.END_DRAWING_LINE = exports.END_DRAWING_ITEM = exports.END_DRAWING_HOLE_3D = exports.END_DRAWING_HOLE = void 0;
8
- exports.SELECT_TOOL_ZOOM_IN = exports.SELECT_TOOL_UPLOAD_IMAGE = exports.SELECT_TOOL_PAN = exports.SELECT_TOOL_EDIT = exports.SELECT_TOOL_DRAWING_LINE = exports.SELECT_TOOL_DRAWING_ITEM_3D = exports.SELECT_TOOL_DRAWING_ITEM = exports.SELECT_TOOL_DRAWING_HOLE_3D = exports.SELECT_TOOL_DRAWING_HOLE = exports.SELECT_TOOL_3D_VIEW = exports.SELECT_TOOL_3D_FIRST_PERSON = exports.SELECT_LINE = exports.SELECT_LAYER = exports.SELECT_ITEM = exports.SELECT_HOLE = exports.SELECT_GROUP = exports.SELECT_DOOR_STYLE = exports.SELECT_AREA = exports.SELECT_ALL = exports.SELECTALL = exports.SECONDARY_PURPLE_COLOR = exports.SECONDARY_BLUE_COLOR = exports.SCENE_ACTIONS = exports.SAVE_PROJECT = exports.SAVE_DESIGN = exports.ROOM_SHAPE_TYPE = exports.ROOM_SHAPE_MEASUREMENT_LINE_COLOR = exports.ROOM_ELEMENT_MEASUREMENT_LINE_COLOR = exports.ROLLBACK = exports.RIGHT_DIST_ANG = exports.RIGHT = exports.REVIEW_AND_QUOTE = exports.REQUEST_ASSISTANCE = exports.REPLACE_SUBMODULE = exports.REPLACE_ITEM = exports.REMOVE_VERTICAL_GUIDE = exports.REMOVE_REPLACE_SUBMODULE = exports.REMOVE_LINEAR = exports.REMOVE_LAYER = exports.REMOVE_HORIZONTAL_GUIDE = exports.REMOVE_GROUP_AND_DELETE_ELEMENTS = exports.REMOVE_GROUP = exports.REMOVE_FROM_GROUP = exports.REMOVE_DRAWING_SUPPORT = exports.REMOVE_CIRCULAR_GUIDE = exports.REMOVE = exports.REDO = exports.RECREATE = exports.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PROP_RESIZE_WIDTH = exports.PROP_RESIZE_HEIGHT = exports.PROP_RESIZE_DEPTH = exports.PROP_OPEN_DOORS = exports.PROP_FLIP_DOOR_HANDLE = exports.PROP_ALTITUDE = exports.PROJECT_SETTING_OPTION = exports.PROJECT_RE_NAME = exports.PROJECT_NAME_LENGTH_LIMIT = exports.PROJECT_ACTIONS = exports.PRODUCT = exports.PRIMARY_GREEN_COLOR = exports.PASTE_PROPERTIES = exports.OVERLAP_SOME = exports.OVERLAP_SAME = exports.OVERLAP_NONE = exports.OVERLAP_LINK = exports.OVERLAP_INCLUDED = exports.OPEN_PROJECT_CONFIGURATOR = exports.OPEN_CATALOG = exports.OBJTYPE_MESH = exports.OBJTYPE_GROUP = exports.NO_DATA_DATABASE = exports.NEW_PROJECT_BTN = exports.NEW_PROJECT = exports.NEW_DESIGN = exports.MOVE_COMPONENT = exports.MOLDING_LOCATIONS = exports.MODE_WAITING_DRAWING_LINE = exports.MODE_VIEWING_CATALOG = exports.MODE_UPLOADING_IMAGE = exports.MODE_SNAPPING = exports.MODE_ROTATING_ITEM_3D = exports.MODE_ROTATING_ITEM = exports.MODE_RIGHT_ELEVATION_VIEW = exports.MODE_LEFT_ELEVATION_VIEW = exports.MODE_IDLE_3D = exports.MODE_IDLE = exports.MODE_FRONT_VIEW = exports.MODE_FRONT_ELEVATION_VIEW = exports.MODE_FITTING_IMAGE = exports.MODE_ELEVATION_VIEW = exports.MODE_DRAWING_LINE = exports.MODE_DRAWING_ITEM_3D = exports.MODE_DRAWING_ITEM = exports.MODE_DRAWING_HOLE_3D = exports.MODE_DRAWING_HOLE = exports.MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_LINE = exports.MODE_DRAGGING_ITEM_3D = exports.MODE_DRAGGING_ITEM = void 0;
9
- exports.UPDATE_3D_CEIL_HEIGHT_UNIT = exports.UPDATE_3D_CEIL_HEIGHT = exports.UPDATE_2D_CAMERA = exports.UNSELECT_GROUP = exports.UNSELECT_ALL = exports.UNIT_MILLIMETER = exports.UNIT_MILE = exports.UNIT_METER = exports.UNIT_INCH_LONG = exports.UNIT_INCH = exports.UNIT_FOOT = exports.UNIT_CENTIMETER = exports.UNIT_ANGLE = exports.UNITS_LENGTH = exports.UNDO = exports.UNCREATE = exports.TWO_D_FLOOR_PLAN = exports.TOP_MOLDING_LOCATION = exports.TOP = exports.TOGGLE_SNAP = exports.TOGGLE_LOADING_CABINET = exports.TOE_KICK_MOLDING = exports.TITLE_SMALL_COLOR = exports.TITLE_COLOR = exports.THROW_WARNING = exports.THROW_ERROR = exports.TEXT_COLOR_NEUTRAL_7 = exports.TEXT_COLOR_NEUTRAL_6 = exports.TEXT_COLOR_NEUTRAL_5 = exports.TEXT_COLOR_NEUTRAL_4 = exports.TEXT_COLOR_NEUTRAL_3 = exports.TEXT_COLOR_NEUTRAL_2 = exports.TEXT_COLOR_NEUTRAL_1 = exports.TEXT_COLOR_NEUTRAL_0 = exports.TEXT_COLOR = exports.TECHNICAL_VIEW = exports.TALL_CABINET_LAYOUTPOS = exports.TAKE_PICTURE = exports.SUBTOTAL = exports.SUBMIT_REQUEST_ASSIST = exports.SUBMIT_DESIGN = exports.SUBMIT_ADD_CART = exports.STORE_DIST_ARRAY = exports.STOP_DRAWING_LINE = exports.STEP_CABINET_CHOOSE_PRODUCT = exports.STATUS_WARNING_LIGHT_COLOR = exports.STATUS_WARNING_COLOR = exports.STATUS_POSITIVE_LIGHT_COLOR = exports.STATUS_POSITIVE_COLOR = exports.STATUS_OVERDUE_LIGHT_COLOR = exports.STATUS_OVERDUE_COLOR = exports.STATUS_NEGATIVE_LIGHT_COLOR = exports.STATUS_NEGATIVE_COLOR = exports.STATUS_INFO_LIGHT_COLOR = exports.STATUS_INFO_COLOR = exports.SHIFT2DON = exports.SHIFT2DOFF = exports.SHAPE_SVG_WIDTH = exports.SHAPE_SVG_PADDING = exports.SHAPE_SVG_DEPTH = exports.SHADE_LIGHT_PURPLE_COLOR = exports.SHADE_LIGHT_GREEN_COLOR = exports.SHADE_LIGHT_BLUE_COLOR = exports.SHADE_DARK_PURPLE_COLOR = exports.SHADE_DARK_GREEN_COLOR = exports.SHADE_DARK_BLUE_COLOR = exports.SET_WALL_COLOR = exports.SET_USER_DATA = exports.SET_STATE_PROPERTIES = exports.SET_ROTATE_STATUS = exports.SET_RELATED_LINE = exports.SET_PROPERTIES = exports.SET_PROJECT_PROPERTIES = exports.SET_PROJECT_ID = exports.SET_MOVE_STATUS = exports.SET_MOLDINGS_CCDF = exports.SET_MOLDING = exports.SET_MODELLING = exports.SET_MODE = exports.SET_LINES_ATTRIBUTES = exports.SET_LAYER_PROPERTIES = exports.SET_ITEMS_CCDF = exports.SET_ITEMS_ATTRIBUTES = exports.SET_IS_HELP = exports.SET_IS_CABINET_DRAWING = exports.SET_INITIAL_DOOR_STYLE = exports.SET_HOLES_ATTRIBUTES = exports.SET_HANDLE_MATERIAL = exports.SET_GROUP_PROPERTIES = exports.SET_GROUP_BARYCENTER = exports.SET_GROUP_ATTRIBUTES = exports.SET_FLOOR_STYLES = exports.SET_DOOR_STYLE = exports.SET_DOOR_HANDLE = exports.SET_DISTANT = exports.SET_COUNTER_TOP = exports.SET_BACKSPLASH_VISIBLE = exports.SET_BACKSPLASH = exports.SET_APPLIANCE_MATERIAL = exports.SELECT_TOOL_ZOOM_OUT = void 0;
10
- exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_CABINET_LAYOUTPOS = exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = exports.VANITY_CABINET_LAYOUTPOS = exports.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = exports.UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING = exports.UPDATE_POPUP_OPEN = exports.UPDATE_MOVING_STATE = exports.UPDATE_MOUSE_COORDS = exports.UPDATE_MOLDING = exports.UPDATE_ITEM_POSITION = exports.UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_HOLE_3D = exports.UPDATE_DRAWING_HOLE = exports.UPDATE_DRAGGING_VERTEX = exports.UPDATE_DRAGGING_LINE = exports.UPDATE_DRAGGING_ITEM_CHANGED = exports.UPDATE_DRAGGING_ITEM_3DY = exports.UPDATE_DRAGGING_ITEM_3DX = exports.UPDATE_DRAGGING_ITEM = exports.UPDATE_DRAGGING_HOLE_RULER_CHANGED = exports.UPDATE_DRAGGING_HOLE_CHANGED = exports.UPDATE_DRAGGING_HOLE_3D = exports.UPDATE_DRAGGING_HOLE = exports.UPDATE_CEIL_HEIGHT_UNIT = exports.UPDATE_CEIL_HEIGHT = void 0;
7
+ exports.MODE_CONFIGURING_PROJECT = exports.MODE_BACK_ELEVATION_VIEW = exports.MODE_3D_VIEW = exports.MODE_3D_FIRST_PERSON = exports.MODE_2D_ZOOM_OUT = exports.MODE_2D_ZOOM_IN = exports.MODE_2D_PAN = exports.MODE = exports.MIN_ANGLE_DISALLOW_DRAW_WALL = exports.MIDDLE_MOLDING_LOCATION = exports.MEPSILON = exports.MAX_ZOOM_IN_SCALE = exports.MAX_ANGLE_SCALE = exports.MAKE_FLOOR_PLAN = exports.LOGOUT = exports.LOGIN_SUCCESS = exports.LOGIN_ERROR = exports.LOCAL_STORAGE_TOKEN_VALUE = exports.LOCAL_STORAGE_TOKEN_NAME = exports.LOCAL_STORAGE_ORIGINAL_TOKEN = exports.LOCAL_STORAGE_CUSTOMER_INFO = exports.LOCAL_STORAGE_CART_ACTION = exports.LOAD_PROJECT = exports.LIST_QUANTITIES = exports.LIST_PARTS = exports.LINE_THICKNESS = exports.LINE_ACTIONS = exports.LEFT_DIST_ANG = exports.LEFT = exports.LABEL_COLOR = exports.KITCHEN_KONFIGURATOR = exports.KEYBOARD_BUTTON_CODE = exports.ITEM_TYPE = exports.ITEM_MOVE_UP = exports.ITEMS_ACTIONS = exports.INVERT = exports.INTERNAL_EVENT_UNSELECT_ALL = exports.INTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.INTERNAL_EVENT_SYNC_SCENE = exports.INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = exports.INTERNAL_EVENT_REPLACE_CABINET = exports.INTERNAL_EVENT_MIRROR_ELEMENT = exports.INTERNAL_EVENT_ITEMS_CATALOG = exports.INTERNAL_EVENT_DRAW_ELEMENT = exports.INTERNAL_EVENT_DRAG_ELEMENT = exports.INSTALLATION_TYPE_SKU_SUFFIX = exports.INSTALLATION_TYPE_NAME = exports.INSTALLATION_SUFFIX_TYPE = exports.INIT_CATALOG = exports.HOLE_NAMES = exports.HOLE_ACTIONS = exports.HDR_URLS = exports.HAS_LOADINGBAR = exports.GROUP_TRANSLATE = exports.GROUP_ROTATE = exports.GROUP_ACTIONS = exports.GO_BACK_TO_CATALOG_PAGE = exports.FRONT_DIST_ANG = exports.FINISHING_TYPE = exports.FINISHING_TOUCH = exports.EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_IN = exports.EXTERNAL_EVENT_UPDATE_PROPERTY = exports.EXTERNAL_EVENT_UPDATE_ATTRIBUTE = exports.EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.EXTERNAL_EVENT_TOGGLE_TO_3D = exports.EXTERNAL_EVENT_TOGGLE_TO_2D = exports.EXTERNAL_EVENT_SYNC_SCENE = exports.EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_FINISHING = exports.EXTERNAL_EVENT_ROTATE_PAN = exports.EXTERNAL_EVENT_REPLACE_CABINET = exports.EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_NEW_PROJECT = exports.EXTERNAL_EVENT_MOVE_PAN = exports.EXTERNAL_EVENT_MIRROR_ELEMENT = exports.EXTERNAL_EVENT_LOAD_PROJECT = exports.EXTERNAL_EVENT_DUPLICATE_ELEMENT = exports.EXTERNAL_EVENT_DELETE_ELEMENT = exports.EXTERNAL_EVENT_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_ADD_WALL = exports.EXTERNAL_EVENT_ADD_ROOM_SHAPE = exports.EXTERNAL_EVENT_ADD_ITEM = exports.EXTERNAL_EVENT_ADD_HOLE = exports.ERROR_DATABASE = exports.EPSILON = exports.END_UPLOADING_IMAGE = exports.END_ROTATING_ITEM_3D = exports.END_ROTATING_ITEM = exports.END_LOADING = exports.END_FITTING_IMAGE = exports.END_DRAWING_LINE = exports.END_DRAWING_ITEM = exports.END_DRAWING_HOLE_3D = exports.END_DRAWING_HOLE = void 0;
8
+ exports.SELECT_TOOL_PAN = exports.SELECT_TOOL_EDIT = exports.SELECT_TOOL_DRAWING_LINE = exports.SELECT_TOOL_DRAWING_ITEM_3D = exports.SELECT_TOOL_DRAWING_ITEM = exports.SELECT_TOOL_DRAWING_HOLE_3D = exports.SELECT_TOOL_DRAWING_HOLE = exports.SELECT_TOOL_3D_VIEW = exports.SELECT_TOOL_3D_FIRST_PERSON = exports.SELECT_LINE = exports.SELECT_LAYER = exports.SELECT_ITEM = exports.SELECT_HOLE = exports.SELECT_GROUP = exports.SELECT_DOOR_STYLE = exports.SELECT_AREA = exports.SELECT_ALL = exports.SELECTALL = exports.SECONDARY_PURPLE_COLOR = exports.SECONDARY_BLUE_COLOR = exports.SCENE_ACTIONS = exports.SAVE_PROJECT = exports.SAVE_DESIGN = exports.ROOM_SHAPE_TYPE = exports.ROOM_SHAPE_MEASUREMENT_LINE_COLOR = exports.ROOM_ELEMENT_MEASUREMENT_LINE_COLOR = exports.ROLLBACK = exports.RIGHT_DIST_ANG = exports.RIGHT = exports.REVIEW_AND_QUOTE = exports.REQUEST_ASSISTANCE = exports.REPLACE_SUBMODULE = exports.REPLACE_ITEM = exports.REMOVE_VERTICAL_GUIDE = exports.REMOVE_REPLACE_SUBMODULE = exports.REMOVE_LINEAR = exports.REMOVE_LAYER = exports.REMOVE_HORIZONTAL_GUIDE = exports.REMOVE_GROUP_AND_DELETE_ELEMENTS = exports.REMOVE_GROUP = exports.REMOVE_FROM_GROUP = exports.REMOVE_DRAWING_SUPPORT = exports.REMOVE_CIRCULAR_GUIDE = exports.REMOVE = exports.REDO = exports.RECREATE = exports.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PROP_RESIZE_WIDTH = exports.PROP_RESIZE_HEIGHT = exports.PROP_RESIZE_DEPTH = exports.PROP_OPEN_DOORS = exports.PROP_FLIP_DOOR_HANDLE = exports.PROP_ALTITUDE = exports.PROJECT_SETTING_OPTION = exports.PROJECT_RE_NAME = exports.PROJECT_NAME_LENGTH_LIMIT = exports.PROJECT_ACTIONS = exports.PRODUCT = exports.PRIMARY_GREEN_COLOR = exports.PASTE_PROPERTIES = exports.OVERLAP_SOME = exports.OVERLAP_SAME = exports.OVERLAP_NONE = exports.OVERLAP_LINK = exports.OVERLAP_INCLUDED = exports.OPEN_PROJECT_CONFIGURATOR = exports.OPEN_CATALOG = exports.OBJTYPE_MESH = exports.OBJTYPE_GROUP = exports.NO_DATA_DATABASE = exports.NEW_PROJECT_BTN = exports.NEW_PROJECT = exports.NEW_DESIGN = exports.MOVE_COMPONENT = exports.MOLDING_LOCATIONS = exports.MODE_WAITING_DRAWING_LINE = exports.MODE_VIEWING_CATALOG = exports.MODE_UPLOADING_IMAGE = exports.MODE_SNAPPING = exports.MODE_ROTATING_ITEM_3D = exports.MODE_ROTATING_ITEM = exports.MODE_RIGHT_ELEVATION_VIEW = exports.MODE_LEFT_ELEVATION_VIEW = exports.MODE_IDLE_3D = exports.MODE_IDLE = exports.MODE_FRONT_VIEW = exports.MODE_FRONT_ELEVATION_VIEW = exports.MODE_FITTING_IMAGE = exports.MODE_ELEVATION_VIEW = exports.MODE_DRAWING_LINE = exports.MODE_DRAWING_ITEM_3D = exports.MODE_DRAWING_ITEM = exports.MODE_DRAWING_HOLE_3D = exports.MODE_DRAWING_HOLE = exports.MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_LINE = exports.MODE_DRAGGING_ITEM_3D = exports.MODE_DRAGGING_ITEM = exports.MODE_DRAGGING_HOLE_3D = exports.MODE_DRAGGING_HOLE = void 0;
9
+ exports.UNSELECT_GROUP = exports.UNSELECT_ALL = exports.UNIT_MILLIMETER = exports.UNIT_MILE = exports.UNIT_METER = exports.UNIT_INCH_LONG = exports.UNIT_INCH = exports.UNIT_FOOT = exports.UNIT_CENTIMETER = exports.UNIT_ANGLE = exports.UNITS_LENGTH = exports.UNDO = exports.UNCREATE = exports.TWO_D_FLOOR_PLAN = exports.TOP_MOLDING_LOCATION = exports.TOP = exports.TOGGLE_SNAP = exports.TOGGLE_LOADING_CABINET = exports.TOGGLE_ITEM_MIRROR = exports.TOE_KICK_MOLDING = exports.TITLE_SMALL_COLOR = exports.TITLE_COLOR = exports.THROW_WARNING = exports.THROW_ERROR = exports.TEXT_COLOR_NEUTRAL_7 = exports.TEXT_COLOR_NEUTRAL_6 = exports.TEXT_COLOR_NEUTRAL_5 = exports.TEXT_COLOR_NEUTRAL_4 = exports.TEXT_COLOR_NEUTRAL_3 = exports.TEXT_COLOR_NEUTRAL_2 = exports.TEXT_COLOR_NEUTRAL_1 = exports.TEXT_COLOR_NEUTRAL_0 = exports.TEXT_COLOR = exports.TECHNICAL_VIEW = exports.TALL_CABINET_LAYOUTPOS = exports.TAKE_PICTURE = exports.SUBTOTAL = exports.SUBMIT_REQUEST_ASSIST = exports.SUBMIT_DESIGN = exports.SUBMIT_ADD_CART = exports.STORE_DIST_ARRAY = exports.STOP_DRAWING_LINE = exports.STEP_CABINET_CHOOSE_PRODUCT = exports.STATUS_WARNING_LIGHT_COLOR = exports.STATUS_WARNING_COLOR = exports.STATUS_POSITIVE_LIGHT_COLOR = exports.STATUS_POSITIVE_COLOR = exports.STATUS_OVERDUE_LIGHT_COLOR = exports.STATUS_OVERDUE_COLOR = exports.STATUS_NEGATIVE_LIGHT_COLOR = exports.STATUS_NEGATIVE_COLOR = exports.STATUS_INFO_LIGHT_COLOR = exports.STATUS_INFO_COLOR = exports.SHIFT2DON = exports.SHIFT2DOFF = exports.SHAPE_SVG_WIDTH = exports.SHAPE_SVG_PADDING = exports.SHAPE_SVG_DEPTH = exports.SHADE_LIGHT_PURPLE_COLOR = exports.SHADE_LIGHT_GREEN_COLOR = exports.SHADE_LIGHT_BLUE_COLOR = exports.SHADE_DARK_PURPLE_COLOR = exports.SHADE_DARK_GREEN_COLOR = exports.SHADE_DARK_BLUE_COLOR = exports.SET_WALL_COLOR = exports.SET_USER_DATA = exports.SET_STATE_PROPERTIES = exports.SET_ROTATE_STATUS = exports.SET_RELATED_LINE = exports.SET_PROPERTIES = exports.SET_PROJECT_PROPERTIES = exports.SET_PROJECT_ID = exports.SET_MOVE_STATUS = exports.SET_MOLDINGS_CCDF = exports.SET_MOLDING = exports.SET_MODELLING = exports.SET_MODE = exports.SET_LINES_ATTRIBUTES = exports.SET_LAYER_PROPERTIES = exports.SET_ITEMS_CCDF = exports.SET_ITEMS_ATTRIBUTES = exports.SET_IS_HELP = exports.SET_IS_CABINET_DRAWING = exports.SET_INITIAL_DOOR_STYLE = exports.SET_HOLES_ATTRIBUTES = exports.SET_HANDLE_MATERIAL = exports.SET_GROUP_PROPERTIES = exports.SET_GROUP_BARYCENTER = exports.SET_GROUP_ATTRIBUTES = exports.SET_FLOOR_STYLES = exports.SET_DOOR_STYLE = exports.SET_DOOR_HANDLE = exports.SET_DISTANT = exports.SET_COUNTER_TOP = exports.SET_BACKSPLASH_VISIBLE = exports.SET_BACKSPLASH = exports.SET_APPLIANCE_MATERIAL = exports.SELECT_TOOL_ZOOM_OUT = exports.SELECT_TOOL_ZOOM_IN = exports.SELECT_TOOL_UPLOAD_IMAGE = void 0;
10
+ exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_CABINET_LAYOUTPOS = exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = exports.VANITY_CABINET_LAYOUTPOS = exports.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = exports.UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING = exports.UPDATE_POPUP_OPEN = exports.UPDATE_MOVING_STATE = exports.UPDATE_MOUSE_COORDS = exports.UPDATE_MOLDING = exports.UPDATE_ITEM_POSITION = exports.UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_HOLE_3D = exports.UPDATE_DRAWING_HOLE = exports.UPDATE_DRAGGING_VERTEX = exports.UPDATE_DRAGGING_LINE = exports.UPDATE_DRAGGING_ITEM_CHANGED = exports.UPDATE_DRAGGING_ITEM_3DY = exports.UPDATE_DRAGGING_ITEM_3DX = exports.UPDATE_DRAGGING_ITEM = exports.UPDATE_DRAGGING_HOLE_RULER_CHANGED = exports.UPDATE_DRAGGING_HOLE_CHANGED = exports.UPDATE_DRAGGING_HOLE_3D = exports.UPDATE_DRAGGING_HOLE = exports.UPDATE_CEIL_HEIGHT_UNIT = exports.UPDATE_CEIL_HEIGHT = exports.UPDATE_3D_CEIL_HEIGHT_UNIT = exports.UPDATE_3D_CEIL_HEIGHT = exports.UPDATE_2D_CAMERA = void 0;
11
11
  //API server
12
12
  // export const API_SERVER = 'http://localhost:3000/';
13
13
  // ACTIONS project
@@ -89,6 +89,7 @@ var END_LOADING = exports.END_LOADING = 'END_LOADING';
89
89
  var TOGGLE_LOADING_CABINET = exports.TOGGLE_LOADING_CABINET = 'TOGGLE_LOADING_CABINET';
90
90
  var EDIT_WIDTH = exports.EDIT_WIDTH = 'EDIT_WIDTH';
91
91
  var DUPLICATE_SELECTED = exports.DUPLICATE_SELECTED = 'DUPLICATE_SELECTED';
92
+ var TOGGLE_ITEM_MIRROR = exports.TOGGLE_ITEM_MIRROR = 'TOGGLE_ITEM_MIRROR';
92
93
  var REPLACE_ITEM = exports.REPLACE_ITEM = 'REPLACE_ITEM';
93
94
  var SELECT_TOOL_DRAWING_ITEM = exports.SELECT_TOOL_DRAWING_ITEM = 'SELECT_TOOL_DRAWING_ITEM';
94
95
  var SELECT_TOOL_DRAWING_ITEM_3D = exports.SELECT_TOOL_DRAWING_ITEM_3D = 'SELECT_TOOL_DRAWING_ITEM_3D';
@@ -323,6 +324,7 @@ var ITEMS_ACTIONS = exports.ITEMS_ACTIONS = {
323
324
  // SET_MOVE_STATUS,
324
325
  // SET_ROTATE_STATUS,
325
326
  DUPLICATE_SELECTED: DUPLICATE_SELECTED,
327
+ TOGGLE_ITEM_MIRROR: TOGGLE_ITEM_MIRROR,
326
328
  EDIT_WIDTH: EDIT_WIDTH,
327
329
  TOGGLE_LOADING_CABINET: TOGGLE_LOADING_CABINET,
328
330
  END_LOADING: END_LOADING,
@@ -754,6 +756,7 @@ var EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_PROJECT_SETTING = 'E
754
756
  var EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_CENTERING_2D = 'EXTERNAL_EVENT_CENTERING_2D';
755
757
  var EXTERNAL_EVENT_DUPLICATE_ELEMENT = exports.EXTERNAL_EVENT_DUPLICATE_ELEMENT = 'EXTERNAL_EVENT_DUPLICATE_ELEMENT';
756
758
  var EXTERNAL_EVENT_DELETE_ELEMENT = exports.EXTERNAL_EVENT_DELETE_ELEMENT = 'EXTERNAL_EVENT_DELETE_ELEMENT';
759
+ var EXTERNAL_EVENT_MIRROR_ELEMENT = exports.EXTERNAL_EVENT_MIRROR_ELEMENT = 'EXTERNAL_EVENT_MIRROR_ELEMENT';
757
760
  var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = exports.EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE'; // update the element's attributes (distance, rotation...) in the property window
758
761
  var EXTERNAL_EVENT_UPDATE_PROPERTY = exports.EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
759
762
  var EXTERNAL_EVENT_REPLACE_CABINET = exports.EXTERNAL_EVENT_REPLACE_CABINET = 'EXTERNAL_EVENT_REPLACE_CABINET';
@@ -766,6 +769,7 @@ var INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_SELECT_ELEMENT = 'INT
766
769
  var INTERNAL_EVENT_DRAG_ELEMENT = exports.INTERNAL_EVENT_DRAG_ELEMENT = 'INTERNAL_EVENT_DRAG_ELEMENT';
767
770
  var INTERNAL_EVENT_DRAW_ELEMENT = exports.INTERNAL_EVENT_DRAW_ELEMENT = 'INTERNAL_EVENT_DRAW_ELEMENT';
768
771
  var INTERNAL_EVENT_ROTATE_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = 'INTERNAL_EVENT_ROTATE_ELEMENT';
772
+ var INTERNAL_EVENT_MIRROR_ELEMENT = exports.INTERNAL_EVENT_MIRROR_ELEMENT = 'INTERNAL_EVENT_MIRROR_ELEMENT';
769
773
  var INTERNAL_EVENT_REPLACE_CABINET = exports.INTERNAL_EVENT_REPLACE_CABINET = 'INTERNAL_EVENT_REPLACE_CABINET';
770
774
  var INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_START_DRAW_WALL = 'INTERNAL_EVENT_START_DRAW_WALL';
771
775
  var INTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.INTERNAL_EVENT_TOGGLE_TO_ELEVATION = 'INTERNAL_EVENT_TOGGLE_TO_ELEVATION';
@@ -53,92 +53,95 @@ function _handleExternalEvent() {
53
53
  layerId = state.getIn(['scene', 'selectedLayer']);
54
54
  layer = state.getIn(['scene', 'layers', layerId]);
55
55
  _t = evt === null || evt === void 0 ? void 0 : evt.type;
56
- _context.next = _t === _constants.EXTERNAL_EVENT_LOAD_PROJECT ? 2 : _t === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 4 : _t === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 5 : _t === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 6 : _t === _constants.EXTERNAL_EVENT_ADD_WALL ? 7 : _t === _constants.EXTERNAL_EVENT_ADD_ITEM ? 8 : _t === _constants.EXTERNAL_EVENT_ADD_HOLE ? 10 : _t === _constants.EXTERNAL_EVENT_ROTATE_PAN ? 11 : _t === _constants.EXTERNAL_EVENT_MOVE_PAN ? 11 : _t === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 12 : _t === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 13 : _t === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 15 : _t === _constants.EXTERNAL_EVENT_ZOOM_IN ? 16 : _t === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 17 : _t === _constants.EXTERNAL_EVENT_CENTERING_2D ? 18 : _t === _constants.EXTERNAL_EVENT_UNDO ? 19 : _t === _constants.EXTERNAL_EVENT_REDO ? 20 : _t === _constants.EXTERNAL_EVENT_SET_MOLDING ? 21 : _t === _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 23 : _t === _constants.EXTERNAL_EVENT_DELETE_ELEMENT ? 24 : _t === _constants.EXTERNAL_EVENT_PROJECT_SETTING ? 25 : _t === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 26 : _t === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 26 : _t === _constants.EXTERNAL_EVENT_REPLACE_CABINET ? 27 : _t === _constants.EXTERNAL_EVENT_SET_FINISHING ? 29 : _t === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 30 : 31;
56
+ _context.next = _t === _constants.EXTERNAL_EVENT_LOAD_PROJECT ? 2 : _t === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 4 : _t === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 5 : _t === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 6 : _t === _constants.EXTERNAL_EVENT_ADD_WALL ? 7 : _t === _constants.EXTERNAL_EVENT_ADD_ITEM ? 8 : _t === _constants.EXTERNAL_EVENT_ADD_HOLE ? 10 : _t === _constants.EXTERNAL_EVENT_ROTATE_PAN ? 11 : _t === _constants.EXTERNAL_EVENT_MOVE_PAN ? 11 : _t === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 12 : _t === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 13 : _t === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 15 : _t === _constants.EXTERNAL_EVENT_ZOOM_IN ? 16 : _t === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 17 : _t === _constants.EXTERNAL_EVENT_CENTERING_2D ? 18 : _t === _constants.EXTERNAL_EVENT_UNDO ? 19 : _t === _constants.EXTERNAL_EVENT_REDO ? 20 : _t === _constants.EXTERNAL_EVENT_SET_MOLDING ? 21 : _t === _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 23 : _t === _constants.EXTERNAL_EVENT_DELETE_ELEMENT ? 24 : _t === _constants.EXTERNAL_EVENT_MIRROR_ELEMENT ? 25 : _t === _constants.EXTERNAL_EVENT_PROJECT_SETTING ? 26 : _t === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 27 : _t === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 27 : _t === _constants.EXTERNAL_EVENT_REPLACE_CABINET ? 28 : _t === _constants.EXTERNAL_EVENT_SET_FINISHING ? 30 : _t === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 31 : 32;
57
57
  break;
58
58
  case 2:
59
59
  _context.next = 3;
60
60
  return (0, _handlers11.handleLoadProjectEvent)(props, state, evt, _ccdfToCDSMapper.mapFromCCDFToCDS, _loadProjectMapper.updateProjectWithCDSList, _ccdfMapper.ccdfMapper, _handleExternalEvent2.mergeSameElements, _handleExternalEvent2.addItemToCatalog);
61
61
  case 3:
62
- return _context.abrupt("continue", 31);
62
+ return _context.abrupt("continue", 32);
63
63
  case 4:
64
64
  (0, _handlers.handleToggleTo3D)(props, _constants.MODE_IDLE_3D);
65
- return _context.abrupt("continue", 31);
65
+ return _context.abrupt("continue", 32);
66
66
  case 5:
67
67
  (0, _handlers.handleToggleTo2D)(props, _constants.MODE_IDLE);
68
- return _context.abrupt("continue", 31);
68
+ return _context.abrupt("continue", 32);
69
69
  case 6:
70
70
  (0, _handlers.handleToggleToElevation)(props, layer, _constants.MODE_ELEVATION_VIEW);
71
- return _context.abrupt("continue", 31);
71
+ return _context.abrupt("continue", 32);
72
72
  case 7:
73
73
  (0, _handlers6.handleAddWall)(props, state);
74
- return _context.abrupt("continue", 31);
74
+ return _context.abrupt("continue", 32);
75
75
  case 8:
76
76
  _context.next = 9;
77
77
  return (0, _handlers12.handleAddItemEvent)(props, state, evt === null || evt === void 0 ? void 0 : evt.payload, _handleExternalEvent2.addItemToCatalog, _helper.isEmpty, _constants.ARRAY_3D_MODES);
78
78
  case 9:
79
- return _context.abrupt("continue", 31);
79
+ return _context.abrupt("continue", 32);
80
80
  case 10:
81
81
  (0, _handlers7.handleAddHole)(props, state, evt === null || evt === void 0 ? void 0 : evt.payload);
82
- return _context.abrupt("continue", 31);
82
+ return _context.abrupt("continue", 32);
83
83
  case 11:
84
84
  (0, _handlers2.handleMoveAndRotatePan2D3D)(evt.type, props, evt.payload, state);
85
- return _context.abrupt("continue", 31);
85
+ return _context.abrupt("continue", 32);
86
86
  case 12:
87
87
  (0, _handlers3.handleNewProject)(props);
88
- return _context.abrupt("continue", 31);
88
+ return _context.abrupt("continue", 32);
89
89
  case 13:
90
90
  _context.next = 14;
91
91
  return (0, _handlers13.handleChangeDoorStyleEvent)(props, state, layer, evt.payload, _constants.DOORSTYLE_SCOPE_SINGLE, _constants.DOORSTYLE_SCOPE_MULTIPLE, _constants.DOORSTYLE_SCOPE_ALL, _constants.INTERNAL_EVENT_ITEMS_CATALOG, _ccdfToCDSMapper.mapFromCCDFToCDS, _ccdfMapper.ccdfMapper, _handleExternalEvent2.mergeSameElements, _handleExternalEvent2.addItemToCatalog);
92
92
  case 14:
93
- return _context.abrupt("continue", 31);
93
+ return _context.abrupt("continue", 32);
94
94
  case 15:
95
95
  (0, _handlers8.handleAddRoomShape)(props, evt.payload);
96
- return _context.abrupt("continue", 31);
96
+ return _context.abrupt("continue", 32);
97
97
  case 16:
98
98
  (0, _handlers2.handleZoomIn)(props, state);
99
- return _context.abrupt("continue", 31);
99
+ return _context.abrupt("continue", 32);
100
100
  case 17:
101
101
  (0, _handlers2.handleZoomOut)(props, state);
102
- return _context.abrupt("continue", 31);
102
+ return _context.abrupt("continue", 32);
103
103
  case 18:
104
104
  (0, _handlers2.handleCentering2D)(props, state);
105
- return _context.abrupt("continue", 31);
105
+ return _context.abrupt("continue", 32);
106
106
  case 19:
107
107
  (0, _handlers3.handleUndo)(props);
108
- return _context.abrupt("continue", 31);
108
+ return _context.abrupt("continue", 32);
109
109
  case 20:
110
110
  (0, _handlers3.handleRedo)(props);
111
- return _context.abrupt("continue", 31);
111
+ return _context.abrupt("continue", 32);
112
112
  case 21:
113
113
  _context.next = 22;
114
114
  return (0, _handlers9.handleSetMolding)(props, _handleExternalEvent2.loadMoldingSvg, evt.payload);
115
115
  case 22:
116
- return _context.abrupt("continue", 31);
116
+ return _context.abrupt("continue", 32);
117
117
  case 23:
118
118
  (0, _handlers0.handleDuplicateElement)(props, _handleExternalEvent2.getElement, evt.payload, state);
119
- return _context.abrupt("continue", 31);
119
+ return _context.abrupt("continue", 32);
120
120
  case 24:
121
121
  (0, _handlers0.handleDeleteElement)(props, _handleExternalEvent2.getElement, evt.payload, state);
122
- return _context.abrupt("continue", 31);
122
+ return _context.abrupt("continue", 32);
123
123
  case 25:
124
- (0, _handlers4.handleProjectSetting)(props, evt.payload, layer);
125
- return _context.abrupt("continue", 31);
124
+ (0, _handlers0.handleMirrorElement)(props, _handleExternalEvent2.getElement, evt.payload, state);
125
+ return _context.abrupt("continue", 32);
126
126
  case 26:
127
- (0, _handlers14.handleUpdateSelectedElementsEvent)(props, state, evt, _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE, _handleExternalEvent2.updateAttributeOfSelectedElement, _handleExternalEvent2.updatePropertyOfSelectedElement);
128
- return _context.abrupt("continue", 31);
127
+ (0, _handlers4.handleProjectSetting)(props, evt.payload, layer);
128
+ return _context.abrupt("continue", 32);
129
129
  case 27:
130
- _context.next = 28;
131
- return (0, _handlers1.handleReplaceCabinet)(props, _handleExternalEvent2.addItemToCatalog, evt === null || evt === void 0 ? void 0 : evt.payload, state);
130
+ (0, _handlers14.handleUpdateSelectedElementsEvent)(props, state, evt, _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE, _handleExternalEvent2.updateAttributeOfSelectedElement, _handleExternalEvent2.updatePropertyOfSelectedElement);
131
+ return _context.abrupt("continue", 32);
132
132
  case 28:
133
- return _context.abrupt("continue", 31);
133
+ _context.next = 29;
134
+ return (0, _handlers1.handleReplaceCabinet)(props, _handleExternalEvent2.addItemToCatalog, evt === null || evt === void 0 ? void 0 : evt.payload, state);
134
135
  case 29:
135
- (0, _handlers5.handleSetFinishing)(props, state, evt.payload);
136
- return _context.abrupt("continue", 31);
136
+ return _context.abrupt("continue", 32);
137
137
  case 30:
138
+ (0, _handlers5.handleSetFinishing)(props, state, evt.payload);
139
+ return _context.abrupt("continue", 32);
140
+ case 31:
138
141
  console.log('*** catalog ***', props.catalog);
139
142
  (0, _handlers10.handleSyncScene)(props, state, layer, layerId, _molding.getMoldingDataOfScene2, _skinPanelEngine.computeSkinPanels, _constants.DEFAULT_MOLDING_PIECE_LENGTH, _constants.INTERNAL_EVENT_SYNC_SCENE);
140
- return _context.abrupt("continue", 31);
141
- case 31:
143
+ return _context.abrupt("continue", 32);
144
+ case 32:
142
145
  case "end":
143
146
  return _context.stop();
144
147
  }