kitchen-simulator 4.0.8-react-18 → 4.0.8
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 +162 -107
- package/es/LiteRenderer.js +162 -137
- 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 +24 -11
- package/es/catalog/utils/item-loader.js +35 -26
- package/es/class/hole.js +0 -2
- package/es/class/item.js +96 -70
- package/es/class/line.js +4 -8
- package/es/class/project.js +95 -80
- package/es/components/content.js +5 -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 -27
- 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 +17 -47
- package/es/components/viewer2d/ruler.js +5 -3
- package/es/components/viewer2d/rulerDist.js +8 -7
- 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 +52 -87
- package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/es/components/viewer3d/scene-creator.js +77 -39
- package/es/components/viewer3d/viewer3d-first-person.js +24 -26
- package/es/components/viewer3d/viewer3d.js +104 -114
- package/es/constants.js +7 -2
- package/es/devLiteRenderer.js +491 -150
- package/es/index.js +590 -21
- 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 +3 -0
- 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 +826 -606
- package/es/utils/molding.js +457 -11
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +161 -107
- package/lib/LiteRenderer.js +161 -137
- 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 +24 -11
- package/lib/catalog/utils/item-loader.js +35 -26
- package/lib/class/hole.js +0 -2
- package/lib/class/item.js +94 -68
- package/lib/class/line.js +3 -7
- package/lib/class/project.js +95 -80
- package/lib/components/content.js +5 -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 -27
- 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 +17 -47
- package/lib/components/viewer2d/ruler.js +4 -2
- package/lib/components/viewer2d/rulerDist.js +8 -7
- 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 +50 -84
- package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/lib/components/viewer3d/scene-creator.js +75 -37
- package/lib/components/viewer3d/viewer3d-first-person.js +24 -26
- package/lib/components/viewer3d/viewer3d.js +101 -110
- package/lib/constants.js +12 -7
- package/lib/devLiteRenderer.js +489 -148
- package/lib/index.js +592 -21
- 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 +3 -0
- 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 +826 -605
- package/lib/utils/molding.js +458 -9
- package/package.json +20 -15
- 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
|
@@ -7,13 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
17
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
19
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
20
|
var _convertUnitsLite = require("./utils/convert-units-lite");
|
|
18
21
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
22
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -28,8 +31,8 @@ var _translator = _interopRequireDefault(require("./translator/translator"));
|
|
|
28
31
|
var _objectsUtils = require("./utils/objects-utils");
|
|
29
32
|
var _version = require("./version");
|
|
30
33
|
var _isolateEventHandler = require("./utils/isolate-event-handler");
|
|
31
|
-
var
|
|
32
|
-
var
|
|
34
|
+
var _excluded = ["width", "height", "extractedState"];
|
|
35
|
+
var _templateObject, _templateObject2; // LiteKitchenConfigurator.jsx
|
|
33
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); }
|
|
34
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; }
|
|
35
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; }
|
|
@@ -40,14 +43,16 @@ var wrapperStyle = {
|
|
|
40
43
|
display: 'flex',
|
|
41
44
|
flexFlow: 'row nowrap'
|
|
42
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:\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
|
+
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
|
+
return props.maskImage + '?nocache=2025';
|
|
49
|
+
});
|
|
43
50
|
var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
44
51
|
function LiteKitchenConfigurator(props) {
|
|
45
52
|
var _utmRequestData2, _utmRequestData3, _utmRequestData4, _utmRequestData5, _utmRequestData6, _utmRequestData7, _utmRequestData8, _utmRequestData9, _utmRequestData0;
|
|
46
53
|
var _this;
|
|
47
54
|
(0, _classCallCheck2["default"])(this, LiteKitchenConfigurator);
|
|
48
55
|
_this = _callSuper(this, LiteKitchenConfigurator, [props]);
|
|
49
|
-
|
|
50
|
-
// utm tracking
|
|
51
56
|
var utmDetailParams = new URLSearchParams(_this.props.location && _this.props.location.search);
|
|
52
57
|
var utmStrEncoded = utmDetailParams.get('details');
|
|
53
58
|
var utmRequestData = null;
|
|
@@ -57,7 +62,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
57
62
|
utmRequestData = JSON.parse((0, _helper.base64Decode)(utmStrEncoded));
|
|
58
63
|
utmRequestData = JSON.parse((_utmRequestData = utmRequestData) === null || _utmRequestData === void 0 ? void 0 : _utmRequestData.utm);
|
|
59
64
|
} catch (e) {
|
|
60
|
-
console.error('Cannot parse utm parameter: ',
|
|
65
|
+
console.error('Cannot parse utm parameter: ', e);
|
|
61
66
|
utmRequestData = null;
|
|
62
67
|
}
|
|
63
68
|
}
|
|
@@ -76,7 +81,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
76
81
|
myProjectsOpen: false,
|
|
77
82
|
myProjectsToLogin: false,
|
|
78
83
|
downloadPopupVisible: false,
|
|
79
|
-
// For Toolbar Item
|
|
80
84
|
toolbar: '',
|
|
81
85
|
reviewQuotePopupOpened: false,
|
|
82
86
|
floorOpened: false,
|
|
@@ -94,8 +98,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
94
98
|
isSaved: false,
|
|
95
99
|
isLeaving: false
|
|
96
100
|
};
|
|
97
|
-
|
|
98
|
-
// For UTM tracking
|
|
99
101
|
_this.utm = {
|
|
100
102
|
utm_source: ((_utmRequestData2 = utmRequestData) === null || _utmRequestData2 === void 0 ? void 0 : _utmRequestData2.source) || 'source',
|
|
101
103
|
utm_medium: ((_utmRequestData3 = utmRequestData) === null || _utmRequestData3 === void 0 ? void 0 : _utmRequestData3.medium) || 'medium',
|
|
@@ -126,10 +128,13 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
126
128
|
_this.setDownloadPopupVisible = _this.setDownloadPopupVisible.bind(_this);
|
|
127
129
|
_this.neverShowInput = /*#__PURE__*/_react["default"].createRef(null);
|
|
128
130
|
_this.setShowProperty = _this.setShowProperty.bind(_this);
|
|
131
|
+
|
|
132
|
+
// cache for viewer2D init so we don't allocate merges every render
|
|
133
|
+
_this._lastExtractedStateRef = null;
|
|
134
|
+
_this._cachedViewer2DKey = null;
|
|
135
|
+
_this._cachedExtractedState = null;
|
|
129
136
|
return _this;
|
|
130
137
|
}
|
|
131
|
-
|
|
132
|
-
// Toolbar control functions
|
|
133
138
|
(0, _inherits2["default"])(LiteKitchenConfigurator, _Component);
|
|
134
139
|
return (0, _createClass2["default"])(LiteKitchenConfigurator, [{
|
|
135
140
|
key: "setToolbar",
|
|
@@ -213,26 +218,32 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
213
218
|
}, {
|
|
214
219
|
key: "openFloor",
|
|
215
220
|
value: function openFloor() {
|
|
221
|
+
var _el$parentElement;
|
|
216
222
|
this.setState({
|
|
217
223
|
floorOpened: true
|
|
218
224
|
});
|
|
219
|
-
document.getElementById('make_floorplan_inactive')
|
|
225
|
+
var el = document.getElementById('make_floorplan_inactive');
|
|
226
|
+
if (el !== null && el !== void 0 && (_el$parentElement = el.parentElement) !== null && _el$parentElement !== void 0 && _el$parentElement.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
220
227
|
}
|
|
221
228
|
}, {
|
|
222
229
|
key: "openCabinet",
|
|
223
230
|
value: function openCabinet() {
|
|
231
|
+
var _el$parentElement2;
|
|
224
232
|
this.setState({
|
|
225
233
|
cabinetOpened: true
|
|
226
234
|
});
|
|
227
|
-
document.getElementById('add_cabinets_inactive')
|
|
235
|
+
var el = document.getElementById('add_cabinets_inactive');
|
|
236
|
+
if (el !== null && el !== void 0 && (_el$parentElement2 = el.parentElement) !== null && _el$parentElement2 !== void 0 && _el$parentElement2.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
228
237
|
}
|
|
229
238
|
}, {
|
|
230
239
|
key: "toggleDoorStyle",
|
|
231
240
|
value: function toggleDoorStyle(visible) {
|
|
241
|
+
var _el$parentElement3;
|
|
232
242
|
this.setState({
|
|
233
243
|
doorStyleOpen: visible
|
|
234
244
|
});
|
|
235
|
-
document.getElementById('select_doorstyle_inactive')
|
|
245
|
+
var el = document.getElementById('select_doorstyle_inactive');
|
|
246
|
+
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;
|
|
236
247
|
}
|
|
237
248
|
}, {
|
|
238
249
|
key: "replaceCabinet",
|
|
@@ -244,98 +255,117 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
244
255
|
}, {
|
|
245
256
|
key: "openAppliance",
|
|
246
257
|
value: function openAppliance() {
|
|
258
|
+
var _el$parentElement4;
|
|
247
259
|
this.setState({
|
|
248
260
|
applianceOpened: true
|
|
249
261
|
});
|
|
250
|
-
document.getElementById('add_appliances_inactive')
|
|
262
|
+
var el = document.getElementById('add_appliances_inactive');
|
|
263
|
+
if (el !== null && el !== void 0 && (_el$parentElement4 = el.parentElement) !== null && _el$parentElement4 !== void 0 && _el$parentElement4.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
251
264
|
}
|
|
252
265
|
}, {
|
|
253
266
|
key: "openFinishing",
|
|
254
267
|
value: function openFinishing() {
|
|
268
|
+
var _el$parentElement5;
|
|
255
269
|
this.setState({
|
|
256
270
|
finishingOpened: true
|
|
257
271
|
});
|
|
258
|
-
document.getElementById('finishing_touches_inactive')
|
|
272
|
+
var el = document.getElementById('finishing_touches_inactive');
|
|
273
|
+
if (el !== null && el !== void 0 && (_el$parentElement5 = el.parentElement) !== null && _el$parentElement5 !== void 0 && _el$parentElement5.parentElement) el.parentElement.parentElement.style.zIndex = 999;
|
|
259
274
|
}
|
|
260
275
|
}, {
|
|
261
276
|
key: "onReviewQuoteClicked",
|
|
262
277
|
value: function onReviewQuoteClicked(visible) {
|
|
278
|
+
var _el$parentElement6;
|
|
263
279
|
this.setState({
|
|
264
280
|
reviewQuotePopupOpened: visible
|
|
265
281
|
});
|
|
266
|
-
document.getElementById('review_quote_inactive')
|
|
282
|
+
var el = document.getElementById('review_quote_inactive');
|
|
283
|
+
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;
|
|
267
284
|
}
|
|
268
285
|
}, {
|
|
269
286
|
key: "closeFloorTB",
|
|
270
287
|
value: function closeFloorTB() {
|
|
288
|
+
var _el$parentElement7;
|
|
271
289
|
this.setState({
|
|
272
290
|
floorOpened: false
|
|
273
291
|
});
|
|
274
|
-
|
|
292
|
+
var el = document.getElementById('make_floorplan_inactive');
|
|
293
|
+
if (el !== null && el !== void 0 && (_el$parentElement7 = el.parentElement) !== null && _el$parentElement7 !== void 0 && _el$parentElement7.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
275
294
|
}
|
|
276
295
|
}, {
|
|
277
296
|
key: "closeCabinetTB",
|
|
278
297
|
value: function closeCabinetTB() {
|
|
298
|
+
var _el$parentElement8;
|
|
279
299
|
this.setState({
|
|
280
300
|
cabinetOpened: false
|
|
281
301
|
});
|
|
282
|
-
document.getElementById('add_cabinets_inactive')
|
|
302
|
+
var el = document.getElementById('add_cabinets_inactive');
|
|
303
|
+
if (el !== null && el !== void 0 && (_el$parentElement8 = el.parentElement) !== null && _el$parentElement8 !== void 0 && _el$parentElement8.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
283
304
|
}
|
|
284
305
|
}, {
|
|
285
306
|
key: "closeFinishingTB",
|
|
286
307
|
value: function closeFinishingTB() {
|
|
308
|
+
var _el$parentElement9;
|
|
287
309
|
this.setState({
|
|
288
310
|
finishingOpened: false
|
|
289
311
|
});
|
|
290
|
-
document.getElementById('finishing_touches_inactive')
|
|
312
|
+
var el = document.getElementById('finishing_touches_inactive');
|
|
313
|
+
if (el !== null && el !== void 0 && (_el$parentElement9 = el.parentElement) !== null && _el$parentElement9 !== void 0 && _el$parentElement9.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
291
314
|
}
|
|
292
315
|
}, {
|
|
293
316
|
key: "closeApplianceTB",
|
|
294
317
|
value: function closeApplianceTB() {
|
|
318
|
+
var _el$parentElement0;
|
|
295
319
|
this.setState({
|
|
296
320
|
applianceOpened: false
|
|
297
321
|
});
|
|
298
|
-
document.getElementById('add_appliances_inactive')
|
|
299
|
-
|
|
300
|
-
}, {
|
|
301
|
-
key: "closeDoorstyle",
|
|
302
|
-
value: function closeDoorstyle() {
|
|
303
|
-
this.setState({});
|
|
304
|
-
document.getElementById('select_doorstyle_inactive').parentElement.parentElement.style.zIndex = 6;
|
|
322
|
+
var el = document.getElementById('add_appliances_inactive');
|
|
323
|
+
if (el !== null && el !== void 0 && (_el$parentElement0 = el.parentElement) !== null && _el$parentElement0 !== void 0 && _el$parentElement0.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
305
324
|
}
|
|
306
325
|
}, {
|
|
307
|
-
key: "
|
|
308
|
-
value: function
|
|
309
|
-
this
|
|
310
|
-
|
|
326
|
+
key: "getChildContext",
|
|
327
|
+
value: function getChildContext() {
|
|
328
|
+
var _this2 = this;
|
|
329
|
+
return _objectSpread(_objectSpread({}, (0, _objectsUtils.objectsMap)(_export["default"], function (actionNamespace) {
|
|
330
|
+
return _this2.props[actionNamespace];
|
|
331
|
+
})), {}, {
|
|
332
|
+
translator: this.props.translator,
|
|
333
|
+
catalog: this.props.catalog
|
|
334
|
+
});
|
|
311
335
|
}
|
|
312
336
|
}, {
|
|
313
337
|
key: "componentDidMount",
|
|
314
338
|
value: function componentDidMount() {
|
|
315
339
|
window.forRedo = [];
|
|
340
|
+
var store = this.context.store;
|
|
341
|
+
var _this$props = this.props,
|
|
342
|
+
stateExtractor = _this$props.stateExtractor,
|
|
343
|
+
plugins = _this$props.plugins;
|
|
344
|
+
|
|
345
|
+
// keep old behavior: run plugins once on mount
|
|
346
|
+
var newplugins = (0, _toConsumableArray2["default"])(plugins);
|
|
347
|
+
newplugins.forEach(function (newplugin) {
|
|
348
|
+
return newplugin(store, stateExtractor);
|
|
349
|
+
});
|
|
316
350
|
}
|
|
317
351
|
}, {
|
|
318
352
|
key: "componentDidUpdate",
|
|
319
353
|
value: function componentDidUpdate(prevProps) {
|
|
320
|
-
var
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
onInternalEvent = _this$props.onInternalEvent;
|
|
354
|
+
var _extractedState$getIn;
|
|
355
|
+
var _this$props2 = this.props,
|
|
356
|
+
externalEvent = _this$props2.externalEvent,
|
|
357
|
+
extractedState = _this$props2.extractedState,
|
|
358
|
+
projectActions = _this$props2.projectActions,
|
|
359
|
+
catalog = _this$props2.catalog;
|
|
327
360
|
|
|
328
|
-
// handle external
|
|
329
|
-
|
|
330
|
-
var nextId = externalEvent && externalEvent.id;
|
|
331
|
-
if (nextId != null && prevId !== nextId) {
|
|
361
|
+
// same behavior: handle external event when it changes
|
|
362
|
+
if (prevProps.externalEvent !== externalEvent) {
|
|
332
363
|
(0, _isolateEventHandler.handleExternalEvent)(this.props);
|
|
333
364
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
}
|
|
365
|
+
|
|
366
|
+
// same behavior: init catalog until ready
|
|
367
|
+
var catalogReady = extractedState === null || extractedState === void 0 || (_extractedState$getIn = extractedState.getIn) === null || _extractedState$getIn === void 0 ? void 0 : _extractedState$getIn.call(extractedState, ['catalog', 'ready']);
|
|
368
|
+
if (!catalogReady) projectActions.initCatalog(catalog);
|
|
339
369
|
}
|
|
340
370
|
}, {
|
|
341
371
|
key: "isProjectEmpty",
|
|
@@ -345,23 +375,51 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
345
375
|
var layer = layers.get(selectedLayer);
|
|
346
376
|
return layer.areas.size + layer.lines.size + layer.holes.size + layer.items.size === 0;
|
|
347
377
|
}
|
|
378
|
+
}, {
|
|
379
|
+
key: "getExtractedStateWithViewer2DInit",
|
|
380
|
+
value: function getExtractedStateWithViewer2DInit(extractedState, width, height) {
|
|
381
|
+
if (!extractedState) return extractedState;
|
|
382
|
+
|
|
383
|
+
// ✅ If the extractedState reference changed, drop cache immediately.
|
|
384
|
+
if (this._lastExtractedStateRef !== extractedState) {
|
|
385
|
+
this._lastExtractedStateRef = extractedState;
|
|
386
|
+
this._cachedViewer2DKey = null;
|
|
387
|
+
this._cachedExtractedState = null;
|
|
388
|
+
}
|
|
389
|
+
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
390
|
+
if (!_viewer2D || _viewer2D.size <= 0) return extractedState;
|
|
391
|
+
var v = _viewer2D.toJS();
|
|
392
|
+
|
|
393
|
+
// Only do the "center viewer2D if e/f are zero" logic.
|
|
394
|
+
// ✅ No need to build keys from unrelated parts of state.
|
|
395
|
+
if (v.e !== 0 || v.f !== 0) return extractedState;
|
|
396
|
+
|
|
397
|
+
// Build a cache key ONLY for this viewer2D-centering computation.
|
|
398
|
+
var cacheKey = "".concat(width, ":").concat(height, ":").concat(v.viewerWidth, ":").concat(v.viewerHeight, ":").concat(v.SVGWidth, ":").concat(v.SVGHeight);
|
|
399
|
+
if (this._cachedViewer2DKey === cacheKey && this._cachedExtractedState) {
|
|
400
|
+
return this._cachedExtractedState;
|
|
401
|
+
}
|
|
402
|
+
var centeredViewer2D = _viewer2D.merge({
|
|
403
|
+
e: v.viewerWidth / 2 - v.SVGWidth / 2,
|
|
404
|
+
f: v.viewerHeight / 2 - v.SVGHeight / 2,
|
|
405
|
+
a: 0.99,
|
|
406
|
+
d: 0.99
|
|
407
|
+
});
|
|
408
|
+
var merged = extractedState.merge({
|
|
409
|
+
viewer2D: centeredViewer2D
|
|
410
|
+
});
|
|
411
|
+
this._cachedViewer2DKey = cacheKey;
|
|
412
|
+
this._cachedExtractedState = merged;
|
|
413
|
+
return merged;
|
|
414
|
+
}
|
|
348
415
|
}, {
|
|
349
416
|
key: "render",
|
|
350
417
|
value: function render() {
|
|
351
|
-
var
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
stateExtractor = _this$props2.stateExtractor,
|
|
357
|
-
props = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
|
|
358
|
-
var actionsFromProps = (0, _objectsUtils.objectsMap)(_export["default"], function (ns) {
|
|
359
|
-
return _this2.props[ns];
|
|
360
|
-
});
|
|
361
|
-
var appCtxValue = _objectSpread(_objectSpread({}, actionsFromProps), {}, {
|
|
362
|
-
translator: this.props.translator,
|
|
363
|
-
catalog: this.props.catalog
|
|
364
|
-
});
|
|
418
|
+
var _this$props3 = this.props,
|
|
419
|
+
width = _this$props3.width,
|
|
420
|
+
height = _this$props3.height,
|
|
421
|
+
extractedState = _this$props3.extractedState,
|
|
422
|
+
props = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
|
|
365
423
|
var _this$state = this.state,
|
|
366
424
|
savePopupVisible = _this$state.savePopupVisible,
|
|
367
425
|
quotePopupVisible = _this$state.quotePopupVisible,
|
|
@@ -369,53 +427,22 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
369
427
|
signOpen = _this$state.signOpen,
|
|
370
428
|
myProjectsOpen = _this$state.myProjectsOpen;
|
|
371
429
|
var contentW = width - toolbarW;
|
|
372
|
-
// let contentW = width - toolbarW - sidebarW;
|
|
373
|
-
// let toolbarH = height - footerBarH;
|
|
374
|
-
// let contentH = height - footerBarH;
|
|
375
|
-
// let sidebarH = height - footerBarH;
|
|
376
|
-
var toolbarH = height;
|
|
377
430
|
var contentH = height;
|
|
378
|
-
var
|
|
379
|
-
var
|
|
380
|
-
var headerH = 60;
|
|
381
|
-
var extractedState = stateExtractor(state);
|
|
382
|
-
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extractedState.scene);
|
|
431
|
+
var extracted = this.getExtractedStateWithViewer2DInit(extractedState, width, height);
|
|
432
|
+
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extracted.scene);
|
|
383
433
|
var allVisible = firstVisit || signOpen || myProjectsOpen;
|
|
384
|
-
|
|
385
|
-
var len = (0, _convertUnitsLite.convert)(_scene.width).from(_scene.unit).to('cm');
|
|
386
|
-
var _viewer2D = extractedState.getIn(['viewer2D']);
|
|
387
|
-
if (_viewer2D.size > 0) {
|
|
388
|
-
var scaleX = width / len * 3;
|
|
389
|
-
var scaleY = height / len * 3;
|
|
390
|
-
var scale = scaleX > scaleY ? scaleY : scaleX;
|
|
391
|
-
var _e = width - len * scale,
|
|
392
|
-
_f = height - len * scale;
|
|
393
|
-
var viewer = _viewer2D.toJS();
|
|
394
|
-
if (viewer.e === 0 && viewer.f === 0) {
|
|
395
|
-
_viewer2D = _viewer2D.merge({
|
|
396
|
-
e: viewer.viewerWidth / 2 - viewer.SVGWidth / 2,
|
|
397
|
-
f: viewer.viewerHeight / 2 - viewer.SVGHeight / 2,
|
|
398
|
-
a: 0.99,
|
|
399
|
-
d: 0.99
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
extractedState = extractedState.merge({
|
|
404
|
-
viewer2D: _viewer2D
|
|
405
|
-
});
|
|
406
|
-
return /*#__PURE__*/_react["default"].createElement(_AppContext["default"].Provider, {
|
|
407
|
-
value: appCtxValue
|
|
408
|
-
}, /*#__PURE__*/_react["default"].createElement("section", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
434
|
+
return /*#__PURE__*/_react["default"].createElement("section", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
409
435
|
style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
|
|
410
436
|
height: height,
|
|
411
437
|
display: 'flex',
|
|
412
|
-
justifyContent: 'center'
|
|
438
|
+
justifyContent: 'center',
|
|
439
|
+
position: 'relative'
|
|
413
440
|
})
|
|
414
441
|
}, /*#__PURE__*/_react["default"].createElement(_export2.Content, (0, _extends2["default"])({
|
|
415
442
|
width: contentW,
|
|
416
443
|
height: contentH,
|
|
417
444
|
catalog: this.props.catalog,
|
|
418
|
-
state:
|
|
445
|
+
state: extracted,
|
|
419
446
|
toolBar: this.state.toolbar,
|
|
420
447
|
setToolbar: this.setToolbar,
|
|
421
448
|
replaceCabinet: this.replaceCabinet,
|
|
@@ -425,7 +452,20 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
425
452
|
return event.preventDefault();
|
|
426
453
|
},
|
|
427
454
|
onInternalEvent: this.props.onInternalEvent
|
|
428
|
-
}))
|
|
455
|
+
})), /*#__PURE__*/_react["default"].createElement(WarningItem, {
|
|
456
|
+
id: "warning_box_2d",
|
|
457
|
+
style: {
|
|
458
|
+
display: 'none'
|
|
459
|
+
}
|
|
460
|
+
}, /*#__PURE__*/_react["default"].createElement(SubCategoryItemImage, {
|
|
461
|
+
maskImage: "/assets/img/svg/3d_item_warning_info.svg",
|
|
462
|
+
style: {
|
|
463
|
+
backgroundColor: constants.BG_COLOR_1,
|
|
464
|
+
marginRight: 10,
|
|
465
|
+
height: 30,
|
|
466
|
+
width: 30
|
|
467
|
+
}
|
|
468
|
+
}), "This item is not available in the current door style. Replace it with another one.")));
|
|
429
469
|
}
|
|
430
470
|
}]);
|
|
431
471
|
}(_react.Component);
|
|
@@ -439,13 +479,21 @@ LiteKitchenConfigurator.propTypes = {
|
|
|
439
479
|
width: _propTypes["default"].number.isRequired,
|
|
440
480
|
height: _propTypes["default"].number.isRequired,
|
|
441
481
|
stateExtractor: _propTypes["default"].func.isRequired,
|
|
442
|
-
sidebarComponents: _propTypes["default"].array,
|
|
443
|
-
footerbarComponents: _propTypes["default"].array,
|
|
444
|
-
customContents: _propTypes["default"].object,
|
|
445
|
-
softwareSignature: _propTypes["default"].string,
|
|
446
482
|
configData: _propTypes["default"].object,
|
|
447
|
-
onInternalEvent: _propTypes["default"].func
|
|
483
|
+
onInternalEvent: _propTypes["default"].func,
|
|
484
|
+
extractedState: _propTypes["default"].object,
|
|
485
|
+
// ✅ injected by connect
|
|
486
|
+
externalEvent: _propTypes["default"].object
|
|
487
|
+
};
|
|
488
|
+
LiteKitchenConfigurator.contextTypes = {
|
|
489
|
+
store: _propTypes["default"].object.isRequired
|
|
448
490
|
};
|
|
491
|
+
LiteKitchenConfigurator.childContextTypes = _objectSpread(_objectSpread({}, (0, _objectsUtils.objectsMap)(_export["default"], function () {
|
|
492
|
+
return _propTypes["default"].object;
|
|
493
|
+
})), {}, {
|
|
494
|
+
translator: _propTypes["default"].object,
|
|
495
|
+
catalog: _propTypes["default"].object
|
|
496
|
+
});
|
|
449
497
|
LiteKitchenConfigurator.defaultProps = {
|
|
450
498
|
translator: new _translator["default"](),
|
|
451
499
|
catalog: new _catalog["default"](),
|
|
@@ -458,10 +506,16 @@ LiteKitchenConfigurator.defaultProps = {
|
|
|
458
506
|
configData: {}
|
|
459
507
|
};
|
|
460
508
|
|
|
461
|
-
//
|
|
462
|
-
|
|
509
|
+
// ✅ Only select the slice you actually use.
|
|
510
|
+
// This preserves behavior but massively reduces rerenders.
|
|
511
|
+
function mapStateToProps(reduxState, ownProps) {
|
|
512
|
+
var stateExtractor = ownProps.stateExtractor || function (s) {
|
|
513
|
+
return s;
|
|
514
|
+
};
|
|
515
|
+
var extractedState = stateExtractor(reduxState);
|
|
463
516
|
return {
|
|
464
|
-
|
|
517
|
+
extractedState: extractedState,
|
|
518
|
+
state: extractedState
|
|
465
519
|
};
|
|
466
520
|
}
|
|
467
521
|
function mapDispatchToProps(dispatch) {
|