kitchen-simulator 11.0.0-react-18 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/es/LiteKitchenConfigurator.js +42 -11
  2. package/es/LiteRenderer.js +2 -24
  3. package/es/actions/export.js +25 -12
  4. package/es/analytics/ga4.js +188 -0
  5. package/es/catalog/utils/item-loader.js +4 -4
  6. package/es/class/item.js +29 -7
  7. package/es/class/line.js +1 -3
  8. package/es/components/content.js +20 -5
  9. package/es/components/export.js +6 -4
  10. package/es/components/style/form-number-input.js +7 -5
  11. package/es/components/style/form-submit-button.js +25 -0
  12. package/es/components/viewer2d/group.js +6 -5
  13. package/es/components/viewer2d/item.js +9 -9
  14. package/es/components/viewer2d/line.js +18 -47
  15. package/es/components/viewer2d/rulerX.js +9 -8
  16. package/es/components/viewer2d/rulerY.js +9 -8
  17. package/es/components/viewer2d/scene.js +9 -9
  18. package/es/components/viewer2d/state.js +1 -1
  19. package/es/components/viewer2d/utils.js +0 -6
  20. package/es/components/viewer2d/viewer2d.js +35 -31
  21. package/es/components/viewer3d/ruler-utils/layer3D.js +2 -2
  22. package/es/components/viewer3d/scene-creator.js +40 -75
  23. package/es/components/viewer3d/viewer3d-first-person.js +13 -8
  24. package/es/components/viewer3d/viewer3d.js +19 -15
  25. package/es/devLiteRenderer.js +913 -0
  26. package/es/events/external/handleExternalEvent.js +1 -0
  27. package/es/events/external/handleExternalEvent.util.js +330 -347
  28. package/es/events/external/handlers.changeDoorStyle.js +5 -3
  29. package/es/events/external/handlers.loadProject.js +5 -3
  30. package/es/events/external/handlers.syncScene.js +1 -1
  31. package/es/mappings/external-events/mappers/ccdfMapper.js +14 -8
  32. package/es/shared/domain/cabinet-warning.js +15 -0
  33. package/es/utils/geometry.js +4 -7
  34. package/es/utils/helper.js +81 -22
  35. package/es/utils/skinPanelEngine.js +5 -9
  36. package/lib/LiteKitchenConfigurator.js +42 -11
  37. package/lib/LiteRenderer.js +3 -25
  38. package/lib/actions/export.js +35 -39
  39. package/lib/analytics/ga4.js +194 -0
  40. package/lib/catalog/utils/item-loader.js +3 -3
  41. package/lib/class/item.js +29 -7
  42. package/lib/class/line.js +1 -3
  43. package/lib/components/content.js +19 -4
  44. package/lib/components/export.js +6 -16
  45. package/lib/components/style/form-number-input.js +7 -5
  46. package/lib/components/style/form-submit-button.js +35 -0
  47. package/lib/components/viewer2d/group.js +6 -5
  48. package/lib/components/viewer2d/item.js +8 -8
  49. package/lib/components/viewer2d/line.js +18 -47
  50. package/lib/components/viewer2d/rulerX.js +9 -8
  51. package/lib/components/viewer2d/rulerY.js +9 -8
  52. package/lib/components/viewer2d/scene.js +9 -9
  53. package/lib/components/viewer2d/state.js +1 -1
  54. package/lib/components/viewer2d/utils.js +0 -7
  55. package/lib/components/viewer2d/viewer2d.js +33 -29
  56. package/lib/components/viewer3d/ruler-utils/layer3D.js +2 -2
  57. package/lib/components/viewer3d/scene-creator.js +39 -75
  58. package/lib/components/viewer3d/viewer3d-first-person.js +13 -8
  59. package/lib/components/viewer3d/viewer3d.js +19 -15
  60. package/lib/devLiteRenderer.js +917 -0
  61. package/lib/events/external/handleExternalEvent.js +1 -0
  62. package/lib/events/external/handleExternalEvent.util.js +330 -347
  63. package/lib/events/external/handlers.changeDoorStyle.js +5 -3
  64. package/lib/events/external/handlers.loadProject.js +5 -3
  65. package/lib/events/external/handlers.syncScene.js +1 -1
  66. package/lib/mappings/external-events/mappers/ccdfMapper.js +14 -8
  67. package/lib/shared/domain/cabinet-warning.js +20 -0
  68. package/lib/utils/geometry.js +4 -7
  69. package/lib/utils/helper.js +82 -24
  70. package/lib/utils/skinPanelEngine.js +4 -8
  71. package/package.json +21 -6
@@ -6,15 +6,17 @@ import * as Three from 'three';
6
6
  import { Color, Group } from 'three';
7
7
  import createGrid from "./grid-creator";
8
8
  import { disposeObject } from "./three-memory-cleaner";
9
- import { ANIMATE_STEP_MAX, ANIMATE_STEP_MIN, ARRAY_3D_MODES, ARROW_TEXT_BACKCOLOR, ARROW_TEXT_FONTFACE, ARROW_TEXT_FORECOLOR, BASE_CABINET_LAYOUTPOS, BOTTOM_MOLDING_LOCATION, DECIMAL_PLACES_2, DIFFERENT_VALUES_PATH_LENGTH, DISTANCE_EPSILON, EPSILON, MIDDLE_MOLDING_LOCATION, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM_3D, OBJTYPE_MESH, SHADE_DARK_PURPLE_COLOR, TOP_MOLDING_LOCATION, UNIT_CENTIMETER, UNIT_FOOT, UNIT_INCH, UNIT_METER, WALL_CABINET_LAYOUTPOS } from "../../constants";
9
+ import { ANIMATE_STEP_MAX, ANIMATE_STEP_MIN, ARRAY_3D_MODES, ARROW_TEXT_BACKCOLOR, ARROW_TEXT_FONTFACE, ARROW_TEXT_FORECOLOR, BASE_CABINET_LAYOUTPOS, BOTTOM_MOLDING_LOCATION, DECIMAL_PLACES_2, DIFFERENT_VALUES_PATH_LENGTH, DISTANCE_EPSILON, EPSILON, ITEM_TYPE, MIDDLE_MOLDING_LOCATION, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM_3D, OBJTYPE_MESH, SHADE_DARK_PURPLE_COLOR, TOP_MOLDING_LOCATION, UNIT_CENTIMETER, UNIT_FOOT, UNIT_INCH, UNIT_METER, WALL_CABINET_LAYOUTPOS } from "../../constants";
10
10
  import { GeometryUtils, IDBroker, MoldingUtils } from "../../utils/export";
11
11
  import { convert } from "../../utils/convert-units-lite";
12
12
  import { calcDistancesFromItemToWalls, getLineSnapPointsOfItem, getSnappedWallLines, isOverlappedTwoItemsOnOneLine, pointsDistance, verticesDistance } from "../../utils/geometry";
13
13
  import * as GeomUtils from "../../catalog/utils/geom-utils";
14
14
  import { loadTexture } from "../../catalog/utils/item-loader";
15
+ import { isWarningCabinet } from "../../shared/domain/cabinet-warning";
15
16
  import { returnReplaceableDeepSearchType } from "../viewer2d/utils";
16
17
  import { animateDoor, isElevationView, isEmpty, isImmutable, replaceMeshesWithLineSegments, translateDrawer } from "../../utils/helper";
17
18
  import { formatNumber } from "../../utils/math";
19
+ import { toJSIfNeeded } from "../../shared/objects/immutable";
18
20
  export var fVLine = [];
19
21
  var scene_mode = null;
20
22
  export function parseData(sceneData, actions, catalog, camera, renderer, mode) {
@@ -502,16 +504,14 @@ function replaceObject(modifiedPath, layer, planData, actions, sceneData, oldSce
502
504
  }
503
505
  var mBoxColor = 0x99c3fb;
504
506
  var _item = item.toJS();
505
- if (_item.doorStyle.doorStyles !== undefined && _item.doorStyle.doorStyles.cds) {
506
- if (showYelloBox(_item)) {
507
- mBoxColor = 'rgba(232,187,47,1)';
508
- var mBox = GeomUtils.makeMBoxfromObject(item3D, mBoxColor);
509
- var warningObj = createWarningObject();
510
- warningObj.position.set(0, item.properties.get('height').get('length') / 3, 0);
511
- if (mBox) {
512
- mBox.add(warningObj);
513
- item3D.add(mBox);
514
- }
507
+ if (isWarningCabinet(_item)) {
508
+ mBoxColor = 'rgba(232,187,47,1)';
509
+ var mBox = GeomUtils.makeMBoxfromObject(item3D, mBoxColor);
510
+ var warningObj = createWarningObject();
511
+ warningObj.position.set(0, item.properties.get('height').get('length') / 3, 0);
512
+ if (mBox) {
513
+ mBox.add(warningObj);
514
+ item3D.add(mBox);
515
515
  }
516
516
  }
517
517
  }
@@ -692,16 +692,14 @@ function replaceObject(modifiedPath, layer, planData, actions, sceneData, oldSce
692
692
  if (item3D) {
693
693
  var _mBoxColor = 0x99c3fb;
694
694
  var _item2 = item.toJS();
695
- if (_item2.doorStyle.doorStyles !== undefined && _item2.doorStyle.doorStyles.cds) {
696
- if (showYelloBox(_item2)) {
697
- _mBoxColor = 'rgba(232,187,47,1)';
698
- var _mBox2 = GeomUtils.makeMBoxfromObject(item3D, _mBoxColor);
699
- var _warningObj = createWarningObject();
700
- _warningObj.position.set(0, item.properties.get('height').get('length') / 3, 0);
701
- if (_mBox2) {
702
- _mBox2.add(_warningObj);
703
- item3D.add(_mBox2);
704
- }
695
+ if (isWarningCabinet(_item2)) {
696
+ _mBoxColor = 'rgba(232,187,47,1)';
697
+ var _mBox2 = GeomUtils.makeMBoxfromObject(item3D, _mBoxColor);
698
+ var _warningObj = createWarningObject();
699
+ _warningObj.position.set(0, item.properties.get('height').get('length') / 3, 0);
700
+ if (_mBox2) {
701
+ _mBox2.add(_warningObj);
702
+ item3D.add(_mBox2);
705
703
  }
706
704
  }
707
705
  }
@@ -824,10 +822,8 @@ function replaceObject(modifiedPath, layer, planData, actions, sceneData, oldSce
824
822
  }
825
823
  var _mBoxColor2 = 0x99c3fb;
826
824
  var _item3 = item.toJS();
827
- if (_item3.doorStyle.doorStyles !== undefined && _item3.doorStyle.doorStyles.cds) {
828
- if (showYelloBox(_item3)) {
829
- _mBoxColor2 = 'rgba(232,187,47,1)';
830
- }
825
+ if (isWarningCabinet(_item3)) {
826
+ _mBoxColor2 = 'rgba(232,187,47,1)';
831
827
  }
832
828
  rItem.children[0].children.forEach(function (rItemElement) {
833
829
  rItemElement.visible = false;
@@ -2047,21 +2043,19 @@ function addItem(sceneData, planData, layer, itemID, catalog, itemsActions) {
2047
2043
  if (pivot) {
2048
2044
  var mBoxColor = 0x99c3fb;
2049
2045
  var _item = item.toJS();
2050
- if (_item.doorStyle.doorStyles !== undefined && _item.doorStyle.doorStyles.cds) {
2051
- if (showYelloBox(_item)) {
2052
- mBoxColor = 'rgba(232,187,47,1)';
2053
- } else {
2054
- pivot.children[0].children.forEach(function (pivotElement) {
2055
- pivotElement.visible = false;
2056
- });
2057
- }
2058
- var mBox = GeomUtils.makeMBoxfromObject(pivot, mBoxColor);
2059
- var warningObj = createWarningObject();
2060
- warningObj.position.set(0, item.properties.get('height').get('length') / 3, 0);
2061
- if (mBox) {
2062
- mBox.add(warningObj);
2063
- pivot.add(mBox);
2064
- }
2046
+ if (isWarningCabinet(_item)) {
2047
+ mBoxColor = 'rgba(232,187,47,1)';
2048
+ } else {
2049
+ pivot.children[0].children.forEach(function (pivotElement) {
2050
+ pivotElement.visible = false;
2051
+ });
2052
+ }
2053
+ var mBox = GeomUtils.makeMBoxfromObject(pivot, mBoxColor);
2054
+ var warningObj = createWarningObject();
2055
+ warningObj.position.set(0, item.properties.get('height').get('length') / 3, 0);
2056
+ if (mBox) {
2057
+ mBox.add(warningObj);
2058
+ pivot.add(mBox);
2065
2059
  }
2066
2060
  }
2067
2061
 
@@ -2159,8 +2153,8 @@ function addItem(sceneData, planData, layer, itemID, catalog, itemsActions) {
2159
2153
  height: height,
2160
2154
  depth: depth
2161
2155
  };
2162
- val.layoutpos = cat.info.layoutpos;
2163
- val.is_corner = cat.info.is_corner;
2156
+ val.layoutpos = item === null || item === void 0 ? void 0 : item.layoutpos;
2157
+ val.is_corner = item === null || item === void 0 ? void 0 : item.is_corner;
2164
2158
  val.item = item;
2165
2159
  var calcrect = GeometryUtils.getCalcRectFromItem3D(val);
2166
2160
 
@@ -2187,13 +2181,9 @@ function addItem(sceneData, planData, layer, itemID, catalog, itemsActions) {
2187
2181
  });
2188
2182
  if (pivot.children.length > 1) {
2189
2183
  var _item4 = item.toJS();
2190
- if (_item4.doorStyle.doorStyles !== undefined) {
2191
- if (_item4.category === 'cabinet') {
2192
- if (_item4.doorStyle.doorStyles.cds.some(function (element) {
2193
- return element.itemID === item.itemID;
2194
- })) {
2195
- pivot.children.pop();
2196
- }
2184
+ if (_item4.category === ITEM_TYPE.CABINET) {
2185
+ if (!isWarningCabinet(item)) {
2186
+ pivot.children.pop();
2197
2187
  } else {
2198
2188
  pivot.children.pop();
2199
2189
  }
@@ -2910,31 +2900,6 @@ export function threedfabs(a) {
2910
2900
  export function getDistanceBetweenLineSegment(pos1, pos2, pos3, pos4) {
2911
2901
  if (pos1.x == pos2.x && pos3.x == pos4.x) return pos3.x - pos1.x;else if (pos1.y == pos2.y && pos3.y == pos4.y) return pos3.y - pos1.y;else return -1;
2912
2902
  }
2913
-
2914
- /**
2915
- * check to see if an item is suitable for the given doorStyle.
2916
- * @param _item
2917
- * @returns true if it's not suitable.
2918
- */
2919
- export function showYelloBox(_item) {
2920
- var _doorStyle;
2921
- var doorStyle = _item === null || _item === void 0 ? void 0 : _item.doorStyle;
2922
-
2923
- // If doorStyle is an Immutable Map, convert to plain JS
2924
- if (doorStyle && typeof doorStyle.toJS === 'function') {
2925
- doorStyle = doorStyle.toJS();
2926
- }
2927
- var isItemCabinet = (_item === null || _item === void 0 ? void 0 : _item.category) === 'cabinet';
2928
- var cds = (_doorStyle = doorStyle) === null || _doorStyle === void 0 || (_doorStyle = _doorStyle.doorStyles) === null || _doorStyle === void 0 ? void 0 : _doorStyle.cds;
2929
-
2930
- // hasItemCDS: item is suitable if its itemID exists in cds
2931
- var hasItemCDS = isItemCabinet && Array.isArray(cds) ? cds.some(function (element) {
2932
- return element.itemID === _item.itemID;
2933
- }) : false;
2934
-
2935
- // return true if it's a cabinet but not suitable for the current doorStyle
2936
- return isItemCabinet && !hasItemCDS;
2937
- }
2938
2903
  function isSimilar(a, b) {
2939
2904
  if (threedfabs(a - b) <= 0.01) return 1;
2940
2905
  return 0;
@@ -3473,7 +3438,7 @@ export function addMolding(MGArray, addItem, planData, layer, itemActions, mode)
3473
3438
  if (addItem.selected && [MODE_DRAGGING_ITEM_3D, MODE_ROTATING_ITEM_3D].includes(mode)) return false;
3474
3439
 
3475
3440
  // If the item is not available for current doorStyle
3476
- if (showYelloBox(addItem))
3441
+ if (isWarningCabinet(addItem))
3477
3442
  // Do not add molding to that item
3478
3443
  return MGArray;
3479
3444
 
@@ -5,12 +5,11 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _inherits from "@babel/runtime/helpers/esm/inherits";
8
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
8
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
9
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
10
  import React from 'react';
12
11
  import PropTypes from 'prop-types';
13
- import AppContext from "../../AppContext";
12
+ import ReactDOM from 'react-dom';
14
13
  import * as Three from 'three';
15
14
  import { parseData, updateScene } from "./scene-creator";
16
15
  import { disposeScene } from "./three-memory-cleaner";
@@ -26,7 +25,6 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
26
25
  _this.width = props.width;
27
26
  _this.height = props.height;
28
27
  _this.stopRendering = false;
29
- _this.canvasWrapperRef = /*#__PURE__*/React.createRef();
30
28
  _this.renderer = window.__threeRenderer || new Three.WebGLRenderer({
31
29
  preserveDrawingBuffer: true
32
30
  });
@@ -57,7 +55,7 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
57
55
  };
58
56
  var state = this.props.state;
59
57
  var data = state.scene;
60
- var canvasWrapper = this.canvasWrapperRef.current;
58
+ var canvasWrapper = ReactDOM.findDOMNode(this.refs.canvasWrapper);
61
59
  var scene3D = new Three.Scene();
62
60
 
63
61
  // As I need to show the pointer above all scene objects, I use this workaround http://stackoverflow.com/a/13309722
@@ -256,8 +254,8 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
256
254
  this.renderer.renderLists.dispose();
257
255
  }
258
256
  }, {
259
- key: "UNSAFE_componentWillReceiveProps",
260
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
257
+ key: "componentWillReceiveProps",
258
+ value: function componentWillReceiveProps(nextProps) {
261
259
  var width = nextProps.width,
262
260
  height = nextProps.height;
263
261
  var camera = this.camera,
@@ -290,15 +288,22 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
290
288
  key: "render",
291
289
  value: function render() {
292
290
  return /*#__PURE__*/React.createElement('div', {
293
- ref: this.canvasWrapperRef
291
+ ref: 'canvasWrapper'
294
292
  });
295
293
  }
296
294
  }]);
297
295
  }(React.Component);
298
- _defineProperty(Viewer3DFirstPerson, "contextType", AppContext);
299
296
  export { Viewer3DFirstPerson as default };
300
297
  Viewer3DFirstPerson.propTypes = {
301
298
  state: PropTypes.object.isRequired,
302
299
  width: PropTypes.number.isRequired,
303
300
  height: PropTypes.number.isRequired
301
+ };
302
+ Viewer3DFirstPerson.contextTypes = {
303
+ areaActions: PropTypes.object.isRequired,
304
+ holesActions: PropTypes.object.isRequired,
305
+ itemsActions: PropTypes.object.isRequired,
306
+ linesActions: PropTypes.object.isRequired,
307
+ projectActions: PropTypes.object.isRequired,
308
+ catalog: PropTypes.object
304
309
  };
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
3
  import _readOnlyError from "@babel/runtime/helpers/esm/readOnlyError";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
5
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
5
6
  import _createClass from "@babel/runtime/helpers/esm/createClass";
6
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
7
8
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
8
9
  import _inherits from "@babel/runtime/helpers/esm/inherits";
9
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
11
  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; }
12
12
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
13
13
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
14
14
  import React from 'react';
15
15
  import PropTypes from 'prop-types';
16
- import AppContext from "../../AppContext";
16
+ import ReactDOM from 'react-dom';
17
17
  import * as Three from 'three';
18
18
  import { checkCabinetOverlap, createBacksplash, deleteSpecifiedMeshObjects, fVLine, getDistances, parseData, updateScene, visibleTransformBox } from "./scene-creator";
19
19
  import { disposeObject, disposeScene } from "./three-memory-cleaner";
@@ -50,7 +50,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
50
50
  _this.width = props.width;
51
51
  _this.height = props.height;
52
52
  _this.renderingID = 0;
53
- _this.canvasWrapperRef = /*#__PURE__*/React.createRef();
54
53
  var mode = props.state.mode;
55
54
  if (!window.__elevationRendererDownload) {
56
55
  window.__elevationRendererDownload = {};
@@ -545,7 +544,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
545
544
  if (item !== null) {
546
545
  var catid = item.type;
547
546
  var cat = catalog.elements[catid];
548
- layoutpos = cat.info.layoutpos;
547
+ layoutpos = item === null || item === void 0 ? void 0 : item.layoutpos;
549
548
  }
550
549
  var oPos = new Three.Vector2(pos.clone().x, pos.clone().y);
551
550
  var sBounding = obj.children[0].userData;
@@ -565,9 +564,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
565
564
  return false;
566
565
  }
567
566
  var _item = layer.items.getIn([data.id]);
568
- var ocatid = _item.type;
569
- var ocat = catalog.elements[ocatid];
570
- var olayoutpos = ocat.info.layoutpos;
567
+ var olayoutpos = _item.layoutpos;
571
568
  if (!(layoutpos === BASE_CABINET_LAYOUTPOS && olayoutpos === WALL_CABINET_LAYOUTPOS || layoutpos === WALL_CABINET_LAYOUTPOS && olayoutpos === BASE_CABINET_LAYOUTPOS)) {
572
569
  var tRot = _item.rotation;
573
570
  var tPos = new Three.Vector2(_item.x, _item.y);
@@ -1193,9 +1190,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1193
1190
  var curLayerId = _this2.props.state.scene.selectedLayer;
1194
1191
  var curLayer = _this2.props.state.scene.getIn(['layers', curLayerId]);
1195
1192
  if (!isEmpty(evtType) && !isEmpty(evtElement)) {
1196
- var _state$get, _this2$props$onIntern, _this2$props;
1197
- var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
1198
- var payload = updatePayloadOfInternalEvent(evtElement, curLayer, catalog, pointArray);
1193
+ var _this2$props$onIntern, _this2$props;
1194
+ var payload = updatePayloadOfInternalEvent(evtElement, curLayer, pointArray);
1199
1195
  (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1200
1196
  type: evtType,
1201
1197
  value: payload
@@ -2166,7 +2162,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2166
2162
  }
2167
2163
 
2168
2164
  // Add the output of the renderer to the html element
2169
- var canvasWrapper = this.canvasWrapperRef.current;
2165
+ var canvasWrapper = ReactDOM.findDOMNode(this.refs.canvasWrapper);
2170
2166
  canvasWrapper && canvasWrapper.appendChild(this.renderer.domElement);
2171
2167
 
2172
2168
  //
@@ -2435,8 +2431,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2435
2431
  this.renderer.renderLists.dispose();
2436
2432
  }
2437
2433
  }, {
2438
- key: "UNSAFE_componentWillReceiveProps",
2439
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
2434
+ key: "componentWillReceiveProps",
2435
+ value: function componentWillReceiveProps(nextProps) {
2440
2436
  var _this4 = this;
2441
2437
  if (this.props.downloadFlag && diff(this.props.state, nextProps.state).toJS().length == 0 || isEmpty(nextProps.state.scene)) return;
2442
2438
  var width = nextProps.width,
@@ -2646,17 +2642,25 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2646
2642
  this.renderer.domElement.style.opacity = '1';
2647
2643
  !this.props.downloadFlag && document.getElementById('front') && (document.getElementById('front').style.display = 'block');
2648
2644
  return /*#__PURE__*/React.createElement('div', {
2649
- ref: this.canvasWrapperRef
2645
+ ref: 'canvasWrapper'
2650
2646
  });
2651
2647
  }
2652
2648
  }
2653
2649
  }]);
2654
2650
  }(React.Component);
2655
- _defineProperty(Scene3DViewer, "contextType", AppContext);
2656
2651
  export { Scene3DViewer as default };
2657
2652
  Scene3DViewer.propTypes = {
2658
2653
  state: PropTypes.object.isRequired,
2659
2654
  width: PropTypes.number.isRequired,
2660
2655
  height: PropTypes.number.isRequired,
2661
2656
  replaceCabinet: PropTypes.func.isRequired
2657
+ };
2658
+ Scene3DViewer.contextTypes = {
2659
+ areaActions: PropTypes.object.isRequired,
2660
+ holesActions: PropTypes.object.isRequired,
2661
+ itemsActions: PropTypes.object.isRequired,
2662
+ linesActions: PropTypes.object.isRequired,
2663
+ sceneActions: PropTypes.object.isRequired,
2664
+ projectActions: PropTypes.object.isRequired,
2665
+ catalog: PropTypes.object
2662
2666
  };