kitchen-simulator 3.1.12 → 3.1.14

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.
@@ -5,7 +5,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
5
5
  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) { _defineProperty(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; }
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
7
  import { Map } from 'immutable';
8
- import { EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, MODE_IDLE, MODE_2D_PAN, EXTERNAL_EVENT_ADD_ITEM, ARRAY_3D_MODES, MODE_IDLE_3D, MODE_ELEVATION_VIEW, MODE_DRAWING_LINE, TOP, BOTTOM, LEFT, RIGHT, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, INTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, ATT_ITEM_POS, ATT_LINE_LENGTH, ATT_VERTEXT_ONE, ATT_VERTEXT_TWO, ATT_HOLE_OFFSET_A, ATT_HOLE_OFFSET_B, UNIT_CENTIMETER, UNIT_INCH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_CENTERING_2D, EXTERNAL_EVENT_DUPLICATE_ELEMENT, EXTERNAL_EVENT_DELETE_ELEMENT, ELEMENT_HOLE, ELEMENT_ITEM, ELEMENT_LINE, EXTERNAL_EVENT_REPLACE_CABINET, FINISHING_TYPE, EXTERNAL_EVENT_SET_FINISHING } from "../constants";
8
+ import { EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, MODE_IDLE, MODE_2D_PAN, EXTERNAL_EVENT_ADD_ITEM, ARRAY_3D_MODES, MODE_IDLE_3D, MODE_ELEVATION_VIEW, MODE_DRAWING_LINE, TOP, BOTTOM, LEFT, RIGHT, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, INTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, ATT_ITEM_POS, ATT_LINE_LENGTH, ATT_VERTEXT_ONE, ATT_VERTEXT_TWO, ATT_HOLE_OFFSET_A, ATT_HOLE_OFFSET_B, UNIT_CENTIMETER, UNIT_INCH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_CENTERING_2D, EXTERNAL_EVENT_DUPLICATE_ELEMENT, EXTERNAL_EVENT_DELETE_ELEMENT, ELEMENT_HOLE, ELEMENT_ITEM, ELEMENT_LINE, EXTERNAL_EVENT_REPLACE_CABINET, FINISHING_TYPE, EXTERNAL_EVENT_SET_FINISHING, EXTERNAL_EVENT_ROTATE_PAN } from "../constants";
9
9
  import { isEmpty, updateViwer2D, centering2D } from "./helper";
10
10
  import exporter from "../catalog/utils/exporter";
11
11
  import { render2DItem, render3DItem, render3DApplianceItem, render3DLightingItem } from "../catalog/utils/item-loader";
@@ -1000,53 +1000,87 @@ function setFinishing(props, state, payload) {
1000
1000
  break;
1001
1001
  }
1002
1002
  }
1003
- function movePan2D3D(props, payload, state) {
1004
- var moveType = payload.moveType,
1005
- moveValue = payload.moveValue;
1006
- var value = state.getIn(['viewer2D']).toJS();
1007
- if (state.mode === MODE_IDLE) {
1008
- switch (moveType) {
1009
- case TOP:
1010
- value.f -= moveValue;
1011
- break;
1012
- case BOTTOM:
1013
- value.f += moveValue;
1014
- break;
1015
- case RIGHT:
1016
- value.e += moveValue;
1017
- break;
1018
- case LEFT:
1019
- value.e -= moveValue;
1020
- break;
1003
+ function moveAndRotatePan2D3D(eventType, props, payload, state) {
1004
+ if (eventType === EXTERNAL_EVENT_MOVE_PAN) {
1005
+ var moveType = payload.moveType,
1006
+ moveValue = payload.moveValue;
1007
+ var value = state.getIn(['viewer2D']).toJS();
1008
+ if (state.mode === MODE_IDLE) {
1009
+ switch (moveType) {
1010
+ case TOP:
1011
+ value.f -= moveValue;
1012
+ break;
1013
+ case BOTTOM:
1014
+ value.f += moveValue;
1015
+ break;
1016
+ case RIGHT:
1017
+ value.e += moveValue;
1018
+ break;
1019
+ case LEFT:
1020
+ value.e -= moveValue;
1021
+ break;
1022
+ }
1023
+ updateViwer2D(value, props.viewer2DActions);
1024
+ } else if (state.mode === MODE_IDLE_3D) {
1025
+ switch (moveType) {
1026
+ case TOP:
1027
+ window.interval = setTimeout(function () {
1028
+ window.tDKeyDown({
1029
+ keyCode: 38
1030
+ });
1031
+ }, 50);
1032
+ break;
1033
+ case BOTTOM:
1034
+ window.interval = setTimeout(function () {
1035
+ window.tDKeyDown({
1036
+ keyCode: 40
1037
+ });
1038
+ }, 50);
1039
+ break;
1040
+ case RIGHT:
1041
+ window.interval = setTimeout(function () {
1042
+ window.tDKeyDown({
1043
+ keyCode: 37
1044
+ });
1045
+ }, 50);
1046
+ break;
1047
+ case LEFT:
1048
+ window.interval = setTimeout(function () {
1049
+ window.tDKeyDown({
1050
+ keyCode: 39
1051
+ });
1052
+ }, 50);
1053
+ break;
1054
+ }
1021
1055
  }
1022
- updateViwer2D(value, props.viewer2DActions);
1023
- } else if (state.mode === MODE_IDLE_3D) {
1024
- switch (moveType) {
1056
+ } else if (eventType === EXTERNAL_EVENT_ROTATE_PAN) {
1057
+ var rotateType = payload.rotateType;
1058
+ switch (rotateType) {
1025
1059
  case TOP:
1026
1060
  window.interval = setTimeout(function () {
1027
- window.tDKeyDown({
1028
- keyCode: 38
1061
+ window.SPKeyDown({
1062
+ keyCode: 87
1029
1063
  });
1030
1064
  }, 50);
1031
1065
  break;
1032
1066
  case BOTTOM:
1033
1067
  window.interval = setTimeout(function () {
1034
- window.tDKeyDown({
1035
- keyCode: 40
1068
+ window.SPKeyDown({
1069
+ keyCode: 83
1036
1070
  });
1037
1071
  }, 50);
1038
1072
  break;
1039
1073
  case RIGHT:
1040
1074
  window.interval = setTimeout(function () {
1041
- window.tDKeyDown({
1042
- keyCode: 39
1075
+ window.SPKeyDown({
1076
+ keyCode: 68
1043
1077
  });
1044
1078
  }, 50);
1045
1079
  break;
1046
1080
  case LEFT:
1047
1081
  window.interval = setTimeout(function () {
1048
- window.tDKeyDown({
1049
- keyCode: 37
1082
+ window.SPKeyDown({
1083
+ keyCode: 65
1050
1084
  });
1051
1085
  }, 50);
1052
1086
  break;
@@ -1059,7 +1093,7 @@ export function handleExternalEvent(_x10) {
1059
1093
  function _handleExternalEvent() {
1060
1094
  _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(props) {
1061
1095
  var _evt$payload3, _evt$payload4;
1062
- 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;
1096
+ var evt, state, layerId, layer, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, _state$getIn, element, cds, _cds$find, currentCdsId, _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, _t6;
1063
1097
  return _regeneratorRuntime.wrap(function (_context1) {
1064
1098
  while (1) switch (_context1.prev = _context1.next) {
1065
1099
  case 0:
@@ -1069,7 +1103,7 @@ function _handleExternalEvent() {
1069
1103
  layerId = state.getIn(['scene', 'selectedLayer']);
1070
1104
  layer = state.getIn(['scene', 'layers', layerId]);
1071
1105
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
1072
- _context1.next = _t5 === EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === EXTERNAL_EVENT_NEW_PROJECT ? 14 : _t5 === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 15 : _t5 === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 19 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 20 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 21 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 22 : _t5 === EXTERNAL_EVENT_UNDO ? 23 : _t5 === EXTERNAL_EVENT_REDO ? 24 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 25 : _t5 === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 27 : _t5 === EXTERNAL_EVENT_DELETE_ELEMENT ? 28 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 29 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 30 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 30 : _t5 === EXTERNAL_EVENT_REPLACE_CABINET ? 31 : _t5 === EXTERNAL_EVENT_SET_FINISHING ? 33 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 34 : 35;
1106
+ _context1.next = _t5 === EXTERNAL_EVENT_LOAD_PROJECT ? 1 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_3D ? 5 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_2D ? 6 : _t5 === EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 7 : _t5 === EXTERNAL_EVENT_ADD_WALL ? 8 : _t5 === EXTERNAL_EVENT_ADD_ITEM ? 9 : _t5 === EXTERNAL_EVENT_ADD_HOLE ? 12 : _t5 === EXTERNAL_EVENT_ROTATE_PAN ? 13 : _t5 === EXTERNAL_EVENT_MOVE_PAN ? 13 : _t5 === EXTERNAL_EVENT_NEW_PROJECT ? 14 : _t5 === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 15 : _t5 === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 19 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 20 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 21 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 22 : _t5 === EXTERNAL_EVENT_UNDO ? 23 : _t5 === EXTERNAL_EVENT_REDO ? 24 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 25 : _t5 === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 27 : _t5 === EXTERNAL_EVENT_DELETE_ELEMENT ? 28 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 29 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 38 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 38 : _t5 === EXTERNAL_EVENT_REPLACE_CABINET ? 39 : _t5 === EXTERNAL_EVENT_SET_FINISHING ? 41 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 42 : 43;
1073
1107
  break;
1074
1108
  case 1:
1075
1109
  // prepare item data request
@@ -1154,29 +1188,41 @@ function _handleExternalEvent() {
1154
1188
  };
1155
1189
  }());
1156
1190
  }
1157
- return _context1.abrupt("continue", 35);
1191
+ return _context1.abrupt("continue", 43);
1158
1192
  case 5:
1159
1193
  props.projectActions.setMode(MODE_IDLE_3D);
1160
- return _context1.abrupt("continue", 35);
1194
+ return _context1.abrupt("continue", 43);
1161
1195
  case 6:
1162
1196
  props.projectActions.setMode(MODE_IDLE);
1163
- return _context1.abrupt("continue", 35);
1197
+ return _context1.abrupt("continue", 43);
1164
1198
  case 7:
1165
1199
  sLineCnt = layer.selected.lines.size;
1166
1200
  if (sLineCnt > 0) props.projectActions.setMode(MODE_ELEVATION_VIEW);
1167
- return _context1.abrupt("continue", 35);
1201
+ return _context1.abrupt("continue", 43);
1168
1202
  case 8:
1169
1203
  if (state.mode === MODE_IDLE || state.mode === MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1170
1204
  props.projectActions.setMode(MODE_IDLE);
1171
1205
  props.linesActions.selectToolDrawingLine('wall');
1172
1206
  }
1173
- return _context1.abrupt("continue", 35);
1207
+ return _context1.abrupt("continue", 43);
1174
1208
  case 9:
1175
1209
  if (isEmpty(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1176
1210
  _context1.next = 11;
1177
1211
  break;
1178
1212
  }
1179
- element = evt.payload;
1213
+ element = evt.payload; ///// filter the tempPlaceholders using layer-doorstyle-cds
1214
+ cds = (_state$getIn = state.getIn(['scene', 'layers', 'layer-1', 'doorStyle'])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.cds;
1215
+ if (cds) {
1216
+ currentCdsId = (_cds$find = cds.find(function (c) {
1217
+ return c.itemID === element.itemID;
1218
+ })) === null || _cds$find === void 0 ? void 0 : _cds$find.cabinet_door_style_id;
1219
+ if (currentCdsId && element.structure_json.tempPlaceholders.length > 0) {
1220
+ element.structure_json.tempPlaceholders[0] = element.structure_json.tempPlaceholders.find(function (tPlaceholder) {
1221
+ return tPlaceholder.id === currentCdsId;
1222
+ });
1223
+ }
1224
+ }
1225
+ /////
1180
1226
  _context1.next = 10;
1181
1227
  return addItemToCatalog(element, state, props.catalog, props.projectActions);
1182
1228
  case 10:
@@ -1201,18 +1247,18 @@ function _handleExternalEvent() {
1201
1247
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1202
1248
  props.projectActions.setIsCabinetDrawing(true);
1203
1249
  case 11:
1204
- return _context1.abrupt("continue", 35);
1250
+ return _context1.abrupt("continue", 43);
1205
1251
  case 12:
1206
1252
  ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$payload3 = evt.payload) === null || _evt$payload3 === void 0 ? void 0 : _evt$payload3.holeName) : props.holesActions.selectToolDrawingHole(evt === null || evt === void 0 || (_evt$payload4 = evt.payload) === null || _evt$payload4 === void 0 ? void 0 : _evt$payload4.holeName);
1207
- return _context1.abrupt("continue", 35);
1253
+ return _context1.abrupt("continue", 43);
1208
1254
  case 13:
1209
- movePan2D3D(props, evt.payload, state);
1210
- return _context1.abrupt("continue", 35);
1255
+ moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
1256
+ return _context1.abrupt("continue", 43);
1211
1257
  case 14:
1212
1258
  defaulTitle = 'Untitle';
1213
1259
  props.projectActions.newProject();
1214
1260
  props.projectActions.rename(defaulTitle);
1215
- return _context1.abrupt("continue", 35);
1261
+ return _context1.abrupt("continue", 43);
1216
1262
  case 15:
1217
1263
  _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll; // prepare item data request
1218
1264
  _layerId = state.getIn(['scene', 'selectedLayer']);
@@ -1297,11 +1343,11 @@ function _handleExternalEvent() {
1297
1343
  };
1298
1344
  }());
1299
1345
  } else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1300
- return _context1.abrupt("continue", 35);
1346
+ return _context1.abrupt("continue", 43);
1301
1347
  case 19:
1302
1348
  _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1303
1349
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1304
- return _context1.abrupt("continue", 35);
1350
+ return _context1.abrupt("continue", 43);
1305
1351
  case 20:
1306
1352
  value = state.getIn(['viewer2D']).toJS();
1307
1353
  value.a += 0.1;
@@ -1309,7 +1355,7 @@ function _handleExternalEvent() {
1309
1355
  value.e -= value.SVGWidth * 0.1 / 2;
1310
1356
  value.f -= value.SVGHeight * 0.1 / 2;
1311
1357
  updateViwer2D(value, props.viewer2DActions);
1312
- return _context1.abrupt("continue", 35);
1358
+ return _context1.abrupt("continue", 43);
1313
1359
  case 21:
1314
1360
  _value = state.getIn(['viewer2D']).toJS();
1315
1361
  _value.a -= 0.1;
@@ -1317,62 +1363,74 @@ function _handleExternalEvent() {
1317
1363
  _value.e += _value.SVGWidth * 0.1 / 2;
1318
1364
  _value.f += _value.SVGHeight * 0.1 / 2;
1319
1365
  updateViwer2D(_value, props.viewer2DActions);
1320
- return _context1.abrupt("continue", 35);
1366
+ return _context1.abrupt("continue", 43);
1321
1367
  case 22:
1322
1368
  centering2D(state, props.viewer2DActions);
1323
- return _context1.abrupt("continue", 35);
1369
+ return _context1.abrupt("continue", 43);
1324
1370
  case 23:
1325
1371
  props.projectActions.undo();
1326
- return _context1.abrupt("continue", 35);
1372
+ return _context1.abrupt("continue", 43);
1327
1373
  case 24:
1328
1374
  props.projectActions.redo();
1329
- return _context1.abrupt("continue", 35);
1375
+ return _context1.abrupt("continue", 43);
1330
1376
  case 25:
1331
1377
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1332
1378
  _context1.next = 26;
1333
1379
  return loadMoldingSvg(moldingInfo);
1334
1380
  case 26:
1335
1381
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1336
- return _context1.abrupt("continue", 35);
1382
+ return _context1.abrupt("continue", 43);
1337
1383
  case 27:
1338
1384
  distElement = getElement(evt.payload, state);
1339
1385
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
1340
- return _context1.abrupt("continue", 35);
1386
+ return _context1.abrupt("continue", 43);
1341
1387
  case 28:
1342
1388
  _distElement = getElement(evt.payload, state);
1343
1389
  if (_distElement) props.projectActions.remove(_distElement);
1344
- return _context1.abrupt("continue", 35);
1390
+ return _context1.abrupt("continue", 43);
1345
1391
  case 29:
1346
1392
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value2 = _evt$payload8.value;
1347
- if (option === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1348
- props.viewer2DActions.updateCeilHeight(_value2);
1349
- props.viewer3DActions.update3DCeilHeight(_value2);
1350
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE) {
1351
- props.viewer2DActions.changeWallLengthMeasure(_value2);
1352
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE) {
1353
- props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1354
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE) {
1355
- props.viewer2DActions.changeWallCabinetMeasure(_value2);
1356
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1357
- props.viewer2DActions.changeWindowDoorMeasure(_value2);
1358
- }
1359
- return _context1.abrupt("continue", 35);
1393
+ _t6 = option;
1394
+ _context1.next = _t6 === PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT ? 30 : _t6 === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT ? 31 : _t6 === PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE ? 32 : _t6 === PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE ? 33 : _t6 === PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE ? 34 : _t6 === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE ? 35 : 36;
1395
+ break;
1360
1396
  case 30:
1397
+ props.viewer2DActions.updateCeilHeightUnit(_value2);
1398
+ case 31:
1399
+ props.viewer2DActions.updateCeilHeight(_value2);
1400
+ props.viewer3DActions.update3DCeilHeight(_value2);
1401
+ return _context1.abrupt("continue", 37);
1402
+ case 32:
1403
+ props.viewer2DActions.changeWallLengthMeasure(_value2);
1404
+ return _context1.abrupt("continue", 37);
1405
+ case 33:
1406
+ props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1407
+ return _context1.abrupt("continue", 37);
1408
+ case 34:
1409
+ props.viewer2DActions.changeWallCabinetMeasure(_value2);
1410
+ return _context1.abrupt("continue", 37);
1411
+ case 35:
1412
+ props.viewer2DActions.changeWindowDoorMeasure(_value2);
1413
+ return _context1.abrupt("continue", 37);
1414
+ case 36:
1415
+ return _context1.abrupt("continue", 37);
1416
+ case 37:
1417
+ return _context1.abrupt("continue", 43);
1418
+ case 38:
1361
1419
  _layerId2 = state.getIn(['scene', 'selectedLayer']);
1362
1420
  _layer = state.getIn(['scene', 'layers', _layerId2]);
1363
1421
  _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1364
1422
  for (_i4 = 0; _i4 < selectedLines.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === 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
1423
  for (_i5 = 0; _i5 < selectedHoles.size; _i5++) (evt === null || evt === void 0 ? void 0 : evt.type) === 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
1424
  for (_i6 = 0; _i6 < selectedItems.size; _i6++) (evt === null || evt === void 0 ? void 0 : evt.type) === 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
- return _context1.abrupt("continue", 35);
1368
- case 31:
1425
+ return _context1.abrupt("continue", 43);
1426
+ case 39:
1369
1427
  _layerID = state.scene.selectedLayer;
1370
1428
  _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1371
1429
  orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1372
1430
  originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1373
- _context1.next = 32;
1431
+ _context1.next = 40;
1374
1432
  return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
1375
- case 32:
1433
+ case 40:
1376
1434
  originalItemPos = {
1377
1435
  rotation: originalItem.rotation,
1378
1436
  selectedItemId: originalItem.id,
@@ -1387,10 +1445,11 @@ function _handleExternalEvent() {
1387
1445
  }
1388
1446
  };
1389
1447
  props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
1390
- return _context1.abrupt("continue", 35);
1391
- case 33:
1448
+ return _context1.abrupt("continue", 43);
1449
+ case 41:
1392
1450
  setFinishing(props, state, evt.payload);
1393
- case 34:
1451
+ return _context1.abrupt("continue", 43);
1452
+ case 42:
1394
1453
  sceneData = state.scene.toJS(); // get molding data for "ReviewForQuote"
1395
1454
  currentTexture = layer.doorStyle !== null || layer.doorStyle !== undefined ? layer.doorStyle : props.state.doorStyle.toJS();
1396
1455
  sceneData.layers[layerId].moldingData = getMoldingDataOfScene(layer, props.catalog, currentTexture);
@@ -1401,8 +1460,8 @@ function _handleExternalEvent() {
1401
1460
  scene: sceneData
1402
1461
  }
1403
1462
  });
1404
- return _context1.abrupt("continue", 35);
1405
- case 35:
1463
+ return _context1.abrupt("continue", 43);
1464
+ case 43:
1406
1465
  case "end":
1407
1466
  return _context1.stop();
1408
1467
  }
@@ -30,7 +30,7 @@ var _translator = _interopRequireDefault(require("./translator/translator"));
30
30
  var _objectsUtils = require("./utils/objects-utils");
31
31
  var _version = require("./version");
32
32
  var _isolateEventHandler = require("./utils/isolate-event-handler");
33
- var _excluded = ["width", "height", "state", "stateExtractor"];
33
+ var _excluded = ["width", "height", "state", "stateExtractor", "measurementUnit"];
34
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 _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); }
35
35
  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
36
  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; }
@@ -371,6 +371,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
371
371
  height = _this$props2.height,
372
372
  state = _this$props2.state,
373
373
  stateExtractor = _this$props2.stateExtractor,
374
+ measurementUnit = _this$props2.measurementUnit,
374
375
  props = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
375
376
  var _this$state = this.state,
376
377
  savePopupVisible = _this$state.savePopupVisible,
@@ -413,6 +414,9 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
413
414
  extractedState = extractedState.merge({
414
415
  viewer2D: _viewer2D
415
416
  });
417
+
418
+ // set the measurement unit after project setup
419
+ if (measurementUnit) this.props.viewer2DActions.updateCeilHeightUnit(measurementUnit);
416
420
  return /*#__PURE__*/_react["default"].createElement("section", null, /*#__PURE__*/_react["default"].createElement("div", {
417
421
  style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
418
422
  height: height,
@@ -13,12 +13,12 @@ var _constants = require("../../../constants");
13
13
  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); }
14
14
  var cached3DWindow = null;
15
15
  var _default = exports["default"] = {
16
- name: 'Clear Window',
16
+ name: 'Window',
17
17
  prototype: 'holes',
18
18
  info: {
19
19
  title: 'Clear',
20
20
  tag: ['window'],
21
- description: 'Clear Window',
21
+ description: 'Window',
22
22
  image: '/assets/img/svg/window/Clear.svg',
23
23
  url: '/assets/gltf/window_clear.gltf'
24
24
  },
package/lib/class/line.js CHANGED
@@ -494,7 +494,7 @@ var Line = exports["default"] = /*#__PURE__*/function () {
494
494
  var v_a = layer.vertices.get(line.vertices.get(0));
495
495
  var v_b = layer.vertices.get(line.vertices.get(1));
496
496
  var distance = _export2.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
497
- var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to('in');
497
+ var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to(layer.unit);
498
498
  payload.length = _length;
499
499
  if (onInternalEvent) onInternalEvent({
500
500
  type: _constants.INTERNAL_EVENT_START_DRAW_WALL,
@@ -247,25 +247,38 @@ function Item(_ref, _ref2) {
247
247
  */
248
248
  var getDistant = function getDistant(x, y, rotRad) {
249
249
  var center_h = 3 * height / 8;
250
- var center_x = x;
250
+ var center_x = x; // middle of front line of cabinet rect
251
251
  var center_y = y;
252
- var center_x1 = x - center_h * Math.sin(rotRad);
252
+ var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
253
253
  var center_y1 = y + center_h * Math.cos(rotRad);
254
254
  var PointArray = [];
255
- curiteminfo.rectCenterPoint.forEach(function (centerpoint) {
256
- var comparelength = [];
255
+ var _loop = function _loop(i) {
256
+ var centerpoint = curiteminfo.rectCenterPoint[i];
257
+ // [rectCenterPoint] has four middle points of cabinet rect edges
258
+ var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
257
259
  var a;
258
- var RectLineFuction;
260
+ var RectLineFuction; // normal line of cabinet rect edge
259
261
  if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = _export.GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = _export.GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
260
262
  allRect.forEach(function (linerect) {
263
+ // calc distance to all other lines
261
264
  var p0 = _export.GeometryUtils.clone_point(linerect.rect[2]);
262
265
  var p1 = _export.GeometryUtils.clone_point(linerect.rect[3]);
263
- var lineFunction = {};
266
+ var lineFunction = {}; // other line function
264
267
  if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = _export.GeometryUtils.linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
268
+ // intersection between normal line and other line
265
269
  var coordinatePoint = _export.GeometryUtils.twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
266
270
  if (coordinatePoint !== undefined) {
267
- if (_export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
268
- if (_export.GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > _export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
271
+ if (
272
+ // intersection point is on the other line
273
+ _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
274
+ // check the intersection point is outside direction of edge
275
+ var isOutside = true;
276
+ for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
277
+ if (j === i) continue;
278
+ var otherCenterPoint = curiteminfo.rectCenterPoint[j];
279
+ if (_export.GeometryUtils.isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
280
+ }
281
+ if (isOutside && _export.GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > _export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
269
282
  comparelength.push(_export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
270
283
  a = Math.min.apply(null, comparelength);
271
284
  }
@@ -273,7 +286,10 @@ function Item(_ref, _ref2) {
273
286
  }
274
287
  });
275
288
  PointArray.push([a, centerpoint[1]]);
276
- });
289
+ };
290
+ for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
291
+ _loop(i);
292
+ }
277
293
  return {
278
294
  PointArray: PointArray
279
295
  };
@@ -201,7 +201,7 @@ var areaPolygon = exports.areaPolygon = function areaPolygon(points) {
201
201
  };
202
202
  var isWarningItem = exports.isWarningItem = function isWarningItem(item) {
203
203
  var _item$toJS$doorStyle;
204
- return !(item !== null && item !== void 0 && (_item$toJS$doorStyle = item.toJS().doorStyle) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.doorStyles) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.cds) !== null && _item$toJS$doorStyle !== void 0 && _item$toJS$doorStyle.filter(function (cd) {
204
+ if (item.category === 'cabinet') return !(item !== null && item !== void 0 && (_item$toJS$doorStyle = item.toJS().doorStyle) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.doorStyles) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.cds) !== null && _item$toJS$doorStyle !== void 0 && _item$toJS$doorStyle.filter(function (cd) {
205
205
  return cd.itemID == (item === null || item === void 0 ? void 0 : item.getIn(['itemID']));
206
- }).length) > 0;
206
+ }).length) > 0;else return false;
207
207
  };
@@ -1266,7 +1266,7 @@ function Viewer2D(_ref, _ref2) {
1266
1266
  var v_a = layer.vertices.get(_currentObject.vertices.get(0));
1267
1267
  var v_b = layer.vertices.get(_currentObject.vertices.get(1));
1268
1268
  var distance = _export2.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
1269
- var _length3 = (0, _convertUnitsLite.convert)(distance).from('cm').to('in');
1269
+ var _length3 = (0, _convertUnitsLite.convert)(distance).from('cm').to(layer.unit);
1270
1270
  payload.length = _length3;
1271
1271
  //////////////////////////////////////
1272
1272
  } else if (((_currentObject5 = _currentObject) === null || _currentObject5 === void 0 ? void 0 : _currentObject5.prototype) === 'items') {