kitchen-simulator 3.0.0 → 3.0.3

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.
@@ -22,8 +22,9 @@ export default function (_ref) {
22
22
  outlineSVGData = _ref.outlineSVGData,
23
23
  cds = _ref.cds;
24
24
  var _length = alti || 0;
25
- // const length = convert(_length).from("in").to("cm");
26
- var length = _length;
25
+ var length = convert(_length).from('in').to('cm');
26
+ // const length = _length;
27
+
27
28
  var additional_props = [];
28
29
  if (type === 'cabinet' && long_name.toLowerCase().includes('filler')) {
29
30
  additional_props = {
package/es/class/item.js CHANGED
@@ -479,6 +479,9 @@ var Item = /*#__PURE__*/function () {
479
479
  key: "storeDistArray",
480
480
  value: function storeDistArray(state, layerID, itemID, distArray) {
481
481
  var curDistArray = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'distArray']);
482
+ distArray.forEach(function (dist) {
483
+ dist[0] < 0 ? dist[0] = 0 : dist[0];
484
+ });
482
485
  var isEqualDist = function isEqualDist(a, b) {
483
486
  return a == b;
484
487
  };
@@ -5,7 +5,7 @@ import RulerDist from "./rulerDist";
5
5
  import { convert } from "../../utils/convert-units-lite";
6
6
  import { GeometryUtils } from "../../utils/export";
7
7
  import { MODE_ROTATING_ITEM, WALL_CABINET_LAYOUTPOS } from "../../constants";
8
- import { isEmpty, returnReplaceableDeepSearchType } from "./utils";
8
+ import { isEmpty, isWarningItem, returnReplaceableDeepSearchType } from "./utils";
9
9
  import { findCatalogElement } from "../../utils/geometry";
10
10
  var STYLE_LINE = {
11
11
  fill: '#0096fd',
@@ -390,7 +390,10 @@ export default function Item(_ref, _ref2) {
390
390
  y: "-19",
391
391
  height: "16",
392
392
  width: "16",
393
- style: {
393
+ style: isWarningItem(item) ? {
394
+ transform: 'rotateX(180deg)',
395
+ opacity: 0.5
396
+ } : {
394
397
  transform: 'rotateX(180deg)'
395
398
  }
396
399
  })), /*#__PURE__*/React.createElement("g", {
@@ -34,7 +34,7 @@ export default function RulerDist(_ref) {
34
34
  var _unit = 'in';
35
35
  // let _length = convert(length).from(unit).to(rulerUnit);
36
36
  var distanceText = "".concat(convert(length).from('cm').to(rulerUnit).toFixed(0));
37
- var textLength = (distanceText.length + layer.unit.length) * 18;
37
+ var textLength = (distanceText.length + layer.unit.length) * 8;
38
38
  var textangle = angle + 90;
39
39
  var textRotation = 1;
40
40
  var ay = 2;
@@ -948,7 +948,7 @@ export default function Viewer2D(_ref, _ref2) {
948
948
  case 'items':
949
949
  if (elementData.part === 'duplicate') {
950
950
  var currentObject = state.getIn(['scene', 'layers', layerID, 'items', elementData.id]);
951
- itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
951
+ if (!isWarningItem(currentObject)) itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
952
952
  break;
953
953
  } else if (elementData.part === 'remove') {
954
954
  projectActions.remove();
@@ -1184,6 +1184,25 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1184
1184
  itemID: selItemId
1185
1185
  };
1186
1186
  };
1187
+ var sendInternalEvent = function sendInternalEvent(evtType, evtElement) {
1188
+ var pointArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1189
+ if (!isEmpty(evtType)) {
1190
+ var _this2$props$onIntern, _this2$props;
1191
+ var payload = evtElement === null || evtElement === void 0 ? void 0 : evtElement.toJS();
1192
+ if ((evtElement === null || evtElement === void 0 ? void 0 : evtElement.prototype) === 'items') {
1193
+ // check this cabinet has warning box
1194
+ payload.isWarning = isWarningItem(evtElement);
1195
+ // check this item is snapped to wall
1196
+ payload.isAttachedWall = MoldingUtils.isAttachedWall(layer, evtElement);
1197
+ // update distArray
1198
+ if (pointArray) payload.distArray = pointArray;
1199
+ }
1200
+ (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1201
+ type: evtType,
1202
+ value: payload
1203
+ });
1204
+ }
1205
+ };
1187
1206
  this.mouseDownEvent = function (event) {
1188
1207
  gridPlanOrigin = gridPlane.position;
1189
1208
  gridMatrix.copy(gridPlane.matrixWorld).invert();
@@ -1479,39 +1498,42 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1479
1498
  currentObject = currentObject.parent;
1480
1499
  }
1481
1500
  isSelected = true;
1482
- getDistances(layer);
1483
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1484
- if (isUndefined(selectedItem)) return;
1485
- selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1486
- var itemPos = selectedItem.position.clone();
1487
- if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1488
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1489
- } else {
1490
- 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);
1491
- }
1492
- scene3D.add(toolObj);
1493
- _this2.setState({
1494
- toolObj: toolObj
1495
- });
1496
- // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1497
- var pointArray = [],
1498
- cnt = 0;
1499
- pointArray.push([fVLine[0].userData.distance, 90]);
1500
- pointArray.push([fVLine[1].userData.distance, -90]);
1501
- pointArray.push([fVLine[2].userData.distance, 180]);
1502
- pointArray.push([fVLine[3].userData.distance, 0]);
1503
- pointArray.forEach(function (pointElement, index) {
1504
- if (pointElement[0] == undefined) pointArray[index][0] = 0;
1505
- });
1506
- pointArray.forEach(function (pointElement) {
1507
- if (pointElement[0] == 0) cnt++;
1501
+ setTimeout(function () {
1502
+ getDistances(layer);
1503
+ var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1504
+ if (isUndefined(selectedItem)) return;
1505
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1506
+ var itemPos = selectedItem.position.clone();
1507
+ if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1508
+ toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1509
+ } else {
1510
+ 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);
1511
+ }
1512
+ scene3D.add(toolObj);
1513
+ _this2.setState({
1514
+ toolObj: toolObj
1515
+ });
1516
+ // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1517
+ var pointArray = [],
1518
+ cnt = 0;
1519
+ pointArray.push([fVLine[0].userData.distance, 90]);
1520
+ pointArray.push([fVLine[1].userData.distance, -90]);
1521
+ pointArray.push([fVLine[2].userData.distance, 180]);
1522
+ pointArray.push([fVLine[3].userData.distance, 0]);
1523
+ pointArray.forEach(function (pointElement, index) {
1524
+ if (pointElement[0] == undefined) pointArray[index][0] = 0;
1525
+ });
1526
+ pointArray.forEach(function (pointElement) {
1527
+ if (pointElement[0] == 0) cnt++;
1528
+ });
1529
+ if (cnt == 4 || cnt == 3) {
1530
+ pointArray[0][0] = 100;
1531
+ pointArray[1][0] = 100;
1532
+ }
1533
+ actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1534
+ internalType = internalType ? internalType : INTERNAL_EVENT_SELECT_ELEMENT;
1535
+ sendInternalEvent(internalType, selectedElement, pointArray);
1508
1536
  });
1509
- if (cnt == 4 || cnt == 3) {
1510
- pointArray[0][0] = 100;
1511
- pointArray[1][0] = 100;
1512
- }
1513
- actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1514
- internalType = internalType ? internalType : INTERNAL_EVENT_SELECT_ELEMENT;
1515
1537
  } else {
1516
1538
  if (selectedObject) {
1517
1539
  var elementID = null;
@@ -1569,14 +1591,14 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1569
1591
  getPoint(event, alti);
1570
1592
  if (bRotate) {
1571
1593
  var _intersects$_i;
1572
- var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1573
- if (isUndefined(_selectedItem)) return;
1594
+ var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1595
+ if (isUndefined(selectedItem)) return;
1574
1596
  selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1575
- var _itemPos = _selectedItem.position.clone();
1576
- 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) {
1597
+ var itemPos = selectedItem.position.clone();
1598
+ 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) {
1577
1599
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1578
1600
  } else {
1579
- 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);
1601
+ 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);
1580
1602
  }
1581
1603
  scene3D.add(toolObj);
1582
1604
  _this2.setState({
@@ -1587,14 +1609,14 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1587
1609
  }
1588
1610
  if (bMove) {
1589
1611
  bMove = false;
1590
- var _selectedItem2 = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1591
- if (isUndefined(_selectedItem2)) return;
1612
+ var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1613
+ if (isUndefined(_selectedItem)) return;
1592
1614
  selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1593
- var _itemPos2 = _selectedItem2.position.clone();
1594
- if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem2.userData.itemId) {
1615
+ var _itemPos = _selectedItem.position.clone();
1616
+ if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) {
1595
1617
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1596
1618
  } else {
1597
- 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);
1619
+ 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);
1598
1620
  }
1599
1621
  scene3D.add(toolObj);
1600
1622
  _this2.setState({
@@ -1628,20 +1650,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1628
1650
  selectedObj = allItemRect.cur;
1629
1651
  }
1630
1652
  }
1631
- if (!isEmpty(internalType)) {
1632
- var _selectedElement, _selectedElement2, _this2$props$onIntern, _this2$props;
1633
- var payload = (_selectedElement = selectedElement) === null || _selectedElement === void 0 ? void 0 : _selectedElement.toJS();
1634
- if (((_selectedElement2 = selectedElement) === null || _selectedElement2 === void 0 ? void 0 : _selectedElement2.prototype) === 'items') {
1635
- // check this cabinet has warning box
1636
- payload.isWarning = isWarningItem(selectedElement);
1637
- // check this item is snapped to wall
1638
- payload.isAttachedWall = MoldingUtils.isAttachedWall(layer, selectedElement);
1639
- }
1640
- (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1641
- type: internalType,
1642
- value: payload
1643
- });
1644
- }
1653
+ sendInternalEvent(internalType, selectedElement);
1645
1654
  };
1646
1655
  this.mouseEnterEvent = function (event) {
1647
1656
  if (_this2.props.state.mode !== MODE_DRAWING_ITEM_3D) return;
@@ -2609,9 +2618,10 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2609
2618
  }, /*#__PURE__*/React.createElement("img", {
2610
2619
  style: {
2611
2620
  animation: 'spin 2s linear infinite',
2612
- marginTop: "50%",
2613
- width: '50px',
2614
- height: '50px'
2621
+ position: "absolute",
2622
+ top: "50%",
2623
+ width: '70px',
2624
+ height: '70px'
2615
2625
  },
2616
2626
  src: '/assets/img/loading/loading.gif',
2617
2627
  alt: "img"
@@ -2631,8 +2641,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2631
2641
  animation: 'spin 2s linear infinite',
2632
2642
  position: "absolute",
2633
2643
  top: "50%",
2634
- width: '50px',
2635
- height: '50px'
2644
+ width: '70px',
2645
+ height: '70px'
2636
2646
  },
2637
2647
  src: '/assets/img/loading/loading.gif',
2638
2648
  alt: "img"
@@ -110,10 +110,13 @@ function _parseTempPlaceholdersFromCabinetPayload() {
110
110
  tempPlaceholders.map(function (element) {
111
111
  var sink_match = element.name.match(/\d_(sink_[^LR12]*)(_[LR12])?$/);
112
112
  if (sink_match && sink_match.length >= 2) {
113
- var _cabinetPayload$struc3;
113
+ var _process$env$API_URL, _cabinetPayload$struc3;
114
114
  tempData['sink'] = tempData['sink'] || [];
115
115
  tempData['sink'].push(element.name);
116
- var sink_url = process.env.API_URL + "/uploads/assets/default/".concat(sink_match[1], ".gltf");
116
+ var sink_url = (_process$env$API_URL = process.env.API_URL) !== null && _process$env$API_URL !== void 0 ? _process$env$API_URL :
117
+ // server url from 3DTool env
118
+ import.meta.env.VITE_APP_API_URL + // server url from Host env
119
+ "/uploads/assets/default/".concat(sink_match[1], ".gltf");
117
120
  if (cabinetPayload !== null && cabinetPayload !== void 0 && (_cabinetPayload$struc3 = cabinetPayload.structure_json) !== null && _cabinetPayload$struc3 !== void 0 && (_cabinetPayload$struc3 = _cabinetPayload$struc3.tempPlaceholders[0]) !== null && _cabinetPayload$struc3 !== void 0 && _cabinetPayload$struc3.structure) cabinetPayload.structure_json.tempPlaceholders[0].structure.sink = sink_url;
118
121
  } else if (temp.some(function (felement) {
119
122
  return felement.name.includes('base_drawer');
@@ -29,8 +29,9 @@ function _default(_ref) {
29
29
  outlineSVGData = _ref.outlineSVGData,
30
30
  cds = _ref.cds;
31
31
  var _length = alti || 0;
32
- // const length = convert(_length).from("in").to("cm");
33
- var length = _length;
32
+ var length = (0, _convertUnitsLite.convert)(_length).from('in').to('cm');
33
+ // const length = _length;
34
+
34
35
  var additional_props = [];
35
36
  if (type === 'cabinet' && long_name.toLowerCase().includes('filler')) {
36
37
  additional_props = {
package/lib/class/item.js CHANGED
@@ -486,6 +486,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
486
486
  key: "storeDistArray",
487
487
  value: function storeDistArray(state, layerID, itemID, distArray) {
488
488
  var curDistArray = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'distArray']);
489
+ distArray.forEach(function (dist) {
490
+ dist[0] < 0 ? dist[0] = 0 : dist[0];
491
+ });
489
492
  var isEqualDist = function isEqualDist(a, b) {
490
493
  return a == b;
491
494
  };
@@ -399,7 +399,10 @@ function Item(_ref, _ref2) {
399
399
  y: "-19",
400
400
  height: "16",
401
401
  width: "16",
402
- style: {
402
+ style: (0, _utils.isWarningItem)(item) ? {
403
+ transform: 'rotateX(180deg)',
404
+ opacity: 0.5
405
+ } : {
403
406
  transform: 'rotateX(180deg)'
404
407
  }
405
408
  })), /*#__PURE__*/_react["default"].createElement("g", {
@@ -41,7 +41,7 @@ function RulerDist(_ref) {
41
41
  var _unit = 'in';
42
42
  // let _length = convert(length).from(unit).to(rulerUnit);
43
43
  var distanceText = "".concat((0, _convertUnitsLite.convert)(length).from('cm').to(rulerUnit).toFixed(0));
44
- var textLength = (distanceText.length + layer.unit.length) * 18;
44
+ var textLength = (distanceText.length + layer.unit.length) * 8;
45
45
  var textangle = angle + 90;
46
46
  var textRotation = 1;
47
47
  var ay = 2;
@@ -956,7 +956,7 @@ function Viewer2D(_ref, _ref2) {
956
956
  case 'items':
957
957
  if (elementData.part === 'duplicate') {
958
958
  var currentObject = state.getIn(['scene', 'layers', layerID, 'items', elementData.id]);
959
- itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
959
+ if (!(0, _utils.isWarningItem)(currentObject)) itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
960
960
  break;
961
961
  } else if (elementData.part === 'remove') {
962
962
  projectActions.remove();
@@ -1190,6 +1190,25 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1190
1190
  itemID: selItemId
1191
1191
  };
1192
1192
  };
1193
+ var sendInternalEvent = function sendInternalEvent(evtType, evtElement) {
1194
+ var pointArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1195
+ if (!(0, _helper.isEmpty)(evtType)) {
1196
+ var _this2$props$onIntern, _this2$props;
1197
+ var payload = evtElement === null || evtElement === void 0 ? void 0 : evtElement.toJS();
1198
+ if ((evtElement === null || evtElement === void 0 ? void 0 : evtElement.prototype) === 'items') {
1199
+ // check this cabinet has warning box
1200
+ payload.isWarning = (0, _utils.isWarningItem)(evtElement);
1201
+ // check this item is snapped to wall
1202
+ payload.isAttachedWall = _export.MoldingUtils.isAttachedWall(layer, evtElement);
1203
+ // update distArray
1204
+ if (pointArray) payload.distArray = pointArray;
1205
+ }
1206
+ (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1207
+ type: evtType,
1208
+ value: payload
1209
+ });
1210
+ }
1211
+ };
1193
1212
  this.mouseDownEvent = function (event) {
1194
1213
  gridPlanOrigin = gridPlane.position;
1195
1214
  gridMatrix.copy(gridPlane.matrixWorld).invert();
@@ -1485,39 +1504,42 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1485
1504
  currentObject = currentObject.parent;
1486
1505
  }
1487
1506
  isSelected = true;
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;
1511
- });
1512
- pointArray.forEach(function (pointElement) {
1513
- if (pointElement[0] == 0) cnt++;
1507
+ setTimeout(function () {
1508
+ (0, _sceneCreator.getDistances)(layer);
1509
+ var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1510
+ if ((0, _util.isUndefined)(selectedItem)) return;
1511
+ selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1512
+ var itemPos = selectedItem.position.clone();
1513
+ if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1514
+ toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1515
+ } else {
1516
+ 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);
1517
+ }
1518
+ scene3D.add(toolObj);
1519
+ _this2.setState({
1520
+ toolObj: toolObj
1521
+ });
1522
+ // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1523
+ var pointArray = [],
1524
+ cnt = 0;
1525
+ pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1526
+ pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1527
+ pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1528
+ pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1529
+ pointArray.forEach(function (pointElement, index) {
1530
+ if (pointElement[0] == undefined) pointArray[index][0] = 0;
1531
+ });
1532
+ pointArray.forEach(function (pointElement) {
1533
+ if (pointElement[0] == 0) cnt++;
1534
+ });
1535
+ if (cnt == 4 || cnt == 3) {
1536
+ pointArray[0][0] = 100;
1537
+ pointArray[1][0] = 100;
1538
+ }
1539
+ actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1540
+ internalType = internalType ? internalType : _constants.INTERNAL_EVENT_SELECT_ELEMENT;
1541
+ sendInternalEvent(internalType, selectedElement, pointArray);
1514
1542
  });
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;
1521
1543
  } else {
1522
1544
  if (selectedObject) {
1523
1545
  var elementID = null;
@@ -1575,14 +1597,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1575
1597
  getPoint(event, alti);
1576
1598
  if (bRotate) {
1577
1599
  var _intersects$_i;
1578
- var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1579
- if ((0, _util.isUndefined)(_selectedItem)) return;
1600
+ var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1601
+ if ((0, _util.isUndefined)(selectedItem)) return;
1580
1602
  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) {
1603
+ var itemPos = selectedItem.position.clone();
1604
+ 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) {
1583
1605
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1584
1606
  } else {
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);
1607
+ 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);
1586
1608
  }
1587
1609
  scene3D.add(toolObj);
1588
1610
  _this2.setState({
@@ -1593,14 +1615,14 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1593
1615
  }
1594
1616
  if (bMove) {
1595
1617
  bMove = false;
1596
- var _selectedItem2 = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1597
- if ((0, _util.isUndefined)(_selectedItem2)) return;
1618
+ var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1619
+ if ((0, _util.isUndefined)(_selectedItem)) return;
1598
1620
  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) {
1621
+ var _itemPos = _selectedItem.position.clone();
1622
+ if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) {
1601
1623
  toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1602
1624
  } else {
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);
1625
+ 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);
1604
1626
  }
1605
1627
  scene3D.add(toolObj);
1606
1628
  _this2.setState({
@@ -1634,20 +1656,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
1634
1656
  selectedObj = allItemRect.cur;
1635
1657
  }
1636
1658
  }
1637
- if (!(0, _helper.isEmpty)(internalType)) {
1638
- var _selectedElement, _selectedElement2, _this2$props$onIntern, _this2$props;
1639
- var payload = (_selectedElement = selectedElement) === null || _selectedElement === void 0 ? void 0 : _selectedElement.toJS();
1640
- if (((_selectedElement2 = selectedElement) === null || _selectedElement2 === void 0 ? void 0 : _selectedElement2.prototype) === 'items') {
1641
- // check this cabinet has warning box
1642
- payload.isWarning = (0, _utils.isWarningItem)(selectedElement);
1643
- // check this item is snapped to wall
1644
- payload.isAttachedWall = _export.MoldingUtils.isAttachedWall(layer, selectedElement);
1645
- }
1646
- (_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
1647
- type: internalType,
1648
- value: payload
1649
- });
1650
- }
1659
+ sendInternalEvent(internalType, selectedElement);
1651
1660
  };
1652
1661
  this.mouseEnterEvent = function (event) {
1653
1662
  if (_this2.props.state.mode !== _constants.MODE_DRAWING_ITEM_3D) return;
@@ -2615,9 +2624,10 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2615
2624
  }, /*#__PURE__*/_react["default"].createElement("img", {
2616
2625
  style: {
2617
2626
  animation: 'spin 2s linear infinite',
2618
- marginTop: "50%",
2619
- width: '50px',
2620
- height: '50px'
2627
+ position: "absolute",
2628
+ top: "50%",
2629
+ width: '70px',
2630
+ height: '70px'
2621
2631
  },
2622
2632
  src: '/assets/img/loading/loading.gif',
2623
2633
  alt: "img"
@@ -2637,8 +2647,8 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
2637
2647
  animation: 'spin 2s linear infinite',
2638
2648
  position: "absolute",
2639
2649
  top: "50%",
2640
- width: '50px',
2641
- height: '50px'
2650
+ width: '70px',
2651
+ height: '70px'
2642
2652
  },
2643
2653
  src: '/assets/img/loading/loading.gif',
2644
2654
  alt: "img"
@@ -117,10 +117,13 @@ function _parseTempPlaceholdersFromCabinetPayload() {
117
117
  tempPlaceholders.map(function (element) {
118
118
  var sink_match = element.name.match(/\d_(sink_[^LR12]*)(_[LR12])?$/);
119
119
  if (sink_match && sink_match.length >= 2) {
120
- var _cabinetPayload$struc3;
120
+ var _process$env$API_URL, _cabinetPayload$struc3;
121
121
  tempData['sink'] = tempData['sink'] || [];
122
122
  tempData['sink'].push(element.name);
123
- var sink_url = process.env.API_URL + "/uploads/assets/default/".concat(sink_match[1], ".gltf");
123
+ var sink_url = (_process$env$API_URL = process.env.API_URL) !== null && _process$env$API_URL !== void 0 ? _process$env$API_URL :
124
+ // server url from 3DTool env
125
+ import.meta.env.VITE_APP_API_URL + // server url from Host env
126
+ "/uploads/assets/default/".concat(sink_match[1], ".gltf");
124
127
  if (cabinetPayload !== null && cabinetPayload !== void 0 && (_cabinetPayload$struc3 = cabinetPayload.structure_json) !== null && _cabinetPayload$struc3 !== void 0 && (_cabinetPayload$struc3 = _cabinetPayload$struc3.tempPlaceholders[0]) !== null && _cabinetPayload$struc3 !== void 0 && _cabinetPayload$struc3.structure) cabinetPayload.structure_json.tempPlaceholders[0].structure.sink = sink_url;
125
128
  } else if (temp.some(function (felement) {
126
129
  return felement.name.includes('base_drawer');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "3.0.0",
3
+ "version": "3.0.3",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",