kitchen-simulator 1.1.1-test.72 → 1.1.1-test.73
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/@history.js +2 -5
- package/es/AppContext.js +3 -6
- package/es/KitchenConfigurator.js +86 -86
- package/es/KitchenConfiguratorApp.js +134 -128
- package/es/actions/area-actions.js +5 -8
- package/es/actions/export.js +12 -24
- package/es/actions/groups-actions.js +27 -41
- package/es/actions/holes-actions.js +34 -51
- package/es/actions/items-actions.js +94 -141
- package/es/actions/lines-actions.js +21 -32
- package/es/actions/project-actions.js +94 -141
- package/es/actions/scene-actions.js +11 -17
- package/es/actions/vertices-actions.js +7 -11
- package/es/actions/viewer2d-actions.js +21 -32
- package/es/actions/viewer3d-actions.js +9 -14
- package/es/catalog/areas/area/planner-element.js +2 -5
- package/es/catalog/catalog.js +15 -17
- package/es/catalog/factories/area-factory-3d.js +22 -26
- package/es/catalog/factories/area-factory.js +13 -15
- package/es/catalog/factories/export.js +6 -10
- package/es/catalog/factories/wall-factory-3d.js +31 -36
- package/es/catalog/factories/wall-factory.js +21 -26
- package/es/catalog/holes/door-closet/planner-element.js +15 -19
- package/es/catalog/holes/door-double/planner-element.js +15 -19
- package/es/catalog/holes/door-exterior/planner-element.js +16 -20
- package/es/catalog/holes/door-interior/planner-element.js +16 -20
- package/es/catalog/holes/door-panic/planner-element.js +7 -11
- package/es/catalog/holes/door-panic-double/planner-element.js +15 -19
- package/es/catalog/holes/door-sliding/planner-element.js +17 -21
- package/es/catalog/holes/doorway-framed/planner-element.js +11 -15
- package/es/catalog/holes/doorway-frameless/planner-element.js +7 -11
- package/es/catalog/holes/export.js +13 -29
- package/es/catalog/holes/window-clear/planner-element.js +10 -14
- package/es/catalog/holes/window-cross/planner-element.js +10 -14
- package/es/catalog/holes/window-double-hung/planner-element.js +10 -14
- package/es/catalog/holes/window-vertical/planner-element.js +10 -14
- package/es/catalog/lines/wall/planner-element.js +2 -5
- package/es/catalog/molding/molding-dcm/planner-element.js +5 -9
- package/es/catalog/molding/molding-fbm/planner-element.js +5 -9
- package/es/catalog/molding/molding-lrm/planner-element.js +5 -9
- package/es/catalog/properties/export.js +20 -31
- package/es/catalog/properties/property-checkbox.js +28 -29
- package/es/catalog/properties/property-color.js +16 -19
- package/es/catalog/properties/property-enum.js +24 -27
- package/es/catalog/properties/property-hidden.js +9 -12
- package/es/catalog/properties/property-lenght-measure.js +38 -41
- package/es/catalog/properties/property-length-measure.js +36 -39
- package/es/catalog/properties/property-length-measure_hole.js +38 -41
- package/es/catalog/properties/property-number.js +17 -20
- package/es/catalog/properties/property-read-only.js +16 -19
- package/es/catalog/properties/property-string.js +16 -19
- package/es/catalog/properties/property-toggle.js +16 -19
- package/es/catalog/properties/shared-property-style.js +1 -3
- package/es/catalog/utils/FuseUtils.js +12 -13
- package/es/catalog/utils/exporter.js +10 -11
- package/es/catalog/utils/geom-utils.js +13 -24
- package/es/catalog/utils/item-loader.js +86 -92
- package/es/catalog/utils/load-obj.js +20 -24
- package/es/catalog/utils/mtl-loader.js +3 -4
- package/es/catalog/utils/obj-loader.js +3 -4
- package/es/class/FuseUtils.js +12 -13
- package/es/class/area.js +24 -24
- package/es/class/export.js +23 -36
- package/es/class/group.js +53 -55
- package/es/class/guide.js +15 -17
- package/es/class/hole.js +83 -85
- package/es/class/item.js +155 -155
- package/es/class/layer.js +59 -61
- package/es/class/line.js +135 -138
- package/es/class/project.js +93 -94
- package/es/class/vertex.js +29 -31
- package/es/components/content.js +19 -23
- package/es/components/disclaimer/disclaimer.js +10 -13
- package/es/components/export.js +8 -13
- package/es/components/style/button.js +25 -25
- package/es/components/style/cancel-button.js +7 -10
- package/es/components/style/content-container.js +11 -12
- package/es/components/style/content-title.js +13 -15
- package/es/components/style/delete-button.js +8 -12
- package/es/components/style/export.js +30 -46
- package/es/components/style/form-block.js +10 -11
- package/es/components/style/form-color-input.js +7 -10
- package/es/components/style/form-label.js +10 -11
- package/es/components/style/form-number-input.js +45 -43
- package/es/components/style/form-number-input_2.js +41 -39
- package/es/components/style/form-select.js +19 -20
- package/es/components/style/form-slider.js +10 -13
- package/es/components/style/form-submit-button.js +8 -12
- package/es/components/style/form-text-input.js +30 -28
- package/es/components/viewer2d/area.js +17 -20
- package/es/components/viewer2d/export.js +30 -46
- package/es/components/viewer2d/grids/grid-horizontal-streak.js +10 -13
- package/es/components/viewer2d/grids/grid-streak.js +10 -13
- package/es/components/viewer2d/grids/grid-vertical-streak.js +10 -13
- package/es/components/viewer2d/grids/grids.js +10 -14
- package/es/components/viewer2d/group.js +15 -19
- package/es/components/viewer2d/item.js +61 -65
- package/es/components/viewer2d/layer.js +23 -26
- package/es/components/viewer2d/line.js +101 -106
- package/es/components/viewer2d/ruler.js +22 -25
- package/es/components/viewer2d/rulerDist.js +21 -24
- package/es/components/viewer2d/rulerX.js +46 -44
- package/es/components/viewer2d/rulerY.js +44 -42
- package/es/components/viewer2d/scene.js +34 -34
- package/es/components/viewer2d/snap.js +13 -17
- package/es/components/viewer2d/state.js +18 -22
- package/es/components/viewer2d/utils.js +24 -33
- package/es/components/viewer2d/vertex.js +8 -12
- package/es/components/viewer2d/viewer2d.js +156 -159
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +21 -19
- package/es/components/viewer3d/dcm.js +1 -3
- package/es/components/viewer3d/fbm.js +1 -3
- package/es/components/viewer3d/front3D.js +12 -16
- package/es/components/viewer3d/grid-creator.js +8 -12
- package/es/components/viewer3d/grids/grid-horizontal-streak.js +6 -9
- package/es/components/viewer3d/grids/grid-streak.js +5 -8
- package/es/components/viewer3d/grids/grid-vertical-streak.js +6 -9
- package/es/components/viewer3d/libs/first-person-controls.js +2 -5
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1 -3
- package/es/components/viewer3d/libs/mtl-loader.js +1 -3
- package/es/components/viewer3d/libs/obj-loader.js +1 -3
- package/es/components/viewer3d/libs/orbit-controls.js +2 -4
- package/es/components/viewer3d/libs/pointer-lock-controls.js +2 -4
- package/es/components/viewer3d/lrm.js +1 -3
- package/es/components/viewer3d/model.js +1 -3
- package/es/components/viewer3d/pointer-lock-navigation.js +3 -6
- package/es/components/viewer3d/ruler-utils/itemRect.js +18 -21
- package/es/components/viewer3d/ruler-utils/layer3D.js +59 -62
- package/es/components/viewer3d/ruler-utils/ruler3D.js +42 -43
- package/es/components/viewer3d/ruler-utils/scene3D.js +9 -13
- package/es/components/viewer3d/ruler-utils/state3D.js +4 -7
- package/es/components/viewer3d/scene-creator.js +197 -223
- package/es/components/viewer3d/three-memory-cleaner.js +3 -7
- package/es/components/viewer3d/viewer3d-first-person.js +42 -42
- package/es/components/viewer3d/viewer3d.js +200 -198
- package/es/constants.js +349 -354
- package/es/index.js +7 -11
- package/es/models.js +193 -191
- package/es/plugins/SVGLoader.js +48 -49
- package/es/plugins/autosave.js +3 -5
- package/es/plugins/console-debugger.js +6 -7
- package/es/plugins/export.js +8 -13
- package/es/plugins/keyboard.js +29 -31
- package/es/reducers/areas-reducer.js +7 -9
- package/es/reducers/export.js +24 -37
- package/es/reducers/groups-reducer.js +31 -33
- package/es/reducers/holes-reducer.js +43 -45
- package/es/reducers/items-reducer.js +106 -108
- package/es/reducers/lines-reducer.js +28 -30
- package/es/reducers/project-reducer.js +105 -107
- package/es/reducers/reducer.js +16 -19
- package/es/reducers/scene-reducer.js +15 -17
- package/es/reducers/user-reducer.js +5 -7
- package/es/reducers/vertices-reducer.js +11 -13
- package/es/reducers/viewer2d-reducer.js +18 -20
- package/es/reducers/viewer3d-reducer.js +16 -18
- package/es/shared-style.js +10 -12
- package/es/styles/export.js +3 -6
- package/es/translator/en.js +1 -3
- package/es/translator/it.js +1 -3
- package/es/translator/ru.js +1 -3
- package/es/translator/translator.js +13 -15
- package/es/utils/browser.js +2 -5
- package/es/utils/convert-units-lite.js +1 -3
- package/es/utils/email-validator.js +1 -3
- package/es/utils/export.js +15 -29
- package/es/utils/geometry.js +190 -280
- package/es/utils/get-edges-of-subgraphs.js +2 -5
- package/es/utils/graph-cycles.js +8 -7
- package/es/utils/graph-inner-cycles.js +10 -14
- package/es/utils/graph.js +9 -13
- package/es/utils/helper.js +41 -58
- package/es/utils/history.js +8 -11
- package/es/utils/id-broker.js +8 -11
- package/es/utils/logger.js +1 -3
- package/es/utils/math.js +5 -8
- package/es/utils/molding.js +130 -146
- package/es/utils/name-generator.js +7 -9
- package/es/utils/objects-utils.js +7 -14
- package/es/utils/phone-validator.js +1 -3
- package/es/utils/process-black-list.js +5 -6
- package/es/utils/react-if.js +7 -9
- package/es/utils/snap-scene.js +27 -30
- package/es/utils/snap.js +53 -57
- package/es/utils/summarizeCart.js +1 -3
- package/es/utils/threeCSG.es6.js +13 -17
- package/es/version.js +1 -3
- package/package.json +1 -1
package/es/class/project.js
CHANGED
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
var _helper = require("../utils/helper");
|
|
16
|
-
var Project = exports["default"] = /*#__PURE__*/function () {
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
import { List, Map } from 'immutable';
|
|
7
|
+
import * as constants from "../constants";
|
|
8
|
+
import { ARRAY_3D_MODES, END_DRAWING_LINE, MODE_CONFIGURING_PROJECT, MODE_DRAWING_HOLE, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_DRAWING_LINE, MODE_IDLE, MODE_IDLE_3D, MODE_VIEWING_CATALOG, MODE_WAITING_DRAWING_LINE } from "../constants";
|
|
9
|
+
import { Catalog, Scene, State } from "../models";
|
|
10
|
+
import { GeometryUtils, history } from "../utils/export";
|
|
11
|
+
import { Area, Group, Hole, HorizontalGuide, Item, Layer, Line, VerticalGuide } from "../class/export";
|
|
12
|
+
import * as viewer2DActions from "../actions/viewer2d-actions";
|
|
13
|
+
import { isEmpty } from "../utils/helper";
|
|
14
|
+
var Project = /*#__PURE__*/function () {
|
|
17
15
|
function Project() {
|
|
18
|
-
(
|
|
16
|
+
_classCallCheck(this, Project);
|
|
19
17
|
}
|
|
20
|
-
return (
|
|
18
|
+
return _createClass(Project, null, [{
|
|
21
19
|
key: "setAlterate",
|
|
22
20
|
value: function setAlterate(state) {
|
|
23
21
|
return {
|
|
@@ -27,7 +25,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
27
25
|
}, {
|
|
28
26
|
key: "openCatalog",
|
|
29
27
|
value: function openCatalog(state) {
|
|
30
|
-
state = this.setMode(state,
|
|
28
|
+
state = this.setMode(state, MODE_VIEWING_CATALOG).updatedState;
|
|
31
29
|
return {
|
|
32
30
|
updatedState: state
|
|
33
31
|
};
|
|
@@ -47,7 +45,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
47
45
|
a: 0.99,
|
|
48
46
|
d: 0.99
|
|
49
47
|
});
|
|
50
|
-
state = new
|
|
48
|
+
state = new State({});
|
|
51
49
|
state = state.merge({
|
|
52
50
|
doorStyle: doorStyle,
|
|
53
51
|
oStyle: oStyle,
|
|
@@ -95,20 +93,20 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
95
93
|
for (var x in json_items) {
|
|
96
94
|
_loop(x);
|
|
97
95
|
}
|
|
98
|
-
var newScene = new
|
|
99
|
-
state = new
|
|
96
|
+
var newScene = new Scene(sceneJSON);
|
|
97
|
+
state = new State({
|
|
100
98
|
scene: newScene.toJS(),
|
|
101
99
|
catalog: state.catalog.toJS()
|
|
102
100
|
});
|
|
103
101
|
state = state.merge({
|
|
104
|
-
sceneHistory:
|
|
102
|
+
sceneHistory: history.historyPush(oldSceneHistory, oldScene)
|
|
105
103
|
});
|
|
106
104
|
if (state.scene.title === '') {
|
|
107
105
|
state = state.mergeIn(['scene', 'title'], oldScene.title);
|
|
108
106
|
}
|
|
109
107
|
|
|
110
108
|
//Validate item positions after loading project.
|
|
111
|
-
state =
|
|
109
|
+
state = Item.validateItemPositions(state, layerID).updatedState;
|
|
112
110
|
|
|
113
111
|
// get counterTop and floorStyle is after state created from sceneJSON
|
|
114
112
|
if (state.getIn(['scene', 'layers', layerID, 'counterTop']).uri) {
|
|
@@ -166,8 +164,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
166
164
|
oStyle: oStyle,
|
|
167
165
|
viewer2D: _viewer2D
|
|
168
166
|
});
|
|
169
|
-
state =
|
|
170
|
-
state =
|
|
167
|
+
state = Item.setCounterTop(state, counterTop).updatedState;
|
|
168
|
+
state = Area.setFloorStyles(state, floorStyle).updatedState;
|
|
171
169
|
if (state.getIn(['scene', 'layers', layerID, 'doorStyle']) && !state.getIn(['scene', 'layers', layerID, 'doorStyle', 'install'])) {
|
|
172
170
|
var layerDoorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
|
|
173
171
|
var install = '';
|
|
@@ -180,7 +178,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
180
178
|
}
|
|
181
179
|
});
|
|
182
180
|
});
|
|
183
|
-
layerDoorStyle = (
|
|
181
|
+
layerDoorStyle = _objectSpread(_objectSpread({}, layerDoorStyle), {}, {
|
|
184
182
|
install: install
|
|
185
183
|
});
|
|
186
184
|
state = state.mergeIn(['scene', 'layers', layerID, 'doorStyle'], layerDoorStyle);
|
|
@@ -201,8 +199,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
201
199
|
updatedState: state
|
|
202
200
|
};
|
|
203
201
|
}
|
|
204
|
-
state =
|
|
205
|
-
state =
|
|
202
|
+
state = Layer.setPropertiesOnSelected(state, layerID, properties).updatedState;
|
|
203
|
+
state = Layer.updateMovingState(state, false).updatedState;
|
|
206
204
|
return {
|
|
207
205
|
updatedState: state
|
|
208
206
|
};
|
|
@@ -210,7 +208,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
210
208
|
}, {
|
|
211
209
|
key: "updateProperties",
|
|
212
210
|
value: function updateProperties(state, layerID, properties) {
|
|
213
|
-
state =
|
|
211
|
+
state = Layer.updatePropertiesOnSelected(state, layerID, properties).updatedState;
|
|
214
212
|
return {
|
|
215
213
|
updatedState: state
|
|
216
214
|
};
|
|
@@ -219,9 +217,9 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
219
217
|
key: "setItemsAttributes",
|
|
220
218
|
value: function setItemsAttributes(state, attributes) {
|
|
221
219
|
//TODO apply only to items
|
|
222
|
-
state =
|
|
220
|
+
state = Layer.updateMovingState(state, false).updatedState;
|
|
223
221
|
state.getIn(['scene', 'layers']).forEach(function (layer) {
|
|
224
|
-
state =
|
|
222
|
+
state = Layer.setAttributesOnSelected(state, layer.id, attributes).updatedState;
|
|
225
223
|
});
|
|
226
224
|
return {
|
|
227
225
|
updatedState: state
|
|
@@ -233,12 +231,12 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
233
231
|
//TODO apply only to lines
|
|
234
232
|
if (!isDirect) {
|
|
235
233
|
state.getIn(['scene', 'layers']).forEach(function (layer) {
|
|
236
|
-
state =
|
|
234
|
+
state = Layer.setAttributesOnSelected(state, layer.id, attributes).updatedState;
|
|
237
235
|
});
|
|
238
236
|
} else if (isDirect && directData !== null) {
|
|
239
237
|
var layerID = directData.layerID,
|
|
240
238
|
lineID = directData.lineID;
|
|
241
|
-
if (layerID && lineID) state =
|
|
239
|
+
if (layerID && lineID) state = Line.setAttributes(state, layerID, lineID, attributes).updatedState;
|
|
242
240
|
}
|
|
243
241
|
return {
|
|
244
242
|
updatedState: state
|
|
@@ -249,7 +247,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
249
247
|
value: function setHolesAttributes(state, attributes) {
|
|
250
248
|
//TODO apply only to holes
|
|
251
249
|
state.getIn(['scene', 'layers']).forEach(function (layer) {
|
|
252
|
-
state =
|
|
250
|
+
state = Layer.setAttributesOnSelected(state, layer.id, attributes).updatedState;
|
|
253
251
|
});
|
|
254
252
|
return {
|
|
255
253
|
updatedState: state
|
|
@@ -260,19 +258,19 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
260
258
|
value: function unselectAll(state) {
|
|
261
259
|
state.getIn(['scene', 'layers']).forEach(function (_ref) {
|
|
262
260
|
var layerID = _ref.id;
|
|
263
|
-
state =
|
|
261
|
+
state = Layer.unselectAll(state, layerID).updatedState;
|
|
264
262
|
});
|
|
265
263
|
state.getIn(['scene', 'groups']).forEach(function (group) {
|
|
266
|
-
state =
|
|
264
|
+
state = Group.unselect(state, group.get('id')).updatedState;
|
|
267
265
|
});
|
|
268
266
|
var mode = state.getIn(['mode']);
|
|
269
267
|
if (mode === constants.MODE_DRAGGING_LINE || mode === constants.MODE_DRAGGING_VERTEX) {
|
|
270
268
|
if (mode.includes('3D')) {
|
|
271
|
-
state = state.setIn(['mode'],
|
|
272
|
-
} else state = state.setIn(['mode'],
|
|
269
|
+
state = state.setIn(['mode'], MODE_IDLE_3D);
|
|
270
|
+
} else state = state.setIn(['mode'], MODE_IDLE);
|
|
273
271
|
state = state.merge({
|
|
274
272
|
activeSnapElement: null,
|
|
275
|
-
snapElements: new
|
|
273
|
+
snapElements: new List()
|
|
276
274
|
});
|
|
277
275
|
}
|
|
278
276
|
return {
|
|
@@ -285,7 +283,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
285
283
|
if (value == null) {
|
|
286
284
|
state.getIn(['scene', 'layers']).forEach(function (_ref2) {
|
|
287
285
|
var layerID = _ref2.id;
|
|
288
|
-
state =
|
|
286
|
+
state = Layer.selectAll(state, layerID).updatedState;
|
|
289
287
|
});
|
|
290
288
|
} else {
|
|
291
289
|
var layerID = state.getIn(['scene', 'selectedLayer']);
|
|
@@ -326,33 +324,33 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
326
324
|
var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
|
|
327
325
|
var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', 'lines']).toJS();
|
|
328
326
|
var lineID = selLines[0];
|
|
329
|
-
var delLine = !
|
|
327
|
+
var delLine = !isEmpty(lineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', lineID]).toJS();
|
|
330
328
|
var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
|
|
331
329
|
var relatedLines = [];
|
|
332
|
-
delLine &&
|
|
330
|
+
delLine && GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
|
|
333
331
|
selectedLines.forEach(function (lineID) {
|
|
334
|
-
state =
|
|
332
|
+
state = Line.remove(state, selectedLayer, lineID).updatedState;
|
|
335
333
|
});
|
|
336
334
|
selectedHoles.forEach(function (holeID) {
|
|
337
|
-
state =
|
|
335
|
+
state = Hole.remove(state, selectedLayer, holeID).updatedState;
|
|
338
336
|
});
|
|
339
337
|
selectedItems.forEach(function (itemID) {
|
|
340
|
-
state =
|
|
338
|
+
state = Item.remove(state, selectedLayer, itemID).updatedState;
|
|
341
339
|
});
|
|
342
|
-
if (!
|
|
343
|
-
state = state.setIn(['mode'],
|
|
340
|
+
if (!isEmpty(relatedLines)) {
|
|
341
|
+
state = state.setIn(['mode'], MODE_DRAWING_LINE);
|
|
344
342
|
relatedLines.forEach(function (relLine, index) {
|
|
345
|
-
state =
|
|
346
|
-
state =
|
|
343
|
+
state = Line.select(state, selectedLayer, relLine.id).updatedState;
|
|
344
|
+
state = Line.applyWallChanges(state, END_DRAWING_LINE).updatedState;
|
|
347
345
|
});
|
|
348
346
|
}
|
|
349
|
-
state =
|
|
347
|
+
state = Layer.unselectAll(state, selectedLayer).updatedState;
|
|
350
348
|
var mode = state.getIn(['mode']);
|
|
351
349
|
if (mode.includes('DRAWING') || mode.includes('DRAGGING') || mode.includes('ROTATING')) {
|
|
352
350
|
state = state.merge({
|
|
353
351
|
activeSnapElement: null
|
|
354
352
|
});
|
|
355
|
-
if (mode.endsWith('3D')) state = state.setIn(['mode'],
|
|
353
|
+
if (mode.endsWith('3D')) state = state.setIn(['mode'], MODE_IDLE_3D);else state = state.setIn(['mode'], MODE_IDLE);
|
|
356
354
|
}
|
|
357
355
|
return {
|
|
358
356
|
updatedState: state
|
|
@@ -369,15 +367,15 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
369
367
|
var forRedo = window.forRedo;
|
|
370
368
|
window.forRedo = forRedo;
|
|
371
369
|
if (state.scene === sceneHistory.last && sceneHistory.list.size > 1) {
|
|
372
|
-
sceneHistory =
|
|
370
|
+
sceneHistory = history.historyPop(sceneHistory);
|
|
373
371
|
}
|
|
374
372
|
forRedo.push(state.scene);
|
|
375
373
|
var mode;
|
|
376
|
-
if (
|
|
374
|
+
if (ARRAY_3D_MODES.includes(state.mode)) mode = MODE_IDLE_3D;else mode = MODE_IDLE;
|
|
377
375
|
state = state.merge({
|
|
378
376
|
mode: mode,
|
|
379
377
|
scene: sceneHistory.last,
|
|
380
|
-
sceneHistory:
|
|
378
|
+
sceneHistory: history.historyPop(sceneHistory)
|
|
381
379
|
});
|
|
382
380
|
return {
|
|
383
381
|
updatedState: state
|
|
@@ -392,11 +390,11 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
392
390
|
};
|
|
393
391
|
var scene = forRedo.pop();
|
|
394
392
|
var mode;
|
|
395
|
-
if (
|
|
393
|
+
if (ARRAY_3D_MODES.includes(state.mode)) mode = MODE_IDLE_3D;else mode = MODE_IDLE;
|
|
396
394
|
state = state.merge({
|
|
397
395
|
mode: mode,
|
|
398
396
|
scene: scene,
|
|
399
|
-
sceneHistory:
|
|
397
|
+
sceneHistory: history.historyPush(state.sceneHistory, state.scene)
|
|
400
398
|
});
|
|
401
399
|
window.forRedo = forRedo;
|
|
402
400
|
return {
|
|
@@ -425,7 +423,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
425
423
|
key: "recreate",
|
|
426
424
|
value: function recreate(state) {
|
|
427
425
|
if (state.getIn(['drawingSupport', 'type']) !== undefined) state = state.merge({
|
|
428
|
-
mode:
|
|
426
|
+
mode: MODE_DRAWING_ITEM_3D,
|
|
429
427
|
popup: true
|
|
430
428
|
});
|
|
431
429
|
return {
|
|
@@ -447,10 +445,10 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
447
445
|
value: function shift2doff(state) {
|
|
448
446
|
if (state.getIn(['drawingSupport', 'type']) !== undefined) {
|
|
449
447
|
if (state.get('selectedElementsHistory')._tail.array[0].prototype === 'holes') state = state.merge({
|
|
450
|
-
mode:
|
|
448
|
+
mode: MODE_DRAWING_HOLE,
|
|
451
449
|
popup: true
|
|
452
450
|
});else state = state.merge({
|
|
453
|
-
mode:
|
|
451
|
+
mode: MODE_DRAWING_ITEM,
|
|
454
452
|
popup: true
|
|
455
453
|
});
|
|
456
454
|
}
|
|
@@ -472,22 +470,22 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
472
470
|
}
|
|
473
471
|
|
|
474
472
|
// ESC event doesn't need when mode = MODE_IDLE || MODE_IDLE_3D
|
|
475
|
-
if (state.mode ==
|
|
473
|
+
if (state.mode == MODE_IDLE_3D || state.mode == MODE_IDLE) {
|
|
476
474
|
return {
|
|
477
475
|
updatedState: state
|
|
478
476
|
};
|
|
479
477
|
}
|
|
480
478
|
var mode;
|
|
481
|
-
if (state.mode ==
|
|
482
|
-
mode =
|
|
483
|
-
if (state.drawingSupport.has('currentID')) state =
|
|
479
|
+
if (state.mode == MODE_DRAWING_ITEM_3D) {
|
|
480
|
+
mode = MODE_IDLE_3D;
|
|
481
|
+
if (state.drawingSupport.has('currentID')) state = Layer.removeElement(state, state.scene.selectedLayer, 'items', state.drawingSupport.get('currentID')).updatedState;
|
|
484
482
|
state = state.merge({
|
|
485
483
|
mode: mode,
|
|
486
|
-
snapElements: new
|
|
484
|
+
snapElements: new List(),
|
|
487
485
|
activeSnapElement: null,
|
|
488
|
-
drawingSupport: new
|
|
489
|
-
draggingSupport: new
|
|
490
|
-
rotatingSupport: new
|
|
486
|
+
drawingSupport: new Map(),
|
|
487
|
+
draggingSupport: new Map(),
|
|
488
|
+
rotatingSupport: new Map()
|
|
491
489
|
});
|
|
492
490
|
return {
|
|
493
491
|
updatedState: state
|
|
@@ -495,30 +493,30 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
495
493
|
}
|
|
496
494
|
|
|
497
495
|
// when Add Walls button clicked
|
|
498
|
-
if (state.mode ==
|
|
499
|
-
mode =
|
|
496
|
+
if (state.mode == MODE_WAITING_DRAWING_LINE) {
|
|
497
|
+
mode = MODE_IDLE;
|
|
500
498
|
state = state.merge({
|
|
501
499
|
mode: mode,
|
|
502
|
-
snapElements: new
|
|
500
|
+
snapElements: new List(),
|
|
503
501
|
activeSnapElement: null,
|
|
504
|
-
drawingSupport: new
|
|
505
|
-
draggingSupport: new
|
|
506
|
-
rotatingSupport: new
|
|
502
|
+
drawingSupport: new Map(),
|
|
503
|
+
draggingSupport: new Map(),
|
|
504
|
+
rotatingSupport: new Map()
|
|
507
505
|
});
|
|
508
506
|
return {
|
|
509
507
|
updatedState: state
|
|
510
508
|
};
|
|
511
509
|
}
|
|
512
|
-
if (
|
|
510
|
+
if (ARRAY_3D_MODES.includes(state.mode)) mode = MODE_IDLE_3D;else mode = MODE_IDLE;
|
|
513
511
|
state = state.merge({
|
|
514
512
|
mode: mode,
|
|
515
513
|
scene: sceneHistory.last,
|
|
516
|
-
sceneHistory:
|
|
517
|
-
snapElements: new
|
|
514
|
+
sceneHistory: history.historyPush(sceneHistory, sceneHistory.last),
|
|
515
|
+
snapElements: new List(),
|
|
518
516
|
activeSnapElement: null,
|
|
519
|
-
drawingSupport: new
|
|
520
|
-
draggingSupport: new
|
|
521
|
-
rotatingSupport: new
|
|
517
|
+
drawingSupport: new Map(),
|
|
518
|
+
draggingSupport: new Map(),
|
|
519
|
+
rotatingSupport: new Map()
|
|
522
520
|
});
|
|
523
521
|
return {
|
|
524
522
|
updatedState: state
|
|
@@ -529,7 +527,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
529
527
|
value: function removeDrawingSupport(state) {
|
|
530
528
|
var sceneHistory = state.sceneHistory;
|
|
531
529
|
var mode = state.mode;
|
|
532
|
-
if (!sceneHistory.last && sceneHistory.list.isEmpty() || mode !=
|
|
530
|
+
if (!sceneHistory.last && sceneHistory.list.isEmpty() || mode != MODE_DRAWING_ITEM_3D) {
|
|
533
531
|
return {
|
|
534
532
|
updatedState: state
|
|
535
533
|
};
|
|
@@ -537,8 +535,8 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
537
535
|
state = this.unselectAll(state).updatedState;
|
|
538
536
|
state = state.merge({
|
|
539
537
|
scene: sceneHistory.last,
|
|
540
|
-
sceneHistory:
|
|
541
|
-
drawingSupport: new
|
|
538
|
+
sceneHistory: history.historyPush(sceneHistory, sceneHistory.last),
|
|
539
|
+
drawingSupport: new Map()
|
|
542
540
|
});
|
|
543
541
|
return {
|
|
544
542
|
updatedState: state
|
|
@@ -549,7 +547,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
549
547
|
value: function setProjectProperties(state, properties) {
|
|
550
548
|
var scene = state.scene.merge(properties);
|
|
551
549
|
state = state.merge({
|
|
552
|
-
mode:
|
|
550
|
+
mode: MODE_IDLE,
|
|
553
551
|
scene: scene
|
|
554
552
|
});
|
|
555
553
|
return {
|
|
@@ -571,7 +569,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
571
569
|
key: "openProjectConfigurator",
|
|
572
570
|
value: function openProjectConfigurator(state) {
|
|
573
571
|
state = state.merge({
|
|
574
|
-
mode:
|
|
572
|
+
mode: MODE_CONFIGURING_PROJECT
|
|
575
573
|
});
|
|
576
574
|
return {
|
|
577
575
|
updatedState: state
|
|
@@ -581,7 +579,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
581
579
|
key: "initCatalog",
|
|
582
580
|
value: function initCatalog(state, catalog) {
|
|
583
581
|
try {
|
|
584
|
-
state = state.set('catalog', new
|
|
582
|
+
state = state.set('catalog', new Catalog(catalog));
|
|
585
583
|
return {
|
|
586
584
|
updatedState: state
|
|
587
585
|
};
|
|
@@ -595,7 +593,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
595
593
|
}, {
|
|
596
594
|
key: "updateMouseCoord",
|
|
597
595
|
value: function updateMouseCoord(state, coords) {
|
|
598
|
-
state = state.set('mouse', new
|
|
596
|
+
state = state.set('mouse', new Map(coords));
|
|
599
597
|
return {
|
|
600
598
|
updatedState: state
|
|
601
599
|
};
|
|
@@ -647,7 +645,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
647
645
|
updatedState: state
|
|
648
646
|
};else {
|
|
649
647
|
state = state.merge({
|
|
650
|
-
mode:
|
|
648
|
+
mode: MODE_WAITING_DRAWING_LINE,
|
|
651
649
|
activeSnapElement: null
|
|
652
650
|
});
|
|
653
651
|
return {
|
|
@@ -713,7 +711,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
713
711
|
}, {
|
|
714
712
|
key: "addHorizontalGuide",
|
|
715
713
|
value: function addHorizontalGuide(state, coordinate) {
|
|
716
|
-
state =
|
|
714
|
+
state = HorizontalGuide.create(state, coordinate).updatedState;
|
|
717
715
|
return {
|
|
718
716
|
updatedState: state
|
|
719
717
|
};
|
|
@@ -721,7 +719,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
721
719
|
}, {
|
|
722
720
|
key: "addVerticalGuide",
|
|
723
721
|
value: function addVerticalGuide(state, coordinate) {
|
|
724
|
-
state =
|
|
722
|
+
state = VerticalGuide.create(state, coordinate).updatedState;
|
|
725
723
|
return {
|
|
726
724
|
updatedState: state
|
|
727
725
|
};
|
|
@@ -737,7 +735,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
737
735
|
}, {
|
|
738
736
|
key: "removeHorizontalGuide",
|
|
739
737
|
value: function removeHorizontalGuide(state, guideID) {
|
|
740
|
-
state =
|
|
738
|
+
state = HorizontalGuide.remove(state, guideID).updatedState;
|
|
741
739
|
return {
|
|
742
740
|
updatedState: state
|
|
743
741
|
};
|
|
@@ -745,7 +743,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
745
743
|
}, {
|
|
746
744
|
key: "removeVerticalGuide",
|
|
747
745
|
value: function removeVerticalGuide(state, guideID) {
|
|
748
|
-
state =
|
|
746
|
+
state = VerticalGuide.remove(state, guideID).updatedState;
|
|
749
747
|
return {
|
|
750
748
|
updatedState: state
|
|
751
749
|
};
|
|
@@ -761,7 +759,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
761
759
|
}, {
|
|
762
760
|
key: "setStateProperties",
|
|
763
761
|
value: function setStateProperties(state, properties) {
|
|
764
|
-
state = state.merge((
|
|
762
|
+
state = state.merge(_objectSpread({}, properties));
|
|
765
763
|
return {
|
|
766
764
|
updatedState: state
|
|
767
765
|
};
|
|
@@ -787,4 +785,5 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
787
785
|
};
|
|
788
786
|
}
|
|
789
787
|
}]);
|
|
790
|
-
}();
|
|
788
|
+
}();
|
|
789
|
+
export { Project as default };
|
package/es/class/vertex.js
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
var _export2 = require("../class/export");
|
|
12
|
-
var _helper = require("../utils/helper");
|
|
13
|
-
var Vertex = exports["default"] = /*#__PURE__*/function () {
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
import { List, Map } from 'immutable';
|
|
5
|
+
import { Vertex as VertexModel } from "../models";
|
|
6
|
+
import { GeometryUtils, IDBroker, SnapSceneUtils, SnapUtils } from "../utils/export";
|
|
7
|
+
import { END_DRAGGING_VERTEX, MODE_DRAGGING_VERTEX } from "../constants";
|
|
8
|
+
import { Layer, Line } from "../class/export";
|
|
9
|
+
import { isEmpty } from "../utils/helper";
|
|
10
|
+
var Vertex = /*#__PURE__*/function () {
|
|
14
11
|
function Vertex() {
|
|
15
|
-
(
|
|
12
|
+
_classCallCheck(this, Vertex);
|
|
16
13
|
}
|
|
17
|
-
return (
|
|
14
|
+
return _createClass(Vertex, null, [{
|
|
18
15
|
key: "add",
|
|
19
16
|
value: function add(state, layerID, x, y, relatedPrototype, relatedID) {
|
|
20
17
|
var vertex = state.getIn(['scene', 'layers', layerID, 'vertices']).find(function (vertex) {
|
|
21
|
-
return
|
|
18
|
+
return GeometryUtils.samePoints(vertex, {
|
|
22
19
|
x: x,
|
|
23
20
|
y: y
|
|
24
21
|
});
|
|
@@ -28,12 +25,12 @@ var Vertex = exports["default"] = /*#__PURE__*/function () {
|
|
|
28
25
|
return related.push(relatedID);
|
|
29
26
|
});
|
|
30
27
|
} else {
|
|
31
|
-
vertex = new
|
|
32
|
-
id:
|
|
28
|
+
vertex = new VertexModel(_defineProperty({
|
|
29
|
+
id: IDBroker.acquireID(),
|
|
33
30
|
name: 'Vertex',
|
|
34
31
|
x: x,
|
|
35
32
|
y: y
|
|
36
|
-
}, relatedPrototype, new
|
|
33
|
+
}, relatedPrototype, new List([relatedID])));
|
|
37
34
|
}
|
|
38
35
|
state = state.setIn(['scene', 'layers', layerID, 'vertices', vertex.id], vertex);
|
|
39
36
|
return {
|
|
@@ -123,11 +120,11 @@ var Vertex = exports["default"] = /*#__PURE__*/function () {
|
|
|
123
120
|
}, {
|
|
124
121
|
key: "beginDraggingVertex",
|
|
125
122
|
value: function beginDraggingVertex(state, layerID, vertexID, x, y) {
|
|
126
|
-
var snapElements =
|
|
123
|
+
var snapElements = SnapSceneUtils.sceneSnapElements(state.scene, new List(), state.snapMask);
|
|
127
124
|
state = state.merge({
|
|
128
|
-
mode:
|
|
125
|
+
mode: MODE_DRAGGING_VERTEX,
|
|
129
126
|
snapElements: snapElements,
|
|
130
|
-
draggingSupport:
|
|
127
|
+
draggingSupport: Map({
|
|
131
128
|
layerID: layerID,
|
|
132
129
|
vertexID: vertexID,
|
|
133
130
|
previousMode: state.get('mode')
|
|
@@ -146,7 +143,7 @@ var Vertex = exports["default"] = /*#__PURE__*/function () {
|
|
|
146
143
|
scene = _state.scene;
|
|
147
144
|
var snap = null;
|
|
148
145
|
if (state.snapMask && !state.snapMask.isEmpty()) {
|
|
149
|
-
snap =
|
|
146
|
+
snap = SnapUtils.nearestSnap(snapElements, x, y, state.snapMask);
|
|
150
147
|
if (snap) {
|
|
151
148
|
var _snap$point = snap.point;
|
|
152
149
|
x = _snap$point.x;
|
|
@@ -177,12 +174,12 @@ var Vertex = exports["default"] = /*#__PURE__*/function () {
|
|
|
177
174
|
if (lines) {
|
|
178
175
|
state = lines.reduce(function (reducedState, lineID) {
|
|
179
176
|
var eachLine = reducedState.getIn(['scene', 'layers', layerID, 'lines', lineID]);
|
|
180
|
-
if (
|
|
181
|
-
reducedState =
|
|
182
|
-
reducedState =
|
|
183
|
-
reducedState =
|
|
184
|
-
reducedState = reducedState.setIn(['mode'],
|
|
185
|
-
reducedState =
|
|
177
|
+
if (isEmpty(eachLine)) return reducedState;
|
|
178
|
+
reducedState = Layer.removeZeroLengthLines(reducedState, layerID).updatedState;
|
|
179
|
+
reducedState = Layer.mergeEqualsVertices(reducedState, layerID, vertexID).updatedState;
|
|
180
|
+
reducedState = Line.select(reducedState, layerID, eachLine.id).updatedState;
|
|
181
|
+
reducedState = reducedState.setIn(['mode'], MODE_DRAGGING_VERTEX);
|
|
182
|
+
reducedState = Line.applyWallChanges(reducedState, END_DRAGGING_VERTEX).updatedState;
|
|
186
183
|
return reducedState;
|
|
187
184
|
}, state);
|
|
188
185
|
}
|
|
@@ -190,11 +187,12 @@ var Vertex = exports["default"] = /*#__PURE__*/function () {
|
|
|
190
187
|
mode: draggingSupport.get('previousMode'),
|
|
191
188
|
draggingSupport: null,
|
|
192
189
|
activeSnapElement: null,
|
|
193
|
-
snapElements: new
|
|
190
|
+
snapElements: new List()
|
|
194
191
|
});
|
|
195
192
|
return {
|
|
196
193
|
updatedState: state
|
|
197
194
|
};
|
|
198
195
|
}
|
|
199
196
|
}]);
|
|
200
|
-
}();
|
|
197
|
+
}();
|
|
198
|
+
export { Vertex as default };
|