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.
- package/es/LiteKitchenConfigurator.js +17 -175
- package/es/LiteRenderer.js +29 -114
- package/es/actions/items-actions.js +11 -6
- package/es/actions/project-actions.js +2 -3
- package/es/assets/img/svg/logo.svg +11 -0
- package/es/assets/img/svg/logo_with_text.svg +25 -0
- package/es/catalog/areas/area/planner-element.js +10 -5
- package/es/catalog/catalog.js +1 -4
- package/es/catalog/factories/wall-factory.js +8 -8
- package/es/catalog/lines/wall/planner-element.js +18 -9
- package/es/catalog/utils/exporter.js +5 -1
- package/es/catalog/utils/item-loader.js +112 -31
- package/es/catalog/utils/mtl-loader.js +2 -2
- package/es/catalog/utils/obj-loader.js +2 -2
- package/es/class/item.js +111 -145
- package/es/class/line.js +27 -12
- package/es/class/project.js +9 -23
- package/es/components/content.js +10 -5
- package/es/components/viewer2d/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/item.js +20 -81
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +334 -259
- package/es/components/viewer2d/ruler.js +15 -35
- package/es/components/viewer2d/rulerDist.js +18 -32
- package/es/components/viewer2d/viewer2d.js +123 -95
- package/es/components/viewer3d/libs/mtl-loader.js +2 -2
- package/es/components/viewer3d/libs/obj-loader.js +2 -2
- package/es/components/viewer3d/libs/orbit-controls.js +3 -4
- package/es/components/viewer3d/libs/pointer-lock-controls.js +6 -7
- package/es/components/viewer3d/viewer3d.js +91 -70
- package/es/constants.js +38 -3
- package/es/devLiteRenderer.js +165 -10
- package/es/index.js +52 -3
- package/es/models.js +7 -5
- package/es/reducers/items-reducer.js +8 -4
- package/es/reducers/project-reducer.js +1 -1
- package/es/shared-style.js +4 -4
- package/es/utils/get-edges-of-subgraphs.js +1 -1
- package/es/utils/graph-cycles.js +1 -1
- package/es/utils/graph.js +1 -1
- package/es/utils/helper.js +1 -1
- package/es/utils/isolate-event-handler.js +567 -46
- package/lib/LiteKitchenConfigurator.js +18 -176
- package/lib/LiteRenderer.js +29 -114
- package/lib/actions/items-actions.js +11 -5
- package/lib/actions/project-actions.js +2 -3
- package/lib/assets/img/svg/logo.svg +11 -0
- package/lib/assets/img/svg/logo_with_text.svg +25 -0
- package/lib/catalog/areas/area/planner-element.js +11 -5
- package/lib/catalog/catalog.js +1 -4
- package/lib/catalog/factories/wall-factory.js +8 -8
- package/lib/catalog/lines/wall/planner-element.js +19 -9
- package/lib/catalog/utils/exporter.js +5 -1
- package/lib/catalog/utils/item-loader.js +111 -31
- package/lib/catalog/utils/mtl-loader.js +9 -2
- package/lib/catalog/utils/obj-loader.js +10 -2
- package/lib/class/item.js +111 -145
- package/lib/class/line.js +27 -12
- package/lib/class/project.js +9 -23
- package/lib/components/content.js +10 -5
- package/lib/components/viewer2d/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/item.js +20 -81
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +334 -258
- package/lib/components/viewer2d/ruler.js +15 -35
- package/lib/components/viewer2d/rulerDist.js +18 -32
- package/lib/components/viewer2d/viewer2d.js +121 -93
- package/lib/components/viewer3d/libs/mtl-loader.js +9 -2
- package/lib/components/viewer3d/libs/obj-loader.js +9 -2
- package/lib/components/viewer3d/libs/orbit-controls.js +11 -5
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +13 -7
- package/lib/components/viewer3d/viewer3d.js +90 -69
- package/lib/constants.js +42 -7
- package/lib/devLiteRenderer.js +164 -9
- package/lib/index.js +52 -3
- package/lib/models.js +7 -5
- package/lib/reducers/items-reducer.js +7 -3
- package/lib/reducers/project-reducer.js +1 -1
- package/lib/shared-style.js +4 -4
- package/lib/utils/get-edges-of-subgraphs.js +6 -1
- package/lib/utils/graph-cycles.js +7 -8
- package/lib/utils/graph.js +6 -1
- package/lib/utils/helper.js +2 -2
- package/lib/utils/isolate-event-handler.js +567 -45
- package/package.json +3 -3
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var
|
|
63
|
-
|
|
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
|
|
129
|
-
|
|
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)(
|
|
146
|
-
_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)(
|
|
160
|
-
_length:
|
|
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)(
|
|
174
|
-
_length:
|
|
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
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
})
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
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,
|
|
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
|
|
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$
|
|
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
|
|
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 =
|
|
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$
|
|
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 (
|
|
1224
|
-
|
|
1225
|
-
|
|
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),
|
|
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: "
|
|
1342
|
-
value: function
|
|
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
|
|
1389
|
-
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
|
|
1414
|
-
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
|
|
1440
|
-
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
|
|
1467
|
-
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
|
|
1496
|
-
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
|
|
1586
|
-
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
|
|
1708
|
-
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
|
|
1729
|
-
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
|
|
1754
|
-
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
|
|
1865
|
-
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
|
|
1878
|
-
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 =
|
|
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
|
|
534
|
-
} else moveFlag
|
|
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
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
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
|
|
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;
|
package/lib/class/project.js
CHANGED
|
@@ -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
|
|
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('
|
|
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
|