Add interactive graph editor connections: port-based edges, drag-connect, and detach

- Add visible typed ports on graph nodes (colored dots for each edge type)
- Route edges to specific port positions instead of node center
- Drag from output port to compatible input port to create/change connections
- Right-click edge context menu with Disconnect option
- Delete key detaches selected edge
- Mark nested edges (composite layers, zones) as non-editable with dotted style
- Add resolve_ref helper for empty-string sentinel to clear reference fields
- Apply resolve_ref across all storage stores for consistent detach support
- Add connection mapping module (graph-connections.js) with API field resolution
- Add i18n keys for connection operations (en/ru/zh)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 17:15:33 +03:00
parent ff24ec95e6
commit b370bb7d75
17 changed files with 661 additions and 60 deletions

View File

@@ -1397,5 +1397,10 @@
"graph.minimap": "Миникарта",
"graph.relayout": "Перестроить",
"graph.empty": "Ещё нет сущностей",
"graph.empty.hint": "Создайте устройства, источники и цели, чтобы увидеть их здесь."
"graph.empty.hint": "Создайте устройства, источники и цели, чтобы увидеть их здесь.",
"graph.disconnect": "Отключить",
"graph.connection_updated": "Соединение обновлено",
"graph.connection_failed": "Не удалось обновить соединение",
"graph.connection_removed": "Соединение удалено",
"graph.disconnect_failed": "Не удалось отключить"
}