kitchen-simulator 1.0.0-alin.8 → 1.0.0-clark.54
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 +15 -156
- package/es/LiteRenderer.js +25 -113
- package/es/actions/items-actions.js +4 -5
- package/es/actions/project-actions.js +2 -3
- package/es/catalog/catalog.js +1 -4
- package/es/catalog/utils/exporter.js +3 -1
- package/es/class/item.js +57 -120
- package/es/class/project.js +9 -23
- package/es/components/viewer2d/item.js +10 -10
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +20 -17
- package/es/components/viewer2d/viewer2d.js +20 -56
- package/es/components/viewer3d/viewer3d.js +5 -17
- package/es/constants.js +10 -1
- package/es/devLiteRenderer.js +116 -9
- package/es/index.js +23 -3
- package/es/models.js +2 -1
- package/es/reducers/items-reducer.js +3 -3
- package/es/reducers/project-reducer.js +1 -1
- package/es/utils/geometry.js +6 -6
- package/es/utils/isolate-event-handler.js +97 -17
- package/lib/LiteKitchenConfigurator.js +16 -157
- package/lib/LiteRenderer.js +25 -113
- package/lib/actions/items-actions.js +4 -5
- package/lib/actions/project-actions.js +2 -3
- package/lib/catalog/catalog.js +1 -4
- package/lib/catalog/utils/exporter.js +3 -1
- package/lib/class/item.js +57 -120
- package/lib/class/project.js +9 -23
- package/lib/components/viewer2d/item.js +10 -10
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +19 -16
- package/lib/components/viewer2d/viewer2d.js +19 -55
- package/lib/components/viewer3d/viewer3d.js +5 -17
- package/lib/constants.js +14 -5
- package/lib/devLiteRenderer.js +115 -8
- package/lib/index.js +23 -3
- package/lib/models.js +2 -1
- package/lib/reducers/items-reducer.js +3 -3
- package/lib/reducers/project-reducer.js +1 -1
- package/lib/utils/geometry.js +6 -6
- package/lib/utils/isolate-event-handler.js +96 -16
- 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,11 @@ 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
|
-
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) {
|
|
74
|
+
var euroCDS = state.catalog.getIn(['elements', type, 'cds']).data.filter(function (element) {
|
|
125
75
|
return element && element.is_euro_cds;
|
|
126
|
-
})
|
|
127
|
-
if (doorStyle.door_style_name === 'Euro & Frameless' &&
|
|
76
|
+
});
|
|
77
|
+
if (doorStyle.door_style_name === 'Euro & Frameless' && euroCDS.length > 0) {
|
|
128
78
|
var newProperties = item.get('properties').toJS();
|
|
129
79
|
if (newProperties.hasOwnProperty('depth')) {
|
|
130
80
|
if (!newProperties.hasOwnProperty('oldDepth')) {
|
|
@@ -135,8 +85,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
135
85
|
});
|
|
136
86
|
}
|
|
137
87
|
newProperties['depth'] = new Map({
|
|
138
|
-
length: convert(
|
|
139
|
-
_length:
|
|
88
|
+
length: convert(euroCDS[0].euro_length).from('in').to('cm'),
|
|
89
|
+
_length: euroCDS[0].euro_length,
|
|
140
90
|
_unit: 'in'
|
|
141
91
|
});
|
|
142
92
|
}
|
|
@@ -149,8 +99,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
149
99
|
});
|
|
150
100
|
}
|
|
151
101
|
newProperties['height'] = new Map({
|
|
152
|
-
length: convert(
|
|
153
|
-
_length:
|
|
102
|
+
length: convert(euroCDS[0].euro_height).from('in').to('cm'),
|
|
103
|
+
_length: euroCDS[0].euro_height,
|
|
154
104
|
_unit: 'in'
|
|
155
105
|
});
|
|
156
106
|
}
|
|
@@ -163,8 +113,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
163
113
|
});
|
|
164
114
|
}
|
|
165
115
|
newProperties['width'] = new Map({
|
|
166
|
-
length: convert(
|
|
167
|
-
_length:
|
|
116
|
+
length: convert(euroCDS[0].euro_width).from('in').to('cm') - 10,
|
|
117
|
+
_length: euroCDS[0].euro_width,
|
|
168
118
|
_unit: 'in'
|
|
169
119
|
});
|
|
170
120
|
}
|
|
@@ -1123,48 +1073,37 @@ var Item = /*#__PURE__*/function () {
|
|
|
1123
1073
|
}
|
|
1124
1074
|
}, {
|
|
1125
1075
|
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
|
-
}
|
|
1076
|
+
value: function setInitialDoorStyle(state, doorStyle) {
|
|
1077
|
+
state = state.merge({
|
|
1078
|
+
doorStyle: doorStyle
|
|
1079
|
+
});
|
|
1080
|
+
var _state8 = state,
|
|
1081
|
+
scene = _state8.scene;
|
|
1082
|
+
var layerID = scene.get('selectedLayer');
|
|
1083
|
+
var layers = scene.layers.get(layerID);
|
|
1084
|
+
var items = layers.items;
|
|
1085
|
+
items.forEach(function (data) {
|
|
1086
|
+
{
|
|
1087
|
+
var itemID = data.id;
|
|
1088
|
+
var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
|
|
1089
|
+
doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
|
|
1090
|
+
counttop: doorStyle.doorStyles.counttop
|
|
1091
|
+
})
|
|
1092
|
+
});
|
|
1093
|
+
data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
|
|
1094
|
+
layers = layers.mergeIn(['items', itemID], data);
|
|
1095
|
+
state = state.merge({
|
|
1096
|
+
scene: scene.mergeIn(['layers', layerID], layers)
|
|
1097
|
+
});
|
|
1098
|
+
}
|
|
1099
|
+
});
|
|
1161
1100
|
return {
|
|
1162
1101
|
updatedState: state
|
|
1163
1102
|
};
|
|
1164
1103
|
}
|
|
1165
1104
|
}, {
|
|
1166
1105
|
key: "setDoorStyle",
|
|
1167
|
-
value: function setDoorStyle(state, doorStyle,
|
|
1106
|
+
value: function setDoorStyle(state, doorStyle, itemCDS, isAll) {
|
|
1168
1107
|
var _this2 = this;
|
|
1169
1108
|
var keys = Object.keys(doorStyle.doorStyles);
|
|
1170
1109
|
keys = keys.filter(function (elem) {
|
|
@@ -1181,14 +1120,14 @@ var Item = /*#__PURE__*/function () {
|
|
|
1181
1120
|
var layerID = state.scene.get('selectedLayer');
|
|
1182
1121
|
var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
|
|
1183
1122
|
temp_layer_molding = temp_layer_molding.filter(function (md) {
|
|
1184
|
-
return
|
|
1123
|
+
return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
|
|
1185
1124
|
return md.itemID === ds.itemID;
|
|
1186
1125
|
});
|
|
1187
1126
|
});
|
|
1188
1127
|
state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
|
|
1189
1128
|
var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
|
|
1190
1129
|
var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
|
|
1191
|
-
var _cds$
|
|
1130
|
+
var _cds$data;
|
|
1192
1131
|
if (data.category !== 'cabinet') return; //CDS should effect to cabinets
|
|
1193
1132
|
var itemID = data.id;
|
|
1194
1133
|
var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
|
|
@@ -1196,7 +1135,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
1196
1135
|
var tmpMolding = _toConsumableArray(curItem.molding);
|
|
1197
1136
|
var temp_item_molding = _toConsumableArray(curItem.molding);
|
|
1198
1137
|
temp_item_molding = temp_item_molding.filter(function (md) {
|
|
1199
|
-
return
|
|
1138
|
+
return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
|
|
1200
1139
|
return ds.itemID === md.itemID;
|
|
1201
1140
|
});
|
|
1202
1141
|
});
|
|
@@ -1206,17 +1145,16 @@ var Item = /*#__PURE__*/function () {
|
|
|
1206
1145
|
state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
|
|
1207
1146
|
});
|
|
1208
1147
|
});
|
|
1209
|
-
var cds =
|
|
1148
|
+
var cds = itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.find(function (elem) {
|
|
1210
1149
|
return elem.itemID === data.itemID;
|
|
1211
1150
|
});
|
|
1212
|
-
var euro_cds = (cds === null || cds === void 0 || (_cds$
|
|
1151
|
+
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
1152
|
return element && element.is_euro_cds;
|
|
1214
1153
|
})) || [];
|
|
1215
|
-
var cds_data;
|
|
1216
|
-
if (
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
}) : {};
|
|
1154
|
+
var cds_data = cds ? [cds] : [];
|
|
1155
|
+
if (
|
|
1156
|
+
// doorStyle.door_style_name === 'Euro & Frameless' &&
|
|
1157
|
+
euro_cds.length > 0) {
|
|
1220
1158
|
var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
|
|
1221
1159
|
if (newProperties.hasOwnProperty('depth')) {
|
|
1222
1160
|
if (!newProperties.hasOwnProperty('oldDepth')) {
|
|
@@ -1262,9 +1200,6 @@ var Item = /*#__PURE__*/function () {
|
|
|
1262
1200
|
}
|
|
1263
1201
|
state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
|
|
1264
1202
|
} 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
1203
|
var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
|
|
1269
1204
|
if (properties.hasOwnProperty('oldDepth')) {
|
|
1270
1205
|
properties['depth'] = new Map({
|
|
@@ -1303,7 +1238,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
1303
1238
|
color_sku_alias: doorStyle.color_sku_alias,
|
|
1304
1239
|
// alias name of color_sku for the current dealer
|
|
1305
1240
|
install: getInstallationSuffix(INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
|
|
1306
|
-
doorStyles: _objectSpread(_objectSpread({}, tmp),
|
|
1241
|
+
doorStyles: _objectSpread(_objectSpread({}, tmp), {}, {
|
|
1242
|
+
cds: cds_data
|
|
1243
|
+
})
|
|
1307
1244
|
};
|
|
1308
1245
|
state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], fromJS(tmpDS));
|
|
1309
1246
|
};
|
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
|
};
|
|
@@ -6,6 +6,7 @@ import { convert } from "../../utils/convert-units-lite";
|
|
|
6
6
|
import { GeometryUtils } from "../../utils/export";
|
|
7
7
|
import { MODE_ROTATING_ITEM, WALL_CABINET_LAYOUTPOS } from "../../constants";
|
|
8
8
|
import { isEmpty, returnReplaceableDeepSearchType } from "./utils";
|
|
9
|
+
import { findCatalogElement } from "../../utils/geometry";
|
|
9
10
|
var STYLE_LINE = {
|
|
10
11
|
fill: '#0096fd',
|
|
11
12
|
stroke: '#0096fd'
|
|
@@ -21,6 +22,7 @@ var STYLE_CIRCLE2 = {
|
|
|
21
22
|
cursor: 'ew-resize'
|
|
22
23
|
};
|
|
23
24
|
export default function Item(_ref, _ref2) {
|
|
25
|
+
var _element$render2D;
|
|
24
26
|
var layer = _ref.layer,
|
|
25
27
|
item = _ref.item,
|
|
26
28
|
scene = _ref.scene,
|
|
@@ -29,7 +31,8 @@ export default function Item(_ref, _ref2) {
|
|
|
29
31
|
var itemsActions = _ref2.itemsActions;
|
|
30
32
|
var x = item.x,
|
|
31
33
|
y = item.y,
|
|
32
|
-
rotation = item.rotation
|
|
34
|
+
rotation = item.rotation,
|
|
35
|
+
id = item.id;
|
|
33
36
|
var showBaseCabinetMeasure = scene.showBaseCabinetMeasure,
|
|
34
37
|
showWallCabinetMeasure = scene.showWallCabinetMeasure;
|
|
35
38
|
var vertices = layer.vertices;
|
|
@@ -116,12 +119,7 @@ export default function Item(_ref, _ref2) {
|
|
|
116
119
|
if (layer.selected.items.size > 0) {
|
|
117
120
|
selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
|
|
118
121
|
var catid = selectedItem.type;
|
|
119
|
-
var cat = catalog
|
|
120
|
-
if (!cat) cat = catalog.elements[returnReplaceableDeepSearchType(catid)];
|
|
121
|
-
if (cat === undefined || cat === null) {
|
|
122
|
-
cat = catalog.getIn(['elements', catid]);
|
|
123
|
-
if (!cat) cat = catalog.getIn(['elements', returnReplaceableDeepSearchType(catid)]);
|
|
124
|
-
}
|
|
122
|
+
var cat = findCatalogElement(catalog, catid);
|
|
125
123
|
currentItem = {
|
|
126
124
|
selectedItem: selectedItem,
|
|
127
125
|
cat: cat
|
|
@@ -136,8 +134,7 @@ export default function Item(_ref, _ref2) {
|
|
|
136
134
|
rotRad: item.rotation / 180 * Math.PI
|
|
137
135
|
};
|
|
138
136
|
var catid = item.type;
|
|
139
|
-
var cat = catalog
|
|
140
|
-
if (!cat) cat = catalog.elements[returnReplaceableDeepSearchType(catid)];
|
|
137
|
+
var cat = findCatalogElement(catalog, catid);
|
|
141
138
|
var width = convert(item.properties.getIn(['width', '_length'])).from('in').to('cm');
|
|
142
139
|
var height = convert(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
|
|
143
140
|
// let width = cat.info.sizeinfo.width;
|
|
@@ -281,6 +278,9 @@ export default function Item(_ref, _ref2) {
|
|
|
281
278
|
PointArray.forEach(function (pointElement, index) {
|
|
282
279
|
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
283
280
|
});
|
|
281
|
+
if (Array.isArray(PointArray)) {
|
|
282
|
+
itemsActions.storeDistArray(layerID, id, PointArray);
|
|
283
|
+
}
|
|
284
284
|
var renderedRuler = [];
|
|
285
285
|
var ep = 0.1;
|
|
286
286
|
if (item.selected) {
|
|
@@ -310,7 +310,7 @@ export default function Item(_ref, _ref2) {
|
|
|
310
310
|
}
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
|
-
var renderedItem = element.render2D.call(element, item, layer, scene);
|
|
313
|
+
var renderedItem = element === null || element === void 0 || (_element$render2D = element.render2D) === null || _element$render2D === void 0 ? void 0 : _element$render2D.call(element, item, layer, scene);
|
|
314
314
|
var isSmall = false;
|
|
315
315
|
if (width < 40) isSmall = true;
|
|
316
316
|
var parts = [];
|
|
@@ -137,7 +137,7 @@ export default function Layer(_ref) {
|
|
|
137
137
|
unit: unit,
|
|
138
138
|
catalog: catalog
|
|
139
139
|
});
|
|
140
|
-
}),
|
|
140
|
+
}), itemData, itemWall, lineData, itemSelected, mode !== MODE_DRAWING_LINE && vertices.valueSeq().filter(function (v) {
|
|
141
141
|
return v.selected;
|
|
142
142
|
}).map(function (vertex) {
|
|
143
143
|
return /*#__PURE__*/React.createElement(Vertex, {
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { GeometryUtils } from "../../utils/export";
|
|
4
4
|
import Ruler from "./ruler";
|
|
5
|
-
import { BASE_CABINET_LAYOUTPOS, LINE_THICKNESS, WALL_CABINET_LAYOUTPOS } from "../../constants";
|
|
5
|
+
import { BASE_CABINET_LAYOUTPOS, LINE_THICKNESS, MODE_DRAGGING_LINE, MODE_DRAWING_LINE, WALL_CABINET_LAYOUTPOS, MAX_ANGLE_SCALE } from "../../constants";
|
|
6
6
|
import * as Three from 'three';
|
|
7
7
|
import { isEmpty } from "./utils";
|
|
8
8
|
var STYLE = {
|
|
@@ -21,7 +21,7 @@ var STYLE_TEXT = {
|
|
|
21
21
|
textAnchor: 'middle',
|
|
22
22
|
fontSize: '7px',
|
|
23
23
|
fontWeight: 'middle',
|
|
24
|
-
fontFamily: "'
|
|
24
|
+
fontFamily: "'Courier New', Courier, monospace"
|
|
25
25
|
};
|
|
26
26
|
export function compareVertices(v0, v1) {
|
|
27
27
|
return v0.x === v1.x ? v0.y - v1.y : v0.x - v1.x;
|
|
@@ -710,22 +710,32 @@ export default function Line(_ref) {
|
|
|
710
710
|
"data-layer": layer.id,
|
|
711
711
|
"data-length": length
|
|
712
712
|
}, showWallLengthMeasure ? renderedRuler : null), line.selected && angleVertices.map(function (vertex, index) {
|
|
713
|
+
var _relateLineLengthArra2;
|
|
713
714
|
var lineGroup = vertex[0].lines;
|
|
714
715
|
var angles = [];
|
|
715
716
|
var thickness = [];
|
|
716
717
|
var vectories = [];
|
|
718
|
+
var relateLineLengthArray = [];
|
|
719
|
+
|
|
717
720
|
// get the vector of lines
|
|
718
721
|
lineGroup.forEach(function (line) {
|
|
722
|
+
var _relateLineLengthArra;
|
|
719
723
|
line = layer.lines.get(line);
|
|
720
724
|
var vertex0 = layer.vertices.get(line.vertices.get(0));
|
|
721
725
|
var vertex1 = layer.vertices.get(line.vertices.get(1));
|
|
722
726
|
var vec = vertex0 === vertex[0] ? new Three.Vector2(vertex1.x - vertex0.x, vertex1.y - vertex0.y) : new Three.Vector2(vertex0.x - vertex1.x, vertex0.y - vertex1.y);
|
|
727
|
+
(_relateLineLengthArra = relateLineLengthArray) === null || _relateLineLengthArra === void 0 || _relateLineLengthArra.push(GeometryUtils.verticesDistance(vertex0, vertex1));
|
|
723
728
|
var angle = vec.angle();
|
|
724
729
|
var thick = 15;
|
|
725
730
|
angles.push(angle);
|
|
726
731
|
thickness.push(thick);
|
|
727
732
|
vectories.push(vec.normalize());
|
|
728
733
|
});
|
|
734
|
+
relateLineLengthArray = (_relateLineLengthArra2 = relateLineLengthArray) === null || _relateLineLengthArra2 === void 0 ? void 0 : _relateLineLengthArra2.sort(function (a, b) {
|
|
735
|
+
return a - b;
|
|
736
|
+
});
|
|
737
|
+
var minLineLength = relateLineLengthArray[0] < MAX_ANGLE_SCALE * 2 ? relateLineLengthArray[0] / 2 // scale down to half of the smallest adjacent surface
|
|
738
|
+
: MAX_ANGLE_SCALE;
|
|
729
739
|
|
|
730
740
|
// calculate the angle between two lines
|
|
731
741
|
var center = new Three.Vector2(vertex[0].x, vertex[0].y);
|
|
@@ -744,16 +754,15 @@ export default function Line(_ref) {
|
|
|
744
754
|
var rotDir = vec1.cross(vec2) > 0; // true: rotate CCW, false: rotate CW
|
|
745
755
|
|
|
746
756
|
// Angle Text Position
|
|
747
|
-
|
|
748
757
|
var angleTextO = center.clone();
|
|
749
|
-
var textTranslation = vec1.clone().add(vec2).normalize().multiplyScalar(
|
|
758
|
+
var textTranslation = vec1.clone().add(vec2).normalize().multiplyScalar(minLineLength * 2 / 3);
|
|
750
759
|
angleTextO.add(textTranslation);
|
|
751
|
-
angleTextO.y -=
|
|
752
|
-
|
|
760
|
+
angleTextO.y -= minLineLength / 10; // half the height of text `angle`
|
|
761
|
+
angleTextO.x += minLineLength / 10;
|
|
753
762
|
var tx = 0;
|
|
754
763
|
var ty = 0;
|
|
755
|
-
vec = vec.multiplyScalar(
|
|
756
|
-
vec1 = vec1.multiplyScalar(
|
|
764
|
+
vec = vec.multiplyScalar(minLineLength);
|
|
765
|
+
vec1 = vec1.multiplyScalar(minLineLength);
|
|
757
766
|
var cen1 = center.clone(),
|
|
758
767
|
cen2 = center.clone();
|
|
759
768
|
center = center.add(vec);
|
|
@@ -766,7 +775,7 @@ export default function Line(_ref) {
|
|
|
766
775
|
// Angle SVG Path
|
|
767
776
|
lines.push(/*#__PURE__*/React.createElement("path", {
|
|
768
777
|
style: STYLE_ANGLE,
|
|
769
|
-
d: "\n M ".concat(vertex[0].x, ",").concat(vertex[0].y, " L ").concat(pos1.x, ",").concat(pos1.y, " A
|
|
778
|
+
d: "\n M ".concat(vertex[0].x, ",").concat(vertex[0].y, " L ").concat(pos1.x, ",").concat(pos1.y, " A ").concat(minLineLength, " ").concat(minLineLength, " ").concat(angle, " 0 ").concat(t > 0 ? 1 : 0, " ").concat(pos2.x, ",").concat(pos2.y, " z\n ")
|
|
770
779
|
}));
|
|
771
780
|
var length = angle;
|
|
772
781
|
// draw angle and angle text
|
|
@@ -780,15 +789,9 @@ export default function Line(_ref) {
|
|
|
780
789
|
"data-id": [vertex[0].id, vertex[1].id, rotDir],
|
|
781
790
|
"data-length": length
|
|
782
791
|
}, lines, /*#__PURE__*/React.createElement("text", {
|
|
783
|
-
transform: "translate(".concat(angleTextO.x, ", ").concat(angleTextO.y, ") scale(
|
|
792
|
+
transform: "translate(".concat(angleTextO.x, ", ").concat(angleTextO.y, ") scale(").concat(minLineLength / 20, ", ").concat(-minLineLength / 20, ")"),
|
|
784
793
|
style: STYLE_TEXT
|
|
785
|
-
}, angle
|
|
786
|
-
transform: "translate(".concat(angleTextO.x, ", ").concat(angleTextO.y, ") translate(10, 9)"),
|
|
787
|
-
fill: "transparent",
|
|
788
|
-
stroke: "rgb(77, 77, 77)",
|
|
789
|
-
strokeWidth: 1,
|
|
790
|
-
r: 2
|
|
791
|
-
}));
|
|
794
|
+
}, angle + '° '));
|
|
792
795
|
}), showWindowDoorMeasure ? renderedAllRuler : null, showBaseCabinetMeasure ? baseRuler : null, showWallCabinetMeasure ? wallRuler : null, /*#__PURE__*/React.createElement("g", {
|
|
793
796
|
"data-element-root": true,
|
|
794
797
|
"data-prototype": line.prototype,
|