kitchen-simulator 4.1.7-react-18 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +3 -0
  2. package/es/AppContext.js +1 -1
  3. package/es/LiteKitchenConfigurator.js +171 -111
  4. package/es/LiteRenderer.js +161 -129
  5. package/es/actions/export.js +25 -12
  6. package/es/actions/project-actions.js +2 -1
  7. package/es/assets/gltf/door_sliding.bin +0 -0
  8. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  9. package/es/catalog/catalog.js +21 -5
  10. package/es/catalog/factories/area-factory-3d.js +17 -17
  11. package/es/catalog/factories/wall-factory.js +1 -1
  12. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  13. package/es/catalog/properties/export.js +21 -0
  14. package/es/catalog/properties/property-checkbox.js +68 -0
  15. package/es/catalog/properties/property-color.js +39 -0
  16. package/es/catalog/properties/property-enum.js +50 -0
  17. package/es/catalog/properties/property-hidden.js +19 -0
  18. package/es/catalog/properties/property-lenght-measure.js +100 -0
  19. package/es/catalog/properties/property-length-measure.js +84 -0
  20. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  21. package/es/catalog/properties/property-number.js +48 -0
  22. package/es/catalog/properties/property-read-only.js +26 -0
  23. package/es/catalog/properties/property-string.js +48 -0
  24. package/es/catalog/properties/property-toggle.js +39 -0
  25. package/es/catalog/properties/shared-property-style.js +14 -0
  26. package/es/catalog/utils/exporter.js +24 -11
  27. package/es/catalog/utils/item-loader.js +224 -220
  28. package/es/class/hole.js +0 -2
  29. package/es/class/item.js +92 -70
  30. package/es/class/layer.js +1 -1
  31. package/es/class/line.js +4 -8
  32. package/es/class/project.js +96 -81
  33. package/es/components/content.js +10 -93
  34. package/es/components/export.js +4 -6
  35. package/es/components/style/button.js +106 -0
  36. package/es/components/style/cancel-button.js +21 -0
  37. package/es/components/style/content-container.js +30 -0
  38. package/es/components/style/content-title.js +25 -0
  39. package/es/components/style/delete-button.js +24 -0
  40. package/es/components/style/export.js +28 -2
  41. package/es/components/style/form-block.js +20 -0
  42. package/es/components/style/form-color-input.js +26 -0
  43. package/es/components/style/form-label.js +22 -0
  44. package/es/components/style/form-number-input.js +29 -29
  45. package/es/components/style/form-number-input_2.js +200 -0
  46. package/es/components/style/form-select.js +19 -0
  47. package/es/components/style/form-slider.js +60 -0
  48. package/es/components/style/form-submit-button.js +25 -0
  49. package/es/components/style/form-text-input.js +69 -0
  50. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  51. package/es/components/viewer2d/group.js +5 -4
  52. package/es/components/viewer2d/item.js +155 -359
  53. package/es/components/viewer2d/layer.js +1 -1
  54. package/es/components/viewer2d/line.js +22 -54
  55. package/es/components/viewer2d/ruler.js +16 -11
  56. package/es/components/viewer2d/rulerDist.js +38 -51
  57. package/es/components/viewer2d/rulerX.js +4 -2
  58. package/es/components/viewer2d/rulerY.js +3 -0
  59. package/es/components/viewer2d/scene.js +17 -12
  60. package/es/components/viewer2d/state.js +1 -1
  61. package/es/components/viewer2d/utils.js +2 -2
  62. package/es/components/viewer2d/vertex.js +3 -2
  63. package/es/components/viewer2d/viewer2d.js +81 -118
  64. package/es/components/viewer3d/front3D.js +13 -1
  65. package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
  66. package/es/components/viewer3d/scene-creator.js +270 -69
  67. package/es/components/viewer3d/viewer3d-first-person.js +26 -32
  68. package/es/components/viewer3d/viewer3d.js +110 -130
  69. package/es/constants.js +7 -2
  70. package/es/devLiteRenderer.js +491 -150
  71. package/es/index.js +589 -62
  72. package/es/models.js +13 -8
  73. package/es/plugins/SVGLoader.js +1414 -0
  74. package/es/plugins/console-debugger.js +34 -0
  75. package/es/plugins/export.js +7 -0
  76. package/es/plugins/keyboard.js +110 -0
  77. package/es/reducers/project-reducer.js +4 -1
  78. package/es/reducers/viewer2d-reducer.js +3 -1
  79. package/es/reducers/viewer3d-reducer.js +3 -1
  80. package/es/styles/export.js +5 -0
  81. package/es/styles/tabs.css +40 -0
  82. package/es/utils/geometry.js +77 -119
  83. package/es/utils/helper.js +38 -1
  84. package/es/utils/isolate-event-handler.js +829 -609
  85. package/es/utils/molding.js +489 -11
  86. package/es/utils/ruler.js +58 -0
  87. package/lib/AppContext.js +1 -1
  88. package/lib/LiteKitchenConfigurator.js +170 -111
  89. package/lib/LiteRenderer.js +160 -129
  90. package/lib/actions/export.js +35 -39
  91. package/lib/actions/project-actions.js +2 -1
  92. package/lib/assets/gltf/door_sliding.bin +0 -0
  93. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  94. package/lib/catalog/catalog.js +20 -4
  95. package/lib/catalog/factories/area-factory-3d.js +14 -14
  96. package/lib/catalog/factories/wall-factory.js +1 -1
  97. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  98. package/lib/catalog/properties/export.js +81 -0
  99. package/lib/catalog/properties/property-checkbox.js +76 -0
  100. package/lib/catalog/properties/property-color.js +47 -0
  101. package/lib/catalog/properties/property-enum.js +58 -0
  102. package/lib/catalog/properties/property-hidden.js +27 -0
  103. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  104. package/lib/catalog/properties/property-length-measure.js +92 -0
  105. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  106. package/lib/catalog/properties/property-number.js +56 -0
  107. package/lib/catalog/properties/property-read-only.js +34 -0
  108. package/lib/catalog/properties/property-string.js +56 -0
  109. package/lib/catalog/properties/property-toggle.js +47 -0
  110. package/lib/catalog/properties/shared-property-style.js +21 -0
  111. package/lib/catalog/utils/exporter.js +24 -11
  112. package/lib/catalog/utils/item-loader.js +221 -217
  113. package/lib/class/hole.js +0 -2
  114. package/lib/class/item.js +90 -68
  115. package/lib/class/layer.js +1 -1
  116. package/lib/class/line.js +3 -7
  117. package/lib/class/project.js +96 -81
  118. package/lib/components/content.js +10 -93
  119. package/lib/components/export.js +6 -26
  120. package/lib/components/style/button.js +115 -0
  121. package/lib/components/style/cancel-button.js +29 -0
  122. package/lib/components/style/content-container.js +38 -0
  123. package/lib/components/style/content-title.js +35 -0
  124. package/lib/components/style/delete-button.js +34 -0
  125. package/lib/components/style/export.js +105 -1
  126. package/lib/components/style/form-block.js +28 -0
  127. package/lib/components/style/form-color-input.js +34 -0
  128. package/lib/components/style/form-label.js +30 -0
  129. package/lib/components/style/form-number-input.js +29 -29
  130. package/lib/components/style/form-number-input_2.js +209 -0
  131. package/lib/components/style/form-select.js +29 -0
  132. package/lib/components/style/form-slider.js +68 -0
  133. package/lib/components/style/form-submit-button.js +35 -0
  134. package/lib/components/style/form-text-input.js +78 -0
  135. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  136. package/lib/components/viewer2d/group.js +5 -4
  137. package/lib/components/viewer2d/item.js +152 -356
  138. package/lib/components/viewer2d/layer.js +1 -1
  139. package/lib/components/viewer2d/line.js +22 -54
  140. package/lib/components/viewer2d/ruler.js +15 -10
  141. package/lib/components/viewer2d/rulerDist.js +38 -51
  142. package/lib/components/viewer2d/rulerX.js +4 -2
  143. package/lib/components/viewer2d/rulerY.js +3 -0
  144. package/lib/components/viewer2d/scene.js +17 -12
  145. package/lib/components/viewer2d/state.js +1 -1
  146. package/lib/components/viewer2d/utils.js +2 -2
  147. package/lib/components/viewer2d/vertex.js +3 -2
  148. package/lib/components/viewer2d/viewer2d.js +79 -115
  149. package/lib/components/viewer3d/front3D.js +13 -1
  150. package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
  151. package/lib/components/viewer3d/scene-creator.js +267 -66
  152. package/lib/components/viewer3d/viewer3d-first-person.js +26 -32
  153. package/lib/components/viewer3d/viewer3d.js +107 -126
  154. package/lib/constants.js +12 -7
  155. package/lib/devLiteRenderer.js +489 -148
  156. package/lib/index.js +591 -62
  157. package/lib/models.js +13 -8
  158. package/lib/plugins/SVGLoader.js +1419 -0
  159. package/lib/plugins/console-debugger.js +42 -0
  160. package/lib/plugins/export.js +25 -0
  161. package/lib/plugins/keyboard.js +117 -0
  162. package/lib/reducers/project-reducer.js +4 -1
  163. package/lib/reducers/viewer2d-reducer.js +3 -1
  164. package/lib/reducers/viewer3d-reducer.js +3 -1
  165. package/lib/styles/export.js +13 -0
  166. package/lib/styles/tabs.css +40 -0
  167. package/lib/utils/geometry.js +77 -119
  168. package/lib/utils/helper.js +40 -1
  169. package/lib/utils/isolate-event-handler.js +829 -608
  170. package/lib/utils/molding.js +490 -9
  171. package/lib/utils/ruler.js +63 -0
  172. package/package.json +21 -20
  173. package/es/mocks/appliancePayload.json +0 -27
  174. package/es/mocks/cabinetPayload.json +0 -1914
  175. package/es/mocks/cabinetPayload2.json +0 -76
  176. package/es/mocks/dataBundle2.json +0 -4
  177. package/es/mocks/distancePayload.json +0 -6
  178. package/es/mocks/doorStylePayload2.json +0 -84
  179. package/es/mocks/furnishingPayload.json +0 -23
  180. package/es/mocks/itemCDSPayload.json +0 -27
  181. package/es/mocks/lightingPayload.json +0 -23
  182. package/es/mocks/mockProps.json +0 -43
  183. package/es/mocks/mockProps2.json +0 -9
  184. package/es/mocks/moldingPayload.json +0 -19
  185. package/es/mocks/projectItemsCatalog.json +0 -133
  186. package/es/mocks/rectangleShape.json +0 -238
  187. package/es/mocks/replaceCabinetPayload.json +0 -81
  188. package/es/mocks/roomShapePayload.json +0 -5
  189. package/es/useAppContext.js +0 -8
  190. package/lib/mocks/appliancePayload.json +0 -27
  191. package/lib/mocks/cabinetPayload.json +0 -1914
  192. package/lib/mocks/cabinetPayload2.json +0 -76
  193. package/lib/mocks/dataBundle2.json +0 -4
  194. package/lib/mocks/distancePayload.json +0 -6
  195. package/lib/mocks/doorStylePayload2.json +0 -84
  196. package/lib/mocks/furnishingPayload.json +0 -23
  197. package/lib/mocks/itemCDSPayload.json +0 -27
  198. package/lib/mocks/lightingPayload.json +0 -23
  199. package/lib/mocks/mockProps.json +0 -43
  200. package/lib/mocks/mockProps2.json +0 -9
  201. package/lib/mocks/moldingPayload.json +0 -19
  202. package/lib/mocks/projectItemsCatalog.json +0 -133
  203. package/lib/mocks/rectangleShape.json +0 -238
  204. package/lib/mocks/replaceCabinetPayload.json +0 -81
  205. package/lib/mocks/roomShapePayload.json +0 -5
  206. package/lib/useAppContext.js +0 -16
@@ -7,12 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
  var _readOnlyError2 = _interopRequireDefault(require("@babel/runtime/helpers/readOnlyError"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
15
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _react = _interopRequireDefault(require("react"));
17
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
18
18
  var _reactDom = _interopRequireDefault(require("react-dom"));
@@ -31,7 +31,6 @@ var _RGBELoader = require("three/examples/jsm/loaders/RGBELoader");
31
31
  var _cameraControls = _interopRequireDefault(require("camera-controls"));
32
32
  var _objectsUtils = require("../../utils/objects-utils");
33
33
  var _utils = require("../viewer2d/utils");
34
- var _AppContext = _interopRequireDefault(require("../../AppContext"));
35
34
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
36
35
  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; }
37
36
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -58,7 +57,6 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
58
57
  _this.width = props.width;
59
58
  _this.height = props.height;
60
59
  _this.renderingID = 0;
61
- _this.canvasWrapperRef = /*#__PURE__*/_react["default"].createRef();
62
60
  var mode = props.state.mode;
63
61
  if (!window.__elevationRendererDownload) {
64
62
  window.__elevationRendererDownload = {};
@@ -240,6 +238,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
240
238
  });
241
239
  self.renderer.domElement.style.display = 'block';
242
240
  }, 1500);
241
+ self.planData = planData;
243
242
  });
244
243
  var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
245
244
  var layer = scene.getIn(['layers', scene.selectedLayer]);
@@ -678,7 +677,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
678
677
  layer.lines.forEach(function (line) {
679
678
  line.holes.forEach(function (holeID) {
680
679
  var hole = layer.holes.get(holeID);
681
- holes.push(hole);
680
+ if (hole) holes.push(hole);
682
681
  });
683
682
  });
684
683
  var i = 0;
@@ -824,17 +823,19 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
824
823
  this.snap = function (obj, layer) {
825
824
  // snap operation
826
825
  var target = obj.userData.target;
826
+ if ((0, _helper.isEmpty)(target)) return;
827
827
  for (; target.parent != null;) {
828
828
  if (target.name == 'pivot') break;
829
829
  target = target.parent;
830
830
  }
831
831
  var source = obj.parent.parent.parent;
832
832
  if (target.userData.type == 'item') {
833
+ var _item$properties$getI;
833
834
  var sRot = layer.getIn(['items', source.userData.itemId]).rotation;
834
835
  var tRot = layer.getIn(['items', target.userData.itemId]) ? layer.getIn(['items', target.userData.itemId]).rotation : 0;
835
836
  var item = layer.getIn(['items', source.userData.itemId]);
836
837
  var layoutType = item.layoutpos;
837
- var altitudeLength = (0, _convertUnitsLite.convert)(item.properties.getIn(['altitude', '_length'])).from('in').to('cm');
838
+ var altitudeLength = (0, _convertUnitsLite.convert)(item.properties.getIn(['altitude', '_length'])).from((_item$properties$getI = item.properties.getIn(['altitude', '_unit'])) !== null && _item$properties$getI !== void 0 ? _item$properties$getI : 'in').to('cm');
838
839
  var sBounding = source.children[0].userData;
839
840
  var tBounding = target.children[0].userData;
840
841
  var tPos = target.position.clone();
@@ -934,8 +935,9 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
934
935
  snapFlag = false;
935
936
  return;
936
937
  } else {
938
+ var _item3$properties$get;
937
939
  var _layoutType = _item3.layoutpos;
938
- var _altitudeLength = (0, _convertUnitsLite.convert)(_item3.properties.getIn(['altitude', '_length'])).from('in').to('cm');
940
+ var _altitudeLength = (0, _convertUnitsLite.convert)(_item3.properties.getIn(['altitude', '_length'])).from((_item3$properties$get = _item3.properties.getIn(['altitude', '_unit'])) !== null && _item3$properties$get !== void 0 ? _item3$properties$get : 'in').to('cm');
939
941
  var _sBounding = source.children[0].userData;
940
942
  var _width = _sBounding.max.x - _sBounding.min.x;
941
943
  var _height = _sBounding.max.y - _sBounding.min.y;
@@ -1195,25 +1197,9 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1195
1197
  var sendInternalEvent = function sendInternalEvent(evtType, evtElement) {
1196
1198
  var pointArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1197
1199
  if (!(0, _helper.isEmpty)(evtType) && !(0, _helper.isEmpty)(evtElement)) {
1198
- var _currentObject, _this2$props$onIntern, _this2$props;
1199
- var payload = evtElement === null || evtElement === void 0 ? void 0 : evtElement.toJS();
1200
- if (((_currentObject = currentObject) === null || _currentObject === void 0 ? void 0 : _currentObject.prototype) === 'lines') {
1201
- // caculating length of selected line//
1202
- var v_a = layer.vertices.get(currentObject.vertices.get(0));
1203
- var v_b = layer.vertices.get(currentObject.vertices.get(1));
1204
- var distance = _export.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
1205
- var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to('in');
1206
- payload.length = _length;
1207
- //////////////////////////////////////
1208
- } else if ((evtElement === null || evtElement === void 0 ? void 0 : evtElement.prototype) === 'items') {
1209
- // check this cabinet has warning box
1210
- payload.isWarning = (0, _utils.isWarningItem)(evtElement);
1211
- // check this item is available molding
1212
- payload.isMoldingAvailable = _export.MoldingUtils.isEnableItemForMolding(layer, evtElement); // check this item is snapped to wall
1213
- payload.isAttachedWall = _export.MoldingUtils.isAttachedWall(layer, evtElement);
1214
- // update distArray
1215
- if (pointArray) payload.distArray = pointArray;
1216
- }
1200
+ var _state$get, _this2$props$onIntern, _this2$props;
1201
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
1202
+ var payload = (0, _helper.updatePayloadOfInternalEvent)(evtElement, layer, catalog, pointArray);
1217
1203
  (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1218
1204
  type: evtType,
1219
1205
  value: payload
@@ -1295,6 +1281,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1295
1281
  }
1296
1282
  if (_this2.props.state.mode == _constants.MODE_DRAWING_ITEM_3D) return;
1297
1283
  if (isSelected) {
1284
+ !_this2.props.downloadFlag && _this2.props.setToolbar('');
1298
1285
  if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1299
1286
  var _i1;
1300
1287
  for (_i1 = 0; _i1 < intersects.length; _i1++) {
@@ -1303,7 +1290,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1303
1290
  if (intersects[_i1] === undefined) {
1304
1291
  if (transflag !== 0 && transflag !== 2) {
1305
1292
  isSelected = false;
1306
- // this.context.projectActions.unselectAll();
1293
+ _this2.context.projectActions.unselectAll();
1307
1294
  scene3D.remove(toolObj);
1308
1295
  _this2.context.itemsActions.removeReplacingSupport();
1309
1296
  return;
@@ -1370,16 +1357,11 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1370
1357
  if (selectedFlag || toolIntersects.length > 0 && !(0, _helper.isElevationView)(mode)) {
1371
1358
  cameraControls.mouseButtons.left = _cameraControls["default"].ACTION.NONE;
1372
1359
  selectedFlag = false;
1373
- } else {
1374
- isSelected = false;
1375
- // this.context.projectActions.unselectAll();
1376
- scene3D.remove(toolObj);
1377
- _this2.context.itemsActions.removeReplacingSupport();
1378
1360
  }
1379
1361
  }
1380
1362
  } else {
1381
1363
  isSelected = false;
1382
- // this.context.projectActions.unselectAll();
1364
+ _this2.context.projectActions.unselectAll();
1383
1365
  scene3D.remove(toolObj);
1384
1366
  _this2.context.itemsActions.removeReplacingSupport();
1385
1367
  return;
@@ -1387,10 +1369,12 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1387
1369
  }
1388
1370
  };
1389
1371
  this.mouseUpEvent = function (event) {
1372
+ var _selectedObject;
1390
1373
  var internalType = ''; // internalEvent type - select/drag/draw
1391
1374
  var selectedElement; // internalEvent data
1392
1375
  firstMove = 0;
1393
1376
  var altitude = 0;
1377
+ var curLayer = _this2.props.state.scene.getIn(['layers', (_selectedObject = selectedObject) === null || _selectedObject === void 0 ? void 0 : _selectedObject.layerID]);
1394
1378
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1395
1379
  var properties = allItemRect.cur.itemInfo.properties;
1396
1380
  altitude = properties.getIn(['altitude', '_length']);
@@ -1399,6 +1383,9 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1399
1383
  }
1400
1384
  scene3D.remove(angleObj);
1401
1385
  scene3D.remove(toolObj);
1386
+ if (!_this2.props.downloadFlag && !_this2.props.state.mode.includes('ING')) {
1387
+ _this2.props.setToolbar('');
1388
+ }
1402
1389
  if (_this2.props.state.mode == _constants.MODE_DRAWING_ITEM_3D) {
1403
1390
  if (Point.x > _this2.props.state.scene.width) Point.x = _this2.props.state.width;
1404
1391
  if (Point.y > _this2.props.state.scene.height) Point.y = _this2.props.state.height;
@@ -1408,7 +1395,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1408
1395
  actions.itemsActions.endDrawingItem(_this2.props.state.scene.selectedLayer, sPoint.x, sPoint.y);
1409
1396
  } else {
1410
1397
  removeSnapBox();
1411
- var polygon = _export.GeometryUtils.getPoylgonPoints(layer);
1398
+ var polygon = _export.GeometryUtils.getPoylgonPoints(curLayer !== null && curLayer !== void 0 ? curLayer : layer);
1412
1399
  // if cursor is outside of room
1413
1400
  if (polygon.length > 0 && !_export.GeometryUtils.ContainsPoint(polygon, Point.x, Point.y)) {
1414
1401
  actions.itemsActions.endDrawingItem(_this2.props.state.scene.selectedLayer, sPoint.x, sPoint.y);
@@ -1469,7 +1456,8 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1469
1456
  });
1470
1457
  });
1471
1458
  var intersects = raycaster.intersectObjects(meshes, true);
1472
- var _i10;
1459
+ var _i10; // index of warning object in intersects
1460
+
1473
1461
  if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1474
1462
  for (_i10 = 0; _i10 < intersects.length; _i10++) {
1475
1463
  if (intersects[_i10].object.name === 'warningObj') break;
@@ -1485,6 +1473,9 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1485
1473
  var replaceInfo = intersects[_i10].object.parent.parent.userData;
1486
1474
  _this2.context.itemsActions.selectItem(replaceInfo.layerId, replaceInfo.itemId);
1487
1475
  !_this2.props.downloadFlag && _this2.props.replaceCabinet(true);
1476
+ internalType = _constants.INTERNAL_EVENT_REPLACE_CABINET;
1477
+ var replaceElement = _this2.props.state.scene.layers.get(replaceInfo.layerId).items.get(replaceInfo.itemId);
1478
+ sendInternalEvent(internalType, replaceElement);
1488
1479
  return;
1489
1480
  }
1490
1481
  }
@@ -1497,6 +1488,19 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1497
1488
  }
1498
1489
  }
1499
1490
  gridMatrix.copy(gridPlane.matrixWorld).invert();
1491
+ var addItemToolObj = function addItemToolObj() {
1492
+ var _planData$sceneGraph, _selectedObject2, _intersects$_i;
1493
+ var selectedItem = (_planData$sceneGraph = planData.sceneGraph) === null || _planData$sceneGraph === void 0 || (_planData$sceneGraph = _planData$sceneGraph.layers[selectedObject.layerID]) === null || _planData$sceneGraph === void 0 ? void 0 : _planData$sceneGraph.items[(_selectedObject2 = selectedObject) === null || _selectedObject2 === void 0 ? void 0 : _selectedObject2.itemID];
1494
+ if ((0, _util.isUndefined)(selectedItem)) return;
1495
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1496
+ var itemPos = selectedItem.position.clone();
1497
+ 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) {
1498
+ toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1499
+ } else {
1500
+ 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);
1501
+ }
1502
+ scene3D.add(toolObj);
1503
+ };
1500
1504
  if (Math.abs(mouse.x - _this2.lastMousePosition.x) <= 0.02 && Math.abs(mouse.y - _this2.lastMousePosition.y) <= 0.02 || bMove) {
1501
1505
  if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1502
1506
  if (intersects[_i10] === undefined) {
@@ -1519,38 +1523,20 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1519
1523
  }
1520
1524
  isSelected = true;
1521
1525
  setTimeout(function () {
1522
- (0, _sceneCreator.getDistances)(layer);
1523
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1524
- if ((0, _util.isUndefined)(selectedItem)) return;
1525
- selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1526
- var itemPos = selectedItem.position.clone();
1527
- if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1528
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1529
- } else {
1530
- 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);
1531
- }
1532
- scene3D.add(toolObj);
1526
+ var _curLayer$id;
1527
+ addItemToolObj();
1528
+ (0, _sceneCreator.getDistances)(curLayer !== null && curLayer !== void 0 ? curLayer : layer, selectedElement);
1533
1529
  _this2.setState({
1534
1530
  toolObj: toolObj
1535
1531
  });
1536
1532
  // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1537
- var pointArray = [],
1538
- cnt = 0;
1539
- pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1540
- pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1541
- pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1542
- pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1543
- pointArray.forEach(function (pointElement, index) {
1544
- if (pointElement[0] == undefined) pointArray[index][0] = 0;
1545
- });
1546
- pointArray.forEach(function (pointElement) {
1547
- if (pointElement[0] == 0) cnt++;
1548
- });
1549
- if (cnt == 4 || cnt == 3) {
1550
- pointArray[0][0] = 100;
1551
- pointArray[1][0] = 100;
1552
- }
1553
- actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1533
+ var pointArray = [];
1534
+ // pointArray.push([fVLine[0].userData.distance, 90]);
1535
+ // pointArray.push([fVLine[1].userData.distance, -90]);
1536
+ // pointArray.push([fVLine[2].userData.distance, 180]);
1537
+ // pointArray.push([fVLine[3].userData.distance, 0]);
1538
+ pointArray = _export.GeometryUtils.calcDistancesFromItemToWalls(selectedElement, curLayer !== null && curLayer !== void 0 ? curLayer : layer).PointArray;
1539
+ actions.itemsActions.storeDistArray((_curLayer$id = curLayer === null || curLayer === void 0 ? void 0 : curLayer.id) !== null && _curLayer$id !== void 0 ? _curLayer$id : layer.id, selectedObject.itemID, pointArray);
1554
1540
  internalType = internalType ? internalType : _constants.INTERNAL_EVENT_SELECT_ELEMENT;
1555
1541
  sendInternalEvent(internalType, selectedElement, pointArray);
1556
1542
  });
@@ -1582,25 +1568,31 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1582
1568
  isSelected = false;
1583
1569
  }
1584
1570
  } else {
1585
- isSelected = false;
1586
- _this2.context.projectActions.unselectAll();
1587
- switch (true) {
1588
- case 'holeID' in selectedObject:
1589
- actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1590
- break;
1591
- default:
1592
- _this2.context.itemsActions.removeReplacingSupport();
1593
- break;
1571
+ var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1572
+ if (bMove && !(0, _helper.isEmpty)(selectedItem)) {
1573
+ addItemToolObj();
1574
+ } else {
1575
+ isSelected = false;
1576
+ _this2.context.projectActions.unselectAll();
1577
+ switch (true) {
1578
+ case 'holeID' in selectedObject:
1579
+ actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1580
+ break;
1581
+ default:
1582
+ _this2.context.itemsActions.removeReplacingSupport();
1583
+ break;
1584
+ }
1594
1585
  }
1595
1586
  }
1596
1587
  bMove = false;
1597
1588
  bRotate = false;
1598
1589
  bMoveUP = false;
1599
1590
  if (isSelected) {
1600
- prepareSnap(layer);
1591
+ prepareSnap(curLayer !== null && curLayer !== void 0 ? curLayer : layer);
1601
1592
  selectedObj = allItemRect.cur;
1602
1593
  }
1603
1594
  } else {
1595
+ var _planData$sceneGraph2, _selectedObject3, _selectedObject4;
1604
1596
  (0, _sceneCreator.visibleTransformBox)(false);
1605
1597
  var alti = 0;
1606
1598
  if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
@@ -1610,18 +1602,9 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1610
1602
  alti = (0, _convertUnitsLite.convert)(alti).from(_unit2).to(_this2.props.state.scene.unit);
1611
1603
  }
1612
1604
  getPoint(event, alti);
1605
+ var _selectedItem = planData === null || planData === void 0 || (_planData$sceneGraph2 = planData.sceneGraph) === null || _planData$sceneGraph2 === void 0 || (_planData$sceneGraph2 = _planData$sceneGraph2.layers[(_selectedObject3 = selectedObject) === null || _selectedObject3 === void 0 ? void 0 : _selectedObject3.layerID]) === null || _planData$sceneGraph2 === void 0 ? void 0 : _planData$sceneGraph2.items[(_selectedObject4 = selectedObject) === null || _selectedObject4 === void 0 ? void 0 : _selectedObject4.itemID];
1606
+ if (isSelected && !(0, _helper.isEmpty)(_selectedItem)) addItemToolObj();
1613
1607
  if (bRotate) {
1614
- var _intersects$_i;
1615
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1616
- if ((0, _util.isUndefined)(selectedItem)) return;
1617
- selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1618
- var itemPos = selectedItem.position.clone();
1619
- 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) {
1620
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1621
- } else {
1622
- 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);
1623
- }
1624
- scene3D.add(toolObj);
1625
1608
  _this2.setState({
1626
1609
  toolObj: toolObj
1627
1610
  });
@@ -1630,16 +1613,6 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1630
1613
  }
1631
1614
  if (bMove) {
1632
1615
  bMove = false;
1633
- var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1634
- if ((0, _util.isUndefined)(_selectedItem)) return;
1635
- selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1636
- var _itemPos = _selectedItem.position.clone();
1637
- if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) {
1638
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1639
- } else {
1640
- 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);
1641
- }
1642
- scene3D.add(toolObj);
1643
1616
  _this2.setState({
1644
1617
  toolObj: toolObj
1645
1618
  });
@@ -1667,7 +1640,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1667
1640
  removeSnapBox();
1668
1641
  actions.sceneActions.updateMovingState(true);
1669
1642
  if (isSelected === true) {
1670
- prepareSnap(layer);
1643
+ prepareSnap(curLayer !== null && curLayer !== void 0 ? curLayer : layer);
1671
1644
  selectedObj = allItemRect.cur;
1672
1645
  }
1673
1646
  }
@@ -2066,8 +2039,9 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2066
2039
  // handle snapBox, distArray, backsplash
2067
2040
  this.handleAfterMovingItem = function () {
2068
2041
  var layer = _this2.props.state.scene.getIn(['layers', selectedObject.layerID]);
2042
+ var item = layer.getIn(['items', selectedObject.itemID]);
2069
2043
  var item3D = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
2070
- (0, _sceneCreator.getDistances)(layer);
2044
+ (0, _sceneCreator.getDistances)(layer, item);
2071
2045
  var pointArray = [],
2072
2046
  cnt = 0;
2073
2047
  pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
@@ -2106,7 +2080,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2106
2080
  if (minDis < snapDelta && !snapFlag) {
2107
2081
  _this2.snap(snapObj, layer);
2108
2082
  snapFlag = true;
2109
- (0, _sceneCreator.getDistances)(layer);
2083
+ (0, _sceneCreator.getDistances)(layer, item);
2110
2084
  var _i13 = 0;
2111
2085
  for (_i13 = 0; _i13 < _sceneCreator.fVLine.length; _i13++) {
2112
2086
  if (_sceneCreator.fVLine[_i13].userData.distance < snapDelta) {
@@ -2196,7 +2170,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2196
2170
  }
2197
2171
 
2198
2172
  // Add the output of the renderer to the html element
2199
- var canvasWrapper = this.canvasWrapperRef.current;
2173
+ var canvasWrapper = _reactDom["default"].findDOMNode(this.refs.canvasWrapper);
2200
2174
  canvasWrapper && canvasWrapper.appendChild(this.renderer.domElement);
2201
2175
 
2202
2176
  //
@@ -2465,18 +2439,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2465
2439
  this.renderer.renderLists.dispose();
2466
2440
  }
2467
2441
  }, {
2468
- key: "componentDidUpdate",
2469
- value: function componentDidUpdate(prevProps) {
2442
+ key: "componentWillReceiveProps",
2443
+ value: function componentWillReceiveProps(nextProps) {
2470
2444
  var _this4 = this;
2471
- // Early return if downloadFlag and state are unchanged or scene is empty
2472
- if (this.props.downloadFlag && (0, _immutablediff["default"])(prevProps.state, this.props.state).toJS().length == 0 || (0, _helper.isEmpty)(this.props.state.scene)) {
2473
- return;
2474
- }
2475
- var _this$props = this.props,
2476
- width = _this$props.width,
2477
- height = _this$props.height;
2478
- var selectedLayer = this.props.state.getIn(['scene', 'layers', this.props.state.scene.selectedLayer]);
2479
- var ceilHeight = (0, _convertUnitsLite.convert)(selectedLayer.ceilHeight).from(selectedLayer.unit).to(this.props.state.scene.unit);
2445
+ if (this.props.downloadFlag && (0, _immutablediff["default"])(this.props.state, nextProps.state).toJS().length == 0 || (0, _helper.isEmpty)(nextProps.state.scene)) return;
2446
+ var width = nextProps.width,
2447
+ height = nextProps.height;
2448
+ var selectedLayer = nextProps.state.getIn(['scene', 'layers', nextProps.state.scene.selectedLayer]);
2449
+ var ceilHeight = (0, _convertUnitsLite.convert)(selectedLayer.ceilHeight).from(selectedLayer.unit).to(nextProps.state.scene.unit);
2480
2450
  var actions = {
2481
2451
  areaActions: this.context.areaActions,
2482
2452
  holesActions: this.context.holesActions,
@@ -2486,7 +2456,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2486
2456
  projectActions: this.context.projectActions,
2487
2457
  catalog: this.context.catalog
2488
2458
  };
2489
- var isLoadingCabinet = this.props.state.scene.isLoadingCabinet;
2459
+ var isLoadingCabinet = nextProps.state.scene.isLoadingCabinet;
2490
2460
  if (this.state.isLoadingCabinet !== isLoadingCabinet) this.setState({
2491
2461
  isLoadingCabinet: isLoadingCabinet
2492
2462
  });
@@ -2497,7 +2467,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2497
2467
  var allItemRect;
2498
2468
 
2499
2469
  // handle camera setting
2500
- switch (prevProps.state.mode) {
2470
+ switch (this.props.state.mode) {
2501
2471
  case _constants.MODE_ELEVATION_VIEW:
2502
2472
  // when Elevation mode (camera: Orthographic)
2503
2473
  var cameraRect = (0, _helper.handleCamRect)(width, height, ceilHeight, this.state.lineLength);
@@ -2515,12 +2485,12 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2515
2485
  break;
2516
2486
  }
2517
2487
  this.camera.updateProjectionMatrix();
2518
- var data = this.props.state.scene;
2488
+ var data = nextProps.state.scene;
2519
2489
  var layer = data.getIn(['layers', data.selectedLayer]);
2520
2490
  var self = this;
2521
2491
  function implementBacksplash() {
2522
- if ((0, _helper.isElevationView)(self.props.state.mode)) return;
2523
- var allItems = _export.GeometryUtils.getAllItemSpecified(self.props.state.scene, actions.catalog, _constants.BASE_CABINET_LAYOUTPOS);
2492
+ if ((0, _helper.isElevationView)(self.props.state.mode)) return; // apply backsplash when just 3D_mode, not elevation_mode
2493
+ var allItems = _export.GeometryUtils.getAllItemSpecified(nextProps.state.scene, actions.catalog, _constants.BASE_CABINET_LAYOUTPOS);
2524
2494
  var i,
2525
2495
  items = [];
2526
2496
  for (i = 0; i < allItems.others.length; i++) items.push(allItems.others[i]);
@@ -2529,7 +2499,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2529
2499
  var calcRect = _export.GeometryUtils.getCalcRectFromItem3D(items[i]);
2530
2500
  var visible = _export.GeometryUtils.isSnappedLine(calcRect, allLineRects);
2531
2501
  actions.itemsActions.setBacksplashVisible(items[i].itemInfo.id, visible);
2532
- (0, _sceneCreator.createBacksplash)(items[i], self.props.state.scene.getIn(['layers', self.props.state.scene.selectedLayer]), planData, self.props.state.scene);
2502
+ (0, _sceneCreator.createBacksplash)(items[i], nextProps.state.scene.getIn(['layers', nextProps.state.scene.selectedLayer]), planData, nextProps.state.scene);
2533
2503
  }
2534
2504
  }
2535
2505
  function implementWarningBox() {
@@ -2557,13 +2527,16 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2557
2527
  showflag: false
2558
2528
  });
2559
2529
  }
2560
- if (this.props.state.scene !== prevProps.state.scene || this.props.state.doorStyle && this.props.state.doorStyle.get('name') !== prevProps.state.doorStyle.get('name')) {
2561
- var changedValues = (0, _immutablediff["default"])(prevProps.state.scene, this.props.state.scene);
2530
+ if (nextProps.state.scene !== this.props.state.scene || nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') !== this.props.state.doorStyle.get('name')) {
2531
+ var changedValues = (0, _immutablediff["default"])(this.props.state.scene, nextProps.state.scene);
2562
2532
  prepareSnapSpec(layer);
2563
- if (this.props.state.doorStyle && this.props.state.doorStyle.get('name') === prevProps.state.doorStyle.get('name')) {
2564
- self.setState({
2565
- isLoading: true
2566
- });
2533
+ var isInteractiveMove = nextProps.state.mode === _constants.MODE_DRAGGING_ITEM_3D || nextProps.state.mode === _constants.MODE_ROTATING_ITEM_3D || nextProps.state.mode === _constants.MODE_DRAWING_ITEM_3D || nextProps.state.mode === _constants.MODE_DRAGGING_HOLE_3D || nextProps.state.mode === _constants.MODE_IDLE_3D;
2534
+ if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') === this.props.state.doorStyle.get('name')) {
2535
+ if (!isInteractiveMove) {
2536
+ self.setState({
2537
+ isLoading: true
2538
+ });
2539
+ }
2567
2540
  if (self.props.downloadFlag) {
2568
2541
  self.setState({
2569
2542
  waitForRender: 0
@@ -2579,7 +2552,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2579
2552
  }
2580
2553
  self.renderer.domElement.style.display = 'none';
2581
2554
  }
2582
- if (this.props.state.scene.showfg == true) {
2555
+ if (nextProps.state.scene.showfg == true) {
2583
2556
  implementBacksplash();
2584
2557
  implementWarningBox();
2585
2558
  } else {
@@ -2588,7 +2561,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2588
2561
  var _this$state = this.state,
2589
2562
  toolObj = _this$state.toolObj,
2590
2563
  angleObj = _this$state.angleObj;
2591
- var _updateScene = (0, _sceneCreator.updateScene)(this.planData, this.props.state.scene, prevProps.state.scene, changedValues.toJS(), actions, this.context.catalog, this.props.state.mode, toolObj, angleObj, this.props.state.draggingSupport),
2564
+ var _updateScene = (0, _sceneCreator.updateScene)(this.planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
2592
2565
  promise = _updateScene.promise;
2593
2566
  self.setState();
2594
2567
  promise.then(function (p1Value) {
@@ -2600,8 +2573,8 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2600
2573
  });
2601
2574
  self.renderer.domElement.style.display = 'block';
2602
2575
  });
2603
- if (this.props.state.getIn(['scene', 'isEndDragging'])) {
2604
- this.props.state.setIn(['scene', 'isEndDragging'], false);
2576
+ if (nextProps.state.getIn(['scene', 'isEndDragging'])) {
2577
+ nextProps.state.setIn(['scene', 'isEndDragging'], false);
2605
2578
  }
2606
2579
  }
2607
2580
  this.renderer.setSize(width, height);
@@ -2677,17 +2650,25 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2677
2650
  this.renderer.domElement.style.opacity = '1';
2678
2651
  !this.props.downloadFlag && document.getElementById('front') && (document.getElementById('front').style.display = 'block');
2679
2652
  return /*#__PURE__*/_react["default"].createElement('div', {
2680
- ref: this.canvasWrapperRef
2653
+ ref: 'canvasWrapper'
2681
2654
  });
2682
2655
  }
2683
2656
  }
2684
2657
  }]);
2685
2658
  }(_react["default"].Component);
2686
- (0, _defineProperty2["default"])(Scene3DViewer, "contextType", _AppContext["default"]);
2687
2659
  Scene3DViewer.propTypes = {
2688
2660
  state: _propTypes["default"].object.isRequired,
2689
2661
  width: _propTypes["default"].number.isRequired,
2690
2662
  height: _propTypes["default"].number.isRequired,
2691
2663
  replaceCabinet: _propTypes["default"].func.isRequired
2692
2664
  };
2665
+ Scene3DViewer.contextTypes = {
2666
+ areaActions: _propTypes["default"].object.isRequired,
2667
+ holesActions: _propTypes["default"].object.isRequired,
2668
+ itemsActions: _propTypes["default"].object.isRequired,
2669
+ linesActions: _propTypes["default"].object.isRequired,
2670
+ sceneActions: _propTypes["default"].object.isRequired,
2671
+ projectActions: _propTypes["default"].object.isRequired,
2672
+ catalog: _propTypes["default"].object
2673
+ };
2693
2674
  module.exports = exports.default;