From 323410ead78afc3c3f0e7cbb000863137b38d707 Mon Sep 17 00:00:00 2001 From: Alina Date: Tue, 17 Feb 2026 23:45:18 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BB=D0=B0=D1=81=D1=81=D0=BE-=D0=B2?= =?UTF-8?q?=D1=8B=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B5,=20=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=20=D0=BA=D0=B0=D1=80=D1=82/=D1=83=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B9=D1=81=D1=82=D0=B2,=20=D1=83=D0=B4?= =?UTF-8?q?=D0=B2=D0=BE=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Лассо (rubberband) отключено по умолчанию, включается кнопкой в тулбаре - Порты устройств с картами позиционируются ниже карт (absolute positioning) - Высота устройств с картами и портами: сумма вместо max - Мок данные удвоены: +4 сайта, +26 устройств, +6 карт, ~130 портов, ~30 линий Co-Authored-By: Claude Opus 4.6 --- frontend/src/components/Toolbar/Toolbar.tsx | 11 + .../src/features/schema/graph/initGraph.ts | 2 +- .../src/features/schema/helpers/dataMapper.ts | 41 +- .../src/features/schema/layout/autoLayout.ts | 5 +- .../src/features/schema/ports/portConfig.ts | 2 + frontend/src/mock/schemaData.ts | 656 ++++++++++++++++++ frontend/src/store/schemaStore.ts | 15 + 7 files changed, 726 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/Toolbar/Toolbar.tsx b/frontend/src/components/Toolbar/Toolbar.tsx index 280ab14..d3d5b5f 100644 --- a/frontend/src/components/Toolbar/Toolbar.tsx +++ b/frontend/src/components/Toolbar/Toolbar.tsx @@ -11,6 +11,7 @@ import { NodeIndexOutlined, EyeOutlined, EditOutlined, + GatewayOutlined, } from '@ant-design/icons'; import { useSchemaStore } from '../../store/schemaStore.ts'; @@ -23,6 +24,8 @@ export function Toolbar() { const toggleMinimap = useSchemaStore((s) => s.toggleMinimap); const switchLineType = useSchemaStore((s) => s.switchLineType); const toggleLabels = useSchemaStore((s) => s.toggleLabels); + const lassoActive = useSchemaStore((s) => s.lassoActive); + const toggleLasso = useSchemaStore((s) => s.toggleLasso); const zoom = graph ? Math.round(graph.zoom() * 100) : 100; @@ -121,6 +124,14 @@ export function Toolbar() { onClick={() => message.info('В разработке')} /> + +