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/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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var
|
|
56
|
-
|
|
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
|
|
122
|
-
|
|
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(
|
|
139
|
-
_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(
|
|
153
|
-
_length:
|
|
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(
|
|
167
|
-
_length:
|
|
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
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
})
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
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,
|
|
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
|
|
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$
|
|
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
|
|
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 =
|
|
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$
|
|
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 (
|
|
1217
|
-
|
|
1218
|
-
|
|
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),
|
|
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: "
|
|
1335
|
-
value: function
|
|
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
|
|
1382
|
-
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
|
|
1407
|
-
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
|
|
1433
|
-
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
|
|
1460
|
-
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
|
|
1489
|
-
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
|
|
1579
|
-
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
|
|
1701
|
-
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
|
|
1722
|
-
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
|
|
1747
|
-
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
|
|
1858
|
-
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
|
|
1871
|
-
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 =
|
|
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
|
|
525
|
-
} else moveFlag
|
|
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
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
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
|
|
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;
|
package/es/class/project.js
CHANGED
|
@@ -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
|
|
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('
|
|
593
|
+
console.log('addElementToCatalogError', error);
|
|
608
594
|
return {
|
|
609
595
|
updatedState: state
|
|
610
596
|
};
|
package/es/components/content.js
CHANGED
|
@@ -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
|