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
|
@@ -34,8 +34,6 @@ function consoleDebugger() {
|
|
|
34
34
|
});
|
|
35
35
|
console.groupCollapsed('KitchenConfigurator');
|
|
36
36
|
console.info('KitchenConfigurator is ready');
|
|
37
|
-
console.info('console.log(KitchenConfigurator)');
|
|
38
|
-
console.log(window.KitchenConfigurator);
|
|
39
37
|
console.groupEnd();
|
|
40
38
|
};
|
|
41
39
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.TabsStyle = void 0;
|
|
8
|
+
var TabsStyle = _interopRequireWildcard(require("./tabs.css"));
|
|
9
|
+
exports.TabsStyle = TabsStyle;
|
|
10
|
+
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); }
|
|
11
|
+
var _default = exports["default"] = {
|
|
12
|
+
TabsStyle: TabsStyle
|
|
13
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.react-tabs__tab-list {
|
|
2
|
+
border-bottom: 1px solid #aaa;
|
|
3
|
+
margin: 0 0 10px;
|
|
4
|
+
padding: 0;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.react-tabs__tab {
|
|
8
|
+
display: inline-block;
|
|
9
|
+
border: 1px solid transparent;
|
|
10
|
+
border-bottom: none;
|
|
11
|
+
bottom: -1px;
|
|
12
|
+
position: relative;
|
|
13
|
+
list-style: none;
|
|
14
|
+
padding: 6px 12px;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.react-tabs__tab--selected,
|
|
19
|
+
.react-tabs__tab:focus {
|
|
20
|
+
border-color: #aaa;
|
|
21
|
+
color: #1ca6fc;
|
|
22
|
+
outline: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.react-tabs__tab-panel {
|
|
26
|
+
display: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.react-tabs__tab-panel--selected {
|
|
30
|
+
display: block;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes spin {
|
|
34
|
+
from {
|
|
35
|
+
transform: rotate(0deg);
|
|
36
|
+
}
|
|
37
|
+
to {
|
|
38
|
+
transform: rotate(360deg);
|
|
39
|
+
}
|
|
40
|
+
}
|
package/lib/utils/geometry.js
CHANGED
|
@@ -1973,7 +1973,7 @@ function getAllHoleRect(scene, val) {
|
|
|
1973
1973
|
layer.lines.forEach(function (line) {
|
|
1974
1974
|
line.holes.forEach(function (holeID) {
|
|
1975
1975
|
var hole = layer.holes.get(holeID);
|
|
1976
|
-
holes.push(hole);
|
|
1976
|
+
if (hole) holes.push(hole);
|
|
1977
1977
|
});
|
|
1978
1978
|
});
|
|
1979
1979
|
var i = 0;
|
|
@@ -2205,7 +2205,7 @@ function relationshipOfTwoOverlappedLines2(srcLine, destLine) {
|
|
|
2205
2205
|
lineSX = _sort4[0],
|
|
2206
2206
|
lineDX = _sort4[1];
|
|
2207
2207
|
var isReversedSrcLineIdx = false;
|
|
2208
|
-
if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
|
|
2208
|
+
if (lineSX[0].x === line0[0].x && lineSX[0].y === line0[0].y) isReversedSrcLineIdx = false;else if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
|
|
2209
2209
|
var compare0 = comparator(lineSX[0], lineDX[0]);
|
|
2210
2210
|
var compare1 = comparator(lineSX[1], lineDX[0]);
|
|
2211
2211
|
var compare2 = comparator(lineSX[1], lineDX[1]);
|
|
@@ -2559,31 +2559,13 @@ function getCalcRectFromItem2(itemInfo) {
|
|
|
2559
2559
|
var m3y = y + h * Math.cos(rotRad);
|
|
2560
2560
|
var m1x = x + h * Math.sin(rotRad);
|
|
2561
2561
|
var m1y = y - h * Math.cos(rotRad);
|
|
2562
|
-
var x0 = mx + h * Math.sin(rotRad);
|
|
2563
|
-
var y0 = my - h * Math.cos(rotRad);
|
|
2564
|
-
var x3 = mx * 2 - x0;
|
|
2565
|
-
var y3 = my * 2 - y0;
|
|
2566
|
-
var x1 = x * 2 - x3;
|
|
2567
|
-
var y1 = y * 2 - y3;
|
|
2568
|
-
var x2 = x * 2 - x0;
|
|
2569
|
-
var y2 = y * 2 - y0;
|
|
2570
2562
|
return {
|
|
2571
2563
|
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
2572
2564
|
};
|
|
2573
2565
|
}
|
|
2574
|
-
function getAllItems2(
|
|
2566
|
+
function getAllItems2(curItem, layer) {
|
|
2575
2567
|
var rectarray = [];
|
|
2576
|
-
var
|
|
2577
|
-
var selectedItem;
|
|
2578
|
-
if (layer.selected.items.size > 0) {
|
|
2579
|
-
selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
|
|
2580
|
-
var catid = selectedItem.type;
|
|
2581
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2582
|
-
currentItem = {
|
|
2583
|
-
selectedItem: selectedItem,
|
|
2584
|
-
cat: cat
|
|
2585
|
-
};
|
|
2586
|
-
}
|
|
2568
|
+
var tempHeight = curItem.get('properties').get('depth');
|
|
2587
2569
|
layer.items.forEach(function (item) {
|
|
2588
2570
|
var val = {
|
|
2589
2571
|
pos: {
|
|
@@ -2592,27 +2574,14 @@ function getAllItems2(layer, catalog) {
|
|
|
2592
2574
|
},
|
|
2593
2575
|
rotRad: item.rotation / 180 * Math.PI
|
|
2594
2576
|
};
|
|
2595
|
-
var catid = item.type;
|
|
2596
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2597
2577
|
var width = (0, _convertUnitsLite.convert)(item.properties.getIn(['width', '_length'])).from('in').to('cm');
|
|
2598
2578
|
var height = (0, _convertUnitsLite.convert)(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
|
|
2599
|
-
// let width = cat.info.sizeinfo.width;
|
|
2600
|
-
// let height = cat.info.sizeinfo.depth;
|
|
2601
2579
|
val.size = {
|
|
2602
2580
|
width: width,
|
|
2603
2581
|
height: height
|
|
2604
2582
|
};
|
|
2605
|
-
|
|
2606
|
-
item: item,
|
|
2607
|
-
cat: cat
|
|
2608
|
-
};
|
|
2609
|
-
|
|
2610
|
-
// if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2611
|
-
// return;
|
|
2612
|
-
// }
|
|
2613
|
-
|
|
2614
|
-
if (!item.selected) {
|
|
2615
|
-
var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
|
|
2583
|
+
if (curItem.get('id') !== item.id) {
|
|
2584
|
+
var detectObjectsAtSameAltitudeFlag = curItem.get('layoutpos') === 'Base' ? item.properties.getIn(['altitude', '_length']) <= curItem.get('properties').getIn(['altitude', '_length']) + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= curItem.get('properties').getIn(['altitude', '_length']);
|
|
2616
2585
|
if (detectObjectsAtSameAltitudeFlag) {
|
|
2617
2586
|
var x = val.pos.x;
|
|
2618
2587
|
var y = val.pos.y;
|
|
@@ -2644,67 +2613,27 @@ function getAllItems2(layer, catalog) {
|
|
|
2644
2613
|
}
|
|
2645
2614
|
}
|
|
2646
2615
|
});
|
|
2647
|
-
|
|
2648
|
-
// layer.holes.forEach(hole => {
|
|
2649
|
-
// let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
|
|
2650
|
-
// let catid = hole.type;
|
|
2651
|
-
// let cat = catalog.elements[catid];
|
|
2652
|
-
// let width = hole.properties.getIn(['width']).getIn(['length']);
|
|
2653
|
-
// let height = hole.properties.getIn(['height']).getIn(['length']);
|
|
2654
|
-
// val.size = {width, height};
|
|
2655
|
-
// let otherItem = {
|
|
2656
|
-
// hole,
|
|
2657
|
-
// cat
|
|
2658
|
-
// }
|
|
2659
|
-
|
|
2660
|
-
// // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2661
|
-
// // return;
|
|
2662
|
-
// // }
|
|
2663
|
-
|
|
2664
|
-
// if (!hole.selected) {
|
|
2665
|
-
// let x = val.pos.x;
|
|
2666
|
-
// let y = val.pos.y;
|
|
2667
|
-
// let rotRad = val.rotRad;
|
|
2668
|
-
// let w = val.size.width / 2;
|
|
2669
|
-
// let mx = x - w * Math.cos(rotRad);
|
|
2670
|
-
// let my = y - w * Math.sin(rotRad);
|
|
2671
|
-
// let kx = x + w * Math.cos(rotRad);
|
|
2672
|
-
// let ky = y + w * Math.sin(rotRad);
|
|
2673
|
-
// let x0 = mx - 10 * Math.sin(rotRad);
|
|
2674
|
-
// let y0 = my + 10 * Math.cos(rotRad);
|
|
2675
|
-
// let x3 = mx + 10 * Math.sin(rotRad);
|
|
2676
|
-
// let y3 = my - 10 * Math.cos(rotRad);
|
|
2677
|
-
// let x1 = kx - 10 * Math.sin(rotRad);
|
|
2678
|
-
// let y1 = ky + 10 * Math.cos(rotRad);
|
|
2679
|
-
// let x2 = kx + 10 * Math.sin(rotRad);
|
|
2680
|
-
// let y2 = ky - 10 * Math.cos(rotRad);
|
|
2681
|
-
// rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
|
|
2682
|
-
// rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
|
|
2683
|
-
// rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
|
|
2684
|
-
// rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
|
|
2685
|
-
// }
|
|
2686
|
-
// });
|
|
2687
2616
|
return {
|
|
2688
2617
|
others: rectarray
|
|
2689
2618
|
};
|
|
2690
2619
|
}
|
|
2691
|
-
function calcDistancesFromItemToWalls(
|
|
2692
|
-
if ((0, _helper.isEmpty)(
|
|
2693
|
-
var x =
|
|
2694
|
-
var y =
|
|
2695
|
-
var rotRad =
|
|
2620
|
+
function calcDistancesFromItemToWalls(curItem, layer) {
|
|
2621
|
+
if ((0, _helper.isEmpty)(curItem)) return [];
|
|
2622
|
+
var x = curItem.get('x');
|
|
2623
|
+
var y = curItem.get('y');
|
|
2624
|
+
var rotRad = curItem.get('rotation') / 180 * Math.PI;
|
|
2696
2625
|
var width, height;
|
|
2697
|
-
if (
|
|
2698
|
-
width = (0, _convertUnitsLite.convert)(
|
|
2699
|
-
height = (0, _convertUnitsLite.convert)(
|
|
2626
|
+
if (curItem.get('properties').get('width') || curItem.get('properties').get('depth')) {
|
|
2627
|
+
width = (0, _convertUnitsLite.convert)(curItem.get('properties').get('width').get('_length')).from(curItem.get('properties').get('width').get('_unit')).to('cm');
|
|
2628
|
+
height = (0, _convertUnitsLite.convert)(curItem.get('properties').get('depth').get('_length')).from(curItem.get('properties').get('depth').get('_unit')).to('cm');
|
|
2700
2629
|
} else {
|
|
2701
|
-
width = (0, _convertUnitsLite.convert)(
|
|
2702
|
-
height = (0, _convertUnitsLite.convert)(
|
|
2630
|
+
width = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.width).from('in').to('cm');
|
|
2631
|
+
height = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.depth).from('in').to('cm');
|
|
2703
2632
|
}
|
|
2704
2633
|
var center_h = 3 * height / 8;
|
|
2705
|
-
var center_x = x;
|
|
2634
|
+
var center_x = x; // middle of front line of cabinet rect
|
|
2706
2635
|
var center_y = y;
|
|
2707
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
2636
|
+
var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
|
|
2708
2637
|
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
2709
2638
|
var PointArray = [];
|
|
2710
2639
|
var itemInfo = {
|
|
@@ -2719,24 +2648,37 @@ function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
|
|
|
2719
2648
|
height: height
|
|
2720
2649
|
};
|
|
2721
2650
|
var curiteminfo = getCalcRectFromItem2(itemInfo);
|
|
2722
|
-
var allItemRect = getAllItems2(
|
|
2651
|
+
var allItemRect = getAllItems2(curItem, layer);
|
|
2723
2652
|
var allLines = getAllLines(layer);
|
|
2724
2653
|
var allLineRects = buildRectFromLines(layer, allLines);
|
|
2725
2654
|
var allRect = allLineRects.concat(allItemRect.others);
|
|
2726
|
-
|
|
2727
|
-
|
|
2655
|
+
var _loop = function _loop(i) {
|
|
2656
|
+
// [rectCenterPoint] has four middle points of cabinet rect edges
|
|
2657
|
+
var centerpoint = curiteminfo.rectCenterPoint[i];
|
|
2658
|
+
var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
|
|
2728
2659
|
var a;
|
|
2729
|
-
var RectLineFuction;
|
|
2660
|
+
var RectLineFuction; // normal line of cabinet rect edge
|
|
2730
2661
|
if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
|
|
2731
2662
|
allRect.forEach(function (linerect) {
|
|
2663
|
+
// calc distance to all other lines
|
|
2732
2664
|
var p0 = clone_point(linerect.rect[2]);
|
|
2733
2665
|
var p1 = clone_point(linerect.rect[3]);
|
|
2734
|
-
var lineFunction = {};
|
|
2666
|
+
var lineFunction = {}; // other line function
|
|
2735
2667
|
if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
2668
|
+
// intersection between normal line and other line
|
|
2736
2669
|
var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
|
|
2737
2670
|
if (coordinatePoint !== undefined) {
|
|
2738
|
-
if (
|
|
2739
|
-
|
|
2671
|
+
if (
|
|
2672
|
+
// intersection point is on the other line
|
|
2673
|
+
pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2674
|
+
// check the intersection point is outside direction of edge
|
|
2675
|
+
var isOutside = true;
|
|
2676
|
+
for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
|
|
2677
|
+
if (j === i) continue;
|
|
2678
|
+
var otherCenterPoint = curiteminfo.rectCenterPoint[j];
|
|
2679
|
+
if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
|
|
2680
|
+
}
|
|
2681
|
+
if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2740
2682
|
comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
|
|
2741
2683
|
a = Math.min.apply(null, comparelength);
|
|
2742
2684
|
}
|
|
@@ -2744,7 +2686,21 @@ function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
|
|
|
2744
2686
|
}
|
|
2745
2687
|
});
|
|
2746
2688
|
PointArray.push([a, centerpoint[1]]);
|
|
2689
|
+
};
|
|
2690
|
+
for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
|
|
2691
|
+
_loop(i);
|
|
2692
|
+
}
|
|
2693
|
+
PointArray.forEach(function (pointElement, index) {
|
|
2694
|
+
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
2747
2695
|
});
|
|
2696
|
+
var cnt = 0;
|
|
2697
|
+
PointArray.forEach(function (pointElement) {
|
|
2698
|
+
if (pointElement[0] == 0) cnt++;
|
|
2699
|
+
});
|
|
2700
|
+
if (cnt == 4 || cnt == 3) {
|
|
2701
|
+
PointArray[0][0] = 100;
|
|
2702
|
+
PointArray[1][0] = 100;
|
|
2703
|
+
}
|
|
2748
2704
|
return {
|
|
2749
2705
|
PointArray: PointArray
|
|
2750
2706
|
};
|
package/lib/utils/helper.js
CHANGED
|
@@ -22,7 +22,9 @@ exports.refineProductForSummaryPdf = exports.refineMoldingForSummaryPdf = void 0
|
|
|
22
22
|
exports.replaceMeshesWithLineSegments = replaceMeshesWithLineSegments;
|
|
23
23
|
exports.textureCube = void 0;
|
|
24
24
|
exports.toPlainObject = toPlainObject;
|
|
25
|
-
exports.
|
|
25
|
+
exports.translateDrawer = void 0;
|
|
26
|
+
exports.updatePayloadOfInternalEvent = updatePayloadOfInternalEvent;
|
|
27
|
+
exports.updateViwer2D = void 0;
|
|
26
28
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
27
29
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
28
30
|
var _HDRCubeTextureLoader = require("three/examples/jsm/loaders/HDRCubeTextureLoader.js");
|
|
@@ -32,6 +34,7 @@ var _utils = require("./../components/viewer2d/utils");
|
|
|
32
34
|
var _convertUnitsLite = require("./convert-units-lite");
|
|
33
35
|
var _math = require("./math");
|
|
34
36
|
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
37
|
+
var _export = require("./export");
|
|
35
38
|
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" != _typeof3(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); }
|
|
36
39
|
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; }
|
|
37
40
|
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; }
|
|
@@ -422,4 +425,40 @@ function centering2D(state) {
|
|
|
422
425
|
});
|
|
423
426
|
if (viewer2DActions) updateViwer2D(viewer, viewer2DActions);
|
|
424
427
|
return state;
|
|
428
|
+
}
|
|
429
|
+
function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
|
|
430
|
+
var pointArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
431
|
+
if (isEmpty(currentObject)) return null;
|
|
432
|
+
var updatedPayload = currentObject.toJS();
|
|
433
|
+
if (isEmpty(layer) || isEmpty(catalog)) return updatedPayload;
|
|
434
|
+
if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'lines') {
|
|
435
|
+
// caculating length of selected line//
|
|
436
|
+
var v_a = layer.vertices.get(currentObject.vertices.get(0));
|
|
437
|
+
var v_b = layer.vertices.get(currentObject.vertices.get(1));
|
|
438
|
+
var distance = _export.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
|
|
439
|
+
var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to(layer.unit);
|
|
440
|
+
updatedPayload.length = _length;
|
|
441
|
+
//////////////////////////////////////
|
|
442
|
+
} else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
|
|
443
|
+
var _catalog$elements$cur;
|
|
444
|
+
// check this cabinet has warning box
|
|
445
|
+
updatedPayload.isWarning = (0, _utils.isWarningItem)(currentObject);
|
|
446
|
+
// check this item is available molding
|
|
447
|
+
updatedPayload.isMoldingAvailable = _export.MoldingUtils.isEnableItemForMolding(layer, currentObject);
|
|
448
|
+
// check this item is snapped to wall
|
|
449
|
+
updatedPayload.isAttachedWall = _export.MoldingUtils.isAttachedWall(layer, currentObject);
|
|
450
|
+
// update distArray
|
|
451
|
+
if (pointArray) updatedPayload.distArray = pointArray;
|
|
452
|
+
|
|
453
|
+
// update sku_number using sku_array
|
|
454
|
+
var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
|
|
455
|
+
var skuArray = catalog === null || catalog === void 0 || (_catalog$elements$cur = catalog.elements[currentObject.get('name')]) === null || _catalog$elements$cur === void 0 || (_catalog$elements$cur = _catalog$elements$cur.obj) === null || _catalog$elements$cur === void 0 ? void 0 : _catalog$elements$cur.skuArray;
|
|
456
|
+
var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
|
|
457
|
+
return sku.door_color_id === currentDoorColorId;
|
|
458
|
+
});
|
|
459
|
+
if (correctSKU) {
|
|
460
|
+
updatedPayload.sku_number = correctSKU.sku;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
return updatedPayload;
|
|
425
464
|
}
|