From 51a52cbf793e88308185b620c8d550d59485a3bf Mon Sep 17 00:00:00 2001 From: Denozordec Date: Sat, 18 Jul 2026 18:00:37 +0700 Subject: [PATCH] =?UTF-8?q?fix(topology):=20=D0=B1=D0=B5=D0=B9=D0=B4=D0=B6?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B0=D0=B4=20=D0=BB=D0=B8=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=D0=B9=20=D0=B8=20=D0=B2=D1=8B=D1=82=D0=B0=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=B7=20=D0=B3=D1=80?= =?UTF-8?q?=D1=83=D0=BF=D0=BF=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Легенда связи смещена выше stroke; убран extent parent, чтобы узлы можно было вынести из группы. Co-authored-by: Cursor --- .../components/topology/edges/topology-edge.tsx | 5 +++-- apps/web/src/components/topology/group-utils.ts | 14 ++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/web/src/components/topology/edges/topology-edge.tsx b/apps/web/src/components/topology/edges/topology-edge.tsx index a6def6f..3171a99 100644 --- a/apps/web/src/components/topology/edges/topology-edge.tsx +++ b/apps/web/src/components/topology/edges/topology-edge.tsx @@ -59,11 +59,12 @@ function TopologyEdgeComponent(props: EdgeProps>) {
diff --git a/apps/web/src/components/topology/group-utils.ts b/apps/web/src/components/topology/group-utils.ts index a9765b7..caba2b4 100644 --- a/apps/web/src/components/topology/group-utils.ts +++ b/apps/web/src/components/topology/group-utils.ts @@ -14,10 +14,12 @@ export function normalizeGroupLayers(nodes: TopologyFlowNode[]): TopologyFlowNod if (n.type === 'group') { return { ...n, zIndex: n.selected ? 0 : GROUP_Z } } - if (n.zIndex != null && n.zIndex < CONTENT_Z) { - return { ...n, zIndex: CONTENT_Z } + // extent: 'parent' блокирует вытаскивание — не используем; parentId достаточно для «прилипания» + const cleared = n.extent != null ? { ...n, extent: undefined } : n + if (cleared.zIndex != null && cleared.zIndex < CONTENT_Z) { + return { ...cleared, zIndex: CONTENT_Z } } - return n.zIndex == null ? { ...n, zIndex: CONTENT_Z } : n + return cleared.zIndex == null ? { ...cleared, zIndex: CONTENT_Z } : cleared }) } @@ -122,7 +124,7 @@ export function attachNodeToGroup( return { ...node, parentId: group.id, - extent: 'parent', + extent: undefined, zIndex: CONTENT_Z, } } @@ -132,7 +134,7 @@ export function attachNodeToGroup( return { ...node, parentId: group.id, - extent: 'parent', + extent: undefined, position: { x: abs.x - groupAbs.x, y: abs.y - groupAbs.y, @@ -201,7 +203,7 @@ export function placeWithOptionalParent( return { ...node, parentId: group.id, - extent: 'parent', + extent: undefined, position: { x: flowPosition.x - groupAbs.x, y: flowPosition.y - groupAbs.y,