kitchen-simulator 3.1.10 → 3.1.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/components/viewer2d/item.js +11 -3
- package/es/components/viewer3d/viewer3d.js +35 -40
- package/es/utils/geometry.js +26 -86
- package/es/utils/isolate-event-handler.js +27 -17
- package/es/utils/molding.js +234 -2
- package/lib/components/viewer2d/item.js +11 -3
- package/lib/components/viewer3d/viewer3d.js +35 -40
- package/lib/utils/geometry.js +26 -86
- package/lib/utils/isolate-event-handler.js +27 -17
- package/lib/utils/molding.js +233 -0
- package/package.json +1 -1
|
@@ -18,6 +18,7 @@ var _convertUnitsLite = require("./convert-units-lite");
|
|
|
18
18
|
var _export = require("./export");
|
|
19
19
|
var _utils = require("../components/viewer2d/utils");
|
|
20
20
|
var _SVGLoader = require("three/addons/loaders/SVGLoader");
|
|
21
|
+
var _molding = require("./molding");
|
|
21
22
|
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; }
|
|
22
23
|
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; }
|
|
23
24
|
var PRECISION = 2;
|
|
@@ -729,7 +730,7 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
729
730
|
} else {
|
|
730
731
|
attributesFormData = attributesFormData.set(attributeName, value);
|
|
731
732
|
// update the distances from wall
|
|
732
|
-
var _GeometryUtils$calcDi = _export.GeometryUtils.calcDistancesFromItemToWalls(attributesFormData, layer
|
|
733
|
+
var _GeometryUtils$calcDi = _export.GeometryUtils.calcDistancesFromItemToWalls(attributesFormData, layer),
|
|
733
734
|
PointArray = _GeometryUtils$calcDi.PointArray;
|
|
734
735
|
attributesFormData = attributesFormData.set('distArray', PointArray);
|
|
735
736
|
}
|
|
@@ -1065,13 +1066,15 @@ function handleExternalEvent(_x10) {
|
|
|
1065
1066
|
function _handleExternalEvent() {
|
|
1066
1067
|
_handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(props) {
|
|
1067
1068
|
var _evt$payload3, _evt$payload4;
|
|
1068
|
-
var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, defaulTitle, _Object$keys, _evt$payload5, doorStyle, itemCDS, isAll,
|
|
1069
|
+
var evt, state, layerId, layer, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, defaulTitle, _Object$keys, _evt$payload5, doorStyle, itemCDS, isAll, _layerId, _cdsItems, allItems, selectedItemId, _itemKeys, _loop4, _i2, _props$onInternalEven2, _evt$payload6, roomShapeType, width, height, _doorStyle, value, _value, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value2, _layerId2, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i4, _i5, _i6, _evt$payload9, _evt$payload0, _evt$payload1, _evt$payload10, _layerID, _layer2, orginalItemInfo, originalItem, originalItemPos, replaceItem, _props$onInternalEven3, sceneData, currentTexture, _t5;
|
|
1069
1070
|
return _regenerator["default"].wrap(function (_context1) {
|
|
1070
1071
|
while (1) switch (_context1.prev = _context1.next) {
|
|
1071
1072
|
case 0:
|
|
1072
1073
|
// console.log('***external event****', props);
|
|
1073
1074
|
evt = props.externalEvent;
|
|
1074
1075
|
state = props.state.get('KitchenConfigurator');
|
|
1076
|
+
layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1077
|
+
layer = state.getIn(['scene', 'layers', layerId]);
|
|
1075
1078
|
_t5 = evt === null || evt === void 0 ? void 0 : evt.type;
|
|
1076
1079
|
_context1.next = _t5 === _constants.EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === _constants.EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === _constants.EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 14 : _t5 === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 15 : _t5 === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 19 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_IN ? 20 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 21 : _t5 === _constants.EXTERNAL_EVENT_CENTERING_2D ? 22 : _t5 === _constants.EXTERNAL_EVENT_UNDO ? 23 : _t5 === _constants.EXTERNAL_EVENT_REDO ? 24 : _t5 === _constants.EXTERNAL_EVENT_SET_MOLDING ? 25 : _t5 === _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 27 : _t5 === _constants.EXTERNAL_EVENT_DELETE_ELEMENT ? 28 : _t5 === _constants.EXTERNAL_EVENT_PROJECT_SETTING ? 29 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 30 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 30 : _t5 === _constants.EXTERNAL_EVENT_REPLACE_CABINET ? 31 : _t5 === _constants.EXTERNAL_EVENT_SET_FINISHING ? 33 : _t5 === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 34 : 35;
|
|
1077
1080
|
break;
|
|
@@ -1085,7 +1088,11 @@ function _handleExternalEvent() {
|
|
|
1085
1088
|
return _regenerator["default"].wrap(function (_context8) {
|
|
1086
1089
|
while (1) switch (_context8.prev = _context8.next) {
|
|
1087
1090
|
case 0:
|
|
1088
|
-
it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]];
|
|
1091
|
+
it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
1092
|
+
if (it.properties.altitude.length !== (0, _convertUnitsLite.convert)(it.properties.altitude._length).from('in').to('cm')) {
|
|
1093
|
+
it.properties.altitude.length = (0, _convertUnitsLite.convert)(it.properties.altitude._length).from('in').to('cm');
|
|
1094
|
+
}
|
|
1095
|
+
/////////
|
|
1089
1096
|
if (!cdsItems.some(function (v) {
|
|
1090
1097
|
var _it$doorStyle;
|
|
1091
1098
|
return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 || (_it$doorStyle = _it$doorStyle.doorStyles) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.cabinet_door_style_id) === v.cdsId;
|
|
@@ -1162,7 +1169,7 @@ function _handleExternalEvent() {
|
|
|
1162
1169
|
props.projectActions.setMode(_constants.MODE_IDLE);
|
|
1163
1170
|
return _context1.abrupt("continue", 35);
|
|
1164
1171
|
case 7:
|
|
1165
|
-
sLineCnt =
|
|
1172
|
+
sLineCnt = layer.selected.lines.size;
|
|
1166
1173
|
if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
|
|
1167
1174
|
return _context1.abrupt("continue", 35);
|
|
1168
1175
|
case 8:
|
|
@@ -1215,10 +1222,10 @@ function _handleExternalEvent() {
|
|
|
1215
1222
|
return _context1.abrupt("continue", 35);
|
|
1216
1223
|
case 15:
|
|
1217
1224
|
_evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll; // prepare item data request
|
|
1218
|
-
|
|
1225
|
+
_layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1219
1226
|
_cdsItems = [];
|
|
1220
|
-
allItems = state.getIn(['scene', 'layers',
|
|
1221
|
-
selectedItemId = state.getIn(['scene', 'layers',
|
|
1227
|
+
allItems = state.getIn(['scene', 'layers', _layerId, 'items']).toJS();
|
|
1228
|
+
selectedItemId = state.getIn(['scene', 'layers', _layerId]).selected.items.toJS()[0];
|
|
1222
1229
|
_itemKeys = isAll ? (_Object$keys = Object.keys(allItems)) !== null && _Object$keys !== void 0 ? _Object$keys : [] : [selectedItemId];
|
|
1223
1230
|
_loop4 = /*#__PURE__*/_regenerator["default"].mark(function _loop4() {
|
|
1224
1231
|
var _itemCDS$find;
|
|
@@ -1231,7 +1238,7 @@ function _handleExternalEvent() {
|
|
|
1231
1238
|
return itCDS.itemID === item.itemID;
|
|
1232
1239
|
})) === null || _itemCDS$find === void 0 ? void 0 : _itemCDS$find.cabinet_door_style_id;
|
|
1233
1240
|
if (cdsId && !_cdsItems.some(function (v) {
|
|
1234
|
-
return
|
|
1241
|
+
return item.itemID === v.itemID && item.name === v.name && cdsId === v.cdsId;
|
|
1235
1242
|
})) _cdsItems.push({
|
|
1236
1243
|
itemID: item.itemID,
|
|
1237
1244
|
prototype: item.prototype,
|
|
@@ -1358,18 +1365,18 @@ function _handleExternalEvent() {
|
|
|
1358
1365
|
}
|
|
1359
1366
|
return _context1.abrupt("continue", 35);
|
|
1360
1367
|
case 30:
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
_layer$getIn =
|
|
1364
|
-
for (_i4 = 0; _i4 < selectedLines.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(
|
|
1365
|
-
for (_i5 = 0; _i5 < selectedHoles.size; _i5++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(
|
|
1366
|
-
for (_i6 = 0; _i6 < selectedItems.size; _i6++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(
|
|
1368
|
+
_layerId2 = state.getIn(['scene', 'selectedLayer']);
|
|
1369
|
+
_layer = state.getIn(['scene', 'layers', _layerId2]);
|
|
1370
|
+
_layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
|
|
1371
|
+
for (_i4 = 0; _i4 < selectedLines.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i4)]), evt.payload, state, _layer, props.catalog, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['lines', selectedLines.get(_i4)]), evt.payload, props.catalog, props.projectActions, evt.callback);
|
|
1372
|
+
for (_i5 = 0; _i5 < selectedHoles.size; _i5++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i5)]), evt.payload, state, _layer, props.catalog, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['holes', selectedHoles.get(_i5)]), evt.payload, props.catalog, props.projectActions, evt.callback);
|
|
1373
|
+
for (_i6 = 0; _i6 < selectedItems.size; _i6++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i6)]), evt.payload, state, _layer, props.catalog, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(_layer.getIn(['items', selectedItems.get(_i6)]), evt.payload, props.catalog, props.projectActions, evt.callback);
|
|
1367
1374
|
return _context1.abrupt("continue", 35);
|
|
1368
1375
|
case 31:
|
|
1369
1376
|
_layerID = state.scene.selectedLayer;
|
|
1370
|
-
|
|
1377
|
+
_layer2 = state.scene.getIn(['layers', _layerID]).toJS();
|
|
1371
1378
|
orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
|
|
1372
|
-
originalItem =
|
|
1379
|
+
originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
|
|
1373
1380
|
_context1.next = 32;
|
|
1374
1381
|
return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
|
|
1375
1382
|
case 32:
|
|
@@ -1391,11 +1398,14 @@ function _handleExternalEvent() {
|
|
|
1391
1398
|
case 33:
|
|
1392
1399
|
setFinishing(props, state, evt.payload);
|
|
1393
1400
|
case 34:
|
|
1401
|
+
sceneData = state.scene.toJS(); // get molding data for "ReviewForQuote"
|
|
1402
|
+
currentTexture = layer.doorStyle !== null || layer.doorStyle !== undefined ? layer.doorStyle : props.state.doorStyle.toJS();
|
|
1403
|
+
sceneData.layers[layerId].moldingData = (0, _molding.getMoldingDataOfScene)(layer, props.catalog, currentTexture);
|
|
1394
1404
|
// send scene object from 3DTool to HostApp using internalEvent
|
|
1395
1405
|
(_props$onInternalEven3 = props.onInternalEvent) === null || _props$onInternalEven3 === void 0 || _props$onInternalEven3.call(props, {
|
|
1396
1406
|
type: _constants.INTERNAL_EVENT_SYNC_SCENE,
|
|
1397
1407
|
value: {
|
|
1398
|
-
scene:
|
|
1408
|
+
scene: sceneData
|
|
1399
1409
|
}
|
|
1400
1410
|
});
|
|
1401
1411
|
return _context1.abrupt("continue", 35);
|
package/lib/utils/molding.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.getItemRect = getItemRect;
|
|
|
12
12
|
exports.getLinesFromItems = getLinesFromItems;
|
|
13
13
|
exports.getLinesFromItems2 = getLinesFromItems2;
|
|
14
14
|
exports.getLinesOfItem = getLinesOfItem;
|
|
15
|
+
exports.getMoldingDataOfScene = getMoldingDataOfScene;
|
|
15
16
|
exports.hasMoldingLayout = hasMoldingLayout;
|
|
16
17
|
exports.isAttachedWall = isAttachedWall;
|
|
17
18
|
exports.isEnableItemForMolding = isEnableItemForMolding;
|
|
@@ -892,4 +893,236 @@ function createMonldingGroup(oldMG, layer, molding, catalog) {
|
|
|
892
893
|
newMG.lines.reverse();
|
|
893
894
|
newMG = getMDPoints(newMG);
|
|
894
895
|
return newMG;
|
|
896
|
+
}
|
|
897
|
+
function getMoldingDataOfScene(layer, catalog, doorStyle) {
|
|
898
|
+
var moldingData = [];
|
|
899
|
+
var items = layer.items.toArray();
|
|
900
|
+
var moldings = [];
|
|
901
|
+
// get all moldings info
|
|
902
|
+
items.forEach(function (itemCat) {
|
|
903
|
+
var _itemCat$molding;
|
|
904
|
+
itemCat === null || itemCat === void 0 || (_itemCat$molding = itemCat.molding) === null || _itemCat$molding === void 0 || _itemCat$molding.forEach(function (molding) {
|
|
905
|
+
if (!moldings.some(function (m) {
|
|
906
|
+
return m.name === molding.name;
|
|
907
|
+
})) moldings.push(molding);
|
|
908
|
+
});
|
|
909
|
+
});
|
|
910
|
+
|
|
911
|
+
// calc normal molding
|
|
912
|
+
moldings.forEach(function (molding) {
|
|
913
|
+
var itemGroups = [];
|
|
914
|
+
var temp_items = [];
|
|
915
|
+
items.forEach(function (item) {
|
|
916
|
+
if (item.molding.some(function (mol) {
|
|
917
|
+
return mol.itemID === molding.itemID;
|
|
918
|
+
}) && isEnableItemForMolding(layer, item)) {
|
|
919
|
+
temp_items.push(item);
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
if (temp_items.length) {
|
|
923
|
+
while (temp_items.length > 0) {
|
|
924
|
+
var itemGroup = [temp_items[0]];
|
|
925
|
+
var _loop9 = function _loop9(_idx) {
|
|
926
|
+
if (!itemGroup.some(function (it) {
|
|
927
|
+
return it.id === temp_items[_idx].id;
|
|
928
|
+
}) && isItemSnappedGroup(temp_items[_idx], itemGroup)) {
|
|
929
|
+
itemGroup.push(temp_items[_idx]);
|
|
930
|
+
_idx = 0;
|
|
931
|
+
}
|
|
932
|
+
idx = _idx;
|
|
933
|
+
};
|
|
934
|
+
for (var idx = 0; idx < temp_items.length; idx++) {
|
|
935
|
+
_loop9(idx);
|
|
936
|
+
}
|
|
937
|
+
itemGroup.forEach(function (item) {
|
|
938
|
+
var index = temp_items.findIndex(function (it) {
|
|
939
|
+
return it.id === item.id;
|
|
940
|
+
});
|
|
941
|
+
if (index > -1) {
|
|
942
|
+
temp_items.splice(index, 1);
|
|
943
|
+
}
|
|
944
|
+
});
|
|
945
|
+
itemGroups.push(itemGroup);
|
|
946
|
+
}
|
|
947
|
+
var molding_totalLength = 0;
|
|
948
|
+
itemGroups.forEach(function (itemgroup) {
|
|
949
|
+
var allLineRects = _export.GeometryUtils.buildRectFromLines(layer, _export.GeometryUtils.getAllLines(layer));
|
|
950
|
+
var items = (0, _toConsumableArray2["default"])(itemgroup);
|
|
951
|
+
var MGlines = getLinesOfItem(items[0], allLineRects, catalog);
|
|
952
|
+
items = sortItemsByDistance(items, items[0]);
|
|
953
|
+
var _loop0 = function _loop0() {
|
|
954
|
+
var itemLines = getLinesOfItem(items[i], allLineRects, catalog);
|
|
955
|
+
var temp_MGLines = [];
|
|
956
|
+
MGlines.forEach(function (line) {
|
|
957
|
+
var idx = itemLines.findIndex(function (itemLine) {
|
|
958
|
+
return isLinesOverlapped(line, itemLine);
|
|
959
|
+
});
|
|
960
|
+
var curItemLine = itemLines[idx];
|
|
961
|
+
if (idx > -1) {
|
|
962
|
+
if (!(_export.GeometryUtils.samePoints(line[0], curItemLine[0]) && _export.GeometryUtils.samePoints(line[1], curItemLine[1]) || _export.GeometryUtils.samePoints(line[0], curItemLine[1]) && _export.GeometryUtils.samePoints(line[1], curItemLine[0]))) {
|
|
963
|
+
var MGLine = mergeOverlappedLines(line, curItemLine);
|
|
964
|
+
temp_MGLines.push(MGLine);
|
|
965
|
+
}
|
|
966
|
+
itemLines.splice(idx, 1);
|
|
967
|
+
} else {
|
|
968
|
+
temp_MGLines.push(line);
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
itemLines.forEach(function (itemLine) {
|
|
972
|
+
return temp_MGLines.push(itemLine);
|
|
973
|
+
});
|
|
974
|
+
MGlines = [].concat(temp_MGLines);
|
|
975
|
+
};
|
|
976
|
+
for (var i = 1; i < items.length; i++) {
|
|
977
|
+
_loop0();
|
|
978
|
+
}
|
|
979
|
+
MGlines.forEach(function (line) {
|
|
980
|
+
molding_totalLength += _export.GeometryUtils.verticesDistance(line[0], line[1]);
|
|
981
|
+
});
|
|
982
|
+
});
|
|
983
|
+
molding_totalLength = (0, _convertUnitsLite.convert)(molding_totalLength).from('cm').to('in');
|
|
984
|
+
moldingData.push(_objectSpread(_objectSpread({}, molding), {}, {
|
|
985
|
+
doorStyle: doorStyle,
|
|
986
|
+
count: Math.ceil(molding_totalLength * 1.1 / 96)
|
|
987
|
+
}));
|
|
988
|
+
}
|
|
989
|
+
});
|
|
990
|
+
|
|
991
|
+
// calc toe kick molding
|
|
992
|
+
var tmp = [];
|
|
993
|
+
items.forEach(function (item) {
|
|
994
|
+
if (item.category === 'cabinet' && !item.cabinet_category.toLowerCase().includes('microwave')) {
|
|
995
|
+
tmp.push(item);
|
|
996
|
+
}
|
|
997
|
+
});
|
|
998
|
+
var tmpMoldingData = [];
|
|
999
|
+
var toedoorStyles = [];
|
|
1000
|
+
tmp.map(function (item) {
|
|
1001
|
+
var _item$molding;
|
|
1002
|
+
if (item.layoutpos === _constants.BASE_CABINET_LAYOUTPOS && ((0, _helper.isEmpty)(item.molding) || ((_item$molding = item.molding) === null || _item$molding === void 0 ? void 0 : _item$molding.length) < 1 || !isEnableItemForMolding(layer, item))) {
|
|
1003
|
+
var w = item.properties.get('width').get('_length');
|
|
1004
|
+
var wUnit = item.properties.get('width').get('_unit') || 'cm';
|
|
1005
|
+
w = (0, _convertUnitsLite.convert)(w / 2).from(wUnit).to('cm');
|
|
1006
|
+
var h = item.properties.get('depth').get('_length');
|
|
1007
|
+
var hUnit = item.properties.get('depth').get('_unit') || 'cm';
|
|
1008
|
+
h = (0, _convertUnitsLite.convert)(h / 2).from(hUnit).to('cm');
|
|
1009
|
+
var outline = null;
|
|
1010
|
+
var element = catalog.elements[item.get('type')];
|
|
1011
|
+
if (!element) element = catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(item.get('type'))];
|
|
1012
|
+
outline = element.info.outline;
|
|
1013
|
+
var len = 0;
|
|
1014
|
+
if (outline) {
|
|
1015
|
+
// Extract Points from `outline`
|
|
1016
|
+
var outlinePaths = outline.paths;
|
|
1017
|
+
var outlineWidth = outline.svgWidth;
|
|
1018
|
+
var outlineHeight = outline.svgHeight;
|
|
1019
|
+
var outlinePoints = []; // Hold Points Of SVG
|
|
1020
|
+
var _iterator3 = _createForOfIteratorHelper(outlinePaths),
|
|
1021
|
+
_step3;
|
|
1022
|
+
try {
|
|
1023
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
1024
|
+
var path = _step3.value;
|
|
1025
|
+
var _iterator4 = _createForOfIteratorHelper(path.subPaths),
|
|
1026
|
+
_step4;
|
|
1027
|
+
try {
|
|
1028
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
1029
|
+
var subPath = _step4.value;
|
|
1030
|
+
outlinePoints = outlinePoints.concat(subPath.getPoints());
|
|
1031
|
+
}
|
|
1032
|
+
} catch (err) {
|
|
1033
|
+
_iterator4.e(err);
|
|
1034
|
+
} finally {
|
|
1035
|
+
_iterator4.f();
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
} catch (err) {
|
|
1039
|
+
_iterator3.e(err);
|
|
1040
|
+
} finally {
|
|
1041
|
+
_iterator3.f();
|
|
1042
|
+
}
|
|
1043
|
+
var maxX = outlinePoints[0].x,
|
|
1044
|
+
minX = outlinePoints[0].x;
|
|
1045
|
+
var maxY = outlinePoints[0].y,
|
|
1046
|
+
minY = outlinePoints[0].y;
|
|
1047
|
+
outlinePoints.forEach(function (point) {
|
|
1048
|
+
if (point.x > maxX) {
|
|
1049
|
+
maxX = point.x;
|
|
1050
|
+
}
|
|
1051
|
+
if (point.x < minX) {
|
|
1052
|
+
minX = point.x;
|
|
1053
|
+
}
|
|
1054
|
+
if (point.y > maxY) {
|
|
1055
|
+
maxY = point.y;
|
|
1056
|
+
}
|
|
1057
|
+
if (point.y < minY) {
|
|
1058
|
+
minY = point.y;
|
|
1059
|
+
}
|
|
1060
|
+
});
|
|
1061
|
+
outlinePoints.forEach(function (point) {
|
|
1062
|
+
if (_export.GeometryUtils.isPointInRect([{
|
|
1063
|
+
x: minX,
|
|
1064
|
+
y: minY
|
|
1065
|
+
}, {
|
|
1066
|
+
x: minX,
|
|
1067
|
+
y: maxY
|
|
1068
|
+
}, {
|
|
1069
|
+
x: maxX,
|
|
1070
|
+
y: maxY
|
|
1071
|
+
}, {
|
|
1072
|
+
x: maxX,
|
|
1073
|
+
y: minY
|
|
1074
|
+
}], point)) {
|
|
1075
|
+
if (point.x > 10) len += (point.x / outlineWidth - 0.5) * w * 2 + h * 2 - (point.y / outlineHeight - 0.5) * h * 2;
|
|
1076
|
+
}
|
|
1077
|
+
});
|
|
1078
|
+
len = (0, _convertUnitsLite.convert)(len).from('cm').to('in');
|
|
1079
|
+
} else {
|
|
1080
|
+
w = (0, _convertUnitsLite.convert)(w * 2).from('cm').to('in');
|
|
1081
|
+
len += w;
|
|
1082
|
+
}
|
|
1083
|
+
var doorIndex = toedoorStyles.findIndex(function (a) {
|
|
1084
|
+
var iDS = item === null || item === void 0 ? void 0 : item.doorStyle;
|
|
1085
|
+
if (!iDS) return false;
|
|
1086
|
+
if (!iDS.hasOwnProperty('id')) {
|
|
1087
|
+
iDS = iDS.toJS();
|
|
1088
|
+
}
|
|
1089
|
+
return a.doorStyle.id === iDS.id && (0, _utils.isEqualInstallationType)(a.doorStyle, iDS);
|
|
1090
|
+
});
|
|
1091
|
+
if (doorIndex > -1) {
|
|
1092
|
+
toedoorStyles[doorIndex].totalLength += len;
|
|
1093
|
+
} else {
|
|
1094
|
+
toedoorStyles.push({
|
|
1095
|
+
doorStyle: item.doorStyle.hasOwnProperty('id') ? item.doorStyle : item.doorStyle && item.doorStyle.toJS(),
|
|
1096
|
+
totalLength: len
|
|
1097
|
+
});
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
});
|
|
1101
|
+
toedoorStyles.forEach(function (doorStyle) {
|
|
1102
|
+
var skuName = (0, _utils.getToeKickSKU)(doorStyle.doorStyle, catalog);
|
|
1103
|
+
var thumbnail = skuName ? skuName : '';
|
|
1104
|
+
// moldings.forEach(molding => {
|
|
1105
|
+
// if (
|
|
1106
|
+
// molding.name ===
|
|
1107
|
+
// getToeKickSKU(
|
|
1108
|
+
// doorStyle.doorStyle,
|
|
1109
|
+
// catalog,
|
|
1110
|
+
// true
|
|
1111
|
+
// )
|
|
1112
|
+
// )
|
|
1113
|
+
// thumbnail = molding.thumbnail;
|
|
1114
|
+
// });
|
|
1115
|
+
|
|
1116
|
+
doorStyle.totalLength && tmpMoldingData.push({
|
|
1117
|
+
name: _constants.TOE_KICK_MOLDING,
|
|
1118
|
+
sku: (0, _utils.getToeKickSKU)(doorStyle.doorStyle, catalog),
|
|
1119
|
+
thumbnail: thumbnail,
|
|
1120
|
+
category: 'molding',
|
|
1121
|
+
type: 'cabinet',
|
|
1122
|
+
doorStyle: doorStyle.doorStyle,
|
|
1123
|
+
count: Math.ceil(doorStyle.totalLength * 1.1 / 96)
|
|
1124
|
+
});
|
|
1125
|
+
});
|
|
1126
|
+
if (tmpMoldingData.length > 0) moldingData = [].concat((0, _toConsumableArray2["default"])(moldingData), tmpMoldingData);
|
|
1127
|
+
return moldingData;
|
|
895
1128
|
}
|