// Generated, do not edit. sha256:4950de4d7773457ba3e059bdd6064ec381481cef089a6220acf9873b2bbee2e1 import { ROUTE_KEYS, SYSTEM_PAGE } from '../shared/config.js'; import { createRegistry } from '../shared/registry.js'; import { locked } from './license.js'; import { systemTabs } from './pages/system-tabs.js'; const routes = createRegistry('route', { validate: (e) => { if (!Object.values(ROUTE_KEYS).includes(e.id)) throw new Error(`Unknown route '${e.id}'.`); }, }); export function registerRoute(key, page, { feature = null } = {}) { routes.register({ id: key, page, feature }); } export function routePage(key) { const r = routes.get(key); return r && !(r.feature && locked(r.feature)) ? r.page : null; } export function placeAvailable(target) { if (!target?.route) return false; if (!routePage(target.route) && !routePage(target.route.split('/')[0])) return false; if (target.route !== SYSTEM_PAGE.ROUTE || !target.tab) return true; const tab = systemTabs().find(t => t.id === target.tab); return !!tab && (!target.sub || !tab.subs || tab.subs.includes(target.sub)); }