Files
AtreidesAssetsFree/client/widgets/registry.js
T

23 lines
843 B
JavaScript
Raw Normal View History

2026-10-29 11:57:29 +01:00
// Generated, do not edit. sha256:9a4b9605453795f4e63a44a3dbe52ca8e7e112a8edb0a2dcc85664207e4801cc
import { DASHBOARD } from '../../shared/config.js';
import { createRegistry } from '../../shared/registry.js';
import { locked } from '../license.js';
const widgets = createRegistry('widget', {
validate: (e) => { if (!DASHBOARD.WIDGETS[e.id]) throw new Error(`Unknown widget type '${e.id}'.`); },
});
export function registerWidget(type, { render, settings = null, feature = null }) {
widgets.register({ id: type, render, settings, feature });
}
export function availableWidgets() {
const renderers = {};
const settings = {};
for (const w of widgets.list()) {
if (w.feature && locked(w.feature)) continue;
renderers[w.id] = w.render;
if (w.settings) settings[w.id] = w.settings;
}
return { renderers, settings };
}