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.
@@ -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, catalog),
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, 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, _layerId, layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i4, _i5, _i6, _evt$payload9, _evt$payload0, _evt$payload1, _evt$payload10, _layerID, _layer, orginalItemInfo, originalItem, originalItemPos, replaceItem, _props$onInternalEven3, _t5;
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 = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
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
- layerId = state.getIn(['scene', 'selectedLayer']);
1225
+ _layerId = state.getIn(['scene', 'selectedLayer']);
1219
1226
  _cdsItems = [];
1220
- allItems = state.getIn(['scene', 'layers', layerId, 'items']).toJS();
1221
- selectedItemId = state.getIn(['scene', 'layers', layerId]).selected.items.toJS()[0];
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 it.itemID === v.itemID && it.name === v.name && cdsId === v.cdsId;
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
- _layerId = state.getIn(['scene', 'selectedLayer']);
1362
- layer = state.getIn(['scene', 'layers', _layerId]);
1363
- _layer$getIn = layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1364
- 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);
1365
- 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);
1366
- 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);
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
- _layer = state.scene.getIn(['layers', _layerID]).toJS();
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 = _layer === null || _layer === void 0 ? void 0 : _layer.items[orginalItemInfo.id];
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: state.scene.toJS()
1408
+ scene: sceneData
1399
1409
  }
1400
1410
  });
1401
1411
  return _context1.abrupt("continue", 35);
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "3.1.10",
3
+ "version": "3.1.12",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",