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
@@ -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);
@@ -110,10 +111,13 @@ function _parseTempPlaceholdersFromCabinetPayload() {
110
111
  tempPlaceholders.map(function (element) {
111
112
  var sink_match = element.name.match(/\d_(sink_[^LR12]*)(_[LR12])?$/);
112
113
  if (sink_match && sink_match.length >= 2) {
113
- var _cabinetPayload$struc3;
114
+ var _process$env$API_URL, _cabinetPayload$struc3;
114
115
  tempData['sink'] = tempData['sink'] || [];
115
116
  tempData['sink'].push(element.name);
116
- var sink_url = process.env.API_URL + "/uploads/assets/default/".concat(sink_match[1], ".gltf");
117
+ var sink_url = (_process$env$API_URL = process.env.API_URL) !== null && _process$env$API_URL !== void 0 ? _process$env$API_URL :
118
+ // server url from 3DTool env
119
+ import.meta.env.VITE_APP_API_URL + // server url from Host env
120
+ "/uploads/assets/default/".concat(sink_match[1], ".gltf");
117
121
  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;
118
122
  } else if (temp.some(function (felement) {
119
123
  return felement.name.includes('base_drawer');
@@ -663,9 +667,9 @@ function initPropData(element, catalog) {
663
667
  }
664
668
  return new Map(mapped);
665
669
  }
666
- function updateAttributeOfSelectedElement(element, attrPayload, state, layer, projectActions) {
670
+ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
667
671
  var _attributesFormData;
668
- var callback = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
672
+ var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
669
673
  var attributesFormData = initAttrData(element, layer, state);
670
674
  var value = attrPayload.value;
671
675
  var attributeName = attrPayload.attributeName;
@@ -718,6 +722,10 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, pr
718
722
  attributesFormData = attributesFormData.set('y', yVal);
719
723
  } else {
720
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);
721
729
  }
722
730
  break;
723
731
  }
@@ -992,53 +1000,87 @@ function setFinishing(props, state, payload) {
992
1000
  break;
993
1001
  }
994
1002
  }
995
- function movePan2D3D(props, payload, state) {
996
- var moveType = payload.moveType,
997
- moveValue = payload.moveValue;
998
- var value = state.getIn(['viewer2D']).toJS();
999
- if (state.mode === MODE_IDLE) {
1000
- switch (moveType) {
1001
- case TOP:
1002
- value.f -= moveValue;
1003
- break;
1004
- case BOTTOM:
1005
- value.f += moveValue;
1006
- break;
1007
- case RIGHT:
1008
- value.e += moveValue;
1009
- break;
1010
- case LEFT:
1011
- value.e -= moveValue;
1012
- 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
+ }
1013
1055
  }
1014
- updateViwer2D(value, props.viewer2DActions);
1015
- } else if (state.mode === MODE_IDLE_3D) {
1016
- switch (moveType) {
1056
+ } else if (eventType === EXTERNAL_EVENT_ROTATE_PAN) {
1057
+ var rotateType = payload.rotateType;
1058
+ switch (rotateType) {
1017
1059
  case TOP:
1018
1060
  window.interval = setTimeout(function () {
1019
- window.tDKeyDown({
1020
- keyCode: 38
1061
+ window.SPKeyDown({
1062
+ keyCode: 87
1021
1063
  });
1022
1064
  }, 50);
1023
1065
  break;
1024
1066
  case BOTTOM:
1025
1067
  window.interval = setTimeout(function () {
1026
- window.tDKeyDown({
1027
- keyCode: 40
1068
+ window.SPKeyDown({
1069
+ keyCode: 83
1028
1070
  });
1029
1071
  }, 50);
1030
1072
  break;
1031
1073
  case RIGHT:
1032
1074
  window.interval = setTimeout(function () {
1033
- window.tDKeyDown({
1034
- keyCode: 39
1075
+ window.SPKeyDown({
1076
+ keyCode: 68
1035
1077
  });
1036
1078
  }, 50);
1037
1079
  break;
1038
1080
  case LEFT:
1039
1081
  window.interval = setTimeout(function () {
1040
- window.tDKeyDown({
1041
- keyCode: 37
1082
+ window.SPKeyDown({
1083
+ keyCode: 65
1042
1084
  });
1043
1085
  }, 50);
1044
1086
  break;
@@ -1049,17 +1091,19 @@ export function handleExternalEvent(_x10) {
1049
1091
  return _handleExternalEvent.apply(this, arguments);
1050
1092
  }
1051
1093
  function _handleExternalEvent() {
1052
- _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(props) {
1094
+ _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(props) {
1053
1095
  var _evt$payload3, _evt$payload4;
1054
- 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;
1055
- return _regeneratorRuntime.wrap(function (_context9) {
1056
- 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) {
1057
1099
  case 0:
1058
1100
  // console.log('***external event****', props);
1059
1101
  evt = props.externalEvent;
1060
1102
  state = props.state.get('KitchenConfigurator');
1103
+ layerId = state.getIn(['scene', 'selectedLayer']);
1104
+ layer = state.getIn(['scene', 'layers', layerId]);
1061
1105
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
1062
- _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;
1063
1107
  break;
1064
1108
  case 1:
1065
1109
  // prepare item data request
@@ -1071,10 +1115,14 @@ function _handleExternalEvent() {
1071
1115
  return _regeneratorRuntime.wrap(function (_context8) {
1072
1116
  while (1) switch (_context8.prev = _context8.next) {
1073
1117
  case 0:
1074
- 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
+ /////////
1075
1123
  if (!cdsItems.some(function (v) {
1076
1124
  var _it$doorStyle;
1077
- 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;
1078
1126
  })) cdsItems.push({
1079
1127
  itemID: it.itemID,
1080
1128
  prototype: it.prototype,
@@ -1093,13 +1141,13 @@ function _handleExternalEvent() {
1093
1141
  i = 0;
1094
1142
  case 2:
1095
1143
  if (!(i < itemKeys.length)) {
1096
- _context9.next = 4;
1144
+ _context1.next = 4;
1097
1145
  break;
1098
1146
  }
1099
- return _context9.delegateYield(_loop3(), "t0", 3);
1147
+ return _context1.delegateYield(_loop3(), "t0", 3);
1100
1148
  case 3:
1101
1149
  i++;
1102
- _context9.next = 2;
1150
+ _context1.next = 2;
1103
1151
  break;
1104
1152
  case 4:
1105
1153
  // request item catalog data to host app
@@ -1140,30 +1188,42 @@ function _handleExternalEvent() {
1140
1188
  };
1141
1189
  }());
1142
1190
  }
1143
- return _context9.abrupt("continue", 32);
1191
+ return _context1.abrupt("continue", 43);
1144
1192
  case 5:
1145
1193
  props.projectActions.setMode(MODE_IDLE_3D);
1146
- return _context9.abrupt("continue", 32);
1194
+ return _context1.abrupt("continue", 43);
1147
1195
  case 6:
1148
1196
  props.projectActions.setMode(MODE_IDLE);
1149
- return _context9.abrupt("continue", 32);
1197
+ return _context1.abrupt("continue", 43);
1150
1198
  case 7:
1151
- sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1199
+ sLineCnt = layer.selected.lines.size;
1152
1200
  if (sLineCnt > 0) props.projectActions.setMode(MODE_ELEVATION_VIEW);
1153
- return _context9.abrupt("continue", 32);
1201
+ return _context1.abrupt("continue", 43);
1154
1202
  case 8:
1155
1203
  if (state.mode === MODE_IDLE || state.mode === MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1156
1204
  props.projectActions.setMode(MODE_IDLE);
1157
1205
  props.linesActions.selectToolDrawingLine('wall');
1158
1206
  }
1159
- return _context9.abrupt("continue", 32);
1207
+ return _context1.abrupt("continue", 43);
1160
1208
  case 9:
1161
1209
  if (isEmpty(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1162
- _context9.next = 11;
1210
+ _context1.next = 11;
1163
1211
  break;
1164
1212
  }
1165
- element = evt.payload;
1166
- _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;
1167
1227
  return addItemToCatalog(element, state, props.catalog, props.projectActions);
1168
1228
  case 10:
1169
1229
  // start drawing item
@@ -1187,97 +1247,190 @@ function _handleExternalEvent() {
1187
1247
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1188
1248
  props.projectActions.setIsCabinetDrawing(true);
1189
1249
  case 11:
1190
- return _context9.abrupt("continue", 32);
1250
+ return _context1.abrupt("continue", 43);
1191
1251
  case 12:
1192
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);
1193
- return _context9.abrupt("continue", 32);
1253
+ return _context1.abrupt("continue", 43);
1194
1254
  case 13:
1195
- movePan2D3D(props, evt.payload, state);
1196
- return _context9.abrupt("continue", 32);
1255
+ moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
1256
+ return _context1.abrupt("continue", 43);
1197
1257
  case 14:
1198
1258
  defaulTitle = 'Untitle';
1199
1259
  props.projectActions.newProject();
1200
1260
  props.projectActions.rename(defaulTitle);
1201
- return _context9.abrupt("continue", 32);
1261
+ return _context1.abrupt("continue", 43);
1202
1262
  case 15:
1203
- _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, isAll = _evt$payload5.isAll;
1204
- props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1205
- 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;
1206
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:
1207
1348
  _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1208
1349
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1209
- return _context9.abrupt("continue", 32);
1210
- case 17:
1350
+ return _context1.abrupt("continue", 43);
1351
+ case 20:
1211
1352
  value = state.getIn(['viewer2D']).toJS();
1212
1353
  value.a += 0.1;
1213
1354
  value.d += 0.1;
1214
1355
  value.e -= value.SVGWidth * 0.1 / 2;
1215
1356
  value.f -= value.SVGHeight * 0.1 / 2;
1216
1357
  updateViwer2D(value, props.viewer2DActions);
1217
- return _context9.abrupt("continue", 32);
1218
- case 18:
1358
+ return _context1.abrupt("continue", 43);
1359
+ case 21:
1219
1360
  _value = state.getIn(['viewer2D']).toJS();
1220
1361
  _value.a -= 0.1;
1221
1362
  _value.d -= 0.1;
1222
1363
  _value.e += _value.SVGWidth * 0.1 / 2;
1223
1364
  _value.f += _value.SVGHeight * 0.1 / 2;
1224
1365
  updateViwer2D(_value, props.viewer2DActions);
1225
- return _context9.abrupt("continue", 32);
1226
- case 19:
1366
+ return _context1.abrupt("continue", 43);
1367
+ case 22:
1227
1368
  centering2D(state, props.viewer2DActions);
1228
- return _context9.abrupt("continue", 32);
1229
- case 20:
1369
+ return _context1.abrupt("continue", 43);
1370
+ case 23:
1230
1371
  props.projectActions.undo();
1231
- return _context9.abrupt("continue", 32);
1232
- case 21:
1372
+ return _context1.abrupt("continue", 43);
1373
+ case 24:
1233
1374
  props.projectActions.redo();
1234
- return _context9.abrupt("continue", 32);
1235
- case 22:
1375
+ return _context1.abrupt("continue", 43);
1376
+ case 25:
1236
1377
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1237
- _context9.next = 23;
1378
+ _context1.next = 26;
1238
1379
  return loadMoldingSvg(moldingInfo);
1239
- case 23:
1380
+ case 26:
1240
1381
  props.itemsActions.setMolding(moldingInfo, isGlobal);
1241
- return _context9.abrupt("continue", 32);
1242
- case 24:
1382
+ return _context1.abrupt("continue", 43);
1383
+ case 27:
1243
1384
  distElement = getElement(evt.payload, state);
1244
1385
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
1245
- return _context9.abrupt("continue", 32);
1246
- case 25:
1386
+ return _context1.abrupt("continue", 43);
1387
+ case 28:
1247
1388
  _distElement = getElement(evt.payload, state);
1248
1389
  if (_distElement) props.projectActions.remove(_distElement);
1249
- return _context9.abrupt("continue", 32);
1250
- case 26:
1390
+ return _context1.abrupt("continue", 43);
1391
+ case 29:
1251
1392
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value2 = _evt$payload8.value;
1252
- if (option === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1253
- props.viewer2DActions.updateCeilHeight(_value2);
1254
- props.viewer3DActions.update3DCeilHeight(_value2);
1255
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE) {
1256
- props.viewer2DActions.changeWallLengthMeasure(_value2);
1257
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE) {
1258
- props.viewer2DActions.changeBaseCabinetMeasure(_value2);
1259
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE) {
1260
- props.viewer2DActions.changeWallCabinetMeasure(_value2);
1261
- } else if (option === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1262
- props.viewer2DActions.changeWindowDoorMeasure(_value2);
1263
- }
1264
- return _context9.abrupt("continue", 32);
1265
- case 27:
1266
- layerId = state.getIn(['scene', 'selectedLayer']);
1267
- layer = state.getIn(['scene', 'layers', layerId]);
1268
- _layer$getIn = layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1269
- 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);
1270
- 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);
1271
- 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);
1272
- return _context9.abrupt("continue", 32);
1273
- 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:
1274
1427
  _layerID = state.scene.selectedLayer;
1275
- _layer = state.scene.getIn(['layers', _layerID]).toJS();
1428
+ _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1276
1429
  orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1277
- originalItem = _layer === null || _layer === void 0 ? void 0 : _layer.items[orginalItemInfo.id];
1278
- _context9.next = 29;
1430
+ originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1431
+ _context1.next = 40;
1279
1432
  return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
1280
- case 29:
1433
+ case 40:
1281
1434
  originalItemPos = {
1282
1435
  rotation: originalItem.rotation,
1283
1436
  selectedItemId: originalItem.id,
@@ -1292,23 +1445,27 @@ function _handleExternalEvent() {
1292
1445
  }
1293
1446
  };
1294
1447
  props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
1295
- return _context9.abrupt("continue", 32);
1296
- case 30:
1448
+ return _context1.abrupt("continue", 43);
1449
+ case 41:
1297
1450
  setFinishing(props, state, evt.payload);
1298
- 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);
1299
1456
  // send scene object from 3DTool to HostApp using internalEvent
1300
- (_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, {
1301
1458
  type: INTERNAL_EVENT_SYNC_SCENE,
1302
1459
  value: {
1303
- scene: state.scene.toJS()
1460
+ scene: sceneData
1304
1461
  }
1305
1462
  });
1306
- return _context9.abrupt("continue", 32);
1307
- case 32:
1463
+ return _context1.abrupt("continue", 43);
1464
+ case 43:
1308
1465
  case "end":
1309
- return _context9.stop();
1466
+ return _context1.stop();
1310
1467
  }
1311
- }, _callee8);
1468
+ }, _callee9);
1312
1469
  }));
1313
1470
  return _handleExternalEvent.apply(this, arguments);
1314
1471
  }