kitchen-simulator 5.0.2-react.18 → 5.0.4-react.18
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/AppContext.js +4 -1
- package/es/LiteKitchenConfigurator.js +20 -40
- package/es/LiteRenderer.js +3 -0
- package/es/WorkSpace.js +27 -31
- package/es/components/viewer2d/item.js +2 -1
- package/es/components/viewer2d/line.js +1 -0
- package/es/components/viewer2d/viewer2d.js +489 -562
- package/es/components/viewer3d/scene-creator.js +150 -9
- package/es/utils/name-generator.js +3 -0
- package/package.json +1 -1
|
@@ -15,10 +15,11 @@ import FormNumberInput from "../style/form-number-input";
|
|
|
15
15
|
import { convert } from "../../utils/convert-units-lite";
|
|
16
16
|
import { Map } from 'immutable';
|
|
17
17
|
import { formatNumber } from "../../utils/math";
|
|
18
|
-
import { isEmpty, updatePayloadOfInternalEvent } from "../../utils/helper";
|
|
18
|
+
import { isEmpty, updatePayloadOfInternalEvent } from "../../utils/helper";
|
|
19
19
|
import { isWarningItem } from "./utils";
|
|
20
20
|
import AppContext from "../../AppContext";
|
|
21
|
-
|
|
21
|
+
|
|
22
|
+
// variables (kept as in your original file)
|
|
22
23
|
var pinFlag = false;
|
|
23
24
|
var sFlag = false; //for all object move
|
|
24
25
|
var sPoint = {}; //for all object move
|
|
@@ -107,10 +108,11 @@ function mode2DetectAutopan(mode) {
|
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
function extractElementData(node) {
|
|
110
|
-
while (!node.attributes.getNamedItem('data-element-root') && node.tagName !== 'svg') {
|
|
111
|
+
while (!((_node = node) !== null && _node !== void 0 && (_node = _node.attributes) !== null && _node !== void 0 && (_node$getNamedItem = _node.getNamedItem) !== null && _node$getNamedItem !== void 0 && _node$getNamedItem.call(_node, 'data-element-root')) && ((_node2 = node) === null || _node2 === void 0 ? void 0 : _node2.tagName) !== 'svg') {
|
|
112
|
+
var _node, _node$getNamedItem, _node2;
|
|
111
113
|
node = node.parentNode;
|
|
112
114
|
}
|
|
113
|
-
if (node.tagName === 'svg') return null;
|
|
115
|
+
if (!node || node.tagName === 'svg') return null;
|
|
114
116
|
return {
|
|
115
117
|
length: node.attributes.getNamedItem('data-length') ? parseFloat(node.attributes.getNamedItem('data-length').value) : 0,
|
|
116
118
|
part: node.attributes.getNamedItem('data-part') ? node.attributes.getNamedItem('data-part').value : undefined,
|
|
@@ -128,15 +130,16 @@ export default function Viewer2D(_ref) {
|
|
|
128
130
|
setToolbar = _ref.setToolbar,
|
|
129
131
|
replaceCabinet = _ref.replaceCabinet,
|
|
130
132
|
onInternalEvent = _ref.onInternalEvent;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
// ✅ React 18: useContext instead of legacy contextTypes
|
|
134
|
+
var ctx = useContext(AppContext);
|
|
135
|
+
var viewer2DActions = ctx.viewer2DActions,
|
|
136
|
+
linesActions = ctx.linesActions,
|
|
137
|
+
holesActions = ctx.holesActions,
|
|
138
|
+
verticesActions = ctx.verticesActions,
|
|
139
|
+
itemsActions = ctx.itemsActions,
|
|
140
|
+
areaActions = ctx.areaActions,
|
|
141
|
+
projectActions = ctx.projectActions,
|
|
142
|
+
catalog = ctx.catalog;
|
|
140
143
|
var _useState = useState(null),
|
|
141
144
|
_useState2 = _slicedToArray(_useState, 2),
|
|
142
145
|
rulerEdit = _useState2[0],
|
|
@@ -146,22 +149,55 @@ export default function Viewer2D(_ref) {
|
|
|
146
149
|
rulerEditID = _useState4[0],
|
|
147
150
|
setRulerEditID = _useState4[1];
|
|
148
151
|
var Viewer = useRef(null);
|
|
152
|
+
var _useState5 = useState(false),
|
|
153
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
154
|
+
viewerReady = _useState6[0],
|
|
155
|
+
setViewerReady = _useState6[1];
|
|
156
|
+
var setViewerRef = function setViewerRef(node) {
|
|
157
|
+
Viewer.current = node;
|
|
158
|
+
if (node && !viewerReady) setViewerReady(true);
|
|
159
|
+
};
|
|
149
160
|
var viewer2D = state.viewer2D,
|
|
150
161
|
mode = state.mode,
|
|
151
162
|
scene = state.scene;
|
|
152
|
-
|
|
153
|
-
// let relatedLines = [];
|
|
154
|
-
var _useState5 = useState([]),
|
|
155
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
156
|
-
relatedLines = _useState6[0],
|
|
157
|
-
setRelatedLines = _useState6[1];
|
|
158
|
-
var _useState7 = useState(false),
|
|
163
|
+
var _useState7 = useState([]),
|
|
159
164
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
relatedLines = _useState8[0],
|
|
166
|
+
setRelatedLines = _useState8[1];
|
|
167
|
+
var _useState9 = useState(false),
|
|
168
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
169
|
+
drawStart = _useState0[0],
|
|
170
|
+
setdrawStart = _useState0[1];
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* ✅ CRITICAL FIX (keeps same behavior):
|
|
174
|
+
* react-svg-pan-zoom does NOT always provide viewerEvent.x/y on mousedown/mouseup.
|
|
175
|
+
* If you treat viewerEvent as {x,y}, you inject NaN into Redux state -> SVG crash.
|
|
176
|
+
*/
|
|
177
|
+
var getXY = function getXY(viewerEvent) {
|
|
178
|
+
var _viewerEvent$original;
|
|
179
|
+
// mousemove usually has viewer coords
|
|
180
|
+
if (Number.isFinite(viewerEvent === null || viewerEvent === void 0 ? void 0 : viewerEvent.x) && Number.isFinite(viewerEvent === null || viewerEvent === void 0 ? void 0 : viewerEvent.y)) {
|
|
181
|
+
return {
|
|
182
|
+
x: viewerEvent.x,
|
|
183
|
+
y: viewerEvent.y
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// fallback for mousedown/mouseup
|
|
188
|
+
var ev = (viewerEvent === null || viewerEvent === void 0 || (_viewerEvent$original = viewerEvent.originalEvent) === null || _viewerEvent$original === void 0 ? void 0 : _viewerEvent$original.nativeEvent) || (viewerEvent === null || viewerEvent === void 0 ? void 0 : viewerEvent.originalEvent);
|
|
189
|
+
if (!ev || !Viewer.current) return null;
|
|
190
|
+
|
|
191
|
+
// most versions expose getSVGPoint
|
|
192
|
+
if (typeof Viewer.current.getSVGPoint === 'function') {
|
|
193
|
+
var pt = Viewer.current.getSVGPoint(ev.clientX, ev.clientY);
|
|
194
|
+
if (Number.isFinite(pt === null || pt === void 0 ? void 0 : pt.x) && Number.isFinite(pt === null || pt === void 0 ? void 0 : pt.y)) return pt;
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
};
|
|
198
|
+
var viewer2DState = state.viewer2D;
|
|
162
199
|
useEffect(function () {
|
|
163
|
-
if (!Viewer.current) return;
|
|
164
|
-
var zoom = viewer2D && !viewer2D.isEmpty() ? viewer2D.get('a') : 1;
|
|
200
|
+
if (!viewerReady || !Viewer.current) return;
|
|
165
201
|
|
|
166
202
|
// move viewer point to center
|
|
167
203
|
var selectedLayer = state.scene.layers.get(state.scene.selectedLayer);
|
|
@@ -181,8 +217,10 @@ export default function Viewer2D(_ref) {
|
|
|
181
217
|
});
|
|
182
218
|
var moveX = topX + (bottomX - topX) / 2;
|
|
183
219
|
var moveY = 2000 - (bottomY + (topY - bottomY) / 2);
|
|
220
|
+
var zoom = viewer2DState && !viewer2DState.isEmpty() ? viewer2DState.get('a') : 1;
|
|
221
|
+
console.log('aici');
|
|
184
222
|
Viewer.current.setPointOnViewerCenter(moveX, moveY, zoom);
|
|
185
|
-
}, []);
|
|
223
|
+
}, [viewerReady, state.scene.selectedLayer]);
|
|
186
224
|
var layerID = scene.selectedLayer;
|
|
187
225
|
var wall_thickness = LINE_THICKNESS / 2;
|
|
188
226
|
var layer = scene.getIn(['layers', layerID]);
|
|
@@ -194,10 +232,6 @@ export default function Viewer2D(_ref) {
|
|
|
194
232
|
y: -y + scene.height
|
|
195
233
|
};
|
|
196
234
|
};
|
|
197
|
-
// let pinBackColor = pinFlag ? "#4488ff" : "black";
|
|
198
|
-
// let topRightImg = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? "/assets/img/svg/topbar/edit_inactive.svg" : "/assets/img/svg/topbar/edit_active.svg";
|
|
199
|
-
// let topBtnAction = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? () => linesActions.selectToolDrawingLine("wall") : () => projectActions.setMode(MODE_IDLE);
|
|
200
|
-
|
|
201
235
|
var prepareSnap = function prepareSnap() {
|
|
202
236
|
var layerID = scene.selectedLayer;
|
|
203
237
|
var layer = scene.layers.get(layerID);
|
|
@@ -257,24 +291,7 @@ export default function Viewer2D(_ref) {
|
|
|
257
291
|
v_a = _GeometryUtils$orderV2[0],
|
|
258
292
|
v_b = _GeometryUtils$orderV2[1];
|
|
259
293
|
var v_b_new = GeometryUtils.extendLine(v_a.x, v_a.y, v_b.x, v_b.y, value.get('length'), 2);
|
|
260
|
-
|
|
261
|
-
// Blocked function that as wall changed, opposite wall should changed together.
|
|
262
|
-
// let layer = scene.getIn(['layers', elementData.layer]);
|
|
263
|
-
// let allLines = layer.lines.toArray()
|
|
264
|
-
// let relatedLine = allLines.filter(line => { return line.vertices.toArray().includes(v_b.id) && line.id != selectedLine.id })[0];
|
|
265
|
-
// let relatedVertexID = relatedLine && (relatedLine.vertices.toArray()[0] == v_b.id ? relatedLine.vertices.toArray()[1] : relatedLine.vertices.toArray()[0]);
|
|
266
|
-
// let v_d = relatedVertexID && layer.getIn(['vertices', relatedVertexID]);
|
|
267
|
-
// let delta = {
|
|
268
|
-
// x : v_b_new.x - v_b.x,
|
|
269
|
-
// y : v_b_new.y - v_b.y
|
|
270
|
-
// };
|
|
271
|
-
// let newPosition = {
|
|
272
|
-
// x : v_d.x + delta.x,
|
|
273
|
-
// y : v_d.y + delta.y
|
|
274
|
-
// }
|
|
275
|
-
|
|
276
294
|
var attributesData = {
|
|
277
|
-
// (v_0 === v_a ? 'vertexTwo' : 'vertexOne') : v_b.merge(v_b_new)),
|
|
278
295
|
lineLength: value
|
|
279
296
|
};
|
|
280
297
|
if (v_0 === v_a) {
|
|
@@ -294,11 +311,6 @@ export default function Viewer2D(_ref) {
|
|
|
294
311
|
layerID: elementData.layer,
|
|
295
312
|
lineID: elementData.id
|
|
296
313
|
});
|
|
297
|
-
|
|
298
|
-
// Blocked function that as wall changed, opposite wall should changed together.
|
|
299
|
-
// verticesActions.beginDraggingVertex(elementData.layer, relatedVertexID, newPosition.x, newPosition.y, state.snapMask);
|
|
300
|
-
// verticesActions.updateDraggingVertex(newPosition.x, newPosition.y, state.snapMask);
|
|
301
|
-
// verticesActions.endDraggingVertex(newPosition.x, newPosition.y, state.snapMask);
|
|
302
314
|
};
|
|
303
315
|
var updateTwoHoleRulerAttribute = function updateTwoHoleRulerAttribute(elementData, value) {
|
|
304
316
|
var elementIds = elementData.id.split(',');
|
|
@@ -364,11 +376,9 @@ export default function Viewer2D(_ref) {
|
|
|
364
376
|
_loop2(j);
|
|
365
377
|
}
|
|
366
378
|
};
|
|
367
|
-
// if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {
|
|
368
379
|
for (var i = 0; i < drawingLine.vertices.length; i++) {
|
|
369
380
|
_loop();
|
|
370
381
|
}
|
|
371
|
-
// }
|
|
372
382
|
};
|
|
373
383
|
var getEndPoint = function getEndPoint(vertices, x, y, mode) {
|
|
374
384
|
var selLineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
|
|
@@ -435,7 +445,6 @@ export default function Viewer2D(_ref) {
|
|
|
435
445
|
vtx = x;
|
|
436
446
|
vty = y;
|
|
437
447
|
} else {
|
|
438
|
-
// the origin point of rotation(snapping)
|
|
439
448
|
var _originVerId = draggingLine.vertices.findIndex(function (vertice) {
|
|
440
449
|
return vertice !== dragVertexId;
|
|
441
450
|
});
|
|
@@ -443,7 +452,7 @@ export default function Viewer2D(_ref) {
|
|
|
443
452
|
if (stepUnit) {
|
|
444
453
|
var _ox = vertices[_originVerId].x;
|
|
445
454
|
var _oy = vertices[_originVerId].y;
|
|
446
|
-
angles.forEach(function (angle
|
|
455
|
+
angles.forEach(function (angle) {
|
|
447
456
|
if (Math.abs(angle) < MIN_ANGLE_DISALLOW_DRAW_WALL || Math.abs(angle) > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
448
457
|
var absVal = Math.abs(angle);
|
|
449
458
|
var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
|
|
@@ -451,9 +460,7 @@ export default function Viewer2D(_ref) {
|
|
|
451
460
|
absVal = 360 - absVal;
|
|
452
461
|
rest = -(MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
|
|
453
462
|
}
|
|
454
|
-
// determine the direction of rotation.
|
|
455
463
|
rest = angle > 0 ? -rest : rest;
|
|
456
|
-
// rotate the current point to last point around the first point of drawing line.
|
|
457
464
|
var res = GeometryUtils.rotatePointAroundPoint(x, y, _ox, _oy, rest);
|
|
458
465
|
vtx = res.x;
|
|
459
466
|
vty = res.y;
|
|
@@ -461,98 +468,18 @@ export default function Viewer2D(_ref) {
|
|
|
461
468
|
});
|
|
462
469
|
}
|
|
463
470
|
}
|
|
464
|
-
|
|
465
|
-
// angle snapping as a value of UNIT_ANGLE
|
|
466
471
|
if (!endDrag.some(function (flag) {
|
|
467
472
|
return flag === false;
|
|
468
473
|
}) && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0 && stepUnit) {
|
|
469
|
-
var
|
|
470
|
-
vtx =
|
|
471
|
-
vty =
|
|
474
|
+
var result = GeometryUtils.snapAngleByUnit(lineAngle, vertices, draggingLine, vtx, vty, dragVertexId);
|
|
475
|
+
vtx = result.x;
|
|
476
|
+
vty = result.y;
|
|
472
477
|
}
|
|
473
|
-
|
|
478
|
+
return {
|
|
474
479
|
isEndDrag: endDrag,
|
|
475
480
|
x: vtx,
|
|
476
481
|
y: vty
|
|
477
482
|
};
|
|
478
|
-
return result;
|
|
479
|
-
};
|
|
480
|
-
var getProperties = function getProperties(item, property) {
|
|
481
|
-
var _item$properties;
|
|
482
|
-
if (!(item !== null && item !== void 0 && (_item$properties = item.properties) !== null && _item$properties !== void 0 && _item$properties.getIn)) return 0;
|
|
483
|
-
var length = item.properties.getIn([property, '_length']);
|
|
484
|
-
var unit = item.properties.getIn([property, '_unit']);
|
|
485
|
-
return length && unit ? convert(length).from(unit).to('cm') : 0;
|
|
486
|
-
};
|
|
487
|
-
var point = function point(x, y) {
|
|
488
|
-
return {
|
|
489
|
-
x: x,
|
|
490
|
-
y: y
|
|
491
|
-
};
|
|
492
|
-
};
|
|
493
|
-
var getDistant = function getDistant(x, y, rotRad, curItemInfo, allRect) {
|
|
494
|
-
var center_h = 3 * height / 8;
|
|
495
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
496
|
-
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
497
|
-
var pointArray = [];
|
|
498
|
-
curItemInfo.rectCenterPoint.forEach(function (centerpoint) {
|
|
499
|
-
if (!Array.isArray(centerpoint) || centerpoint.length < 2) return;
|
|
500
|
-
var _centerpoint = _slicedToArray(centerpoint, 2),
|
|
501
|
-
pt = _centerpoint[0],
|
|
502
|
-
angle = _centerpoint[1];
|
|
503
|
-
if (!pt) return;
|
|
504
|
-
|
|
505
|
-
// line through centerpoint and reference center
|
|
506
|
-
var rectLine = angle === 180 || angle === 0 ? GeometryUtils.linePassingThroughTwoPoints(pt.x, pt.y, center_x1, center_y1) : GeometryUtils.linePassingThroughTwoPoints(pt.x, pt.y, x, y);
|
|
507
|
-
if (!rectLine) return;
|
|
508
|
-
var minDist;
|
|
509
|
-
allRect.forEach(function (linerect) {
|
|
510
|
-
if (!(linerect !== null && linerect !== void 0 && linerect.rect) || linerect.rect.length < 4) return;
|
|
511
|
-
var p0 = GeometryUtils.clone_point(linerect.rect[2]);
|
|
512
|
-
var p1 = GeometryUtils.clone_point(linerect.rect[3]);
|
|
513
|
-
if (!p0 || !p1 || p0.x === p1.x && p0.y === p1.y) return;
|
|
514
|
-
var lineFn = GeometryUtils.linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
515
|
-
if (!lineFn) return;
|
|
516
|
-
var ip = GeometryUtils.twoLinesIntersection(lineFn.a, lineFn.b, lineFn.c, rectLine.a, rectLine.b, rectLine.c);
|
|
517
|
-
if (!ip) return;
|
|
518
|
-
|
|
519
|
-
// intersection must lie within line segment
|
|
520
|
-
var segLen = GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y);
|
|
521
|
-
if (segLen <= GeometryUtils.pointsDistance(p0.x, p0.y, ip.x, ip.y) || segLen <= GeometryUtils.pointsDistance(p1.x, p1.y, ip.x, ip.y)) return;
|
|
522
|
-
|
|
523
|
-
// ensure intersection is farther than pt→center
|
|
524
|
-
var distToCenter = GeometryUtils.pointsDistance(ip.x, ip.y, x, y);
|
|
525
|
-
var baseDist = GeometryUtils.pointsDistance(pt.x, pt.y, ip.x, ip.y);
|
|
526
|
-
if (distToCenter <= baseDist) return;
|
|
527
|
-
var candidate = baseDist;
|
|
528
|
-
minDist = minDist !== undefined ? Math.min(minDist, candidate) : candidate;
|
|
529
|
-
});
|
|
530
|
-
pointArray.push([minDist !== null && minDist !== void 0 ? minDist : 0, angle]);
|
|
531
|
-
});
|
|
532
|
-
return pointArray;
|
|
533
|
-
};
|
|
534
|
-
var getCalcRectFromItem = function getCalcRectFromItem(item) {
|
|
535
|
-
if (!(item !== null && item !== void 0 && item.pos) || !(item !== null && item !== void 0 && item.size)) return {
|
|
536
|
-
rectCenterPoint: []
|
|
537
|
-
};
|
|
538
|
-
var _item$pos = item.pos,
|
|
539
|
-
x = _item$pos.x,
|
|
540
|
-
y = _item$pos.y;
|
|
541
|
-
var w = item.size.width / 2;
|
|
542
|
-
var h = item.size.height / 2;
|
|
543
|
-
var rotRad = item.rotRad;
|
|
544
|
-
var mh = 3 * h / 4;
|
|
545
|
-
var mx = x - w * Math.cos(rotRad) - mh * Math.sin(rotRad);
|
|
546
|
-
var my = y - w * Math.sin(rotRad) + mh * Math.cos(rotRad);
|
|
547
|
-
var m2x = x + w * Math.cos(rotRad) - mh * Math.sin(rotRad);
|
|
548
|
-
var m2y = y + w * Math.sin(rotRad) + mh * Math.cos(rotRad);
|
|
549
|
-
var m3x = x - h * Math.sin(rotRad);
|
|
550
|
-
var m3y = y + h * Math.cos(rotRad);
|
|
551
|
-
var m1x = x + h * Math.sin(rotRad);
|
|
552
|
-
var m1y = y - h * Math.cos(rotRad);
|
|
553
|
-
return {
|
|
554
|
-
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
555
|
-
};
|
|
556
483
|
};
|
|
557
484
|
var getConnectedLines = function getConnectedLines() {
|
|
558
485
|
var _state$getIn;
|
|
@@ -560,20 +487,22 @@ export default function Viewer2D(_ref) {
|
|
|
560
487
|
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
561
488
|
var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
|
|
562
489
|
var drawingLine = (_state$getIn = state.getIn(['scene', 'layers', layerID, 'lines', lineID])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.toJS();
|
|
563
|
-
// get the lines that have same points with drawing line.
|
|
564
490
|
if (!isEmpty(drawingLine)) {
|
|
565
491
|
var tlines = [];
|
|
566
492
|
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
567
493
|
setRelatedLines(tlines);
|
|
568
494
|
}
|
|
569
495
|
};
|
|
570
|
-
var onMouseMove = function onMouseMove(viewerEvent) {
|
|
571
|
-
//workaround that allow imageful component to work
|
|
572
496
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
497
|
+
// =========================
|
|
498
|
+
// ✅ Mouse handlers (only x/y extraction changed; logic preserved)
|
|
499
|
+
// =========================
|
|
500
|
+
|
|
501
|
+
var onMouseMove = function onMouseMove(viewerEvent) {
|
|
502
|
+
var _viewerEvent$original2, _viewerEvent$original3;
|
|
503
|
+
var raw = getXY(viewerEvent);
|
|
504
|
+
if (!raw) return;
|
|
505
|
+
var _mapCursorPosition = mapCursorPosition(raw),
|
|
577
506
|
x = _mapCursorPosition.x,
|
|
578
507
|
y = _mapCursorPosition.y;
|
|
579
508
|
projectActions.updateMouseCoord({
|
|
@@ -589,54 +518,127 @@ export default function Viewer2D(_ref) {
|
|
|
589
518
|
} else {
|
|
590
519
|
switch (mode) {
|
|
591
520
|
case constants.MODE_DRAWING_LINE:
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
521
|
+
{
|
|
522
|
+
var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
|
|
523
|
+
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
524
|
+
var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
|
|
525
|
+
var tlines = [];
|
|
526
|
+
if (drawStart || state.getIn(['scene', 'setLineAttributes'])) {
|
|
527
|
+
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
528
|
+
setdrawStart(false);
|
|
529
|
+
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
530
|
+
setRelatedLines(tlines);
|
|
531
|
+
linesActions.updateDrawingLine(x, y, tlines, state.snapMask);
|
|
532
|
+
} else {
|
|
533
|
+
linesActions.updateDrawingLine(x, y, relatedLines, state.snapMask);
|
|
534
|
+
}
|
|
535
|
+
break;
|
|
606
536
|
}
|
|
607
|
-
|
|
608
|
-
// Blocked 90 degree snap.
|
|
609
|
-
// let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];
|
|
610
|
-
// let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);
|
|
611
|
-
// let dx = Math.abs(x - prevVertex.x);
|
|
612
|
-
// let dy = Math.abs(y - prevVertex.y);
|
|
613
|
-
// if (dx > dy) y = prevVertex.y
|
|
614
|
-
// else x = prevVertex.x;
|
|
615
|
-
break;
|
|
616
537
|
case constants.MODE_DRAWING_HOLE:
|
|
617
538
|
holesActions.updateDrawingHole(layerID, x, y);
|
|
618
539
|
break;
|
|
619
540
|
case constants.MODE_DRAWING_ITEM:
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
item.
|
|
625
|
-
|
|
626
|
-
|
|
541
|
+
{
|
|
542
|
+
var _layer = scene.layers.get(layerID);
|
|
543
|
+
var flag = false;
|
|
544
|
+
_layer.items.some(function (item) {
|
|
545
|
+
if (item.selected) {
|
|
546
|
+
item.counterTop.uri = _layer.counterTop.uri;
|
|
547
|
+
current_sel_obj_id = item.id;
|
|
548
|
+
flag = true;
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
if (current_sel_obj_id === null || !flag) {
|
|
552
|
+
itemsActions.updateDrawingItem(layerID, x, y);
|
|
553
|
+
endPoint.x = x;
|
|
554
|
+
endPoint.y = y;
|
|
555
|
+
} else {
|
|
556
|
+
prepareSnap();
|
|
557
|
+
var _GeometryUtils$calcSn = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
558
|
+
nx = _GeometryUtils$calcSn.nx,
|
|
559
|
+
ny = _GeometryUtils$calcSn.ny,
|
|
560
|
+
rot = _GeometryUtils$calcSn.rot,
|
|
561
|
+
rotRad = _GeometryUtils$calcSn.rotRad;
|
|
562
|
+
var val = {
|
|
563
|
+
pos: {
|
|
564
|
+
x: x,
|
|
565
|
+
y: y
|
|
566
|
+
},
|
|
567
|
+
rotRad: rotRad,
|
|
568
|
+
size: allItemRect.cur && allItemRect.cur.size,
|
|
569
|
+
layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
|
|
570
|
+
is_corner: allItemRect.cur && allItemRect.cur.is_corner
|
|
571
|
+
};
|
|
572
|
+
var _GeometryUtils$getAll = GeometryUtils.getAllHoleRect(scene, val),
|
|
573
|
+
isSect = _GeometryUtils$getAll.isSect,
|
|
574
|
+
snap = _GeometryUtils$getAll.snap;
|
|
575
|
+
if (!isEmpty(snap) && isSect) {
|
|
576
|
+
if (snap.length == 1) val.pos = {
|
|
577
|
+
x: snap[0].x,
|
|
578
|
+
y: snap[0].y
|
|
579
|
+
};else {
|
|
580
|
+
if ((snap[0].x - x) * (snap[0].x - x) + (snap[0].y - y) * (snap[0].y - y) < (snap[1].x - x) * (snap[1].x - x) + (snap[1].y - y) * (snap[1].y - y)) val.pos = {
|
|
581
|
+
x: snap[0].x,
|
|
582
|
+
y: snap[0].y
|
|
583
|
+
};else val.pos = {
|
|
584
|
+
x: snap[1].x,
|
|
585
|
+
y: snap[1].y
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
var interSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
589
|
+
if (interSect) {
|
|
590
|
+
nx = val.pos.x;
|
|
591
|
+
ny = val.pos.y;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
val.pos = {
|
|
595
|
+
x: nx,
|
|
596
|
+
y: ny
|
|
597
|
+
};
|
|
598
|
+
var isrectSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
599
|
+
if (isrectSect && isSect) {
|
|
600
|
+
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
601
|
+
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
602
|
+
endPoint.x = nx;
|
|
603
|
+
endPoint.y = ny;
|
|
604
|
+
}
|
|
605
|
+
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('cabinet')) {
|
|
606
|
+
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
607
|
+
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
608
|
+
endPoint.x = nx;
|
|
609
|
+
endPoint.y = ny;
|
|
610
|
+
}
|
|
611
|
+
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
|
|
612
|
+
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
613
|
+
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
614
|
+
endPoint.x = nx;
|
|
615
|
+
endPoint.y = ny;
|
|
616
|
+
}
|
|
627
617
|
}
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
618
|
+
break;
|
|
619
|
+
}
|
|
620
|
+
case constants.MODE_DRAGGING_HOLE:
|
|
621
|
+
holesActions.updateDraggingHole(x, y);
|
|
622
|
+
break;
|
|
623
|
+
case constants.MODE_DRAGGING_LINE:
|
|
624
|
+
linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);
|
|
625
|
+
break;
|
|
626
|
+
case constants.MODE_DRAGGING_VERTEX:
|
|
627
|
+
{
|
|
628
|
+
var _vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
629
|
+
getConnectedLines();
|
|
630
|
+
var result = getEndPoint(_vertices, x, y, 'DRAGGING_VERTEX');
|
|
631
|
+
verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
|
|
632
|
+
break;
|
|
633
|
+
}
|
|
634
|
+
case constants.MODE_DRAGGING_ITEM:
|
|
635
|
+
{
|
|
634
636
|
prepareSnap();
|
|
635
|
-
var _GeometryUtils$
|
|
636
|
-
nx = _GeometryUtils$
|
|
637
|
-
ny = _GeometryUtils$
|
|
638
|
-
rot = _GeometryUtils$
|
|
639
|
-
rotRad = _GeometryUtils$
|
|
637
|
+
var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
638
|
+
nx = _GeometryUtils$calcSn2.nx,
|
|
639
|
+
ny = _GeometryUtils$calcSn2.ny,
|
|
640
|
+
rot = _GeometryUtils$calcSn2.rot,
|
|
641
|
+
rotRad = _GeometryUtils$calcSn2.rotRad;
|
|
640
642
|
var _val = {
|
|
641
643
|
pos: {
|
|
642
644
|
x: x,
|
|
@@ -647,14 +649,14 @@ export default function Viewer2D(_ref) {
|
|
|
647
649
|
layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
|
|
648
650
|
is_corner: allItemRect.cur && allItemRect.cur.is_corner
|
|
649
651
|
};
|
|
650
|
-
var _GeometryUtils$
|
|
651
|
-
_isSect = _GeometryUtils$
|
|
652
|
-
_snap = _GeometryUtils$
|
|
652
|
+
var _GeometryUtils$getAll2 = GeometryUtils.getAllHoleRect(scene, _val),
|
|
653
|
+
_isSect = _GeometryUtils$getAll2.isSect,
|
|
654
|
+
_snap = _GeometryUtils$getAll2.snap;
|
|
653
655
|
if (!isEmpty(_snap) && _isSect) {
|
|
654
656
|
if (_snap.length == 1) _val.pos = {
|
|
655
657
|
x: _snap[0].x,
|
|
656
658
|
y: _snap[0].y
|
|
657
|
-
};else {
|
|
659
|
+
};else if (_snap.length == 2) {
|
|
658
660
|
if ((_snap[0].x - x) * (_snap[0].x - x) + (_snap[0].y - y) * (_snap[0].y - y) < (_snap[1].x - x) * (_snap[1].x - x) + (_snap[1].y - y) * (_snap[1].y - y)) _val.pos = {
|
|
659
661
|
x: _snap[0].x,
|
|
660
662
|
y: _snap[0].y
|
|
@@ -663,8 +665,8 @@ export default function Viewer2D(_ref) {
|
|
|
663
665
|
y: _snap[1].y
|
|
664
666
|
};
|
|
665
667
|
}
|
|
666
|
-
var
|
|
667
|
-
if (
|
|
668
|
+
var _interSect = GeometryUtils.validInterSect(allItemRect.others, _val);
|
|
669
|
+
if (_interSect) {
|
|
668
670
|
nx = _val.pos.x;
|
|
669
671
|
ny = _val.pos.y;
|
|
670
672
|
}
|
|
@@ -677,106 +679,33 @@ export default function Viewer2D(_ref) {
|
|
|
677
679
|
if (_isrectSect && _isSect) {
|
|
678
680
|
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
679
681
|
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
680
|
-
endPoint.x = nx;
|
|
681
|
-
endPoint.y = ny;
|
|
682
682
|
}
|
|
683
|
-
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('
|
|
683
|
+
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cabinet')) {
|
|
684
684
|
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
685
685
|
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
686
|
-
endPoint.x = nx;
|
|
687
|
-
endPoint.y = ny;
|
|
688
686
|
}
|
|
689
687
|
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
|
|
690
688
|
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
691
689
|
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
692
|
-
endPoint.x = nx;
|
|
693
|
-
endPoint.y = ny;
|
|
694
690
|
}
|
|
691
|
+
break;
|
|
695
692
|
}
|
|
696
|
-
break;
|
|
697
|
-
case constants.MODE_DRAGGING_HOLE:
|
|
698
|
-
holesActions.updateDraggingHole(x, y);
|
|
699
|
-
break;
|
|
700
|
-
case constants.MODE_DRAGGING_LINE:
|
|
701
|
-
linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);
|
|
702
|
-
break;
|
|
703
|
-
case constants.MODE_DRAGGING_VERTEX:
|
|
704
|
-
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
705
|
-
getConnectedLines();
|
|
706
|
-
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
707
|
-
verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
|
|
708
|
-
break;
|
|
709
|
-
case constants.MODE_DRAGGING_ITEM:
|
|
710
|
-
prepareSnap();
|
|
711
|
-
var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
712
|
-
nx = _GeometryUtils$calcSn2.nx,
|
|
713
|
-
ny = _GeometryUtils$calcSn2.ny,
|
|
714
|
-
rot = _GeometryUtils$calcSn2.rot,
|
|
715
|
-
rotRad = _GeometryUtils$calcSn2.rotRad;
|
|
716
|
-
var val = {
|
|
717
|
-
pos: {
|
|
718
|
-
x: x,
|
|
719
|
-
y: y
|
|
720
|
-
},
|
|
721
|
-
rotRad: rotRad,
|
|
722
|
-
size: allItemRect.cur && allItemRect.cur.size,
|
|
723
|
-
layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
|
|
724
|
-
is_corner: allItemRect.cur && allItemRect.cur.is_corner
|
|
725
|
-
};
|
|
726
|
-
var _GeometryUtils$getAll2 = GeometryUtils.getAllHoleRect(scene, val),
|
|
727
|
-
isSect = _GeometryUtils$getAll2.isSect,
|
|
728
|
-
snap = _GeometryUtils$getAll2.snap;
|
|
729
|
-
if (!isEmpty(snap) && isSect) {
|
|
730
|
-
if (snap.length == 1) val.pos = {
|
|
731
|
-
x: snap[0].x,
|
|
732
|
-
y: snap[0].y
|
|
733
|
-
};else if (snap.length == 2) {
|
|
734
|
-
if ((snap[0].x - x) * (snap[0].x - x) + (snap[0].y - y) * (snap[0].y - y) < (snap[1].x - x) * (snap[1].x - x) + (snap[1].y - y) * (snap[1].y - y)) val.pos = {
|
|
735
|
-
x: snap[0].x,
|
|
736
|
-
y: snap[0].y
|
|
737
|
-
};else val.pos = {
|
|
738
|
-
x: snap[1].x,
|
|
739
|
-
y: snap[1].y
|
|
740
|
-
};
|
|
741
|
-
}
|
|
742
|
-
var _interSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
743
|
-
if (_interSect) {
|
|
744
|
-
nx = val.pos.x;
|
|
745
|
-
ny = val.pos.y;
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
val.pos = {
|
|
749
|
-
x: nx,
|
|
750
|
-
y: ny
|
|
751
|
-
};
|
|
752
|
-
var isrectSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
753
|
-
if (isrectSect && isSect) {
|
|
754
|
-
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
755
|
-
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
756
|
-
}
|
|
757
|
-
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cabinet')) {
|
|
758
|
-
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
759
|
-
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
760
|
-
}
|
|
761
|
-
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
|
|
762
|
-
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
763
|
-
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
764
|
-
}
|
|
765
|
-
break;
|
|
766
693
|
case constants.MODE_ROTATING_ITEM:
|
|
767
694
|
itemsActions.updateRotatingItem(x, y);
|
|
768
695
|
break;
|
|
696
|
+
default:
|
|
697
|
+
break;
|
|
769
698
|
}
|
|
770
699
|
}
|
|
771
|
-
viewerEvent.originalEvent.stopPropagation();
|
|
700
|
+
viewerEvent === null || viewerEvent === void 0 || (_viewerEvent$original2 = viewerEvent.originalEvent) === null || _viewerEvent$original2 === void 0 || (_viewerEvent$original3 = _viewerEvent$original2.stopPropagation) === null || _viewerEvent$original3 === void 0 || _viewerEvent$original3.call(_viewerEvent$original2);
|
|
772
701
|
};
|
|
773
702
|
var onMouseDown = function onMouseDown(viewerEvent) {
|
|
774
703
|
var event = viewerEvent.originalEvent;
|
|
775
|
-
|
|
776
|
-
//
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
var _mapCursorPosition2 = mapCursorPosition(
|
|
704
|
+
|
|
705
|
+
// ✅ fixed: do not treat viewerEvent as {x,y}
|
|
706
|
+
var raw = getXY(viewerEvent);
|
|
707
|
+
if (!raw) return;
|
|
708
|
+
var _mapCursorPosition2 = mapCursorPosition(raw),
|
|
780
709
|
x = _mapCursorPosition2.x,
|
|
781
710
|
y = _mapCursorPosition2.y;
|
|
782
711
|
var layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
|
|
@@ -810,12 +739,10 @@ export default function Viewer2D(_ref) {
|
|
|
810
739
|
setToolbar('');
|
|
811
740
|
current_sel_obj_id = elementData.id;
|
|
812
741
|
if (elementData.part === 'rotation-anchor') itemsActions.beginRotatingItem(elementData.layer, elementData.id, x, y);else if (elementData.part === 'remove') break;else if (elementData.part === 'duplicate') break;else if (elementData.part === 'warning_edit') break;else {
|
|
813
|
-
// closes the setting dialog
|
|
814
742
|
if (document.getElementById('setting_dialog')) {
|
|
815
743
|
document.getElementById('setting_dialog').style.display = 'none';
|
|
816
744
|
}
|
|
817
745
|
itemsActions.selectItem(elementData.layer, elementData.id);
|
|
818
|
-
// projectActions.setMode(constants.MODE_DRAGGING_ITEM);
|
|
819
746
|
itemsActions.beginDraggingItem(elementData.layer, elementData.id, x, y);
|
|
820
747
|
replaceCabinet(false);
|
|
821
748
|
}
|
|
@@ -835,9 +762,15 @@ export default function Viewer2D(_ref) {
|
|
|
835
762
|
event.stopPropagation();
|
|
836
763
|
};
|
|
837
764
|
var onMouseUp = function onMouseUp(viewerEvent) {
|
|
838
|
-
//set move all flag false
|
|
839
765
|
sFlag = false;
|
|
840
766
|
var event = viewerEvent.originalEvent;
|
|
767
|
+
|
|
768
|
+
// ✅ fixed: do not treat viewerEvent as {x,y}
|
|
769
|
+
var raw = getXY(viewerEvent);
|
|
770
|
+
if (!raw) return;
|
|
771
|
+
var _mapCursorPosition3 = mapCursorPosition(raw),
|
|
772
|
+
x = _mapCursorPosition3.x,
|
|
773
|
+
y = _mapCursorPosition3.y;
|
|
841
774
|
var parent = document.querySelector('#kitchen-simulator-container');
|
|
842
775
|
var targetRect = event.target.getBoundingClientRect();
|
|
843
776
|
var left = targetRect.left;
|
|
@@ -858,13 +791,6 @@ export default function Viewer2D(_ref) {
|
|
|
858
791
|
}
|
|
859
792
|
}
|
|
860
793
|
setRulerEdit(null);
|
|
861
|
-
// let evt = new Event('mouseup-planner-event');
|
|
862
|
-
// evt.viewerEvent = viewerEvent;
|
|
863
|
-
// document.dispatchEvent(evt);
|
|
864
|
-
|
|
865
|
-
var _mapCursorPosition3 = mapCursorPosition(viewerEvent),
|
|
866
|
-
x = _mapCursorPosition3.x,
|
|
867
|
-
y = _mapCursorPosition3.y;
|
|
868
794
|
var draggingDistance = Math.sqrt((x - mouseDownPoint.x) * (x - mouseDownPoint.x) + (y - mouseDownPoint.y) * (y - mouseDownPoint.y));
|
|
869
795
|
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
870
796
|
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
@@ -901,8 +827,6 @@ export default function Viewer2D(_ref) {
|
|
|
901
827
|
elementPrototype = 'items';
|
|
902
828
|
internalType = INTERNAL_EVENT_ROTATE_ELEMENT;
|
|
903
829
|
break;
|
|
904
|
-
|
|
905
|
-
// item selection be came from dragging mode
|
|
906
830
|
case constants.MODE_DRAGGING_ITEM:
|
|
907
831
|
elementPrototype = 'items';
|
|
908
832
|
internalType = INTERNAL_EVENT_SELECT_ELEMENT;
|
|
@@ -917,8 +841,12 @@ export default function Viewer2D(_ref) {
|
|
|
917
841
|
internalType = INTERNAL_EVENT_SELECT_ELEMENT;
|
|
918
842
|
}
|
|
919
843
|
break;
|
|
844
|
+
default:
|
|
845
|
+
break;
|
|
920
846
|
}
|
|
921
847
|
break;
|
|
848
|
+
default:
|
|
849
|
+
break;
|
|
922
850
|
}
|
|
923
851
|
switch (mode) {
|
|
924
852
|
case constants.MODE_IDLE:
|
|
@@ -937,7 +865,6 @@ export default function Viewer2D(_ref) {
|
|
|
937
865
|
projectActions.remove();
|
|
938
866
|
break;
|
|
939
867
|
} else if (elementData.part === 'elevation') {
|
|
940
|
-
// handle action when click elevation about selected line
|
|
941
868
|
var _mode = MODE_ELEVATION_VIEW;
|
|
942
869
|
projectActions.setMode(_mode);
|
|
943
870
|
internalType = constants.INTERNAL_EVENT_TOGGLE_TO_ELEVATION;
|
|
@@ -959,13 +886,12 @@ export default function Viewer2D(_ref) {
|
|
|
959
886
|
case 'items':
|
|
960
887
|
if (elementData.part === 'duplicate') {
|
|
961
888
|
var currentObject = state.getIn(['scene', 'layers', layerID, 'items', elementData.id]);
|
|
962
|
-
if (!isWarningItem(currentObject)) itemsActions.duplicateSelected(currentObject, onInternalEvent);
|
|
889
|
+
if (!isWarningItem(currentObject)) itemsActions.duplicateSelected(currentObject, onInternalEvent);
|
|
963
890
|
break;
|
|
964
891
|
} else if (elementData.part === 'remove') {
|
|
965
892
|
projectActions.remove();
|
|
966
893
|
break;
|
|
967
894
|
} else if (elementData.part === 'warning_edit') {
|
|
968
|
-
// closes the setting dialog
|
|
969
895
|
if (document.getElementById('setting_dialog')) {
|
|
970
896
|
document.getElementById('setting_dialog').style.display = 'none';
|
|
971
897
|
}
|
|
@@ -978,234 +904,250 @@ export default function Viewer2D(_ref) {
|
|
|
978
904
|
break;
|
|
979
905
|
}
|
|
980
906
|
case 'rulerDist':
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
907
|
+
{
|
|
908
|
+
var _length1 = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
|
|
909
|
+
var distanceText1 = "".concat(formatNumber(_length1, DECIMAL_PLACES_2));
|
|
910
|
+
var numberInput1 = /*#__PURE__*/React.createElement("div", {
|
|
911
|
+
id: "ruler_numberInput",
|
|
912
|
+
style: {
|
|
913
|
+
position: 'absolute',
|
|
914
|
+
left: left,
|
|
915
|
+
top: top,
|
|
916
|
+
zIndex: 1000
|
|
917
|
+
}
|
|
918
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
919
|
+
style: {
|
|
920
|
+
textAlign: 'center',
|
|
921
|
+
paddingRight: 10,
|
|
922
|
+
fontSize: '16px',
|
|
923
|
+
lineHeight: '22px',
|
|
924
|
+
fontWeight: 600
|
|
925
|
+
},
|
|
926
|
+
value: distanceText1,
|
|
927
|
+
onChange: function onChange(event) {
|
|
928
|
+
var value = new Map({
|
|
929
|
+
length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
|
|
930
|
+
_length: event.target.value,
|
|
931
|
+
_unit: scene.rulerUnit
|
|
932
|
+
});
|
|
933
|
+
updateRulerDistAttribute(elementData, value);
|
|
934
|
+
},
|
|
935
|
+
precision: 2
|
|
936
|
+
}));
|
|
937
|
+
setRulerEdit(numberInput1);
|
|
938
|
+
projectActions.unselectAll();
|
|
939
|
+
break;
|
|
940
|
+
}
|
|
1013
941
|
case 'ruler':
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
942
|
+
{
|
|
943
|
+
var _length = convert(elementData.length).from(scene.unit).to(selectedLayer.unit);
|
|
944
|
+
var numberInput = /*#__PURE__*/React.createElement("div", {
|
|
945
|
+
id: "ruler_numberInput",
|
|
946
|
+
style: {
|
|
947
|
+
position: 'absolute',
|
|
948
|
+
left: left,
|
|
949
|
+
top: top,
|
|
950
|
+
zIndex: 1000
|
|
951
|
+
}
|
|
952
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
953
|
+
style: {
|
|
954
|
+
textAlign: 'center',
|
|
955
|
+
paddingRight: 10,
|
|
956
|
+
fontSize: '16px',
|
|
957
|
+
lineHeight: '22px',
|
|
958
|
+
fontWeight: 600
|
|
959
|
+
},
|
|
960
|
+
value: formatNumber(_length, DECIMAL_PLACES_2),
|
|
961
|
+
onChange: function onChange(event) {
|
|
962
|
+
var value = new Map({
|
|
963
|
+
length: convert(event.target.value).from(selectedLayer.unit).to(scene.unit),
|
|
964
|
+
_length: event.target.value,
|
|
965
|
+
_unit: selectedLayer.unit
|
|
966
|
+
});
|
|
967
|
+
updateRulerAttribute(elementData, value);
|
|
968
|
+
},
|
|
969
|
+
precision: 2
|
|
970
|
+
}));
|
|
971
|
+
setRulerEdit(numberInput);
|
|
972
|
+
projectActions.unselectAll();
|
|
973
|
+
break;
|
|
974
|
+
}
|
|
1045
975
|
case 'twoHoleRuler':
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
976
|
+
{
|
|
977
|
+
var _lengthTwoHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
|
|
978
|
+
var distanceTextTwoHoleRuler = "".concat(formatNumber(_lengthTwoHoleRuler, DECIMAL_PLACES_2));
|
|
979
|
+
var numberInputTwoHoleRuler = /*#__PURE__*/React.createElement("div", {
|
|
980
|
+
id: "ruler_numberInput",
|
|
981
|
+
style: {
|
|
982
|
+
position: 'absolute',
|
|
983
|
+
left: left,
|
|
984
|
+
top: top,
|
|
985
|
+
zIndex: 1000
|
|
986
|
+
}
|
|
987
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
988
|
+
style: {
|
|
989
|
+
textAlign: 'center',
|
|
990
|
+
padding: 'auto',
|
|
991
|
+
fontSize: '16px',
|
|
992
|
+
lineHeight: '22px',
|
|
993
|
+
fontWeight: 600
|
|
994
|
+
},
|
|
995
|
+
value: distanceTextTwoHoleRuler,
|
|
996
|
+
onChange: function onChange(event) {
|
|
997
|
+
var value = new Map({
|
|
998
|
+
length: convert(event.target.value / 2).from(scene.rulerUnit).to(scene.unit),
|
|
999
|
+
_length: event.target.value / 2,
|
|
1000
|
+
_unit: scene.rulerUnit
|
|
1001
|
+
});
|
|
1002
|
+
updateTwoHoleRulerAttribute(elementData, value);
|
|
1003
|
+
},
|
|
1004
|
+
precision: 2
|
|
1005
|
+
}));
|
|
1006
|
+
setRulerEdit(numberInputTwoHoleRuler);
|
|
1007
|
+
projectActions.unselectAll();
|
|
1008
|
+
break;
|
|
1009
|
+
}
|
|
1078
1010
|
case 'leftHoleRuler':
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1011
|
+
{
|
|
1012
|
+
var _lengthLeftHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
|
|
1013
|
+
var distanceTextLeftHoleRuler = "".concat(_lengthLeftHoleRuler.toFixed(2));
|
|
1014
|
+
var numberInputLeftHoleRuler = /*#__PURE__*/React.createElement("div", {
|
|
1015
|
+
id: "ruler_numberInput",
|
|
1016
|
+
style: {
|
|
1017
|
+
position: 'absolute',
|
|
1018
|
+
left: left,
|
|
1019
|
+
top: top,
|
|
1020
|
+
zIndex: 1000
|
|
1021
|
+
}
|
|
1022
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
1023
|
+
style: {
|
|
1024
|
+
textAlign: 'center',
|
|
1025
|
+
paddingRight: 10,
|
|
1026
|
+
fontSize: '16px',
|
|
1027
|
+
lineHeight: '22px',
|
|
1028
|
+
fontWeight: 600
|
|
1029
|
+
},
|
|
1030
|
+
value: distanceTextLeftHoleRuler,
|
|
1031
|
+
onChange: function onChange(event) {
|
|
1032
|
+
var value = new Map({
|
|
1033
|
+
length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
|
|
1034
|
+
_length: event.target.value,
|
|
1035
|
+
_unit: scene.rulerUnit
|
|
1036
|
+
});
|
|
1037
|
+
updateLeftHoleRulerAttribute(elementData, value);
|
|
1038
|
+
},
|
|
1039
|
+
precision: 2
|
|
1040
|
+
}));
|
|
1041
|
+
setRulerEdit(numberInputLeftHoleRuler);
|
|
1042
|
+
projectActions.unselectAll();
|
|
1043
|
+
break;
|
|
1044
|
+
}
|
|
1111
1045
|
case 'rulerHole':
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1046
|
+
{
|
|
1047
|
+
var _lengthRulerHole = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
|
|
1048
|
+
var distanceTextRulerHole = "".concat(formatNumber(_lengthRulerHole, DECIMAL_PLACES_2));
|
|
1049
|
+
var numberInputRulerHole = /*#__PURE__*/React.createElement("div", {
|
|
1050
|
+
id: "ruler_numberInput",
|
|
1051
|
+
style: {
|
|
1052
|
+
position: 'absolute',
|
|
1053
|
+
left: left,
|
|
1054
|
+
top: top,
|
|
1055
|
+
zIndex: 1000
|
|
1056
|
+
}
|
|
1057
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
1058
|
+
style: {
|
|
1059
|
+
textAlign: 'center',
|
|
1060
|
+
paddingRight: 10,
|
|
1061
|
+
fontSize: '16px',
|
|
1062
|
+
lineHeight: '22px',
|
|
1063
|
+
fontWeight: 600
|
|
1064
|
+
},
|
|
1065
|
+
value: distanceTextRulerHole,
|
|
1066
|
+
onChange: function onChange(event) {
|
|
1067
|
+
var value = new Map({
|
|
1068
|
+
length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
|
|
1069
|
+
_length: event.target.value,
|
|
1070
|
+
_unit: scene.rulerUnit
|
|
1071
|
+
});
|
|
1072
|
+
updateHoleRulerAttribute(elementData, value);
|
|
1073
|
+
},
|
|
1074
|
+
precision: 2
|
|
1075
|
+
}));
|
|
1076
|
+
setRulerEdit(numberInputRulerHole);
|
|
1077
|
+
projectActions.unselectAll();
|
|
1078
|
+
break;
|
|
1079
|
+
}
|
|
1144
1080
|
case 'rightHoleRuler':
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1081
|
+
{
|
|
1082
|
+
var _lengthRightHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
|
|
1083
|
+
var distanceTextRightHoleRuler = "".concat(_lengthRightHoleRuler.toFixed(2));
|
|
1084
|
+
var numberInputRightHoleRuler = /*#__PURE__*/React.createElement("div", {
|
|
1085
|
+
id: "ruler_numberInput",
|
|
1086
|
+
style: {
|
|
1087
|
+
position: 'absolute',
|
|
1088
|
+
left: left,
|
|
1089
|
+
top: top,
|
|
1090
|
+
zIndex: 1000
|
|
1091
|
+
}
|
|
1092
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
1093
|
+
style: {
|
|
1094
|
+
textAlign: 'center',
|
|
1095
|
+
paddingRight: 10,
|
|
1096
|
+
fontSize: '16px',
|
|
1097
|
+
lineHeight: '22px',
|
|
1098
|
+
fontWeight: 600
|
|
1099
|
+
},
|
|
1100
|
+
value: distanceTextRightHoleRuler,
|
|
1101
|
+
onChange: function onChange(event) {
|
|
1102
|
+
var value = new Map({
|
|
1103
|
+
length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
|
|
1104
|
+
_length: event.target.value,
|
|
1105
|
+
_unit: scene.rulerUnit
|
|
1106
|
+
});
|
|
1107
|
+
updateRightHoleRulerAttribute(elementData, value);
|
|
1108
|
+
},
|
|
1109
|
+
precision: 2
|
|
1110
|
+
}));
|
|
1111
|
+
setRulerEdit(numberInputRightHoleRuler);
|
|
1112
|
+
projectActions.unselectAll();
|
|
1113
|
+
break;
|
|
1114
|
+
}
|
|
1177
1115
|
case 'angleChange':
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1116
|
+
{
|
|
1117
|
+
var _length2 = elementData.length;
|
|
1118
|
+
var numberInput2 = /*#__PURE__*/React.createElement("div", {
|
|
1119
|
+
id: "ruler_numberInput",
|
|
1120
|
+
style: {
|
|
1121
|
+
position: 'absolute',
|
|
1122
|
+
left: left,
|
|
1123
|
+
top: top,
|
|
1124
|
+
zIndex: 1000
|
|
1125
|
+
}
|
|
1126
|
+
}, /*#__PURE__*/React.createElement(FormNumberInput, {
|
|
1127
|
+
style: {
|
|
1128
|
+
width: 50,
|
|
1129
|
+
height: 50
|
|
1130
|
+
},
|
|
1131
|
+
value: _length2,
|
|
1132
|
+
onChange: function onChange(event) {
|
|
1133
|
+
var value = new Map({
|
|
1134
|
+
length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
|
|
1135
|
+
_length: event.target.value,
|
|
1136
|
+
_unit: scene.rulerUnit
|
|
1137
|
+
});
|
|
1138
|
+
updateangleChangeAttribute(elementData, value);
|
|
1139
|
+
},
|
|
1140
|
+
precision: 2
|
|
1141
|
+
}));
|
|
1142
|
+
setRulerEdit(numberInput2);
|
|
1143
|
+
projectActions.unselectAll();
|
|
1144
|
+
break;
|
|
1145
|
+
}
|
|
1206
1146
|
case 'none':
|
|
1207
1147
|
projectActions.unselectAll();
|
|
1208
1148
|
break;
|
|
1149
|
+
default:
|
|
1150
|
+
break;
|
|
1209
1151
|
}
|
|
1210
1152
|
break;
|
|
1211
1153
|
case constants.MODE_WAITING_DRAWING_LINE:
|
|
@@ -1213,19 +1155,14 @@ export default function Viewer2D(_ref) {
|
|
|
1213
1155
|
linesActions.beginDrawingLine(layerID, x, y, state.snapMask, onInternalEvent);
|
|
1214
1156
|
break;
|
|
1215
1157
|
case constants.MODE_DRAWING_LINE:
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
getConnectedLines();
|
|
1225
|
-
var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
|
|
1226
|
-
linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
|
|
1227
|
-
linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask, onInternalEvent);
|
|
1228
|
-
break;
|
|
1158
|
+
{
|
|
1159
|
+
setdrawStart(true);
|
|
1160
|
+
getConnectedLines();
|
|
1161
|
+
var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
|
|
1162
|
+
linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
|
|
1163
|
+
linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask, onInternalEvent);
|
|
1164
|
+
break;
|
|
1165
|
+
}
|
|
1229
1166
|
case constants.MODE_DRAWING_HOLE:
|
|
1230
1167
|
holesActions.endDrawingHole(layerID, x, y);
|
|
1231
1168
|
break;
|
|
@@ -1233,16 +1170,18 @@ export default function Viewer2D(_ref) {
|
|
|
1233
1170
|
{
|
|
1234
1171
|
var itemData = state.getIn(['scene', 'layers', layerID, elementData === null || elementData === void 0 ? void 0 : elementData.prototype, elementData === null || elementData === void 0 ? void 0 : elementData.id]);
|
|
1235
1172
|
itemsActions.endDrawingItem(layerID, itemData.isInitialPos ? itemData.x : endPoint.x, itemData.isInitialPos ? itemData.y : endPoint.y);
|
|
1173
|
+
break;
|
|
1236
1174
|
}
|
|
1237
|
-
break;
|
|
1238
1175
|
case constants.MODE_DRAGGING_LINE:
|
|
1239
1176
|
linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);
|
|
1240
1177
|
break;
|
|
1241
1178
|
case constants.MODE_DRAGGING_VERTEX:
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1179
|
+
{
|
|
1180
|
+
getConnectedLines();
|
|
1181
|
+
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
1182
|
+
verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);
|
|
1183
|
+
break;
|
|
1184
|
+
}
|
|
1246
1185
|
case constants.MODE_DRAGGING_ITEM:
|
|
1247
1186
|
itemsActions.updateMolding();
|
|
1248
1187
|
projectActions.setMode(MODE_IDLE);
|
|
@@ -1253,6 +1192,8 @@ export default function Viewer2D(_ref) {
|
|
|
1253
1192
|
case constants.MODE_ROTATING_ITEM:
|
|
1254
1193
|
itemsActions.endRotatingItem(x, y);
|
|
1255
1194
|
break;
|
|
1195
|
+
default:
|
|
1196
|
+
break;
|
|
1256
1197
|
}
|
|
1257
1198
|
if (internalType) {
|
|
1258
1199
|
var _currentObject2;
|
|
@@ -1263,8 +1204,6 @@ export default function Viewer2D(_ref) {
|
|
|
1263
1204
|
}
|
|
1264
1205
|
if (_currentObject) {
|
|
1265
1206
|
var payload = updatePayloadOfInternalEvent(_currentObject, layer, catalog);
|
|
1266
|
-
|
|
1267
|
-
// send selection event befor replace event
|
|
1268
1207
|
if (internalType === constants.INTERNAL_EVENT_REPLACE_CABINET) {
|
|
1269
1208
|
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1270
1209
|
type: INTERNAL_EVENT_SELECT_ELEMENT,
|
|
@@ -1279,22 +1218,12 @@ export default function Viewer2D(_ref) {
|
|
|
1279
1218
|
}
|
|
1280
1219
|
event.stopPropagation();
|
|
1281
1220
|
};
|
|
1282
|
-
var normalizeValue = function normalizeValue(v) {
|
|
1283
|
-
var _v$viewerWidth, _v$viewerHeight, _v$SVGWidth, _v$SVGHeight;
|
|
1284
|
-
return _objectSpread(_objectSpread({}, v), {}, {
|
|
1285
|
-
viewerWidth: (_v$viewerWidth = v.viewerWidth) !== null && _v$viewerWidth !== void 0 ? _v$viewerWidth : width - rulerSize,
|
|
1286
|
-
viewerHeight: (_v$viewerHeight = v.viewerHeight) !== null && _v$viewerHeight !== void 0 ? _v$viewerHeight : height - rulerSize,
|
|
1287
|
-
SVGWidth: (_v$SVGWidth = v.SVGWidth) !== null && _v$SVGWidth !== void 0 ? _v$SVGWidth : scene.width,
|
|
1288
|
-
SVGHeight: (_v$SVGHeight = v.SVGHeight) !== null && _v$SVGHeight !== void 0 ? _v$SVGHeight : scene.height
|
|
1289
|
-
});
|
|
1290
|
-
};
|
|
1291
1221
|
var onChangeValue = function onChangeValue(value) {
|
|
1292
1222
|
if (sFlag) return;
|
|
1293
|
-
var
|
|
1294
|
-
var _zoomValue = parseInt((normalized.a - 0.5) / constants.ZOOM_VARIABLE);
|
|
1223
|
+
var _zoomValue = parseInt((value.a - 0.5) / constants.ZOOM_VARIABLE, 10);
|
|
1295
1224
|
if (_zoomValue > constants.MAX_ZOOM_IN_SCALE) return;
|
|
1296
1225
|
if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;
|
|
1297
|
-
if (rulerEdit !== null &&
|
|
1226
|
+
if (rulerEdit !== null && value.startX && value.startY || value.lastAction === 'zoom') {
|
|
1298
1227
|
var _rulerEdit = document.getElementById('ruler_numberInput') && document.getElementById('ruler_numberInput'),
|
|
1299
1228
|
_rect;
|
|
1300
1229
|
if (rulerEditID !== null) {
|
|
@@ -1307,13 +1236,16 @@ export default function Viewer2D(_ref) {
|
|
|
1307
1236
|
_rulerEdit.style.top = "".concat(bbox.top - (50 - bbox.height) / 2, "px");
|
|
1308
1237
|
}
|
|
1309
1238
|
}
|
|
1310
|
-
if (
|
|
1311
|
-
projectActions.updateZoomScale(
|
|
1312
|
-
return viewer2DActions.updateCameraView(
|
|
1239
|
+
if (value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight) {
|
|
1240
|
+
projectActions.updateZoomScale(value.a);
|
|
1241
|
+
return viewer2DActions.updateCameraView(value);
|
|
1313
1242
|
}
|
|
1314
1243
|
};
|
|
1315
1244
|
var onChangeTool = function onChangeTool(tool) {
|
|
1316
1245
|
switch (tool) {
|
|
1246
|
+
case TOOL_NONE:
|
|
1247
|
+
projectActions.selectToolEdit();
|
|
1248
|
+
break;
|
|
1317
1249
|
case TOOL_PAN:
|
|
1318
1250
|
viewer2DActions.selectToolPan();
|
|
1319
1251
|
break;
|
|
@@ -1323,18 +1255,10 @@ export default function Viewer2D(_ref) {
|
|
|
1323
1255
|
case TOOL_ZOOM_OUT:
|
|
1324
1256
|
viewer2DActions.selectToolZoomOut();
|
|
1325
1257
|
break;
|
|
1326
|
-
case TOOL_NONE:
|
|
1327
|
-
case TOOL_AUTO:
|
|
1328
1258
|
default:
|
|
1329
1259
|
break;
|
|
1330
1260
|
}
|
|
1331
1261
|
};
|
|
1332
|
-
var onZoom = function onZoom(value) {
|
|
1333
|
-
// var nextValue = viewer2D.toJS();
|
|
1334
|
-
// nextValue = zoom(nextValue, 0, 0, value.a / nextValue.a)
|
|
1335
|
-
// projectActions.updateZoomScale(nextValue.a);
|
|
1336
|
-
// return viewer2DActions.updateCameraView(nextValue)
|
|
1337
|
-
};
|
|
1338
1262
|
var _state$get$toJS = state.get('viewer2D').toJS(),
|
|
1339
1263
|
e = _state$get$toJS.e,
|
|
1340
1264
|
f = _state$get$toJS.f,
|
|
@@ -1432,15 +1356,15 @@ export default function Viewer2D(_ref) {
|
|
|
1432
1356
|
onMouseDown: onMouseDown,
|
|
1433
1357
|
onMouseMove: onMouseMove,
|
|
1434
1358
|
onMouseUp: onMouseUp,
|
|
1435
|
-
|
|
1359
|
+
miniatureProps: {
|
|
1360
|
+
position: 'none'
|
|
1361
|
+
},
|
|
1436
1362
|
toolbarProps: {
|
|
1437
|
-
position: 'none'
|
|
1438
|
-
style: {
|
|
1439
|
-
display: 'none'
|
|
1440
|
-
}
|
|
1363
|
+
position: 'none'
|
|
1441
1364
|
},
|
|
1365
|
+
detectPinchGesture: false,
|
|
1442
1366
|
disableDoubleClickZoomWithToolAuto: true,
|
|
1443
|
-
ref:
|
|
1367
|
+
ref: setViewerRef
|
|
1444
1368
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
1445
1369
|
width: scene.width,
|
|
1446
1370
|
height: scene.height
|
|
@@ -1474,5 +1398,8 @@ export default function Viewer2D(_ref) {
|
|
|
1474
1398
|
Viewer2D.propTypes = {
|
|
1475
1399
|
state: PropTypes.object.isRequired,
|
|
1476
1400
|
width: PropTypes.number.isRequired,
|
|
1477
|
-
height: PropTypes.number.isRequired
|
|
1401
|
+
height: PropTypes.number.isRequired,
|
|
1402
|
+
setToolbar: PropTypes.func,
|
|
1403
|
+
replaceCabinet: PropTypes.func,
|
|
1404
|
+
onInternalEvent: PropTypes.func
|
|
1478
1405
|
};
|