kitchen-simulator 3.0.3 → 3.1.0-alpha.13

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 +52 -29
  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 +104 -14
  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 +52 -29
  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 +104 -14
  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
@@ -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";
@@ -13,6 +13,7 @@ import { convert } from "./convert-units-lite";
13
13
  import { GeometryUtils, MathUtils } from "./export";
14
14
  import { returnReplaceableDeepSearchType } from "../components/viewer2d/utils";
15
15
  import { SVGLoader } from 'three/addons/loaders/SVGLoader';
16
+ import { getMoldingDataOfScene } from "./molding";
16
17
  var PRECISION = 2;
17
18
  function loadJSON(_x) {
18
19
  return _loadJSON.apply(this, arguments);
@@ -666,9 +667,9 @@ function initPropData(element, catalog) {
666
667
  }
667
668
  return new Map(mapped);
668
669
  }
669
- function updateAttributeOfSelectedElement(element, attrPayload, state, layer, projectActions) {
670
+ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
670
671
  var _attributesFormData;
671
- var callback = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
672
+ var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
672
673
  var attributesFormData = initAttrData(element, layer, state);
673
674
  var value = attrPayload.value;
674
675
  var attributeName = attrPayload.attributeName;
@@ -721,6 +722,10 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, pr
721
722
  attributesFormData = attributesFormData.set('y', yVal);
722
723
  } else {
723
724
  attributesFormData = attributesFormData.set(attributeName, value);
725
+ // update the distances from wall
726
+ var _GeometryUtils$calcDi = GeometryUtils.calcDistancesFromItemToWalls(attributesFormData, layer),
727
+ PointArray = _GeometryUtils$calcDi.PointArray;
728
+ attributesFormData = attributesFormData.set('distArray', PointArray);
724
729
  }
725
730
  break;
726
731
  }
@@ -995,53 +1000,87 @@ function setFinishing(props, state, payload) {
995
1000
  break;
996
1001
  }
997
1002
  }
998
- function movePan2D3D(props, payload, state) {
999
- var moveType = payload.moveType,
1000
- moveValue = payload.moveValue;
1001
- var value = state.getIn(['viewer2D']).toJS();
1002
- if (state.mode === MODE_IDLE) {
1003
- switch (moveType) {
1004
- case TOP:
1005
- value.f -= moveValue;
1006
- break;
1007
- case BOTTOM:
1008
- value.f += moveValue;
1009
- break;
1010
- case RIGHT:
1011
- value.e += moveValue;
1012
- break;
1013
- case LEFT:
1014
- value.e -= moveValue;
1015
- 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
+ }
1016
1055
  }
1017
- updateViwer2D(value, props.viewer2DActions);
1018
- } else if (state.mode === MODE_IDLE_3D) {
1019
- switch (moveType) {
1056
+ } else if (eventType === EXTERNAL_EVENT_ROTATE_PAN) {
1057
+ var rotateType = payload.rotateType;
1058
+ switch (rotateType) {
1020
1059
  case TOP:
1021
1060
  window.interval = setTimeout(function () {
1022
- window.tDKeyDown({
1023
- keyCode: 38
1061
+ window.SPKeyDown({
1062
+ keyCode: 87
1024
1063
  });
1025
1064
  }, 50);
1026
1065
  break;
1027
1066
  case BOTTOM:
1028
1067
  window.interval = setTimeout(function () {
1029
- window.tDKeyDown({
1030
- keyCode: 40
1068
+ window.SPKeyDown({
1069
+ keyCode: 83
1031
1070
  });
1032
1071
  }, 50);
1033
1072
  break;
1034
1073
  case RIGHT:
1035
1074
  window.interval = setTimeout(function () {
1036
- window.tDKeyDown({
1037
- keyCode: 39
1075
+ window.SPKeyDown({
1076
+ keyCode: 68
1038
1077
  });
1039
1078
  }, 50);
1040
1079
  break;
1041
1080
  case LEFT:
1042
1081
  window.interval = setTimeout(function () {
1043
- window.tDKeyDown({
1044
- keyCode: 37
1082
+ window.SPKeyDown({
1083
+ keyCode: 65
1045
1084
  });
1046
1085
  }, 50);
1047
1086
  break;
@@ -1052,17 +1091,19 @@ export function handleExternalEvent(_x10) {
1052
1091
  return _handleExternalEvent.apply(this, arguments);
1053
1092
  }
1054
1093
  function _handleExternalEvent() {
1055
- _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(props) {
1094
+ _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(props) {
1056
1095
  var _evt$payload3, _evt$payload4;
1057
- 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;
1058
- return _regeneratorRuntime.wrap(function (_context9) {
1059
- while (1) switch (_context9.prev = _context9.next) {
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;
1097
+ return _regeneratorRuntime.wrap(function (_context1) {
1098
+ while (1) switch (_context1.prev = _context1.next) {
1060
1099
  case 0:
1061
1100
  // console.log('***external event****', props);
1062
1101
  evt = props.externalEvent;
1063
1102
  state = props.state.get('KitchenConfigurator');
1103
+ layerId = state.getIn(['scene', 'selectedLayer']);
1104
+ layer = state.getIn(['scene', 'layers', layerId]);
1064
1105
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
1065
- _context9.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 ? 16 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 17 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 18 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 19 : _t5 === EXTERNAL_EVENT_UNDO ? 20 : _t5 === EXTERNAL_EVENT_REDO ? 21 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 22 : _t5 === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 24 : _t5 === EXTERNAL_EVENT_DELETE_ELEMENT ? 25 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 26 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 27 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 27 : _t5 === EXTERNAL_EVENT_REPLACE_CABINET ? 28 : _t5 === EXTERNAL_EVENT_SET_FINISHING ? 30 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 31 : 32;
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;
1066
1107
  break;
1067
1108
  case 1:
1068
1109
  // prepare item data request
@@ -1074,10 +1115,14 @@ function _handleExternalEvent() {
1074
1115
  return _regeneratorRuntime.wrap(function (_context8) {
1075
1116
  while (1) switch (_context8.prev = _context8.next) {
1076
1117
  case 0:
1077
- 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]];
1118
+ 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')
1119
+ if (it.properties.altitude.length !== convert(it.properties.altitude._length).from('in').to('cm')) {
1120
+ it.properties.altitude.length = convert(it.properties.altitude._length).from('in').to('cm');
1121
+ }
1122
+ /////////
1078
1123
  if (!cdsItems.some(function (v) {
1079
1124
  var _it$doorStyle;
1080
- 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;
1125
+ 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;
1081
1126
  })) cdsItems.push({
1082
1127
  itemID: it.itemID,
1083
1128
  prototype: it.prototype,
@@ -1096,13 +1141,13 @@ function _handleExternalEvent() {
1096
1141
  i = 0;
1097
1142
  case 2:
1098
1143
  if (!(i < itemKeys.length)) {
1099
- _context9.next = 4;
1144
+ _context1.next = 4;
1100
1145
  break;
1101
1146
  }
1102
- return _context9.delegateYield(_loop3(), "t0", 3);
1147
+ return _context1.delegateYield(_loop3(), "t0", 3);
1103
1148
  case 3:
1104
1149
  i++;
1105
- _context9.next = 2;
1150
+ _context1.next = 2;
1106
1151
  break;
1107
1152
  case 4:
1108
1153
  // request item catalog data to host app
@@ -1143,30 +1188,42 @@ function _handleExternalEvent() {
1143
1188
  };
1144
1189
  }());
1145
1190
  }
1146
- return _context9.abrupt("continue", 32);
1191
+ return _context1.abrupt("continue", 43);
1147
1192
  case 5:
1148
1193
  props.projectActions.setMode(MODE_IDLE_3D);
1149
- return _context9.abrupt("continue", 32);
1194
+ return _context1.abrupt("continue", 43);
1150
1195
  case 6:
1151
1196
  props.projectActions.setMode(MODE_IDLE);
1152
- return _context9.abrupt("continue", 32);
1197
+ return _context1.abrupt("continue", 43);
1153
1198
  case 7:
1154
- sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1199
+ sLineCnt = layer.selected.lines.size;
1155
1200
  if (sLineCnt > 0) props.projectActions.setMode(MODE_ELEVATION_VIEW);
1156
- return _context9.abrupt("continue", 32);
1201
+ return _context1.abrupt("continue", 43);
1157
1202
  case 8:
1158
1203
  if (state.mode === MODE_IDLE || state.mode === MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1159
1204
  props.projectActions.setMode(MODE_IDLE);
1160
1205
  props.linesActions.selectToolDrawingLine('wall');
1161
1206
  }
1162
- return _context9.abrupt("continue", 32);
1207
+ return _context1.abrupt("continue", 43);
1163
1208
  case 9:
1164
1209
  if (isEmpty(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1165
- _context9.next = 11;
1210
+ _context1.next = 11;
1166
1211
  break;
1167
1212
  }
1168
- element = evt.payload;
1169
- _context9.next = 10;
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
+ /////
1226
+ _context1.next = 10;
1170
1227
  return addItemToCatalog(element, state, props.catalog, props.projectActions);
1171
1228
  case 10:
1172
1229
  // start drawing item
@@ -1190,97 +1247,190 @@ function _handleExternalEvent() {
1190
1247
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1191
1248
  props.projectActions.setIsCabinetDrawing(true);
1192
1249
  case 11:
1193
- return _context9.abrupt("continue", 32);
1250
+ return _context1.abrupt("continue", 43);
1194
1251
  case 12:
1195
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);
1196
- return _context9.abrupt("continue", 32);
1253
+ return _context1.abrupt("continue", 43);
1197
1254
  case 13:
1198
- movePan2D3D(props, evt.payload, state);
1199
- return _context9.abrupt("continue", 32);
1255
+ moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
1256
+ return _context1.abrupt("continue", 43);
1200
1257
  case 14:
1201
1258
  defaulTitle = 'Untitle';
1202
1259
  props.projectActions.newProject();
1203
1260
  props.projectActions.rename(defaulTitle);
1204
- return _context9.abrupt("continue", 32);
1261
+ return _context1.abrupt("continue", 43);
1205
1262
  case 15:
1206
- _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll;
1207
- props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1208
- return _context9.abrupt("continue", 32);
1263
+ _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll; // prepare item data request
1264
+ _layerId = state.getIn(['scene', 'selectedLayer']);
1265
+ _cdsItems = [];
1266
+ allItems = state.getIn(['scene', 'layers', _layerId, 'items']).toJS();
1267
+ selectedItemId = state.getIn(['scene', 'layers', _layerId]).selected.items.toJS()[0];
1268
+ _itemKeys = isAll ? (_Object$keys = Object.keys(allItems)) !== null && _Object$keys !== void 0 ? _Object$keys : [] : [selectedItemId];
1269
+ _loop4 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop4() {
1270
+ var _itemCDS$find;
1271
+ var item, cdsId;
1272
+ return _regeneratorRuntime.wrap(function (_context0) {
1273
+ while (1) switch (_context0.prev = _context0.next) {
1274
+ case 0:
1275
+ item = allItems[_itemKeys[_i2]];
1276
+ cdsId = (_itemCDS$find = itemCDS.find(function (itCDS) {
1277
+ return itCDS.itemID === item.itemID;
1278
+ })) === null || _itemCDS$find === void 0 ? void 0 : _itemCDS$find.cabinet_door_style_id;
1279
+ if (cdsId && !_cdsItems.some(function (v) {
1280
+ return item.itemID === v.itemID && item.name === v.name && cdsId === v.cdsId;
1281
+ })) _cdsItems.push({
1282
+ itemID: item.itemID,
1283
+ prototype: item.prototype,
1284
+ category: item.category,
1285
+ name: item.name,
1286
+ type: item.type,
1287
+ sku_number: item.sku_number,
1288
+ cdsId: cdsId
1289
+ });
1290
+ case 1:
1291
+ case "end":
1292
+ return _context0.stop();
1293
+ }
1294
+ }, _loop4);
1295
+ });
1296
+ _i2 = 0;
1209
1297
  case 16:
1298
+ if (!(_i2 < _itemKeys.length)) {
1299
+ _context1.next = 18;
1300
+ break;
1301
+ }
1302
+ return _context1.delegateYield(_loop4(), "t1", 17);
1303
+ case 17:
1304
+ _i2++;
1305
+ _context1.next = 16;
1306
+ break;
1307
+ case 18:
1308
+ // request item catalog data to host app
1309
+ if (_cdsItems.length > 0) {
1310
+ (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1311
+ type: INTERNAL_EVENT_ITEMS_CATALOG,
1312
+ value: {
1313
+ cdsItems: _cdsItems
1314
+ }
1315
+ }, /*#__PURE__*/function () {
1316
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(result) {
1317
+ var _i3, _result$elements2;
1318
+ return _regeneratorRuntime.wrap(function (_context9) {
1319
+ while (1) switch (_context9.prev = _context9.next) {
1320
+ case 0:
1321
+ _i3 = 0;
1322
+ case 1:
1323
+ if (!(_i3 < (result === null || result === void 0 || (_result$elements2 = result.elements) === null || _result$elements2 === void 0 ? void 0 : _result$elements2.length))) {
1324
+ _context9.next = 3;
1325
+ break;
1326
+ }
1327
+ _context9.next = 2;
1328
+ return addItemToCatalog(result.elements[_i3], state, props.catalog, props.projectActions);
1329
+ case 2:
1330
+ _i3++;
1331
+ _context9.next = 1;
1332
+ break;
1333
+ case 3:
1334
+ props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1335
+ case 4:
1336
+ case "end":
1337
+ return _context9.stop();
1338
+ }
1339
+ }, _callee8);
1340
+ }));
1341
+ return function (_x12) {
1342
+ return _ref3.apply(this, arguments);
1343
+ };
1344
+ }());
1345
+ } else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1346
+ return _context1.abrupt("continue", 43);
1347
+ case 19:
1210
1348
  _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1211
1349
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1212
- return _context9.abrupt("continue", 32);
1213
- case 17:
1350
+ return _context1.abrupt("continue", 43);
1351
+ case 20:
1214
1352
  value = state.getIn(['viewer2D']).toJS();
1215
1353
  value.a += 0.1;
1216
1354
  value.d += 0.1;
1217
1355
  value.e -= value.SVGWidth * 0.1 / 2;
1218
1356
  value.f -= value.SVGHeight * 0.1 / 2;
1219
1357
  updateViwer2D(value, props.viewer2DActions);
1220
- return _context9.abrupt("continue", 32);
1221
- case 18:
1358
+ return _context1.abrupt("continue", 43);
1359
+ case 21:
1222
1360
  _value = state.getIn(['viewer2D']).toJS();
1223
1361
  _value.a -= 0.1;
1224
1362
  _value.d -= 0.1;
1225
1363
  _value.e += _value.SVGWidth * 0.1 / 2;
1226
1364
  _value.f += _value.SVGHeight * 0.1 / 2;
1227
1365
  updateViwer2D(_value, props.viewer2DActions);
1228
- return _context9.abrupt("continue", 32);
1229
- case 19:
1366
+ return _context1.abrupt("continue", 43);
1367
+ case 22:
1230
1368
  centering2D(state, props.viewer2DActions);
1231
- return _context9.abrupt("continue", 32);
1232
- case 20:
1369
+ return _context1.abrupt("continue", 43);
1370
+ case 23:
1233
1371
  props.projectActions.undo();
1234
- return _context9.abrupt("continue", 32);
1235
- case 21:
1372
+ return _context1.abrupt("continue", 43);
1373
+ case 24:
1236
1374
  props.projectActions.redo();
1237
- return _context9.abrupt("continue", 32);
1238
- case 22:
1375
+ return _context1.abrupt("continue", 43);
1376
+ case 25:
1239
1377
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1240
- _context9.next = 23;
1378
+ _context1.next = 26;
1241
1379
  return loadMoldingSvg(moldingInfo);
1242
- case 23:
1380
+ case 26:
1243
1381
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1244
- return _context9.abrupt("continue", 32);
1245
- case 24:
1382
+ return _context1.abrupt("continue", 43);
1383
+ case 27:
1246
1384
  distElement = getElement(evt.payload, state);
1247
1385
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
1248
- return _context9.abrupt("continue", 32);
1249
- case 25:
1386
+ return _context1.abrupt("continue", 43);
1387
+ case 28:
1250
1388
  _distElement = getElement(evt.payload, state);
1251
1389
  if (_distElement) props.projectActions.remove(_distElement);
1252
- return _context9.abrupt("continue", 32);
1253
- case 26:
1390
+ return _context1.abrupt("continue", 43);
1391
+ case 29:
1254
1392
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value2 = _evt$payload8.value;
1255
- if (option === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1256
- props.viewer2DActions.updateCeilHeight(_value2);
1257
- props.viewer3DActions.update3DCeilHeight(_value2);
1258
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE) {
1259
- props.viewer2DActions.changeWallLengthMeasure(_value2);
1260
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE) {
1261
- props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1262
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE) {
1263
- props.viewer2DActions.changeWallCabinetMeasure(_value2);
1264
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1265
- props.viewer2DActions.changeWindowDoorMeasure(_value2);
1266
- }
1267
- return _context9.abrupt("continue", 32);
1268
- case 27:
1269
- layerId = state.getIn(['scene', 'selectedLayer']);
1270
- layer = state.getIn(['scene', 'layers', layerId]);
1271
- _layer$getIn = layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1272
- for (_i2 = 0; _i2 < selectedLines.size; _i2++) (evt === null || evt === void 0 ? void 0 : evt.type) === 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);
1273
- for (_i3 = 0; _i3 < selectedHoles.size; _i3++) (evt === null || evt === void 0 ? void 0 : evt.type) === 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);
1274
- for (_i4 = 0; _i4 < selectedItems.size; _i4++) (evt === null || evt === void 0 ? void 0 : evt.type) === 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);
1275
- return _context9.abrupt("continue", 32);
1276
- case 28:
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;
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:
1419
+ _layerId2 = state.getIn(['scene', 'selectedLayer']);
1420
+ _layer = state.getIn(['scene', 'layers', _layerId2]);
1421
+ _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
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);
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);
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);
1425
+ return _context1.abrupt("continue", 43);
1426
+ case 39:
1277
1427
  _layerID = state.scene.selectedLayer;
1278
- _layer = state.scene.getIn(['layers', _layerID]).toJS();
1428
+ _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1279
1429
  orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1280
- originalItem = _layer === null || _layer === void 0 ? void 0 : _layer.items[orginalItemInfo.id];
1281
- _context9.next = 29;
1430
+ originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1431
+ _context1.next = 40;
1282
1432
  return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
1283
- case 29:
1433
+ case 40:
1284
1434
  originalItemPos = {
1285
1435
  rotation: originalItem.rotation,
1286
1436
  selectedItemId: originalItem.id,
@@ -1295,23 +1445,27 @@ function _handleExternalEvent() {
1295
1445
  }
1296
1446
  };
1297
1447
  props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
1298
- return _context9.abrupt("continue", 32);
1299
- case 30:
1448
+ return _context1.abrupt("continue", 43);
1449
+ case 41:
1300
1450
  setFinishing(props, state, evt.payload);
1301
- case 31:
1451
+ return _context1.abrupt("continue", 43);
1452
+ case 42:
1453
+ sceneData = state.scene.toJS(); // get molding data for "ReviewForQuote"
1454
+ currentTexture = layer.doorStyle !== null || layer.doorStyle !== undefined ? layer.doorStyle : props.state.doorStyle.toJS();
1455
+ sceneData.layers[layerId].moldingData = getMoldingDataOfScene(layer, props.catalog, currentTexture);
1302
1456
  // send scene object from 3DTool to HostApp using internalEvent
1303
- (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1457
+ (_props$onInternalEven3 = props.onInternalEvent) === null || _props$onInternalEven3 === void 0 || _props$onInternalEven3.call(props, {
1304
1458
  type: INTERNAL_EVENT_SYNC_SCENE,
1305
1459
  value: {
1306
- scene: state.scene.toJS()
1460
+ scene: sceneData
1307
1461
  }
1308
1462
  });
1309
- return _context9.abrupt("continue", 32);
1310
- case 32:
1463
+ return _context1.abrupt("continue", 43);
1464
+ case 43:
1311
1465
  case "end":
1312
- return _context9.stop();
1466
+ return _context1.stop();
1313
1467
  }
1314
- }, _callee8);
1468
+ }, _callee9);
1315
1469
  }));
1316
1470
  return _handleExternalEvent.apply(this, arguments);
1317
1471
  }