kitchen-simulator 4.0.0-react-18 → 4.0.0
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/README.md +3 -0
- package/es/AppContext.js +1 -1
- package/es/LiteKitchenConfigurator.js +156 -108
- package/es/LiteRenderer.js +159 -130
- package/es/actions/export.js +25 -12
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- package/es/assets/img/svg/bottombar/elevation.svg +12 -5
- package/es/catalog/catalog.js +21 -5
- package/es/catalog/holes/window-clear/planner-element.js +2 -2
- package/es/catalog/properties/export.js +21 -0
- package/es/catalog/properties/property-checkbox.js +68 -0
- package/es/catalog/properties/property-color.js +39 -0
- package/es/catalog/properties/property-enum.js +50 -0
- package/es/catalog/properties/property-hidden.js +19 -0
- package/es/catalog/properties/property-lenght-measure.js +100 -0
- package/es/catalog/properties/property-length-measure.js +84 -0
- package/es/catalog/properties/property-length-measure_hole.js +100 -0
- package/es/catalog/properties/property-number.js +48 -0
- package/es/catalog/properties/property-read-only.js +26 -0
- package/es/catalog/properties/property-string.js +48 -0
- package/es/catalog/properties/property-toggle.js +39 -0
- package/es/catalog/properties/shared-property-style.js +14 -0
- package/es/catalog/utils/exporter.js +1 -0
- package/es/catalog/utils/item-loader.js +17 -12
- package/es/class/hole.js +0 -2
- package/es/class/item.js +95 -69
- package/es/class/line.js +4 -8
- package/es/class/project.js +91 -80
- package/es/components/content.js +5 -2
- package/es/components/export.js +4 -6
- package/es/components/style/button.js +106 -0
- package/es/components/style/cancel-button.js +21 -0
- package/es/components/style/content-container.js +30 -0
- package/es/components/style/content-title.js +25 -0
- package/es/components/style/delete-button.js +24 -0
- package/es/components/style/export.js +28 -2
- package/es/components/style/form-block.js +20 -0
- package/es/components/style/form-color-input.js +26 -0
- package/es/components/style/form-label.js +22 -0
- package/es/components/style/form-number-input.js +11 -22
- package/es/components/style/form-number-input_2.js +200 -0
- package/es/components/style/form-select.js +19 -0
- package/es/components/style/form-slider.js +60 -0
- package/es/components/style/form-submit-button.js +25 -0
- package/es/components/style/form-text-input.js +69 -0
- package/es/components/viewer2d/group.js +5 -4
- package/es/components/viewer2d/item.js +41 -16
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +17 -47
- package/es/components/viewer2d/ruler.js +5 -3
- package/es/components/viewer2d/rulerDist.js +8 -7
- package/es/components/viewer2d/rulerX.js +3 -0
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +4 -1
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/viewer2d.js +51 -84
- package/es/components/viewer3d/scene-creator.js +51 -15
- package/es/components/viewer3d/viewer3d-first-person.js +8 -0
- package/es/components/viewer3d/viewer3d.js +80 -88
- package/es/constants.js +6 -2
- package/es/devLiteRenderer.js +491 -150
- package/es/index.js +567 -25
- package/es/models.js +2 -1
- package/es/plugins/SVGLoader.js +1414 -0
- package/es/plugins/console-debugger.js +0 -2
- package/es/styles/export.js +5 -0
- package/es/styles/tabs.css +40 -0
- package/es/utils/geometry.js +52 -96
- package/es/utils/helper.js +38 -1
- package/es/utils/isolate-event-handler.js +781 -577
- package/es/utils/molding.js +457 -11
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +155 -108
- package/lib/LiteRenderer.js +158 -130
- package/lib/actions/export.js +35 -39
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/png/helper/video_preview_start.png +0 -0
- package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
- package/lib/catalog/catalog.js +20 -4
- package/lib/catalog/holes/window-clear/planner-element.js +2 -2
- package/lib/catalog/properties/export.js +81 -0
- package/lib/catalog/properties/property-checkbox.js +76 -0
- package/lib/catalog/properties/property-color.js +47 -0
- package/lib/catalog/properties/property-enum.js +58 -0
- package/lib/catalog/properties/property-hidden.js +27 -0
- package/lib/catalog/properties/property-lenght-measure.js +108 -0
- package/lib/catalog/properties/property-length-measure.js +92 -0
- package/lib/catalog/properties/property-length-measure_hole.js +108 -0
- package/lib/catalog/properties/property-number.js +56 -0
- package/lib/catalog/properties/property-read-only.js +34 -0
- package/lib/catalog/properties/property-string.js +56 -0
- package/lib/catalog/properties/property-toggle.js +47 -0
- package/lib/catalog/properties/shared-property-style.js +21 -0
- package/lib/catalog/utils/exporter.js +1 -0
- package/lib/catalog/utils/item-loader.js +17 -12
- package/lib/class/hole.js +0 -2
- package/lib/class/item.js +93 -67
- package/lib/class/line.js +3 -7
- package/lib/class/project.js +91 -80
- package/lib/components/content.js +5 -2
- package/lib/components/export.js +6 -26
- package/lib/components/style/button.js +115 -0
- package/lib/components/style/cancel-button.js +29 -0
- package/lib/components/style/content-container.js +38 -0
- package/lib/components/style/content-title.js +35 -0
- package/lib/components/style/delete-button.js +34 -0
- package/lib/components/style/export.js +105 -1
- package/lib/components/style/form-block.js +28 -0
- package/lib/components/style/form-color-input.js +34 -0
- package/lib/components/style/form-label.js +30 -0
- package/lib/components/style/form-number-input.js +11 -22
- package/lib/components/style/form-number-input_2.js +209 -0
- package/lib/components/style/form-select.js +29 -0
- package/lib/components/style/form-slider.js +68 -0
- package/lib/components/style/form-submit-button.js +35 -0
- package/lib/components/style/form-text-input.js +78 -0
- package/lib/components/viewer2d/group.js +5 -4
- package/lib/components/viewer2d/item.js +41 -16
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +17 -47
- package/lib/components/viewer2d/ruler.js +4 -2
- package/lib/components/viewer2d/rulerDist.js +8 -7
- package/lib/components/viewer2d/rulerX.js +3 -0
- package/lib/components/viewer2d/rulerY.js +3 -0
- package/lib/components/viewer2d/scene.js +4 -1
- package/lib/components/viewer2d/state.js +1 -1
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/viewer2d.js +49 -81
- package/lib/components/viewer3d/scene-creator.js +49 -13
- package/lib/components/viewer3d/viewer3d-first-person.js +8 -0
- package/lib/components/viewer3d/viewer3d.js +77 -84
- package/lib/constants.js +11 -7
- package/lib/devLiteRenderer.js +489 -148
- package/lib/index.js +567 -25
- package/lib/models.js +2 -1
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +0 -2
- package/lib/styles/export.js +13 -0
- package/lib/styles/tabs.css +40 -0
- package/lib/utils/geometry.js +52 -96
- package/lib/utils/helper.js +40 -1
- package/lib/utils/isolate-event-handler.js +781 -576
- package/lib/utils/molding.js +458 -9
- package/package.json +21 -16
- package/es/mocks/appliancePayload.json +0 -27
- package/es/mocks/cabinetPayload.json +0 -1914
- package/es/mocks/cabinetPayload2.json +0 -76
- package/es/mocks/dataBundle2.json +0 -4
- package/es/mocks/distancePayload.json +0 -6
- package/es/mocks/doorStylePayload2.json +0 -84
- package/es/mocks/furnishingPayload.json +0 -23
- package/es/mocks/itemCDSPayload.json +0 -27
- package/es/mocks/lightingPayload.json +0 -23
- package/es/mocks/mockProps.json +0 -43
- package/es/mocks/mockProps2.json +0 -9
- package/es/mocks/moldingPayload.json +0 -19
- package/es/mocks/projectItemsCatalog.json +0 -133
- package/es/mocks/rectangleShape.json +0 -238
- package/es/mocks/replaceCabinetPayload.json +0 -81
- package/es/mocks/roomShapePayload.json +0 -5
- package/es/useAppContext.js +0 -8
- package/lib/mocks/appliancePayload.json +0 -27
- package/lib/mocks/cabinetPayload.json +0 -1914
- package/lib/mocks/cabinetPayload2.json +0 -76
- package/lib/mocks/dataBundle2.json +0 -4
- package/lib/mocks/distancePayload.json +0 -6
- package/lib/mocks/doorStylePayload2.json +0 -84
- package/lib/mocks/furnishingPayload.json +0 -23
- package/lib/mocks/itemCDSPayload.json +0 -27
- package/lib/mocks/lightingPayload.json +0 -23
- package/lib/mocks/mockProps.json +0 -43
- package/lib/mocks/mockProps2.json +0 -9
- package/lib/mocks/moldingPayload.json +0 -19
- package/lib/mocks/projectItemsCatalog.json +0 -133
- package/lib/mocks/rectangleShape.json +0 -238
- package/lib/mocks/replaceCabinetPayload.json +0 -81
- package/lib/mocks/roomShapePayload.json +0 -5
- package/lib/useAppContext.js +0 -16
package/README.md
CHANGED
|
@@ -44,12 +44,15 @@ You need to check **webpack.config.js** to change the API server.
|
|
|
44
44
|
Webpack is used as the module bundler. The source code is in the **src** folder.
|
|
45
45
|
|
|
46
46
|
entry: {
|
|
47
|
+
// app: './src/renderer.jsx', // For production build WITH API
|
|
47
48
|
app: './src/devLiteRenderer.jsx', // For development of LiteRenderer
|
|
48
49
|
vendor: VENDORS_LIBRARIES
|
|
49
50
|
},
|
|
50
51
|
|
|
51
52
|
- **index.html**: The main HTML file.
|
|
52
53
|
|
|
54
|
+
- **[renderer.jsx](src/renderer.jsx)**: The main JavaScript file that bootstraps the React application. WTH API CALLS
|
|
55
|
+
|
|
53
56
|
- **[devLiteRenderer.jsx](src/devLiteRenderer.jsx).jsx**: The main JavaScript file that bootstraps the React application. For development lite version without API calls. WITH MOCKS
|
|
54
57
|
- **[LiteRenderer.js](src/LiteRenderer.js)**: The Lite React component that uses mock data and creates the store / catalog etc
|
|
55
58
|
- [LiteKitchenConfigurator.jsx](src/LiteKitchenConfigurator.jsx)
|
package/es/AppContext.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
3
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
5
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
6
6
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
7
7
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
8
8
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
9
9
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
10
|
-
|
|
10
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
11
|
+
var _excluded = ["width", "height", "extractedState"];
|
|
12
|
+
var _templateObject, _templateObject2;
|
|
11
13
|
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; }
|
|
12
14
|
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) { _defineProperty(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; }
|
|
13
15
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
14
16
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
|
+
// LiteKitchenConfigurator.jsx
|
|
18
|
+
import styled from 'styled-components';
|
|
15
19
|
import { convert } from "./utils/convert-units-lite";
|
|
16
20
|
import PropTypes from 'prop-types';
|
|
17
21
|
import React, { Component } from 'react';
|
|
@@ -26,20 +30,21 @@ import Translator from "./translator/translator";
|
|
|
26
30
|
import { objectsMap } from "./utils/objects-utils";
|
|
27
31
|
import { VERSION } from "./version";
|
|
28
32
|
import { handleExternalEvent } from "./utils/isolate-event-handler";
|
|
29
|
-
import AppContext from "./AppContext";
|
|
30
33
|
var toolbarW = 0;
|
|
31
34
|
var wrapperStyle = {
|
|
32
35
|
display: 'flex',
|
|
33
36
|
flexFlow: 'row nowrap'
|
|
34
37
|
};
|
|
38
|
+
var WarningItem = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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"])));
|
|
39
|
+
var SubCategoryItemImage = styled.img(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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) {
|
|
40
|
+
return props.maskImage + '?nocache=2025';
|
|
41
|
+
});
|
|
35
42
|
var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
36
43
|
function LiteKitchenConfigurator(props) {
|
|
37
44
|
var _utmRequestData2, _utmRequestData3, _utmRequestData4, _utmRequestData5, _utmRequestData6, _utmRequestData7, _utmRequestData8, _utmRequestData9, _utmRequestData0;
|
|
38
45
|
var _this;
|
|
39
46
|
_classCallCheck(this, LiteKitchenConfigurator);
|
|
40
47
|
_this = _callSuper(this, LiteKitchenConfigurator, [props]);
|
|
41
|
-
|
|
42
|
-
// utm tracking
|
|
43
48
|
var utmDetailParams = new URLSearchParams(_this.props.location && _this.props.location.search);
|
|
44
49
|
var utmStrEncoded = utmDetailParams.get('details');
|
|
45
50
|
var utmRequestData = null;
|
|
@@ -49,7 +54,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
49
54
|
utmRequestData = JSON.parse(base64Decode(utmStrEncoded));
|
|
50
55
|
utmRequestData = JSON.parse((_utmRequestData = utmRequestData) === null || _utmRequestData === void 0 ? void 0 : _utmRequestData.utm);
|
|
51
56
|
} catch (e) {
|
|
52
|
-
console.error('Cannot parse utm parameter: ',
|
|
57
|
+
console.error('Cannot parse utm parameter: ', e);
|
|
53
58
|
utmRequestData = null;
|
|
54
59
|
}
|
|
55
60
|
}
|
|
@@ -68,7 +73,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
68
73
|
myProjectsOpen: false,
|
|
69
74
|
myProjectsToLogin: false,
|
|
70
75
|
downloadPopupVisible: false,
|
|
71
|
-
// For Toolbar Item
|
|
72
76
|
toolbar: '',
|
|
73
77
|
reviewQuotePopupOpened: false,
|
|
74
78
|
floorOpened: false,
|
|
@@ -86,8 +90,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
86
90
|
isSaved: false,
|
|
87
91
|
isLeaving: false
|
|
88
92
|
};
|
|
89
|
-
|
|
90
|
-
// For UTM tracking
|
|
91
93
|
_this.utm = {
|
|
92
94
|
utm_source: ((_utmRequestData2 = utmRequestData) === null || _utmRequestData2 === void 0 ? void 0 : _utmRequestData2.source) || 'source',
|
|
93
95
|
utm_medium: ((_utmRequestData3 = utmRequestData) === null || _utmRequestData3 === void 0 ? void 0 : _utmRequestData3.medium) || 'medium',
|
|
@@ -118,10 +120,13 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
118
120
|
_this.setDownloadPopupVisible = _this.setDownloadPopupVisible.bind(_this);
|
|
119
121
|
_this.neverShowInput = /*#__PURE__*/React.createRef(null);
|
|
120
122
|
_this.setShowProperty = _this.setShowProperty.bind(_this);
|
|
123
|
+
|
|
124
|
+
// cache for viewer2D init so we don't allocate merges every render
|
|
125
|
+
_this._lastExtractedStateRef = null;
|
|
126
|
+
_this._cachedViewer2DKey = null;
|
|
127
|
+
_this._cachedExtractedState = null;
|
|
121
128
|
return _this;
|
|
122
129
|
}
|
|
123
|
-
|
|
124
|
-
// Toolbar control functions
|
|
125
130
|
_inherits(LiteKitchenConfigurator, _Component);
|
|
126
131
|
return _createClass(LiteKitchenConfigurator, [{
|
|
127
132
|
key: "setToolbar",
|
|
@@ -205,26 +210,32 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
205
210
|
}, {
|
|
206
211
|
key: "openFloor",
|
|
207
212
|
value: function openFloor() {
|
|
213
|
+
var _el$parentElement;
|
|
208
214
|
this.setState({
|
|
209
215
|
floorOpened: true
|
|
210
216
|
});
|
|
211
|
-
document.getElementById('make_floorplan_inactive')
|
|
217
|
+
var el = document.getElementById('make_floorplan_inactive');
|
|
218
|
+
if (el !== null && el !== void 0 && (_el$parentElement = el.parentElement) !== null && _el$parentElement !== void 0 && _el$parentElement.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
212
219
|
}
|
|
213
220
|
}, {
|
|
214
221
|
key: "openCabinet",
|
|
215
222
|
value: function openCabinet() {
|
|
223
|
+
var _el$parentElement2;
|
|
216
224
|
this.setState({
|
|
217
225
|
cabinetOpened: true
|
|
218
226
|
});
|
|
219
|
-
document.getElementById('add_cabinets_inactive')
|
|
227
|
+
var el = document.getElementById('add_cabinets_inactive');
|
|
228
|
+
if (el !== null && el !== void 0 && (_el$parentElement2 = el.parentElement) !== null && _el$parentElement2 !== void 0 && _el$parentElement2.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
220
229
|
}
|
|
221
230
|
}, {
|
|
222
231
|
key: "toggleDoorStyle",
|
|
223
232
|
value: function toggleDoorStyle(visible) {
|
|
233
|
+
var _el$parentElement3;
|
|
224
234
|
this.setState({
|
|
225
235
|
doorStyleOpen: visible
|
|
226
236
|
});
|
|
227
|
-
document.getElementById('select_doorstyle_inactive')
|
|
237
|
+
var el = document.getElementById('select_doorstyle_inactive');
|
|
238
|
+
if (el !== null && el !== void 0 && (_el$parentElement3 = el.parentElement) !== null && _el$parentElement3 !== void 0 && _el$parentElement3.parentElement) el.parentElement.parentElement.style.zIndex = visible ? 999 : 6;
|
|
228
239
|
}
|
|
229
240
|
}, {
|
|
230
241
|
key: "replaceCabinet",
|
|
@@ -236,70 +247,83 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
236
247
|
}, {
|
|
237
248
|
key: "openAppliance",
|
|
238
249
|
value: function openAppliance() {
|
|
250
|
+
var _el$parentElement4;
|
|
239
251
|
this.setState({
|
|
240
252
|
applianceOpened: true
|
|
241
253
|
});
|
|
242
|
-
document.getElementById('add_appliances_inactive')
|
|
254
|
+
var el = document.getElementById('add_appliances_inactive');
|
|
255
|
+
if (el !== null && el !== void 0 && (_el$parentElement4 = el.parentElement) !== null && _el$parentElement4 !== void 0 && _el$parentElement4.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
243
256
|
}
|
|
244
257
|
}, {
|
|
245
258
|
key: "openFinishing",
|
|
246
259
|
value: function openFinishing() {
|
|
260
|
+
var _el$parentElement5;
|
|
247
261
|
this.setState({
|
|
248
262
|
finishingOpened: true
|
|
249
263
|
});
|
|
250
|
-
document.getElementById('finishing_touches_inactive')
|
|
264
|
+
var el = document.getElementById('finishing_touches_inactive');
|
|
265
|
+
if (el !== null && el !== void 0 && (_el$parentElement5 = el.parentElement) !== null && _el$parentElement5 !== void 0 && _el$parentElement5.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
251
266
|
}
|
|
252
267
|
}, {
|
|
253
268
|
key: "onReviewQuoteClicked",
|
|
254
269
|
value: function onReviewQuoteClicked(visible) {
|
|
270
|
+
var _el$parentElement6;
|
|
255
271
|
this.setState({
|
|
256
272
|
reviewQuotePopupOpened: visible
|
|
257
273
|
});
|
|
258
|
-
document.getElementById('review_quote_inactive')
|
|
274
|
+
var el = document.getElementById('review_quote_inactive');
|
|
275
|
+
if (el !== null && el !== void 0 && (_el$parentElement6 = el.parentElement) !== null && _el$parentElement6 !== void 0 && _el$parentElement6.parentElement) el.parentElement.parentElement.style.zIndex = visible ? 999 : 6;
|
|
259
276
|
}
|
|
260
277
|
}, {
|
|
261
278
|
key: "closeFloorTB",
|
|
262
279
|
value: function closeFloorTB() {
|
|
280
|
+
var _el$parentElement7;
|
|
263
281
|
this.setState({
|
|
264
282
|
floorOpened: false
|
|
265
283
|
});
|
|
266
|
-
|
|
284
|
+
var el = document.getElementById('make_floorplan_inactive');
|
|
285
|
+
if (el !== null && el !== void 0 && (_el$parentElement7 = el.parentElement) !== null && _el$parentElement7 !== void 0 && _el$parentElement7.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
267
286
|
}
|
|
268
287
|
}, {
|
|
269
288
|
key: "closeCabinetTB",
|
|
270
289
|
value: function closeCabinetTB() {
|
|
290
|
+
var _el$parentElement8;
|
|
271
291
|
this.setState({
|
|
272
292
|
cabinetOpened: false
|
|
273
293
|
});
|
|
274
|
-
document.getElementById('add_cabinets_inactive')
|
|
294
|
+
var el = document.getElementById('add_cabinets_inactive');
|
|
295
|
+
if (el !== null && el !== void 0 && (_el$parentElement8 = el.parentElement) !== null && _el$parentElement8 !== void 0 && _el$parentElement8.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
275
296
|
}
|
|
276
297
|
}, {
|
|
277
298
|
key: "closeFinishingTB",
|
|
278
299
|
value: function closeFinishingTB() {
|
|
300
|
+
var _el$parentElement9;
|
|
279
301
|
this.setState({
|
|
280
302
|
finishingOpened: false
|
|
281
303
|
});
|
|
282
|
-
document.getElementById('finishing_touches_inactive')
|
|
304
|
+
var el = document.getElementById('finishing_touches_inactive');
|
|
305
|
+
if (el !== null && el !== void 0 && (_el$parentElement9 = el.parentElement) !== null && _el$parentElement9 !== void 0 && _el$parentElement9.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
283
306
|
}
|
|
284
307
|
}, {
|
|
285
308
|
key: "closeApplianceTB",
|
|
286
309
|
value: function closeApplianceTB() {
|
|
310
|
+
var _el$parentElement0;
|
|
287
311
|
this.setState({
|
|
288
312
|
applianceOpened: false
|
|
289
313
|
});
|
|
290
|
-
document.getElementById('add_appliances_inactive')
|
|
291
|
-
|
|
292
|
-
}, {
|
|
293
|
-
key: "closeDoorstyle",
|
|
294
|
-
value: function closeDoorstyle() {
|
|
295
|
-
this.setState({});
|
|
296
|
-
document.getElementById('select_doorstyle_inactive').parentElement.parentElement.style.zIndex = 6;
|
|
314
|
+
var el = document.getElementById('add_appliances_inactive');
|
|
315
|
+
if (el !== null && el !== void 0 && (_el$parentElement0 = el.parentElement) !== null && _el$parentElement0 !== void 0 && _el$parentElement0.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
297
316
|
}
|
|
298
317
|
}, {
|
|
299
|
-
key: "
|
|
300
|
-
value: function
|
|
301
|
-
this
|
|
302
|
-
|
|
318
|
+
key: "getChildContext",
|
|
319
|
+
value: function getChildContext() {
|
|
320
|
+
var _this2 = this;
|
|
321
|
+
return _objectSpread(_objectSpread({}, objectsMap(actions, function (actionNamespace) {
|
|
322
|
+
return _this2.props[actionNamespace];
|
|
323
|
+
})), {}, {
|
|
324
|
+
translator: this.props.translator,
|
|
325
|
+
catalog: this.props.catalog
|
|
326
|
+
});
|
|
303
327
|
}
|
|
304
328
|
}, {
|
|
305
329
|
key: "componentDidMount",
|
|
@@ -309,30 +333,31 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
309
333
|
var _this$props = this.props,
|
|
310
334
|
stateExtractor = _this$props.stateExtractor,
|
|
311
335
|
plugins = _this$props.plugins;
|
|
336
|
+
|
|
337
|
+
// keep old behavior: run plugins once on mount
|
|
312
338
|
var newplugins = _toConsumableArray(plugins);
|
|
313
339
|
newplugins.forEach(function (newplugin) {
|
|
314
340
|
return newplugin(store, stateExtractor);
|
|
315
341
|
});
|
|
316
342
|
}
|
|
317
343
|
}, {
|
|
318
|
-
key: "
|
|
319
|
-
value: function
|
|
320
|
-
var
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
344
|
+
key: "componentDidUpdate",
|
|
345
|
+
value: function componentDidUpdate(prevProps) {
|
|
346
|
+
var _extractedState$getIn;
|
|
347
|
+
var _this$props2 = this.props,
|
|
348
|
+
externalEvent = _this$props2.externalEvent,
|
|
349
|
+
extractedState = _this$props2.extractedState,
|
|
350
|
+
projectActions = _this$props2.projectActions,
|
|
351
|
+
catalog = _this$props2.catalog;
|
|
326
352
|
|
|
327
|
-
// handle external
|
|
328
|
-
if (
|
|
329
|
-
handleExternalEvent(
|
|
330
|
-
}
|
|
331
|
-
var plannerState = stateExtractor(state);
|
|
332
|
-
var catalogReady = plannerState.getIn(['catalog', 'ready']);
|
|
333
|
-
if (!catalogReady) {
|
|
334
|
-
projectActions.initCatalog(catalog);
|
|
353
|
+
// same behavior: handle external event when it changes
|
|
354
|
+
if (prevProps.externalEvent !== externalEvent) {
|
|
355
|
+
handleExternalEvent(this.props);
|
|
335
356
|
}
|
|
357
|
+
|
|
358
|
+
// same behavior: init catalog until ready
|
|
359
|
+
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
|
+
if (!catalogReady) projectActions.initCatalog(catalog);
|
|
336
361
|
}
|
|
337
362
|
}, {
|
|
338
363
|
key: "isProjectEmpty",
|
|
@@ -342,24 +367,51 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
342
367
|
var layer = layers.get(selectedLayer);
|
|
343
368
|
return layer.areas.size + layer.lines.size + layer.holes.size + layer.items.size === 0;
|
|
344
369
|
}
|
|
370
|
+
}, {
|
|
371
|
+
key: "getExtractedStateWithViewer2DInit",
|
|
372
|
+
value: function getExtractedStateWithViewer2DInit(extractedState, width, height) {
|
|
373
|
+
if (!extractedState) return extractedState;
|
|
374
|
+
|
|
375
|
+
// ✅ If the extractedState reference changed, drop cache immediately.
|
|
376
|
+
if (this._lastExtractedStateRef !== extractedState) {
|
|
377
|
+
this._lastExtractedStateRef = extractedState;
|
|
378
|
+
this._cachedViewer2DKey = null;
|
|
379
|
+
this._cachedExtractedState = null;
|
|
380
|
+
}
|
|
381
|
+
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
382
|
+
if (!_viewer2D || _viewer2D.size <= 0) return extractedState;
|
|
383
|
+
var v = _viewer2D.toJS();
|
|
384
|
+
|
|
385
|
+
// Only do the "center viewer2D if e/f are zero" logic.
|
|
386
|
+
// ✅ No need to build keys from unrelated parts of state.
|
|
387
|
+
if (v.e !== 0 || v.f !== 0) return extractedState;
|
|
388
|
+
|
|
389
|
+
// Build a cache key ONLY for this viewer2D-centering computation.
|
|
390
|
+
var cacheKey = "".concat(width, ":").concat(height, ":").concat(v.viewerWidth, ":").concat(v.viewerHeight, ":").concat(v.SVGWidth, ":").concat(v.SVGHeight);
|
|
391
|
+
if (this._cachedViewer2DKey === cacheKey && this._cachedExtractedState) {
|
|
392
|
+
return this._cachedExtractedState;
|
|
393
|
+
}
|
|
394
|
+
var centeredViewer2D = _viewer2D.merge({
|
|
395
|
+
e: v.viewerWidth / 2 - v.SVGWidth / 2,
|
|
396
|
+
f: v.viewerHeight / 2 - v.SVGHeight / 2,
|
|
397
|
+
a: 0.99,
|
|
398
|
+
d: 0.99
|
|
399
|
+
});
|
|
400
|
+
var merged = extractedState.merge({
|
|
401
|
+
viewer2D: centeredViewer2D
|
|
402
|
+
});
|
|
403
|
+
this._cachedViewer2DKey = cacheKey;
|
|
404
|
+
this._cachedExtractedState = merged;
|
|
405
|
+
return merged;
|
|
406
|
+
}
|
|
345
407
|
}, {
|
|
346
408
|
key: "render",
|
|
347
409
|
value: function render() {
|
|
348
|
-
var
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
translator: this.props.translator,
|
|
354
|
-
// instance (defaultProps already gives one)
|
|
355
|
-
catalog: this.props.catalog
|
|
356
|
-
});
|
|
357
|
-
var _this$props2 = this.props,
|
|
358
|
-
width = _this$props2.width,
|
|
359
|
-
height = _this$props2.height,
|
|
360
|
-
state = _this$props2.state,
|
|
361
|
-
stateExtractor = _this$props2.stateExtractor,
|
|
362
|
-
props = _objectWithoutProperties(_this$props2, _excluded);
|
|
410
|
+
var _this$props3 = this.props,
|
|
411
|
+
width = _this$props3.width,
|
|
412
|
+
height = _this$props3.height,
|
|
413
|
+
extractedState = _this$props3.extractedState,
|
|
414
|
+
props = _objectWithoutProperties(_this$props3, _excluded);
|
|
363
415
|
var _this$state = this.state,
|
|
364
416
|
savePopupVisible = _this$state.savePopupVisible,
|
|
365
417
|
quotePopupVisible = _this$state.quotePopupVisible,
|
|
@@ -367,53 +419,22 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
367
419
|
signOpen = _this$state.signOpen,
|
|
368
420
|
myProjectsOpen = _this$state.myProjectsOpen;
|
|
369
421
|
var contentW = width - toolbarW;
|
|
370
|
-
// let contentW = width - toolbarW - sidebarW;
|
|
371
|
-
// let toolbarH = height - footerBarH;
|
|
372
|
-
// let contentH = height - footerBarH;
|
|
373
|
-
// let sidebarH = height - footerBarH;
|
|
374
|
-
var toolbarH = height;
|
|
375
422
|
var contentH = height;
|
|
376
|
-
var
|
|
377
|
-
var
|
|
378
|
-
var headerH = 60;
|
|
379
|
-
var extractedState = stateExtractor(state);
|
|
380
|
-
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extractedState.scene);
|
|
423
|
+
var extracted = this.getExtractedStateWithViewer2DInit(extractedState, width, height);
|
|
424
|
+
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extracted.scene);
|
|
381
425
|
var allVisible = firstVisit || signOpen || myProjectsOpen;
|
|
382
|
-
|
|
383
|
-
var len = convert(_scene.width).from(_scene.unit).to('cm');
|
|
384
|
-
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
385
|
-
if (_viewer2D.size > 0) {
|
|
386
|
-
var scaleX = width / len * 3;
|
|
387
|
-
var scaleY = height / len * 3;
|
|
388
|
-
var scale = scaleX > scaleY ? scaleY : scaleX;
|
|
389
|
-
var _e = width - len * scale,
|
|
390
|
-
_f = height - len * scale;
|
|
391
|
-
var viewer = _viewer2D.toJS();
|
|
392
|
-
if (viewer.e === 0 && viewer.f === 0) {
|
|
393
|
-
_viewer2D = _viewer2D.merge({
|
|
394
|
-
e: viewer.viewerWidth / 2 - viewer.SVGWidth / 2,
|
|
395
|
-
f: viewer.viewerHeight / 2 - viewer.SVGHeight / 2,
|
|
396
|
-
a: 0.99,
|
|
397
|
-
d: 0.99
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
extractedState = extractedState.merge({
|
|
402
|
-
viewer2D: _viewer2D
|
|
403
|
-
});
|
|
404
|
-
return /*#__PURE__*/React.createElement(AppContext.Provider, {
|
|
405
|
-
value: appCtxValue
|
|
406
|
-
}, /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement("div", {
|
|
426
|
+
return /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement("div", {
|
|
407
427
|
style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
|
|
408
428
|
height: height,
|
|
409
429
|
display: 'flex',
|
|
410
|
-
justifyContent: 'center'
|
|
430
|
+
justifyContent: 'center',
|
|
431
|
+
position: 'relative'
|
|
411
432
|
})
|
|
412
433
|
}, /*#__PURE__*/React.createElement(Content, _extends({
|
|
413
434
|
width: contentW,
|
|
414
435
|
height: contentH,
|
|
415
436
|
catalog: this.props.catalog,
|
|
416
|
-
state:
|
|
437
|
+
state: extracted,
|
|
417
438
|
toolBar: this.state.toolbar,
|
|
418
439
|
setToolbar: this.setToolbar,
|
|
419
440
|
replaceCabinet: this.replaceCabinet,
|
|
@@ -423,7 +444,20 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
423
444
|
return event.preventDefault();
|
|
424
445
|
},
|
|
425
446
|
onInternalEvent: this.props.onInternalEvent
|
|
426
|
-
}))
|
|
447
|
+
})), /*#__PURE__*/React.createElement(WarningItem, {
|
|
448
|
+
id: "warning_box_2d",
|
|
449
|
+
style: {
|
|
450
|
+
display: 'none'
|
|
451
|
+
}
|
|
452
|
+
}, /*#__PURE__*/React.createElement(SubCategoryItemImage, {
|
|
453
|
+
maskImage: "/assets/img/svg/3d_item_warning_info.svg",
|
|
454
|
+
style: {
|
|
455
|
+
backgroundColor: constants.BG_COLOR_1,
|
|
456
|
+
marginRight: 10,
|
|
457
|
+
height: 30,
|
|
458
|
+
width: 30
|
|
459
|
+
}
|
|
460
|
+
}), "This item is not available in the current door style. Replace it with another one.")));
|
|
427
461
|
}
|
|
428
462
|
}]);
|
|
429
463
|
}(Component);
|
|
@@ -437,13 +471,21 @@ LiteKitchenConfigurator.propTypes = {
|
|
|
437
471
|
width: PropTypes.number.isRequired,
|
|
438
472
|
height: PropTypes.number.isRequired,
|
|
439
473
|
stateExtractor: PropTypes.func.isRequired,
|
|
440
|
-
sidebarComponents: PropTypes.array,
|
|
441
|
-
footerbarComponents: PropTypes.array,
|
|
442
|
-
customContents: PropTypes.object,
|
|
443
|
-
softwareSignature: PropTypes.string,
|
|
444
474
|
configData: PropTypes.object,
|
|
445
|
-
onInternalEvent: PropTypes.func
|
|
475
|
+
onInternalEvent: PropTypes.func,
|
|
476
|
+
extractedState: PropTypes.object,
|
|
477
|
+
// ✅ injected by connect
|
|
478
|
+
externalEvent: PropTypes.object
|
|
446
479
|
};
|
|
480
|
+
LiteKitchenConfigurator.contextTypes = {
|
|
481
|
+
store: PropTypes.object.isRequired
|
|
482
|
+
};
|
|
483
|
+
LiteKitchenConfigurator.childContextTypes = _objectSpread(_objectSpread({}, objectsMap(actions, function () {
|
|
484
|
+
return PropTypes.object;
|
|
485
|
+
})), {}, {
|
|
486
|
+
translator: PropTypes.object,
|
|
487
|
+
catalog: PropTypes.object
|
|
488
|
+
});
|
|
447
489
|
LiteKitchenConfigurator.defaultProps = {
|
|
448
490
|
translator: new Translator(),
|
|
449
491
|
catalog: new Catalog(),
|
|
@@ -456,10 +498,16 @@ LiteKitchenConfigurator.defaultProps = {
|
|
|
456
498
|
configData: {}
|
|
457
499
|
};
|
|
458
500
|
|
|
459
|
-
//
|
|
460
|
-
|
|
501
|
+
// ✅ Only select the slice you actually use.
|
|
502
|
+
// This preserves behavior but massively reduces rerenders.
|
|
503
|
+
function mapStateToProps(reduxState, ownProps) {
|
|
504
|
+
var stateExtractor = ownProps.stateExtractor || function (s) {
|
|
505
|
+
return s;
|
|
506
|
+
};
|
|
507
|
+
var extractedState = stateExtractor(reduxState);
|
|
461
508
|
return {
|
|
462
|
-
|
|
509
|
+
extractedState: extractedState,
|
|
510
|
+
state: extractedState
|
|
463
511
|
};
|
|
464
512
|
}
|
|
465
513
|
function mapDispatchToProps(dispatch) {
|