kitchen-simulator 2.0.10 → 2.0.11

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.
@@ -98,8 +98,10 @@ export function setHolesAttributes(holesAttributes) {
98
98
  };
99
99
  }
100
100
  export function remove() {
101
+ var delObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
101
102
  return {
102
- type: REMOVE
103
+ type: REMOVE,
104
+ delObject: delObject
103
105
  };
104
106
  }
105
107
  export function undo() {
@@ -294,29 +294,52 @@ var Project = /*#__PURE__*/function () {
294
294
  }
295
295
  }, {
296
296
  key: "remove",
297
- value: function remove(state) {
297
+ value: function remove(state, delObject) {
298
298
  var selectedLayer = state.getIn(['scene', 'selectedLayer']);
299
299
  var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
300
300
  selectedLines = _state$getIn.lines,
301
301
  selectedHoles = _state$getIn.holes,
302
302
  selectedItems = _state$getIn.items;
303
- var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
304
- var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', 'lines']).toJS();
305
- var lineID = selLines[0];
306
- var delLine = !isEmpty(lineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', lineID]).toJS();
307
- var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
308
303
  var relatedLines = [];
309
- !isEmpty(delLine) && GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
310
- selectedLines.forEach(function (lineID) {
311
- state = Line.remove(state, selectedLayer, lineID).updatedState;
312
- });
313
- selectedHoles.forEach(function (holeID) {
314
- state = Hole.remove(state, selectedLayer, holeID).updatedState;
315
- });
316
- selectedItems.forEach(function (itemID) {
317
- state = Item.remove(state, selectedLayer, itemID).updatedState;
318
- });
319
- if (!isEmpty(selectedLines) && !isEmpty(relatedLines)) {
304
+
305
+ // if deleting element is line then get the related lines that to update walls
306
+ if (delObject && delObject.prototype === constants.ELEMENT_LINE || isEmpty(delObject) && !isEmpty(selectedLines)) {
307
+ var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
308
+ var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', constants.ELEMENT_LINE]).toJS();
309
+ var curSelLineID = (delObject === null || delObject === void 0 ? void 0 : delObject.prototype) === constants.ELEMENT_LINE ? delObject.id : selLines[0];
310
+ var delLine = !isEmpty(curSelLineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', curSelLineID]).toJS();
311
+ var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
312
+ !isEmpty(delLine) && GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
313
+ }
314
+
315
+ // delete element
316
+ if (delObject) {
317
+ switch (delObject.prototype) {
318
+ case constants.ELEMENT_LINE:
319
+ state = Line.remove(state, selectedLayer, delObject.id).updatedState;
320
+ break;
321
+ case constants.ELEMENT_HOLE:
322
+ state = Hole.remove(state, selectedLayer, delObject.id).updatedState;
323
+ break;
324
+ case constants.ELEMENT_ITEM:
325
+ state = Item.remove(state, selectedLayer, delObject.id).updatedState;
326
+ break;
327
+ }
328
+ } else {
329
+ // no specified object, then remove all selected elements
330
+ selectedLines.forEach(function (lineID) {
331
+ state = Line.remove(state, selectedLayer, lineID).updatedState;
332
+ });
333
+ selectedHoles.forEach(function (holeID) {
334
+ state = Hole.remove(state, selectedLayer, holeID).updatedState;
335
+ });
336
+ selectedItems.forEach(function (itemID) {
337
+ state = Item.remove(state, selectedLayer, itemID).updatedState;
338
+ });
339
+ }
340
+
341
+ // update wall if line removed
342
+ if (!isEmpty(relatedLines)) {
320
343
  state = state.setIn(['mode'], MODE_DRAWING_LINE);
321
344
  relatedLines.forEach(function (relLine, index) {
322
345
  state = Line.select(state, selectedLayer, relLine.id).updatedState;
package/es/constants.js CHANGED
@@ -675,6 +675,12 @@ export var RIGHT_DIST_ANG = 180;
675
675
  export var BACK_DIST_ANG = 90;
676
676
  export var FRONT_DIST_ANG = -90;
677
677
 
678
+ // element prototype
679
+ export var ELEMENT_LINE = 'lines';
680
+ export var ELEMENT_HOLE = 'holes';
681
+ export var ELEMENT_ITEM = 'items';
682
+ export var ELEMENT_AREA = 'areas';
683
+ export var ELEMENT_VERTEX = 'vertices';
678
684
  // element attributes
679
685
  export var ATT_ITEM_POS = 'pos';
680
686
  export var ATT_ITEM_ROTATION = 'rotation';
@@ -712,9 +718,12 @@ export var EXTERNAL_EVENT_UNDO = 'EXTERNAL_EVENT_UNDO';
712
718
  export var EXTERNAL_EVENT_REDO = 'EXTERNAL_EVENT_REDO';
713
719
  export var EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
714
720
  export var EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING'; // project setting event
721
+ export var EXTERNAL_EVENT_CENTERING_2D = 'EXTERNAL_EVENT_CENTERING_2D';
722
+ export var EXTERNAL_EVENT_DUPLICATE_ELEMENT = 'EXTERNAL_EVENT_DUPLICATE_ELEMENT';
723
+ export var EXTERNAL_EVENT_DELETE_ELEMENT = 'EXTERNAL_EVENT_DELETE_ELEMENT';
715
724
  export var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE'; // update the element's attributes (distance, rotation...) in the property window
716
725
  export var EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
717
- export var EXTERNAL_EVENT_CENTERING_2D = 'EXTERNAL_EVENT_CENTERING_2D';
726
+
718
727
  // internal event type
719
728
  export var INTERNAL_EVENT_UNSELECT_ALL = 'INTERNAL_EVENT_UNSELECT_ALL';
720
729
  export var INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';
@@ -15,7 +15,7 @@ import moldingPayload from "./mocks/moldingPayload.json";
15
15
  import ReactDOM from 'react-dom';
16
16
  import LiteRenderer from "./LiteRenderer";
17
17
  import { Button } from 'antd';
18
- import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE } from "./constants";
18
+ import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT } from "./constants";
19
19
 
20
20
  // --- renderer props ---
21
21
  var options = {
@@ -391,6 +391,30 @@ function WorkSpace(props) {
391
391
  setExternalEvent(evt);
392
392
  }
393
393
  }, "Distance from floor 10\""), /*#__PURE__*/React.createElement(Button, {
394
+ actionType: "danger",
395
+ onClick: function onClick() {
396
+ var evt = {
397
+ type: EXTERNAL_EVENT_DUPLICATE_ELEMENT,
398
+ payload: {
399
+ elementPrototype: ELEMENT_ITEM,
400
+ elementId: '' // id of current operating element
401
+ }
402
+ };
403
+ setExternalEvent(evt);
404
+ }
405
+ }, "Duplicate Item"), /*#__PURE__*/React.createElement(Button, {
406
+ actionType: "danger",
407
+ onClick: function onClick() {
408
+ var evt = {
409
+ type: EXTERNAL_EVENT_DELETE_ELEMENT,
410
+ payload: {
411
+ elementPrototype: ELEMENT_ITEM,
412
+ elementId: '' // id of current operating element
413
+ }
414
+ };
415
+ setExternalEvent(evt);
416
+ }
417
+ }, "Delete Item"), /*#__PURE__*/React.createElement(Button, {
394
418
  actionType: "danger",
395
419
  onClick: function onClick() {
396
420
  var evt = {
@@ -43,7 +43,7 @@ export default function (state, action) {
43
43
  state = state.merge({
44
44
  sceneHistory: history.historyPush(state.sceneHistory, state.scene)
45
45
  });
46
- return Project.remove(state).updatedState;
46
+ return Project.remove(state, action.delObject).updatedState;
47
47
  case UNDO:
48
48
  return Project.undo(state).updatedState;
49
49
  case REDO:
@@ -5,7 +5,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
5
5
  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) { _defineProperty(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; }
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
7
  import { Map } from 'immutable';
8
- import { EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, MODE_IDLE, MODE_2D_PAN, EXTERNAL_EVENT_ADD_ITEM, ARRAY_3D_MODES, MODE_IDLE_3D, MODE_ELEVATION_VIEW, MODE_DRAWING_LINE, TOP, BOTTOM, LEFT, RIGHT, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, ZOOM_VARIABLE, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, INTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, ATT_ITEM_POS, ATT_LINE_LENGTH, ATT_VERTEXT_ONE, ATT_VERTEXT_TWO, ATT_HOLE_OFFSET_A, ATT_HOLE_OFFSET_B, UNIT_CENTIMETER, UNIT_INCH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_CENTERING_2D } from "../constants";
8
+ import { EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, MODE_IDLE, MODE_2D_PAN, EXTERNAL_EVENT_ADD_ITEM, ARRAY_3D_MODES, MODE_IDLE_3D, MODE_ELEVATION_VIEW, MODE_DRAWING_LINE, TOP, BOTTOM, LEFT, RIGHT, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, ZOOM_VARIABLE, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, INTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, ATT_ITEM_POS, ATT_LINE_LENGTH, ATT_VERTEXT_ONE, ATT_VERTEXT_TWO, ATT_HOLE_OFFSET_A, ATT_HOLE_OFFSET_B, UNIT_CENTIMETER, UNIT_INCH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_CENTERING_2D, EXTERNAL_EVENT_DUPLICATE_ELEMENT, EXTERNAL_EVENT_DELETE_ELEMENT, ELEMENT_HOLE, ELEMENT_ITEM, ELEMENT_LINE } from "../constants";
9
9
  import { isEmpty } from "./helper";
10
10
  import exporter from "../catalog/utils/exporter";
11
11
  import { render2DItem, render3DItem, render3DApplianceItem, render3DLightingItem } from "../catalog/utils/item-loader";
@@ -896,13 +896,49 @@ projectActions) {
896
896
  projectActions.setProperties(properties);
897
897
  }
898
898
  }
899
+ function getElement(objProps, state) {
900
+ var layerID = state.scene.selectedLayer;
901
+ var curObject = null;
902
+ if (!isEmpty(objProps === null || objProps === void 0 ? void 0 : objProps.elementPrototype) && !isEmpty(objProps === null || objProps === void 0 ? void 0 : objProps.elementId)) curObject = state.getIn(['scene', 'layers', layerID, objProps.elementPrototype, objProps.elementId]);else {
903
+ // if no specified object property then get the first selected element
904
+ var layer = state.scene.layers.get(state.scene.selectedLayer);
905
+ var selected = [];
906
+ layer.selected.forEach(function (data, prototype) {
907
+ if (prototype == 'vertices') return;
908
+ if (data.size > 0) {
909
+ var values = data.toJS();
910
+ for (var i = 0; i < values.length; i++) {
911
+ selected.push({
912
+ type: prototype,
913
+ id: values[i]
914
+ });
915
+ }
916
+ }
917
+ });
918
+ if (selected.length === 1) {
919
+ var selData = selected[0];
920
+ switch (selData.type) {
921
+ case ELEMENT_HOLE:
922
+ curObject = layer.holes.get(selData.id);
923
+ break;
924
+ case ELEMENT_ITEM:
925
+ curObject = layer.items.get(selData.id);
926
+ break;
927
+ case ELEMENT_LINE:
928
+ curObject = layer.lines.get(selData.id);
929
+ break;
930
+ }
931
+ }
932
+ }
933
+ return curObject;
934
+ }
899
935
  export function handleExternalEvent(_x1) {
900
936
  return _handleExternalEvent.apply(this, arguments);
901
937
  }
902
938
  function _handleExternalEvent() {
903
939
  _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(props) {
904
940
  var _evt$payload3, _evt$payload4;
905
- var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, layer, bb, w, h, viewer, _evt$payload7, moldingInfo, isGlobal, _evt$payload8, option, _value3, layerId, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _props$onInternalEven2, _t5, _t6;
941
+ var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, layer, bb, w, h, viewer, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value3, layerId, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _props$onInternalEven2, _t5, _t6;
906
942
  return _regeneratorRuntime.wrap(function (_context8) {
907
943
  while (1) switch (_context8.prev = _context8.next) {
908
944
  case 0:
@@ -910,7 +946,7 @@ function _handleExternalEvent() {
910
946
  evt = props.externalEvent;
911
947
  state = props.state.get('KitchenConfigurator');
912
948
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
913
- _context8.next = _t5 === EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === EXTERNAL_EVENT_NEW_PROJECT ? 19 : _t5 === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 20 : _t5 === EXTERNAL_EVENT_SET_INITIAL_DATA ? 21 : _t5 === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 22 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 23 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 24 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 25 : _t5 === EXTERNAL_EVENT_UNDO ? 26 : _t5 === EXTERNAL_EVENT_REDO ? 27 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 28 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 29 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 30 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 30 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 31 : 32;
949
+ _context8.next = _t5 === EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === EXTERNAL_EVENT_NEW_PROJECT ? 19 : _t5 === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 20 : _t5 === EXTERNAL_EVENT_SET_INITIAL_DATA ? 21 : _t5 === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 22 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 23 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 24 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 25 : _t5 === EXTERNAL_EVENT_UNDO ? 26 : _t5 === EXTERNAL_EVENT_REDO ? 27 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 28 : _t5 === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 29 : _t5 === EXTERNAL_EVENT_DELETE_ELEMENT ? 30 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 31 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 32 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 32 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 33 : 34;
914
950
  break;
915
951
  case 1:
916
952
  // prepare item data request
@@ -986,23 +1022,23 @@ function _handleExternalEvent() {
986
1022
  };
987
1023
  }());
988
1024
  }
989
- return _context8.abrupt("continue", 32);
1025
+ return _context8.abrupt("continue", 34);
990
1026
  case 5:
991
1027
  props.projectActions.setMode(MODE_IDLE_3D);
992
- return _context8.abrupt("continue", 32);
1028
+ return _context8.abrupt("continue", 34);
993
1029
  case 6:
994
1030
  props.projectActions.setMode(MODE_IDLE);
995
- return _context8.abrupt("continue", 32);
1031
+ return _context8.abrupt("continue", 34);
996
1032
  case 7:
997
1033
  sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
998
1034
  if (sLineCnt > 0) props.projectActions.setMode(MODE_ELEVATION_VIEW);
999
- return _context8.abrupt("continue", 32);
1035
+ return _context8.abrupt("continue", 34);
1000
1036
  case 8:
1001
1037
  if (state.mode === MODE_IDLE || state.mode === MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1002
1038
  props.projectActions.setMode(MODE_IDLE);
1003
1039
  props.linesActions.selectToolDrawingLine('wall');
1004
1040
  }
1005
- return _context8.abrupt("continue", 32);
1041
+ return _context8.abrupt("continue", 34);
1006
1042
  case 9:
1007
1043
  if (isEmpty(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1008
1044
  _context8.next = 11;
@@ -1033,10 +1069,10 @@ function _handleExternalEvent() {
1033
1069
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1034
1070
  props.projectActions.setIsCabinetDrawing(true);
1035
1071
  case 11:
1036
- return _context8.abrupt("continue", 32);
1072
+ return _context8.abrupt("continue", 34);
1037
1073
  case 12:
1038
1074
  ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$payload3 = evt.payload) === null || _evt$payload3 === void 0 ? void 0 : _evt$payload3.holeName) : props.holesActions.selectToolDrawingHole(evt === null || evt === void 0 || (_evt$payload4 = evt.payload) === null || _evt$payload4 === void 0 ? void 0 : _evt$payload4.holeName);
1039
- return _context8.abrupt("continue", 32);
1075
+ return _context8.abrupt("continue", 34);
1040
1076
  case 13:
1041
1077
  _evt$payload5 = evt.payload, moveType = _evt$payload5.moveType, moveValue = _evt$payload5.moveValue;
1042
1078
  value = state.getIn(['viewer2D']).toJS();
@@ -1057,23 +1093,23 @@ function _handleExternalEvent() {
1057
1093
  return _context8.abrupt("continue", 18);
1058
1094
  case 18:
1059
1095
  updateViwer2D(value, props.viewer2DActions);
1060
- return _context8.abrupt("continue", 32);
1096
+ return _context8.abrupt("continue", 34);
1061
1097
  case 19:
1062
1098
  defaulTitle = 'Untitle';
1063
1099
  props.projectActions.newProject();
1064
1100
  props.projectActions.rename(defaulTitle);
1065
- return _context8.abrupt("continue", 32);
1101
+ return _context8.abrupt("continue", 34);
1066
1102
  case 20:
1067
1103
  _evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, itemCDS = _evt$payload6.itemCDS, isAll = _evt$payload6.isAll;
1068
1104
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1069
- return _context8.abrupt("continue", 32);
1105
+ return _context8.abrupt("continue", 34);
1070
1106
  case 21:
1071
1107
  _doorStyle = evt.payload.doorStyle;
1072
1108
  props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle);
1073
- return _context8.abrupt("continue", 32);
1109
+ return _context8.abrupt("continue", 34);
1074
1110
  case 22:
1075
1111
  props.projectActions.loadProject(evt.payload);
1076
- return _context8.abrupt("continue", 32);
1112
+ return _context8.abrupt("continue", 34);
1077
1113
  case 23:
1078
1114
  _value = state.getIn(['viewer2D']).toJS();
1079
1115
  _value.a += 0.1;
@@ -1081,7 +1117,7 @@ function _handleExternalEvent() {
1081
1117
  _value.e -= _value.SVGWidth * 0.1 / 2;
1082
1118
  _value.f -= _value.SVGHeight * 0.1 / 2;
1083
1119
  updateViwer2D(_value, props.viewer2DActions);
1084
- return _context8.abrupt("continue", 32);
1120
+ return _context8.abrupt("continue", 34);
1085
1121
  case 24:
1086
1122
  _value2 = state.getIn(['viewer2D']).toJS();
1087
1123
  _value2.a -= 0.1;
@@ -1089,7 +1125,7 @@ function _handleExternalEvent() {
1089
1125
  _value2.e += _value2.SVGWidth * 0.1 / 2;
1090
1126
  _value2.f += _value2.SVGHeight * 0.1 / 2;
1091
1127
  updateViwer2D(_value2, props.viewer2DActions);
1092
- return _context8.abrupt("continue", 32);
1128
+ return _context8.abrupt("continue", 34);
1093
1129
  case 25:
1094
1130
  // calculate the bounding box of all elements in plan
1095
1131
  layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
@@ -1116,18 +1152,26 @@ function _handleExternalEvent() {
1116
1152
  viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
1117
1153
  updateViwer2D(viewer, props.viewer2DActions);
1118
1154
  }
1119
- return _context8.abrupt("continue", 32);
1155
+ return _context8.abrupt("continue", 34);
1120
1156
  case 26:
1121
1157
  props.projectActions.undo();
1122
- return _context8.abrupt("continue", 32);
1158
+ return _context8.abrupt("continue", 34);
1123
1159
  case 27:
1124
1160
  props.projectActions.redo();
1125
- return _context8.abrupt("continue", 32);
1161
+ return _context8.abrupt("continue", 34);
1126
1162
  case 28:
1127
1163
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1128
1164
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1129
- return _context8.abrupt("continue", 32);
1165
+ return _context8.abrupt("continue", 34);
1130
1166
  case 29:
1167
+ distElement = getElement(evt.payload, state);
1168
+ if (distElement) props.itemsActions.duplicateSelected(distElement);
1169
+ return _context8.abrupt("continue", 34);
1170
+ case 30:
1171
+ _distElement = getElement(evt.payload, state);
1172
+ if (_distElement) props.projectActions.remove(_distElement);
1173
+ return _context8.abrupt("continue", 34);
1174
+ case 31:
1131
1175
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value3 = _evt$payload8.value;
1132
1176
  if (option === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1133
1177
  props.viewer2DActions.updateCeilHeight(_value3);
@@ -1141,16 +1185,16 @@ function _handleExternalEvent() {
1141
1185
  } else if (option === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1142
1186
  props.viewer2DActions.changeWindowDoorMeasure(_value3);
1143
1187
  }
1144
- return _context8.abrupt("continue", 32);
1145
- case 30:
1188
+ return _context8.abrupt("continue", 34);
1189
+ case 32:
1146
1190
  layerId = state.getIn(['scene', 'selectedLayer']);
1147
1191
  _layer = state.getIn(['scene', 'layers', layerId]);
1148
1192
  _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1149
1193
  for (_i2 = 0; _i2 < selectedLines.size; _i2++) (evt === null || evt === void 0 ? void 0 : evt.type) === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, state, _layer, props.projectActions) : updatePropertyOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, props.catalog, props.projectActions);
1150
1194
  for (_i3 = 0; _i3 < selectedHoles.size; _i3++) (evt === null || evt === void 0 ? void 0 : evt.type) === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, state, _layer, props.projectActions) : updatePropertyOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, props.catalog, props.projectActions);
1151
1195
  for (_i4 = 0; _i4 < selectedItems.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, state, _layer, props.projectActions) : updatePropertyOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, props.catalog, props.projectActions);
1152
- return _context8.abrupt("continue", 32);
1153
- case 31:
1196
+ return _context8.abrupt("continue", 34);
1197
+ case 33:
1154
1198
  // send scene object from 3DTool to HostApp using internalEvent
1155
1199
  (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1156
1200
  type: INTERNAL_EVENT_SYNC_SCENE,
@@ -1158,8 +1202,8 @@ function _handleExternalEvent() {
1158
1202
  scene: state.scene.toJS()
1159
1203
  }
1160
1204
  });
1161
- return _context8.abrupt("continue", 32);
1162
- case 32:
1205
+ return _context8.abrupt("continue", 34);
1206
+ case 34:
1163
1207
  case "end":
1164
1208
  return _context8.stop();
1165
1209
  }
@@ -150,8 +150,10 @@ function setHolesAttributes(holesAttributes) {
150
150
  };
151
151
  }
152
152
  function remove() {
153
+ var delObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
153
154
  return {
154
- type: _constants.REMOVE
155
+ type: _constants.REMOVE,
156
+ delObject: delObject
155
157
  };
156
158
  }
157
159
  function undo() {
@@ -303,29 +303,52 @@ var Project = exports["default"] = /*#__PURE__*/function () {
303
303
  }
304
304
  }, {
305
305
  key: "remove",
306
- value: function remove(state) {
306
+ value: function remove(state, delObject) {
307
307
  var selectedLayer = state.getIn(['scene', 'selectedLayer']);
308
308
  var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
309
309
  selectedLines = _state$getIn.lines,
310
310
  selectedHoles = _state$getIn.holes,
311
311
  selectedItems = _state$getIn.items;
312
- var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
313
- var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', 'lines']).toJS();
314
- var lineID = selLines[0];
315
- var delLine = !(0, _helper.isEmpty)(lineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', lineID]).toJS();
316
- var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
317
312
  var relatedLines = [];
318
- !(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
319
- selectedLines.forEach(function (lineID) {
320
- state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
321
- });
322
- selectedHoles.forEach(function (holeID) {
323
- state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
324
- });
325
- selectedItems.forEach(function (itemID) {
326
- state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
327
- });
328
- if (!(0, _helper.isEmpty)(selectedLines) && !(0, _helper.isEmpty)(relatedLines)) {
313
+
314
+ // if deleting element is line then get the related lines that to update walls
315
+ if (delObject && delObject.prototype === constants.ELEMENT_LINE || (0, _helper.isEmpty)(delObject) && !(0, _helper.isEmpty)(selectedLines)) {
316
+ var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
317
+ var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', constants.ELEMENT_LINE]).toJS();
318
+ var curSelLineID = (delObject === null || delObject === void 0 ? void 0 : delObject.prototype) === constants.ELEMENT_LINE ? delObject.id : selLines[0];
319
+ var delLine = !(0, _helper.isEmpty)(curSelLineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', curSelLineID]).toJS();
320
+ var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
321
+ !(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
322
+ }
323
+
324
+ // delete element
325
+ if (delObject) {
326
+ switch (delObject.prototype) {
327
+ case constants.ELEMENT_LINE:
328
+ state = _export2.Line.remove(state, selectedLayer, delObject.id).updatedState;
329
+ break;
330
+ case constants.ELEMENT_HOLE:
331
+ state = _export2.Hole.remove(state, selectedLayer, delObject.id).updatedState;
332
+ break;
333
+ case constants.ELEMENT_ITEM:
334
+ state = _export2.Item.remove(state, selectedLayer, delObject.id).updatedState;
335
+ break;
336
+ }
337
+ } else {
338
+ // no specified object, then remove all selected elements
339
+ selectedLines.forEach(function (lineID) {
340
+ state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
341
+ });
342
+ selectedHoles.forEach(function (holeID) {
343
+ state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
344
+ });
345
+ selectedItems.forEach(function (itemID) {
346
+ state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
347
+ });
348
+ }
349
+
350
+ // update wall if line removed
351
+ if (!(0, _helper.isEmpty)(relatedLines)) {
329
352
  state = state.setIn(['mode'], _constants.MODE_DRAWING_LINE);
330
353
  relatedLines.forEach(function (relLine, index) {
331
354
  state = _export2.Line.select(state, selectedLayer, relLine.id).updatedState;
package/lib/constants.js CHANGED
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- 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 = 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.EDIT_WIDTH = exports.EDIT = exports.DUPLICATE_SELECTED = exports.DISTANCE_MEASUREMENT_LINE_COLOR = exports.DISTANCE_EPSILON = exports.DIFFERENT_VALUES_PATH_LENGTH = exports.DELTA = exports.DEFAULT_FONT_FAMILY = exports.DECIMAL_PLACES_3 = exports.DECIMAL_PLACES_2 = exports.DASH_LINE_COLOR = exports.COPY_PROPERTIES = exports.CLIENTS_NAME = exports.CHANGE_WINDOW_DOOR_MEASURE = exports.CHANGE_WALL_LENGTH_MEASURE = exports.CHANGE_WALL_CABINET_MEASURE = 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.ACCENT_COLOR = void 0;
7
- 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 = 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_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_SYNC_SCENE = exports.INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_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_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_INITIAL_DATA = 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_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_ADD_WALL = void 0;
8
- exports.SET_PROPERTIES = exports.SET_PROJECT_PROPERTIES = exports.SET_PROJECT_ID = exports.SET_MOVE_STATUS = exports.SET_MOLDING = exports.SET_MODELLING = exports.SET_MODE = exports.SET_LINES_ATTRIBUTES = exports.SET_LAYER_PROPERTIES = 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 = 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_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_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 = void 0;
9
- exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = 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 = exports.UNSELECT_GROUP = exports.UNSELECT_ALL = exports.UNIT_MILLIMETER = exports.UNIT_MILE = exports.UNIT_METER = 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 = 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 = void 0;
6
+ 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 = 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.DISTANCE_MEASUREMENT_LINE_COLOR = exports.DISTANCE_EPSILON = exports.DIFFERENT_VALUES_PATH_LENGTH = exports.DELTA = exports.DEFAULT_FONT_FAMILY = exports.DECIMAL_PLACES_3 = exports.DECIMAL_PLACES_2 = exports.DASH_LINE_COLOR = exports.COPY_PROPERTIES = exports.CLIENTS_NAME = exports.CHANGE_WINDOW_DOOR_MEASURE = exports.CHANGE_WALL_LENGTH_MEASURE = exports.CHANGE_WALL_CABINET_MEASURE = 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.ACCENT_COLOR = void 0;
7
+ 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 = 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_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_SYNC_SCENE = exports.INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_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_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_INITIAL_DATA = 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 = void 0;
8
+ exports.SET_LINES_ATTRIBUTES = exports.SET_LAYER_PROPERTIES = 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 = 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_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_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 = void 0;
9
+ 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 = exports.UNSELECT_GROUP = exports.UNSELECT_ALL = exports.UNIT_MILLIMETER = exports.UNIT_MILE = exports.UNIT_METER = 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_MOLDING = exports.SET_MODELLING = exports.SET_MODE = 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.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = void 0;
11
11
  //API server
12
12
  // export const API_SERVER = 'http://localhost:3000/';
13
13
  // ACTIONS project
@@ -685,6 +685,12 @@ var RIGHT_DIST_ANG = exports.RIGHT_DIST_ANG = 180;
685
685
  var BACK_DIST_ANG = exports.BACK_DIST_ANG = 90;
686
686
  var FRONT_DIST_ANG = exports.FRONT_DIST_ANG = -90;
687
687
 
688
+ // element prototype
689
+ var ELEMENT_LINE = exports.ELEMENT_LINE = 'lines';
690
+ var ELEMENT_HOLE = exports.ELEMENT_HOLE = 'holes';
691
+ var ELEMENT_ITEM = exports.ELEMENT_ITEM = 'items';
692
+ var ELEMENT_AREA = exports.ELEMENT_AREA = 'areas';
693
+ var ELEMENT_VERTEX = exports.ELEMENT_VERTEX = 'vertices';
688
694
  // element attributes
689
695
  var ATT_ITEM_POS = exports.ATT_ITEM_POS = 'pos';
690
696
  var ATT_ITEM_ROTATION = exports.ATT_ITEM_ROTATION = 'rotation';
@@ -722,9 +728,12 @@ var EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_UNDO = 'EXTERNAL_EVENT_UNDO';
722
728
  var EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_REDO = 'EXTERNAL_EVENT_REDO';
723
729
  var EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
724
730
  var EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING'; // project setting event
731
+ var EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_CENTERING_2D = 'EXTERNAL_EVENT_CENTERING_2D';
732
+ var EXTERNAL_EVENT_DUPLICATE_ELEMENT = exports.EXTERNAL_EVENT_DUPLICATE_ELEMENT = 'EXTERNAL_EVENT_DUPLICATE_ELEMENT';
733
+ var EXTERNAL_EVENT_DELETE_ELEMENT = exports.EXTERNAL_EVENT_DELETE_ELEMENT = 'EXTERNAL_EVENT_DELETE_ELEMENT';
725
734
  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
726
735
  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
727
- var EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_CENTERING_2D = 'EXTERNAL_EVENT_CENTERING_2D';
736
+
728
737
  // internal event type
729
738
  var INTERNAL_EVENT_UNSELECT_ALL = exports.INTERNAL_EVENT_UNSELECT_ALL = 'INTERNAL_EVENT_UNSELECT_ALL';
730
739
  var INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';
@@ -395,6 +395,30 @@ function WorkSpace(props) {
395
395
  setExternalEvent(evt);
396
396
  }
397
397
  }, "Distance from floor 10\""), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
398
+ actionType: "danger",
399
+ onClick: function onClick() {
400
+ var evt = {
401
+ type: _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT,
402
+ payload: {
403
+ elementPrototype: _constants.ELEMENT_ITEM,
404
+ elementId: '' // id of current operating element
405
+ }
406
+ };
407
+ setExternalEvent(evt);
408
+ }
409
+ }, "Duplicate Item"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
410
+ actionType: "danger",
411
+ onClick: function onClick() {
412
+ var evt = {
413
+ type: _constants.EXTERNAL_EVENT_DELETE_ELEMENT,
414
+ payload: {
415
+ elementPrototype: _constants.ELEMENT_ITEM,
416
+ elementId: '' // id of current operating element
417
+ }
418
+ };
419
+ setExternalEvent(evt);
420
+ }
421
+ }, "Delete Item"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
398
422
  actionType: "danger",
399
423
  onClick: function onClick() {
400
424
  var evt = {
@@ -49,7 +49,7 @@ function _default(state, action) {
49
49
  state = state.merge({
50
50
  sceneHistory: _export.history.historyPush(state.sceneHistory, state.scene)
51
51
  });
52
- return _export2.Project.remove(state).updatedState;
52
+ return _export2.Project.remove(state, action.delObject).updatedState;
53
53
  case _constants.UNDO:
54
54
  return _export2.Project.undo(state).updatedState;
55
55
  case _constants.REDO:
@@ -903,13 +903,49 @@ projectActions) {
903
903
  projectActions.setProperties(properties);
904
904
  }
905
905
  }
906
+ function getElement(objProps, state) {
907
+ var layerID = state.scene.selectedLayer;
908
+ var curObject = null;
909
+ if (!(0, _helper.isEmpty)(objProps === null || objProps === void 0 ? void 0 : objProps.elementPrototype) && !(0, _helper.isEmpty)(objProps === null || objProps === void 0 ? void 0 : objProps.elementId)) curObject = state.getIn(['scene', 'layers', layerID, objProps.elementPrototype, objProps.elementId]);else {
910
+ // if no specified object property then get the first selected element
911
+ var layer = state.scene.layers.get(state.scene.selectedLayer);
912
+ var selected = [];
913
+ layer.selected.forEach(function (data, prototype) {
914
+ if (prototype == 'vertices') return;
915
+ if (data.size > 0) {
916
+ var values = data.toJS();
917
+ for (var i = 0; i < values.length; i++) {
918
+ selected.push({
919
+ type: prototype,
920
+ id: values[i]
921
+ });
922
+ }
923
+ }
924
+ });
925
+ if (selected.length === 1) {
926
+ var selData = selected[0];
927
+ switch (selData.type) {
928
+ case _constants.ELEMENT_HOLE:
929
+ curObject = layer.holes.get(selData.id);
930
+ break;
931
+ case _constants.ELEMENT_ITEM:
932
+ curObject = layer.items.get(selData.id);
933
+ break;
934
+ case _constants.ELEMENT_LINE:
935
+ curObject = layer.lines.get(selData.id);
936
+ break;
937
+ }
938
+ }
939
+ }
940
+ return curObject;
941
+ }
906
942
  function handleExternalEvent(_x1) {
907
943
  return _handleExternalEvent.apply(this, arguments);
908
944
  }
909
945
  function _handleExternalEvent() {
910
946
  _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(props) {
911
947
  var _evt$payload3, _evt$payload4;
912
- var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, layer, bb, w, h, viewer, _evt$payload7, moldingInfo, isGlobal, _evt$payload8, option, _value3, layerId, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _props$onInternalEven2, _t5, _t6;
948
+ var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, layer, bb, w, h, viewer, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value3, layerId, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _props$onInternalEven2, _t5, _t6;
913
949
  return _regenerator["default"].wrap(function (_context8) {
914
950
  while (1) switch (_context8.prev = _context8.next) {
915
951
  case 0:
@@ -917,7 +953,7 @@ function _handleExternalEvent() {
917
953
  evt = props.externalEvent;
918
954
  state = props.state.get('KitchenConfigurator');
919
955
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
920
- _context8.next = _t5 === _constants.EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === _constants.EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === _constants.EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 19 : _t5 === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 20 : _t5 === _constants.EXTERNAL_EVENT_SET_INITIAL_DATA ? 21 : _t5 === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 22 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_IN ? 23 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 24 : _t5 === _constants.EXTERNAL_EVENT_CENTERING_2D ? 25 : _t5 === _constants.EXTERNAL_EVENT_UNDO ? 26 : _t5 === _constants.EXTERNAL_EVENT_REDO ? 27 : _t5 === _constants.EXTERNAL_EVENT_SET_MOLDING ? 28 : _t5 === _constants.EXTERNAL_EVENT_PROJECT_SETTING ? 29 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 30 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 30 : _t5 === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 31 : 32;
956
+ _context8.next = _t5 === _constants.EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === _constants.EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === _constants.EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 19 : _t5 === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 20 : _t5 === _constants.EXTERNAL_EVENT_SET_INITIAL_DATA ? 21 : _t5 === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 22 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_IN ? 23 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 24 : _t5 === _constants.EXTERNAL_EVENT_CENTERING_2D ? 25 : _t5 === _constants.EXTERNAL_EVENT_UNDO ? 26 : _t5 === _constants.EXTERNAL_EVENT_REDO ? 27 : _t5 === _constants.EXTERNAL_EVENT_SET_MOLDING ? 28 : _t5 === _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 29 : _t5 === _constants.EXTERNAL_EVENT_DELETE_ELEMENT ? 30 : _t5 === _constants.EXTERNAL_EVENT_PROJECT_SETTING ? 31 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 32 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 32 : _t5 === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 33 : 34;
921
957
  break;
922
958
  case 1:
923
959
  // prepare item data request
@@ -993,23 +1029,23 @@ function _handleExternalEvent() {
993
1029
  };
994
1030
  }());
995
1031
  }
996
- return _context8.abrupt("continue", 32);
1032
+ return _context8.abrupt("continue", 34);
997
1033
  case 5:
998
1034
  props.projectActions.setMode(_constants.MODE_IDLE_3D);
999
- return _context8.abrupt("continue", 32);
1035
+ return _context8.abrupt("continue", 34);
1000
1036
  case 6:
1001
1037
  props.projectActions.setMode(_constants.MODE_IDLE);
1002
- return _context8.abrupt("continue", 32);
1038
+ return _context8.abrupt("continue", 34);
1003
1039
  case 7:
1004
1040
  sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1005
1041
  if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
1006
- return _context8.abrupt("continue", 32);
1042
+ return _context8.abrupt("continue", 34);
1007
1043
  case 8:
1008
1044
  if (state.mode === _constants.MODE_IDLE || state.mode === _constants.MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1009
1045
  props.projectActions.setMode(_constants.MODE_IDLE);
1010
1046
  props.linesActions.selectToolDrawingLine('wall');
1011
1047
  }
1012
- return _context8.abrupt("continue", 32);
1048
+ return _context8.abrupt("continue", 34);
1013
1049
  case 9:
1014
1050
  if ((0, _helper.isEmpty)(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1015
1051
  _context8.next = 11;
@@ -1040,10 +1076,10 @@ function _handleExternalEvent() {
1040
1076
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1041
1077
  props.projectActions.setIsCabinetDrawing(true);
1042
1078
  case 11:
1043
- return _context8.abrupt("continue", 32);
1079
+ return _context8.abrupt("continue", 34);
1044
1080
  case 12:
1045
1081
  _constants.ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$payload3 = evt.payload) === null || _evt$payload3 === void 0 ? void 0 : _evt$payload3.holeName) : props.holesActions.selectToolDrawingHole(evt === null || evt === void 0 || (_evt$payload4 = evt.payload) === null || _evt$payload4 === void 0 ? void 0 : _evt$payload4.holeName);
1046
- return _context8.abrupt("continue", 32);
1082
+ return _context8.abrupt("continue", 34);
1047
1083
  case 13:
1048
1084
  _evt$payload5 = evt.payload, moveType = _evt$payload5.moveType, moveValue = _evt$payload5.moveValue;
1049
1085
  value = state.getIn(['viewer2D']).toJS();
@@ -1064,23 +1100,23 @@ function _handleExternalEvent() {
1064
1100
  return _context8.abrupt("continue", 18);
1065
1101
  case 18:
1066
1102
  updateViwer2D(value, props.viewer2DActions);
1067
- return _context8.abrupt("continue", 32);
1103
+ return _context8.abrupt("continue", 34);
1068
1104
  case 19:
1069
1105
  defaulTitle = 'Untitle';
1070
1106
  props.projectActions.newProject();
1071
1107
  props.projectActions.rename(defaulTitle);
1072
- return _context8.abrupt("continue", 32);
1108
+ return _context8.abrupt("continue", 34);
1073
1109
  case 20:
1074
1110
  _evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, itemCDS = _evt$payload6.itemCDS, isAll = _evt$payload6.isAll;
1075
1111
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1076
- return _context8.abrupt("continue", 32);
1112
+ return _context8.abrupt("continue", 34);
1077
1113
  case 21:
1078
1114
  _doorStyle = evt.payload.doorStyle;
1079
1115
  props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle);
1080
- return _context8.abrupt("continue", 32);
1116
+ return _context8.abrupt("continue", 34);
1081
1117
  case 22:
1082
1118
  props.projectActions.loadProject(evt.payload);
1083
- return _context8.abrupt("continue", 32);
1119
+ return _context8.abrupt("continue", 34);
1084
1120
  case 23:
1085
1121
  _value = state.getIn(['viewer2D']).toJS();
1086
1122
  _value.a += 0.1;
@@ -1088,7 +1124,7 @@ function _handleExternalEvent() {
1088
1124
  _value.e -= _value.SVGWidth * 0.1 / 2;
1089
1125
  _value.f -= _value.SVGHeight * 0.1 / 2;
1090
1126
  updateViwer2D(_value, props.viewer2DActions);
1091
- return _context8.abrupt("continue", 32);
1127
+ return _context8.abrupt("continue", 34);
1092
1128
  case 24:
1093
1129
  _value2 = state.getIn(['viewer2D']).toJS();
1094
1130
  _value2.a -= 0.1;
@@ -1096,7 +1132,7 @@ function _handleExternalEvent() {
1096
1132
  _value2.e += _value2.SVGWidth * 0.1 / 2;
1097
1133
  _value2.f += _value2.SVGHeight * 0.1 / 2;
1098
1134
  updateViwer2D(_value2, props.viewer2DActions);
1099
- return _context8.abrupt("continue", 32);
1135
+ return _context8.abrupt("continue", 34);
1100
1136
  case 25:
1101
1137
  // calculate the bounding box of all elements in plan
1102
1138
  layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
@@ -1123,18 +1159,26 @@ function _handleExternalEvent() {
1123
1159
  viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
1124
1160
  updateViwer2D(viewer, props.viewer2DActions);
1125
1161
  }
1126
- return _context8.abrupt("continue", 32);
1162
+ return _context8.abrupt("continue", 34);
1127
1163
  case 26:
1128
1164
  props.projectActions.undo();
1129
- return _context8.abrupt("continue", 32);
1165
+ return _context8.abrupt("continue", 34);
1130
1166
  case 27:
1131
1167
  props.projectActions.redo();
1132
- return _context8.abrupt("continue", 32);
1168
+ return _context8.abrupt("continue", 34);
1133
1169
  case 28:
1134
1170
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1135
1171
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1136
- return _context8.abrupt("continue", 32);
1172
+ return _context8.abrupt("continue", 34);
1137
1173
  case 29:
1174
+ distElement = getElement(evt.payload, state);
1175
+ if (distElement) props.itemsActions.duplicateSelected(distElement);
1176
+ return _context8.abrupt("continue", 34);
1177
+ case 30:
1178
+ _distElement = getElement(evt.payload, state);
1179
+ if (_distElement) props.projectActions.remove(_distElement);
1180
+ return _context8.abrupt("continue", 34);
1181
+ case 31:
1138
1182
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value3 = _evt$payload8.value;
1139
1183
  if (option === _constants.PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1140
1184
  props.viewer2DActions.updateCeilHeight(_value3);
@@ -1148,16 +1192,16 @@ function _handleExternalEvent() {
1148
1192
  } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1149
1193
  props.viewer2DActions.changeWindowDoorMeasure(_value3);
1150
1194
  }
1151
- return _context8.abrupt("continue", 32);
1152
- case 30:
1195
+ return _context8.abrupt("continue", 34);
1196
+ case 32:
1153
1197
  layerId = state.getIn(['scene', 'selectedLayer']);
1154
1198
  _layer = state.getIn(['scene', 'layers', layerId]);
1155
1199
  _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1156
1200
  for (_i2 = 0; _i2 < selectedLines.size; _i2++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, state, _layer, props.projectActions) : updatePropertyOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, props.catalog, props.projectActions);
1157
1201
  for (_i3 = 0; _i3 < selectedHoles.size; _i3++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, state, _layer, props.projectActions) : updatePropertyOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, props.catalog, props.projectActions);
1158
1202
  for (_i4 = 0; _i4 < selectedItems.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, state, _layer, props.projectActions) : updatePropertyOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, props.catalog, props.projectActions);
1159
- return _context8.abrupt("continue", 32);
1160
- case 31:
1203
+ return _context8.abrupt("continue", 34);
1204
+ case 33:
1161
1205
  // send scene object from 3DTool to HostApp using internalEvent
1162
1206
  (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1163
1207
  type: _constants.INTERNAL_EVENT_SYNC_SCENE,
@@ -1165,8 +1209,8 @@ function _handleExternalEvent() {
1165
1209
  scene: state.scene.toJS()
1166
1210
  }
1167
1211
  });
1168
- return _context8.abrupt("continue", 32);
1169
- case 32:
1212
+ return _context8.abrupt("continue", 34);
1213
+ case 34:
1170
1214
  case "end":
1171
1215
  return _context8.stop();
1172
1216
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "2.0.10",
3
+ "version": "2.0.11",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",