Files
Web-Frontend/client/src/constants/widgetRegistry.jsx
T

131 lines
4.2 KiB
React
Raw Normal View History

// config/widgetRegistry.js
2026-07-08 15:05:50 -07:00
import { lazy } from 'react';
// We assume a 12-column grid.
// w: 12 = full screen width
// w: 6 = half screen width
// w: 4 = one-third screen width
// w: 3 = one-quarter screen width
export const WIDGET_REGISTRY = {
"vaa_activity": {
name: "VAA 7 Day Activity",
category: "Aviation",
description: "Displays 7-day flight level timelines across multiple volcanoes.",
2026-07-08 15:05:50 -07:00
component: lazy(() => import('../components/widgets/VaaActivity7Day')),
2026-07-10 14:56:11 -07:00
// The specific settings UI for this widget
settingsComponent: lazy(() => import('../components/widgets/settings/VaaActivitySettings')),
// The baseline data every new VAA widget starts with
defaultSettings: {
yAxisScale: 'normal' // Options: 'normal' | 'symlog'
},
allowedSizes: {
xlarge: { w: 12, h: 12 },
}
},
"db_cache_health": {
name: "DB Cache Health",
category: "Computer Science",
description: "Bar chart showing cache table operational status.",
allowedSizes: {
small: { w: 3, h: 12 },
medium: { w: 6, h: 12 }
}
},
"ivans_alerts": {
name: "IVANS",
category: "Communications",
description: "Feed of recent IVANS reports and reviewer statuses.",
2026-07-30 09:18:47 -07:00
component: lazy(() => import('../components/Widgets/IvansAlerts.jsx')),
settingsComponent: lazy(() => import('../components/Widgets/settings/IvansAlertsSettings.jsx')),
defaultSettings: {
copyToClipboard: false,
activeSorts: {
timeSort: "desc",
volcanoSort: false
}
},
allowedSizes: {
small: { w: 3, h: 6 },
medium: { w: 3, h: 9 },
large: { w: 3, h: 12 },
}
},
"remote_sensing": {
name: "Remote Sensing",
category: "Remote Sensing",
description: "Feed of recent remote sensing reports.",
allowedSizes: {
small: { w: 3, h: 12 },
}
},
"alert_levels": {
name: "Alert Level Changes",
category: "Daily Alerts",
description: "List of 7-day alert level changes with trend arrows.",
allowedSizes: {
small: { w: 3, h: 12 },
large: { w: 9, h: 12 }
}
2026-07-13 14:28:33 -07:00
},
"explosion_events": {
name: "Explosion Events",
category: "Daily Volcanic Activity",
description: "List of explosion events over a specified time period.",
component: lazy(() => import('../components/Widgets/ExplosionEvents.jsx')),
// The specific settings UI for this widget
settingsComponent: lazy(() => import('../components/widgets/settings/ExplosionEventsSettings.jsx')),
// The baseline data every new VAA widget starts with
defaultSettings: {
yAxisScale: 'normal' // Options: 'normal' | 'symlog'
},
allowedSizes: {
medium: { w: 6, h: 12 }
}
},
"plume_events": {
name: "Plume Events",
category: "Daily Volcanic Activity",
description: "Plot of explosion heights over a weeks time.",
component: lazy(() => import('../components/Widgets/PlumeEvents.jsx')),
defaultSettings: {},
allowedSizes: {
medium: { w: 6, h: 12 }
}
},
"seismic_events": {
name: "Seismic Events",
category: "Daily Volcanic Activity",
description: "Plot of number of seismic events over a weeks time.",
component: lazy(() => import('../components/Widgets/SeismicEvents.jsx')),
settingsComponent: lazy(() => import('../components/Widgets/settings/SeismicEventsSettings.jsx')),
defaultSettings: {},
allowedSizes: {
medium: { w: 6, h: 12 }
}
},
"llm_al_changes_quad_plot": {
name: "Alert Level Changes Quad Plot",
category: "Computer Science",
2026-07-30 09:18:47 -07:00
description: "Percentage of TP, TN, FP, and FN changes in viable alert levels.",
component: lazy(() => import('../components/Widgets/LlmAlChangesQuadPlot.jsx')),
allowedSizes: {
small: { w: 3, h: 12 }
}
}
};