kitchen-simulator 3.15.0 → 3.16.0-test-renderer-fix
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 +111 -88
- package/es/LiteRenderer.js +162 -130
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/class/project.js +79 -76
- package/es/components/viewer2d/ruler.js +2 -1
- package/es/components/viewer3d/scene-creator.js +12 -7
- package/es/components/viewer3d/viewer3d.js +1 -0
- package/es/constants.js +1 -0
- package/es/devLiteRenderer.js +98 -0
- package/es/utils/isolate-event-handler.js +17 -29
- package/lib/LiteKitchenConfigurator.js +111 -89
- package/lib/LiteRenderer.js +161 -130
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/class/project.js +79 -76
- package/lib/components/viewer2d/ruler.js +2 -1
- package/lib/components/viewer3d/scene-creator.js +12 -7
- package/lib/components/viewer3d/viewer3d.js +1 -0
- package/lib/constants.js +1 -0
- package/lib/devLiteRenderer.js +98 -0
- package/lib/utils/isolate-event-handler.js +17 -29
- package/package.json +1 -1
package/es/devLiteRenderer.js
CHANGED
|
@@ -335,6 +335,104 @@ function WorkSpace(props) {
|
|
|
335
335
|
setExternalEvent(evt);
|
|
336
336
|
}
|
|
337
337
|
}, "Add Room shape(rectangle)"), /*#__PURE__*/React.createElement(Button, {
|
|
338
|
+
actionType: "danger",
|
|
339
|
+
onClick: function onClick() {
|
|
340
|
+
var evt = {
|
|
341
|
+
type: EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
342
|
+
payload: {
|
|
343
|
+
roomShapeType: 'custom',
|
|
344
|
+
width: 0,
|
|
345
|
+
height: 0,
|
|
346
|
+
doorStyle: {
|
|
347
|
+
id: 36,
|
|
348
|
+
type: 'door',
|
|
349
|
+
name: 'Brilliant White Shaker',
|
|
350
|
+
thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
|
|
351
|
+
texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
352
|
+
color: '#ffffff',
|
|
353
|
+
glossness: 1,
|
|
354
|
+
door_style_id: 42,
|
|
355
|
+
brightness: 1,
|
|
356
|
+
sku: 'SW',
|
|
357
|
+
color_family: ',10,',
|
|
358
|
+
color_sku_alias: 'SW',
|
|
359
|
+
door_style_name: 'Shaker',
|
|
360
|
+
install: '',
|
|
361
|
+
doorStyles: {
|
|
362
|
+
base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
363
|
+
counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
|
|
364
|
+
interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
|
|
365
|
+
base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
366
|
+
base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
367
|
+
base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
368
|
+
base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
369
|
+
door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
370
|
+
fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
371
|
+
drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
372
|
+
base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
373
|
+
base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
374
|
+
base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
375
|
+
base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
376
|
+
door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
377
|
+
fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
378
|
+
drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
379
|
+
base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
380
|
+
base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
381
|
+
base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
382
|
+
base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
383
|
+
door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
384
|
+
fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
385
|
+
drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
386
|
+
base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
387
|
+
base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
388
|
+
base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
389
|
+
base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
390
|
+
door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
391
|
+
fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
392
|
+
drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
393
|
+
base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
394
|
+
base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
395
|
+
base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
396
|
+
base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
397
|
+
door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
398
|
+
fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
399
|
+
drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
400
|
+
base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
401
|
+
base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
402
|
+
base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
403
|
+
base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
404
|
+
door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
405
|
+
fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
406
|
+
drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
407
|
+
base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
408
|
+
base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
409
|
+
base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
410
|
+
base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
411
|
+
door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
412
|
+
fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
413
|
+
drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
414
|
+
base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
415
|
+
base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
416
|
+
base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
417
|
+
base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
418
|
+
door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
419
|
+
fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
420
|
+
drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
421
|
+
base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
422
|
+
base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
423
|
+
base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
424
|
+
base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
425
|
+
door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
426
|
+
fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
427
|
+
drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
|
|
428
|
+
},
|
|
429
|
+
installation_types: [125, 124]
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
setExternalEvent(evt);
|
|
434
|
+
}
|
|
435
|
+
}, "Add Room shape(custom)"), /*#__PURE__*/React.createElement(Button, {
|
|
338
436
|
actionType: "danger",
|
|
339
437
|
onClick: function onClick() {
|
|
340
438
|
var evt = {
|
|
@@ -729,6 +729,7 @@ function initPropData(element, catalog) {
|
|
|
729
729
|
function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
|
|
730
730
|
var _attributesFormData;
|
|
731
731
|
var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
732
|
+
var layerUnit = state.getIn(['scene', 'layers', 'layer-1', 'unit']);
|
|
732
733
|
var attributesFormData = initAttrData(element, layer, state);
|
|
733
734
|
var value = attrPayload.value;
|
|
734
735
|
var attributeName = attrPayload.attributeName;
|
|
@@ -736,28 +737,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
736
737
|
if (attributeName === ATT_ITEM_POS) {
|
|
737
738
|
// calculate the new position of movement
|
|
738
739
|
var rotRad = (value.directionAng + element.rotation) / 180 * Math.PI;
|
|
739
|
-
var newX = element.x + convert((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(
|
|
740
|
-
var newY = element.y + convert((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(
|
|
741
|
-
// const reversedDirection =
|
|
742
|
-
// value.directionAng === LEFT_DIST_ANG
|
|
743
|
-
// ? RIGHT_DIST_ANG
|
|
744
|
-
// : value.directionAng === RIGHT_DIST_ANG
|
|
745
|
-
// ? LEFT_DIST_ANG
|
|
746
|
-
// : value.directionAng === BACK_DIST_ANG
|
|
747
|
-
// ? FRONT_DIST_ANG
|
|
748
|
-
// : BACK_DIST_ANG;
|
|
749
|
-
// let dist = convert(
|
|
750
|
-
// element.distArray?.find(v => v[1] === reversedDirection)
|
|
751
|
-
// ? element.distArray?.find(v => v[1] === reversedDirection)[0]
|
|
752
|
-
// : 0
|
|
753
|
-
// )
|
|
754
|
-
// .from('cm')
|
|
755
|
-
// .to('in');
|
|
756
|
-
// if (dist + (value.oldDistance - value.newDistance) <= 0 || value.newDistance < 0) {
|
|
757
|
-
// // confirm "The item will be placed outside the floor plan. Are you sure?"
|
|
758
|
-
// setPopupOpen(true);
|
|
759
|
-
// return;
|
|
760
|
-
// }
|
|
740
|
+
var newX = element.x + convert((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(layerUnit).to('cm');
|
|
741
|
+
var newY = element.y + convert((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(layerUnit).to('cm');
|
|
761
742
|
value = {
|
|
762
743
|
x: newX,
|
|
763
744
|
y: newY
|
|
@@ -766,8 +747,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
766
747
|
var att = attributesFormData.has(attributeName) ? attributesFormData.get(attributeName) : element[attributeName];
|
|
767
748
|
if (att) value = att.merge({
|
|
768
749
|
_length: value,
|
|
769
|
-
_unit:
|
|
770
|
-
length: convert(value).from(
|
|
750
|
+
_unit: layerUnit,
|
|
751
|
+
length: convert(value).from(layerUnit).to(UNIT_CENTIMETER)
|
|
771
752
|
});
|
|
772
753
|
}
|
|
773
754
|
// make the new attrivutes
|
|
@@ -1179,9 +1160,16 @@ function _handleExternalEvent() {
|
|
|
1179
1160
|
while (1) switch (_context8.prev = _context8.next) {
|
|
1180
1161
|
case 0:
|
|
1181
1162
|
it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
1182
|
-
if (
|
|
1183
|
-
|
|
1184
|
-
|
|
1163
|
+
// if (
|
|
1164
|
+
// it.properties.altitude.length !==
|
|
1165
|
+
// convert(it.properties.altitude._length).from('in').to('cm')
|
|
1166
|
+
// ) {
|
|
1167
|
+
// it.properties.altitude.length = convert(
|
|
1168
|
+
// it.properties.altitude._length
|
|
1169
|
+
// )
|
|
1170
|
+
// .from('in')
|
|
1171
|
+
// .to('cm');
|
|
1172
|
+
// }
|
|
1185
1173
|
/////////
|
|
1186
1174
|
if (!cdsItems.some(function (v) {
|
|
1187
1175
|
var _it$doorStyle;
|
|
@@ -1254,7 +1242,7 @@ function _handleExternalEvent() {
|
|
|
1254
1242
|
return _ref2.apply(this, arguments);
|
|
1255
1243
|
};
|
|
1256
1244
|
}());
|
|
1257
|
-
}
|
|
1245
|
+
} else props.projectActions.loadProject(evt.payload);
|
|
1258
1246
|
case 5:
|
|
1259
1247
|
return _context1.abrupt("continue", 44);
|
|
1260
1248
|
case 6:
|
|
@@ -1401,7 +1389,7 @@ function _handleExternalEvent() {
|
|
|
1401
1389
|
} else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
|
|
1402
1390
|
return _context1.abrupt("continue", 44);
|
|
1403
1391
|
case 20:
|
|
1404
|
-
_evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
|
|
1392
|
+
_evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
|
|
1405
1393
|
props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
|
|
1406
1394
|
return _context1.abrupt("continue", 44);
|
|
1407
1395
|
case 21:
|
|
@@ -31,8 +31,8 @@ var _translator = _interopRequireDefault(require("./translator/translator"));
|
|
|
31
31
|
var _objectsUtils = require("./utils/objects-utils");
|
|
32
32
|
var _version = require("./version");
|
|
33
33
|
var _isolateEventHandler = require("./utils/isolate-event-handler");
|
|
34
|
-
var _excluded = ["width", "height", "
|
|
35
|
-
var _templateObject, _templateObject2;
|
|
34
|
+
var _excluded = ["width", "height", "extractedState", "measurementUnit"];
|
|
35
|
+
var _templateObject, _templateObject2; // LiteKitchenConfigurator.jsx
|
|
36
36
|
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); }
|
|
37
37
|
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; }
|
|
38
38
|
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; }
|
|
@@ -43,7 +43,7 @@ var wrapperStyle = {
|
|
|
43
43
|
display: 'flex',
|
|
44
44
|
flexFlow: 'row nowrap'
|
|
45
45
|
};
|
|
46
|
-
var WarningItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n opacity: 0.8;\n position: absolute;\n border-radius: 6px;\n z-index: 11;\n background-color: #ff7400;\n width: max-content;\n align-items: center;\n padding: 10px;\n display: none;\n box-shadow
|
|
46
|
+
var WarningItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n opacity: 0.8;\n position: absolute;\n border-radius: 6px;\n z-index: 11;\n background-color: #ff7400;\n width: max-content;\n align-items: center;\n padding: 10px;\n display: none;\n box-shadow:\n 0px 3px 5px -1px rgba(0, 0, 0, 0.2),\n 0px 6px 10px 0px rgba(0, 0, 0, 0.39),\n 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n top: -50px;\n left: 5px;\n color: white;\n"])));
|
|
47
47
|
var SubCategoryItemImage = _styledComponents["default"].img(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n height: 30px;\n width: 30px;\n -webkit-mask-image: url(", ");\n -webkit-mask-size: calc(100% - 2px) calc(100% - 2px);\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: 1px 1px;\n"])), constants.SECONDARY_PURPLE_COLOR, function (props) {
|
|
48
48
|
return props.maskImage + '?nocache=2025';
|
|
49
49
|
});
|
|
@@ -53,8 +53,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
53
53
|
var _this;
|
|
54
54
|
(0, _classCallCheck2["default"])(this, LiteKitchenConfigurator);
|
|
55
55
|
_this = _callSuper(this, LiteKitchenConfigurator, [props]);
|
|
56
|
-
|
|
57
|
-
// utm tracking
|
|
58
56
|
var utmDetailParams = new URLSearchParams(_this.props.location && _this.props.location.search);
|
|
59
57
|
var utmStrEncoded = utmDetailParams.get('details');
|
|
60
58
|
var utmRequestData = null;
|
|
@@ -64,7 +62,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
64
62
|
utmRequestData = JSON.parse((0, _helper.base64Decode)(utmStrEncoded));
|
|
65
63
|
utmRequestData = JSON.parse((_utmRequestData = utmRequestData) === null || _utmRequestData === void 0 ? void 0 : _utmRequestData.utm);
|
|
66
64
|
} catch (e) {
|
|
67
|
-
console.error('Cannot parse utm parameter: ',
|
|
65
|
+
console.error('Cannot parse utm parameter: ', e);
|
|
68
66
|
utmRequestData = null;
|
|
69
67
|
}
|
|
70
68
|
}
|
|
@@ -83,7 +81,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
83
81
|
myProjectsOpen: false,
|
|
84
82
|
myProjectsToLogin: false,
|
|
85
83
|
downloadPopupVisible: false,
|
|
86
|
-
// For Toolbar Item
|
|
87
84
|
toolbar: '',
|
|
88
85
|
reviewQuotePopupOpened: false,
|
|
89
86
|
floorOpened: false,
|
|
@@ -101,8 +98,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
101
98
|
isSaved: false,
|
|
102
99
|
isLeaving: false
|
|
103
100
|
};
|
|
104
|
-
|
|
105
|
-
// For UTM tracking
|
|
106
101
|
_this.utm = {
|
|
107
102
|
utm_source: ((_utmRequestData2 = utmRequestData) === null || _utmRequestData2 === void 0 ? void 0 : _utmRequestData2.source) || 'source',
|
|
108
103
|
utm_medium: ((_utmRequestData3 = utmRequestData) === null || _utmRequestData3 === void 0 ? void 0 : _utmRequestData3.medium) || 'medium',
|
|
@@ -133,10 +128,12 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
133
128
|
_this.setDownloadPopupVisible = _this.setDownloadPopupVisible.bind(_this);
|
|
134
129
|
_this.neverShowInput = /*#__PURE__*/_react["default"].createRef(null);
|
|
135
130
|
_this.setShowProperty = _this.setShowProperty.bind(_this);
|
|
131
|
+
|
|
132
|
+
// cache to avoid immutable merge allocations every render
|
|
133
|
+
_this._cachedViewer2DKey = null;
|
|
134
|
+
_this._cachedExtractedState = null;
|
|
136
135
|
return _this;
|
|
137
136
|
}
|
|
138
|
-
|
|
139
|
-
// Toolbar control functions
|
|
140
137
|
(0, _inherits2["default"])(LiteKitchenConfigurator, _Component);
|
|
141
138
|
return (0, _createClass2["default"])(LiteKitchenConfigurator, [{
|
|
142
139
|
key: "setToolbar",
|
|
@@ -220,26 +217,32 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
220
217
|
}, {
|
|
221
218
|
key: "openFloor",
|
|
222
219
|
value: function openFloor() {
|
|
220
|
+
var _el$parentElement;
|
|
223
221
|
this.setState({
|
|
224
222
|
floorOpened: true
|
|
225
223
|
});
|
|
226
|
-
document.getElementById('make_floorplan_inactive')
|
|
224
|
+
var el = document.getElementById('make_floorplan_inactive');
|
|
225
|
+
el && ((_el$parentElement = el.parentElement) === null || _el$parentElement === void 0 ? void 0 : _el$parentElement.parentElement) && (el.parentElement.parentElement.style.zIndex = 999);
|
|
227
226
|
}
|
|
228
227
|
}, {
|
|
229
228
|
key: "openCabinet",
|
|
230
229
|
value: function openCabinet() {
|
|
230
|
+
var _el$parentElement2;
|
|
231
231
|
this.setState({
|
|
232
232
|
cabinetOpened: true
|
|
233
233
|
});
|
|
234
|
-
document.getElementById('add_cabinets_inactive')
|
|
234
|
+
var el = document.getElementById('add_cabinets_inactive');
|
|
235
|
+
el && ((_el$parentElement2 = el.parentElement) === null || _el$parentElement2 === void 0 ? void 0 : _el$parentElement2.parentElement) && (el.parentElement.parentElement.style.zIndex = 999);
|
|
235
236
|
}
|
|
236
237
|
}, {
|
|
237
238
|
key: "toggleDoorStyle",
|
|
238
239
|
value: function toggleDoorStyle(visible) {
|
|
240
|
+
var _el$parentElement3;
|
|
239
241
|
this.setState({
|
|
240
242
|
doorStyleOpen: visible
|
|
241
243
|
});
|
|
242
|
-
document.getElementById('select_doorstyle_inactive')
|
|
244
|
+
var el = document.getElementById('select_doorstyle_inactive');
|
|
245
|
+
el && ((_el$parentElement3 = el.parentElement) === null || _el$parentElement3 === void 0 ? void 0 : _el$parentElement3.parentElement) && (el.parentElement.parentElement.style.zIndex = visible ? 999 : 6);
|
|
243
246
|
}
|
|
244
247
|
}, {
|
|
245
248
|
key: "replaceCabinet",
|
|
@@ -251,70 +254,72 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
251
254
|
}, {
|
|
252
255
|
key: "openAppliance",
|
|
253
256
|
value: function openAppliance() {
|
|
257
|
+
var _el$parentElement4;
|
|
254
258
|
this.setState({
|
|
255
259
|
applianceOpened: true
|
|
256
260
|
});
|
|
257
|
-
document.getElementById('add_appliances_inactive')
|
|
261
|
+
var el = document.getElementById('add_appliances_inactive');
|
|
262
|
+
el && ((_el$parentElement4 = el.parentElement) === null || _el$parentElement4 === void 0 ? void 0 : _el$parentElement4.parentElement) && (el.parentElement.parentElement.style.zIndex = 999);
|
|
258
263
|
}
|
|
259
264
|
}, {
|
|
260
265
|
key: "openFinishing",
|
|
261
266
|
value: function openFinishing() {
|
|
267
|
+
var _el$parentElement5;
|
|
262
268
|
this.setState({
|
|
263
269
|
finishingOpened: true
|
|
264
270
|
});
|
|
265
|
-
document.getElementById('finishing_touches_inactive')
|
|
271
|
+
var el = document.getElementById('finishing_touches_inactive');
|
|
272
|
+
el && ((_el$parentElement5 = el.parentElement) === null || _el$parentElement5 === void 0 ? void 0 : _el$parentElement5.parentElement) && (el.parentElement.parentElement.style.zIndex = 999);
|
|
266
273
|
}
|
|
267
274
|
}, {
|
|
268
275
|
key: "onReviewQuoteClicked",
|
|
269
276
|
value: function onReviewQuoteClicked(visible) {
|
|
277
|
+
var _el$parentElement6;
|
|
270
278
|
this.setState({
|
|
271
279
|
reviewQuotePopupOpened: visible
|
|
272
280
|
});
|
|
273
|
-
document.getElementById('review_quote_inactive')
|
|
281
|
+
var el = document.getElementById('review_quote_inactive');
|
|
282
|
+
el && ((_el$parentElement6 = el.parentElement) === null || _el$parentElement6 === void 0 ? void 0 : _el$parentElement6.parentElement) && (el.parentElement.parentElement.style.zIndex = visible ? 999 : 6);
|
|
274
283
|
}
|
|
275
284
|
}, {
|
|
276
285
|
key: "closeFloorTB",
|
|
277
286
|
value: function closeFloorTB() {
|
|
287
|
+
var _el$parentElement7;
|
|
278
288
|
this.setState({
|
|
279
289
|
floorOpened: false
|
|
280
290
|
});
|
|
281
|
-
|
|
291
|
+
var el = document.getElementById('make_floorplan_inactive');
|
|
292
|
+
el && ((_el$parentElement7 = el.parentElement) === null || _el$parentElement7 === void 0 ? void 0 : _el$parentElement7.parentElement) && (el.parentElement.parentElement.style.zIndex = 6);
|
|
282
293
|
}
|
|
283
294
|
}, {
|
|
284
295
|
key: "closeCabinetTB",
|
|
285
296
|
value: function closeCabinetTB() {
|
|
297
|
+
var _el$parentElement8;
|
|
286
298
|
this.setState({
|
|
287
299
|
cabinetOpened: false
|
|
288
300
|
});
|
|
289
|
-
document.getElementById('add_cabinets_inactive')
|
|
301
|
+
var el = document.getElementById('add_cabinets_inactive');
|
|
302
|
+
el && ((_el$parentElement8 = el.parentElement) === null || _el$parentElement8 === void 0 ? void 0 : _el$parentElement8.parentElement) && (el.parentElement.parentElement.style.zIndex = 6);
|
|
290
303
|
}
|
|
291
304
|
}, {
|
|
292
305
|
key: "closeFinishingTB",
|
|
293
306
|
value: function closeFinishingTB() {
|
|
307
|
+
var _el$parentElement9;
|
|
294
308
|
this.setState({
|
|
295
309
|
finishingOpened: false
|
|
296
310
|
});
|
|
297
|
-
document.getElementById('finishing_touches_inactive')
|
|
311
|
+
var el = document.getElementById('finishing_touches_inactive');
|
|
312
|
+
el && ((_el$parentElement9 = el.parentElement) === null || _el$parentElement9 === void 0 ? void 0 : _el$parentElement9.parentElement) && (el.parentElement.parentElement.style.zIndex = 6);
|
|
298
313
|
}
|
|
299
314
|
}, {
|
|
300
315
|
key: "closeApplianceTB",
|
|
301
316
|
value: function closeApplianceTB() {
|
|
317
|
+
var _el$parentElement0;
|
|
302
318
|
this.setState({
|
|
303
319
|
applianceOpened: false
|
|
304
320
|
});
|
|
305
|
-
document.getElementById('add_appliances_inactive')
|
|
306
|
-
|
|
307
|
-
}, {
|
|
308
|
-
key: "closeDoorstyle",
|
|
309
|
-
value: function closeDoorstyle() {
|
|
310
|
-
this.setState({});
|
|
311
|
-
document.getElementById('select_doorstyle_inactive').parentElement.parentElement.style.zIndex = 6;
|
|
312
|
-
}
|
|
313
|
-
}, {
|
|
314
|
-
key: "closeReviewQuote",
|
|
315
|
-
value: function closeReviewQuote() {
|
|
316
|
-
this.setState({});
|
|
317
|
-
document.getElementById('review_quote_inactive').parentElement.parentElement.style.zIndex = 6;
|
|
321
|
+
var el = document.getElementById('add_appliances_inactive');
|
|
322
|
+
el && ((_el$parentElement0 = el.parentElement) === null || _el$parentElement0 === void 0 ? void 0 : _el$parentElement0.parentElement) && (el.parentElement.parentElement.style.zIndex = 6);
|
|
318
323
|
}
|
|
319
324
|
}, {
|
|
320
325
|
key: "getChildContext",
|
|
@@ -330,7 +335,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
330
335
|
}, {
|
|
331
336
|
key: "componentDidMount",
|
|
332
337
|
value: function componentDidMount() {
|
|
333
|
-
console.log('context =>', this.context);
|
|
334
338
|
window.forRedo = [];
|
|
335
339
|
var store = this.context.store;
|
|
336
340
|
var _this$props = this.props,
|
|
@@ -342,21 +346,23 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
342
346
|
});
|
|
343
347
|
}
|
|
344
348
|
}, {
|
|
345
|
-
key: "
|
|
346
|
-
value: function
|
|
347
|
-
var
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
349
|
+
key: "componentDidUpdate",
|
|
350
|
+
value: function componentDidUpdate(prevProps) {
|
|
351
|
+
var _extractedState$getIn;
|
|
352
|
+
var _this$props2 = this.props,
|
|
353
|
+
externalEvent = _this$props2.externalEvent,
|
|
354
|
+
stateExtractor = _this$props2.stateExtractor,
|
|
355
|
+
extractedState = _this$props2.extractedState,
|
|
356
|
+
projectActions = _this$props2.projectActions,
|
|
357
|
+
catalog = _this$props2.catalog;
|
|
353
358
|
|
|
354
|
-
// handle external events
|
|
355
|
-
if (
|
|
356
|
-
(0, _isolateEventHandler.handleExternalEvent)(
|
|
359
|
+
// handle external events (same behavior as before)
|
|
360
|
+
if (prevProps.externalEvent !== externalEvent) {
|
|
361
|
+
(0, _isolateEventHandler.handleExternalEvent)(this.props);
|
|
357
362
|
}
|
|
358
|
-
|
|
359
|
-
|
|
363
|
+
|
|
364
|
+
// init catalog once ready flag says not ready (same behavior)
|
|
365
|
+
var catalogReady = extractedState === null || extractedState === void 0 || (_extractedState$getIn = extractedState.getIn) === null || _extractedState$getIn === void 0 ? void 0 : _extractedState$getIn.call(extractedState, ['catalog', 'ready']);
|
|
360
366
|
if (!catalogReady) {
|
|
361
367
|
projectActions.initCatalog(catalog);
|
|
362
368
|
}
|
|
@@ -369,16 +375,55 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
369
375
|
var layer = layers.get(selectedLayer);
|
|
370
376
|
return layer.areas.size + layer.lines.size + layer.holes.size + layer.items.size === 0;
|
|
371
377
|
}
|
|
378
|
+
|
|
379
|
+
// Compute viewer2D transform only when needed, and cache it.
|
|
380
|
+
// This preserves the exact visual result but avoids merge allocations every render.
|
|
381
|
+
}, {
|
|
382
|
+
key: "getExtractedStateWithViewer2DInit",
|
|
383
|
+
value: function getExtractedStateWithViewer2DInit(extractedState, width, height) {
|
|
384
|
+
if (!extractedState) return extractedState;
|
|
385
|
+
var _scene = extractedState.getIn(['scene']);
|
|
386
|
+
var len = (0, _convertUnitsLite.convert)(_scene.width).from(_scene.unit).to('cm');
|
|
387
|
+
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
388
|
+
if (!_viewer2D || _viewer2D.size <= 0) return extractedState;
|
|
389
|
+
|
|
390
|
+
// build a stable cache key based on inputs that affect the result
|
|
391
|
+
var v = _viewer2D.toJS();
|
|
392
|
+
var cacheKey = "".concat(width, ":").concat(height, ":").concat(len, ":").concat(v.e, ":").concat(v.f, ":").concat(v.viewerWidth, ":").concat(v.viewerHeight, ":").concat(v.SVGWidth, ":").concat(v.SVGHeight);
|
|
393
|
+
if (this._cachedViewer2DKey === cacheKey && this._cachedExtractedState) {
|
|
394
|
+
return this._cachedExtractedState;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// your original logic
|
|
398
|
+
if (v.e === 0 && v.f === 0) {
|
|
399
|
+
_viewer2D = _viewer2D.merge({
|
|
400
|
+
e: v.viewerWidth / 2 - v.SVGWidth / 2,
|
|
401
|
+
f: v.viewerHeight / 2 - v.SVGHeight / 2,
|
|
402
|
+
a: 0.99,
|
|
403
|
+
d: 0.99
|
|
404
|
+
});
|
|
405
|
+
var merged = extractedState.merge({
|
|
406
|
+
viewer2D: _viewer2D
|
|
407
|
+
});
|
|
408
|
+
this._cachedViewer2DKey = cacheKey;
|
|
409
|
+
this._cachedExtractedState = merged;
|
|
410
|
+
return merged;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
// no merge needed
|
|
414
|
+
this._cachedViewer2DKey = cacheKey;
|
|
415
|
+
this._cachedExtractedState = extractedState;
|
|
416
|
+
return extractedState;
|
|
417
|
+
}
|
|
372
418
|
}, {
|
|
373
419
|
key: "render",
|
|
374
420
|
value: function render() {
|
|
375
|
-
var _this$
|
|
376
|
-
width = _this$
|
|
377
|
-
height = _this$
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
props = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
|
|
421
|
+
var _this$props3 = this.props,
|
|
422
|
+
width = _this$props3.width,
|
|
423
|
+
height = _this$props3.height,
|
|
424
|
+
extractedState = _this$props3.extractedState,
|
|
425
|
+
measurementUnit = _this$props3.measurementUnit,
|
|
426
|
+
props = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
|
|
382
427
|
var _this$state = this.state,
|
|
383
428
|
savePopupVisible = _this$state.savePopupVisible,
|
|
384
429
|
quotePopupVisible = _this$state.quotePopupVisible,
|
|
@@ -386,40 +431,12 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
386
431
|
signOpen = _this$state.signOpen,
|
|
387
432
|
myProjectsOpen = _this$state.myProjectsOpen;
|
|
388
433
|
var contentW = width - toolbarW;
|
|
389
|
-
// let contentW = width - toolbarW - sidebarW;
|
|
390
|
-
// let toolbarH = height - footerBarH;
|
|
391
|
-
// let contentH = height - footerBarH;
|
|
392
|
-
// let sidebarH = height - footerBarH;
|
|
393
|
-
var toolbarH = height;
|
|
394
434
|
var contentH = height;
|
|
395
|
-
var sidebarH = height;
|
|
396
435
|
var headerW = width;
|
|
397
436
|
var headerH = 60;
|
|
398
|
-
var
|
|
399
|
-
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(
|
|
437
|
+
var extracted = this.getExtractedStateWithViewer2DInit(extractedState, width, height);
|
|
438
|
+
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extracted.scene);
|
|
400
439
|
var allVisible = firstVisit || signOpen || myProjectsOpen;
|
|
401
|
-
var _scene = extractedState.getIn(['scene']);
|
|
402
|
-
var len = (0, _convertUnitsLite.convert)(_scene.width).from(_scene.unit).to('cm');
|
|
403
|
-
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
404
|
-
if (_viewer2D.size > 0) {
|
|
405
|
-
var scaleX = width / len * 3;
|
|
406
|
-
var scaleY = height / len * 3;
|
|
407
|
-
var scale = scaleX > scaleY ? scaleY : scaleX;
|
|
408
|
-
var _e = width - len * scale,
|
|
409
|
-
_f = height - len * scale;
|
|
410
|
-
var viewer = _viewer2D.toJS();
|
|
411
|
-
if (viewer.e === 0 && viewer.f === 0) {
|
|
412
|
-
_viewer2D = _viewer2D.merge({
|
|
413
|
-
e: viewer.viewerWidth / 2 - viewer.SVGWidth / 2,
|
|
414
|
-
f: viewer.viewerHeight / 2 - viewer.SVGHeight / 2,
|
|
415
|
-
a: 0.99,
|
|
416
|
-
d: 0.99
|
|
417
|
-
});
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
extractedState = extractedState.merge({
|
|
421
|
-
viewer2D: _viewer2D
|
|
422
|
-
});
|
|
423
440
|
return /*#__PURE__*/_react["default"].createElement("section", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
424
441
|
style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
|
|
425
442
|
height: height,
|
|
@@ -431,7 +448,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
431
448
|
width: contentW,
|
|
432
449
|
height: contentH,
|
|
433
450
|
catalog: this.props.catalog,
|
|
434
|
-
state:
|
|
451
|
+
state: extracted,
|
|
435
452
|
toolBar: this.state.toolbar,
|
|
436
453
|
setToolbar: this.setToolbar,
|
|
437
454
|
replaceCabinet: this.replaceCabinet,
|
|
@@ -473,7 +490,8 @@ LiteKitchenConfigurator.propTypes = {
|
|
|
473
490
|
customContents: _propTypes["default"].object,
|
|
474
491
|
softwareSignature: _propTypes["default"].string,
|
|
475
492
|
configData: _propTypes["default"].object,
|
|
476
|
-
onInternalEvent: _propTypes["default"].func
|
|
493
|
+
onInternalEvent: _propTypes["default"].func,
|
|
494
|
+
extractedState: _propTypes["default"].object // <-- new injected prop
|
|
477
495
|
};
|
|
478
496
|
LiteKitchenConfigurator.contextTypes = {
|
|
479
497
|
store: _propTypes["default"].object.isRequired
|
|
@@ -496,10 +514,14 @@ LiteKitchenConfigurator.defaultProps = {
|
|
|
496
514
|
configData: {}
|
|
497
515
|
};
|
|
498
516
|
|
|
499
|
-
//
|
|
500
|
-
function mapStateToProps(reduxState) {
|
|
517
|
+
// IMPORTANT: select only the extracted slice so top component doesn't rerender on every dispatch
|
|
518
|
+
function mapStateToProps(reduxState, ownProps) {
|
|
519
|
+
var stateExtractor = ownProps.stateExtractor || function (s) {
|
|
520
|
+
return s;
|
|
521
|
+
};
|
|
522
|
+
var extractedState = stateExtractor(reduxState);
|
|
501
523
|
return {
|
|
502
|
-
|
|
524
|
+
extractedState: extractedState
|
|
503
525
|
};
|
|
504
526
|
}
|
|
505
527
|
function mapDispatchToProps(dispatch) {
|