const routeConfigs = { overview: { titleKey: "page.overview", partial: "/legacy/assets/partials/overview.html" }, ports: { titleKey: "page.ports", partial: "/legacy/assets/partials/ports.html" }, terminal: { titleKey: "page.terminal", partial: "/legacy/assets/partials/terminal.html" }, sessions: { titleKey: "page.sessions", partial: "/legacy/assets/partials/sessions.html" }, cabling: { titleKey: "page.cabling", partial: "/legacy/assets/partials/cabling.html" }, events: { titleKey: "page.events", partial: "/legacy/assets/partials/events.html" }, system: { titleKey: "page.system", partial: "/legacy/assets/partials/system.html" }, example: { titleKey: "page.example", partial: "/legacy/assets/partials/example.html" }, }; export function getRouteConfig(routeName) { return routeConfigs[routeName] || routeConfigs.overview; } export function getRouteFromHash() { const hash = window.location.hash.replace(/^#\/?/, ""); return routeConfigs[hash] ? hash : "overview"; } export function navigateTo(routeName) { const nextRoute = routeConfigs[routeName] ? routeName : "overview"; if (getRouteFromHash() === nextRoute) { window.dispatchEvent(new HashChangeEvent("hashchange")); return; } window.location.hash = nextRoute; } export async function loadPartial(routeName) { const config = getRouteConfig(routeName); const response = await fetch(config.partial, { cache: "no-cache" }); if (!response.ok) { throw new Error(`failed to load partial: ${config.partial}`); } return response.text(); }