kitchen-simulator 2.0.15 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
7
  import { Map } from 'immutable';
8
- import { EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, MODE_IDLE, MODE_2D_PAN, EXTERNAL_EVENT_ADD_ITEM, ARRAY_3D_MODES, MODE_IDLE_3D, MODE_ELEVATION_VIEW, MODE_DRAWING_LINE, TOP, BOTTOM, LEFT, RIGHT, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, ZOOM_VARIABLE, 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 } 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_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, ZOOM_VARIABLE, 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, MAX_ZOOM_IN_SCALE, EXTERNAL_EVENT_REPLACE_CABINET } from "../constants";
9
9
  import { isEmpty } from "./helper";
10
10
  import exporter from "../catalog/utils/exporter";
11
11
  import { render2DItem, render3DItem, render3DApplianceItem, render3DLightingItem } from "../catalog/utils/item-loader";
@@ -19,8 +19,8 @@ var compareSVGRect = function compareSVGRect(value) {
19
19
  };
20
20
  var updateViwer2D = function updateViwer2D(value, viewer2DActions) {
21
21
  var _zoomValue = parseInt((value.a - 0.5) / ZOOM_VARIABLE);
22
- if (_zoomValue > 404) return;
23
- if (_zoomValue < 35 || Number.isNaN(_zoomValue)) return;
22
+ if (_zoomValue > MAX_ZOOM_IN_SCALE) return;
23
+ if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;
24
24
 
25
25
  // modify e, f to fit to SVG
26
26
  while (!(value.e <= 10)) {
@@ -942,21 +942,57 @@ function getElement(objProps, state) {
942
942
  }
943
943
  return curObject;
944
944
  }
945
- export function handleExternalEvent(_x1) {
945
+ function loadMoldingSvg(_x1) {
946
+ return _loadMoldingSvg.apply(this, arguments);
947
+ }
948
+ function _loadMoldingSvg() {
949
+ _loadMoldingSvg = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(molding) {
950
+ return _regeneratorRuntime.wrap(function (_context6) {
951
+ while (1) switch (_context6.prev = _context6.next) {
952
+ case 0:
953
+ return _context6.abrupt("return", new Promise(function (resolve, reject) {
954
+ var url = molding === null || molding === void 0 ? void 0 : molding.shape_svg;
955
+ if (!url) {
956
+ // Skip if no SVG URL available
957
+ return resolve();
958
+ }
959
+ var loader = new SVGLoader();
960
+ loader.load(url, function (data) {
961
+ var _data$xml$viewBox$ani, _data$xml, _data$xml$viewBox$ani2, _data$xml2;
962
+ molding.data = {
963
+ paths: data.paths,
964
+ svg_width: (_data$xml$viewBox$ani = (_data$xml = data.xml) === null || _data$xml === void 0 || (_data$xml = _data$xml.viewBox) === null || _data$xml === void 0 || (_data$xml = _data$xml.animVal) === null || _data$xml === void 0 ? void 0 : _data$xml.width) !== null && _data$xml$viewBox$ani !== void 0 ? _data$xml$viewBox$ani : 0,
965
+ svg_height: (_data$xml$viewBox$ani2 = (_data$xml2 = data.xml) === null || _data$xml2 === void 0 || (_data$xml2 = _data$xml2.viewBox) === null || _data$xml2 === void 0 || (_data$xml2 = _data$xml2.animVal) === null || _data$xml2 === void 0 ? void 0 : _data$xml2.height) !== null && _data$xml$viewBox$ani2 !== void 0 ? _data$xml$viewBox$ani2 : 0
966
+ };
967
+ resolve();
968
+ }, null, function (error) {
969
+ console.error(error);
970
+ reject(error);
971
+ });
972
+ }));
973
+ case 1:
974
+ case "end":
975
+ return _context6.stop();
976
+ }
977
+ }, _callee6);
978
+ }));
979
+ return _loadMoldingSvg.apply(this, arguments);
980
+ }
981
+ export function handleExternalEvent(_x10) {
946
982
  return _handleExternalEvent.apply(this, arguments);
947
983
  }
948
984
  function _handleExternalEvent() {
949
- _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(props) {
985
+ _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(props) {
950
986
  var _evt$payload3, _evt$payload4;
951
- var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, layer, bb, w, h, viewer, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value3, layerId, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _props$onInternalEven2, _t5, _t6;
952
- return _regeneratorRuntime.wrap(function (_context8) {
953
- while (1) switch (_context8.prev = _context8.next) {
987
+ var evt, state, _evt$payload, cdsItems, itemKeys, _loop3, i, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, _evt$payload5, moveType, moveValue, value, defaulTitle, _evt$payload6, doorStyle, itemCDS, isAll, _doorStyle, _value, _value2, layer, bb, w, h, viewer, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value3, layerId, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i2, _i3, _i4, _evt$payload9, _evt$payload0, _evt$payload1, _evt$payload10, _layerID, _layer2, orginalItemInfo, originalItem, originalItemPos, replaceItem, _props$onInternalEven2, _t5, _t6;
988
+ return _regeneratorRuntime.wrap(function (_context9) {
989
+ while (1) switch (_context9.prev = _context9.next) {
954
990
  case 0:
955
991
  // console.log('***external event****', props);
956
992
  evt = props.externalEvent;
957
993
  state = props.state.get('KitchenConfigurator');
958
994
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
959
- _context8.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 ? 19 : _t5 === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 20 : _t5 === EXTERNAL_EVENT_SET_INITIAL_DATA ? 21 : _t5 === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 22 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 23 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 24 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 25 : _t5 === EXTERNAL_EVENT_UNDO ? 26 : _t5 === EXTERNAL_EVENT_REDO ? 27 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 28 : _t5 === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 29 : _t5 === EXTERNAL_EVENT_DELETE_ELEMENT ? 30 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 31 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 32 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 32 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 33 : 34;
995
+ _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 ? 19 : _t5 === EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 20 : _t5 === EXTERNAL_EVENT_SET_INITIAL_DATA ? 21 : _t5 === EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 22 : _t5 === EXTERNAL_EVENT_ZOOM_IN ? 23 : _t5 === EXTERNAL_EVENT_ZOOM_OUT ? 24 : _t5 === EXTERNAL_EVENT_CENTERING_2D ? 25 : _t5 === EXTERNAL_EVENT_UNDO ? 26 : _t5 === EXTERNAL_EVENT_REDO ? 27 : _t5 === EXTERNAL_EVENT_SET_MOLDING ? 28 : _t5 === EXTERNAL_EVENT_DUPLICATE_ELEMENT ? 30 : _t5 === EXTERNAL_EVENT_DELETE_ELEMENT ? 31 : _t5 === EXTERNAL_EVENT_PROJECT_SETTING ? 32 : _t5 === EXTERNAL_EVENT_UPDATE_ATTRIBUTE ? 33 : _t5 === EXTERNAL_EVENT_UPDATE_PROPERTY ? 33 : _t5 === EXTERNAL_EVENT_REPLACE_CABINET ? 34 : _t5 === EXTERNAL_EVENT_SYNC_SCENE ? 36 : 37;
960
996
  break;
961
997
  case 1:
962
998
  // prepare item data request
@@ -965,8 +1001,8 @@ function _handleExternalEvent() {
965
1001
  _loop3 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop3() {
966
1002
  var _evt$payload2, _it$doorStyle2;
967
1003
  var it;
968
- return _regeneratorRuntime.wrap(function (_context7) {
969
- while (1) switch (_context7.prev = _context7.next) {
1004
+ return _regeneratorRuntime.wrap(function (_context8) {
1005
+ while (1) switch (_context8.prev = _context8.next) {
970
1006
  case 0:
971
1007
  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]];
972
1008
  if (!cdsItems.some(function (v) {
@@ -978,20 +1014,20 @@ function _handleExternalEvent() {
978
1014
  });
979
1015
  case 1:
980
1016
  case "end":
981
- return _context7.stop();
1017
+ return _context8.stop();
982
1018
  }
983
1019
  }, _loop3);
984
1020
  });
985
1021
  i = 0;
986
1022
  case 2:
987
1023
  if (!(i < itemKeys.length)) {
988
- _context8.next = 4;
1024
+ _context9.next = 4;
989
1025
  break;
990
1026
  }
991
- return _context8.delegateYield(_loop3(), "t0", 3);
1027
+ return _context9.delegateYield(_loop3(), "t0", 3);
992
1028
  case 3:
993
1029
  i++;
994
- _context8.next = 2;
1030
+ _context9.next = 2;
995
1031
  break;
996
1032
  case 4:
997
1033
  // request item catalog data to host app
@@ -1002,60 +1038,60 @@ function _handleExternalEvent() {
1002
1038
  cdsItems: cdsItems
1003
1039
  }
1004
1040
  }, /*#__PURE__*/function () {
1005
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(result) {
1041
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(result) {
1006
1042
  var _i, _result$elements;
1007
- return _regeneratorRuntime.wrap(function (_context6) {
1008
- while (1) switch (_context6.prev = _context6.next) {
1043
+ return _regeneratorRuntime.wrap(function (_context7) {
1044
+ while (1) switch (_context7.prev = _context7.next) {
1009
1045
  case 0:
1010
1046
  _i = 0;
1011
1047
  case 1:
1012
1048
  if (!(_i < (result === null || result === void 0 || (_result$elements = result.elements) === null || _result$elements === void 0 ? void 0 : _result$elements.length))) {
1013
- _context6.next = 3;
1049
+ _context7.next = 3;
1014
1050
  break;
1015
1051
  }
1016
- _context6.next = 2;
1052
+ _context7.next = 2;
1017
1053
  return addItemToCatalog(result.elements[_i], state, props.catalog, props.projectActions);
1018
1054
  case 2:
1019
1055
  _i++;
1020
- _context6.next = 1;
1056
+ _context7.next = 1;
1021
1057
  break;
1022
1058
  case 3:
1023
1059
  props.projectActions.loadProject(evt.payload);
1024
1060
  case 4:
1025
1061
  case "end":
1026
- return _context6.stop();
1062
+ return _context7.stop();
1027
1063
  }
1028
- }, _callee6);
1064
+ }, _callee7);
1029
1065
  }));
1030
- return function (_x10) {
1066
+ return function (_x11) {
1031
1067
  return _ref2.apply(this, arguments);
1032
1068
  };
1033
1069
  }());
1034
1070
  }
1035
- return _context8.abrupt("continue", 34);
1071
+ return _context9.abrupt("continue", 37);
1036
1072
  case 5:
1037
1073
  props.projectActions.setMode(MODE_IDLE_3D);
1038
- return _context8.abrupt("continue", 34);
1074
+ return _context9.abrupt("continue", 37);
1039
1075
  case 6:
1040
1076
  props.projectActions.setMode(MODE_IDLE);
1041
- return _context8.abrupt("continue", 34);
1077
+ return _context9.abrupt("continue", 37);
1042
1078
  case 7:
1043
1079
  sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
1044
1080
  if (sLineCnt > 0) props.projectActions.setMode(MODE_ELEVATION_VIEW);
1045
- return _context8.abrupt("continue", 34);
1081
+ return _context9.abrupt("continue", 37);
1046
1082
  case 8:
1047
1083
  if (state.mode === MODE_IDLE || state.mode === MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
1048
1084
  props.projectActions.setMode(MODE_IDLE);
1049
1085
  props.linesActions.selectToolDrawingLine('wall');
1050
1086
  }
1051
- return _context8.abrupt("continue", 34);
1087
+ return _context9.abrupt("continue", 37);
1052
1088
  case 9:
1053
1089
  if (isEmpty(evt === null || evt === void 0 ? void 0 : evt.payload)) {
1054
- _context8.next = 11;
1090
+ _context9.next = 11;
1055
1091
  break;
1056
1092
  }
1057
1093
  element = evt.payload;
1058
- _context8.next = 10;
1094
+ _context9.next = 10;
1059
1095
  return addItemToCatalog(element, state, props.catalog, props.projectActions);
1060
1096
  case 10:
1061
1097
  // start drawing item
@@ -1079,47 +1115,47 @@ function _handleExternalEvent() {
1079
1115
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
1080
1116
  props.projectActions.setIsCabinetDrawing(true);
1081
1117
  case 11:
1082
- return _context8.abrupt("continue", 34);
1118
+ return _context9.abrupt("continue", 37);
1083
1119
  case 12:
1084
1120
  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);
1085
- return _context8.abrupt("continue", 34);
1121
+ return _context9.abrupt("continue", 37);
1086
1122
  case 13:
1087
1123
  _evt$payload5 = evt.payload, moveType = _evt$payload5.moveType, moveValue = _evt$payload5.moveValue;
1088
1124
  value = state.getIn(['viewer2D']).toJS();
1089
1125
  _t6 = moveType;
1090
- _context8.next = _t6 === TOP ? 14 : _t6 === BOTTOM ? 15 : _t6 === RIGHT ? 16 : _t6 === LEFT ? 17 : 18;
1126
+ _context9.next = _t6 === TOP ? 14 : _t6 === BOTTOM ? 15 : _t6 === RIGHT ? 16 : _t6 === LEFT ? 17 : 18;
1091
1127
  break;
1092
1128
  case 14:
1093
1129
  value.f -= moveValue;
1094
- return _context8.abrupt("continue", 18);
1130
+ return _context9.abrupt("continue", 18);
1095
1131
  case 15:
1096
1132
  value.f += moveValue;
1097
- return _context8.abrupt("continue", 18);
1133
+ return _context9.abrupt("continue", 18);
1098
1134
  case 16:
1099
1135
  value.e += moveValue;
1100
- return _context8.abrupt("continue", 18);
1136
+ return _context9.abrupt("continue", 18);
1101
1137
  case 17:
1102
1138
  value.e -= moveValue;
1103
- return _context8.abrupt("continue", 18);
1139
+ return _context9.abrupt("continue", 18);
1104
1140
  case 18:
1105
1141
  updateViwer2D(value, props.viewer2DActions);
1106
- return _context8.abrupt("continue", 34);
1142
+ return _context9.abrupt("continue", 37);
1107
1143
  case 19:
1108
1144
  defaulTitle = 'Untitle';
1109
1145
  props.projectActions.newProject();
1110
1146
  props.projectActions.rename(defaulTitle);
1111
- return _context8.abrupt("continue", 34);
1147
+ return _context9.abrupt("continue", 37);
1112
1148
  case 20:
1113
1149
  _evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, itemCDS = _evt$payload6.itemCDS, isAll = _evt$payload6.isAll;
1114
1150
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1115
- return _context8.abrupt("continue", 34);
1151
+ return _context9.abrupt("continue", 37);
1116
1152
  case 21:
1117
1153
  _doorStyle = evt.payload.doorStyle;
1118
1154
  props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle);
1119
- return _context8.abrupt("continue", 34);
1155
+ return _context9.abrupt("continue", 37);
1120
1156
  case 22:
1121
1157
  props.projectActions.loadProject(evt.payload);
1122
- return _context8.abrupt("continue", 34);
1158
+ return _context9.abrupt("continue", 37);
1123
1159
  case 23:
1124
1160
  _value = state.getIn(['viewer2D']).toJS();
1125
1161
  _value.a += 0.1;
@@ -1127,7 +1163,7 @@ function _handleExternalEvent() {
1127
1163
  _value.e -= _value.SVGWidth * 0.1 / 2;
1128
1164
  _value.f -= _value.SVGHeight * 0.1 / 2;
1129
1165
  updateViwer2D(_value, props.viewer2DActions);
1130
- return _context8.abrupt("continue", 34);
1166
+ return _context9.abrupt("continue", 37);
1131
1167
  case 24:
1132
1168
  _value2 = state.getIn(['viewer2D']).toJS();
1133
1169
  _value2.a -= 0.1;
@@ -1135,7 +1171,7 @@ function _handleExternalEvent() {
1135
1171
  _value2.e += _value2.SVGWidth * 0.1 / 2;
1136
1172
  _value2.f += _value2.SVGHeight * 0.1 / 2;
1137
1173
  updateViwer2D(_value2, props.viewer2DActions);
1138
- return _context8.abrupt("continue", 34);
1174
+ return _context9.abrupt("continue", 37);
1139
1175
  case 25:
1140
1176
  // calculate the bounding box of all elements in plan
1141
1177
  layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
@@ -1156,32 +1192,42 @@ function _handleExternalEvent() {
1156
1192
  h = bb.maxY - bb.minY; // calc scale and offset to fit view
1157
1193
  viewer = state.getIn(['viewer2D']).toJS();
1158
1194
  if (w != 0 && Math.abs(w) != Infinity && h != 0 && Math.abs(h) != Infinity) {
1159
- viewer.a = viewer.viewerHeight < h ? viewer.viewerHeight / h : viewer.viewerHeight / h * 3 / 5 / ZOOM_VARIABLE > 400 ? viewer.viewerHeight / h * 400 / (viewer.viewerHeight / h / ZOOM_VARIABLE) : viewer.viewerHeight / h * 3 / 5;
1195
+ // elements are exist && bounding box size > 0
1196
+ viewer.a = viewer.viewerHeight < h ? viewer.viewerHeight / h : viewer.viewerHeight / h * 3 / 5 / ZOOM_VARIABLE > MAX_ZOOM_IN_SCALE ? viewer.viewerHeight / h * MAX_ZOOM_IN_SCALE / (viewer.viewerHeight / h / ZOOM_VARIABLE) : viewer.viewerHeight / h * 3 / 5;
1160
1197
  viewer.d = viewer.a;
1161
1198
  viewer.e = (viewer.viewerWidth - (bb.maxX + bb.minX) * viewer.a) / 2;
1162
1199
  viewer.f = (viewer.viewerHeight - (bb.maxY + bb.minY) * viewer.a) / 2;
1163
- updateViwer2D(viewer, props.viewer2DActions);
1200
+ } else {
1201
+ // there is no any element && bounding box size == 0
1202
+ viewer.e = viewer.viewerWidth / 2 - viewer.SVGWidth / 2;
1203
+ viewer.f = viewer.viewerHeight / 2 - viewer.SVGHeight / 2;
1204
+ viewer.a = 0.99;
1205
+ viewer.d = 0.99;
1164
1206
  }
1165
- return _context8.abrupt("continue", 34);
1207
+ updateViwer2D(viewer, props.viewer2DActions);
1208
+ return _context9.abrupt("continue", 37);
1166
1209
  case 26:
1167
1210
  props.projectActions.undo();
1168
- return _context8.abrupt("continue", 34);
1211
+ return _context9.abrupt("continue", 37);
1169
1212
  case 27:
1170
1213
  props.projectActions.redo();
1171
- return _context8.abrupt("continue", 34);
1214
+ return _context9.abrupt("continue", 37);
1172
1215
  case 28:
1173
1216
  _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1174
- props.itemsActions.setMolding(moldingInfo, isGlobal);
1175
- return _context8.abrupt("continue", 34);
1217
+ _context9.next = 29;
1218
+ return loadMoldingSvg(moldingInfo);
1176
1219
  case 29:
1220
+ props.itemsActions.setMolding(moldingInfo, isGlobal);
1221
+ return _context9.abrupt("continue", 37);
1222
+ case 30:
1177
1223
  distElement = getElement(evt.payload, state);
1178
1224
  if (distElement) props.itemsActions.duplicateSelected(distElement);
1179
- return _context8.abrupt("continue", 34);
1180
- case 30:
1225
+ return _context9.abrupt("continue", 37);
1226
+ case 31:
1181
1227
  _distElement = getElement(evt.payload, state);
1182
1228
  if (_distElement) props.projectActions.remove(_distElement);
1183
- return _context8.abrupt("continue", 34);
1184
- case 31:
1229
+ return _context9.abrupt("continue", 37);
1230
+ case 32:
1185
1231
  _evt$payload8 = evt.payload, option = _evt$payload8.option, _value3 = _evt$payload8.value;
1186
1232
  if (option === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT) {
1187
1233
  props.viewer2DActions.updateCeilHeight(_value3);
@@ -1195,16 +1241,39 @@ function _handleExternalEvent() {
1195
1241
  } else if (option === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE) {
1196
1242
  props.viewer2DActions.changeWindowDoorMeasure(_value3);
1197
1243
  }
1198
- return _context8.abrupt("continue", 34);
1199
- case 32:
1244
+ return _context9.abrupt("continue", 37);
1245
+ case 33:
1200
1246
  layerId = state.getIn(['scene', 'selectedLayer']);
1201
1247
  _layer = state.getIn(['scene', 'layers', layerId]);
1202
1248
  _layer$getIn = _layer.getIn(['selected']), selectedLines = _layer$getIn.lines, selectedHoles = _layer$getIn.holes, selectedItems = _layer$getIn.items;
1203
1249
  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);
1204
1250
  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);
1205
1251
  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);
1206
- return _context8.abrupt("continue", 34);
1207
- case 33:
1252
+ return _context9.abrupt("continue", 37);
1253
+ case 34:
1254
+ _layerID = state.scene.selectedLayer;
1255
+ _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1256
+ orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1257
+ originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1258
+ _context9.next = 35;
1259
+ return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
1260
+ case 35:
1261
+ originalItemPos = {
1262
+ rotation: originalItem.rotation,
1263
+ selectedItemId: originalItem.id,
1264
+ x: originalItem.x,
1265
+ y: originalItem.y
1266
+ };
1267
+ replaceItem = {
1268
+ name: evt === null || evt === void 0 || (_evt$payload0 = evt.payload) === null || _evt$payload0 === void 0 || (_evt$payload0 = _evt$payload0.replaceItemInfo) === null || _evt$payload0 === void 0 ? void 0 : _evt$payload0.name,
1269
+ info: {
1270
+ width: evt === null || evt === void 0 || (_evt$payload1 = evt.payload) === null || _evt$payload1 === void 0 || (_evt$payload1 = _evt$payload1.replaceItemInfo) === null || _evt$payload1 === void 0 || (_evt$payload1 = _evt$payload1.sizeinfo) === null || _evt$payload1 === void 0 ? void 0 : _evt$payload1.width,
1271
+ height: evt === null || evt === void 0 || (_evt$payload10 = evt.payload) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.replaceItemInfo) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.sizeinfo) === null || _evt$payload10 === void 0 ? void 0 : _evt$payload10.height
1272
+ }
1273
+ };
1274
+ props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
1275
+ return _context9.abrupt("continue", 37);
1276
+ case 36:
1208
1277
  // send scene object from 3DTool to HostApp using internalEvent
1209
1278
  (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1210
1279
  type: INTERNAL_EVENT_SYNC_SCENE,
@@ -1212,12 +1281,12 @@ function _handleExternalEvent() {
1212
1281
  scene: state.scene.toJS()
1213
1282
  }
1214
1283
  });
1215
- return _context8.abrupt("continue", 34);
1216
- case 34:
1284
+ return _context9.abrupt("continue", 37);
1285
+ case 37:
1217
1286
  case "end":
1218
- return _context8.stop();
1287
+ return _context9.stop();
1219
1288
  }
1220
- }, _callee7);
1289
+ }, _callee8);
1221
1290
  }));
1222
1291
  return _handleExternalEvent.apply(this, arguments);
1223
1292
  }
@@ -271,64 +271,21 @@ function LiteRenderer(props) {
271
271
  return _ref.apply(this, arguments);
272
272
  };
273
273
  }();
274
- var loadMoldings = /*#__PURE__*/function () {
274
+ var initCatalog = /*#__PURE__*/function () {
275
275
  var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
276
- var molding, toeMoldingData, moldingData, promises;
277
276
  return _regenerator["default"].wrap(function (_context2) {
278
277
  while (1) switch (_context2.prev = _context2.next) {
279
278
  case 0:
280
- molding = [];
281
- toeMoldingData = {};
282
- moldingData = {};
283
- if (moldingData.name = _constants.TOE_KICK_MOLDING) toeMoldingData = moldingData;
284
- promises = molding.map(function (child) {
285
- return new Promise(function (resolve, reject) {
286
- var url = child === null || child === void 0 ? void 0 : child.shape_svg;
287
- if (!url) return resolve();
288
- var loader = new _SVGLoader.SVGLoader();
289
- loader.load(url, function (data) {
290
- var _data$xml$viewBox$ani, _data$xml, _data$xml$viewBox$ani2, _data$xml2;
291
- child.data = {
292
- paths: data.paths,
293
- svg_width: (_data$xml$viewBox$ani = (_data$xml = data.xml) === null || _data$xml === void 0 || (_data$xml = _data$xml.viewBox) === null || _data$xml === void 0 || (_data$xml = _data$xml.animVal) === null || _data$xml === void 0 ? void 0 : _data$xml.width) !== null && _data$xml$viewBox$ani !== void 0 ? _data$xml$viewBox$ani : 0,
294
- svg_height: (_data$xml$viewBox$ani2 = (_data$xml2 = data.xml) === null || _data$xml2 === void 0 || (_data$xml2 = _data$xml2.viewBox) === null || _data$xml2 === void 0 || (_data$xml2 = _data$xml2.animVal) === null || _data$xml2 === void 0 ? void 0 : _data$xml2.height) !== null && _data$xml$viewBox$ani2 !== void 0 ? _data$xml$viewBox$ani2 : 0
295
- };
296
- resolve();
297
- }, null, function (error) {
298
- console.error(error);
299
- reject(error);
300
- });
301
- });
302
- });
303
- return _context2.abrupt("return", Promise.all(promises));
279
+ _context2.next = 1;
280
+ return initMyCatalog();
304
281
  case 1:
305
282
  case "end":
306
283
  return _context2.stop();
307
284
  }
308
285
  }, _callee2);
309
286
  }));
310
- return function loadMoldings() {
311
- return _ref2.apply(this, arguments);
312
- };
313
- }();
314
- var initCatalog = /*#__PURE__*/function () {
315
- var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
316
- return _regenerator["default"].wrap(function (_context3) {
317
- while (1) switch (_context3.prev = _context3.next) {
318
- case 0:
319
- _context3.next = 1;
320
- return initMyCatalog();
321
- case 1:
322
- _context3.next = 2;
323
- return loadMoldings();
324
- case 2:
325
- case "end":
326
- return _context3.stop();
327
- }
328
- }, _callee3);
329
- }));
330
287
  return function initCatalog() {
331
- return _ref3.apply(this, arguments);
288
+ return _ref2.apply(this, arguments);
332
289
  };
333
290
  }();
334
291
  initCatalog();