kitchen-simulator 2.0.10 → 2.0.12

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() {
@@ -58,6 +58,7 @@ var Project = /*#__PURE__*/function () {
58
58
  }, {
59
59
  key: "loadProject",
60
60
  value: function loadProject(state, sceneJSON) {
61
+ var _sceneJSON$layers$lay;
61
62
  var doorStyle = state.doorStyle;
62
63
  var layerID = state.scene.selectedLayer;
63
64
  var _viewer2D = state.viewer2D;
@@ -90,6 +91,14 @@ var Project = /*#__PURE__*/function () {
90
91
  for (var x in json_items) {
91
92
  _loop(x);
92
93
  }
94
+
95
+ // making layer's doorStyle when changing room shape
96
+ if (isEmpty(sceneJSON === null || sceneJSON === void 0 || (_sceneJSON$layers$lay = sceneJSON.layers[layerID]) === null || _sceneJSON$layers$lay === void 0 ? void 0 : _sceneJSON$layers$lay.doorStyle)) {
97
+ var newlayer = _objectSpread(_objectSpread({}, sceneJSON === null || sceneJSON === void 0 ? void 0 : sceneJSON.layers[layerID]), {}, {
98
+ doorStyle: doorStyle.toJS()
99
+ });
100
+ sceneJSON && (sceneJSON.layers[layerID] = newlayer);
101
+ }
93
102
  var newScene = new Scene(sceneJSON);
94
103
  state = new State({
95
104
  scene: newScene.toJS(),
@@ -151,10 +160,10 @@ var Project = /*#__PURE__*/function () {
151
160
  f: f
152
161
  });
153
162
  }
154
- if (!doorStyle) {
155
- if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
156
- doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
157
- }
163
+
164
+ // Matching state.doorStyle with layer.doorStyle
165
+ if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
166
+ doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
158
167
  }
159
168
  state = state.merge({
160
169
  doorStyle: doorStyle,
@@ -294,29 +303,52 @@ var Project = /*#__PURE__*/function () {
294
303
  }
295
304
  }, {
296
305
  key: "remove",
297
- value: function remove(state) {
306
+ value: function remove(state, delObject) {
298
307
  var selectedLayer = state.getIn(['scene', 'selectedLayer']);
299
308
  var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
300
309
  selectedLines = _state$getIn.lines,
301
310
  selectedHoles = _state$getIn.holes,
302
311
  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
312
  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)) {
313
+
314
+ // if deleting element is line then get the related lines that to update walls
315
+ if (delObject && delObject.prototype === constants.ELEMENT_LINE || isEmpty(delObject) && !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 = !isEmpty(curSelLineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', curSelLineID]).toJS();
320
+ var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
321
+ !isEmpty(delLine) && 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 = Line.remove(state, selectedLayer, delObject.id).updatedState;
329
+ break;
330
+ case constants.ELEMENT_HOLE:
331
+ state = Hole.remove(state, selectedLayer, delObject.id).updatedState;
332
+ break;
333
+ case constants.ELEMENT_ITEM:
334
+ state = 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 = Line.remove(state, selectedLayer, lineID).updatedState;
341
+ });
342
+ selectedHoles.forEach(function (holeID) {
343
+ state = Hole.remove(state, selectedLayer, holeID).updatedState;
344
+ });
345
+ selectedItems.forEach(function (itemID) {
346
+ state = Item.remove(state, selectedLayer, itemID).updatedState;
347
+ });
348
+ }
349
+
350
+ // update wall if line removed
351
+ if (!isEmpty(relatedLines)) {
320
352
  state = state.setIn(['mode'], MODE_DRAWING_LINE);
321
353
  relatedLines.forEach(function (relLine, index) {
322
354
  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 = {
@@ -58,9 +58,7 @@ function WorkSpace(props) {
58
58
  var evt = {
59
59
  type: EXTERNAL_EVENT_SET_INITIAL_DATA,
60
60
  payload: {
61
- doorStyle: {
62
- doorStyle: doorStylePaylod2
63
- }
61
+ doorStyle: doorStylePaylod2
64
62
  }
65
63
  };
66
64
  setExternalEvent(evt);
@@ -319,6 +317,10 @@ function WorkSpace(props) {
319
317
  oldDistance: 0,
320
318
  newDistance: 10
321
319
  }
320
+ },
321
+ callback: function callback(updatedAttributeForm) {
322
+ console.log(updatedAttributeForm);
323
+ // Do something here with new attributes
322
324
  }
323
325
  };
324
326
  setExternalEvent(evt);
@@ -391,6 +393,30 @@ function WorkSpace(props) {
391
393
  setExternalEvent(evt);
392
394
  }
393
395
  }, "Distance from floor 10\""), /*#__PURE__*/React.createElement(Button, {
396
+ actionType: "danger",
397
+ onClick: function onClick() {
398
+ var evt = {
399
+ type: EXTERNAL_EVENT_DUPLICATE_ELEMENT,
400
+ payload: {
401
+ elementPrototype: ELEMENT_ITEM,
402
+ elementId: '' // id of current operating element
403
+ }
404
+ };
405
+ setExternalEvent(evt);
406
+ }
407
+ }, "Duplicate Item"), /*#__PURE__*/React.createElement(Button, {
408
+ actionType: "danger",
409
+ onClick: function onClick() {
410
+ var evt = {
411
+ type: EXTERNAL_EVENT_DELETE_ELEMENT,
412
+ payload: {
413
+ elementPrototype: ELEMENT_ITEM,
414
+ elementId: '' // id of current operating element
415
+ }
416
+ };
417
+ setExternalEvent(evt);
418
+ }
419
+ }, "Delete Item"), /*#__PURE__*/React.createElement(Button, {
394
420
  actionType: "danger",
395
421
  onClick: function onClick() {
396
422
  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";
@@ -675,6 +675,8 @@ function initPropData(element, catalog) {
675
675
  return new Map(mapped);
676
676
  }
677
677
  function updateAttributeOfSelectedElement(element, attrPayload, state, layer, projectActions) {
678
+ var _attributesFormData;
679
+ var callback = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
678
680
  var attributesFormData = initAttrData(element, layer, state);
679
681
  var value = attrPayload.value;
680
682
  var attributeName = attrPayload.attributeName;
@@ -874,10 +876,15 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, pr
874
876
  break;
875
877
  }
876
878
  }
879
+
880
+ // invoke callback
881
+ if (callback) callback((_attributesFormData = attributesFormData) === null || _attributesFormData === void 0 ? void 0 : _attributesFormData.toJS());
877
882
  }
878
883
  function updatePropertyOfSelectedElement(element, propertyPayload, catalog,
879
884
  // class instance of Catalog, get from props
880
885
  projectActions) {
886
+ var _propertiesFormData;
887
+ var callback = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
881
888
  var propertiesFormData = initPropData(element, catalog);
882
889
  var value = propertyPayload.value;
883
890
  var propertyName = propertyPayload.propertyName;
@@ -895,6 +902,45 @@ projectActions) {
895
902
  });
896
903
  projectActions.setProperties(properties);
897
904
  }
905
+
906
+ // invoke callback
907
+ if (callback) callback((_propertiesFormData = propertiesFormData) === null || _propertiesFormData === void 0 ? void 0 : _propertiesFormData.toJS());
908
+ }
909
+ function getElement(objProps, state) {
910
+ var layerID = state.scene.selectedLayer;
911
+ var curObject = null;
912
+ 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 {
913
+ // if no specified object property then get the first selected element
914
+ var layer = state.scene.layers.get(state.scene.selectedLayer);
915
+ var selected = [];
916
+ layer.selected.forEach(function (data, prototype) {
917
+ if (prototype == 'vertices') return;
918
+ if (data.size > 0) {
919
+ var values = data.toJS();
920
+ for (var i = 0; i < values.length; i++) {
921
+ selected.push({
922
+ type: prototype,
923
+ id: values[i]
924
+ });
925
+ }
926
+ }
927
+ });
928
+ if (selected.length === 1) {
929
+ var selData = selected[0];
930
+ switch (selData.type) {
931
+ case ELEMENT_HOLE:
932
+ curObject = layer.holes.get(selData.id);
933
+ break;
934
+ case ELEMENT_ITEM:
935
+ curObject = layer.items.get(selData.id);
936
+ break;
937
+ case ELEMENT_LINE:
938
+ curObject = layer.lines.get(selData.id);
939
+ break;
940
+ }
941
+ }
942
+ }
943
+ return curObject;
898
944
  }
899
945
  export function handleExternalEvent(_x1) {
900
946
  return _handleExternalEvent.apply(this, arguments);
@@ -902,7 +948,7 @@ export function handleExternalEvent(_x1) {
902
948
  function _handleExternalEvent() {
903
949
  _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(props) {
904
950
  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;
951
+ 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
952
  return _regeneratorRuntime.wrap(function (_context8) {
907
953
  while (1) switch (_context8.prev = _context8.next) {
908
954
  case 0:
@@ -910,7 +956,7 @@ function _handleExternalEvent() {
910
956
  evt = props.externalEvent;
911
957
  state = props.state.get('KitchenConfigurator');
912
958
  _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;
959
+ _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
960
  break;
915
961
  case 1:
916
962
  // prepare item data request
@@ -986,23 +1032,23 @@ function _handleExternalEvent() {
986
1032
  };
987
1033
  }());
988
1034
  }
989
- return _context8.abrupt("continue", 32);
1035
+ return _context8.abrupt("continue", 34);
990
1036
  case 5:
991
1037
  props.projectActions.setMode(MODE_IDLE_3D);
992
- return _context8.abrupt("continue", 32);
1038
+ return _context8.abrupt("continue", 34);
993
1039
  case 6:
994
1040
  props.projectActions.setMode(MODE_IDLE);
995
- return _context8.abrupt("continue", 32);
1041
+ return _context8.abrupt("continue", 34);
996
1042
  case 7:
997
1043
  sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
998
1044
  if (sLineCnt > 0) props.projectActions.setMode(MODE_ELEVATION_VIEW);
999
- return _context8.abrupt("continue", 32);
1045
+ return _context8.abrupt("continue", 34);
1000
1046
  case 8:
1001
1047
  if (state.mode === MODE_IDLE || state.mode === MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1002
1048
  props.projectActions.setMode(MODE_IDLE);
1003
1049
  props.linesActions.selectToolDrawingLine('wall');
1004
1050
  }
1005
- return _context8.abrupt("continue", 32);
1051
+ return _context8.abrupt("continue", 34);
1006
1052
  case 9:
1007
1053
  if (isEmpty(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1008
1054
  _context8.next = 11;
@@ -1033,10 +1079,10 @@ function _handleExternalEvent() {
1033
1079
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1034
1080
  props.projectActions.setIsCabinetDrawing(true);
1035
1081
  case 11:
1036
- return _context8.abrupt("continue", 32);
1082
+ return _context8.abrupt("continue", 34);
1037
1083
  case 12:
1038
1084
  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);
1085
+ return _context8.abrupt("continue", 34);
1040
1086
  case 13:
1041
1087
  _evt$payload5 = evt.payload, moveType = _evt$payload5.moveType, moveValue = _evt$payload5.moveValue;
1042
1088
  value = state.getIn(['viewer2D']).toJS();
@@ -1057,23 +1103,23 @@ function _handleExternalEvent() {
1057
1103
  return _context8.abrupt("continue", 18);
1058
1104
  case 18:
1059
1105
  updateViwer2D(value, props.viewer2DActions);
1060
- return _context8.abrupt("continue", 32);
1106
+ return _context8.abrupt("continue", 34);
1061
1107
  case 19:
1062
1108
  defaulTitle = 'Untitle';
1063
1109
  props.projectActions.newProject();
1064
1110
  props.projectActions.rename(defaulTitle);
1065
- return _context8.abrupt("continue", 32);
1111
+ return _context8.abrupt("continue", 34);
1066
1112
  case 20:
1067
1113
  _evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, itemCDS = _evt$payload6.itemCDS, isAll = _evt$payload6.isAll;
1068
1114
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1069
- return _context8.abrupt("continue", 32);
1115
+ return _context8.abrupt("continue", 34);
1070
1116
  case 21:
1071
1117
  _doorStyle = evt.payload.doorStyle;
1072
- props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle);
1073
- return _context8.abrupt("continue", 32);
1118
+ props.itemsActions.setInitialDoorStyle(_doorStyle);
1119
+ return _context8.abrupt("continue", 34);
1074
1120
  case 22:
1075
1121
  props.projectActions.loadProject(evt.payload);
1076
- return _context8.abrupt("continue", 32);
1122
+ return _context8.abrupt("continue", 34);
1077
1123
  case 23:
1078
1124
  _value = state.getIn(['viewer2D']).toJS();
1079
1125
  _value.a += 0.1;
@@ -1081,7 +1127,7 @@ function _handleExternalEvent() {
1081
1127
  _value.e -= _value.SVGWidth * 0.1 / 2;
1082
1128
  _value.f -= _value.SVGHeight * 0.1 / 2;
1083
1129
  updateViwer2D(_value, props.viewer2DActions);
1084
- return _context8.abrupt("continue", 32);
1130
+ return _context8.abrupt("continue", 34);
1085
1131
  case 24:
1086
1132
  _value2 = state.getIn(['viewer2D']).toJS();
1087
1133
  _value2.a -= 0.1;
@@ -1089,7 +1135,7 @@ function _handleExternalEvent() {
1089
1135
  _value2.e += _value2.SVGWidth * 0.1 / 2;
1090
1136
  _value2.f += _value2.SVGHeight * 0.1 / 2;
1091
1137
  updateViwer2D(_value2, props.viewer2DActions);
1092
- return _context8.abrupt("continue", 32);
1138
+ return _context8.abrupt("continue", 34);
1093
1139
  case 25:
1094
1140
  // calculate the bounding box of all elements in plan
1095
1141
  layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
@@ -1116,18 +1162,26 @@ function _handleExternalEvent() {
1116
1162
  viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
1117
1163
  updateViwer2D(viewer, props.viewer2DActions);
1118
1164
  }
1119
- return _context8.abrupt("continue", 32);
1165
+ return _context8.abrupt("continue", 34);
1120
1166
  case 26:
1121
1167
  props.projectActions.undo();
1122
- return _context8.abrupt("continue", 32);
1168
+ return _context8.abrupt("continue", 34);
1123
1169
  case 27:
1124
1170
  props.projectActions.redo();
1125
- return _context8.abrupt("continue", 32);
1171
+ return _context8.abrupt("continue", 34);
1126
1172
  case 28:
1127
1173
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1128
1174
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1129
- return _context8.abrupt("continue", 32);
1175
+ return _context8.abrupt("continue", 34);
1130
1176
  case 29:
1177
+ distElement = getElement(evt.payload, state);
1178
+ if (distElement) props.itemsActions.duplicateSelected(distElement);
1179
+ return _context8.abrupt("continue", 34);
1180
+ case 30:
1181
+ _distElement = getElement(evt.payload, state);
1182
+ if (_distElement) props.projectActions.remove(_distElement);
1183
+ return _context8.abrupt("continue", 34);
1184
+ case 31:
1131
1185
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value3 = _evt$payload8.value;
1132
1186
  if (option === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1133
1187
  props.viewer2DActions.updateCeilHeight(_value3);
@@ -1141,16 +1195,16 @@ function _handleExternalEvent() {
1141
1195
  } else if (option === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1142
1196
  props.viewer2DActions.changeWindowDoorMeasure(_value3);
1143
1197
  }
1144
- return _context8.abrupt("continue", 32);
1145
- case 30:
1198
+ return _context8.abrupt("continue", 34);
1199
+ case 32:
1146
1200
  layerId = state.getIn(['scene', 'selectedLayer']);
1147
1201
  _layer = state.getIn(['scene', 'layers', layerId]);
1148
1202
  _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1149
- 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
- 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
- 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:
1203
+ 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, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1204
+ 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, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1205
+ 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, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1206
+ return _context8.abrupt("continue", 34);
1207
+ case 33:
1154
1208
  // send scene object from 3DTool to HostApp using internalEvent
1155
1209
  (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1156
1210
  type: INTERNAL_EVENT_SYNC_SCENE,
@@ -1158,8 +1212,8 @@ function _handleExternalEvent() {
1158
1212
  scene: state.scene.toJS()
1159
1213
  }
1160
1214
  });
1161
- return _context8.abrupt("continue", 32);
1162
- case 32:
1215
+ return _context8.abrupt("continue", 34);
1216
+ case 34:
1163
1217
  case "end":
1164
1218
  return _context8.stop();
1165
1219
  }
@@ -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() {
@@ -67,6 +67,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
67
67
  }, {
68
68
  key: "loadProject",
69
69
  value: function loadProject(state, sceneJSON) {
70
+ var _sceneJSON$layers$lay;
70
71
  var doorStyle = state.doorStyle;
71
72
  var layerID = state.scene.selectedLayer;
72
73
  var _viewer2D = state.viewer2D;
@@ -99,6 +100,14 @@ var Project = exports["default"] = /*#__PURE__*/function () {
99
100
  for (var x in json_items) {
100
101
  _loop(x);
101
102
  }
103
+
104
+ // making layer's doorStyle when changing room shape
105
+ if ((0, _helper.isEmpty)(sceneJSON === null || sceneJSON === void 0 || (_sceneJSON$layers$lay = sceneJSON.layers[layerID]) === null || _sceneJSON$layers$lay === void 0 ? void 0 : _sceneJSON$layers$lay.doorStyle)) {
106
+ var newlayer = _objectSpread(_objectSpread({}, sceneJSON === null || sceneJSON === void 0 ? void 0 : sceneJSON.layers[layerID]), {}, {
107
+ doorStyle: doorStyle.toJS()
108
+ });
109
+ sceneJSON && (sceneJSON.layers[layerID] = newlayer);
110
+ }
102
111
  var newScene = new _models.Scene(sceneJSON);
103
112
  state = new _models.State({
104
113
  scene: newScene.toJS(),
@@ -160,10 +169,10 @@ var Project = exports["default"] = /*#__PURE__*/function () {
160
169
  f: f
161
170
  });
162
171
  }
163
- if (!doorStyle) {
164
- if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
165
- doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
166
- }
172
+
173
+ // Matching state.doorStyle with layer.doorStyle
174
+ if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
175
+ doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
167
176
  }
168
177
  state = state.merge({
169
178
  doorStyle: doorStyle,
@@ -303,29 +312,52 @@ var Project = exports["default"] = /*#__PURE__*/function () {
303
312
  }
304
313
  }, {
305
314
  key: "remove",
306
- value: function remove(state) {
315
+ value: function remove(state, delObject) {
307
316
  var selectedLayer = state.getIn(['scene', 'selectedLayer']);
308
317
  var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
309
318
  selectedLines = _state$getIn.lines,
310
319
  selectedHoles = _state$getIn.holes,
311
320
  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
321
  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)) {
322
+
323
+ // if deleting element is line then get the related lines that to update walls
324
+ if (delObject && delObject.prototype === constants.ELEMENT_LINE || (0, _helper.isEmpty)(delObject) && !(0, _helper.isEmpty)(selectedLines)) {
325
+ var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
326
+ var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', constants.ELEMENT_LINE]).toJS();
327
+ var curSelLineID = (delObject === null || delObject === void 0 ? void 0 : delObject.prototype) === constants.ELEMENT_LINE ? delObject.id : selLines[0];
328
+ var delLine = !(0, _helper.isEmpty)(curSelLineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', curSelLineID]).toJS();
329
+ var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
330
+ !(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
331
+ }
332
+
333
+ // delete element
334
+ if (delObject) {
335
+ switch (delObject.prototype) {
336
+ case constants.ELEMENT_LINE:
337
+ state = _export2.Line.remove(state, selectedLayer, delObject.id).updatedState;
338
+ break;
339
+ case constants.ELEMENT_HOLE:
340
+ state = _export2.Hole.remove(state, selectedLayer, delObject.id).updatedState;
341
+ break;
342
+ case constants.ELEMENT_ITEM:
343
+ state = _export2.Item.remove(state, selectedLayer, delObject.id).updatedState;
344
+ break;
345
+ }
346
+ } else {
347
+ // no specified object, then remove all selected elements
348
+ selectedLines.forEach(function (lineID) {
349
+ state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
350
+ });
351
+ selectedHoles.forEach(function (holeID) {
352
+ state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
353
+ });
354
+ selectedItems.forEach(function (itemID) {
355
+ state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
356
+ });
357
+ }
358
+
359
+ // update wall if line removed
360
+ if (!(0, _helper.isEmpty)(relatedLines)) {
329
361
  state = state.setIn(['mode'], _constants.MODE_DRAWING_LINE);
330
362
  relatedLines.forEach(function (relLine, index) {
331
363
  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';
@@ -62,9 +62,7 @@ function WorkSpace(props) {
62
62
  var evt = {
63
63
  type: _constants.EXTERNAL_EVENT_SET_INITIAL_DATA,
64
64
  payload: {
65
- doorStyle: {
66
- doorStyle: _doorStylePayload["default"]
67
- }
65
+ doorStyle: _doorStylePayload["default"]
68
66
  }
69
67
  };
70
68
  setExternalEvent(evt);
@@ -323,6 +321,10 @@ function WorkSpace(props) {
323
321
  oldDistance: 0,
324
322
  newDistance: 10
325
323
  }
324
+ },
325
+ callback: function callback(updatedAttributeForm) {
326
+ console.log(updatedAttributeForm);
327
+ // Do something here with new attributes
326
328
  }
327
329
  };
328
330
  setExternalEvent(evt);
@@ -395,6 +397,30 @@ function WorkSpace(props) {
395
397
  setExternalEvent(evt);
396
398
  }
397
399
  }, "Distance from floor 10\""), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
400
+ actionType: "danger",
401
+ onClick: function onClick() {
402
+ var evt = {
403
+ type: _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT,
404
+ payload: {
405
+ elementPrototype: _constants.ELEMENT_ITEM,
406
+ elementId: '' // id of current operating element
407
+ }
408
+ };
409
+ setExternalEvent(evt);
410
+ }
411
+ }, "Duplicate Item"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
412
+ actionType: "danger",
413
+ onClick: function onClick() {
414
+ var evt = {
415
+ type: _constants.EXTERNAL_EVENT_DELETE_ELEMENT,
416
+ payload: {
417
+ elementPrototype: _constants.ELEMENT_ITEM,
418
+ elementId: '' // id of current operating element
419
+ }
420
+ };
421
+ setExternalEvent(evt);
422
+ }
423
+ }, "Delete Item"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
398
424
  actionType: "danger",
399
425
  onClick: function onClick() {
400
426
  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:
@@ -682,6 +682,8 @@ function initPropData(element, catalog) {
682
682
  return new _immutable.Map(mapped);
683
683
  }
684
684
  function updateAttributeOfSelectedElement(element, attrPayload, state, layer, projectActions) {
685
+ var _attributesFormData;
686
+ var callback = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
685
687
  var attributesFormData = initAttrData(element, layer, state);
686
688
  var value = attrPayload.value;
687
689
  var attributeName = attrPayload.attributeName;
@@ -881,10 +883,15 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, pr
881
883
  break;
882
884
  }
883
885
  }
886
+
887
+ // invoke callback
888
+ if (callback) callback((_attributesFormData = attributesFormData) === null || _attributesFormData === void 0 ? void 0 : _attributesFormData.toJS());
884
889
  }
885
890
  function updatePropertyOfSelectedElement(element, propertyPayload, catalog,
886
891
  // class instance of Catalog, get from props
887
892
  projectActions) {
893
+ var _propertiesFormData;
894
+ var callback = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
888
895
  var propertiesFormData = initPropData(element, catalog);
889
896
  var value = propertyPayload.value;
890
897
  var propertyName = propertyPayload.propertyName;
@@ -902,6 +909,45 @@ projectActions) {
902
909
  });
903
910
  projectActions.setProperties(properties);
904
911
  }
912
+
913
+ // invoke callback
914
+ if (callback) callback((_propertiesFormData = propertiesFormData) === null || _propertiesFormData === void 0 ? void 0 : _propertiesFormData.toJS());
915
+ }
916
+ function getElement(objProps, state) {
917
+ var layerID = state.scene.selectedLayer;
918
+ var curObject = null;
919
+ 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 {
920
+ // if no specified object property then get the first selected element
921
+ var layer = state.scene.layers.get(state.scene.selectedLayer);
922
+ var selected = [];
923
+ layer.selected.forEach(function (data, prototype) {
924
+ if (prototype == 'vertices') return;
925
+ if (data.size > 0) {
926
+ var values = data.toJS();
927
+ for (var i = 0; i < values.length; i++) {
928
+ selected.push({
929
+ type: prototype,
930
+ id: values[i]
931
+ });
932
+ }
933
+ }
934
+ });
935
+ if (selected.length === 1) {
936
+ var selData = selected[0];
937
+ switch (selData.type) {
938
+ case _constants.ELEMENT_HOLE:
939
+ curObject = layer.holes.get(selData.id);
940
+ break;
941
+ case _constants.ELEMENT_ITEM:
942
+ curObject = layer.items.get(selData.id);
943
+ break;
944
+ case _constants.ELEMENT_LINE:
945
+ curObject = layer.lines.get(selData.id);
946
+ break;
947
+ }
948
+ }
949
+ }
950
+ return curObject;
905
951
  }
906
952
  function handleExternalEvent(_x1) {
907
953
  return _handleExternalEvent.apply(this, arguments);
@@ -909,7 +955,7 @@ function handleExternalEvent(_x1) {
909
955
  function _handleExternalEvent() {
910
956
  _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(props) {
911
957
  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;
958
+ 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
959
  return _regenerator["default"].wrap(function (_context8) {
914
960
  while (1) switch (_context8.prev = _context8.next) {
915
961
  case 0:
@@ -917,7 +963,7 @@ function _handleExternalEvent() {
917
963
  evt = props.externalEvent;
918
964
  state = props.state.get('KitchenConfigurator');
919
965
  _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;
966
+ _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
967
  break;
922
968
  case 1:
923
969
  // prepare item data request
@@ -993,23 +1039,23 @@ function _handleExternalEvent() {
993
1039
  };
994
1040
  }());
995
1041
  }
996
- return _context8.abrupt("continue", 32);
1042
+ return _context8.abrupt("continue", 34);
997
1043
  case 5:
998
1044
  props.projectActions.setMode(_constants.MODE_IDLE_3D);
999
- return _context8.abrupt("continue", 32);
1045
+ return _context8.abrupt("continue", 34);
1000
1046
  case 6:
1001
1047
  props.projectActions.setMode(_constants.MODE_IDLE);
1002
- return _context8.abrupt("continue", 32);
1048
+ return _context8.abrupt("continue", 34);
1003
1049
  case 7:
1004
1050
  sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1005
1051
  if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
1006
- return _context8.abrupt("continue", 32);
1052
+ return _context8.abrupt("continue", 34);
1007
1053
  case 8:
1008
1054
  if (state.mode === _constants.MODE_IDLE || state.mode === _constants.MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1009
1055
  props.projectActions.setMode(_constants.MODE_IDLE);
1010
1056
  props.linesActions.selectToolDrawingLine('wall');
1011
1057
  }
1012
- return _context8.abrupt("continue", 32);
1058
+ return _context8.abrupt("continue", 34);
1013
1059
  case 9:
1014
1060
  if ((0, _helper.isEmpty)(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1015
1061
  _context8.next = 11;
@@ -1040,10 +1086,10 @@ function _handleExternalEvent() {
1040
1086
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1041
1087
  props.projectActions.setIsCabinetDrawing(true);
1042
1088
  case 11:
1043
- return _context8.abrupt("continue", 32);
1089
+ return _context8.abrupt("continue", 34);
1044
1090
  case 12:
1045
1091
  _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);
1092
+ return _context8.abrupt("continue", 34);
1047
1093
  case 13:
1048
1094
  _evt$payload5 = evt.payload, moveType = _evt$payload5.moveType, moveValue = _evt$payload5.moveValue;
1049
1095
  value = state.getIn(['viewer2D']).toJS();
@@ -1064,23 +1110,23 @@ function _handleExternalEvent() {
1064
1110
  return _context8.abrupt("continue", 18);
1065
1111
  case 18:
1066
1112
  updateViwer2D(value, props.viewer2DActions);
1067
- return _context8.abrupt("continue", 32);
1113
+ return _context8.abrupt("continue", 34);
1068
1114
  case 19:
1069
1115
  defaulTitle = 'Untitle';
1070
1116
  props.projectActions.newProject();
1071
1117
  props.projectActions.rename(defaulTitle);
1072
- return _context8.abrupt("continue", 32);
1118
+ return _context8.abrupt("continue", 34);
1073
1119
  case 20:
1074
1120
  _evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, itemCDS = _evt$payload6.itemCDS, isAll = _evt$payload6.isAll;
1075
1121
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1076
- return _context8.abrupt("continue", 32);
1122
+ return _context8.abrupt("continue", 34);
1077
1123
  case 21:
1078
1124
  _doorStyle = evt.payload.doorStyle;
1079
- props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle);
1080
- return _context8.abrupt("continue", 32);
1125
+ props.itemsActions.setInitialDoorStyle(_doorStyle);
1126
+ return _context8.abrupt("continue", 34);
1081
1127
  case 22:
1082
1128
  props.projectActions.loadProject(evt.payload);
1083
- return _context8.abrupt("continue", 32);
1129
+ return _context8.abrupt("continue", 34);
1084
1130
  case 23:
1085
1131
  _value = state.getIn(['viewer2D']).toJS();
1086
1132
  _value.a += 0.1;
@@ -1088,7 +1134,7 @@ function _handleExternalEvent() {
1088
1134
  _value.e -= _value.SVGWidth * 0.1 / 2;
1089
1135
  _value.f -= _value.SVGHeight * 0.1 / 2;
1090
1136
  updateViwer2D(_value, props.viewer2DActions);
1091
- return _context8.abrupt("continue", 32);
1137
+ return _context8.abrupt("continue", 34);
1092
1138
  case 24:
1093
1139
  _value2 = state.getIn(['viewer2D']).toJS();
1094
1140
  _value2.a -= 0.1;
@@ -1096,7 +1142,7 @@ function _handleExternalEvent() {
1096
1142
  _value2.e += _value2.SVGWidth * 0.1 / 2;
1097
1143
  _value2.f += _value2.SVGHeight * 0.1 / 2;
1098
1144
  updateViwer2D(_value2, props.viewer2DActions);
1099
- return _context8.abrupt("continue", 32);
1145
+ return _context8.abrupt("continue", 34);
1100
1146
  case 25:
1101
1147
  // calculate the bounding box of all elements in plan
1102
1148
  layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
@@ -1123,18 +1169,26 @@ function _handleExternalEvent() {
1123
1169
  viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
1124
1170
  updateViwer2D(viewer, props.viewer2DActions);
1125
1171
  }
1126
- return _context8.abrupt("continue", 32);
1172
+ return _context8.abrupt("continue", 34);
1127
1173
  case 26:
1128
1174
  props.projectActions.undo();
1129
- return _context8.abrupt("continue", 32);
1175
+ return _context8.abrupt("continue", 34);
1130
1176
  case 27:
1131
1177
  props.projectActions.redo();
1132
- return _context8.abrupt("continue", 32);
1178
+ return _context8.abrupt("continue", 34);
1133
1179
  case 28:
1134
1180
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1135
1181
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1136
- return _context8.abrupt("continue", 32);
1182
+ return _context8.abrupt("continue", 34);
1137
1183
  case 29:
1184
+ distElement = getElement(evt.payload, state);
1185
+ if (distElement) props.itemsActions.duplicateSelected(distElement);
1186
+ return _context8.abrupt("continue", 34);
1187
+ case 30:
1188
+ _distElement = getElement(evt.payload, state);
1189
+ if (_distElement) props.projectActions.remove(_distElement);
1190
+ return _context8.abrupt("continue", 34);
1191
+ case 31:
1138
1192
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value3 = _evt$payload8.value;
1139
1193
  if (option === _constants.PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1140
1194
  props.viewer2DActions.updateCeilHeight(_value3);
@@ -1148,16 +1202,16 @@ function _handleExternalEvent() {
1148
1202
  } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1149
1203
  props.viewer2DActions.changeWindowDoorMeasure(_value3);
1150
1204
  }
1151
- return _context8.abrupt("continue", 32);
1152
- case 30:
1205
+ return _context8.abrupt("continue", 34);
1206
+ case 32:
1153
1207
  layerId = state.getIn(['scene', 'selectedLayer']);
1154
1208
  _layer = state.getIn(['scene', 'layers', layerId]);
1155
1209
  _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1156
- 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
- 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
- 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:
1210
+ 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, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1211
+ 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, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1212
+ 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, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1213
+ return _context8.abrupt("continue", 34);
1214
+ case 33:
1161
1215
  // send scene object from 3DTool to HostApp using internalEvent
1162
1216
  (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1163
1217
  type: _constants.INTERNAL_EVENT_SYNC_SCENE,
@@ -1165,8 +1219,8 @@ function _handleExternalEvent() {
1165
1219
  scene: state.scene.toJS()
1166
1220
  }
1167
1221
  });
1168
- return _context8.abrupt("continue", 32);
1169
- case 32:
1222
+ return _context8.abrupt("continue", 34);
1223
+ case 34:
1170
1224
  case "end":
1171
1225
  return _context8.stop();
1172
1226
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "2.0.10",
3
+ "version": "2.0.12",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",