kitchen-simulator 3.0.3 → 3.1.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.
Files changed (41) hide show
  1. package/es/LiteKitchenConfigurator.js +42 -9
  2. package/es/LiteRenderer.js +5 -8
  3. package/es/actions/lines-actions.js +3 -1
  4. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  5. package/es/catalog/factories/area-factory-3d.js +17 -17
  6. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  7. package/es/catalog/utils/item-loader.js +198 -197
  8. package/es/class/item.js +8 -0
  9. package/es/class/line.js +14 -2
  10. package/es/components/viewer2d/item.js +36 -12
  11. package/es/components/viewer2d/utils.js +2 -2
  12. package/es/components/viewer2d/viewer2d.js +12 -10
  13. package/es/components/viewer3d/viewer3d.js +66 -74
  14. package/es/constants.js +6 -2
  15. package/es/devLiteRenderer.js +192 -98
  16. package/es/index.js +82 -13
  17. package/es/reducers/lines-reducer.js +1 -1
  18. package/es/utils/geometry.js +161 -0
  19. package/es/utils/isolate-event-handler.js +268 -114
  20. package/es/utils/molding.js +234 -2
  21. package/lib/LiteKitchenConfigurator.js +42 -9
  22. package/lib/LiteRenderer.js +5 -8
  23. package/lib/actions/lines-actions.js +3 -1
  24. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  25. package/lib/catalog/factories/area-factory-3d.js +14 -14
  26. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  27. package/lib/catalog/utils/item-loader.js +195 -194
  28. package/lib/class/item.js +8 -0
  29. package/lib/class/line.js +13 -1
  30. package/lib/components/viewer2d/item.js +36 -12
  31. package/lib/components/viewer2d/utils.js +2 -2
  32. package/lib/components/viewer2d/viewer2d.js +12 -10
  33. package/lib/components/viewer3d/viewer3d.js +66 -74
  34. package/lib/constants.js +11 -7
  35. package/lib/devLiteRenderer.js +186 -92
  36. package/lib/index.js +82 -13
  37. package/lib/reducers/lines-reducer.js +1 -1
  38. package/lib/utils/geometry.js +162 -0
  39. package/lib/utils/isolate-event-handler.js +267 -113
  40. package/lib/utils/molding.js +233 -0
  41. 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;
@@ -673,9 +674,9 @@ function initPropData(element, catalog) {
673
674
  }
674
675
  return new _immutable.Map(mapped);
675
676
  }
676
- function updateAttributeOfSelectedElement(element, attrPayload, state, layer, projectActions) {
677
+ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
677
678
  var _attributesFormData;
678
- var callback = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
679
+ var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
679
680
  var attributesFormData = initAttrData(element, layer, state);
680
681
  var value = attrPayload.value;
681
682
  var attributeName = attrPayload.attributeName;
@@ -728,6 +729,10 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, pr
728
729
  attributesFormData = attributesFormData.set('y', yVal);
729
730
  } else {
730
731
  attributesFormData = attributesFormData.set(attributeName, value);
732
+ // update the distances from wall
733
+ var _GeometryUtils$calcDi = _export.GeometryUtils.calcDistancesFromItemToWalls(attributesFormData, layer),
734
+ PointArray = _GeometryUtils$calcDi.PointArray;
735
+ attributesFormData = attributesFormData.set('distArray', PointArray);
731
736
  }
732
737
  break;
733
738
  }
@@ -1002,53 +1007,87 @@ function setFinishing(props, state, payload) {
1002
1007
  break;
1003
1008
  }
1004
1009
  }
1005
- function movePan2D3D(props, payload, state) {
1006
- var moveType = payload.moveType,
1007
- moveValue = payload.moveValue;
1008
- var value = state.getIn(['viewer2D']).toJS();
1009
- if (state.mode === _constants.MODE_IDLE) {
1010
- switch (moveType) {
1011
- case _constants.TOP:
1012
- value.f -= moveValue;
1013
- break;
1014
- case _constants.BOTTOM:
1015
- value.f += moveValue;
1016
- break;
1017
- case _constants.RIGHT:
1018
- value.e += moveValue;
1019
- break;
1020
- case _constants.LEFT:
1021
- value.e -= moveValue;
1022
- break;
1010
+ function moveAndRotatePan2D3D(eventType, props, payload, state) {
1011
+ if (eventType === _constants.EXTERNAL_EVENT_MOVE_PAN) {
1012
+ var moveType = payload.moveType,
1013
+ moveValue = payload.moveValue;
1014
+ var value = state.getIn(['viewer2D']).toJS();
1015
+ if (state.mode === _constants.MODE_IDLE) {
1016
+ switch (moveType) {
1017
+ case _constants.TOP:
1018
+ value.f -= moveValue;
1019
+ break;
1020
+ case _constants.BOTTOM:
1021
+ value.f += moveValue;
1022
+ break;
1023
+ case _constants.RIGHT:
1024
+ value.e += moveValue;
1025
+ break;
1026
+ case _constants.LEFT:
1027
+ value.e -= moveValue;
1028
+ break;
1029
+ }
1030
+ (0, _helper.updateViwer2D)(value, props.viewer2DActions);
1031
+ } else if (state.mode === _constants.MODE_IDLE_3D) {
1032
+ switch (moveType) {
1033
+ case _constants.TOP:
1034
+ window.interval = setTimeout(function () {
1035
+ window.tDKeyDown({
1036
+ keyCode: 38
1037
+ });
1038
+ }, 50);
1039
+ break;
1040
+ case _constants.BOTTOM:
1041
+ window.interval = setTimeout(function () {
1042
+ window.tDKeyDown({
1043
+ keyCode: 40
1044
+ });
1045
+ }, 50);
1046
+ break;
1047
+ case _constants.RIGHT:
1048
+ window.interval = setTimeout(function () {
1049
+ window.tDKeyDown({
1050
+ keyCode: 37
1051
+ });
1052
+ }, 50);
1053
+ break;
1054
+ case _constants.LEFT:
1055
+ window.interval = setTimeout(function () {
1056
+ window.tDKeyDown({
1057
+ keyCode: 39
1058
+ });
1059
+ }, 50);
1060
+ break;
1061
+ }
1023
1062
  }
1024
- (0, _helper.updateViwer2D)(value, props.viewer2DActions);
1025
- } else if (state.mode === _constants.MODE_IDLE_3D) {
1026
- switch (moveType) {
1063
+ } else if (eventType === _constants.EXTERNAL_EVENT_ROTATE_PAN) {
1064
+ var rotateType = payload.rotateType;
1065
+ switch (rotateType) {
1027
1066
  case _constants.TOP:
1028
1067
  window.interval = setTimeout(function () {
1029
- window.tDKeyDown({
1030
- keyCode: 38
1068
+ window.SPKeyDown({
1069
+ keyCode: 87
1031
1070
  });
1032
1071
  }, 50);
1033
1072
  break;
1034
1073
  case _constants.BOTTOM:
1035
1074
  window.interval = setTimeout(function () {
1036
- window.tDKeyDown({
1037
- keyCode: 40
1075
+ window.SPKeyDown({
1076
+ keyCode: 83
1038
1077
  });
1039
1078
  }, 50);
1040
1079
  break;
1041
1080
  case _constants.RIGHT:
1042
1081
  window.interval = setTimeout(function () {
1043
- window.tDKeyDown({
1044
- keyCode: 39
1082
+ window.SPKeyDown({
1083
+ keyCode: 68
1045
1084
  });
1046
1085
  }, 50);
1047
1086
  break;
1048
1087
  case _constants.LEFT:
1049
1088
  window.interval = setTimeout(function () {
1050
- window.tDKeyDown({
1051
- keyCode: 37
1089
+ window.SPKeyDown({
1090
+ keyCode: 65
1052
1091
  });
1053
1092
  }, 50);
1054
1093
  break;
@@ -1059,17 +1098,19 @@ function handleExternalEvent(_x10) {
1059
1098
  return _handleExternalEvent.apply(this, arguments);
1060
1099
  }
1061
1100
  function _handleExternalEvent() {
1062
- _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(props) {
1101
+ _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(props) {
1063
1102
  var _evt$payload3, _evt$payload4;
1064
- 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, _evt$payload5, doorStyle, itemCDS, isAll, _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, _i2, _i3, _i4, _evt$payload9, _evt$payload0, _evt$payload1, _evt$payload10, _layerID, _layer, orginalItemInfo, originalItem, originalItemPos, replaceItem, _props$onInternalEven2, _t5;
1065
- return _regenerator["default"].wrap(function (_context9) {
1066
- while (1) switch (_context9.prev = _context9.next) {
1103
+ 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;
1104
+ return _regenerator["default"].wrap(function (_context1) {
1105
+ while (1) switch (_context1.prev = _context1.next) {
1067
1106
  case 0:
1068
1107
  // console.log('***external event****', props);
1069
1108
  evt = props.externalEvent;
1070
1109
  state = props.state.get('KitchenConfigurator');
1110
+ layerId = state.getIn(['scene', 'selectedLayer']);
1111
+ layer = state.getIn(['scene', 'layers', layerId]);
1071
1112
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
1072
- _context9.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 ? 16 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_IN ? 17 : _t5 === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 18 : _t5 === _constants.EXTERNAL_EVENT_CENTERING_2D ? 19 : _t5 === _constants.EXTERNAL_EVENT_UNDO ? 20 : _t5 === _constants.EXTERNAL_EVENT_REDO ? 21 : _t5 === _constants.EXTERNAL_EVENT_SET_MOLDING ? 22 : _t5 === _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 24 : _t5 === _constants.EXTERNAL_EVENT_DELETE_ELEMENT ? 25 : _t5 === _constants.EXTERNAL_EVENT_PROJECT_SETTING ? 26 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 27 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 27 : _t5 === _constants.EXTERNAL_EVENT_REPLACE_CABINET ? 28 : _t5 === _constants.EXTERNAL_EVENT_SET_FINISHING ? 30 : _t5 === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 31 : 32;
1113
+ _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_ROTATE_PAN ? 13 : _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 ? 38 : _t5 === _constants.EXTERNAL_EVENT_UPDATE_PROPERTY ? 38 : _t5 === _constants.EXTERNAL_EVENT_REPLACE_CABINET ? 39 : _t5 === _constants.EXTERNAL_EVENT_SET_FINISHING ? 41 : _t5 === _constants.EXTERNAL_EVENT_SYNC_SCENE ? 42 : 43;
1073
1114
  break;
1074
1115
  case 1:
1075
1116
  // prepare item data request
@@ -1081,10 +1122,14 @@ function _handleExternalEvent() {
1081
1122
  return _regenerator["default"].wrap(function (_context8) {
1082
1123
  while (1) switch (_context8.prev = _context8.next) {
1083
1124
  case 0:
1084
- 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]];
1125
+ 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')
1126
+ if (it.properties.altitude.length !== (0, _convertUnitsLite.convert)(it.properties.altitude._length).from('in').to('cm')) {
1127
+ it.properties.altitude.length = (0, _convertUnitsLite.convert)(it.properties.altitude._length).from('in').to('cm');
1128
+ }
1129
+ /////////
1085
1130
  if (!cdsItems.some(function (v) {
1086
1131
  var _it$doorStyle;
1087
- 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;
1132
+ 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;
1088
1133
  })) cdsItems.push({
1089
1134
  itemID: it.itemID,
1090
1135
  prototype: it.prototype,
@@ -1103,13 +1148,13 @@ function _handleExternalEvent() {
1103
1148
  i = 0;
1104
1149
  case 2:
1105
1150
  if (!(i < itemKeys.length)) {
1106
- _context9.next = 4;
1151
+ _context1.next = 4;
1107
1152
  break;
1108
1153
  }
1109
- return _context9.delegateYield(_loop3(), "t0", 3);
1154
+ return _context1.delegateYield(_loop3(), "t0", 3);
1110
1155
  case 3:
1111
1156
  i++;
1112
- _context9.next = 2;
1157
+ _context1.next = 2;
1113
1158
  break;
1114
1159
  case 4:
1115
1160
  // request item catalog data to host app
@@ -1150,30 +1195,42 @@ function _handleExternalEvent() {
1150
1195
  };
1151
1196
  }());
1152
1197
  }
1153
- return _context9.abrupt("continue", 32);
1198
+ return _context1.abrupt("continue", 43);
1154
1199
  case 5:
1155
1200
  props.projectActions.setMode(_constants.MODE_IDLE_3D);
1156
- return _context9.abrupt("continue", 32);
1201
+ return _context1.abrupt("continue", 43);
1157
1202
  case 6:
1158
1203
  props.projectActions.setMode(_constants.MODE_IDLE);
1159
- return _context9.abrupt("continue", 32);
1204
+ return _context1.abrupt("continue", 43);
1160
1205
  case 7:
1161
- sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1206
+ sLineCnt = layer.selected.lines.size;
1162
1207
  if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
1163
- return _context9.abrupt("continue", 32);
1208
+ return _context1.abrupt("continue", 43);
1164
1209
  case 8:
1165
1210
  if (state.mode === _constants.MODE_IDLE || state.mode === _constants.MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1166
1211
  props.projectActions.setMode(_constants.MODE_IDLE);
1167
1212
  props.linesActions.selectToolDrawingLine('wall');
1168
1213
  }
1169
- return _context9.abrupt("continue", 32);
1214
+ return _context1.abrupt("continue", 43);
1170
1215
  case 9:
1171
1216
  if ((0, _helper.isEmpty)(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1172
- _context9.next = 11;
1217
+ _context1.next = 11;
1173
1218
  break;
1174
1219
  }
1175
- element = evt.payload;
1176
- _context9.next = 10;
1220
+ element = evt.payload; ///// filter the tempPlaceholders using layer-doorstyle-cds
1221
+ cds = (_state$getIn = state.getIn(['scene', 'layers', 'layer-1', 'doorStyle'])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.cds;
1222
+ if (cds) {
1223
+ currentCdsId = (_cds$find = cds.find(function (c) {
1224
+ return c.itemID === element.itemID;
1225
+ })) === null || _cds$find === void 0 ? void 0 : _cds$find.cabinet_door_style_id;
1226
+ if (currentCdsId && element.structure_json.tempPlaceholders.length > 0) {
1227
+ element.structure_json.tempPlaceholders[0] = element.structure_json.tempPlaceholders.find(function (tPlaceholder) {
1228
+ return tPlaceholder.id === currentCdsId;
1229
+ });
1230
+ }
1231
+ }
1232
+ /////
1233
+ _context1.next = 10;
1177
1234
  return addItemToCatalog(element, state, props.catalog, props.projectActions);
1178
1235
  case 10:
1179
1236
  // start drawing item
@@ -1197,97 +1254,190 @@ function _handleExternalEvent() {
1197
1254
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1198
1255
  props.projectActions.setIsCabinetDrawing(true);
1199
1256
  case 11:
1200
- return _context9.abrupt("continue", 32);
1257
+ return _context1.abrupt("continue", 43);
1201
1258
  case 12:
1202
1259
  _constants.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);
1203
- return _context9.abrupt("continue", 32);
1260
+ return _context1.abrupt("continue", 43);
1204
1261
  case 13:
1205
- movePan2D3D(props, evt.payload, state);
1206
- return _context9.abrupt("continue", 32);
1262
+ moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
1263
+ return _context1.abrupt("continue", 43);
1207
1264
  case 14:
1208
1265
  defaulTitle = 'Untitle';
1209
1266
  props.projectActions.newProject();
1210
1267
  props.projectActions.rename(defaulTitle);
1211
- return _context9.abrupt("continue", 32);
1268
+ return _context1.abrupt("continue", 43);
1212
1269
  case 15:
1213
- _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll;
1214
- props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1215
- return _context9.abrupt("continue", 32);
1270
+ _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll; // prepare item data request
1271
+ _layerId = state.getIn(['scene', 'selectedLayer']);
1272
+ _cdsItems = [];
1273
+ allItems = state.getIn(['scene', 'layers', _layerId, 'items']).toJS();
1274
+ selectedItemId = state.getIn(['scene', 'layers', _layerId]).selected.items.toJS()[0];
1275
+ _itemKeys = isAll ? (_Object$keys = Object.keys(allItems)) !== null && _Object$keys !== void 0 ? _Object$keys : [] : [selectedItemId];
1276
+ _loop4 = /*#__PURE__*/_regenerator["default"].mark(function _loop4() {
1277
+ var _itemCDS$find;
1278
+ var item, cdsId;
1279
+ return _regenerator["default"].wrap(function (_context0) {
1280
+ while (1) switch (_context0.prev = _context0.next) {
1281
+ case 0:
1282
+ item = allItems[_itemKeys[_i2]];
1283
+ cdsId = (_itemCDS$find = itemCDS.find(function (itCDS) {
1284
+ return itCDS.itemID === item.itemID;
1285
+ })) === null || _itemCDS$find === void 0 ? void 0 : _itemCDS$find.cabinet_door_style_id;
1286
+ if (cdsId && !_cdsItems.some(function (v) {
1287
+ return item.itemID === v.itemID && item.name === v.name && cdsId === v.cdsId;
1288
+ })) _cdsItems.push({
1289
+ itemID: item.itemID,
1290
+ prototype: item.prototype,
1291
+ category: item.category,
1292
+ name: item.name,
1293
+ type: item.type,
1294
+ sku_number: item.sku_number,
1295
+ cdsId: cdsId
1296
+ });
1297
+ case 1:
1298
+ case "end":
1299
+ return _context0.stop();
1300
+ }
1301
+ }, _loop4);
1302
+ });
1303
+ _i2 = 0;
1216
1304
  case 16:
1305
+ if (!(_i2 < _itemKeys.length)) {
1306
+ _context1.next = 18;
1307
+ break;
1308
+ }
1309
+ return _context1.delegateYield(_loop4(), "t1", 17);
1310
+ case 17:
1311
+ _i2++;
1312
+ _context1.next = 16;
1313
+ break;
1314
+ case 18:
1315
+ // request item catalog data to host app
1316
+ if (_cdsItems.length > 0) {
1317
+ (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1318
+ type: _constants.INTERNAL_EVENT_ITEMS_CATALOG,
1319
+ value: {
1320
+ cdsItems: _cdsItems
1321
+ }
1322
+ }, /*#__PURE__*/function () {
1323
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(result) {
1324
+ var _i3, _result$elements2;
1325
+ return _regenerator["default"].wrap(function (_context9) {
1326
+ while (1) switch (_context9.prev = _context9.next) {
1327
+ case 0:
1328
+ _i3 = 0;
1329
+ case 1:
1330
+ if (!(_i3 < (result === null || result === void 0 || (_result$elements2 = result.elements) === null || _result$elements2 === void 0 ? void 0 : _result$elements2.length))) {
1331
+ _context9.next = 3;
1332
+ break;
1333
+ }
1334
+ _context9.next = 2;
1335
+ return addItemToCatalog(result.elements[_i3], state, props.catalog, props.projectActions);
1336
+ case 2:
1337
+ _i3++;
1338
+ _context9.next = 1;
1339
+ break;
1340
+ case 3:
1341
+ props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1342
+ case 4:
1343
+ case "end":
1344
+ return _context9.stop();
1345
+ }
1346
+ }, _callee8);
1347
+ }));
1348
+ return function (_x12) {
1349
+ return _ref3.apply(this, arguments);
1350
+ };
1351
+ }());
1352
+ } else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1353
+ return _context1.abrupt("continue", 43);
1354
+ case 19:
1217
1355
  _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1218
1356
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1219
- return _context9.abrupt("continue", 32);
1220
- case 17:
1357
+ return _context1.abrupt("continue", 43);
1358
+ case 20:
1221
1359
  value = state.getIn(['viewer2D']).toJS();
1222
1360
  value.a += 0.1;
1223
1361
  value.d += 0.1;
1224
1362
  value.e -= value.SVGWidth * 0.1 / 2;
1225
1363
  value.f -= value.SVGHeight * 0.1 / 2;
1226
1364
  (0, _helper.updateViwer2D)(value, props.viewer2DActions);
1227
- return _context9.abrupt("continue", 32);
1228
- case 18:
1365
+ return _context1.abrupt("continue", 43);
1366
+ case 21:
1229
1367
  _value = state.getIn(['viewer2D']).toJS();
1230
1368
  _value.a -= 0.1;
1231
1369
  _value.d -= 0.1;
1232
1370
  _value.e += _value.SVGWidth * 0.1 / 2;
1233
1371
  _value.f += _value.SVGHeight * 0.1 / 2;
1234
1372
  (0, _helper.updateViwer2D)(_value, props.viewer2DActions);
1235
- return _context9.abrupt("continue", 32);
1236
- case 19:
1373
+ return _context1.abrupt("continue", 43);
1374
+ case 22:
1237
1375
  (0, _helper.centering2D)(state, props.viewer2DActions);
1238
- return _context9.abrupt("continue", 32);
1239
- case 20:
1376
+ return _context1.abrupt("continue", 43);
1377
+ case 23:
1240
1378
  props.projectActions.undo();
1241
- return _context9.abrupt("continue", 32);
1242
- case 21:
1379
+ return _context1.abrupt("continue", 43);
1380
+ case 24:
1243
1381
  props.projectActions.redo();
1244
- return _context9.abrupt("continue", 32);
1245
- case 22:
1382
+ return _context1.abrupt("continue", 43);
1383
+ case 25:
1246
1384
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1247
- _context9.next = 23;
1385
+ _context1.next = 26;
1248
1386
  return loadMoldingSvg(moldingInfo);
1249
- case 23:
1387
+ case 26:
1250
1388
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1251
- return _context9.abrupt("continue", 32);
1252
- case 24:
1389
+ return _context1.abrupt("continue", 43);
1390
+ case 27:
1253
1391
  distElement = getElement(evt.payload, state);
1254
1392
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
1255
- return _context9.abrupt("continue", 32);
1256
- case 25:
1393
+ return _context1.abrupt("continue", 43);
1394
+ case 28:
1257
1395
  _distElement = getElement(evt.payload, state);
1258
1396
  if (_distElement) props.projectActions.remove(_distElement);
1259
- return _context9.abrupt("continue", 32);
1260
- case 26:
1397
+ return _context1.abrupt("continue", 43);
1398
+ case 29:
1261
1399
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value2 = _evt$payload8.value;
1262
- if (option === _constants.PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1263
- props.viewer2DActions.updateCeilHeight(_value2);
1264
- props.viewer3DActions.update3DCeilHeight(_value2);
1265
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE) {
1266
- props.viewer2DActions.changeWallLengthMeasure(_value2);
1267
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE) {
1268
- props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1269
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE) {
1270
- props.viewer2DActions.changeWallCabinetMeasure(_value2);
1271
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1272
- props.viewer2DActions.changeWindowDoorMeasure(_value2);
1273
- }
1274
- return _context9.abrupt("continue", 32);
1275
- case 27:
1276
- layerId = state.getIn(['scene', 'selectedLayer']);
1277
- layer = state.getIn(['scene', 'layers', layerId]);
1278
- _layer$getIn = layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1279
- for (_i2 = 0; _i2 < selectedLines.size; _i2++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, state, layer, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(layer.getIn(['lines', selectedLines.get(_i2)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1280
- for (_i3 = 0; _i3 < selectedHoles.size; _i3++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, state, layer, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(layer.getIn(['holes', selectedHoles.get(_i3)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1281
- for (_i4 = 0; _i4 < selectedItems.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? updateAttributeOfSelectedElement(layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, state, layer, props.projectActions, evt.callback) : updatePropertyOfSelectedElement(layer.getIn(['items', selectedItems.get(_i4)]), evt.payload, props.catalog, props.projectActions, evt.callback);
1282
- return _context9.abrupt("continue", 32);
1283
- case 28:
1400
+ _t6 = option;
1401
+ _context1.next = _t6 === _constants.PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT ? 30 : _t6 === _constants.PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT ? 31 : _t6 === _constants.PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE ? 32 : _t6 === _constants.PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE ? 33 : _t6 === _constants.PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE ? 34 : _t6 === _constants.PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE ? 35 : 36;
1402
+ break;
1403
+ case 30:
1404
+ props.viewer2DActions.updateCeilHeightUnit(_value2);
1405
+ case 31:
1406
+ props.viewer2DActions.updateCeilHeight(_value2);
1407
+ props.viewer3DActions.update3DCeilHeight(_value2);
1408
+ return _context1.abrupt("continue", 37);
1409
+ case 32:
1410
+ props.viewer2DActions.changeWallLengthMeasure(_value2);
1411
+ return _context1.abrupt("continue", 37);
1412
+ case 33:
1413
+ props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1414
+ return _context1.abrupt("continue", 37);
1415
+ case 34:
1416
+ props.viewer2DActions.changeWallCabinetMeasure(_value2);
1417
+ return _context1.abrupt("continue", 37);
1418
+ case 35:
1419
+ props.viewer2DActions.changeWindowDoorMeasure(_value2);
1420
+ return _context1.abrupt("continue", 37);
1421
+ case 36:
1422
+ return _context1.abrupt("continue", 37);
1423
+ case 37:
1424
+ return _context1.abrupt("continue", 43);
1425
+ case 38:
1426
+ _layerId2 = state.getIn(['scene', 'selectedLayer']);
1427
+ _layer = state.getIn(['scene', 'layers', _layerId2]);
1428
+ _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1429
+ 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);
1430
+ 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);
1431
+ 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);
1432
+ return _context1.abrupt("continue", 43);
1433
+ case 39:
1284
1434
  _layerID = state.scene.selectedLayer;
1285
- _layer = state.scene.getIn(['layers', _layerID]).toJS();
1435
+ _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1286
1436
  orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1287
- originalItem = _layer === null || _layer === void 0 ? void 0 : _layer.items[orginalItemInfo.id];
1288
- _context9.next = 29;
1437
+ originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1438
+ _context1.next = 40;
1289
1439
  return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
1290
- case 29:
1440
+ case 40:
1291
1441
  originalItemPos = {
1292
1442
  rotation: originalItem.rotation,
1293
1443
  selectedItemId: originalItem.id,
@@ -1302,23 +1452,27 @@ function _handleExternalEvent() {
1302
1452
  }
1303
1453
  };
1304
1454
  props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
1305
- return _context9.abrupt("continue", 32);
1306
- case 30:
1455
+ return _context1.abrupt("continue", 43);
1456
+ case 41:
1307
1457
  setFinishing(props, state, evt.payload);
1308
- case 31:
1458
+ return _context1.abrupt("continue", 43);
1459
+ case 42:
1460
+ sceneData = state.scene.toJS(); // get molding data for "ReviewForQuote"
1461
+ currentTexture = layer.doorStyle !== null || layer.doorStyle !== undefined ? layer.doorStyle : props.state.doorStyle.toJS();
1462
+ sceneData.layers[layerId].moldingData = (0, _molding.getMoldingDataOfScene)(layer, props.catalog, currentTexture);
1309
1463
  // send scene object from 3DTool to HostApp using internalEvent
1310
- (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1464
+ (_props$onInternalEven3 = props.onInternalEvent) === null || _props$onInternalEven3 === void 0 || _props$onInternalEven3.call(props, {
1311
1465
  type: _constants.INTERNAL_EVENT_SYNC_SCENE,
1312
1466
  value: {
1313
- scene: state.scene.toJS()
1467
+ scene: sceneData
1314
1468
  }
1315
1469
  });
1316
- return _context9.abrupt("continue", 32);
1317
- case 32:
1470
+ return _context1.abrupt("continue", 43);
1471
+ case 43:
1318
1472
  case "end":
1319
- return _context9.stop();
1473
+ return _context1.stop();
1320
1474
  }
1321
- }, _callee8);
1475
+ }, _callee9);
1322
1476
  }));
1323
1477
  return _handleExternalEvent.apply(this, arguments);
1324
1478
  }