kitchen-simulator 4.0.11-react-18 → 4.1.1-react-18

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.
package/es/class/item.js CHANGED
@@ -13,6 +13,7 @@ import { debugUtil } from "../utils/helper";
13
13
  import { isUndefined } from 'util';
14
14
  import { hasMoldingLayout } from "../utils/molding";
15
15
  import { getInstallationSuffix, isWarningItem } from "../components/viewer2d/utils";
16
+ import { historyPush } from "../utils/history";
16
17
  var allItemRect;
17
18
  var allItemSnap;
18
19
  var allLines;
@@ -1541,6 +1542,9 @@ var Item = /*#__PURE__*/function () {
1541
1542
  });
1542
1543
  }
1543
1544
  }
1545
+ state = state.merge({
1546
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1547
+ });
1544
1548
  return {
1545
1549
  updatedState: state
1546
1550
  };
@@ -1663,6 +1667,9 @@ var Item = /*#__PURE__*/function () {
1663
1667
  updateSelectItemMolding();
1664
1668
  }
1665
1669
  }
1670
+ state = state.merge({
1671
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1672
+ });
1666
1673
  return {
1667
1674
  updatedState: state
1668
1675
  };
@@ -995,7 +995,7 @@ export default function Viewer2D(_ref) {
995
995
  id: "ruler_numberInput",
996
996
  style: {
997
997
  position: 'absolute',
998
- left: bbox.left - (150 - bbox.width) / 2,
998
+ left: bbox.left - (200 - bbox.width) / 2,
999
999
  top: bbox.top - (50 - bbox.height) / 2,
1000
1000
  zIndex: 1000
1001
1001
  }
@@ -1027,7 +1027,7 @@ export default function Viewer2D(_ref) {
1027
1027
  id: "ruler_numberInput",
1028
1028
  style: {
1029
1029
  position: 'absolute',
1030
- left: bbox.left - (150 - bbox.width) / 2,
1030
+ left: bbox.left - (200 - bbox.width) / 2,
1031
1031
  top: bbox.top - (50 - bbox.height) / 2,
1032
1032
  zIndex: 1000
1033
1033
  }
@@ -1060,7 +1060,7 @@ export default function Viewer2D(_ref) {
1060
1060
  id: "ruler_numberInput",
1061
1061
  style: {
1062
1062
  position: 'absolute',
1063
- left: bbox.left - (150 - bbox.width) / 2,
1063
+ left: bbox.left - (200 - bbox.width) / 2,
1064
1064
  top: bbox.top - (50 - bbox.height) / 2,
1065
1065
  zIndex: 1000
1066
1066
  }
@@ -1093,7 +1093,7 @@ export default function Viewer2D(_ref) {
1093
1093
  id: "ruler_numberInput",
1094
1094
  style: {
1095
1095
  position: 'absolute',
1096
- left: bbox.left - (150 - bbox.width) / 2,
1096
+ left: bbox.left - (200 - bbox.width) / 2,
1097
1097
  top: bbox.top - (50 - bbox.height) / 2,
1098
1098
  zIndex: 1000
1099
1099
  }
@@ -1126,7 +1126,7 @@ export default function Viewer2D(_ref) {
1126
1126
  id: "ruler_numberInput",
1127
1127
  style: {
1128
1128
  position: 'absolute',
1129
- left: bbox.left - (150 - bbox.width) / 2,
1129
+ left: bbox.left - (200 - bbox.width) / 2,
1130
1130
  top: bbox.top - (50 - bbox.height) / 2,
1131
1131
  zIndex: 1000
1132
1132
  }
@@ -1159,7 +1159,7 @@ export default function Viewer2D(_ref) {
1159
1159
  id: "ruler_numberInput",
1160
1160
  style: {
1161
1161
  position: 'absolute',
1162
- left: bbox.left - (150 - bbox.width) / 2,
1162
+ left: bbox.left - (200 - bbox.width) / 2,
1163
1163
  top: bbox.top - (50 - bbox.height) / 2,
1164
1164
  zIndex: 1000
1165
1165
  }
@@ -1191,7 +1191,7 @@ export default function Viewer2D(_ref) {
1191
1191
  id: "ruler_numberInput",
1192
1192
  style: {
1193
1193
  position: 'absolute',
1194
- left: bbox.left - (150 - bbox.width) / 2,
1194
+ left: bbox.left - (200 - bbox.width) / 2,
1195
1195
  top: bbox.top - (50 - bbox.height) / 2,
1196
1196
  zIndex: 1000
1197
1197
  }
@@ -1186,10 +1186,18 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1186
1186
  };
1187
1187
  var sendInternalEvent = function sendInternalEvent(evtType, evtElement) {
1188
1188
  var pointArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1189
- if (!isEmpty(evtType)) {
1190
- var _this2$props$onIntern, _this2$props;
1189
+ if (!isEmpty(evtType) && !isEmpty(evtElement)) {
1190
+ var _currentObject, _this2$props$onIntern, _this2$props;
1191
1191
  var payload = evtElement === null || evtElement === void 0 ? void 0 : evtElement.toJS();
1192
- if ((evtElement === null || evtElement === void 0 ? void 0 : evtElement.prototype) === 'items') {
1192
+ if (((_currentObject = currentObject) === null || _currentObject === void 0 ? void 0 : _currentObject.prototype) === 'lines') {
1193
+ // caculating length of selected line//
1194
+ var v_a = layer.vertices.get(currentObject.vertices.get(0));
1195
+ var v_b = layer.vertices.get(currentObject.vertices.get(1));
1196
+ var distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
1197
+ var _length = convert(distance).from('cm').to('in');
1198
+ payload.length = _length;
1199
+ //////////////////////////////////////
1200
+ } else if ((evtElement === null || evtElement === void 0 ? void 0 : evtElement.prototype) === 'items') {
1193
1201
  // check this cabinet has warning box
1194
1202
  payload.isWarning = isWarningItem(evtElement);
1195
1203
  // check this item is available molding
@@ -1288,7 +1296,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1288
1296
  if (intersects[_i1] === undefined) {
1289
1297
  if (transflag !== 0 && transflag !== 2) {
1290
1298
  isSelected = false;
1291
- _this2.context.projectActions.unselectAll();
1299
+ // this.context.projectActions.unselectAll();
1292
1300
  scene3D.remove(toolObj);
1293
1301
  _this2.context.itemsActions.removeReplacingSupport();
1294
1302
  return;
@@ -1357,14 +1365,14 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1357
1365
  selectedFlag = false;
1358
1366
  } else {
1359
1367
  isSelected = false;
1360
- _this2.context.projectActions.unselectAll();
1368
+ // this.context.projectActions.unselectAll();
1361
1369
  scene3D.remove(toolObj);
1362
1370
  _this2.context.itemsActions.removeReplacingSupport();
1363
1371
  }
1364
1372
  }
1365
1373
  } else {
1366
1374
  isSelected = false;
1367
- _this2.context.projectActions.unselectAll();
1375
+ // this.context.projectActions.unselectAll();
1368
1376
  scene3D.remove(toolObj);
1369
1377
  _this2.context.itemsActions.removeReplacingSupport();
1370
1378
  return;
@@ -1412,11 +1420,18 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1412
1420
  }
1413
1421
  switch (_this2.props.state.mode) {
1414
1422
  case MODE_DRAGGING_ITEM_3D:
1423
+ case MODE_DRAGGING_HOLE_3D:
1415
1424
  internalType = INTERNAL_EVENT_DRAG_ELEMENT;
1416
1425
  break;
1417
1426
  case MODE_ROTATING_ITEM_3D:
1418
1427
  internalType = INTERNAL_EVENT_ROTATE_ELEMENT;
1419
1428
  break;
1429
+ case MODE_DRAWING_HOLE_3D:
1430
+ internalType = INTERNAL_EVENT_DRAW_ELEMENT;
1431
+ break;
1432
+ case MODE_IDLE_3D:
1433
+ internalType = INTERNAL_EVENT_SELECT_ELEMENT;
1434
+ break;
1420
1435
  }
1421
1436
  if (_this2.props.state.mode == MODE_DRAGGING_ITEM_3D) {
1422
1437
  _this2.context.itemsActions.endDraggingItem3D();
@@ -1541,16 +1556,17 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
1541
1556
  var elementPrototype = null;
1542
1557
  switch (true) {
1543
1558
  case 'holeID' in selectedObject:
1544
- case 'lineID' in selectedObject:
1559
+ elementID = selectedObject.holeID;
1560
+ elementPrototype = 'holes';
1545
1561
  if (_this2.props.state.mode === MODE_DRAGGING_HOLE_3D) {
1546
1562
  actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1547
- internalType = INTERNAL_EVENT_SELECT_ELEMENT;
1548
- elementID = selectedObject.holeID;
1549
- elementPrototype = 'holes';
1550
1563
  }
1551
1564
  break;
1565
+ case 'lineID' in selectedObject:
1566
+ elementID = selectedObject.lineID;
1567
+ elementPrototype = 'lines';
1568
+ break;
1552
1569
  case 'areaID' in selectedObject:
1553
- internalType = INTERNAL_EVENT_SELECT_ELEMENT;
1554
1570
  elementID = selectedObject.areaID;
1555
1571
  elementPrototype = 'areas';
1556
1572
  break;
@@ -2086,7 +2102,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
2086
2102
  if (minDis < snapDelta && !snapFlag) {
2087
2103
  _this2.snap(snapObj, layer);
2088
2104
  snapFlag = true;
2089
- getDistances(layer, true);
2105
+ getDistances(layer);
2090
2106
  var _i13 = 0;
2091
2107
  for (_i13 = 0; _i13 < fVLine.length; _i13++) {
2092
2108
  if (fVLine[_i13].userData.distance < snapDelta) {
package/es/index.js CHANGED
@@ -9,6 +9,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
9
9
  import React from 'react';
10
10
  import { createRoot } from 'react-dom/client';
11
11
  import LiteRenderer from "./LiteRenderer";
12
+ import { flushSync } from 'react-dom';
12
13
  export function renderKitchenSimulator(container) {
13
14
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
15
  var setExternalEventFn = null;
@@ -29,8 +30,11 @@ export function renderKitchenSimulator(container) {
29
30
  return _createClass(Wrapper, [{
30
31
  key: "setExternalEvent",
31
32
  value: function setExternalEvent(newEvent) {
32
- this.setState({
33
- externalEvent: newEvent
33
+ var _this2 = this;
34
+ flushSync(function () {
35
+ _this2.setState({
36
+ externalEvent: newEvent
37
+ });
34
38
  });
35
39
  }
36
40
  }, {
@@ -322,14 +322,23 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
322
322
  state = _this$props.state,
323
323
  projectActions = _this$props.projectActions,
324
324
  catalog = _this$props.catalog,
325
- externalEvent = _this$props.externalEvent,
326
- onInternalEvent = _this$props.onInternalEvent;
327
- (0, _isolateEventHandler.handleExternalEvent)(this.props);
325
+ externalEvent = _this$props.externalEvent;
328
326
  var plannerState = stateExtractor(state);
329
327
  var catalogReady = plannerState.getIn(['catalog', 'ready']);
330
328
  if (!catalogReady) {
331
329
  projectActions.initCatalog(catalog);
332
330
  }
331
+ if (prevProps.externalEvent !== externalEvent && externalEvent) {
332
+ var _externalEvent$id, _externalEvent$payloa, _externalEvent$payloa2;
333
+ var key = (_externalEvent$id = externalEvent.id) !== null && _externalEvent$id !== void 0 ? _externalEvent$id : JSON.stringify({
334
+ type: externalEvent.type,
335
+ payload: (_externalEvent$payloa = (_externalEvent$payloa2 = externalEvent.payload) === null || _externalEvent$payloa2 === void 0 ? void 0 : _externalEvent$payloa2.mode) !== null && _externalEvent$payloa !== void 0 ? _externalEvent$payloa : externalEvent.payload
336
+ });
337
+ if (key !== this.lastHandledExternalEventKey) {
338
+ this.lastHandledExternalEventKey = key;
339
+ (0, _isolateEventHandler.handleExternalEvent)(this.props);
340
+ }
341
+ }
333
342
  }
334
343
  }, {
335
344
  key: "isProjectEmpty",
@@ -403,7 +412,8 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
403
412
  style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
404
413
  height: height,
405
414
  display: 'flex',
406
- justifyContent: 'center'
415
+ justifyContent: 'center',
416
+ position: 'relative'
407
417
  })
408
418
  }, /*#__PURE__*/_react["default"].createElement(_export2.Content, (0, _extends2["default"])({
409
419
  width: contentW,
@@ -12,7 +12,7 @@ var SharedStyle = _interopRequireWildcard(require("../../shared-style"));
12
12
  var _RGBELoader = require("three/examples/jsm/loaders/RGBELoader");
13
13
  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); }
14
14
  var params = {
15
- envMap: 'HDR',
15
+ envMap: "HDR",
16
16
  roughness: 0.9,
17
17
  metalness: 0.8,
18
18
  exposure: 1.0
@@ -67,7 +67,7 @@ var assignUVs = function assignUVs(geometry) {
67
67
  var y3 = position.getY(i + 2);
68
68
  uvArray.push((x1 + offset.x) / range.x, (y1 + offset.y) / range.y, (x2 + offset.x) / range.x, (y2 + offset.y) / range.y, (x3 + offset.x) / range.x, (y3 + offset.y) / range.y);
69
69
  }
70
- geometry.setAttribute('uv', new Three.BufferAttribute(new Float32Array(uvArray), 2));
70
+ geometry.setAttribute("uv", new Three.BufferAttribute(new Float32Array(uvArray), 2));
71
71
  geometry.needsUpdate = true;
72
72
  };
73
73
  function createArea(element, layer, scene, textures) {
@@ -78,15 +78,15 @@ function createArea(element, layer, scene, textures) {
78
78
  var texture = element.texture;
79
79
  texture.lengthRepeatScale = 0.01;
80
80
  texture.heightRepeatScale = 0.01;
81
- var color = element.properties.get('patternColor');
81
+ var color = element.properties.get("patternColor");
82
82
  if (element.selected) {
83
83
  color = SharedStyle.AREA_MESH_COLOR.selected;
84
84
  } else {
85
85
  color = SharedStyle.AREA_MESH_COLOR.unselected;
86
86
  }
87
- if (texture.uri === undefined || texture.uri == '') {
87
+ if (texture.uri === undefined || texture.uri == "") {
88
88
  // @todo THIS IS A TEMPORARY FIX TO HAVE A DEFAULT FLOOR TEXTURE
89
- texture.uri = layer.floorStyle.uri || 'https://media.test.diydesignspace.com/uploads/CountTop/202203162950_2/texture/oak-barcelona-s.jpg';
89
+ texture.uri = layer.floorStyle.uri || "https://media.test.diydesignspace.com/uploads/CountTop/202203162950_2/texture/oak-barcelona-s.jpg";
90
90
  }
91
91
  var shape = new _three.Shape();
92
92
  shape.moveTo(vertices[0].x, vertices[0].y);
@@ -94,7 +94,7 @@ function createArea(element, layer, scene, textures) {
94
94
  shape.lineTo(vertices[i].x, vertices[i].y);
95
95
  }
96
96
  function loadFloorENV() {
97
- return new _RGBELoader.RGBELoader().load('/assets/Window.hdr', function (texture) {
97
+ return new _RGBELoader.RGBELoader().load("/assets/Window.hdr", function (texture) {
98
98
  texture.mapping = Three.EquirectangularReflectionMapping;
99
99
  return texture;
100
100
  });
@@ -114,8 +114,8 @@ function createArea(element, layer, scene, textures) {
114
114
  /* Create holes for the area */
115
115
  element.holes.forEach(function (holeID) {
116
116
  var holeCoords = [];
117
- layer.getIn(['areas', holeID, 'vertices']).forEach(function (vertexID) {
118
- var _layer$getIn = layer.getIn(['vertices', vertexID]),
117
+ layer.getIn(["areas", holeID, "vertices"]).forEach(function (vertexID) {
118
+ var _layer$getIn = layer.getIn(["vertices", vertexID]),
119
119
  x = _layer$getIn.x,
120
120
  y = _layer$getIn.y;
121
121
  holeCoords.push([x, y]);
@@ -142,7 +142,7 @@ function createArea(element, layer, scene, textures) {
142
142
  var area = new _three.Mesh(shapeGeometry, areaMaterial);
143
143
  area.rotation.x -= Math.PI / 2;
144
144
  area.receiveShadow = true;
145
- area.name = 'floor';
145
+ area.name = "floor";
146
146
  // This mesh is use for creating ceiling mesh
147
147
 
148
148
  var shapeGeometry2 = new Three.ShapeGeometry(shape);
@@ -153,7 +153,7 @@ function createArea(element, layer, scene, textures) {
153
153
  area2.castShadow = true;
154
154
  area2.rotation.x -= Math.PI / 2;
155
155
  area2.receiveShadow = true;
156
- area2.name = 'floorSupport';
156
+ area2.name = "floorSupport";
157
157
  var floorSupport = area2.clone();
158
158
  area.userData.floorSupport = floorSupport;
159
159
  return Promise.resolve(area);
@@ -163,13 +163,13 @@ function updatedArea(element, layer, scene, textures, mesh, oldElement, differen
163
163
  selfDestroy();
164
164
  return selfBuild();
165
165
  };
166
- var floor = mesh.getObjectByName('floor');
166
+ var floor = mesh.getObjectByName("floor");
167
167
  floor.receiveShadow = true;
168
- if (differences[0] == 'selected') {
168
+ if (differences[0] == "selected") {
169
169
  var color = element.selected ? SharedStyle.AREA_MESH_COLOR.selected : SharedStyle.AREA_MESH_COLOR.unselected;
170
170
  floor.material.color.set(color);
171
- } else if (differences[0] == 'properties') {
172
- if (differences[1] === 'texture') {
171
+ } else if (differences[0] == "properties") {
172
+ if (differences[1] === "texture") {
173
173
  return noPerf();
174
174
  }
175
175
  } else return noPerf();