import { renderHeader } from '../components/header.js?v=20260330001044'; import { networkGraph } from '../mock-data.js?v=20260330001044'; export const pageMeta = { id: 'network-view', title: 'Связи' }; function toPoint(v) { return `${v.x}%`; } function showHelpModal() { const root = document.getElementById('modal-root'); root.innerHTML = ` `; root.querySelector('#close-network-help').addEventListener('click', () => { root.innerHTML = ''; }); } export function render() { const screen = document.createElement('section'); screen.className = 'stack'; const header = renderHeader({ title: 'Связи', rightActions: [{ label: 'Справка', onClick: showHelpModal }], }); const board = document.createElement('div'); board.className = 'network-board'; const lines = networkGraph.peers .map( (peer) => `` ) .join(''); board.innerHTML = `${lines}`; const centerNode = document.createElement('div'); centerNode.className = 'node center'; centerNode.style.left = `${networkGraph.center.x}%`; centerNode.style.top = `${networkGraph.center.y}%`; centerNode.innerHTML = `
${networkGraph.center.initials}
${networkGraph.center.name}
`; board.append(centerNode); networkGraph.peers.forEach((peer) => { const node = document.createElement('div'); node.className = 'node'; node.style.left = `${peer.x}%`; node.style.top = `${peer.y}%`; node.innerHTML = `
${peer.initials}
${peer.name}
`; board.append(node); }); const note = document.createElement('p'); note.className = 'meta-muted'; note.textContent = 'Схема статичная для демо, архитектура подготовлена под дальнейшую интерактивность.'; screen.append(header, board, note); return screen; }