@floless/app 0.72.0 → 0.72.1
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/dist/floless-server.cjs +2 -2
- package/dist/web/steel-3d-view.js +22 -1
- package/package.json +1 -1
package/dist/floless-server.cjs
CHANGED
|
@@ -53022,7 +53022,7 @@ function appVersion() {
|
|
|
53022
53022
|
return resolveVersion({
|
|
53023
53023
|
isSea: isSea2(),
|
|
53024
53024
|
sqVersionXml: readSqVersionXml(),
|
|
53025
|
-
define: true ? "0.72.
|
|
53025
|
+
define: true ? "0.72.1" : void 0,
|
|
53026
53026
|
pkgVersion: readPkgVersion()
|
|
53027
53027
|
});
|
|
53028
53028
|
}
|
|
@@ -53032,7 +53032,7 @@ function resolveChannel(s) {
|
|
|
53032
53032
|
return "dev";
|
|
53033
53033
|
}
|
|
53034
53034
|
function appChannel() {
|
|
53035
|
-
return resolveChannel({ isSea: isSea2(), define: true ? "0.72.
|
|
53035
|
+
return resolveChannel({ isSea: isSea2(), define: true ? "0.72.1" : void 0 });
|
|
53036
53036
|
}
|
|
53037
53037
|
|
|
53038
53038
|
// workflow-update.ts
|
|
@@ -2454,6 +2454,22 @@ function membersInRect(x0, y0, x1, y1) {
|
|
|
2454
2454
|
}
|
|
2455
2455
|
return out;
|
|
2456
2456
|
}
|
|
2457
|
+
// Connection Components whose CENTRE falls inside a marquee rect (mirrors membersInRect's member-centre
|
|
2458
|
+
// test, applied to each connection's bounding box) — so area-select picks up connections, not just members.
|
|
2459
|
+
function connsInRect(x0, y0, x1, y1) {
|
|
2460
|
+
const rect = canvasEl.getBoundingClientRect();
|
|
2461
|
+
const lo = { x: Math.min(x0, x1), y: Math.min(y0, y1) }, hi = { x: Math.max(x0, x1), y: Math.max(y0, y1) };
|
|
2462
|
+
const conns = new Set();
|
|
2463
|
+
for (const m of meshById.values()) { const c = m.userData && m.userData.conn; if (c && m.visible) conns.add(c); }
|
|
2464
|
+
const out = [];
|
|
2465
|
+
for (const conn of conns) {
|
|
2466
|
+
const b = connBox(conn); if (b.isEmpty()) continue;
|
|
2467
|
+
const w = b.getCenter(new THREE.Vector3()).project(camera); if (w.z > 1) continue;
|
|
2468
|
+
const sx = rect.left + (w.x * 0.5 + 0.5) * rect.width, sy = rect.top + (-w.y * 0.5 + 0.5) * rect.height;
|
|
2469
|
+
if (sx >= lo.x && sx <= hi.x && sy >= lo.y && sy <= hi.y) out.push(conn);
|
|
2470
|
+
}
|
|
2471
|
+
return out;
|
|
2472
|
+
}
|
|
2457
2473
|
|
|
2458
2474
|
function onUp(e) {
|
|
2459
2475
|
if (e.button === 2) rightDownXY = null; // end the click-vs-drag test (rightMoved keeps the verdict for the contextmenu that follows)
|
|
@@ -2461,7 +2477,12 @@ function onUp(e) {
|
|
|
2461
2477
|
if (!renderer || !canvasEl || canvasEl.style.display === 'none') { downXY = null; boxSel = pending = dragging = null; if (controls) controls.enabled = true; return; } // 3D hidden mid-gesture → drop stale gesture state (no resume on re-show)
|
|
2462
2478
|
const bs = boxSel; boxSel = null;
|
|
2463
2479
|
if (bs) { // empty-space gesture: drag = box-select, click = clear selection
|
|
2464
|
-
if (bs.moved) { resetCycle();
|
|
2480
|
+
if (bs.moved) { resetCycle();
|
|
2481
|
+
const memberIds = membersInRect(bs.x, bs.y, e.clientX, e.clientY);
|
|
2482
|
+
const connIds = connsInRect(bs.x, bs.y, e.clientX, e.clientY);
|
|
2483
|
+
if (!memberIds.length && connIds.length === 1) selectWholeConn(connIds[0]); // a lone connection framed → full component select (envelope + inspector), same as a click
|
|
2484
|
+
else { resetConnState(); const ids = [...memberIds, ...connIds.flatMap((c) => connChildIds(c))]; if (api && api.onSelectMany) api.onSelectMany(ids); } // members and/or several connections → a plain multi-select that INCLUDES the connections' parts
|
|
2485
|
+
}
|
|
2465
2486
|
else clickSelect(e.clientX, e.clientY, e.ctrlKey || e.metaKey); // click in empty space → cycle-pick (may land on a derived part) or clear
|
|
2466
2487
|
downXY = null; return;
|
|
2467
2488
|
}
|