export const VIEW_IDS = Object.freeze(['home', 'detail', 'rawpage', 'api']) export function resolveView(view, hasActiveInstance = false) { if (!hasActiveInstance && view !== 'home') return 'home' return VIEW_IDS.includes(view) ? view : hasActiveInstance ? 'detail' : 'home' } export function createViewRouter({ panels, controls, storage = globalThis.localStorage } = {}) { return view => { for (const control of controls()) { const active = control.dataset.view === view control.classList.toggle('active', active) if (active) control.setAttribute?.('aria-current', 'page'); else control.removeAttribute?.('aria-current') } for (const panel of panels()) panel.classList.toggle('active', panel.id === `${view}View`) storage?.setItem('multi-simadmin-view', view) } }