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/LiteKitchenConfigurator.js +14 -4
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- package/es/catalog/factories/area-factory-3d.js +17 -17
- package/es/catalog/utils/item-loader.js +197 -197
- package/es/class/item.js +7 -0
- package/es/components/viewer2d/viewer2d.js +7 -7
- package/es/components/viewer3d/viewer3d.js +28 -12
- package/es/index.js +6 -2
- package/lib/LiteKitchenConfigurator.js +14 -4
- package/lib/assets/img/png/helper/video_preview_start.png +0 -0
- package/lib/catalog/factories/area-factory-3d.js +14 -14
- package/lib/catalog/utils/item-loader.js +194 -194
- package/lib/class/item.js +7 -0
- package/lib/components/viewer2d/viewer2d.js +7 -7
- package/lib/components/viewer3d/viewer3d.js +28 -12
- package/lib/index.js +6 -2
- package/package.json +1 -1
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 - (
|
|
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 - (
|
|
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 - (
|
|
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 - (
|
|
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 - (
|
|
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 - (
|
|
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 - (
|
|
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 ((
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
33
|
-
|
|
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,
|
|
Binary file
|
|
@@ -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:
|
|
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(
|
|
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(
|
|
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 ||
|
|
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(
|
|
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([
|
|
118
|
-
var _layer$getIn = layer.getIn([
|
|
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 =
|
|
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 =
|
|
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(
|
|
166
|
+
var floor = mesh.getObjectByName("floor");
|
|
167
167
|
floor.receiveShadow = true;
|
|
168
|
-
if (differences[0] ==
|
|
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] ==
|
|
172
|
-
if (differences[1] ===
|
|
171
|
+
} else if (differences[0] == "properties") {
|
|
172
|
+
if (differences[1] === "texture") {
|
|
173
173
|
return noPerf();
|
|
174
174
|
}
|
|
175
175
|
} else return noPerf();
|