kitchen-simulator 1.0.0-alin.8 → 1.0.0-clark.100

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 +3 -3
package/es/class/item.js CHANGED
@@ -48,65 +48,19 @@ var Item = /*#__PURE__*/function () {
48
48
  isDuplication: isDuplication
49
49
  }, null, state);
50
50
  if (item.category === 'cabinet') {
51
+ var _state$doorStyle;
51
52
  var layer = state.getIn(['scene', 'layers', layerID]);
52
- if (state.doorStyle !== null && state.doorStyle !== undefined) {
53
- var _state$doorStyle, _temp$doorStyles;
54
- var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
55
- 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) {
56
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
53
+ var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
54
+ var cds = state.catalog.getIn(['elements', type, 'cds']);
55
+ if (cds) {
56
+ var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
57
+ cds: [cds]
58
+ });
59
+ item = item.merge({
60
+ doorStyle: fromJS(_objectSpread(_objectSpread({}, temp), {}, {
61
+ doorStyles: updatedDoorStyles
62
+ }))
57
63
  });
58
- if (cds) {
59
- var updatedDoorStyles = _objectSpread(_objectSpread(_objectSpread({}, temp.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
60
- cabinet_door_style_id: cds.cabinet_door_style_id
61
- });
62
- item = item.merge({
63
- doorStyle: fromJS(_objectSpread(_objectSpread({}, temp), {}, {
64
- doorStyles: updatedDoorStyles
65
- }))
66
- });
67
- } else {
68
- var _state$oStyle;
69
- 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;
70
- if (styleObj) {
71
- for (var _x in styleObj) {
72
- cds = styleObj[_x].data.doorStyles.cds.find(function (elem) {
73
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
74
- });
75
- if (cds) {
76
- var tmpDS = styleObj[_x].data;
77
- tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, tmpDS.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
78
- cabinet_door_style_id: cds.cabinet_door_style_id
79
- });
80
- item = item.merge({
81
- doorStyle: fromJS(tmpDS)
82
- });
83
- break;
84
- }
85
- }
86
- }
87
- }
88
- } else {
89
- var _state$oStyle2;
90
- 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;
91
- if (_styleObj) {
92
- for (var _x2 in _styleObj) {
93
- var _styleObj$_x;
94
- 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) {
95
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
96
- });
97
- if (_cds) {
98
- var _styleObj$_x2;
99
- var _tmpDS = (_styleObj$_x2 = _styleObj[_x2]) === null || _styleObj$_x2 === void 0 ? void 0 : _styleObj$_x2.data;
100
- _tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, _tmpDS.doorStyles), _cds.data && _cds.data[0] ? _cds.data[0] : {}), {}, {
101
- cabinet_door_style_id: _cds.cabinet_door_style_id
102
- });
103
- item = item.merge({
104
- doorStyle: fromJS(_tmpDS)
105
- });
106
- break;
107
- }
108
- }
109
- }
110
64
  }
111
65
  }
112
66
  if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {
@@ -116,15 +70,9 @@ var Item = /*#__PURE__*/function () {
116
70
  };
117
71
  }
118
72
  var setSizeOfItemByDoorStyle = function setSizeOfItemByDoorStyle() {
119
- var _doorStyle$doorStyles, _cds$data;
120
73
  var doorStyle = item.get('doorStyle').toJS();
121
- 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) {
122
- return elem.itemID === item.itemID;
123
- });
124
- var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
125
- return element && element.is_euro_cds;
126
- })) || [];
127
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
74
+ var euroCDS = state.catalog.getIn(['elements', type, 'customer_property']).is_euro_cds;
75
+ if (doorStyle.door_style_name === 'Euro & Frameless' && euroCDS.length > 0) {
128
76
  var newProperties = item.get('properties').toJS();
129
77
  if (newProperties.hasOwnProperty('depth')) {
130
78
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -135,8 +83,8 @@ var Item = /*#__PURE__*/function () {
135
83
  });
136
84
  }
137
85
  newProperties['depth'] = new Map({
138
- length: convert(euro_cds[0].euro_length).from('in').to('cm'),
139
- _length: euro_cds[0].euro_length,
86
+ length: convert(euroCDS[0].euro_length).from('in').to('cm'),
87
+ _length: euroCDS[0].euro_length,
140
88
  _unit: 'in'
141
89
  });
142
90
  }
@@ -149,8 +97,8 @@ var Item = /*#__PURE__*/function () {
149
97
  });
150
98
  }
151
99
  newProperties['height'] = new Map({
152
- length: convert(euro_cds[0].euro_height).from('in').to('cm'),
153
- _length: euro_cds[0].euro_height,
100
+ length: convert(euroCDS[0].euro_height).from('in').to('cm'),
101
+ _length: euroCDS[0].euro_height,
154
102
  _unit: 'in'
155
103
  });
156
104
  }
@@ -163,8 +111,8 @@ var Item = /*#__PURE__*/function () {
163
111
  });
164
112
  }
165
113
  newProperties['width'] = new Map({
166
- length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
167
- _length: euro_cds[0].euro_width,
114
+ length: convert(euroCDS[0].euro_width).from('in').to('cm') - 10,
115
+ _length: euroCDS[0].euro_width,
168
116
  _unit: 'in'
169
117
  });
170
118
  }
@@ -1123,48 +1071,37 @@ var Item = /*#__PURE__*/function () {
1123
1071
  }
1124
1072
  }, {
1125
1073
  key: "setInitialDoorStyle",
1126
- value: function setInitialDoorStyle(state, doorStyle, oStyle) {
1127
- if (doorStyle === undefined) {
1128
- state = state.merge({
1129
- oStyle: new Map({
1130
- oStyle: oStyle
1131
- })
1132
- });
1133
- } else {
1134
- state = state.merge({
1135
- doorStyle: doorStyle,
1136
- oStyle: new Map({
1137
- oStyle: oStyle
1138
- })
1139
- });
1140
- var _state8 = state,
1141
- scene = _state8.scene;
1142
- var layerID = scene.get('selectedLayer');
1143
- var layers = scene.layers.get(layerID);
1144
- var items = layers.items;
1145
- items.forEach(function (data) {
1146
- {
1147
- var itemID = data.id;
1148
- var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1149
- doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1150
- counttop: doorStyle.doorStyles.counttop
1151
- })
1152
- });
1153
- data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1154
- layers = layers.mergeIn(['items', itemID], data);
1155
- state = state.merge({
1156
- scene: scene.mergeIn(['layers', layerID], layers)
1157
- });
1158
- }
1159
- });
1160
- }
1074
+ value: function setInitialDoorStyle(state, doorStyle) {
1075
+ state = state.merge({
1076
+ doorStyle: doorStyle
1077
+ });
1078
+ var _state8 = state,
1079
+ scene = _state8.scene;
1080
+ var layerID = scene.get('selectedLayer');
1081
+ var layers = scene.layers.get(layerID);
1082
+ var items = layers.items;
1083
+ items.forEach(function (data) {
1084
+ {
1085
+ var itemID = data.id;
1086
+ var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1087
+ doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1088
+ counttop: doorStyle.doorStyles.counttop
1089
+ })
1090
+ });
1091
+ data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1092
+ layers = layers.mergeIn(['items', itemID], data);
1093
+ state = state.merge({
1094
+ scene: scene.mergeIn(['layers', layerID], layers)
1095
+ });
1096
+ }
1097
+ });
1161
1098
  return {
1162
1099
  updatedState: state
1163
1100
  };
1164
1101
  }
1165
1102
  }, {
1166
1103
  key: "setDoorStyle",
1167
- value: function setDoorStyle(state, doorStyle, pathes, isAll) {
1104
+ value: function setDoorStyle(state, doorStyle, itemCDS, isAll) {
1168
1105
  var _this2 = this;
1169
1106
  var keys = Object.keys(doorStyle.doorStyles);
1170
1107
  keys = keys.filter(function (elem) {
@@ -1181,14 +1118,14 @@ var Item = /*#__PURE__*/function () {
1181
1118
  var layerID = state.scene.get('selectedLayer');
1182
1119
  var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1183
1120
  temp_layer_molding = temp_layer_molding.filter(function (md) {
1184
- return doorStyle.doorStyles.cds.some(function (ds) {
1121
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1185
1122
  return md.itemID === ds.itemID;
1186
1123
  });
1187
1124
  });
1188
1125
  state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
1189
1126
  var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
1190
1127
  var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
1191
- var _cds$data2;
1128
+ var _cds$data;
1192
1129
  if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1193
1130
  var itemID = data.id;
1194
1131
  var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1196,7 +1133,7 @@ var Item = /*#__PURE__*/function () {
1196
1133
  var tmpMolding = _toConsumableArray(curItem.molding);
1197
1134
  var temp_item_molding = _toConsumableArray(curItem.molding);
1198
1135
  temp_item_molding = temp_item_molding.filter(function (md) {
1199
- return doorStyle.doorStyles.cds.some(function (ds) {
1136
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1200
1137
  return ds.itemID === md.itemID;
1201
1138
  });
1202
1139
  });
@@ -1206,17 +1143,16 @@ var Item = /*#__PURE__*/function () {
1206
1143
  state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
1207
1144
  });
1208
1145
  });
1209
- var cds = doorStyle.doorStyles.cds.find(function (elem) {
1146
+ var cds = itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.find(function (elem) {
1210
1147
  return elem.itemID === data.itemID;
1211
1148
  });
1212
- var euro_cds = (cds === null || cds === void 0 || (_cds$data2 = cds.data) === null || _cds$data2 === void 0 ? void 0 : _cds$data2.filter(function (element) {
1149
+ var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
1213
1150
  return element && element.is_euro_cds;
1214
1151
  })) || [];
1215
- var cds_data;
1216
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
1217
- cds_data = cds ? _objectSpread(_objectSpread({}, euro_cds[0]), {}, {
1218
- cabinet_door_style_id: cds.cabinet_door_style_id
1219
- }) : {};
1152
+ var cds_data = cds ? [cds] : [];
1153
+ if (
1154
+ // doorStyle.door_style_name === 'Euro & Frameless' &&
1155
+ euro_cds.length > 0) {
1220
1156
  var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1221
1157
  if (newProperties.hasOwnProperty('depth')) {
1222
1158
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -1262,9 +1198,6 @@ var Item = /*#__PURE__*/function () {
1262
1198
  }
1263
1199
  state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
1264
1200
  } else {
1265
- cds_data = cds ? _objectSpread(_objectSpread({}, cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
1266
- cabinet_door_style_id: cds.cabinet_door_style_id
1267
- }) : {};
1268
1201
  var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1269
1202
  if (properties.hasOwnProperty('oldDepth')) {
1270
1203
  properties['depth'] = new Map({
@@ -1303,7 +1236,9 @@ var Item = /*#__PURE__*/function () {
1303
1236
  color_sku_alias: doorStyle.color_sku_alias,
1304
1237
  // alias name of color_sku for the current dealer
1305
1238
  install: getInstallationSuffix(INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
1306
- doorStyles: _objectSpread(_objectSpread({}, tmp), cds_data)
1239
+ doorStyles: _objectSpread(_objectSpread({}, tmp), {}, {
1240
+ cds: cds_data
1241
+ })
1307
1242
  };
1308
1243
  state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], fromJS(tmpDS));
1309
1244
  };
@@ -1331,10 +1266,41 @@ var Item = /*#__PURE__*/function () {
1331
1266
  };
1332
1267
  }
1333
1268
  }, {
1334
- key: "setCounterTop",
1335
- value: function setCounterTop(state, counterTop) {
1269
+ key: "changeDistance",
1270
+ value: function changeDistance(state, distancePayload) {
1336
1271
  var _state9 = state,
1337
1272
  scene = _state9.scene;
1273
+ var Left = distancePayload.distanceLeft;
1274
+ var Right = distancePayload.distanceRight;
1275
+ var Back = distancePayload.distanceBack;
1276
+ var Front = distancePayload.distanceFront;
1277
+ var LeftRotRad = Left ? 180 : null;
1278
+ var RightRotRad = Right ? 0 : null;
1279
+ var BackRotRad = Back ? -90 : null;
1280
+ var FrontRotRad = Front ? 90 : null;
1281
+ var directR = LeftRotRad || RightRotRad || BackRotRad || FrontRotRad;
1282
+ var dist = Left || Right || Back || Front;
1283
+ var layerID = scene.get('selectedLayer');
1284
+ var layer = scene.layers.get(layerID).toJS();
1285
+ var selectedItemId = layer.selected.items[0];
1286
+ var selectedItem = layer.items[selectedItemId];
1287
+ if (selectedItem) {
1288
+ var renderedR = selectedItem.rotation || 0;
1289
+ var rotRad = (directR + renderedR) / 180 * Math.PI;
1290
+ var newX = selectedItem.x + convert(dist * Math.cos(rotRad)).from('in').to('cm');
1291
+ var newY = selectedItem.y + convert(dist * Math.sin(rotRad)).from('in').to('cm');
1292
+ state = state.setIn(['scene', 'layers', layerID, 'items', layer.selected.items[0], 'x'], newX);
1293
+ state = state.setIn(['scene', 'layers', layerID, 'items', layer.selected.items[0], 'y'], newY);
1294
+ }
1295
+ return {
1296
+ updatedState: state
1297
+ };
1298
+ }
1299
+ }, {
1300
+ key: "setCounterTop",
1301
+ value: function setCounterTop(state, counterTop) {
1302
+ var _state0 = state,
1303
+ scene = _state0.scene;
1338
1304
  var layerID = scene.get('selectedLayer');
1339
1305
  var layers = scene.layers.get(layerID);
1340
1306
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1378,8 +1344,8 @@ var Item = /*#__PURE__*/function () {
1378
1344
  }, {
1379
1345
  key: "setDoorHandle",
1380
1346
  value: function setDoorHandle(state, doorHandle) {
1381
- var _state0 = state,
1382
- scene = _state0.scene;
1347
+ var _state1 = state,
1348
+ scene = _state1.scene;
1383
1349
  var layerID = scene.get('selectedLayer');
1384
1350
  var layer = scene.layers.get(layerID);
1385
1351
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1403,8 +1369,8 @@ var Item = /*#__PURE__*/function () {
1403
1369
  }, {
1404
1370
  key: "setHandleMaterial",
1405
1371
  value: function setHandleMaterial(state, material) {
1406
- var _state1 = state,
1407
- scene = _state1.scene;
1372
+ var _state10 = state,
1373
+ scene = _state10.scene;
1408
1374
  var layerID = scene.get('selectedLayer');
1409
1375
  var layers = scene.layers.get(layerID);
1410
1376
  var items = layers.items;
@@ -1429,8 +1395,8 @@ var Item = /*#__PURE__*/function () {
1429
1395
  }, {
1430
1396
  key: "setWallColor",
1431
1397
  value: function setWallColor(state, wallColor) {
1432
- var _state10 = state,
1433
- scene = _state10.scene;
1398
+ var _state11 = state,
1399
+ scene = _state11.scene;
1434
1400
  var layerID = scene.get('selectedLayer');
1435
1401
  var layer = scene.layers.get(layerID);
1436
1402
  layer = layer.merge({
@@ -1456,8 +1422,8 @@ var Item = /*#__PURE__*/function () {
1456
1422
  }, {
1457
1423
  key: "setBacksplash",
1458
1424
  value: function setBacksplash(state, backsplash) {
1459
- var _state11 = state,
1460
- scene = _state11.scene;
1425
+ var _state12 = state,
1426
+ scene = _state12.scene;
1461
1427
  var layerID = scene.get('selectedLayer');
1462
1428
  var layer = scene.layers.get(layerID);
1463
1429
  var dataJSON = layer.toJS();
@@ -1485,8 +1451,8 @@ var Item = /*#__PURE__*/function () {
1485
1451
  }, {
1486
1452
  key: "setMolding",
1487
1453
  value: function setMolding(state, molding, isAll) {
1488
- var _state12 = state,
1489
- scene = _state12.scene;
1454
+ var _state13 = state,
1455
+ scene = _state13.scene;
1490
1456
  var layerID = scene.get('selectedLayer');
1491
1457
  var layer = scene.layers.get(layerID);
1492
1458
  if (isAll) {
@@ -1575,8 +1541,8 @@ var Item = /*#__PURE__*/function () {
1575
1541
  }, {
1576
1542
  key: "updateMolding",
1577
1543
  value: function updateMolding(state) {
1578
- var _state13 = state,
1579
- scene = _state13.scene;
1544
+ var _state14 = state,
1545
+ scene = _state14.scene;
1580
1546
  var layerID = scene.get('selectedLayer');
1581
1547
  var layer = scene.layers.get(layerID);
1582
1548
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1697,8 +1663,8 @@ var Item = /*#__PURE__*/function () {
1697
1663
  }, {
1698
1664
  key: "setBacksplashVisible",
1699
1665
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1700
- var _state14 = state,
1701
- scene = _state14.scene;
1666
+ var _state15 = state,
1667
+ scene = _state15.scene;
1702
1668
  var layerID = scene.get('selectedLayer');
1703
1669
  var layer = scene.layers.get(layerID);
1704
1670
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1718,8 +1684,8 @@ var Item = /*#__PURE__*/function () {
1718
1684
  }, {
1719
1685
  key: "setApplianceMaterial",
1720
1686
  value: function setApplianceMaterial(state, material) {
1721
- var _state15 = state,
1722
- scene = _state15.scene;
1687
+ var _state16 = state,
1688
+ scene = _state16.scene;
1723
1689
  var layerID = scene.get('selectedLayer');
1724
1690
  var layers = scene.layers.get(layerID);
1725
1691
  var items = layers.items;
@@ -1743,8 +1709,8 @@ var Item = /*#__PURE__*/function () {
1743
1709
  }, {
1744
1710
  key: "setModelling",
1745
1711
  value: function setModelling(state, molding) {
1746
- var _state16 = state,
1747
- scene = _state16.scene;
1712
+ var _state17 = state,
1713
+ scene = _state17.scene;
1748
1714
  var layerID = scene.get('selectedLayer');
1749
1715
  var layers = scene.layers.get(layerID);
1750
1716
  var items = layers.items;
@@ -1854,8 +1820,8 @@ var Item = /*#__PURE__*/function () {
1854
1820
  }, {
1855
1821
  key: "toggleLoadingCabinet",
1856
1822
  value: function toggleLoadingCabinet(state) {
1857
- var _state17 = state,
1858
- scene = _state17.scene;
1823
+ var _state18 = state,
1824
+ scene = _state18.scene;
1859
1825
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1860
1826
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1861
1827
  // state = state.set('scene', scene);
@@ -1867,8 +1833,8 @@ var Item = /*#__PURE__*/function () {
1867
1833
  }, {
1868
1834
  key: "endLoading",
1869
1835
  value: function endLoading(state) {
1870
- var _state18 = state,
1871
- scene = _state18.scene;
1836
+ var _state19 = state,
1837
+ scene = _state19.scene;
1872
1838
  state = state.setIn(['scene', 'loadFlag'], true);
1873
1839
  return {
1874
1840
  updatedState: state
package/es/class/line.js CHANGED
@@ -501,7 +501,7 @@ var Line = /*#__PURE__*/function () {
501
501
  // let relatedLines = [];
502
502
  var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
503
503
  var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
504
- var moveFlag = true;
504
+ var moveFlag = [];
505
505
  var tx = vertices[drawingLine.vertices[1]].x;
506
506
  var ty = vertices[drawingLine.vertices[1]].y;
507
507
  if (!isEmpty(relatedLines)) {
@@ -509,6 +509,7 @@ var Line = /*#__PURE__*/function () {
509
509
  vertices[drawingLine.vertices[1]].y = y;
510
510
  }
511
511
  var absAngle, lineAngle;
512
+ var angles = [];
512
513
 
513
514
  // get the angle of two lines and check the angle
514
515
  if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {
@@ -520,9 +521,10 @@ var Line = /*#__PURE__*/function () {
520
521
  lineAngle = GeometryUtils.angleBetweenTwoLines(line, drawingLine, vertices);
521
522
  // check whether the angle is less than or bigger than specific value.
522
523
  absAngle = Math.abs(lineAngle);
524
+ angles.push(lineAngle);
523
525
  if (absAngle < MIN_ANGLE_DISALLOW_DRAW_WALL || absAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
524
- moveFlag = false;
525
- } else moveFlag = true;
526
+ moveFlag.push(false);
527
+ } else moveFlag.push(true);
526
528
  }
527
529
  });
528
530
  } else {
@@ -534,23 +536,36 @@ var Line = /*#__PURE__*/function () {
534
536
  }
535
537
 
536
538
  // if the angle is bigger or less than specific value, the wall mustn't be drawn at new position
537
- if (moveFlag) {
539
+ if (!moveFlag.some(function (flag) {
540
+ return flag === false;
541
+ })) {
538
542
  tx = x;
539
543
  ty = y;
540
544
  } else {
541
- var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;
542
545
  // the origin point of rotation(snapping)
543
546
  var ox = vertices[drawingLine.vertices[0]].x;
544
547
  var oy = vertices[drawingLine.vertices[0]].y;
545
- // determine the direction of rotation.
546
- rest = lineAngle > 0 ? -rest : rest;
547
- // rotate the current point to last point around the first point of drawing line.
548
- var res = GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);
549
- tx = res.x;
550
- ty = res.y;
548
+ angles.forEach(function (angle, index) {
549
+ if (!moveFlag[index]) {
550
+ var absVal = Math.abs(angle);
551
+ var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
552
+ if (absVal > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
553
+ absVal = 360 - absVal;
554
+ rest = -(MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
555
+ }
556
+ // determine the direction of rotation.
557
+ rest = angle > 0 ? -rest : rest;
558
+ // rotate the current point to last point around the first point of drawing line.
559
+ var res = GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);
560
+ tx = res.x;
561
+ ty = res.y;
562
+ }
563
+ });
551
564
  }
552
565
  // angle snapping as a value of UNIT_ANGLE
553
- if (moveFlag && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0) {
566
+ if (!moveFlag.some(function (flag) {
567
+ return flag === false;
568
+ }) && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0) {
554
569
  var result = GeometryUtils.snapAngleByUnit(lineAngle, vertices, drawingLine, tx, ty, drawingLine.vertices[1]);
555
570
  tx = result.x;
556
571
  ty = result.y;
@@ -34,7 +34,6 @@ var Project = /*#__PURE__*/function () {
34
34
  key: "newProject",
35
35
  value: function newProject(state) {
36
36
  var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
37
- var oStyle = state.oStyle;
38
37
  // let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
39
38
  // let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
40
39
  var _viewer2D = state.viewer2D;
@@ -48,7 +47,6 @@ var Project = /*#__PURE__*/function () {
48
47
  state = new State({});
49
48
  state = state.merge({
50
49
  doorStyle: doorStyle,
51
- oStyle: oStyle,
52
50
  viewer2D: _viewer2D
53
51
  });
54
52
  // state = Item.setCounterTop(state, counterTop).updatedState;
@@ -59,9 +57,8 @@ var Project = /*#__PURE__*/function () {
59
57
  }
60
58
  }, {
61
59
  key: "loadProject",
62
- value: function loadProject(state, sceneJSON, categoryData) {
60
+ value: function loadProject(state, sceneJSON) {
63
61
  var doorStyle = state.doorStyle;
64
- var oStyle = state.oStyle;
65
62
  var layerID = state.scene.selectedLayer;
66
63
  var _viewer2D = state.viewer2D;
67
64
  var viewer = state.viewer2D.toJS();
@@ -161,28 +158,10 @@ var Project = /*#__PURE__*/function () {
161
158
  }
162
159
  state = state.merge({
163
160
  doorStyle: doorStyle,
164
- oStyle: oStyle,
165
161
  viewer2D: _viewer2D
166
162
  });
167
163
  state = Item.setCounterTop(state, counterTop).updatedState;
168
164
  state = Area.setFloorStyles(state, floorStyle).updatedState;
169
- if (state.getIn(['scene', 'layers', layerID, 'doorStyle']) && !state.getIn(['scene', 'layers', layerID, 'doorStyle', 'install'])) {
170
- var layerDoorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
171
- var install = '';
172
- categoryData.data.doorStyles.items.forEach(function (category) {
173
- category.items.forEach(function (element) {
174
- if (element.items.filter(function (it) {
175
- return it.id === layerDoorStyle.id && (layerDoorStyle.install ? category.name === layerDoorStyle.install : true);
176
- }).length) {
177
- install = category.name;
178
- }
179
- });
180
- });
181
- layerDoorStyle = _objectSpread(_objectSpread({}, layerDoorStyle), {}, {
182
- install: install
183
- });
184
- state = state.mergeIn(['scene', 'layers', layerID, 'doorStyle'], layerDoorStyle);
185
- }
186
165
  this.updateZoomScale(state, a);
187
166
  viewer2DActions.updateCameraView(_viewer2D);
188
167
  return {
@@ -478,6 +457,10 @@ var Project = /*#__PURE__*/function () {
478
457
  };
479
458
  }
480
459
  var mode;
460
+ var isLineAction = false;
461
+ if (state.mode.includes('LINE')) {
462
+ isLineAction = true;
463
+ }
481
464
  if (state.mode == MODE_DRAWING_ITEM_3D) {
482
465
  mode = MODE_IDLE_3D;
483
466
  if (state.drawingSupport.has('currentID')) state = Layer.removeElement(state, state.scene.selectedLayer, 'items', state.drawingSupport.get('currentID')).updatedState;
@@ -520,6 +503,9 @@ var Project = /*#__PURE__*/function () {
520
503
  draggingSupport: new Map(),
521
504
  rotatingSupport: new Map()
522
505
  });
506
+ if (isLineAction) {
507
+ state = Line.applyWallChanges(state, END_DRAWING_LINE).updatedState;
508
+ }
523
509
  return {
524
510
  updatedState: state
525
511
  };
@@ -604,7 +590,7 @@ var Project = /*#__PURE__*/function () {
604
590
  updatedState: state
605
591
  };
606
592
  } catch (error) {
607
- console.log('initCatalogError', error);
593
+ console.log('addElementToCatalogError', error);
608
594
  return {
609
595
  updatedState: state
610
596
  };
@@ -16,7 +16,8 @@ export default function Content(_ref, _ref2) {
16
16
  setToolbar = _ref.setToolbar,
17
17
  replaceCabinet = _ref.replaceCabinet,
18
18
  keyDownEnable = _ref.keyDownEnable,
19
- catalog = _ref.catalog;
19
+ catalog = _ref.catalog,
20
+ onInternalEvent = _ref.onInternalEvent;
20
21
  var projectActions = _ref2.projectActions;
21
22
  var mode = state.get('mode');
22
23
  switch (mode) {
@@ -40,7 +41,8 @@ export default function Content(_ref, _ref2) {
40
41
  setToolbar: setToolbar,
41
42
  replaceCabinet: replaceCabinet,
42
43
  keyDownEnable: keyDownEnable,
43
- downloadFlag: false
44
+ downloadFlag: false,
45
+ onInternalEvent: onInternalEvent
44
46
  });
45
47
  case constants.MODE_3D_FIRST_PERSON:
46
48
  return /*#__PURE__*/React.createElement(Viewer3DFirstPerson, {
@@ -78,7 +80,8 @@ export default function Content(_ref, _ref2) {
78
80
  width: width,
79
81
  height: height,
80
82
  setToolbar: setToolbar,
81
- replaceCabinet: replaceCabinet
83
+ replaceCabinet: replaceCabinet,
84
+ onInternalEvent: onInternalEvent
82
85
  });
83
86
  case constants.MODE_ROTATING_ITEM_3D:
84
87
  case constants.MODE_DRAGGING_ITEM_3D:
@@ -94,7 +97,8 @@ export default function Content(_ref, _ref2) {
94
97
  setToolbar: setToolbar,
95
98
  replaceCabinet: replaceCabinet,
96
99
  keyDownEnable: keyDownEnable,
97
- downloadFlag: false
100
+ downloadFlag: false,
101
+ onInternalEvent: onInternalEvent
98
102
  });
99
103
 
100
104
  // case constants.MODE_CONFIGURING_PROJECT:
@@ -119,7 +123,8 @@ Content.propTypes = {
119
123
  state: PropTypes.object.isRequired,
120
124
  width: PropTypes.number.isRequired,
121
125
  height: PropTypes.number.isRequired,
122
- replaceCabinet: PropTypes.func.isRequired
126
+ replaceCabinet: PropTypes.func.isRequired,
127
+ onInternalEvent: PropTypes.func.isRequired
123
128
  };
124
129
  Content.contextTypes = {
125
130
  projectActions: PropTypes.object.isRequired
@@ -22,7 +22,7 @@ export default function GridStreak(_ref) {
22
22
  key: i,
23
23
  cx: x,
24
24
  cy: y,
25
- r: 1.5,
25
+ r: 2,
26
26
  fill: color
27
27
  }));
28
28
  }