kitchen-simulator 1.0.0-alin.9 → 1.0.0-clark.101

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 (85) hide show
  1. package/es/LiteKitchenConfigurator.js +17 -175
  2. package/es/LiteRenderer.js +29 -114
  3. package/es/actions/items-actions.js +11 -6
  4. package/es/actions/project-actions.js +2 -3
  5. package/es/assets/img/svg/logo.svg +11 -0
  6. package/es/assets/img/svg/logo_with_text.svg +25 -0
  7. package/es/catalog/areas/area/planner-element.js +10 -5
  8. package/es/catalog/catalog.js +1 -4
  9. package/es/catalog/factories/wall-factory.js +8 -8
  10. package/es/catalog/lines/wall/planner-element.js +18 -9
  11. package/es/catalog/utils/exporter.js +5 -1
  12. package/es/catalog/utils/item-loader.js +112 -31
  13. package/es/catalog/utils/mtl-loader.js +2 -2
  14. package/es/catalog/utils/obj-loader.js +2 -2
  15. package/es/class/item.js +111 -145
  16. package/es/class/line.js +27 -12
  17. package/es/class/project.js +9 -23
  18. package/es/components/content.js +10 -5
  19. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  20. package/es/components/viewer2d/item.js +20 -81
  21. package/es/components/viewer2d/layer.js +1 -1
  22. package/es/components/viewer2d/line.js +334 -259
  23. package/es/components/viewer2d/ruler.js +15 -35
  24. package/es/components/viewer2d/rulerDist.js +18 -32
  25. package/es/components/viewer2d/viewer2d.js +123 -95
  26. package/es/components/viewer3d/libs/mtl-loader.js +2 -2
  27. package/es/components/viewer3d/libs/obj-loader.js +2 -2
  28. package/es/components/viewer3d/libs/orbit-controls.js +3 -4
  29. package/es/components/viewer3d/libs/pointer-lock-controls.js +6 -7
  30. package/es/components/viewer3d/viewer3d.js +91 -70
  31. package/es/constants.js +38 -3
  32. package/es/devLiteRenderer.js +165 -10
  33. package/es/index.js +52 -3
  34. package/es/models.js +7 -5
  35. package/es/reducers/items-reducer.js +8 -4
  36. package/es/reducers/project-reducer.js +1 -1
  37. package/es/shared-style.js +4 -4
  38. package/es/utils/get-edges-of-subgraphs.js +1 -1
  39. package/es/utils/graph-cycles.js +1 -1
  40. package/es/utils/graph.js +1 -1
  41. package/es/utils/helper.js +1 -1
  42. package/es/utils/isolate-event-handler.js +567 -46
  43. package/lib/LiteKitchenConfigurator.js +18 -176
  44. package/lib/LiteRenderer.js +29 -114
  45. package/lib/actions/items-actions.js +11 -5
  46. package/lib/actions/project-actions.js +2 -3
  47. package/lib/assets/img/svg/logo.svg +11 -0
  48. package/lib/assets/img/svg/logo_with_text.svg +25 -0
  49. package/lib/catalog/areas/area/planner-element.js +11 -5
  50. package/lib/catalog/catalog.js +1 -4
  51. package/lib/catalog/factories/wall-factory.js +8 -8
  52. package/lib/catalog/lines/wall/planner-element.js +19 -9
  53. package/lib/catalog/utils/exporter.js +5 -1
  54. package/lib/catalog/utils/item-loader.js +111 -31
  55. package/lib/catalog/utils/mtl-loader.js +9 -2
  56. package/lib/catalog/utils/obj-loader.js +10 -2
  57. package/lib/class/item.js +111 -145
  58. package/lib/class/line.js +27 -12
  59. package/lib/class/project.js +9 -23
  60. package/lib/components/content.js +10 -5
  61. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  62. package/lib/components/viewer2d/item.js +20 -81
  63. package/lib/components/viewer2d/layer.js +1 -1
  64. package/lib/components/viewer2d/line.js +334 -258
  65. package/lib/components/viewer2d/ruler.js +15 -35
  66. package/lib/components/viewer2d/rulerDist.js +18 -32
  67. package/lib/components/viewer2d/viewer2d.js +121 -93
  68. package/lib/components/viewer3d/libs/mtl-loader.js +9 -2
  69. package/lib/components/viewer3d/libs/obj-loader.js +9 -2
  70. package/lib/components/viewer3d/libs/orbit-controls.js +11 -5
  71. package/lib/components/viewer3d/libs/pointer-lock-controls.js +13 -7
  72. package/lib/components/viewer3d/viewer3d.js +90 -69
  73. package/lib/constants.js +42 -7
  74. package/lib/devLiteRenderer.js +164 -9
  75. package/lib/index.js +52 -3
  76. package/lib/models.js +7 -5
  77. package/lib/reducers/items-reducer.js +7 -3
  78. package/lib/reducers/project-reducer.js +1 -1
  79. package/lib/shared-style.js +4 -4
  80. package/lib/utils/get-edges-of-subgraphs.js +6 -1
  81. package/lib/utils/graph-cycles.js +7 -8
  82. package/lib/utils/graph.js +6 -1
  83. package/lib/utils/helper.js +2 -2
  84. package/lib/utils/isolate-event-handler.js +567 -45
  85. package/package.json +5 -9
package/lib/class/item.js CHANGED
@@ -55,65 +55,19 @@ var Item = exports["default"] = /*#__PURE__*/function () {
55
55
  isDuplication: isDuplication
56
56
  }, null, state);
57
57
  if (item.category === 'cabinet') {
58
+ var _state$doorStyle;
58
59
  var layer = state.getIn(['scene', 'layers', layerID]);
59
- if (state.doorStyle !== null && state.doorStyle !== undefined) {
60
- var _state$doorStyle, _temp$doorStyles;
61
- var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
62
- var cds = temp === null || temp === void 0 || (_temp$doorStyles = temp.doorStyles) === null || _temp$doorStyles === void 0 || (_temp$doorStyles = _temp$doorStyles.cds) === null || _temp$doorStyles === void 0 ? void 0 : _temp$doorStyles.find(function (elem) {
63
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
60
+ var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
61
+ var cds = state.catalog.getIn(['elements', type, 'cds']);
62
+ if (cds) {
63
+ var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
64
+ cds: [cds]
65
+ });
66
+ item = item.merge({
67
+ doorStyle: (0, _immutable.fromJS)(_objectSpread(_objectSpread({}, temp), {}, {
68
+ doorStyles: updatedDoorStyles
69
+ }))
64
70
  });
65
- if (cds) {
66
- var updatedDoorStyles = _objectSpread(_objectSpread(_objectSpread({}, temp.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
67
- cabinet_door_style_id: cds.cabinet_door_style_id
68
- });
69
- item = item.merge({
70
- doorStyle: (0, _immutable.fromJS)(_objectSpread(_objectSpread({}, temp), {}, {
71
- doorStyles: updatedDoorStyles
72
- }))
73
- });
74
- } else {
75
- var _state$oStyle;
76
- var styleObj = (_state$oStyle = state.oStyle) === null || _state$oStyle === void 0 || (_state$oStyle = _state$oStyle.toJS()) === null || _state$oStyle === void 0 ? void 0 : _state$oStyle.oStyle;
77
- if (styleObj) {
78
- for (var _x in styleObj) {
79
- cds = styleObj[_x].data.doorStyles.cds.find(function (elem) {
80
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
81
- });
82
- if (cds) {
83
- var tmpDS = styleObj[_x].data;
84
- tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, tmpDS.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
85
- cabinet_door_style_id: cds.cabinet_door_style_id
86
- });
87
- item = item.merge({
88
- doorStyle: (0, _immutable.fromJS)(tmpDS)
89
- });
90
- break;
91
- }
92
- }
93
- }
94
- }
95
- } else {
96
- var _state$oStyle2;
97
- var _styleObj = (_state$oStyle2 = state.oStyle) === null || _state$oStyle2 === void 0 || (_state$oStyle2 = _state$oStyle2.toJS()) === null || _state$oStyle2 === void 0 ? void 0 : _state$oStyle2.oStyle;
98
- if (_styleObj) {
99
- for (var _x2 in _styleObj) {
100
- var _styleObj$_x;
101
- var _cds = (_styleObj$_x = _styleObj[_x2]) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.data) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.doorStyles) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.cds) === null || _styleObj$_x === void 0 ? void 0 : _styleObj$_x.find(function (elem) {
102
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
103
- });
104
- if (_cds) {
105
- var _styleObj$_x2;
106
- var _tmpDS = (_styleObj$_x2 = _styleObj[_x2]) === null || _styleObj$_x2 === void 0 ? void 0 : _styleObj$_x2.data;
107
- _tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, _tmpDS.doorStyles), _cds.data && _cds.data[0] ? _cds.data[0] : {}), {}, {
108
- cabinet_door_style_id: _cds.cabinet_door_style_id
109
- });
110
- item = item.merge({
111
- doorStyle: (0, _immutable.fromJS)(_tmpDS)
112
- });
113
- break;
114
- }
115
- }
116
- }
117
71
  }
118
72
  }
119
73
  if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {
@@ -123,15 +77,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
123
77
  };
124
78
  }
125
79
  var setSizeOfItemByDoorStyle = function setSizeOfItemByDoorStyle() {
126
- var _doorStyle$doorStyles, _cds$data;
127
80
  var doorStyle = item.get('doorStyle').toJS();
128
- var cds = doorStyle === null || doorStyle === void 0 || (_doorStyle$doorStyles = doorStyle.doorStyles) === null || _doorStyle$doorStyles === void 0 || (_doorStyle$doorStyles = _doorStyle$doorStyles.cds) === null || _doorStyle$doorStyles === void 0 ? void 0 : _doorStyle$doorStyles.find(function (elem) {
129
- return elem.itemID === item.itemID;
130
- });
131
- var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
132
- return element && element.is_euro_cds;
133
- })) || [];
134
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
81
+ var euroCDS = state.catalog.getIn(['elements', type, 'customer_property']).is_euro_cds;
82
+ if (doorStyle.door_style_name === 'Euro & Frameless' && euroCDS.length > 0) {
135
83
  var newProperties = item.get('properties').toJS();
136
84
  if (newProperties.hasOwnProperty('depth')) {
137
85
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -142,8 +90,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
142
90
  });
143
91
  }
144
92
  newProperties['depth'] = new _immutable.Map({
145
- length: (0, _convertUnitsLite.convert)(euro_cds[0].euro_length).from('in').to('cm'),
146
- _length: euro_cds[0].euro_length,
93
+ length: (0, _convertUnitsLite.convert)(euroCDS[0].euro_length).from('in').to('cm'),
94
+ _length: euroCDS[0].euro_length,
147
95
  _unit: 'in'
148
96
  });
149
97
  }
@@ -156,8 +104,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
156
104
  });
157
105
  }
158
106
  newProperties['height'] = new _immutable.Map({
159
- length: (0, _convertUnitsLite.convert)(euro_cds[0].euro_height).from('in').to('cm'),
160
- _length: euro_cds[0].euro_height,
107
+ length: (0, _convertUnitsLite.convert)(euroCDS[0].euro_height).from('in').to('cm'),
108
+ _length: euroCDS[0].euro_height,
161
109
  _unit: 'in'
162
110
  });
163
111
  }
@@ -170,8 +118,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
170
118
  });
171
119
  }
172
120
  newProperties['width'] = new _immutable.Map({
173
- length: (0, _convertUnitsLite.convert)(euro_cds[0].euro_width).from('in').to('cm') - 10,
174
- _length: euro_cds[0].euro_width,
121
+ length: (0, _convertUnitsLite.convert)(euroCDS[0].euro_width).from('in').to('cm') - 10,
122
+ _length: euroCDS[0].euro_width,
175
123
  _unit: 'in'
176
124
  });
177
125
  }
@@ -1130,48 +1078,37 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1130
1078
  }
1131
1079
  }, {
1132
1080
  key: "setInitialDoorStyle",
1133
- value: function setInitialDoorStyle(state, doorStyle, oStyle) {
1134
- if (doorStyle === undefined) {
1135
- state = state.merge({
1136
- oStyle: new _immutable.Map({
1137
- oStyle: oStyle
1138
- })
1139
- });
1140
- } else {
1141
- state = state.merge({
1142
- doorStyle: doorStyle,
1143
- oStyle: new _immutable.Map({
1144
- oStyle: oStyle
1145
- })
1146
- });
1147
- var _state8 = state,
1148
- scene = _state8.scene;
1149
- var layerID = scene.get('selectedLayer');
1150
- var layers = scene.layers.get(layerID);
1151
- var items = layers.items;
1152
- items.forEach(function (data) {
1153
- {
1154
- var itemID = data.id;
1155
- var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1156
- doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1157
- counttop: doorStyle.doorStyles.counttop
1158
- })
1159
- });
1160
- data = data.mergeIn(['doorStyle'], (0, _immutable.fromJS)(tmpDS));
1161
- layers = layers.mergeIn(['items', itemID], data);
1162
- state = state.merge({
1163
- scene: scene.mergeIn(['layers', layerID], layers)
1164
- });
1165
- }
1166
- });
1167
- }
1081
+ value: function setInitialDoorStyle(state, doorStyle) {
1082
+ state = state.merge({
1083
+ doorStyle: doorStyle
1084
+ });
1085
+ var _state8 = state,
1086
+ scene = _state8.scene;
1087
+ var layerID = scene.get('selectedLayer');
1088
+ var layers = scene.layers.get(layerID);
1089
+ var items = layers.items;
1090
+ items.forEach(function (data) {
1091
+ {
1092
+ var itemID = data.id;
1093
+ var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1094
+ doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1095
+ counttop: doorStyle.doorStyles.counttop
1096
+ })
1097
+ });
1098
+ data = data.mergeIn(['doorStyle'], (0, _immutable.fromJS)(tmpDS));
1099
+ layers = layers.mergeIn(['items', itemID], data);
1100
+ state = state.merge({
1101
+ scene: scene.mergeIn(['layers', layerID], layers)
1102
+ });
1103
+ }
1104
+ });
1168
1105
  return {
1169
1106
  updatedState: state
1170
1107
  };
1171
1108
  }
1172
1109
  }, {
1173
1110
  key: "setDoorStyle",
1174
- value: function setDoorStyle(state, doorStyle, pathes, isAll) {
1111
+ value: function setDoorStyle(state, doorStyle, itemCDS, isAll) {
1175
1112
  var _this2 = this;
1176
1113
  var keys = Object.keys(doorStyle.doorStyles);
1177
1114
  keys = keys.filter(function (elem) {
@@ -1188,14 +1125,14 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1188
1125
  var layerID = state.scene.get('selectedLayer');
1189
1126
  var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1190
1127
  temp_layer_molding = temp_layer_molding.filter(function (md) {
1191
- return doorStyle.doorStyles.cds.some(function (ds) {
1128
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1192
1129
  return md.itemID === ds.itemID;
1193
1130
  });
1194
1131
  });
1195
1132
  state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
1196
1133
  var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
1197
1134
  var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
1198
- var _cds$data2;
1135
+ var _cds$data;
1199
1136
  if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1200
1137
  var itemID = data.id;
1201
1138
  var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1203,7 +1140,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1203
1140
  var tmpMolding = (0, _toConsumableArray2["default"])(curItem.molding);
1204
1141
  var temp_item_molding = (0, _toConsumableArray2["default"])(curItem.molding);
1205
1142
  temp_item_molding = temp_item_molding.filter(function (md) {
1206
- return doorStyle.doorStyles.cds.some(function (ds) {
1143
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1207
1144
  return ds.itemID === md.itemID;
1208
1145
  });
1209
1146
  });
@@ -1213,17 +1150,16 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1213
1150
  state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
1214
1151
  });
1215
1152
  });
1216
- var cds = doorStyle.doorStyles.cds.find(function (elem) {
1153
+ var cds = itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.find(function (elem) {
1217
1154
  return elem.itemID === data.itemID;
1218
1155
  });
1219
- var euro_cds = (cds === null || cds === void 0 || (_cds$data2 = cds.data) === null || _cds$data2 === void 0 ? void 0 : _cds$data2.filter(function (element) {
1156
+ var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
1220
1157
  return element && element.is_euro_cds;
1221
1158
  })) || [];
1222
- var cds_data;
1223
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
1224
- cds_data = cds ? _objectSpread(_objectSpread({}, euro_cds[0]), {}, {
1225
- cabinet_door_style_id: cds.cabinet_door_style_id
1226
- }) : {};
1159
+ var cds_data = cds ? [cds] : [];
1160
+ if (
1161
+ // doorStyle.door_style_name === 'Euro & Frameless' &&
1162
+ euro_cds.length > 0) {
1227
1163
  var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1228
1164
  if (newProperties.hasOwnProperty('depth')) {
1229
1165
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -1269,9 +1205,6 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1269
1205
  }
1270
1206
  state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
1271
1207
  } else {
1272
- cds_data = cds ? _objectSpread(_objectSpread({}, cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
1273
- cabinet_door_style_id: cds.cabinet_door_style_id
1274
- }) : {};
1275
1208
  var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1276
1209
  if (properties.hasOwnProperty('oldDepth')) {
1277
1210
  properties['depth'] = new _immutable.Map({
@@ -1310,7 +1243,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1310
1243
  color_sku_alias: doorStyle.color_sku_alias,
1311
1244
  // alias name of color_sku for the current dealer
1312
1245
  install: (0, _utils.getInstallationSuffix)(_constants.INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
1313
- doorStyles: _objectSpread(_objectSpread({}, tmp), cds_data)
1246
+ doorStyles: _objectSpread(_objectSpread({}, tmp), {}, {
1247
+ cds: cds_data
1248
+ })
1314
1249
  };
1315
1250
  state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], (0, _immutable.fromJS)(tmpDS));
1316
1251
  };
@@ -1338,10 +1273,41 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1338
1273
  };
1339
1274
  }
1340
1275
  }, {
1341
- key: "setCounterTop",
1342
- value: function setCounterTop(state, counterTop) {
1276
+ key: "changeDistance",
1277
+ value: function changeDistance(state, distancePayload) {
1343
1278
  var _state9 = state,
1344
1279
  scene = _state9.scene;
1280
+ var Left = distancePayload.distanceLeft;
1281
+ var Right = distancePayload.distanceRight;
1282
+ var Back = distancePayload.distanceBack;
1283
+ var Front = distancePayload.distanceFront;
1284
+ var LeftRotRad = Left ? 180 : null;
1285
+ var RightRotRad = Right ? 0 : null;
1286
+ var BackRotRad = Back ? -90 : null;
1287
+ var FrontRotRad = Front ? 90 : null;
1288
+ var directR = LeftRotRad || RightRotRad || BackRotRad || FrontRotRad;
1289
+ var dist = Left || Right || Back || Front;
1290
+ var layerID = scene.get('selectedLayer');
1291
+ var layer = scene.layers.get(layerID).toJS();
1292
+ var selectedItemId = layer.selected.items[0];
1293
+ var selectedItem = layer.items[selectedItemId];
1294
+ if (selectedItem) {
1295
+ var renderedR = selectedItem.rotation || 0;
1296
+ var rotRad = (directR + renderedR) / 180 * Math.PI;
1297
+ var newX = selectedItem.x + (0, _convertUnitsLite.convert)(dist * Math.cos(rotRad)).from('in').to('cm');
1298
+ var newY = selectedItem.y + (0, _convertUnitsLite.convert)(dist * Math.sin(rotRad)).from('in').to('cm');
1299
+ state = state.setIn(['scene', 'layers', layerID, 'items', layer.selected.items[0], 'x'], newX);
1300
+ state = state.setIn(['scene', 'layers', layerID, 'items', layer.selected.items[0], 'y'], newY);
1301
+ }
1302
+ return {
1303
+ updatedState: state
1304
+ };
1305
+ }
1306
+ }, {
1307
+ key: "setCounterTop",
1308
+ value: function setCounterTop(state, counterTop) {
1309
+ var _state0 = state,
1310
+ scene = _state0.scene;
1345
1311
  var layerID = scene.get('selectedLayer');
1346
1312
  var layers = scene.layers.get(layerID);
1347
1313
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1385,8 +1351,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1385
1351
  }, {
1386
1352
  key: "setDoorHandle",
1387
1353
  value: function setDoorHandle(state, doorHandle) {
1388
- var _state0 = state,
1389
- scene = _state0.scene;
1354
+ var _state1 = state,
1355
+ scene = _state1.scene;
1390
1356
  var layerID = scene.get('selectedLayer');
1391
1357
  var layer = scene.layers.get(layerID);
1392
1358
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1410,8 +1376,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1410
1376
  }, {
1411
1377
  key: "setHandleMaterial",
1412
1378
  value: function setHandleMaterial(state, material) {
1413
- var _state1 = state,
1414
- scene = _state1.scene;
1379
+ var _state10 = state,
1380
+ scene = _state10.scene;
1415
1381
  var layerID = scene.get('selectedLayer');
1416
1382
  var layers = scene.layers.get(layerID);
1417
1383
  var items = layers.items;
@@ -1436,8 +1402,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1436
1402
  }, {
1437
1403
  key: "setWallColor",
1438
1404
  value: function setWallColor(state, wallColor) {
1439
- var _state10 = state,
1440
- scene = _state10.scene;
1405
+ var _state11 = state,
1406
+ scene = _state11.scene;
1441
1407
  var layerID = scene.get('selectedLayer');
1442
1408
  var layer = scene.layers.get(layerID);
1443
1409
  layer = layer.merge({
@@ -1463,8 +1429,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1463
1429
  }, {
1464
1430
  key: "setBacksplash",
1465
1431
  value: function setBacksplash(state, backsplash) {
1466
- var _state11 = state,
1467
- scene = _state11.scene;
1432
+ var _state12 = state,
1433
+ scene = _state12.scene;
1468
1434
  var layerID = scene.get('selectedLayer');
1469
1435
  var layer = scene.layers.get(layerID);
1470
1436
  var dataJSON = layer.toJS();
@@ -1492,8 +1458,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1492
1458
  }, {
1493
1459
  key: "setMolding",
1494
1460
  value: function setMolding(state, molding, isAll) {
1495
- var _state12 = state,
1496
- scene = _state12.scene;
1461
+ var _state13 = state,
1462
+ scene = _state13.scene;
1497
1463
  var layerID = scene.get('selectedLayer');
1498
1464
  var layer = scene.layers.get(layerID);
1499
1465
  if (isAll) {
@@ -1582,8 +1548,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1582
1548
  }, {
1583
1549
  key: "updateMolding",
1584
1550
  value: function updateMolding(state) {
1585
- var _state13 = state,
1586
- scene = _state13.scene;
1551
+ var _state14 = state,
1552
+ scene = _state14.scene;
1587
1553
  var layerID = scene.get('selectedLayer');
1588
1554
  var layer = scene.layers.get(layerID);
1589
1555
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1704,8 +1670,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1704
1670
  }, {
1705
1671
  key: "setBacksplashVisible",
1706
1672
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1707
- var _state14 = state,
1708
- scene = _state14.scene;
1673
+ var _state15 = state,
1674
+ scene = _state15.scene;
1709
1675
  var layerID = scene.get('selectedLayer');
1710
1676
  var layer = scene.layers.get(layerID);
1711
1677
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1725,8 +1691,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1725
1691
  }, {
1726
1692
  key: "setApplianceMaterial",
1727
1693
  value: function setApplianceMaterial(state, material) {
1728
- var _state15 = state,
1729
- scene = _state15.scene;
1694
+ var _state16 = state,
1695
+ scene = _state16.scene;
1730
1696
  var layerID = scene.get('selectedLayer');
1731
1697
  var layers = scene.layers.get(layerID);
1732
1698
  var items = layers.items;
@@ -1750,8 +1716,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1750
1716
  }, {
1751
1717
  key: "setModelling",
1752
1718
  value: function setModelling(state, molding) {
1753
- var _state16 = state,
1754
- scene = _state16.scene;
1719
+ var _state17 = state,
1720
+ scene = _state17.scene;
1755
1721
  var layerID = scene.get('selectedLayer');
1756
1722
  var layers = scene.layers.get(layerID);
1757
1723
  var items = layers.items;
@@ -1861,8 +1827,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1861
1827
  }, {
1862
1828
  key: "toggleLoadingCabinet",
1863
1829
  value: function toggleLoadingCabinet(state) {
1864
- var _state17 = state,
1865
- scene = _state17.scene;
1830
+ var _state18 = state,
1831
+ scene = _state18.scene;
1866
1832
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1867
1833
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1868
1834
  // state = state.set('scene', scene);
@@ -1874,8 +1840,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1874
1840
  }, {
1875
1841
  key: "endLoading",
1876
1842
  value: function endLoading(state) {
1877
- var _state18 = state,
1878
- scene = _state18.scene;
1843
+ var _state19 = state,
1844
+ scene = _state19.scene;
1879
1845
  state = state.setIn(['scene', 'loadFlag'], true);
1880
1846
  return {
1881
1847
  updatedState: state
package/lib/class/line.js CHANGED
@@ -510,7 +510,7 @@ var Line = exports["default"] = /*#__PURE__*/function () {
510
510
  // let relatedLines = [];
511
511
  var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
512
512
  var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
513
- var moveFlag = true;
513
+ var moveFlag = [];
514
514
  var tx = vertices[drawingLine.vertices[1]].x;
515
515
  var ty = vertices[drawingLine.vertices[1]].y;
516
516
  if (!(0, _helper.isEmpty)(relatedLines)) {
@@ -518,6 +518,7 @@ var Line = exports["default"] = /*#__PURE__*/function () {
518
518
  vertices[drawingLine.vertices[1]].y = y;
519
519
  }
520
520
  var absAngle, lineAngle;
521
+ var angles = [];
521
522
 
522
523
  // get the angle of two lines and check the angle
523
524
  if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {
@@ -529,9 +530,10 @@ var Line = exports["default"] = /*#__PURE__*/function () {
529
530
  lineAngle = _export2.GeometryUtils.angleBetweenTwoLines(line, drawingLine, vertices);
530
531
  // check whether the angle is less than or bigger than specific value.
531
532
  absAngle = Math.abs(lineAngle);
533
+ angles.push(lineAngle);
532
534
  if (absAngle < _constants.MIN_ANGLE_DISALLOW_DRAW_WALL || absAngle > 360 - _constants.MIN_ANGLE_DISALLOW_DRAW_WALL) {
533
- moveFlag = false;
534
- } else moveFlag = true;
535
+ moveFlag.push(false);
536
+ } else moveFlag.push(true);
535
537
  }
536
538
  });
537
539
  } else {
@@ -543,23 +545,36 @@ var Line = exports["default"] = /*#__PURE__*/function () {
543
545
  }
544
546
 
545
547
  // if the angle is bigger or less than specific value, the wall mustn't be drawn at new position
546
- if (moveFlag) {
548
+ if (!moveFlag.some(function (flag) {
549
+ return flag === false;
550
+ })) {
547
551
  tx = x;
548
552
  ty = y;
549
553
  } else {
550
- var rest = _constants.MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;
551
554
  // the origin point of rotation(snapping)
552
555
  var ox = vertices[drawingLine.vertices[0]].x;
553
556
  var oy = vertices[drawingLine.vertices[0]].y;
554
- // determine the direction of rotation.
555
- rest = lineAngle > 0 ? -rest : rest;
556
- // rotate the current point to last point around the first point of drawing line.
557
- var res = _export2.GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);
558
- tx = res.x;
559
- ty = res.y;
557
+ angles.forEach(function (angle, index) {
558
+ if (!moveFlag[index]) {
559
+ var absVal = Math.abs(angle);
560
+ var rest = _constants.MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
561
+ if (absVal > 360 - _constants.MIN_ANGLE_DISALLOW_DRAW_WALL) {
562
+ absVal = 360 - absVal;
563
+ rest = -(_constants.MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
564
+ }
565
+ // determine the direction of rotation.
566
+ rest = angle > 0 ? -rest : rest;
567
+ // rotate the current point to last point around the first point of drawing line.
568
+ var res = _export2.GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);
569
+ tx = res.x;
570
+ ty = res.y;
571
+ }
572
+ });
560
573
  }
561
574
  // angle snapping as a value of UNIT_ANGLE
562
- if (moveFlag && !(0, _helper.isEmpty)(absAngle) && absAngle % _constants.UNIT_ANGLE !== 0) {
575
+ if (!moveFlag.some(function (flag) {
576
+ return flag === false;
577
+ }) && !(0, _helper.isEmpty)(absAngle) && absAngle % _constants.UNIT_ANGLE !== 0) {
563
578
  var result = _export2.GeometryUtils.snapAngleByUnit(lineAngle, vertices, drawingLine, tx, ty, drawingLine.vertices[1]);
564
579
  tx = result.x;
565
580
  ty = result.y;
@@ -43,7 +43,6 @@ var Project = exports["default"] = /*#__PURE__*/function () {
43
43
  key: "newProject",
44
44
  value: function newProject(state) {
45
45
  var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
46
- var oStyle = state.oStyle;
47
46
  // let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
48
47
  // let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
49
48
  var _viewer2D = state.viewer2D;
@@ -57,7 +56,6 @@ var Project = exports["default"] = /*#__PURE__*/function () {
57
56
  state = new _models.State({});
58
57
  state = state.merge({
59
58
  doorStyle: doorStyle,
60
- oStyle: oStyle,
61
59
  viewer2D: _viewer2D
62
60
  });
63
61
  // state = Item.setCounterTop(state, counterTop).updatedState;
@@ -68,9 +66,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
68
66
  }
69
67
  }, {
70
68
  key: "loadProject",
71
- value: function loadProject(state, sceneJSON, categoryData) {
69
+ value: function loadProject(state, sceneJSON) {
72
70
  var doorStyle = state.doorStyle;
73
- var oStyle = state.oStyle;
74
71
  var layerID = state.scene.selectedLayer;
75
72
  var _viewer2D = state.viewer2D;
76
73
  var viewer = state.viewer2D.toJS();
@@ -170,28 +167,10 @@ var Project = exports["default"] = /*#__PURE__*/function () {
170
167
  }
171
168
  state = state.merge({
172
169
  doorStyle: doorStyle,
173
- oStyle: oStyle,
174
170
  viewer2D: _viewer2D
175
171
  });
176
172
  state = _export2.Item.setCounterTop(state, counterTop).updatedState;
177
173
  state = _export2.Area.setFloorStyles(state, floorStyle).updatedState;
178
- if (state.getIn(['scene', 'layers', layerID, 'doorStyle']) && !state.getIn(['scene', 'layers', layerID, 'doorStyle', 'install'])) {
179
- var layerDoorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
180
- var install = '';
181
- categoryData.data.doorStyles.items.forEach(function (category) {
182
- category.items.forEach(function (element) {
183
- if (element.items.filter(function (it) {
184
- return it.id === layerDoorStyle.id && (layerDoorStyle.install ? category.name === layerDoorStyle.install : true);
185
- }).length) {
186
- install = category.name;
187
- }
188
- });
189
- });
190
- layerDoorStyle = _objectSpread(_objectSpread({}, layerDoorStyle), {}, {
191
- install: install
192
- });
193
- state = state.mergeIn(['scene', 'layers', layerID, 'doorStyle'], layerDoorStyle);
194
- }
195
174
  this.updateZoomScale(state, a);
196
175
  viewer2DActions.updateCameraView(_viewer2D);
197
176
  return {
@@ -487,6 +466,10 @@ var Project = exports["default"] = /*#__PURE__*/function () {
487
466
  };
488
467
  }
489
468
  var mode;
469
+ var isLineAction = false;
470
+ if (state.mode.includes('LINE')) {
471
+ isLineAction = true;
472
+ }
490
473
  if (state.mode == _constants.MODE_DRAWING_ITEM_3D) {
491
474
  mode = _constants.MODE_IDLE_3D;
492
475
  if (state.drawingSupport.has('currentID')) state = _export2.Layer.removeElement(state, state.scene.selectedLayer, 'items', state.drawingSupport.get('currentID')).updatedState;
@@ -529,6 +512,9 @@ var Project = exports["default"] = /*#__PURE__*/function () {
529
512
  draggingSupport: new _immutable.Map(),
530
513
  rotatingSupport: new _immutable.Map()
531
514
  });
515
+ if (isLineAction) {
516
+ state = _export2.Line.applyWallChanges(state, _constants.END_DRAWING_LINE).updatedState;
517
+ }
532
518
  return {
533
519
  updatedState: state
534
520
  };
@@ -613,7 +599,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
613
599
  updatedState: state
614
600
  };
615
601
  } catch (error) {
616
- console.log('initCatalogError', error);
602
+ console.log('addElementToCatalogError', error);
617
603
  return {
618
604
  updatedState: state
619
605
  };
@@ -26,7 +26,8 @@ function Content(_ref, _ref2) {
26
26
  setToolbar = _ref.setToolbar,
27
27
  replaceCabinet = _ref.replaceCabinet,
28
28
  keyDownEnable = _ref.keyDownEnable,
29
- catalog = _ref.catalog;
29
+ catalog = _ref.catalog,
30
+ onInternalEvent = _ref.onInternalEvent;
30
31
  var projectActions = _ref2.projectActions;
31
32
  var mode = state.get('mode');
32
33
  switch (mode) {
@@ -50,7 +51,8 @@ function Content(_ref, _ref2) {
50
51
  setToolbar: setToolbar,
51
52
  replaceCabinet: replaceCabinet,
52
53
  keyDownEnable: keyDownEnable,
53
- downloadFlag: false
54
+ downloadFlag: false,
55
+ onInternalEvent: onInternalEvent
54
56
  });
55
57
  case constants.MODE_3D_FIRST_PERSON:
56
58
  return /*#__PURE__*/_react["default"].createElement(_viewer3dFirstPerson["default"], {
@@ -88,7 +90,8 @@ function Content(_ref, _ref2) {
88
90
  width: width,
89
91
  height: height,
90
92
  setToolbar: setToolbar,
91
- replaceCabinet: replaceCabinet
93
+ replaceCabinet: replaceCabinet,
94
+ onInternalEvent: onInternalEvent
92
95
  });
93
96
  case constants.MODE_ROTATING_ITEM_3D:
94
97
  case constants.MODE_DRAGGING_ITEM_3D:
@@ -104,7 +107,8 @@ function Content(_ref, _ref2) {
104
107
  setToolbar: setToolbar,
105
108
  replaceCabinet: replaceCabinet,
106
109
  keyDownEnable: keyDownEnable,
107
- downloadFlag: false
110
+ downloadFlag: false,
111
+ onInternalEvent: onInternalEvent
108
112
  });
109
113
 
110
114
  // case constants.MODE_CONFIGURING_PROJECT:
@@ -129,7 +133,8 @@ Content.propTypes = {
129
133
  state: _propTypes["default"].object.isRequired,
130
134
  width: _propTypes["default"].number.isRequired,
131
135
  height: _propTypes["default"].number.isRequired,
132
- replaceCabinet: _propTypes["default"].func.isRequired
136
+ replaceCabinet: _propTypes["default"].func.isRequired,
137
+ onInternalEvent: _propTypes["default"].func.isRequired
133
138
  };
134
139
  Content.contextTypes = {
135
140
  projectActions: _propTypes["default"].object.isRequired
@@ -29,7 +29,7 @@ function GridStreak(_ref) {
29
29
  key: i,
30
30
  cx: x,
31
31
  cy: y,
32
- r: 1.5,
32
+ r: 2,
33
33
  fill: color
34
34
  }));
35
35
  }