kitchen-simulator 3.0.1 → 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 (43) 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 +11 -0
  9. package/es/class/line.js +14 -2
  10. package/es/components/viewer2d/item.js +41 -14
  11. package/es/components/viewer2d/rulerDist.js +1 -1
  12. package/es/components/viewer2d/utils.js +2 -2
  13. package/es/components/viewer2d/viewer2d.js +13 -11
  14. package/es/components/viewer3d/viewer3d.js +98 -96
  15. package/es/constants.js +6 -2
  16. package/es/devLiteRenderer.js +192 -98
  17. package/es/index.js +82 -13
  18. package/es/reducers/lines-reducer.js +1 -1
  19. package/es/utils/geometry.js +161 -0
  20. package/es/utils/isolate-event-handler.js +273 -116
  21. package/es/utils/molding.js +234 -2
  22. package/lib/LiteKitchenConfigurator.js +42 -9
  23. package/lib/LiteRenderer.js +5 -8
  24. package/lib/actions/lines-actions.js +3 -1
  25. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  26. package/lib/catalog/factories/area-factory-3d.js +14 -14
  27. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  28. package/lib/catalog/utils/item-loader.js +195 -194
  29. package/lib/class/item.js +11 -0
  30. package/lib/class/line.js +13 -1
  31. package/lib/components/viewer2d/item.js +40 -13
  32. package/lib/components/viewer2d/rulerDist.js +1 -1
  33. package/lib/components/viewer2d/utils.js +2 -2
  34. package/lib/components/viewer2d/viewer2d.js +13 -11
  35. package/lib/components/viewer3d/viewer3d.js +98 -96
  36. package/lib/constants.js +11 -7
  37. package/lib/devLiteRenderer.js +186 -92
  38. package/lib/index.js +82 -13
  39. package/lib/reducers/lines-reducer.js +1 -1
  40. package/lib/utils/geometry.js +162 -0
  41. package/lib/utils/isolate-event-handler.js +272 -115
  42. package/lib/utils/molding.js +233 -0
  43. 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;
@@ -117,10 +118,13 @@ function _parseTempPlaceholdersFromCabinetPayload() {
117
118
  tempPlaceholders.map(function (element) {
118
119
  var sink_match = element.name.match(/\d_(sink_[^LR12]*)(_[LR12])?$/);
119
120
  if (sink_match && sink_match.length >= 2) {
120
- var _cabinetPayload$struc3;
121
+ var _process$env$API_URL, _cabinetPayload$struc3;
121
122
  tempData['sink'] = tempData['sink'] || [];
122
123
  tempData['sink'].push(element.name);
123
- var sink_url = process.env.API_URL + "/uploads/assets/default/".concat(sink_match[1], ".gltf");
124
+ var sink_url = (_process$env$API_URL = process.env.API_URL) !== null && _process$env$API_URL !== void 0 ? _process$env$API_URL :
125
+ // server url from 3DTool env
126
+ import.meta.env.VITE_APP_API_URL + // server url from Host env
127
+ "/uploads/assets/default/".concat(sink_match[1], ".gltf");
124
128
  if (cabinetPayload !== null && cabinetPayload !== void 0 && (_cabinetPayload$struc3 = cabinetPayload.structure_json) !== null && _cabinetPayload$struc3 !== void 0 && (_cabinetPayload$struc3 = _cabinetPayload$struc3.tempPlaceholders[0]) !== null && _cabinetPayload$struc3 !== void 0 && _cabinetPayload$struc3.structure) cabinetPayload.structure_json.tempPlaceholders[0].structure.sink = sink_url;
125
129
  } else if (temp.some(function (felement) {
126
130
  return felement.name.includes('base_drawer');
@@ -670,9 +674,9 @@ function initPropData(element, catalog) {
670
674
  }
671
675
  return new _immutable.Map(mapped);
672
676
  }
673
- function updateAttributeOfSelectedElement(element, attrPayload, state, layer, projectActions) {
677
+ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
674
678
  var _attributesFormData;
675
- var callback = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
679
+ var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
676
680
  var attributesFormData = initAttrData(element, layer, state);
677
681
  var value = attrPayload.value;
678
682
  var attributeName = attrPayload.attributeName;
@@ -725,6 +729,10 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, pr
725
729
  attributesFormData = attributesFormData.set('y', yVal);
726
730
  } else {
727
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);
728
736
  }
729
737
  break;
730
738
  }
@@ -999,53 +1007,87 @@ function setFinishing(props, state, payload) {
999
1007
  break;
1000
1008
  }
1001
1009
  }
1002
- function movePan2D3D(props, payload, state) {
1003
- var moveType = payload.moveType,
1004
- moveValue = payload.moveValue;
1005
- var value = state.getIn(['viewer2D']).toJS();
1006
- if (state.mode === _constants.MODE_IDLE) {
1007
- switch (moveType) {
1008
- case _constants.TOP:
1009
- value.f -= moveValue;
1010
- break;
1011
- case _constants.BOTTOM:
1012
- value.f += moveValue;
1013
- break;
1014
- case _constants.RIGHT:
1015
- value.e += moveValue;
1016
- break;
1017
- case _constants.LEFT:
1018
- value.e -= moveValue;
1019
- 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
+ }
1020
1062
  }
1021
- (0, _helper.updateViwer2D)(value, props.viewer2DActions);
1022
- } else if (state.mode === _constants.MODE_IDLE_3D) {
1023
- switch (moveType) {
1063
+ } else if (eventType === _constants.EXTERNAL_EVENT_ROTATE_PAN) {
1064
+ var rotateType = payload.rotateType;
1065
+ switch (rotateType) {
1024
1066
  case _constants.TOP:
1025
1067
  window.interval = setTimeout(function () {
1026
- window.tDKeyDown({
1027
- keyCode: 38
1068
+ window.SPKeyDown({
1069
+ keyCode: 87
1028
1070
  });
1029
1071
  }, 50);
1030
1072
  break;
1031
1073
  case _constants.BOTTOM:
1032
1074
  window.interval = setTimeout(function () {
1033
- window.tDKeyDown({
1034
- keyCode: 40
1075
+ window.SPKeyDown({
1076
+ keyCode: 83
1035
1077
  });
1036
1078
  }, 50);
1037
1079
  break;
1038
1080
  case _constants.RIGHT:
1039
1081
  window.interval = setTimeout(function () {
1040
- window.tDKeyDown({
1041
- keyCode: 39
1082
+ window.SPKeyDown({
1083
+ keyCode: 68
1042
1084
  });
1043
1085
  }, 50);
1044
1086
  break;
1045
1087
  case _constants.LEFT:
1046
1088
  window.interval = setTimeout(function () {
1047
- window.tDKeyDown({
1048
- keyCode: 37
1089
+ window.SPKeyDown({
1090
+ keyCode: 65
1049
1091
  });
1050
1092
  }, 50);
1051
1093
  break;
@@ -1056,17 +1098,19 @@ function handleExternalEvent(_x10) {
1056
1098
  return _handleExternalEvent.apply(this, arguments);
1057
1099
  }
1058
1100
  function _handleExternalEvent() {
1059
- _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(props) {
1101
+ _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(props) {
1060
1102
  var _evt$payload3, _evt$payload4;
1061
- 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;
1062
- return _regenerator["default"].wrap(function (_context9) {
1063
- 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) {
1064
1106
  case 0:
1065
1107
  // console.log('***external event****', props);
1066
1108
  evt = props.externalEvent;
1067
1109
  state = props.state.get('KitchenConfigurator');
1110
+ layerId = state.getIn(['scene', 'selectedLayer']);
1111
+ layer = state.getIn(['scene', 'layers', layerId]);
1068
1112
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
1069
- _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;
1070
1114
  break;
1071
1115
  case 1:
1072
1116
  // prepare item data request
@@ -1078,10 +1122,14 @@ function _handleExternalEvent() {
1078
1122
  return _regenerator["default"].wrap(function (_context8) {
1079
1123
  while (1) switch (_context8.prev = _context8.next) {
1080
1124
  case 0:
1081
- 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
+ /////////
1082
1130
  if (!cdsItems.some(function (v) {
1083
1131
  var _it$doorStyle;
1084
- 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;
1085
1133
  })) cdsItems.push({
1086
1134
  itemID: it.itemID,
1087
1135
  prototype: it.prototype,
@@ -1100,13 +1148,13 @@ function _handleExternalEvent() {
1100
1148
  i = 0;
1101
1149
  case 2:
1102
1150
  if (!(i < itemKeys.length)) {
1103
- _context9.next = 4;
1151
+ _context1.next = 4;
1104
1152
  break;
1105
1153
  }
1106
- return _context9.delegateYield(_loop3(), "t0", 3);
1154
+ return _context1.delegateYield(_loop3(), "t0", 3);
1107
1155
  case 3:
1108
1156
  i++;
1109
- _context9.next = 2;
1157
+ _context1.next = 2;
1110
1158
  break;
1111
1159
  case 4:
1112
1160
  // request item catalog data to host app
@@ -1147,30 +1195,42 @@ function _handleExternalEvent() {
1147
1195
  };
1148
1196
  }());
1149
1197
  }
1150
- return _context9.abrupt("continue", 32);
1198
+ return _context1.abrupt("continue", 43);
1151
1199
  case 5:
1152
1200
  props.projectActions.setMode(_constants.MODE_IDLE_3D);
1153
- return _context9.abrupt("continue", 32);
1201
+ return _context1.abrupt("continue", 43);
1154
1202
  case 6:
1155
1203
  props.projectActions.setMode(_constants.MODE_IDLE);
1156
- return _context9.abrupt("continue", 32);
1204
+ return _context1.abrupt("continue", 43);
1157
1205
  case 7:
1158
- sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1206
+ sLineCnt = layer.selected.lines.size;
1159
1207
  if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
1160
- return _context9.abrupt("continue", 32);
1208
+ return _context1.abrupt("continue", 43);
1161
1209
  case 8:
1162
1210
  if (state.mode === _constants.MODE_IDLE || state.mode === _constants.MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1163
1211
  props.projectActions.setMode(_constants.MODE_IDLE);
1164
1212
  props.linesActions.selectToolDrawingLine('wall');
1165
1213
  }
1166
- return _context9.abrupt("continue", 32);
1214
+ return _context1.abrupt("continue", 43);
1167
1215
  case 9:
1168
1216
  if ((0, _helper.isEmpty)(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1169
- _context9.next = 11;
1217
+ _context1.next = 11;
1170
1218
  break;
1171
1219
  }
1172
- element = evt.payload;
1173
- _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;
1174
1234
  return addItemToCatalog(element, state, props.catalog, props.projectActions);
1175
1235
  case 10:
1176
1236
  // start drawing item
@@ -1194,97 +1254,190 @@ function _handleExternalEvent() {
1194
1254
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1195
1255
  props.projectActions.setIsCabinetDrawing(true);
1196
1256
  case 11:
1197
- return _context9.abrupt("continue", 32);
1257
+ return _context1.abrupt("continue", 43);
1198
1258
  case 12:
1199
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);
1200
- return _context9.abrupt("continue", 32);
1260
+ return _context1.abrupt("continue", 43);
1201
1261
  case 13:
1202
- movePan2D3D(props, evt.payload, state);
1203
- return _context9.abrupt("continue", 32);
1262
+ moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
1263
+ return _context1.abrupt("continue", 43);
1204
1264
  case 14:
1205
1265
  defaulTitle = 'Untitle';
1206
1266
  props.projectActions.newProject();
1207
1267
  props.projectActions.rename(defaulTitle);
1208
- return _context9.abrupt("continue", 32);
1268
+ return _context1.abrupt("continue", 43);
1209
1269
  case 15:
1210
- _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll;
1211
- props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1212
- 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;
1213
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:
1214
1355
  _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1215
1356
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1216
- return _context9.abrupt("continue", 32);
1217
- case 17:
1357
+ return _context1.abrupt("continue", 43);
1358
+ case 20:
1218
1359
  value = state.getIn(['viewer2D']).toJS();
1219
1360
  value.a += 0.1;
1220
1361
  value.d += 0.1;
1221
1362
  value.e -= value.SVGWidth * 0.1 / 2;
1222
1363
  value.f -= value.SVGHeight * 0.1 / 2;
1223
1364
  (0, _helper.updateViwer2D)(value, props.viewer2DActions);
1224
- return _context9.abrupt("continue", 32);
1225
- case 18:
1365
+ return _context1.abrupt("continue", 43);
1366
+ case 21:
1226
1367
  _value = state.getIn(['viewer2D']).toJS();
1227
1368
  _value.a -= 0.1;
1228
1369
  _value.d -= 0.1;
1229
1370
  _value.e += _value.SVGWidth * 0.1 / 2;
1230
1371
  _value.f += _value.SVGHeight * 0.1 / 2;
1231
1372
  (0, _helper.updateViwer2D)(_value, props.viewer2DActions);
1232
- return _context9.abrupt("continue", 32);
1233
- case 19:
1373
+ return _context1.abrupt("continue", 43);
1374
+ case 22:
1234
1375
  (0, _helper.centering2D)(state, props.viewer2DActions);
1235
- return _context9.abrupt("continue", 32);
1236
- case 20:
1376
+ return _context1.abrupt("continue", 43);
1377
+ case 23:
1237
1378
  props.projectActions.undo();
1238
- return _context9.abrupt("continue", 32);
1239
- case 21:
1379
+ return _context1.abrupt("continue", 43);
1380
+ case 24:
1240
1381
  props.projectActions.redo();
1241
- return _context9.abrupt("continue", 32);
1242
- case 22:
1382
+ return _context1.abrupt("continue", 43);
1383
+ case 25:
1243
1384
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1244
- _context9.next = 23;
1385
+ _context1.next = 26;
1245
1386
  return loadMoldingSvg(moldingInfo);
1246
- case 23:
1387
+ case 26:
1247
1388
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1248
- return _context9.abrupt("continue", 32);
1249
- case 24:
1389
+ return _context1.abrupt("continue", 43);
1390
+ case 27:
1250
1391
  distElement = getElement(evt.payload, state);
1251
1392
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
1252
- return _context9.abrupt("continue", 32);
1253
- case 25:
1393
+ return _context1.abrupt("continue", 43);
1394
+ case 28:
1254
1395
  _distElement = getElement(evt.payload, state);
1255
1396
  if (_distElement) props.projectActions.remove(_distElement);
1256
- return _context9.abrupt("continue", 32);
1257
- case 26:
1397
+ return _context1.abrupt("continue", 43);
1398
+ case 29:
1258
1399
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value2 = _evt$payload8.value;
1259
- if (option === _constants.PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1260
- props.viewer2DActions.updateCeilHeight(_value2);
1261
- props.viewer3DActions.update3DCeilHeight(_value2);
1262
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE) {
1263
- props.viewer2DActions.changeWallLengthMeasure(_value2);
1264
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE) {
1265
- props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1266
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE) {
1267
- props.viewer2DActions.changeWallCabinetMeasure(_value2);
1268
- } else if (option === _constants.PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1269
- props.viewer2DActions.changeWindowDoorMeasure(_value2);
1270
- }
1271
- return _context9.abrupt("continue", 32);
1272
- case 27:
1273
- layerId = state.getIn(['scene', 'selectedLayer']);
1274
- layer = state.getIn(['scene', 'layers', layerId]);
1275
- _layer$getIn = layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1276
- 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);
1277
- 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);
1278
- 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);
1279
- return _context9.abrupt("continue", 32);
1280
- 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:
1281
1434
  _layerID = state.scene.selectedLayer;
1282
- _layer = state.scene.getIn(['layers', _layerID]).toJS();
1435
+ _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1283
1436
  orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1284
- originalItem = _layer === null || _layer === void 0 ? void 0 : _layer.items[orginalItemInfo.id];
1285
- _context9.next = 29;
1437
+ originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1438
+ _context1.next = 40;
1286
1439
  return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
1287
- case 29:
1440
+ case 40:
1288
1441
  originalItemPos = {
1289
1442
  rotation: originalItem.rotation,
1290
1443
  selectedItemId: originalItem.id,
@@ -1299,23 +1452,27 @@ function _handleExternalEvent() {
1299
1452
  }
1300
1453
  };
1301
1454
  props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
1302
- return _context9.abrupt("continue", 32);
1303
- case 30:
1455
+ return _context1.abrupt("continue", 43);
1456
+ case 41:
1304
1457
  setFinishing(props, state, evt.payload);
1305
- 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);
1306
1463
  // send scene object from 3DTool to HostApp using internalEvent
1307
- (_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, {
1308
1465
  type: _constants.INTERNAL_EVENT_SYNC_SCENE,
1309
1466
  value: {
1310
- scene: state.scene.toJS()
1467
+ scene: sceneData
1311
1468
  }
1312
1469
  });
1313
- return _context9.abrupt("continue", 32);
1314
- case 32:
1470
+ return _context1.abrupt("continue", 43);
1471
+ case 43:
1315
1472
  case "end":
1316
- return _context9.stop();
1473
+ return _context1.stop();
1317
1474
  }
1318
- }, _callee8);
1475
+ }, _callee9);
1319
1476
  }));
1320
1477
  return _handleExternalEvent.apply(this, arguments);
1321
1478
  }