kitchen-simulator 3.1.15 → 4.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/LiteKitchenConfigurator.js +204 -21
- package/es/LiteRenderer.js +277 -12
- package/es/actions/items-actions.js +6 -10
- package/es/actions/lines-actions.js +1 -3
- package/es/actions/project-actions.js +5 -15
- package/es/assets/Window.hdr +2100 -0
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/1.jpg +0 -0
- package/es/catalog/areas/area/planner-element.js +5 -10
- package/es/catalog/catalog.js +4 -1
- package/es/catalog/factories/area-factory-3d.js +17 -18
- package/es/catalog/factories/wall-factory-3d.js +2 -2
- package/es/catalog/factories/wall-factory.js +8 -8
- package/es/catalog/lines/wall/planner-element.js +9 -18
- package/es/catalog/utils/exporter.js +3 -6
- package/es/catalog/utils/item-loader.js +197 -202
- package/es/catalog/utils/mtl-loader.js +2 -2
- package/es/catalog/utils/obj-loader.js +2 -2
- package/es/class/item.js +127 -107
- package/es/class/line.js +2 -14
- package/es/class/project.js +44 -150
- package/es/components/content.js +6 -19
- package/es/components/viewer2d/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/item.js +51 -84
- package/es/components/viewer2d/line.js +243 -315
- package/es/components/viewer2d/ruler.js +36 -16
- package/es/components/viewer2d/rulerDist.js +75 -44
- package/es/components/viewer2d/utils.js +0 -6
- package/es/components/viewer2d/viewer2d.js +205 -301
- package/es/components/viewer3d/front3D.js +2 -3
- package/es/components/viewer3d/libs/mtl-loader.js +2 -2
- package/es/components/viewer3d/libs/obj-loader.js +2 -2
- package/es/components/viewer3d/libs/orbit-controls.js +4 -3
- package/es/components/viewer3d/libs/pointer-lock-controls.js +7 -6
- package/es/components/viewer3d/viewer3d.js +80 -127
- package/es/constants.js +3 -110
- package/es/devLiteRenderer.js +38 -597
- package/es/index.js +86 -16
- package/es/models.js +5 -8
- package/es/plugins/SVGLoader.js +5 -7
- package/es/plugins/keyboard.js +6 -15
- package/es/reducers/items-reducer.js +5 -5
- package/es/reducers/lines-reducer.js +1 -1
- package/es/reducers/project-reducer.js +3 -5
- package/es/shared-style.js +4 -4
- package/es/utils/geometry.js +0 -161
- package/es/utils/get-edges-of-subgraphs.js +1 -1
- package/es/utils/graph-cycles.js +1 -1
- package/es/utils/graph.js +1 -1
- package/es/utils/helper.js +2 -67
- package/es/utils/isolate-event-handler.js +124 -1367
- package/es/utils/molding.js +2 -238
- package/lib/LiteKitchenConfigurator.js +205 -22
- package/lib/LiteRenderer.js +278 -13
- package/lib/actions/items-actions.js +6 -10
- package/lib/actions/lines-actions.js +1 -3
- package/lib/actions/project-actions.js +4 -15
- package/lib/assets/Window.hdr +2100 -0
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/1.jpg +0 -0
- package/lib/catalog/areas/area/planner-element.js +5 -11
- package/lib/catalog/catalog.js +4 -1
- package/lib/catalog/factories/area-factory-3d.js +14 -15
- package/lib/catalog/factories/wall-factory-3d.js +2 -2
- package/lib/catalog/factories/wall-factory.js +8 -8
- package/lib/catalog/lines/wall/planner-element.js +9 -19
- package/lib/catalog/utils/exporter.js +3 -6
- package/lib/catalog/utils/item-loader.js +194 -199
- package/lib/catalog/utils/mtl-loader.js +2 -9
- package/lib/catalog/utils/obj-loader.js +2 -10
- package/lib/class/item.js +125 -105
- package/lib/class/line.js +1 -13
- package/lib/class/project.js +43 -149
- package/lib/components/content.js +6 -19
- package/lib/components/viewer2d/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/item.js +50 -83
- package/lib/components/viewer2d/line.js +242 -315
- package/lib/components/viewer2d/ruler.js +35 -15
- package/lib/components/viewer2d/rulerDist.js +75 -44
- package/lib/components/viewer2d/utils.js +0 -7
- package/lib/components/viewer2d/viewer2d.js +205 -299
- package/lib/components/viewer3d/front3D.js +2 -3
- package/lib/components/viewer3d/libs/mtl-loader.js +2 -9
- package/lib/components/viewer3d/libs/obj-loader.js +2 -9
- package/lib/components/viewer3d/libs/orbit-controls.js +5 -11
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +7 -13
- package/lib/components/viewer3d/viewer3d.js +79 -125
- package/lib/constants.js +7 -115
- package/lib/devLiteRenderer.js +33 -592
- package/lib/index.js +86 -16
- package/lib/models.js +5 -8
- package/lib/plugins/SVGLoader.js +5 -7
- package/lib/plugins/keyboard.js +6 -15
- package/lib/reducers/items-reducer.js +5 -5
- package/lib/reducers/lines-reducer.js +1 -1
- package/lib/reducers/project-reducer.js +2 -4
- package/lib/shared-style.js +4 -4
- package/lib/utils/geometry.js +0 -162
- package/lib/utils/get-edges-of-subgraphs.js +1 -6
- package/lib/utils/graph-cycles.js +8 -7
- package/lib/utils/graph.js +1 -6
- package/lib/utils/helper.js +3 -70
- package/lib/utils/isolate-event-handler.js +121 -1364
- package/lib/utils/molding.js +0 -238
- package/package.json +1 -1
package/es/utils/molding.js
CHANGED
|
@@ -5,11 +5,11 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
5
5
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
6
6
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
7
7
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
8
|
-
import { BASE_CABINET_LAYOUTPOS, BOTTOM_MOLDING_LOCATION, EPSILON, MIDDLE_MOLDING_LOCATION, MOLDING_LOCATIONS, OVERLAP_INCLUDED, OVERLAP_LINK, OVERLAP_SAME, OVERLAP_SOME, TALL_CABINET_LAYOUTPOS,
|
|
8
|
+
import { BASE_CABINET_LAYOUTPOS, BOTTOM_MOLDING_LOCATION, EPSILON, MIDDLE_MOLDING_LOCATION, MOLDING_LOCATIONS, OVERLAP_INCLUDED, OVERLAP_LINK, OVERLAP_SAME, OVERLAP_SOME, TALL_CABINET_LAYOUTPOS, TOP_MOLDING_LOCATION, WALL_CABINET_LAYOUTPOS } from "../constants";
|
|
9
9
|
import * as Three from 'three';
|
|
10
10
|
import { convert } from "./convert-units-lite";
|
|
11
11
|
import IDBroker from "./id-broker";
|
|
12
|
-
import {
|
|
12
|
+
import { returnReplaceableDeepSearchType } from "../components/viewer2d/utils";
|
|
13
13
|
import { GeometryUtils } from "./export";
|
|
14
14
|
import { isEmpty } from "./helper";
|
|
15
15
|
export function getItemRect(item) {
|
|
@@ -62,10 +62,6 @@ export function isEnableItemForMolding(layer, selItem) {
|
|
|
62
62
|
// check this item is enable for specified molding
|
|
63
63
|
else return result && hasMoldingLayout(molding, selItem.layoutpos);
|
|
64
64
|
}
|
|
65
|
-
export function isAttachedWall(layer, selItem) {
|
|
66
|
-
var allLineRects = GeometryUtils.buildRectFromLines(layer, GeometryUtils.getAllLines(layer));
|
|
67
|
-
return GeometryUtils.isSnappedLine(getItemRect(selItem), allLineRects);
|
|
68
|
-
}
|
|
69
65
|
|
|
70
66
|
/**
|
|
71
67
|
* Check two line segments are overlap. The direction of the two line segments must be opposite.
|
|
@@ -866,236 +862,4 @@ export function createMonldingGroup(oldMG, layer, molding, catalog) {
|
|
|
866
862
|
newMG.lines.reverse();
|
|
867
863
|
newMG = getMDPoints(newMG);
|
|
868
864
|
return newMG;
|
|
869
|
-
}
|
|
870
|
-
export function getMoldingDataOfScene(layer, catalog, doorStyle) {
|
|
871
|
-
var moldingData = [];
|
|
872
|
-
var items = layer.items.toArray();
|
|
873
|
-
var moldings = [];
|
|
874
|
-
// get all moldings info
|
|
875
|
-
items.forEach(function (itemCat) {
|
|
876
|
-
var _itemCat$molding;
|
|
877
|
-
itemCat === null || itemCat === void 0 || (_itemCat$molding = itemCat.molding) === null || _itemCat$molding === void 0 || _itemCat$molding.forEach(function (molding) {
|
|
878
|
-
if (!moldings.some(function (m) {
|
|
879
|
-
return m.name === molding.name;
|
|
880
|
-
})) moldings.push(molding);
|
|
881
|
-
});
|
|
882
|
-
});
|
|
883
|
-
|
|
884
|
-
// calc normal molding
|
|
885
|
-
moldings.forEach(function (molding) {
|
|
886
|
-
var itemGroups = [];
|
|
887
|
-
var temp_items = [];
|
|
888
|
-
items.forEach(function (item) {
|
|
889
|
-
if (item.molding.some(function (mol) {
|
|
890
|
-
return mol.itemID === molding.itemID;
|
|
891
|
-
}) && isEnableItemForMolding(layer, item)) {
|
|
892
|
-
temp_items.push(item);
|
|
893
|
-
}
|
|
894
|
-
});
|
|
895
|
-
if (temp_items.length) {
|
|
896
|
-
while (temp_items.length > 0) {
|
|
897
|
-
var itemGroup = [temp_items[0]];
|
|
898
|
-
var _loop9 = function _loop9(_idx) {
|
|
899
|
-
if (!itemGroup.some(function (it) {
|
|
900
|
-
return it.id === temp_items[_idx].id;
|
|
901
|
-
}) && isItemSnappedGroup(temp_items[_idx], itemGroup)) {
|
|
902
|
-
itemGroup.push(temp_items[_idx]);
|
|
903
|
-
_idx = 0;
|
|
904
|
-
}
|
|
905
|
-
idx = _idx;
|
|
906
|
-
};
|
|
907
|
-
for (var idx = 0; idx < temp_items.length; idx++) {
|
|
908
|
-
_loop9(idx);
|
|
909
|
-
}
|
|
910
|
-
itemGroup.forEach(function (item) {
|
|
911
|
-
var index = temp_items.findIndex(function (it) {
|
|
912
|
-
return it.id === item.id;
|
|
913
|
-
});
|
|
914
|
-
if (index > -1) {
|
|
915
|
-
temp_items.splice(index, 1);
|
|
916
|
-
}
|
|
917
|
-
});
|
|
918
|
-
itemGroups.push(itemGroup);
|
|
919
|
-
}
|
|
920
|
-
var molding_totalLength = 0;
|
|
921
|
-
itemGroups.forEach(function (itemgroup) {
|
|
922
|
-
var allLineRects = GeometryUtils.buildRectFromLines(layer, GeometryUtils.getAllLines(layer));
|
|
923
|
-
var items = _toConsumableArray(itemgroup);
|
|
924
|
-
var MGlines = getLinesOfItem(items[0], allLineRects, catalog);
|
|
925
|
-
items = sortItemsByDistance(items, items[0]);
|
|
926
|
-
var _loop0 = function _loop0() {
|
|
927
|
-
var itemLines = getLinesOfItem(items[i], allLineRects, catalog);
|
|
928
|
-
var temp_MGLines = [];
|
|
929
|
-
MGlines.forEach(function (line) {
|
|
930
|
-
var idx = itemLines.findIndex(function (itemLine) {
|
|
931
|
-
return isLinesOverlapped(line, itemLine);
|
|
932
|
-
});
|
|
933
|
-
var curItemLine = itemLines[idx];
|
|
934
|
-
if (idx > -1) {
|
|
935
|
-
if (!(GeometryUtils.samePoints(line[0], curItemLine[0]) && GeometryUtils.samePoints(line[1], curItemLine[1]) || GeometryUtils.samePoints(line[0], curItemLine[1]) && GeometryUtils.samePoints(line[1], curItemLine[0]))) {
|
|
936
|
-
var MGLine = mergeOverlappedLines(line, curItemLine);
|
|
937
|
-
temp_MGLines.push(MGLine);
|
|
938
|
-
}
|
|
939
|
-
itemLines.splice(idx, 1);
|
|
940
|
-
} else {
|
|
941
|
-
temp_MGLines.push(line);
|
|
942
|
-
}
|
|
943
|
-
});
|
|
944
|
-
itemLines.forEach(function (itemLine) {
|
|
945
|
-
return temp_MGLines.push(itemLine);
|
|
946
|
-
});
|
|
947
|
-
MGlines = [].concat(temp_MGLines);
|
|
948
|
-
};
|
|
949
|
-
for (var i = 1; i < items.length; i++) {
|
|
950
|
-
_loop0();
|
|
951
|
-
}
|
|
952
|
-
MGlines.forEach(function (line) {
|
|
953
|
-
molding_totalLength += GeometryUtils.verticesDistance(line[0], line[1]);
|
|
954
|
-
});
|
|
955
|
-
});
|
|
956
|
-
molding_totalLength = convert(molding_totalLength).from('cm').to('in');
|
|
957
|
-
moldingData.push(_objectSpread(_objectSpread({}, molding), {}, {
|
|
958
|
-
doorStyle: doorStyle,
|
|
959
|
-
count: Math.ceil(molding_totalLength * 1.1 / 96)
|
|
960
|
-
}));
|
|
961
|
-
}
|
|
962
|
-
});
|
|
963
|
-
|
|
964
|
-
// calc toe kick molding
|
|
965
|
-
var tmp = [];
|
|
966
|
-
items.forEach(function (item) {
|
|
967
|
-
if (item.category === 'cabinet' && !item.cabinet_category.toLowerCase().includes('microwave')) {
|
|
968
|
-
tmp.push(item);
|
|
969
|
-
}
|
|
970
|
-
});
|
|
971
|
-
var tmpMoldingData = [];
|
|
972
|
-
var toedoorStyles = [];
|
|
973
|
-
tmp.map(function (item) {
|
|
974
|
-
var _item$molding;
|
|
975
|
-
if (item.layoutpos === BASE_CABINET_LAYOUTPOS && (isEmpty(item.molding) || ((_item$molding = item.molding) === null || _item$molding === void 0 ? void 0 : _item$molding.length) < 1 || !isEnableItemForMolding(layer, item))) {
|
|
976
|
-
var w = item.properties.get('width').get('_length');
|
|
977
|
-
var wUnit = item.properties.get('width').get('_unit') || 'cm';
|
|
978
|
-
w = convert(w / 2).from(wUnit).to('cm');
|
|
979
|
-
var h = item.properties.get('depth').get('_length');
|
|
980
|
-
var hUnit = item.properties.get('depth').get('_unit') || 'cm';
|
|
981
|
-
h = convert(h / 2).from(hUnit).to('cm');
|
|
982
|
-
var outline = null;
|
|
983
|
-
var element = catalog.elements[item.get('type')];
|
|
984
|
-
if (!element) element = catalog.elements[returnReplaceableDeepSearchType(item.get('type'))];
|
|
985
|
-
outline = element.info.outline;
|
|
986
|
-
var len = 0;
|
|
987
|
-
if (outline) {
|
|
988
|
-
// Extract Points from `outline`
|
|
989
|
-
var outlinePaths = outline.paths;
|
|
990
|
-
var outlineWidth = outline.svgWidth;
|
|
991
|
-
var outlineHeight = outline.svgHeight;
|
|
992
|
-
var outlinePoints = []; // Hold Points Of SVG
|
|
993
|
-
var _iterator3 = _createForOfIteratorHelper(outlinePaths),
|
|
994
|
-
_step3;
|
|
995
|
-
try {
|
|
996
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
997
|
-
var path = _step3.value;
|
|
998
|
-
var _iterator4 = _createForOfIteratorHelper(path.subPaths),
|
|
999
|
-
_step4;
|
|
1000
|
-
try {
|
|
1001
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
1002
|
-
var subPath = _step4.value;
|
|
1003
|
-
outlinePoints = outlinePoints.concat(subPath.getPoints());
|
|
1004
|
-
}
|
|
1005
|
-
} catch (err) {
|
|
1006
|
-
_iterator4.e(err);
|
|
1007
|
-
} finally {
|
|
1008
|
-
_iterator4.f();
|
|
1009
|
-
}
|
|
1010
|
-
}
|
|
1011
|
-
} catch (err) {
|
|
1012
|
-
_iterator3.e(err);
|
|
1013
|
-
} finally {
|
|
1014
|
-
_iterator3.f();
|
|
1015
|
-
}
|
|
1016
|
-
var maxX = outlinePoints[0].x,
|
|
1017
|
-
minX = outlinePoints[0].x;
|
|
1018
|
-
var maxY = outlinePoints[0].y,
|
|
1019
|
-
minY = outlinePoints[0].y;
|
|
1020
|
-
outlinePoints.forEach(function (point) {
|
|
1021
|
-
if (point.x > maxX) {
|
|
1022
|
-
maxX = point.x;
|
|
1023
|
-
}
|
|
1024
|
-
if (point.x < minX) {
|
|
1025
|
-
minX = point.x;
|
|
1026
|
-
}
|
|
1027
|
-
if (point.y > maxY) {
|
|
1028
|
-
maxY = point.y;
|
|
1029
|
-
}
|
|
1030
|
-
if (point.y < minY) {
|
|
1031
|
-
minY = point.y;
|
|
1032
|
-
}
|
|
1033
|
-
});
|
|
1034
|
-
outlinePoints.forEach(function (point) {
|
|
1035
|
-
if (GeometryUtils.isPointInRect([{
|
|
1036
|
-
x: minX,
|
|
1037
|
-
y: minY
|
|
1038
|
-
}, {
|
|
1039
|
-
x: minX,
|
|
1040
|
-
y: maxY
|
|
1041
|
-
}, {
|
|
1042
|
-
x: maxX,
|
|
1043
|
-
y: maxY
|
|
1044
|
-
}, {
|
|
1045
|
-
x: maxX,
|
|
1046
|
-
y: minY
|
|
1047
|
-
}], point)) {
|
|
1048
|
-
if (point.x > 10) len += (point.x / outlineWidth - 0.5) * w * 2 + h * 2 - (point.y / outlineHeight - 0.5) * h * 2;
|
|
1049
|
-
}
|
|
1050
|
-
});
|
|
1051
|
-
len = convert(len).from('cm').to('in');
|
|
1052
|
-
} else {
|
|
1053
|
-
w = convert(w * 2).from('cm').to('in');
|
|
1054
|
-
len += w;
|
|
1055
|
-
}
|
|
1056
|
-
var doorIndex = toedoorStyles.findIndex(function (a) {
|
|
1057
|
-
var iDS = item === null || item === void 0 ? void 0 : item.doorStyle;
|
|
1058
|
-
if (!iDS) return false;
|
|
1059
|
-
if (!iDS.hasOwnProperty('id')) {
|
|
1060
|
-
iDS = iDS.toJS();
|
|
1061
|
-
}
|
|
1062
|
-
return a.doorStyle.id === iDS.id && isEqualInstallationType(a.doorStyle, iDS);
|
|
1063
|
-
});
|
|
1064
|
-
if (doorIndex > -1) {
|
|
1065
|
-
toedoorStyles[doorIndex].totalLength += len;
|
|
1066
|
-
} else {
|
|
1067
|
-
toedoorStyles.push({
|
|
1068
|
-
doorStyle: item.doorStyle.hasOwnProperty('id') ? item.doorStyle : item.doorStyle && item.doorStyle.toJS(),
|
|
1069
|
-
totalLength: len
|
|
1070
|
-
});
|
|
1071
|
-
}
|
|
1072
|
-
}
|
|
1073
|
-
});
|
|
1074
|
-
toedoorStyles.forEach(function (doorStyle) {
|
|
1075
|
-
var skuName = getToeKickSKU(doorStyle.doorStyle, catalog);
|
|
1076
|
-
var thumbnail = skuName ? skuName : '';
|
|
1077
|
-
// moldings.forEach(molding => {
|
|
1078
|
-
// if (
|
|
1079
|
-
// molding.name ===
|
|
1080
|
-
// getToeKickSKU(
|
|
1081
|
-
// doorStyle.doorStyle,
|
|
1082
|
-
// catalog,
|
|
1083
|
-
// true
|
|
1084
|
-
// )
|
|
1085
|
-
// )
|
|
1086
|
-
// thumbnail = molding.thumbnail;
|
|
1087
|
-
// });
|
|
1088
|
-
|
|
1089
|
-
doorStyle.totalLength && tmpMoldingData.push({
|
|
1090
|
-
name: TOE_KICK_MOLDING,
|
|
1091
|
-
sku: getToeKickSKU(doorStyle.doorStyle, catalog),
|
|
1092
|
-
thumbnail: thumbnail,
|
|
1093
|
-
category: 'molding',
|
|
1094
|
-
type: 'cabinet',
|
|
1095
|
-
doorStyle: doorStyle.doorStyle,
|
|
1096
|
-
count: Math.ceil(doorStyle.totalLength * 1.1 / 96)
|
|
1097
|
-
});
|
|
1098
|
-
});
|
|
1099
|
-
if (tmpMoldingData.length > 0) moldingData = [].concat(_toConsumableArray(moldingData), tmpMoldingData);
|
|
1100
|
-
return moldingData;
|
|
1101
865
|
}
|
|
@@ -8,13 +8,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
14
15
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
16
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
17
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
20
|
var _axios = _interopRequireDefault(require("axios"));
|
|
19
21
|
var _convertUnitsLite = require("./utils/convert-units-lite");
|
|
20
22
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -30,8 +32,8 @@ var _translator = _interopRequireDefault(require("./translator/translator"));
|
|
|
30
32
|
var _objectsUtils = require("./utils/objects-utils");
|
|
31
33
|
var _version = require("./version");
|
|
32
34
|
var _isolateEventHandler = require("./utils/isolate-event-handler");
|
|
33
|
-
var _excluded = ["width", "height", "state", "stateExtractor"
|
|
34
|
-
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
|
|
35
|
+
var _excluded = ["width", "height", "state", "stateExtractor"];
|
|
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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
35
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; }
|
|
36
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; }
|
|
37
39
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
@@ -49,6 +51,24 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
49
51
|
_this = _callSuper(this, LiteKitchenConfigurator, [props]);
|
|
50
52
|
|
|
51
53
|
// utm tracking
|
|
54
|
+
(0, _defineProperty2["default"])(_this, "lastProcessedExternalEventId", null);
|
|
55
|
+
(0, _defineProperty2["default"])(_this, "handleBeforeUnload", function (e) {
|
|
56
|
+
var areas = _this.props.stateExtractor(_this.props.state).getIn(['scene', 'layers', _this.props.stateExtractor(_this.props.state).scene.selectedLayer, 'areas']);
|
|
57
|
+
if (!_this.state.isSaved && areas.size > 0) {
|
|
58
|
+
setTimeout(function () {
|
|
59
|
+
_this.setState({
|
|
60
|
+
savePromptVisible: true,
|
|
61
|
+
isLeaving: true
|
|
62
|
+
});
|
|
63
|
+
}, 500);
|
|
64
|
+
_this.saveProjectToStorage();
|
|
65
|
+
|
|
66
|
+
// This line is required to trigger the browser confirmation dialog
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
e.returnValue = '';
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
});
|
|
52
72
|
var utmDetailParams = new URLSearchParams(_this.props.location && _this.props.location.search);
|
|
53
73
|
var utmStrEncoded = utmDetailParams.get('details');
|
|
54
74
|
var utmRequestData = null;
|
|
@@ -321,33 +341,175 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
321
341
|
catalog: this.props.catalog
|
|
322
342
|
});
|
|
323
343
|
}
|
|
344
|
+
}, {
|
|
345
|
+
key: "saveProjectToStorage",
|
|
346
|
+
value: function saveProjectToStorage() {
|
|
347
|
+
var _this$props = this.props,
|
|
348
|
+
state = _this$props.state,
|
|
349
|
+
stateExtractor = _this$props.stateExtractor;
|
|
350
|
+
var extractedState = stateExtractor(state);
|
|
351
|
+
var projectData = JSON.stringify(extractedState.get('scene').toJS());
|
|
352
|
+
sessionStorage.setItem(window.location.href, projectData);
|
|
353
|
+
}
|
|
324
354
|
}, {
|
|
325
355
|
key: "componentDidMount",
|
|
326
356
|
value: function componentDidMount() {
|
|
357
|
+
var _this3 = this;
|
|
358
|
+
window.addEventListener('beforeunload', this.handleBeforeUnload);
|
|
327
359
|
console.log('context =>', this.context);
|
|
328
360
|
window.forRedo = [];
|
|
329
361
|
var store = this.context.store;
|
|
330
|
-
var _this$
|
|
331
|
-
|
|
332
|
-
|
|
362
|
+
var _this$props2 = this.props,
|
|
363
|
+
projectActions = _this$props2.projectActions,
|
|
364
|
+
catalog = _this$props2.catalog,
|
|
365
|
+
stateExtractor = _this$props2.stateExtractor,
|
|
366
|
+
state = _this$props2.state,
|
|
367
|
+
plugins = _this$props2.plugins;
|
|
368
|
+
projectActions.initCatalog(catalog);
|
|
369
|
+
var match = this.props.match;
|
|
370
|
+
if (sessionStorage.getItem(window.location.href)) {
|
|
371
|
+
var jsonData = sessionStorage.getItem(window.location.href);
|
|
372
|
+
projectActions.loadProject(JSON.parse(jsonData), this.props.categoryData);
|
|
373
|
+
sessionStorage.removeItem(window.location.href);
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
333
376
|
var newplugins = (0, _toConsumableArray2["default"])(plugins);
|
|
334
377
|
newplugins.forEach(function (newplugin) {
|
|
335
378
|
return newplugin(store, stateExtractor);
|
|
336
379
|
});
|
|
380
|
+
if (match && match.params.pid === undefined) {
|
|
381
|
+
projectActions.newProject();
|
|
382
|
+
sessionStorage.setItem('projectTitle', 'Untitled');
|
|
383
|
+
projectActions.rename('Untitled');
|
|
384
|
+
sessionStorage.removeItem('projectId');
|
|
385
|
+
sessionStorage.removeItem('email');
|
|
386
|
+
sessionStorage.removeItem('firstName');
|
|
387
|
+
sessionStorage.removeItem('lastName');
|
|
388
|
+
sessionStorage.removeItem('usedObjects');
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
if (match && match.params.pid !== undefined) {
|
|
392
|
+
if (match.params.pid === 'new') {
|
|
393
|
+
projectActions.newProject();
|
|
394
|
+
sessionStorage.setItem('projectTitle', 'Untitled');
|
|
395
|
+
projectActions.rename('Untitled');
|
|
396
|
+
sessionStorage.removeItem('projectId');
|
|
397
|
+
sessionStorage.removeItem('email');
|
|
398
|
+
sessionStorage.removeItem('firstName');
|
|
399
|
+
sessionStorage.removeItem('lastName');
|
|
400
|
+
sessionStorage.removeItem('usedObjects');
|
|
401
|
+
} else {
|
|
402
|
+
_axios["default"].post("".concat(constants.API_SERVER_URL, "/api/project/loadPidProject"), {
|
|
403
|
+
pid: match.params.pid,
|
|
404
|
+
visualizerName: sessionStorage.getItem('visualizerName')
|
|
405
|
+
}).then(/*#__PURE__*/function () {
|
|
406
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(response) {
|
|
407
|
+
var projectElement, jsonData, _t;
|
|
408
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
409
|
+
while (1) switch (_context.prev = _context.next) {
|
|
410
|
+
case 0:
|
|
411
|
+
projectElement = response.data.projectElement;
|
|
412
|
+
if (!(projectElement.length === 0)) {
|
|
413
|
+
_context.next = 1;
|
|
414
|
+
break;
|
|
415
|
+
}
|
|
416
|
+
return _context.abrupt("return");
|
|
417
|
+
case 1:
|
|
418
|
+
sessionStorage.setItem('projectTitle', projectElement[0].title);
|
|
419
|
+
projectActions.rename(projectElement[0].title);
|
|
420
|
+
sessionStorage.setItem('projectId', projectElement[0].id);
|
|
421
|
+
sessionStorage.setItem('email', projectElement[0].email);
|
|
422
|
+
sessionStorage.setItem('firstName', projectElement[0].firstName);
|
|
423
|
+
sessionStorage.setItem('lastName', projectElement[0].lastName);
|
|
424
|
+
sessionStorage.setItem('phone', projectElement[0].phone);
|
|
425
|
+
if (!projectElement[0].project_data) {
|
|
426
|
+
_context.next = 2;
|
|
427
|
+
break;
|
|
428
|
+
}
|
|
429
|
+
jsonData = JSON.parse(projectElement[0].project_data);
|
|
430
|
+
_context.next = 5;
|
|
431
|
+
break;
|
|
432
|
+
case 2:
|
|
433
|
+
_context.prev = 2;
|
|
434
|
+
_context.next = 3;
|
|
435
|
+
return _axios["default"].post("".concat(constants.API_SERVER_URL, "/api/project/loadPidData"), {
|
|
436
|
+
pid: match.params.pid
|
|
437
|
+
}).data.data;
|
|
438
|
+
case 3:
|
|
439
|
+
jsonData = _context.sent;
|
|
440
|
+
_context.next = 5;
|
|
441
|
+
break;
|
|
442
|
+
case 4:
|
|
443
|
+
_context.prev = 4;
|
|
444
|
+
_t = _context["catch"](2);
|
|
445
|
+
_this3.setState({
|
|
446
|
+
isSnackBarOpen: true,
|
|
447
|
+
snackBarMessage: _t
|
|
448
|
+
});
|
|
449
|
+
case 5:
|
|
450
|
+
jsonData.isLoadingCabinet = false;
|
|
451
|
+
projectActions.loadProject(jsonData, _this3.props.categoryData);
|
|
452
|
+
case 6:
|
|
453
|
+
case "end":
|
|
454
|
+
return _context.stop();
|
|
455
|
+
}
|
|
456
|
+
}, _callee, null, [[2, 4]]);
|
|
457
|
+
}));
|
|
458
|
+
return function (_x) {
|
|
459
|
+
return _ref.apply(this, arguments);
|
|
460
|
+
};
|
|
461
|
+
}());
|
|
462
|
+
}
|
|
463
|
+
sessionStorage.removeItem('user_type');
|
|
464
|
+
sessionStorage.removeItem('project_type');
|
|
465
|
+
sessionStorage.removeItem('project_timeline');
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}, {
|
|
469
|
+
key: "componentWillUnmount",
|
|
470
|
+
value: function componentWillUnmount() {
|
|
471
|
+
window.removeEventListener('beforeunload', this.handleBeforeUnload);
|
|
472
|
+
window.onbeforeunload = null;
|
|
337
473
|
}
|
|
474
|
+
}, {
|
|
475
|
+
key: "componentWillMount",
|
|
476
|
+
value: function componentWillMount() {}
|
|
338
477
|
}, {
|
|
339
478
|
key: "componentWillReceiveProps",
|
|
340
479
|
value: function componentWillReceiveProps(nextProps) {
|
|
480
|
+
var _this4 = this;
|
|
341
481
|
var stateExtractor = nextProps.stateExtractor,
|
|
342
482
|
state = nextProps.state,
|
|
343
483
|
projectActions = nextProps.projectActions,
|
|
344
484
|
catalog = nextProps.catalog,
|
|
345
|
-
externalEvent = nextProps.externalEvent
|
|
346
|
-
onInternalEvent = nextProps.onInternalEvent;
|
|
485
|
+
externalEvent = nextProps.externalEvent;
|
|
347
486
|
|
|
348
487
|
// handle external events
|
|
349
|
-
if (
|
|
350
|
-
|
|
488
|
+
if (!externalEvent) return;
|
|
489
|
+
var eventId = externalEvent.__eventId;
|
|
490
|
+
if (eventId == null) return;
|
|
491
|
+
if (this.lastProcessedExternalEventId === eventId) {
|
|
492
|
+
return; // already processed
|
|
493
|
+
}
|
|
494
|
+
this.lastProcessedExternalEventId = eventId;
|
|
495
|
+
try {
|
|
496
|
+
var result = (0, _isolateEventHandler.handleExternalEvent)(nextProps);
|
|
497
|
+
if (result && typeof result.then === 'function') {
|
|
498
|
+
result.then(function () {
|
|
499
|
+
var _this4$props$onExtern, _this4$props;
|
|
500
|
+
return (_this4$props$onExtern = (_this4$props = _this4.props).onExternalEventProcessed) === null || _this4$props$onExtern === void 0 ? void 0 : _this4$props$onExtern.call(_this4$props, eventId);
|
|
501
|
+
})["catch"](function () {
|
|
502
|
+
var _this4$props$onExtern2, _this4$props2;
|
|
503
|
+
return (_this4$props$onExtern2 = (_this4$props2 = _this4.props).onExternalEventProcessed) === null || _this4$props$onExtern2 === void 0 ? void 0 : _this4$props$onExtern2.call(_this4$props2, eventId);
|
|
504
|
+
});
|
|
505
|
+
} else {
|
|
506
|
+
var _this$props$onExterna, _this$props3;
|
|
507
|
+
(_this$props$onExterna = (_this$props3 = this.props).onExternalEventProcessed) === null || _this$props$onExterna === void 0 || _this$props$onExterna.call(_this$props3, eventId);
|
|
508
|
+
}
|
|
509
|
+
} catch (e) {
|
|
510
|
+
var _this$props$onExterna2, _this$props4;
|
|
511
|
+
(_this$props$onExterna2 = (_this$props4 = this.props).onExternalEventProcessed) === null || _this$props$onExterna2 === void 0 || _this$props$onExterna2.call(_this$props4, eventId);
|
|
512
|
+
throw e;
|
|
351
513
|
}
|
|
352
514
|
var plannerState = stateExtractor(state);
|
|
353
515
|
var catalogReady = plannerState.getIn(['catalog', 'ready']);
|
|
@@ -366,13 +528,12 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
366
528
|
}, {
|
|
367
529
|
key: "render",
|
|
368
530
|
value: function render() {
|
|
369
|
-
var _this$
|
|
370
|
-
width = _this$
|
|
371
|
-
height = _this$
|
|
372
|
-
state = _this$
|
|
373
|
-
stateExtractor = _this$
|
|
374
|
-
|
|
375
|
-
props = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
|
|
531
|
+
var _this$props5 = this.props,
|
|
532
|
+
width = _this$props5.width,
|
|
533
|
+
height = _this$props5.height,
|
|
534
|
+
state = _this$props5.state,
|
|
535
|
+
stateExtractor = _this$props5.stateExtractor,
|
|
536
|
+
props = (0, _objectWithoutProperties2["default"])(_this$props5, _excluded);
|
|
376
537
|
var _this$state = this.state,
|
|
377
538
|
savePopupVisible = _this$state.savePopupVisible,
|
|
378
539
|
quotePopupVisible = _this$state.quotePopupVisible,
|
|
@@ -380,6 +541,8 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
380
541
|
signOpen = _this$state.signOpen,
|
|
381
542
|
myProjectsOpen = _this$state.myProjectsOpen;
|
|
382
543
|
var contentW = width - toolbarW;
|
|
544
|
+
var categoryData = this.props.categoryData;
|
|
545
|
+
// console.log(categoryData);
|
|
383
546
|
// let contentW = width - toolbarW - sidebarW;
|
|
384
547
|
// let toolbarH = height - footerBarH;
|
|
385
548
|
// let contentH = height - footerBarH;
|
|
@@ -390,6 +553,27 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
390
553
|
var headerW = width;
|
|
391
554
|
var headerH = 60;
|
|
392
555
|
var extractedState = stateExtractor(state);
|
|
556
|
+
var doorStyle = extractedState.get('doorStyle');
|
|
557
|
+
if (extractedState.getIn(['scene', 'layers', extractedState.scene.selectedLayer, 'doorStyle']) !== undefined && extractedState.getIn(['scene', 'layers', extractedState.scene.selectedLayer, 'doorStyle']) !== null) {
|
|
558
|
+
var extractedStateData = extractedState.getIn(['scene', 'layers', extractedState.scene.selectedLayer, 'doorStyle']);
|
|
559
|
+
var doorIdAvailable = false;
|
|
560
|
+
if (this.props.categoryData.doorStyles && this.props.categoryData.doorStyles.items) {
|
|
561
|
+
this.props.categoryData.doorStyles.items.find(function (category) {
|
|
562
|
+
doorIdAvailable = category.items.find(function (style) {
|
|
563
|
+
var item = style.items.find(function (it) {
|
|
564
|
+
return it.id === extractedStateData.id;
|
|
565
|
+
});
|
|
566
|
+
if (item) {
|
|
567
|
+
colorItem = item;
|
|
568
|
+
return true;
|
|
569
|
+
} else {
|
|
570
|
+
return false;
|
|
571
|
+
}
|
|
572
|
+
});
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
if (doorIdAvailable) doorStyle = extractedStateData;
|
|
576
|
+
}
|
|
393
577
|
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extractedState.scene);
|
|
394
578
|
var allVisible = firstVisit || signOpen || myProjectsOpen;
|
|
395
579
|
var _scene = extractedState.getIn(['scene']);
|
|
@@ -418,8 +602,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
418
602
|
style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
|
|
419
603
|
height: height,
|
|
420
604
|
display: 'flex',
|
|
421
|
-
justifyContent: 'center'
|
|
422
|
-
position: 'relative'
|
|
605
|
+
justifyContent: 'center'
|
|
423
606
|
})
|
|
424
607
|
}, /*#__PURE__*/_react["default"].createElement(_export2.Content, (0, _extends2["default"])({
|
|
425
608
|
width: contentW,
|
|
@@ -433,8 +616,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
433
616
|
}, props, {
|
|
434
617
|
onWheel: function onWheel(event) {
|
|
435
618
|
return event.preventDefault();
|
|
436
|
-
}
|
|
437
|
-
onInternalEvent: this.props.onInternalEvent
|
|
619
|
+
}
|
|
438
620
|
}))));
|
|
439
621
|
}
|
|
440
622
|
}]);
|
|
@@ -454,7 +636,8 @@ LiteKitchenConfigurator.propTypes = {
|
|
|
454
636
|
customContents: _propTypes["default"].object,
|
|
455
637
|
softwareSignature: _propTypes["default"].string,
|
|
456
638
|
configData: _propTypes["default"].object,
|
|
457
|
-
|
|
639
|
+
onExternalEventProcessed: _propTypes["default"].func,
|
|
640
|
+
externalEvent: _propTypes["default"].any
|
|
458
641
|
};
|
|
459
642
|
LiteKitchenConfigurator.contextTypes = {
|
|
460
643
|
store: _propTypes["default"].object.isRequired
|