kitchen-simulator 2.0.30 → 2.0.40
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/actions/items-actions.js +3 -1
- package/es/actions/project-actions.js +9 -1
- package/es/class/item.js +15 -8
- package/es/class/project.js +93 -1
- package/es/components/viewer2d/viewer2d.js +15 -20
- package/es/constants.js +22 -7
- package/es/devLiteRenderer.js +11 -1
- package/es/models.js +3 -1
- package/es/reducers/items-reducer.js +1 -1
- package/es/reducers/project-reducer.js +3 -1
- package/es/utils/helper.js +66 -1
- package/es/utils/isolate-event-handler.js +13 -67
- package/lib/actions/items-actions.js +3 -1
- package/lib/actions/project-actions.js +9 -0
- package/lib/class/item.js +15 -8
- package/lib/class/project.js +92 -0
- package/lib/components/viewer2d/viewer2d.js +15 -20
- package/lib/constants.js +27 -12
- package/lib/devLiteRenderer.js +11 -1
- package/lib/models.js +3 -1
- package/lib/reducers/items-reducer.js +1 -1
- package/lib/reducers/project-reducer.js +2 -0
- package/lib/utils/helper.js +68 -1
- package/lib/utils/isolate-event-handler.js +14 -68
- package/package.json +1 -1
package/lib/utils/helper.js
CHANGED
|
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.animateDoor = void 0;
|
|
9
9
|
exports.applyEdges = applyEdges;
|
|
10
10
|
exports.base64Decode = void 0;
|
|
11
|
+
exports.centering2D = centering2D;
|
|
12
|
+
exports.compareSVGRect = void 0;
|
|
11
13
|
exports.debugUtil = debugUtil;
|
|
12
14
|
exports.getSignedUrl = exports.getPathInfo = exports.getPath = void 0;
|
|
13
15
|
exports.handleCamRect = handleCamRect;
|
|
@@ -20,7 +22,7 @@ exports.refineProductForSummaryPdf = exports.refineMoldingForSummaryPdf = void 0
|
|
|
20
22
|
exports.replaceMeshesWithLineSegments = replaceMeshesWithLineSegments;
|
|
21
23
|
exports.textureCube = void 0;
|
|
22
24
|
exports.toPlainObject = toPlainObject;
|
|
23
|
-
exports.translateDrawer = void 0;
|
|
25
|
+
exports.updateViwer2D = exports.translateDrawer = void 0;
|
|
24
26
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
25
27
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
26
28
|
var _HDRCubeTextureLoader = require("three/examples/jsm/loaders/HDRCubeTextureLoader.js");
|
|
@@ -355,4 +357,69 @@ function isImmutable(maybeImmutable) {
|
|
|
355
357
|
}
|
|
356
358
|
function debugUtil() {
|
|
357
359
|
return new Date();
|
|
360
|
+
}
|
|
361
|
+
var compareSVGRect = exports.compareSVGRect = function compareSVGRect(value) {
|
|
362
|
+
return value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight ? true : false;
|
|
363
|
+
};
|
|
364
|
+
var updateViwer2D = exports.updateViwer2D = function updateViwer2D(value) {
|
|
365
|
+
var viewer2DActions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
366
|
+
var _zoomValue = parseInt((value.a - 0.5) / _constants.ZOOM_VARIABLE);
|
|
367
|
+
if (_zoomValue > _constants.MAX_ZOOM_IN_SCALE) return;
|
|
368
|
+
if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;
|
|
369
|
+
|
|
370
|
+
// modify e, f to fit to SVG
|
|
371
|
+
while (!(value.e <= 10)) {
|
|
372
|
+
value.e -= 0.1;
|
|
373
|
+
}
|
|
374
|
+
while (!(value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth)) {
|
|
375
|
+
value.e += 0.1;
|
|
376
|
+
}
|
|
377
|
+
while (!(value.f <= 80)) {
|
|
378
|
+
value.f -= 0.1;
|
|
379
|
+
}
|
|
380
|
+
while (!(value.f + value.a * value.SVGHeight + 10 >= value.viewerHeight)) {
|
|
381
|
+
value.f += 0.1;
|
|
382
|
+
}
|
|
383
|
+
if (viewer2DActions && compareSVGRect(value)) viewer2DActions.updateCameraView(value);
|
|
384
|
+
};
|
|
385
|
+
function centering2D(state) {
|
|
386
|
+
var viewer2DActions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
387
|
+
// calculate the bounding box of all elements in plan
|
|
388
|
+
var layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
|
|
389
|
+
var bb = {
|
|
390
|
+
minX: Infinity,
|
|
391
|
+
maxX: -Infinity,
|
|
392
|
+
minY: Infinity,
|
|
393
|
+
maxY: -Infinity
|
|
394
|
+
};
|
|
395
|
+
bb = layer.vertices.reduce(function (pre, cur) {
|
|
396
|
+
pre.minX = Math.min(pre.minX, cur.x);
|
|
397
|
+
pre.maxX = Math.max(pre.maxX, cur.x);
|
|
398
|
+
pre.minY = Math.min(pre.minY, cur.y);
|
|
399
|
+
pre.maxY = Math.max(pre.maxY, cur.y);
|
|
400
|
+
return pre;
|
|
401
|
+
}, bb);
|
|
402
|
+
var w = bb.maxX - bb.minX;
|
|
403
|
+
var h = bb.maxY - bb.minY;
|
|
404
|
+
|
|
405
|
+
// calc scale and offset to fit view
|
|
406
|
+
var viewer = state.getIn(['viewer2D']).toJS();
|
|
407
|
+
if (w != 0 && Math.abs(w) != Infinity && h != 0 && Math.abs(h) != Infinity) {
|
|
408
|
+
// elements are exist && bounding box size > 0
|
|
409
|
+
viewer.a = viewer.viewerHeight < h ? viewer.viewerHeight / h : viewer.viewerHeight / h * 3 / 5 / _constants.ZOOM_VARIABLE > _constants.MAX_ZOOM_IN_SCALE ? viewer.viewerHeight / h * _constants.MAX_ZOOM_IN_SCALE / (viewer.viewerHeight / h / _constants.ZOOM_VARIABLE) : viewer.viewerHeight / h * 3 / 5;
|
|
410
|
+
viewer.d = viewer.a;
|
|
411
|
+
viewer.e = (viewer.viewerWidth - (bb.maxX + bb.minX) * viewer.a) / 2;
|
|
412
|
+
viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
|
|
413
|
+
} else {
|
|
414
|
+
// there is no any element && bounding box size == 0
|
|
415
|
+
viewer.e = viewer.viewerWidth / 2 - viewer.SVGWidth / 2;
|
|
416
|
+
viewer.f = viewer.viewerHeight / 2 - viewer.SVGHeight / 2;
|
|
417
|
+
viewer.a = 0.99;
|
|
418
|
+
viewer.d = 0.99;
|
|
419
|
+
}
|
|
420
|
+
state = state.merge({
|
|
421
|
+
viewer2D: viewer
|
|
422
|
+
});
|
|
423
|
+
if (viewer2DActions) updateViwer2D(viewer, viewer2DActions);
|
|
424
|
+
return state;
|
|
358
425
|
}
|
|
@@ -21,29 +21,6 @@ var _SVGLoader = require("three/addons/loaders/SVGLoader");
|
|
|
21
21
|
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; }
|
|
22
22
|
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; }
|
|
23
23
|
var PRECISION = 2;
|
|
24
|
-
var compareSVGRect = function compareSVGRect(value) {
|
|
25
|
-
return value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight ? true : false;
|
|
26
|
-
};
|
|
27
|
-
var updateViwer2D = function updateViwer2D(value, viewer2DActions) {
|
|
28
|
-
var _zoomValue = parseInt((value.a - 0.5) / _constants.ZOOM_VARIABLE);
|
|
29
|
-
if (_zoomValue > _constants.MAX_ZOOM_IN_SCALE) return;
|
|
30
|
-
if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;
|
|
31
|
-
|
|
32
|
-
// modify e, f to fit to SVG
|
|
33
|
-
while (!(value.e <= 10)) {
|
|
34
|
-
value.e -= 0.1;
|
|
35
|
-
}
|
|
36
|
-
while (!(value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth)) {
|
|
37
|
-
value.e += 0.1;
|
|
38
|
-
}
|
|
39
|
-
while (!(value.f <= 80)) {
|
|
40
|
-
value.f -= 0.1;
|
|
41
|
-
}
|
|
42
|
-
while (!(value.f + value.a * value.SVGHeight + 10 >= value.viewerHeight)) {
|
|
43
|
-
value.f += 0.1;
|
|
44
|
-
}
|
|
45
|
-
if (compareSVGRect(value)) viewer2DActions.updateCameraView(value);
|
|
46
|
-
};
|
|
47
24
|
function loadJSON(_x) {
|
|
48
25
|
return _loadJSON.apply(this, arguments);
|
|
49
26
|
}
|
|
@@ -1003,7 +980,7 @@ function handleExternalEvent(_x10) {
|
|
|
1003
980
|
function _handleExternalEvent() {
|
|
1004
981
|
_handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(props) {
|
|
1005
982
|
var _evt$payload3, _evt$payload4;
|
|
1006
|
-
var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2,
|
|
983
|
+
var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value3, layerId, layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _evt$payload9, _evt$payload0, _evt$payload1, _evt$payload10, _layerID, _layer, orginalItemInfo, originalItem, originalItemPos, replaceItem, _props$onInternalEven2, _t5, _t6;
|
|
1007
984
|
return _regenerator["default"].wrap(function (_context9) {
|
|
1008
985
|
while (1) switch (_context9.prev = _context9.next) {
|
|
1009
986
|
case 0:
|
|
@@ -1133,7 +1110,7 @@ function _handleExternalEvent() {
|
|
|
1133
1110
|
vPosX = (mouseX - v2d.e) / v2d.a;
|
|
1134
1111
|
vPosY = (mouseY - v2d.f) / v2d.d;
|
|
1135
1112
|
layerID = state.scene.selectedLayer; // move cabinet to initial position
|
|
1136
|
-
props.itemsActions.updateDrawingItem(layerID, vPosX, -vPosY + state.scene.height);
|
|
1113
|
+
props.itemsActions.updateDrawingItem(layerID, vPosX, -vPosY + state.scene.height, true);
|
|
1137
1114
|
}
|
|
1138
1115
|
}
|
|
1139
1116
|
props.projectActions.pushLastSelectedCatalogElementToHistory(element);
|
|
@@ -1162,7 +1139,7 @@ function _handleExternalEvent() {
|
|
|
1162
1139
|
value.e -= moveValue;
|
|
1163
1140
|
return _context9.abrupt("continue", 18);
|
|
1164
1141
|
case 18:
|
|
1165
|
-
updateViwer2D(value, props.viewer2DActions);
|
|
1142
|
+
(0, _helper.updateViwer2D)(value, props.viewer2DActions);
|
|
1166
1143
|
return _context9.abrupt("continue", 37);
|
|
1167
1144
|
case 19:
|
|
1168
1145
|
defaulTitle = 'Untitle';
|
|
@@ -1178,7 +1155,7 @@ function _handleExternalEvent() {
|
|
|
1178
1155
|
props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle);
|
|
1179
1156
|
return _context9.abrupt("continue", 37);
|
|
1180
1157
|
case 22:
|
|
1181
|
-
props.projectActions.
|
|
1158
|
+
props.projectActions.createRoomWithShape(evt.payload.roomShapeType, evt.payload.width, evt.payload.height);
|
|
1182
1159
|
return _context9.abrupt("continue", 37);
|
|
1183
1160
|
case 23:
|
|
1184
1161
|
_value = state.getIn(['viewer2D']).toJS();
|
|
@@ -1186,7 +1163,7 @@ function _handleExternalEvent() {
|
|
|
1186
1163
|
_value.d += 0.1;
|
|
1187
1164
|
_value.e -= _value.SVGWidth * 0.1 / 2;
|
|
1188
1165
|
_value.f -= _value.SVGHeight * 0.1 / 2;
|
|
1189
|
-
updateViwer2D(_value, props.viewer2DActions);
|
|
1166
|
+
(0, _helper.updateViwer2D)(_value, props.viewer2DActions);
|
|
1190
1167
|
return _context9.abrupt("continue", 37);
|
|
1191
1168
|
case 24:
|
|
1192
1169
|
_value2 = state.getIn(['viewer2D']).toJS();
|
|
@@ -1194,41 +1171,10 @@ function _handleExternalEvent() {
|
|
|
1194
1171
|
_value2.d -= 0.1;
|
|
1195
1172
|
_value2.e += _value2.SVGWidth * 0.1 / 2;
|
|
1196
1173
|
_value2.f += _value2.SVGHeight * 0.1 / 2;
|
|
1197
|
-
updateViwer2D(_value2, props.viewer2DActions);
|
|
1174
|
+
(0, _helper.updateViwer2D)(_value2, props.viewer2DActions);
|
|
1198
1175
|
return _context9.abrupt("continue", 37);
|
|
1199
1176
|
case 25:
|
|
1200
|
-
|
|
1201
|
-
layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
|
|
1202
|
-
bb = {
|
|
1203
|
-
minX: Infinity,
|
|
1204
|
-
maxX: -Infinity,
|
|
1205
|
-
minY: Infinity,
|
|
1206
|
-
maxY: -Infinity
|
|
1207
|
-
};
|
|
1208
|
-
bb = layer.vertices.reduce(function (pre, cur) {
|
|
1209
|
-
pre.minX = Math.min(pre.minX, cur.x);
|
|
1210
|
-
pre.maxX = Math.max(pre.maxX, cur.x);
|
|
1211
|
-
pre.minY = Math.min(pre.minY, cur.y);
|
|
1212
|
-
pre.maxY = Math.max(pre.maxY, cur.y);
|
|
1213
|
-
return pre;
|
|
1214
|
-
}, bb);
|
|
1215
|
-
w = bb.maxX - bb.minX;
|
|
1216
|
-
h = bb.maxY - bb.minY; // calc scale and offset to fit view
|
|
1217
|
-
viewer = state.getIn(['viewer2D']).toJS();
|
|
1218
|
-
if (w != 0 && Math.abs(w) != Infinity && h != 0 && Math.abs(h) != Infinity) {
|
|
1219
|
-
// elements are exist && bounding box size > 0
|
|
1220
|
-
viewer.a = viewer.viewerHeight < h ? viewer.viewerHeight / h : viewer.viewerHeight / h * 3 / 5 / _constants.ZOOM_VARIABLE > _constants.MAX_ZOOM_IN_SCALE ? viewer.viewerHeight / h * _constants.MAX_ZOOM_IN_SCALE / (viewer.viewerHeight / h / _constants.ZOOM_VARIABLE) : viewer.viewerHeight / h * 3 / 5;
|
|
1221
|
-
viewer.d = viewer.a;
|
|
1222
|
-
viewer.e = (viewer.viewerWidth - (bb.maxX + bb.minX) * viewer.a) / 2;
|
|
1223
|
-
viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
|
|
1224
|
-
} else {
|
|
1225
|
-
// there is no any element && bounding box size == 0
|
|
1226
|
-
viewer.e = viewer.viewerWidth / 2 - viewer.SVGWidth / 2;
|
|
1227
|
-
viewer.f = viewer.viewerHeight / 2 - viewer.SVGHeight / 2;
|
|
1228
|
-
viewer.a = 0.99;
|
|
1229
|
-
viewer.d = 0.99;
|
|
1230
|
-
}
|
|
1231
|
-
updateViwer2D(viewer, props.viewer2DActions);
|
|
1177
|
+
(0, _helper.centering2D)(state, props.viewer2DActions);
|
|
1232
1178
|
return _context9.abrupt("continue", 37);
|
|
1233
1179
|
case 26:
|
|
1234
1180
|
props.projectActions.undo();
|
|
@@ -1268,17 +1214,17 @@ function _handleExternalEvent() {
|
|
|
1268
1214
|
return _context9.abrupt("continue", 37);
|
|
1269
1215
|
case 33:
|
|
1270
1216
|
layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1271
|
-
|
|
1272
|
-
_layer$getIn =
|
|
1273
|
-
for (_i2 = 0; _i2 < selectedLines.size; _i2++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(
|
|
1274
|
-
for (_i3 = 0; _i3 < selectedHoles.size; _i3++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(
|
|
1275
|
-
for (_i4 = 0; _i4 < selectedItems.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(
|
|
1217
|
+
layer = state.getIn(['scene', 'layers', layerId]);
|
|
1218
|
+
_layer$getIn = layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
|
|
1219
|
+
for (_i2 = 0; _i2 < selectedLines.size; _i2++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, state, layer, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, props.catalog, props.projectActions, evt.callback);
|
|
1220
|
+
for (_i3 = 0; _i3 < selectedHoles.size; _i3++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, state, layer, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, props.catalog, props.projectActions, evt.callback);
|
|
1221
|
+
for (_i4 = 0; _i4 < selectedItems.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, state, layer, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, props.catalog, props.projectActions, evt.callback);
|
|
1276
1222
|
return _context9.abrupt("continue", 37);
|
|
1277
1223
|
case 34:
|
|
1278
1224
|
_layerID = state.scene.selectedLayer;
|
|
1279
|
-
|
|
1225
|
+
_layer = state.scene.getIn(['layers', _layerID]).toJS();
|
|
1280
1226
|
orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
|
|
1281
|
-
originalItem =
|
|
1227
|
+
originalItem = _layer === null || _layer === void 0 ? void 0 : _layer.items[orginalItemInfo.id];
|
|
1282
1228
|
_context9.next = 35;
|
|
1283
1229
|
return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
|
|
1284
1230
|
case 35:
|