kitchen-simulator 4.1.7-react-18 → 4.2.1
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 +171 -111
- package/es/LiteRenderer.js +161 -129
- package/es/actions/export.js +25 -12
- package/es/actions/project-actions.js +2 -1
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/svg/bottombar/elevation.svg +12 -5
- package/es/catalog/catalog.js +21 -5
- package/es/catalog/factories/area-factory-3d.js +17 -17
- package/es/catalog/factories/wall-factory.js +1 -1
- 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 +24 -11
- package/es/catalog/utils/item-loader.js +224 -220
- package/es/class/hole.js +0 -2
- package/es/class/item.js +92 -70
- package/es/class/layer.js +1 -1
- package/es/class/line.js +4 -8
- package/es/class/project.js +96 -81
- package/es/components/content.js +10 -93
- 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 +29 -29
- 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/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/group.js +5 -4
- package/es/components/viewer2d/item.js +155 -359
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +22 -54
- package/es/components/viewer2d/ruler.js +16 -11
- package/es/components/viewer2d/rulerDist.js +38 -51
- package/es/components/viewer2d/rulerX.js +4 -2
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +17 -12
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/vertex.js +3 -2
- package/es/components/viewer2d/viewer2d.js +81 -118
- package/es/components/viewer3d/front3D.js +13 -1
- package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/es/components/viewer3d/scene-creator.js +270 -69
- package/es/components/viewer3d/viewer3d-first-person.js +26 -32
- package/es/components/viewer3d/viewer3d.js +110 -130
- package/es/constants.js +7 -2
- package/es/devLiteRenderer.js +491 -150
- package/es/index.js +589 -62
- package/es/models.js +13 -8
- package/es/plugins/SVGLoader.js +1414 -0
- package/es/plugins/console-debugger.js +34 -0
- package/es/plugins/export.js +7 -0
- package/es/plugins/keyboard.js +110 -0
- package/es/reducers/project-reducer.js +4 -1
- package/es/reducers/viewer2d-reducer.js +3 -1
- package/es/reducers/viewer3d-reducer.js +3 -1
- package/es/styles/export.js +5 -0
- package/es/styles/tabs.css +40 -0
- package/es/utils/geometry.js +77 -119
- package/es/utils/helper.js +38 -1
- package/es/utils/isolate-event-handler.js +829 -609
- package/es/utils/molding.js +459 -11
- package/es/utils/ruler.js +58 -0
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +170 -111
- package/lib/LiteRenderer.js +160 -129
- package/lib/actions/export.js +35 -39
- package/lib/actions/project-actions.js +2 -1
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
- package/lib/catalog/catalog.js +20 -4
- package/lib/catalog/factories/area-factory-3d.js +14 -14
- package/lib/catalog/factories/wall-factory.js +1 -1
- 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 +24 -11
- package/lib/catalog/utils/item-loader.js +221 -217
- package/lib/class/hole.js +0 -2
- package/lib/class/item.js +90 -68
- package/lib/class/layer.js +1 -1
- package/lib/class/line.js +3 -7
- package/lib/class/project.js +96 -81
- package/lib/components/content.js +10 -93
- 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 +29 -29
- 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/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/group.js +5 -4
- package/lib/components/viewer2d/item.js +152 -356
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +22 -54
- package/lib/components/viewer2d/ruler.js +15 -10
- package/lib/components/viewer2d/rulerDist.js +38 -51
- package/lib/components/viewer2d/rulerX.js +4 -2
- package/lib/components/viewer2d/rulerY.js +3 -0
- package/lib/components/viewer2d/scene.js +17 -12
- package/lib/components/viewer2d/state.js +1 -1
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/vertex.js +3 -2
- package/lib/components/viewer2d/viewer2d.js +79 -115
- package/lib/components/viewer3d/front3D.js +13 -1
- package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/lib/components/viewer3d/scene-creator.js +267 -66
- package/lib/components/viewer3d/viewer3d-first-person.js +26 -32
- package/lib/components/viewer3d/viewer3d.js +107 -126
- package/lib/constants.js +12 -7
- package/lib/devLiteRenderer.js +489 -148
- package/lib/index.js +591 -62
- package/lib/models.js +13 -8
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +42 -0
- package/lib/plugins/export.js +25 -0
- package/lib/plugins/keyboard.js +117 -0
- package/lib/reducers/project-reducer.js +4 -1
- package/lib/reducers/viewer2d-reducer.js +3 -1
- package/lib/reducers/viewer3d-reducer.js +3 -1
- package/lib/styles/export.js +13 -0
- package/lib/styles/tabs.css +40 -0
- package/lib/utils/geometry.js +77 -119
- package/lib/utils/helper.js +40 -1
- package/lib/utils/isolate-event-handler.js +829 -608
- package/lib/utils/molding.js +460 -9
- package/lib/utils/ruler.js +63 -0
- package/package.json +21 -20
- 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,16 +1,21 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
5
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
5
6
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
7
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
7
8
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
8
9
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
9
|
-
|
|
10
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
11
|
+
var _excluded = ["width", "height", "extractedState"];
|
|
12
|
+
var _templateObject, _templateObject2;
|
|
10
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; }
|
|
11
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; }
|
|
12
15
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
13
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';
|
|
14
19
|
import { convert } from "./utils/convert-units-lite";
|
|
15
20
|
import PropTypes from 'prop-types';
|
|
16
21
|
import React, { Component } from 'react';
|
|
@@ -25,20 +30,21 @@ import Translator from "./translator/translator";
|
|
|
25
30
|
import { objectsMap } from "./utils/objects-utils";
|
|
26
31
|
import { VERSION } from "./version";
|
|
27
32
|
import { handleExternalEvent } from "./utils/isolate-event-handler";
|
|
28
|
-
import AppContext from "./AppContext";
|
|
29
33
|
var toolbarW = 0;
|
|
30
34
|
var wrapperStyle = {
|
|
31
35
|
display: 'flex',
|
|
32
36
|
flexFlow: 'row nowrap'
|
|
33
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
|
+
});
|
|
34
42
|
var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
35
43
|
function LiteKitchenConfigurator(props) {
|
|
36
44
|
var _utmRequestData2, _utmRequestData3, _utmRequestData4, _utmRequestData5, _utmRequestData6, _utmRequestData7, _utmRequestData8, _utmRequestData9, _utmRequestData0;
|
|
37
45
|
var _this;
|
|
38
46
|
_classCallCheck(this, LiteKitchenConfigurator);
|
|
39
47
|
_this = _callSuper(this, LiteKitchenConfigurator, [props]);
|
|
40
|
-
|
|
41
|
-
// utm tracking
|
|
42
48
|
var utmDetailParams = new URLSearchParams(_this.props.location && _this.props.location.search);
|
|
43
49
|
var utmStrEncoded = utmDetailParams.get('details');
|
|
44
50
|
var utmRequestData = null;
|
|
@@ -48,7 +54,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
48
54
|
utmRequestData = JSON.parse(base64Decode(utmStrEncoded));
|
|
49
55
|
utmRequestData = JSON.parse((_utmRequestData = utmRequestData) === null || _utmRequestData === void 0 ? void 0 : _utmRequestData.utm);
|
|
50
56
|
} catch (e) {
|
|
51
|
-
console.error('Cannot parse utm parameter: ',
|
|
57
|
+
console.error('Cannot parse utm parameter: ', e);
|
|
52
58
|
utmRequestData = null;
|
|
53
59
|
}
|
|
54
60
|
}
|
|
@@ -67,7 +73,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
67
73
|
myProjectsOpen: false,
|
|
68
74
|
myProjectsToLogin: false,
|
|
69
75
|
downloadPopupVisible: false,
|
|
70
|
-
// For Toolbar Item
|
|
71
76
|
toolbar: '',
|
|
72
77
|
reviewQuotePopupOpened: false,
|
|
73
78
|
floorOpened: false,
|
|
@@ -85,8 +90,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
85
90
|
isSaved: false,
|
|
86
91
|
isLeaving: false
|
|
87
92
|
};
|
|
88
|
-
|
|
89
|
-
// For UTM tracking
|
|
90
93
|
_this.utm = {
|
|
91
94
|
utm_source: ((_utmRequestData2 = utmRequestData) === null || _utmRequestData2 === void 0 ? void 0 : _utmRequestData2.source) || 'source',
|
|
92
95
|
utm_medium: ((_utmRequestData3 = utmRequestData) === null || _utmRequestData3 === void 0 ? void 0 : _utmRequestData3.medium) || 'medium',
|
|
@@ -108,6 +111,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
108
111
|
_this.closeCabinetTB = _this.closeCabinetTB.bind(_this);
|
|
109
112
|
_this.closeFinishingTB = _this.closeFinishingTB.bind(_this);
|
|
110
113
|
_this.closeApplianceTB = _this.closeApplianceTB.bind(_this);
|
|
114
|
+
_this.setToolbar = _this.setToolbar.bind(_this);
|
|
111
115
|
_this.replaceCabinet = _this.replaceCabinet.bind(_this);
|
|
112
116
|
_this.setSubmitToSave = _this.setSubmitToSave.bind(_this);
|
|
113
117
|
_this.setSignOpen = _this.setSignOpen.bind(_this);
|
|
@@ -116,12 +120,22 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
116
120
|
_this.setDownloadPopupVisible = _this.setDownloadPopupVisible.bind(_this);
|
|
117
121
|
_this.neverShowInput = /*#__PURE__*/React.createRef(null);
|
|
118
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;
|
|
119
128
|
return _this;
|
|
120
129
|
}
|
|
121
|
-
|
|
122
|
-
// Toolbar control functions
|
|
123
130
|
_inherits(LiteKitchenConfigurator, _Component);
|
|
124
131
|
return _createClass(LiteKitchenConfigurator, [{
|
|
132
|
+
key: "setToolbar",
|
|
133
|
+
value: function setToolbar(toolBarKey) {
|
|
134
|
+
this.setState({
|
|
135
|
+
toolbar: toolBarKey
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}, {
|
|
125
139
|
key: "setShowProperty",
|
|
126
140
|
value: function setShowProperty(value) {
|
|
127
141
|
this.setState({
|
|
@@ -196,26 +210,32 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
196
210
|
}, {
|
|
197
211
|
key: "openFloor",
|
|
198
212
|
value: function openFloor() {
|
|
213
|
+
var _el$parentElement;
|
|
199
214
|
this.setState({
|
|
200
215
|
floorOpened: true
|
|
201
216
|
});
|
|
202
|
-
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;
|
|
203
219
|
}
|
|
204
220
|
}, {
|
|
205
221
|
key: "openCabinet",
|
|
206
222
|
value: function openCabinet() {
|
|
223
|
+
var _el$parentElement2;
|
|
207
224
|
this.setState({
|
|
208
225
|
cabinetOpened: true
|
|
209
226
|
});
|
|
210
|
-
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;
|
|
211
229
|
}
|
|
212
230
|
}, {
|
|
213
231
|
key: "toggleDoorStyle",
|
|
214
232
|
value: function toggleDoorStyle(visible) {
|
|
233
|
+
var _el$parentElement3;
|
|
215
234
|
this.setState({
|
|
216
235
|
doorStyleOpen: visible
|
|
217
236
|
});
|
|
218
|
-
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;
|
|
219
239
|
}
|
|
220
240
|
}, {
|
|
221
241
|
key: "replaceCabinet",
|
|
@@ -227,101 +247,117 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
227
247
|
}, {
|
|
228
248
|
key: "openAppliance",
|
|
229
249
|
value: function openAppliance() {
|
|
250
|
+
var _el$parentElement4;
|
|
230
251
|
this.setState({
|
|
231
252
|
applianceOpened: true
|
|
232
253
|
});
|
|
233
|
-
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;
|
|
234
256
|
}
|
|
235
257
|
}, {
|
|
236
258
|
key: "openFinishing",
|
|
237
259
|
value: function openFinishing() {
|
|
260
|
+
var _el$parentElement5;
|
|
238
261
|
this.setState({
|
|
239
262
|
finishingOpened: true
|
|
240
263
|
});
|
|
241
|
-
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;
|
|
242
266
|
}
|
|
243
267
|
}, {
|
|
244
268
|
key: "onReviewQuoteClicked",
|
|
245
269
|
value: function onReviewQuoteClicked(visible) {
|
|
270
|
+
var _el$parentElement6;
|
|
246
271
|
this.setState({
|
|
247
272
|
reviewQuotePopupOpened: visible
|
|
248
273
|
});
|
|
249
|
-
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;
|
|
250
276
|
}
|
|
251
277
|
}, {
|
|
252
278
|
key: "closeFloorTB",
|
|
253
279
|
value: function closeFloorTB() {
|
|
280
|
+
var _el$parentElement7;
|
|
254
281
|
this.setState({
|
|
255
282
|
floorOpened: false
|
|
256
283
|
});
|
|
257
|
-
|
|
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;
|
|
258
286
|
}
|
|
259
287
|
}, {
|
|
260
288
|
key: "closeCabinetTB",
|
|
261
289
|
value: function closeCabinetTB() {
|
|
290
|
+
var _el$parentElement8;
|
|
262
291
|
this.setState({
|
|
263
292
|
cabinetOpened: false
|
|
264
293
|
});
|
|
265
|
-
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;
|
|
266
296
|
}
|
|
267
297
|
}, {
|
|
268
298
|
key: "closeFinishingTB",
|
|
269
299
|
value: function closeFinishingTB() {
|
|
300
|
+
var _el$parentElement9;
|
|
270
301
|
this.setState({
|
|
271
302
|
finishingOpened: false
|
|
272
303
|
});
|
|
273
|
-
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;
|
|
274
306
|
}
|
|
275
307
|
}, {
|
|
276
308
|
key: "closeApplianceTB",
|
|
277
309
|
value: function closeApplianceTB() {
|
|
310
|
+
var _el$parentElement0;
|
|
278
311
|
this.setState({
|
|
279
312
|
applianceOpened: false
|
|
280
313
|
});
|
|
281
|
-
document.getElementById('add_appliances_inactive')
|
|
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;
|
|
282
316
|
}
|
|
283
317
|
}, {
|
|
284
|
-
key: "
|
|
285
|
-
value: function
|
|
286
|
-
this
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
document.getElementById('review_quote_inactive').parentElement.parentElement.style.zIndex = 6;
|
|
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
|
+
});
|
|
294
327
|
}
|
|
295
328
|
}, {
|
|
296
329
|
key: "componentDidMount",
|
|
297
330
|
value: function componentDidMount() {
|
|
298
331
|
window.forRedo = [];
|
|
332
|
+
var store = this.context.store;
|
|
333
|
+
var _this$props = this.props,
|
|
334
|
+
stateExtractor = _this$props.stateExtractor,
|
|
335
|
+
plugins = _this$props.plugins;
|
|
336
|
+
|
|
337
|
+
// keep old behavior: run plugins once on mount
|
|
338
|
+
var newplugins = _toConsumableArray(plugins);
|
|
339
|
+
newplugins.forEach(function (newplugin) {
|
|
340
|
+
return newplugin(store, stateExtractor);
|
|
341
|
+
});
|
|
299
342
|
}
|
|
300
343
|
}, {
|
|
301
344
|
key: "componentDidUpdate",
|
|
302
345
|
value: function componentDidUpdate(prevProps) {
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if (
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
if (prevProps.externalEvent !== externalEvent && externalEvent) {
|
|
315
|
-
var _externalEvent$id, _externalEvent$payloa, _externalEvent$payloa2;
|
|
316
|
-
var key = (_externalEvent$id = externalEvent.id) !== null && _externalEvent$id !== void 0 ? _externalEvent$id : JSON.stringify({
|
|
317
|
-
type: externalEvent.type,
|
|
318
|
-
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
|
|
319
|
-
});
|
|
320
|
-
if (key !== this.lastHandledExternalEventKey) {
|
|
321
|
-
this.lastHandledExternalEventKey = key;
|
|
322
|
-
handleExternalEvent(this.props);
|
|
323
|
-
}
|
|
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;
|
|
352
|
+
|
|
353
|
+
// same behavior: handle external event when it changes
|
|
354
|
+
if (prevProps.externalEvent !== externalEvent) {
|
|
355
|
+
handleExternalEvent(this.props);
|
|
324
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);
|
|
325
361
|
}
|
|
326
362
|
}, {
|
|
327
363
|
key: "isProjectEmpty",
|
|
@@ -331,23 +367,51 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
331
367
|
var layer = layers.get(selectedLayer);
|
|
332
368
|
return layer.areas.size + layer.lines.size + layer.holes.size + layer.items.size === 0;
|
|
333
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
|
+
}
|
|
334
407
|
}, {
|
|
335
408
|
key: "render",
|
|
336
409
|
value: function render() {
|
|
337
|
-
var
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
stateExtractor = _this$props2.stateExtractor,
|
|
343
|
-
props = _objectWithoutProperties(_this$props2, _excluded);
|
|
344
|
-
var actionsFromProps = objectsMap(actions, function (ns) {
|
|
345
|
-
return _this2.props[ns];
|
|
346
|
-
});
|
|
347
|
-
var appCtxValue = _objectSpread(_objectSpread({}, actionsFromProps), {}, {
|
|
348
|
-
translator: this.props.translator,
|
|
349
|
-
catalog: this.props.catalog
|
|
350
|
-
});
|
|
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);
|
|
351
415
|
var _this$state = this.state,
|
|
352
416
|
savePopupVisible = _this$state.savePopupVisible,
|
|
353
417
|
quotePopupVisible = _this$state.quotePopupVisible,
|
|
@@ -355,43 +419,11 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
355
419
|
signOpen = _this$state.signOpen,
|
|
356
420
|
myProjectsOpen = _this$state.myProjectsOpen;
|
|
357
421
|
var contentW = width - toolbarW;
|
|
358
|
-
// let contentW = width - toolbarW - sidebarW;
|
|
359
|
-
// let toolbarH = height - footerBarH;
|
|
360
|
-
// let contentH = height - footerBarH;
|
|
361
|
-
// let sidebarH = height - footerBarH;
|
|
362
|
-
var toolbarH = height;
|
|
363
422
|
var contentH = height;
|
|
364
|
-
var
|
|
365
|
-
var
|
|
366
|
-
var headerH = 60;
|
|
367
|
-
var extractedState = stateExtractor(state);
|
|
368
|
-
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);
|
|
369
425
|
var allVisible = firstVisit || signOpen || myProjectsOpen;
|
|
370
|
-
|
|
371
|
-
var len = convert(_scene.width).from(_scene.unit).to('cm');
|
|
372
|
-
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
373
|
-
if (_viewer2D.size > 0) {
|
|
374
|
-
var scaleX = width / len * 3;
|
|
375
|
-
var scaleY = height / len * 3;
|
|
376
|
-
var scale = scaleX > scaleY ? scaleY : scaleX;
|
|
377
|
-
var _e = width - len * scale,
|
|
378
|
-
_f = height - len * scale;
|
|
379
|
-
var viewer = _viewer2D.toJS();
|
|
380
|
-
if (viewer.e === 0 && viewer.f === 0) {
|
|
381
|
-
_viewer2D = _viewer2D.merge({
|
|
382
|
-
e: viewer.viewerWidth / 2 - viewer.SVGWidth / 2,
|
|
383
|
-
f: viewer.viewerHeight / 2 - viewer.SVGHeight / 2,
|
|
384
|
-
a: 0.99,
|
|
385
|
-
d: 0.99
|
|
386
|
-
});
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
extractedState = extractedState.merge({
|
|
390
|
-
viewer2D: _viewer2D
|
|
391
|
-
});
|
|
392
|
-
return /*#__PURE__*/React.createElement(AppContext.Provider, {
|
|
393
|
-
value: appCtxValue
|
|
394
|
-
}, /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement("div", {
|
|
426
|
+
return /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement("div", {
|
|
395
427
|
style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
|
|
396
428
|
height: height,
|
|
397
429
|
display: 'flex',
|
|
@@ -402,8 +434,9 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
402
434
|
width: contentW,
|
|
403
435
|
height: contentH,
|
|
404
436
|
catalog: this.props.catalog,
|
|
405
|
-
state:
|
|
437
|
+
state: extracted,
|
|
406
438
|
toolBar: this.state.toolbar,
|
|
439
|
+
setToolbar: this.setToolbar,
|
|
407
440
|
replaceCabinet: this.replaceCabinet,
|
|
408
441
|
keyDownEnable: !savePopupVisible && !quotePopupVisible && !assistPopupVisible
|
|
409
442
|
}, props, {
|
|
@@ -411,7 +444,20 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
411
444
|
return event.preventDefault();
|
|
412
445
|
},
|
|
413
446
|
onInternalEvent: this.props.onInternalEvent
|
|
414
|
-
}))
|
|
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.")));
|
|
415
461
|
}
|
|
416
462
|
}]);
|
|
417
463
|
}(Component);
|
|
@@ -425,13 +471,21 @@ LiteKitchenConfigurator.propTypes = {
|
|
|
425
471
|
width: PropTypes.number.isRequired,
|
|
426
472
|
height: PropTypes.number.isRequired,
|
|
427
473
|
stateExtractor: PropTypes.func.isRequired,
|
|
428
|
-
sidebarComponents: PropTypes.array,
|
|
429
|
-
footerbarComponents: PropTypes.array,
|
|
430
|
-
customContents: PropTypes.object,
|
|
431
|
-
softwareSignature: PropTypes.string,
|
|
432
474
|
configData: PropTypes.object,
|
|
433
|
-
onInternalEvent: PropTypes.func
|
|
475
|
+
onInternalEvent: PropTypes.func,
|
|
476
|
+
extractedState: PropTypes.object,
|
|
477
|
+
// ✅ injected by connect
|
|
478
|
+
externalEvent: PropTypes.object
|
|
479
|
+
};
|
|
480
|
+
LiteKitchenConfigurator.contextTypes = {
|
|
481
|
+
store: PropTypes.object.isRequired
|
|
434
482
|
};
|
|
483
|
+
LiteKitchenConfigurator.childContextTypes = _objectSpread(_objectSpread({}, objectsMap(actions, function () {
|
|
484
|
+
return PropTypes.object;
|
|
485
|
+
})), {}, {
|
|
486
|
+
translator: PropTypes.object,
|
|
487
|
+
catalog: PropTypes.object
|
|
488
|
+
});
|
|
435
489
|
LiteKitchenConfigurator.defaultProps = {
|
|
436
490
|
translator: new Translator(),
|
|
437
491
|
catalog: new Catalog(),
|
|
@@ -444,10 +498,16 @@ LiteKitchenConfigurator.defaultProps = {
|
|
|
444
498
|
configData: {}
|
|
445
499
|
};
|
|
446
500
|
|
|
447
|
-
//
|
|
448
|
-
|
|
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);
|
|
449
508
|
return {
|
|
450
|
-
|
|
509
|
+
extractedState: extractedState,
|
|
510
|
+
state: extractedState
|
|
451
511
|
};
|
|
452
512
|
}
|
|
453
513
|
function mapDispatchToProps(dispatch) {
|