kitchen-simulator 1.0.0-clark.71 → 1.0.0-clark.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/es/LiteKitchenConfigurator.js +35 -16
  2. package/es/LiteRenderer.js +5 -2
  3. package/es/assets/img/svg/logo.svg +11 -0
  4. package/es/assets/img/svg/logo_with_text.svg +25 -0
  5. package/es/catalog/factories/wall-factory.js +8 -8
  6. package/es/catalog/utils/item-loader.js +114 -39
  7. package/es/components/content.js +10 -5
  8. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  9. package/es/components/viewer2d/item.js +6 -77
  10. package/es/components/viewer2d/line.js +243 -315
  11. package/es/components/viewer2d/ruler.js +36 -16
  12. package/es/components/viewer2d/rulerDist.js +32 -18
  13. package/es/components/viewer2d/viewer2d.js +85 -32
  14. package/es/components/viewer3d/viewer3d.js +86 -53
  15. package/es/constants.js +15 -7
  16. package/es/devLiteRenderer.js +31 -3
  17. package/es/models.js +4 -4
  18. package/es/shared-style.js +4 -4
  19. package/es/utils/geometry.js +6 -6
  20. package/es/utils/isolate-event-handler.js +35 -18
  21. package/lib/LiteKitchenConfigurator.js +35 -16
  22. package/lib/LiteRenderer.js +5 -2
  23. package/lib/assets/img/svg/logo.svg +11 -0
  24. package/lib/assets/img/svg/logo_with_text.svg +25 -0
  25. package/lib/catalog/factories/wall-factory.js +8 -8
  26. package/lib/catalog/utils/item-loader.js +113 -39
  27. package/lib/components/content.js +10 -5
  28. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  29. package/lib/components/viewer2d/item.js +6 -77
  30. package/lib/components/viewer2d/line.js +242 -315
  31. package/lib/components/viewer2d/ruler.js +35 -15
  32. package/lib/components/viewer2d/rulerDist.js +32 -18
  33. package/lib/components/viewer2d/viewer2d.js +84 -31
  34. package/lib/components/viewer3d/viewer3d.js +85 -52
  35. package/lib/constants.js +19 -11
  36. package/lib/devLiteRenderer.js +30 -2
  37. package/lib/models.js +4 -4
  38. package/lib/shared-style.js +4 -4
  39. package/lib/utils/geometry.js +6 -6
  40. package/lib/utils/isolate-event-handler.js +34 -17
  41. package/package.json +1 -1
@@ -10,7 +10,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _convertUnitsLite = require("../../utils/convert-units-lite");
11
11
  var _idBroker = _interopRequireDefault(require("../../utils/id-broker"));
12
12
  var _constants = require("../../constants");
13
- var _line = require("./line");
14
13
  var STYLE = {
15
14
  stroke: _constants.TEXT_COLOR_NEUTRAL_7,
16
15
  strokeWidth: '1px'
@@ -23,7 +22,6 @@ var STYLE_TEXT = {
23
22
  textAnchor: 'middle',
24
23
  fontSize: '12px',
25
24
  pointerEvents: 'none',
26
- fill: '#455A64',
27
25
  //http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
28
26
  WebkitTouchCallout: 'none' /* iOS Safari */,
29
27
  WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
@@ -37,9 +35,37 @@ function Ruler(_ref) {
37
35
  unit = _ref.unit,
38
36
  rulerUnit = _ref.rulerUnit,
39
37
  transform = _ref.transform,
40
- style = _ref.style;
38
+ flag = _ref.flag;
39
+ var update = function update(lengthInput, unitInput, type) {
40
+ var newLength = toFixedFloat(lengthInput);
41
+ var merged = null;
42
+ if (type === 0) {
43
+ merged = value.merge({
44
+ _length: newLength,
45
+ length: (0, _convertUnitsLite.convert)(newLength).from(unitInput).to('cm')
46
+ });
47
+ } else {
48
+ merged = value.merge({
49
+ _length: (0, _convertUnitsLite.convert)(newLength).from(UNIT_INCH).to(unitInput),
50
+ _unit: unitInput
51
+ });
52
+ }
53
+ // if (hook) {
54
+ // return hook(merged, sourceElement, internalState, state).then(val => {
55
+ // return onUpdate(val);
56
+ // });
57
+ // }
58
+ // return onUpdate(merged);
59
+ };
60
+ // let _unit = "in";
61
+ // let distanceText = convert(length).from(unit).to(rulerUnit);
41
62
  var distanceText = (0, _convertUnitsLite.convert)(length).from(unit).to(rulerUnit).toFixed(0);
42
- var textLength = (distanceText.length + layer.unit.length) * 9;
63
+ var thickness = (0, _convertUnitsLite.convert)(_constants.LINE_THICKNESS).from(unit).to(rulerUnit).toFixed(0);
64
+ // let _ft_len = convert(_length).from('in').to('ft');
65
+ // let _ft_val = Math.floor(_ft_len); _ft_len -= _ft_val;
66
+ // let _in_val = convert(_ft_len).from('ft').to('in').toFixed(0);
67
+ // let distanceText = `${_ft_val}'${_in_val}"`;
68
+ var textLength = (distanceText.length + layer.unit.length) * 18;
43
69
  return /*#__PURE__*/_react["default"].createElement("g", {
44
70
  transform: transform
45
71
  }, /*#__PURE__*/_react["default"].createElement("g", {
@@ -60,24 +86,18 @@ function Ruler(_ref) {
60
86
  style: STYLE_TEXT,
61
87
  fill: _constants.TEXT_COLOR_NEUTRAL_7
62
88
  }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
63
- x1: style === _line.STYLE_ROOM_SHAPE ? 0 : 4,
89
+ x1: "0",
64
90
  y1: "0",
65
91
  x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
66
92
  y2: "0",
67
- style: style
93
+ style: STYLE
68
94
  }), /*#__PURE__*/_react["default"].createElement("line", {
69
95
  x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
70
96
  y1: "0",
71
- x2: style === _line.STYLE_ROOM_SHAPE ? length : length - 4,
97
+ x2: length,
72
98
  y2: "0",
73
- style: style
74
- }), style !== _line.STYLE_ROOM_SHAPE && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("polygon", {
75
- points: "3, 0, 6.5, -2, 6.5, 2 ",
76
- style: style
77
- }), /*#__PURE__*/_react["default"].createElement("polygon", {
78
- points: "".concat(length - 3, ", 0, ").concat(length - 6.5, ", 2, ").concat(length - 6.5, ", -2"),
79
- style: style
80
- })));
99
+ style: STYLE
100
+ }));
81
101
  }
82
102
  Ruler.propTypes = {
83
103
  length: _propTypes["default"].number.isRequired,
@@ -14,15 +14,13 @@ var ARROW_STYLE = {
14
14
  strokeLinecap: 'round'
15
15
  };
16
16
  var STYLE = {
17
- stroke: '#455A64',
18
- fill: '#455A64',
19
- strokeWidth: '1.5px'
17
+ stroke: 'black',
18
+ strokeWidth: '1.1px'
20
19
  };
21
20
  var STYLE_TEXT = {
22
21
  textAnchor: 'middle',
23
22
  fontSize: '10px',
24
23
  pointerEvents: 'none',
25
- fill: '#455A64',
26
24
  //http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
27
25
  WebkitTouchCallout: 'none' /* iOS Safari */,
28
26
  WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
@@ -84,24 +82,32 @@ function RulerDist(_ref) {
84
82
  y: "0",
85
83
  transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
86
84
  style: STYLE_TEXT
87
- }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
85
+ }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/_react["default"].createElement("circle", {
86
+ cx: "1",
87
+ cy: "0",
88
+ fill: "white",
89
+ r: "1.1",
90
+ stroke: "black",
91
+ strokeWidth: "0.6"
92
+ }), /*#__PURE__*/_react["default"].createElement("line", {
88
93
  x1: "2",
89
94
  y1: "0",
90
95
  x2: (length - textLength) / 2 < 0 ? 0 : length,
91
96
  y2: "0",
92
97
  style: STYLE
93
- }), /*#__PURE__*/_react["default"].createElement("polygon", {
94
- points: "1, 0, 4.5, -2, 4.5, 2 ",
95
- style: STYLE
96
98
  }), /*#__PURE__*/_react["default"].createElement("line", {
97
99
  x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
98
100
  y1: "0",
99
101
  x2: length,
100
102
  y2: "0",
101
103
  style: STYLE
102
- }), /*#__PURE__*/_react["default"].createElement("polygon", {
103
- points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
104
- style: STYLE
104
+ }), /*#__PURE__*/_react["default"].createElement("circle", {
105
+ cx: length - 1,
106
+ cy: "0",
107
+ fill: "white",
108
+ r: "1.1",
109
+ stroke: "black",
110
+ strokeWidth: "0.6"
105
111
  }));
106
112
  } else {
107
113
  return /*#__PURE__*/_react["default"].createElement("g", {
@@ -111,24 +117,32 @@ function RulerDist(_ref) {
111
117
  y: "0",
112
118
  transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
113
119
  style: STYLE_TEXT
114
- }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
120
+ }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/_react["default"].createElement("circle", {
121
+ cx: "1",
122
+ cy: "0",
123
+ fill: "white",
124
+ r: "1.1",
125
+ stroke: "black",
126
+ strokeWidth: "0.6"
127
+ }), /*#__PURE__*/_react["default"].createElement("line", {
115
128
  x1: "2",
116
129
  y1: "0",
117
130
  x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
118
131
  y2: "0",
119
132
  style: STYLE
120
- }), /*#__PURE__*/_react["default"].createElement("polygon", {
121
- points: "1, 0, 4.5, -2, 4.5, 2 ",
122
- style: STYLE
123
133
  }), /*#__PURE__*/_react["default"].createElement("line", {
124
134
  x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
125
135
  y1: "0",
126
136
  x2: length,
127
137
  y2: "0",
128
138
  style: STYLE
129
- }), /*#__PURE__*/_react["default"].createElement("polygon", {
130
- points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
131
- style: STYLE
139
+ }), /*#__PURE__*/_react["default"].createElement("circle", {
140
+ cx: length - 1,
141
+ cy: "0",
142
+ fill: "white",
143
+ r: "1.1",
144
+ stroke: "black",
145
+ strokeWidth: "0.6"
132
146
  }));
133
147
  }
134
148
  }
@@ -133,7 +133,8 @@ function Viewer2D(_ref, _ref2) {
133
133
  width = _ref.width,
134
134
  height = _ref.height,
135
135
  setToolbar = _ref.setToolbar,
136
- replaceCabinet = _ref.replaceCabinet;
136
+ replaceCabinet = _ref.replaceCabinet,
137
+ onInternalEvent = _ref.onInternalEvent;
137
138
  var viewer2DActions = _ref2.viewer2DActions,
138
139
  linesActions = _ref2.linesActions,
139
140
  holesActions = _ref2.holesActions,
@@ -790,35 +791,42 @@ function Viewer2D(_ref, _ref2) {
790
791
  if (mode === constants.MODE_IDLE) {
791
792
  var elementData = extractElementData(event.target);
792
793
  if (!elementData) return;
793
- if (sCount < 2) switch (elementData.prototype) {
794
- case 'lines':
795
- if (elementData.selected) {
796
- if (elementData.part === 'remove') break;else if (elementData.part === 'elevation') break;
797
- linesActions.beginDraggingLine(elementData.layer, elementData.id, x, y, state.snapMask);
798
- }
799
- break;
800
- case 'vertices':
801
- verticesActions.beginDraggingVertex(elementData.layer, elementData.id, x, y, state.snapMask);
802
- break;
803
- case 'items':
804
- setToolbar('');
805
- current_sel_obj_id = elementData.id;
806
- if (elementData.part === 'rotation-anchor') itemsActions.beginRotatingItem(elementData.layer, elementData.id, x, y);else if (elementData.part === 'remove') break;else if (elementData.part === 'duplicate') break;else if (elementData.part === 'warning_edit') break;else {
807
- // closes the setting dialog
808
- if (document.getElementById('setting_dialog')) {
809
- document.getElementById('setting_dialog').style.display = 'none';
794
+ if (sCount < 2) {
795
+ switch (elementData.prototype) {
796
+ case 'lines':
797
+ if (elementData.selected) {
798
+ if (elementData.part === 'remove') break;else if (elementData.part === 'elevation') break;
799
+ linesActions.beginDraggingLine(elementData.layer, elementData.id, x, y, state.snapMask);
810
800
  }
811
- itemsActions.selectItem(elementData.layer, elementData.id);
812
- // projectActions.setMode(constants.MODE_DRAGGING_ITEM);
813
- itemsActions.beginDraggingItem(elementData.layer, elementData.id, x, y);
814
- replaceCabinet(false);
815
- }
816
- break;
817
- case 'holes':
818
- if (elementData.selected) holesActions.beginDraggingHole(elementData.layer, elementData.id, x, y);
819
- break;
820
- default:
821
- break;
801
+ break;
802
+ case 'vertices':
803
+ verticesActions.beginDraggingVertex(elementData.layer, elementData.id, x, y, state.snapMask);
804
+ break;
805
+ case 'items':
806
+ setToolbar('');
807
+ current_sel_obj_id = elementData.id;
808
+ if (elementData.part === 'rotation-anchor') itemsActions.beginRotatingItem(elementData.layer, elementData.id, x, y);else if (elementData.part === 'remove') break;else if (elementData.part === 'duplicate') break;else if (elementData.part === 'warning_edit') break;else {
809
+ // closes the setting dialog
810
+ if (document.getElementById('setting_dialog')) {
811
+ document.getElementById('setting_dialog').style.display = 'none';
812
+ }
813
+ itemsActions.selectItem(elementData.layer, elementData.id);
814
+ // projectActions.setMode(constants.MODE_DRAGGING_ITEM);
815
+ itemsActions.beginDraggingItem(elementData.layer, elementData.id, x, y);
816
+ replaceCabinet(false);
817
+ }
818
+ break;
819
+ case 'holes':
820
+ if (elementData.selected) holesActions.beginDraggingHole(elementData.layer, elementData.id, x, y);
821
+ break;
822
+ default:
823
+ break;
824
+ }
825
+ var currentObject = state.getIn(['scene', 'layers', layerID, elementData.prototype, elementData.id]);
826
+ onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
827
+ type: _constants.INTERNAL_EVENT_SELECT_ELEMENT,
828
+ value: currentObject.toJS()
829
+ });
822
830
  } else {
823
831
  sPoint.x = x;
824
832
  sPoint.y = y;
@@ -854,10 +862,47 @@ function Viewer2D(_ref, _ref2) {
854
862
  y = _mapCursorPosition3.y;
855
863
  var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
856
864
  var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
865
+ var elementData = extractElementData(event.target);
866
+ var selectedLayer = scene.getIn(['layers', layerID]);
867
+ var elementPrototype = null;
868
+ var elementID = null;
869
+ var internalType = '';
870
+ switch (mode) {
871
+ case constants.MODE_DRAWING_LINE:
872
+ elementPrototype = 'lines';
873
+ internalType = _constants.INTERNAL_EVENT_DRAW_ELEMENT;
874
+ break;
875
+ case constants.MODE_DRAWING_HOLE:
876
+ elementPrototype = 'holes';
877
+ internalType = _constants.INTERNAL_EVENT_DRAW_ELEMENT;
878
+ break;
879
+ case constants.MODE_DRAWING_ITEM:
880
+ elementPrototype = 'items';
881
+ internalType = _constants.INTERNAL_EVENT_DRAW_ELEMENT;
882
+ break;
883
+ case constants.MODE_DRAGGING_LINE:
884
+ elementPrototype = 'lines';
885
+ internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
886
+ break;
887
+ case constants.MODE_DRAGGING_HOLE:
888
+ elementPrototype = 'holes';
889
+ internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
890
+ break;
891
+ case constants.MODE_DRAGGING_ITEM:
892
+ elementPrototype = 'items';
893
+ internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
894
+ break;
895
+ case constants.MODE_DRAGGING_VERTEX:
896
+ elementPrototype = 'lines';
897
+ internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
898
+ break;
899
+ case constants.MODE_ROTATING_ITEM:
900
+ elementPrototype = 'items';
901
+ internalType = _constants.INTERNAL_EVENT_ROTATE_ELEMENT;
902
+ break;
903
+ }
857
904
  switch (mode) {
858
905
  case constants.MODE_IDLE:
859
- var elementData = extractElementData(event.target);
860
- var selectedLayer = scene.getIn(['layers', layerID]);
861
906
  switch (elementData ? elementData.prototype : 'none') {
862
907
  case 'areas':
863
908
  if (document.getElementById('setting_dialog')) {
@@ -1197,6 +1242,14 @@ function Viewer2D(_ref, _ref2) {
1197
1242
  itemsActions.endRotatingItem(x, y);
1198
1243
  break;
1199
1244
  }
1245
+ if (elementPrototype) {
1246
+ elementID = state.getIn(['scene', 'layers', layerID, 'selected', elementPrototype]).first();
1247
+ var _currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
1248
+ onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
1249
+ type: internalType,
1250
+ value: _currentObject.toJS()
1251
+ });
1252
+ }
1200
1253
  event.stopPropagation();
1201
1254
  };
1202
1255
  var onChangeValue = function onChangeValue(value) {
@@ -1281,7 +1281,18 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1281
1281
  }
1282
1282
  }
1283
1283
  if (selectedObject !== undefined) {
1284
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1284
+ // get selected object from planData.sceneGraph
1285
+ var selectedItem = null;
1286
+ switch (true) {
1287
+ case 'itemID' in selectedObject:
1288
+ selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1289
+ break;
1290
+ case 'holeID' in selectedObject:
1291
+ selectedItem = planData.sceneGraph.layers[selectedObject.layerID].holes[selectedObject.holeID];
1292
+ break;
1293
+ default:
1294
+ break;
1295
+ }
1285
1296
  sPoint.set(Point.x, Point.y);
1286
1297
  if (transflag == 0) {
1287
1298
  scene3D.remove(toolObj);
@@ -1347,7 +1358,8 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1347
1358
  }
1348
1359
  };
1349
1360
  this.mouseUpEvent = function (event) {
1350
- var _selObj$object, _selObj$object2;
1361
+ var internalType = ''; // internalEvent type - select/drag/draw
1362
+ var selectedElement; // internalEvent data
1351
1363
  firstMove = 0;
1352
1364
  var altitude = 0;
1353
1365
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
@@ -1384,6 +1396,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1384
1396
  isInitialPhase = true;
1385
1397
  return;
1386
1398
  }
1399
+ switch (_this2.props.state.mode) {
1400
+ case _constants.MODE_DRAGGING_ITEM_3D:
1401
+ internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
1402
+ break;
1403
+ case _constants.MODE_ROTATING_ITEM_3D:
1404
+ internalType = _constants.INTERNAL_EVENT_ROTATE_ELEMENT;
1405
+ break;
1406
+ }
1387
1407
  if (_this2.props.state.mode == _constants.MODE_DRAGGING_ITEM_3D) {
1388
1408
  _this2.context.itemsActions.endDraggingItem3D();
1389
1409
  }
@@ -1465,56 +1485,62 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1465
1485
  currentObject = currentObject.parent;
1466
1486
  }
1467
1487
  isSelected = true;
1468
- setTimeout(function () {
1469
- (0, _sceneCreator.getDistances)(layer);
1470
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1471
- if ((0, _util.isUndefined)(selectedItem)) return;
1472
- var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1473
- var itemPos = selectedItem.position.clone();
1474
- if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1475
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1476
- } else {
1477
- toolObj.position.set(planData.plan.position.x + itemPos.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
1478
- }
1479
- scene3D.add(toolObj);
1480
- _this2.setState({
1481
- toolObj: toolObj
1482
- });
1483
- // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1484
- var pointArray = [],
1485
- cnt = 0;
1486
- pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1487
- pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1488
- pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1489
- pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1490
- pointArray.forEach(function (pointElement, index) {
1491
- if (pointElement[0] == undefined) pointArray[index][0] = 0;
1492
- });
1493
- pointArray.forEach(function (pointElement) {
1494
- if (pointElement[0] == 0) cnt++;
1495
- });
1496
- if (cnt == 4 || cnt == 3) {
1497
- pointArray[0][0] = 100;
1498
- pointArray[1][0] = 100;
1499
- }
1500
- actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1488
+ (0, _sceneCreator.getDistances)(layer);
1489
+ var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1490
+ if ((0, _util.isUndefined)(selectedItem)) return;
1491
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1492
+ var itemPos = selectedItem.position.clone();
1493
+ if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1494
+ toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1495
+ } else {
1496
+ toolObj.position.set(planData.plan.position.x + itemPos.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
1497
+ }
1498
+ scene3D.add(toolObj);
1499
+ _this2.setState({
1500
+ toolObj: toolObj
1501
+ });
1502
+ // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1503
+ var pointArray = [],
1504
+ cnt = 0;
1505
+ pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1506
+ pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1507
+ pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1508
+ pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1509
+ pointArray.forEach(function (pointElement, index) {
1510
+ if (pointElement[0] == undefined) pointArray[index][0] = 0;
1501
1511
  });
1512
+ pointArray.forEach(function (pointElement) {
1513
+ if (pointElement[0] == 0) cnt++;
1514
+ });
1515
+ if (cnt == 4 || cnt == 3) {
1516
+ pointArray[0][0] = 100;
1517
+ pointArray[1][0] = 100;
1518
+ }
1519
+ actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1520
+ internalType = internalType ? internalType : _constants.INTERNAL_EVENT_SELECT_ELEMENT;
1502
1521
  } else {
1503
1522
  if (selectedObject) {
1523
+ var elementID = null;
1524
+ var elementPrototype = null;
1504
1525
  switch (true) {
1505
1526
  case 'holeID' in selectedObject:
1506
- if (selObj !== null && selObj !== void 0 && (_selObj$object = selObj.object) !== null && _selObj$object !== void 0 && _selObj$object.name.includes('transHole')) {
1507
- actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1508
- }
1509
- break;
1510
1527
  case 'lineID' in selectedObject:
1511
- if (selObj !== null && selObj !== void 0 && (_selObj$object2 = selObj.object) !== null && _selObj$object2 !== void 0 && _selObj$object2.name.includes('transHole')) {
1528
+ if (_this2.props.state.mode === _constants.MODE_DRAGGING_HOLE_3D) {
1512
1529
  actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1530
+ internalType = _constants.INTERNAL_EVENT_SELECT_ELEMENT;
1531
+ elementID = selectedObject.holeID;
1532
+ elementPrototype = 'holeID';
1513
1533
  }
1514
1534
  break;
1535
+ case 'areaID' in selectedObject:
1536
+ internalType = _constants.INTERNAL_EVENT_SELECT_ELEMENT;
1537
+ elementID = selectedObject.areaID;
1538
+ elementPrototype = 'areas';
1539
+ break;
1515
1540
  default:
1516
1541
  break;
1517
1542
  }
1543
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).getIn([elementPrototype, elementID]);
1518
1544
  }
1519
1545
  isSelected = false;
1520
1546
  }
@@ -1549,14 +1575,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1549
1575
  getPoint(event, alti);
1550
1576
  if (bRotate) {
1551
1577
  var _intersects$_i;
1552
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1553
- if ((0, _util.isUndefined)(selectedItem)) return;
1554
- var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1555
- var itemPos = selectedItem.position.clone();
1556
- if (((_intersects$_i = intersects[_i10]) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.object) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.userData) === null || _intersects$_i === void 0 ? void 0 : _intersects$_i.itemId) === selectedItem.userData.itemId) {
1578
+ var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1579
+ if ((0, _util.isUndefined)(_selectedItem)) return;
1580
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1581
+ var _itemPos = _selectedItem.position.clone();
1582
+ if (((_intersects$_i = intersects[_i10]) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.object) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.userData) === null || _intersects$_i === void 0 ? void 0 : _intersects$_i.itemId) === _selectedItem.userData.itemId) {
1557
1583
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1558
1584
  } else {
1559
- toolObj.position.set(planData.plan.position.x + itemPos.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
1585
+ toolObj.position.set(planData.plan.position.x + _itemPos.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + _selectedItem.children[0].position.y, planData.plan.position.z + _itemPos.z);
1560
1586
  }
1561
1587
  scene3D.add(toolObj);
1562
1588
  _this2.setState({
@@ -1567,14 +1593,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1567
1593
  }
1568
1594
  if (bMove) {
1569
1595
  bMove = false;
1570
- var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1571
- if ((0, _util.isUndefined)(_selectedItem)) return;
1572
- var _selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1573
- var _itemPos = _selectedItem.position.clone();
1574
- if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) {
1596
+ var _selectedItem2 = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1597
+ if ((0, _util.isUndefined)(_selectedItem2)) return;
1598
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1599
+ var _itemPos2 = _selectedItem2.position.clone();
1600
+ if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem2.userData.itemId) {
1575
1601
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1576
1602
  } else {
1577
- toolObj.position.set(planData.plan.position.x + _itemPos.x, _selItem.category === 'lighting' ? -planData.plan.position.y - _selItem.properties.get('height').get('length') : planData.plan.position.y + _selectedItem.children[0].position.y, planData.plan.position.z + _itemPos.z);
1603
+ toolObj.position.set(planData.plan.position.x + _itemPos2.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + _selectedItem2.children[0].position.y, planData.plan.position.z + _itemPos2.z);
1578
1604
  }
1579
1605
  scene3D.add(toolObj);
1580
1606
  _this2.setState({
@@ -1608,6 +1634,13 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1608
1634
  selectedObj = allItemRect.cur;
1609
1635
  }
1610
1636
  }
1637
+ if (!(0, _helper.isEmpty)(internalType)) {
1638
+ var _this2$props$onIntern, _this2$props;
1639
+ (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1640
+ type: internalType,
1641
+ value: selectedElement.toJS()
1642
+ });
1643
+ }
1611
1644
  };
1612
1645
  this.mouseEnterEvent = function (event) {
1613
1646
  if (_this2.props.state.mode !== _constants.MODE_DRAWING_ITEM_3D) return;
package/lib/constants.js CHANGED
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.EXTERNAL_EVENT_TOGGLE_TO_3D = exports.EXTERNAL_EVENT_TOGGLE_TO_2D = exports.EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_INITIAL_DATA = exports.EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_NEW_PROJECT = exports.EXTERNAL_EVENT_MOVE_PAN = exports.EXTERNAL_EVENT_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_ADD_WALL = exports.EXTERNAL_EVENT_ADD_ROOM_SHAPE = exports.EXTERNAL_EVENT_ADD_ITEM = 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.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.REMOVE = exports.REDO = exports.RECREATE = exports.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PROJECT_RE_NAME = exports.PROJECT_NAME_LENGTH_LIMIT = exports.PROJECT_ACTIONS = exports.PRODUCT = exports.PRIMARY_GREEN_COLOR = exports.PASTE_PROPERTIES = exports.OVERLAP_SOME = exports.OVERLAP_SAME = exports.OVERLAP_NONE = exports.OVERLAP_LINK = exports.OVERLAP_INCLUDED = exports.OPEN_PROJECT_CONFIGURATOR = exports.OPEN_CATALOG = exports.OBJTYPE_MESH = exports.OBJTYPE_GROUP = exports.NO_DATA_DATABASE = exports.NEW_PROJECT_BTN = exports.NEW_PROJECT = exports.NEW_DESIGN = exports.MOVE_COMPONENT = exports.MOLDING_LOCATIONS = exports.MODE_WAITING_DRAWING_LINE = exports.MODE_VIEWING_CATALOG = exports.MODE_UPLOADING_IMAGE = exports.MODE_SNAPPING = exports.MODE_ROTATING_ITEM_3D = exports.MODE_ROTATING_ITEM = exports.MODE_RIGHT_ELEVATION_VIEW = exports.MODE_LEFT_ELEVATION_VIEW = exports.MODE_IDLE_3D = exports.MODE_IDLE = exports.MODE_FRONT_VIEW = exports.MODE_FRONT_ELEVATION_VIEW = exports.MODE_FITTING_IMAGE = exports.MODE_ELEVATION_VIEW = exports.MODE_DRAWING_LINE = exports.MODE_DRAWING_ITEM_3D = exports.MODE_DRAWING_ITEM = exports.MODE_DRAWING_HOLE_3D = exports.MODE_DRAWING_HOLE = exports.MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_LINE = exports.MODE_DRAGGING_ITEM_3D = exports.MODE_DRAGGING_ITEM = exports.MODE_DRAGGING_HOLE_3D = exports.MODE_DRAGGING_HOLE = 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 = exports.LABEL_COLOR = exports.KITCHEN_KONFIGURATOR = exports.KEYBOARD_BUTTON_CODE = exports.ITEM_TYPE = exports.ITEM_MOVE_UP = exports.ITEMS_ACTIONS = exports.INVERT = exports.INSTALLATION_TYPE_SKU_SUFFIX = exports.INSTALLATION_TYPE_NAME = exports.INSTALLATION_SUFFIX_TYPE = exports.INIT_CATALOG = 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.FINISHING_TOUCH = exports.EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_IN = exports.EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = void 0;
8
- 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 = 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 = 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 = void 0;
9
- 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 = 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 = void 0;
6
+ 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_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_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_ADD_WALL = exports.EXTERNAL_EVENT_ADD_ROOM_SHAPE = exports.EXTERNAL_EVENT_ADD_ITEM = 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_EPSILON = exports.DIFFERENT_VALUES_PATH_LENGTH = exports.DELTA = exports.DEFAULT_FONT_FAMILY = exports.DECIMAL_PLACES_3 = exports.DECIMAL_PLACES_2 = 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_CABINET_LAYOUTPOS = 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.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PROJECT_SETTING_OPTION = exports.PROJECT_RE_NAME = exports.PROJECT_NAME_LENGTH_LIMIT = exports.PROJECT_ACTIONS = exports.PRODUCT = exports.PRIMARY_GREEN_COLOR = exports.PASTE_PROPERTIES = exports.OVERLAP_SOME = exports.OVERLAP_SAME = exports.OVERLAP_NONE = exports.OVERLAP_LINK = exports.OVERLAP_INCLUDED = exports.OPEN_PROJECT_CONFIGURATOR = exports.OPEN_CATALOG = exports.OBJTYPE_MESH = exports.OBJTYPE_GROUP = exports.NO_DATA_DATABASE = exports.NEW_PROJECT_BTN = exports.NEW_PROJECT = exports.NEW_DESIGN = exports.MOVE_COMPONENT = exports.MOLDING_LOCATIONS = exports.MODE_WAITING_DRAWING_LINE = exports.MODE_VIEWING_CATALOG = exports.MODE_UPLOADING_IMAGE = exports.MODE_SNAPPING = exports.MODE_ROTATING_ITEM_3D = exports.MODE_ROTATING_ITEM = exports.MODE_RIGHT_ELEVATION_VIEW = exports.MODE_LEFT_ELEVATION_VIEW = exports.MODE_IDLE_3D = exports.MODE_IDLE = exports.MODE_FRONT_VIEW = exports.MODE_FRONT_ELEVATION_VIEW = exports.MODE_FITTING_IMAGE = exports.MODE_ELEVATION_VIEW = exports.MODE_DRAWING_LINE = exports.MODE_DRAWING_ITEM_3D = exports.MODE_DRAWING_ITEM = exports.MODE_DRAWING_HOLE_3D = exports.MODE_DRAWING_HOLE = exports.MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_LINE = exports.MODE_DRAGGING_ITEM_3D = exports.MODE_DRAGGING_ITEM = exports.MODE_DRAGGING_HOLE_3D = exports.MODE_DRAGGING_HOLE = 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 = 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_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = 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_ACTIONS = exports.HDR_URLS = exports.HAS_LOADINGBAR = exports.GROUP_TRANSLATE = exports.GROUP_ROTATE = exports.GROUP_ACTIONS = exports.GO_BACK_TO_CATALOG_PAGE = exports.FINISHING_TOUCH = exports.EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_IN = void 0;
8
+ 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 = 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.ROLLBACK = 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 = void 0;
9
+ exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = 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 = 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 = void 0;
10
10
  //API server
11
11
  // export const API_SERVER = 'http://localhost:3000/';
12
12
  // ACTIONS project
@@ -554,12 +554,6 @@ var LABEL_COLOR = exports.LABEL_COLOR = '#6E7191';
554
554
  var TEXT_COLOR = exports.TEXT_COLOR = '#000000';
555
555
  var ACCENT_COLOR = exports.ACCENT_COLOR = '#AD00FF';
556
556
  var BROWN_COLOR = exports.BROWN_COLOR = '#624100';
557
- var ROOM_SHAPE_MEASUREMENT_LINE_COLOR = exports.ROOM_SHAPE_MEASUREMENT_LINE_COLOR = '#455A64';
558
- var ROOM_ELEMENT_MEASUREMENT_LINE_COLOR = exports.ROOM_ELEMENT_MEASUREMENT_LINE_COLOR = '#B0BEC5';
559
- var BASE_ITEM_MEASUREMENT_LINE_COLOR = exports.BASE_ITEM_MEASUREMENT_LINE_COLOR = '#0277BD';
560
- var WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = '#00897B';
561
- var DISTANCE_MEASUREMENT_LINE_COLOR = exports.DISTANCE_MEASUREMENT_LINE_COLOR = '#7B1FA2';
562
- var DASH_LINE_COLOR = exports.DASH_LINE_COLOR = '#78909C';
563
557
  var DEFAULT_FONT_FAMILY = exports.DEFAULT_FONT_FAMILY = 'Open Sans';
564
558
 
565
559
  // Download summary
@@ -652,6 +646,13 @@ var ITEM_TYPE = exports.ITEM_TYPE = {
652
646
  LIGHTING: 'lighting',
653
647
  FURNISHING: 'furnishing'
654
648
  };
649
+ var PROJECT_SETTING_OPTION = exports.PROJECT_SETTING_OPTION = {
650
+ UPDATE_CEIL_HEIGHT: UPDATE_CEIL_HEIGHT,
651
+ CHANGE_WALL_LENGTH_MEASURE: CHANGE_WALL_LENGTH_MEASURE,
652
+ CHANGE_BASE_CABINET_MEASURE: CHANGE_BASE_CABINET_MEASURE,
653
+ CHANGE_WALL_CABINET_MEASURE: CHANGE_WALL_CABINET_MEASURE,
654
+ CHANGE_WINDOW_DOOR_MEASURE: CHANGE_WINDOW_DOOR_MEASURE
655
+ };
655
656
 
656
657
  // direction type
657
658
  var LEFT = exports.LEFT = 'Left';
@@ -674,4 +675,11 @@ var EXTERNAL_EVENT_ZOOM_IN = exports.EXTERNAL_EVENT_ZOOM_IN = 'EXTERNAL_EVENT_ZO
674
675
  var EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_OUT = 'EXTERNAL_EVENT_ZOOM_OUT';
675
676
  var EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_UNDO = 'EXTERNAL_EVENT_UNDO';
676
677
  var EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_REDO = 'EXTERNAL_EVENT_REDO';
677
- var EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
678
+ var EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
679
+ var EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING';
680
+
681
+ // internal event type
682
+ var INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';
683
+ var INTERNAL_EVENT_DRAG_ELEMENT = exports.INTERNAL_EVENT_DRAG_ELEMENT = 'INTERNAL_EVENT_DRAG_ELEMENT';
684
+ var INTERNAL_EVENT_DRAW_ELEMENT = exports.INTERNAL_EVENT_DRAW_ELEMENT = 'INTERNAL_EVENT_DRAW_ELEMENT';
685
+ var INTERNAL_EVENT_ROTATE_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = 'INTERNAL_EVENT_ROTATE_ELEMENT';