Files
2026-10-29 11:57:29 +01:00

22 lines
937 B
JavaScript

// Generated, do not edit. sha256:fbeb70898a324872c8f2444d8e03beae326a416826348a59cda101932ba82f5c
import { SYSTEM_PAGE } from '../../shared/config.js';
import { createRegistry } from '../../shared/registry.js';
import { locked } from '../license.js';
const tabs = createRegistry('system tab', {
validate: (e) => { if (!Object.values(SYSTEM_PAGE.TABS).includes(e.tab)) throw new Error(`Unknown system tab '${e.tab}'.`); },
});
export function registerSystemTab(tab) {
const feature = tab.feature ?? null;
tabs.register({ ...tab, id: `${tab.id}:${feature ?? ''}`, tab: tab.id, feature, label: tab.label ?? `nav.${tab.id}` });
}
export function systemTabs() {
return Object.values(SYSTEM_PAGE.TABS).flatMap(id => {
const own = tabs.list().filter(r => r.tab === id).map(r => ({ ...r, id }));
const pick = own.find(r => r.feature && !locked(r.feature)) || own.find(r => !r.feature);
return pick ? [pick] : [];
});
}