@zendir/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/LICENSE +21 -0
- package/README.md +589 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +421 -0
- package/dist/index.js.map +1 -0
- package/dist/react/3d/EarthViewer.d.ts +46 -0
- package/dist/react/3d/EarthViewer.js +836 -0
- package/dist/react/3d/EarthViewer.js.map +1 -0
- package/dist/react/3d/SolarSystemViewer.d.ts +43 -0
- package/dist/react/3d/SolarSystemViewer.js +372 -0
- package/dist/react/3d/SolarSystemViewer.js.map +1 -0
- package/dist/react/3d/ZenSpace3D.d.ts +16 -0
- package/dist/react/3d/ZenSpace3D.js +1253 -0
- package/dist/react/3d/ZenSpace3D.js.map +1 -0
- package/dist/react/3d/ZenSpace3DCesium.d.ts +9 -0
- package/dist/react/3d/ZenSpace3DCesium.js +186 -0
- package/dist/react/3d/ZenSpace3DCesium.js.map +1 -0
- package/dist/react/3d/ZenSpace3DShaders.d.ts +78 -0
- package/dist/react/3d/ZenSpace3DShaders.js +94 -0
- package/dist/react/3d/ZenSpace3DShaders.js.map +1 -0
- package/dist/react/3d/ZenSpace3DTypes.d.ts +614 -0
- package/dist/react/3d/ZenSpace3DUtils.d.ts +183 -0
- package/dist/react/3d/ZenSpace3DUtils.js +213 -0
- package/dist/react/3d/ZenSpace3DUtils.js.map +1 -0
- package/dist/react/3d/index.d.ts +23 -0
- package/dist/react/3d/threeLoader.d.ts +22 -0
- package/dist/react/3d/threeLoader.js +18 -0
- package/dist/react/3d/threeLoader.js.map +1 -0
- package/dist/react/astro/ClassificationBanner.d.ts +25 -0
- package/dist/react/astro/ClassificationBanner.js +83 -0
- package/dist/react/astro/ClassificationBanner.js.map +1 -0
- package/dist/react/astro/GlobalStatusBar.d.ts +42 -0
- package/dist/react/astro/GlobalStatusBar.js +165 -0
- package/dist/react/astro/GlobalStatusBar.js.map +1 -0
- package/dist/react/astro/MissionClock.d.ts +169 -0
- package/dist/react/astro/MissionClock.js +411 -0
- package/dist/react/astro/MissionClock.js.map +1 -0
- package/dist/react/astro/MonitoringIcon.d.ts +60 -0
- package/dist/react/astro/MonitoringIcon.js +369 -0
- package/dist/react/astro/MonitoringIcon.js.map +1 -0
- package/dist/react/astro/Notification.d.ts +42 -0
- package/dist/react/astro/Notification.js +156 -0
- package/dist/react/astro/Notification.js.map +1 -0
- package/dist/react/astro/Progress.d.ts +39 -0
- package/dist/react/astro/Progress.js +149 -0
- package/dist/react/astro/Progress.js.map +1 -0
- package/dist/react/astro/SimulationControls.d.ts +136 -0
- package/dist/react/astro/SimulationControls.js +668 -0
- package/dist/react/astro/SimulationControls.js.map +1 -0
- package/dist/react/astro/StatusIndicator.d.ts +34 -0
- package/dist/react/astro/StatusIndicator.js +189 -0
- package/dist/react/astro/StatusIndicator.js.map +1 -0
- package/dist/react/astro/UnifiedTimeline.d.ts +106 -0
- package/dist/react/astro/UnifiedTimeline.js +1768 -0
- package/dist/react/astro/UnifiedTimeline.js.map +1 -0
- package/dist/react/astro/index.d.ts +63 -0
- package/dist/react/cards/AccessCard.d.ts +37 -0
- package/dist/react/cards/AccessCard.js +410 -0
- package/dist/react/cards/AccessCard.js.map +1 -0
- package/dist/react/cards/OrbitCard.d.ts +31 -0
- package/dist/react/cards/OrbitCard.js +372 -0
- package/dist/react/cards/OrbitCard.js.map +1 -0
- package/dist/react/cards/SpacecraftCard.d.ts +54 -0
- package/dist/react/cards/SpacecraftCard.js +941 -0
- package/dist/react/cards/SpacecraftCard.js.map +1 -0
- package/dist/react/cards/TelemetryCard.d.ts +40 -0
- package/dist/react/cards/TelemetryCard.js +742 -0
- package/dist/react/cards/TelemetryCard.js.map +1 -0
- package/dist/react/cards/TelemetryStreamCard.d.ts +59 -0
- package/dist/react/cards/TelemetryStreamCard.js +309 -0
- package/dist/react/cards/TelemetryStreamCard.js.map +1 -0
- package/dist/react/cards/index.d.ts +13 -0
- package/dist/react/charts/GroundTrackMap.d.ts +112 -0
- package/dist/react/charts/GroundTrackMap.js +1123 -0
- package/dist/react/charts/GroundTrackMap.js.map +1 -0
- package/dist/react/charts/GroundTrackMapLeaflet.d.ts +26 -0
- package/dist/react/charts/GroundTrackMapLeaflet.js +571 -0
- package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.d.ts +22 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.js +11 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.d.ts +24 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.js +109 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -0
- package/dist/react/charts/index.d.ts +10 -0
- package/dist/react/charts/unified/AstroChart.d.ts +24 -0
- package/dist/react/charts/unified/AstroChart.js +1405 -0
- package/dist/react/charts/unified/AstroChart.js.map +1 -0
- package/dist/react/charts/unified/PowerOverviewChart.d.ts +73 -0
- package/dist/react/charts/unified/PowerOverviewChart.js +488 -0
- package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -0
- package/dist/react/charts/unified/domain.d.ts +845 -0
- package/dist/react/charts/unified/domain.js +3168 -0
- package/dist/react/charts/unified/domain.js.map +1 -0
- package/dist/react/charts/unified/generators.d.ts +276 -0
- package/dist/react/charts/unified/generators.js +518 -0
- package/dist/react/charts/unified/generators.js.map +1 -0
- package/dist/react/charts/unified/index.d.ts +55 -0
- package/dist/react/charts/unified/presets.d.ts +290 -0
- package/dist/react/charts/unified/presets.js +999 -0
- package/dist/react/charts/unified/presets.js.map +1 -0
- package/dist/react/charts/unified/sync.d.ts +69 -0
- package/dist/react/charts/unified/sync.js +219 -0
- package/dist/react/charts/unified/sync.js.map +1 -0
- package/dist/react/charts/unified/theme.d.ts +447 -0
- package/dist/react/charts/unified/theme.js +562 -0
- package/dist/react/charts/unified/theme.js.map +1 -0
- package/dist/react/charts/unified/types.d.ts +826 -0
- package/dist/react/charts/unified/useChartStream.d.ts +58 -0
- package/dist/react/charts/unified/useChartStream.js +226 -0
- package/dist/react/charts/unified/useChartStream.js.map +1 -0
- package/dist/react/chatgpt/AppCard.d.ts +59 -0
- package/dist/react/chatgpt/AppCard.js +306 -0
- package/dist/react/chatgpt/AppCard.js.map +1 -0
- package/dist/react/chatgpt/ChatGPTCard.d.ts +6 -0
- package/dist/react/chatgpt/index.d.ts +167 -0
- package/dist/react/chatgpt/index.js +166 -0
- package/dist/react/chatgpt/index.js.map +1 -0
- package/dist/react/context/DisplaySettingsContext.d.ts +107 -0
- package/dist/react/context/DisplaySettingsContext.js +169 -0
- package/dist/react/context/DisplaySettingsContext.js.map +1 -0
- package/dist/react/context/index.d.ts +5 -0
- package/dist/react/core/ActivityPlanner.d.ts +45 -0
- package/dist/react/core/ActivityPlanner.js +532 -0
- package/dist/react/core/ActivityPlanner.js.map +1 -0
- package/dist/react/core/AppBar.d.ts +71 -0
- package/dist/react/core/AppBar.js +817 -0
- package/dist/react/core/AppBar.js.map +1 -0
- package/dist/react/core/AstroIcon.d.ts +84 -0
- package/dist/react/core/AstroIcon.js +1243 -0
- package/dist/react/core/AstroIcon.js.map +1 -0
- package/dist/react/core/Badge.d.ts +27 -0
- package/dist/react/core/Badge.js +134 -0
- package/dist/react/core/Badge.js.map +1 -0
- package/dist/react/core/Button.d.ts +26 -0
- package/dist/react/core/Button.js +306 -0
- package/dist/react/core/Button.js.map +1 -0
- package/dist/react/core/CardHeader.d.ts +34 -0
- package/dist/react/core/CardHeader.js +316 -0
- package/dist/react/core/CardHeader.js.map +1 -0
- package/dist/react/core/ChatPanel.d.ts +627 -0
- package/dist/react/core/ChatPanel.js +1144 -0
- package/dist/react/core/ChatPanel.js.map +1 -0
- package/dist/react/core/Checkbox.d.ts +26 -0
- package/dist/react/core/Checkbox.js +130 -0
- package/dist/react/core/Checkbox.js.map +1 -0
- package/dist/react/core/ColorPickerPanel.d.ts +25 -0
- package/dist/react/core/ColorPickerPanel.js +293 -0
- package/dist/react/core/ColorPickerPanel.js.map +1 -0
- package/dist/react/core/CommandBuilder.d.ts +74 -0
- package/dist/react/core/CommandBuilder.js +518 -0
- package/dist/react/core/CommandBuilder.js.map +1 -0
- package/dist/react/core/ConfirmDialog.d.ts +45 -0
- package/dist/react/core/ConfirmDialog.js +315 -0
- package/dist/react/core/ConfirmDialog.js.map +1 -0
- package/dist/react/core/ConnectionForm.d.ts +57 -0
- package/dist/react/core/ConnectionForm.js +496 -0
- package/dist/react/core/ConnectionForm.js.map +1 -0
- package/dist/react/core/Container.d.ts +51 -0
- package/dist/react/core/Container.js +670 -0
- package/dist/react/core/Container.js.map +1 -0
- package/dist/react/core/CopyButton.d.ts +39 -0
- package/dist/react/core/CopyButton.js +105 -0
- package/dist/react/core/CopyButton.js.map +1 -0
- package/dist/react/core/DataTable.d.ts +113 -0
- package/dist/react/core/DataTable.js +446 -0
- package/dist/react/core/DataTable.js.map +1 -0
- package/dist/react/core/DataValue.d.ts +64 -0
- package/dist/react/core/DataValue.js +545 -0
- package/dist/react/core/DataValue.js.map +1 -0
- package/dist/react/core/Dialog.d.ts +32 -0
- package/dist/react/core/Dialog.js +201 -0
- package/dist/react/core/Dialog.js.map +1 -0
- package/dist/react/core/FileExplorer.d.ts +65 -0
- package/dist/react/core/FileExplorer.js +520 -0
- package/dist/react/core/FileExplorer.js.map +1 -0
- package/dist/react/core/GlassCard.d.ts +129 -0
- package/dist/react/core/GlassCard.js +375 -0
- package/dist/react/core/GlassCard.js.map +1 -0
- package/dist/react/core/HeaderIconWithStatus.d.ts +39 -0
- package/dist/react/core/HeaderIconWithStatus.js +157 -0
- package/dist/react/core/HeaderIconWithStatus.js.map +1 -0
- package/dist/react/core/HexViewer.d.ts +143 -0
- package/dist/react/core/HexViewer.js +1106 -0
- package/dist/react/core/HexViewer.js.map +1 -0
- package/dist/react/core/Icon.d.ts +32 -0
- package/dist/react/core/Icon.js +142 -0
- package/dist/react/core/Icon.js.map +1 -0
- package/dist/react/core/ImageGallery.d.ts +41 -0
- package/dist/react/core/ImageGallery.js +320 -0
- package/dist/react/core/ImageGallery.js.map +1 -0
- package/dist/react/core/Input.d.ts +38 -0
- package/dist/react/core/Input.js +288 -0
- package/dist/react/core/Input.js.map +1 -0
- package/dist/react/core/LimitsBar.d.ts +51 -0
- package/dist/react/core/LimitsBar.js +200 -0
- package/dist/react/core/LimitsBar.js.map +1 -0
- package/dist/react/core/LogViewer.d.ts +61 -0
- package/dist/react/core/LogViewer.js +599 -0
- package/dist/react/core/LogViewer.js.map +1 -0
- package/dist/react/core/MessageStream.d.ts +58 -0
- package/dist/react/core/MessageStream.js +455 -0
- package/dist/react/core/MessageStream.js.map +1 -0
- package/dist/react/core/MissionCalendar.d.ts +81 -0
- package/dist/react/core/MissionCalendar.js +1049 -0
- package/dist/react/core/MissionCalendar.js.map +1 -0
- package/dist/react/core/NumberInput.d.ts +85 -0
- package/dist/react/core/NumberInput.js +507 -0
- package/dist/react/core/NumberInput.js.map +1 -0
- package/dist/react/core/PacketViewer.d.ts +73 -0
- package/dist/react/core/PacketViewer.js +431 -0
- package/dist/react/core/PacketViewer.js.map +1 -0
- package/dist/react/core/Pagination.d.ts +30 -0
- package/dist/react/core/Pagination.js +190 -0
- package/dist/react/core/Pagination.js.map +1 -0
- package/dist/react/core/PinInput.d.ts +41 -0
- package/dist/react/core/PinInput.js +210 -0
- package/dist/react/core/PinInput.js.map +1 -0
- package/dist/react/core/Popover.d.ts +55 -0
- package/dist/react/core/Popover.js +288 -0
- package/dist/react/core/Popover.js.map +1 -0
- package/dist/react/core/Select.d.ts +42 -0
- package/dist/react/core/Select.js +303 -0
- package/dist/react/core/Select.js.map +1 -0
- package/dist/react/core/SideNav.d.ts +103 -0
- package/dist/react/core/SideNav.js +551 -0
- package/dist/react/core/SideNav.js.map +1 -0
- package/dist/react/core/SidePanel.d.ts +33 -0
- package/dist/react/core/SidePanel.js +199 -0
- package/dist/react/core/SidePanel.js.map +1 -0
- package/dist/react/core/Tabs.d.ts +47 -0
- package/dist/react/core/Tabs.js +129 -0
- package/dist/react/core/Tabs.js.map +1 -0
- package/dist/react/core/Toast.d.ts +56 -0
- package/dist/react/core/Toast.js +229 -0
- package/dist/react/core/Toast.js.map +1 -0
- package/dist/react/core/Toggle.d.ts +22 -0
- package/dist/react/core/Toggle.js +151 -0
- package/dist/react/core/Toggle.js.map +1 -0
- package/dist/react/core/Tooltip.d.ts +19 -0
- package/dist/react/core/Tooltip.js +179 -0
- package/dist/react/core/Tooltip.js.map +1 -0
- package/dist/react/core/Typography.d.ts +127 -0
- package/dist/react/core/Typography.js +187 -0
- package/dist/react/core/Typography.js.map +1 -0
- package/dist/react/core/index.d.ts +108 -0
- package/dist/react/core/layout/Box.d.ts +77 -0
- package/dist/react/core/layout/Box.js +126 -0
- package/dist/react/core/layout/Box.js.map +1 -0
- package/dist/react/core/layout/Center.d.ts +20 -0
- package/dist/react/core/layout/Center.js +34 -0
- package/dist/react/core/layout/Center.js.map +1 -0
- package/dist/react/core/layout/Divider.d.ts +16 -0
- package/dist/react/core/layout/Divider.js +108 -0
- package/dist/react/core/layout/Divider.js.map +1 -0
- package/dist/react/core/layout/Flex.d.ts +30 -0
- package/dist/react/core/layout/Flex.js +128 -0
- package/dist/react/core/layout/Flex.js.map +1 -0
- package/dist/react/core/layout/Grid.d.ts +36 -0
- package/dist/react/core/layout/Grid.js +142 -0
- package/dist/react/core/layout/Grid.js.map +1 -0
- package/dist/react/core/layout/Spacer.d.ts +8 -0
- package/dist/react/core/layout/Spacer.js +31 -0
- package/dist/react/core/layout/Spacer.js.map +1 -0
- package/dist/react/core/layout/Stack.d.ts +54 -0
- package/dist/react/core/layout/Stack.js +74 -0
- package/dist/react/core/layout/Stack.js.map +1 -0
- package/dist/react/core/layout/index.d.ts +38 -0
- package/dist/react/core/layout/responsive.d.ts +23 -0
- package/dist/react/core/layout/responsive.js +26 -0
- package/dist/react/core/layout/responsive.js.map +1 -0
- package/dist/react/core/layout/useBreakpoint.d.ts +77 -0
- package/dist/react/core/layout/useBreakpoint.js +73 -0
- package/dist/react/core/layout/useBreakpoint.js.map +1 -0
- package/dist/react/core/propertyConfig.d.ts +443 -0
- package/dist/react/core/propertyConfig.js +399 -0
- package/dist/react/core/propertyConfig.js.map +1 -0
- package/dist/react/hooks/index.d.ts +21 -0
- package/dist/react/hooks/useAccessWindows.d.ts +66 -0
- package/dist/react/hooks/useCompactMode.d.ts +82 -0
- package/dist/react/hooks/useCompactMode.js +62 -0
- package/dist/react/hooks/useCompactMode.js.map +1 -0
- package/dist/react/hooks/useLiveSelection.d.ts +57 -0
- package/dist/react/hooks/useSimulationPlayback.d.ts +97 -0
- package/dist/react/hooks/useSimulationTime.d.ts +61 -0
- package/dist/react/hooks/useSpacecraftPosition.d.ts +50 -0
- package/dist/react/hooks/useSpacecraftPosition.js +89 -0
- package/dist/react/hooks/useSpacecraftPosition.js.map +1 -0
- package/dist/react/hooks/useTelemetry.d.ts +55 -0
- package/dist/react/hooks/useTelemetry.js +73 -0
- package/dist/react/hooks/useTelemetry.js.map +1 -0
- package/dist/react/hooks/useZendirSession.d.ts +109 -0
- package/dist/react/hooks/useZendirSession.js +148 -0
- package/dist/react/hooks/useZendirSession.js.map +1 -0
- package/dist/react/index.d.ts +74 -0
- package/dist/react/shared/ErrorBoundary.d.ts +63 -0
- package/dist/react/shared/ErrorBoundary.js +142 -0
- package/dist/react/shared/ErrorBoundary.js.map +1 -0
- package/dist/react/shared/Skeleton.d.ts +110 -0
- package/dist/react/shared/Skeleton.js +324 -0
- package/dist/react/shared/Skeleton.js.map +1 -0
- package/dist/react/shared/index.d.ts +12 -0
- package/dist/react/theme/ThemeProvider.d.ts +385 -0
- package/dist/react/theme/ThemeProvider.js +1096 -0
- package/dist/react/theme/ThemeProvider.js.map +1 -0
- package/dist/react/theme/astro-tokens.d.ts +153 -0
- package/dist/react/theme/cardAccent.d.ts +75 -0
- package/dist/react/theme/cardAccent.js +137 -0
- package/dist/react/theme/cardAccent.js.map +1 -0
- package/dist/react/theme/config.d.ts +39 -0
- package/dist/react/theme/index.d.ts +9 -0
- package/dist/react/types.d.ts +360 -0
- package/dist/react/types.js +58 -0
- package/dist/react/types.js.map +1 -0
- package/dist/react/utils/index.d.ts +247 -0
- package/dist/react/utils/index.js +423 -0
- package/dist/react/utils/index.js.map +1 -0
- package/dist/react/visualizations/EclipseTimerCard.d.ts +17 -0
- package/dist/react/visualizations/EclipseTimerCard.js +250 -0
- package/dist/react/visualizations/EclipseTimerCard.js.map +1 -0
- package/dist/react/visualizations/LinkBudgetCard.d.ts +50 -0
- package/dist/react/visualizations/LinkBudgetCard.js +444 -0
- package/dist/react/visualizations/LinkBudgetCard.js.map +1 -0
- package/dist/react/visualizations/NavBallCard.d.ts +17 -0
- package/dist/react/visualizations/NavBallCard.js +243 -0
- package/dist/react/visualizations/NavBallCard.js.map +1 -0
- package/dist/react/visualizations/PropulsionCard.d.ts +37 -0
- package/dist/react/visualizations/PropulsionCard.js +298 -0
- package/dist/react/visualizations/PropulsionCard.js.map +1 -0
- package/dist/react/visualizations/SensorFootprintCard.d.ts +33 -0
- package/dist/react/visualizations/SensorFootprintCard.js +326 -0
- package/dist/react/visualizations/SensorFootprintCard.js.map +1 -0
- package/dist/react/visualizations/ThermalHeatmapCard.d.ts +38 -0
- package/dist/react/visualizations/ThermalHeatmapCard.js +372 -0
- package/dist/react/visualizations/ThermalHeatmapCard.js.map +1 -0
- package/dist/react/visualizations/index.d.ts +17 -0
- package/dist/react.d.ts +1 -0
- package/dist/react.js +421 -0
- package/dist/react.js.map +1 -0
- package/dist/shaders/atmosphere.frag.js +5 -0
- package/dist/shaders/atmosphere.frag.js.map +1 -0
- package/dist/shaders/atmosphere.vert.js +5 -0
- package/dist/shaders/atmosphere.vert.js.map +1 -0
- package/dist/shaders/stars.frag.js +5 -0
- package/dist/shaders/stars.frag.js.map +1 -0
- package/dist/shaders/stars.vert.js +5 -0
- package/dist/shaders/stars.vert.js.map +1 -0
- package/dist/style.css +143 -0
- package/dist/tokens/index.d.ts +296 -0
- package/dist/tokens/index.js +263 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/tokens.css +155 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +220 -0
- package/sdk-stub.js +22 -0
|
@@ -0,0 +1,826 @@
|
|
|
1
|
+
import { EChartsOption } from 'echarts';
|
|
2
|
+
|
|
3
|
+
export type ChartType = 'line' | 'area' | 'bar' | 'scatter' | 'bubble' | 'pie' | 'donut' | 'gauge' | 'radar' | 'heatmap' | 'histogram' | 'gantt' | 'candlestick' | 'boxplot' | 'treemap' | 'sunburst' | 'funnel' | 'sankey' | 'waterfall' | 'rose';
|
|
4
|
+
export type ChartTheme = 'astro-dark' | 'astro-light' | 'purple-hue';
|
|
5
|
+
export interface DataPoint {
|
|
6
|
+
/** X-axis value (time, category, or number) */
|
|
7
|
+
x: number | string | Date;
|
|
8
|
+
/** Y-axis value */
|
|
9
|
+
y: number;
|
|
10
|
+
/** Optional label */
|
|
11
|
+
label?: string;
|
|
12
|
+
/** Optional category for grouping */
|
|
13
|
+
category?: string;
|
|
14
|
+
/** Optional color for this data point (used in pie/donut/histogram charts) */
|
|
15
|
+
color?: string;
|
|
16
|
+
/** Optional metadata */
|
|
17
|
+
meta?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export interface TimeSeriesPoint {
|
|
20
|
+
/** Timestamp (Unix ms or Date) */
|
|
21
|
+
time: number | Date;
|
|
22
|
+
/** Value */
|
|
23
|
+
value: number;
|
|
24
|
+
/** Optional metadata */
|
|
25
|
+
meta?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export interface SeriesData {
|
|
28
|
+
/** Unique series identifier */
|
|
29
|
+
id: string;
|
|
30
|
+
/** Display name */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Data points (heatmap uses [x, y, value][]) */
|
|
33
|
+
data: DataPoint[] | TimeSeriesPoint[] | number[] | [number, number][] | [number, number, number][];
|
|
34
|
+
/** Series type override */
|
|
35
|
+
type?: ChartType;
|
|
36
|
+
/** Series color (uses theme palette if not specified) */
|
|
37
|
+
color?: string;
|
|
38
|
+
/** Y-axis index for dual-axis charts */
|
|
39
|
+
yAxisIndex?: number;
|
|
40
|
+
/** Line style options */
|
|
41
|
+
lineStyle?: LineStyleOptions;
|
|
42
|
+
/** Area style options */
|
|
43
|
+
areaStyle?: AreaStyleOptions;
|
|
44
|
+
/** Symbol/marker options */
|
|
45
|
+
symbol?: SymbolOptions;
|
|
46
|
+
/** Whether to show in legend */
|
|
47
|
+
showInLegend?: boolean;
|
|
48
|
+
/** Stack group name (for stacked charts) */
|
|
49
|
+
stack?: string;
|
|
50
|
+
/** Smooth line */
|
|
51
|
+
smooth?: boolean | number;
|
|
52
|
+
/**
|
|
53
|
+
* Property key for auto-configuration (e.g., 'temperature', 'battery')
|
|
54
|
+
* Auto-provides icon, unit, and thresholds from PROPERTY_PRESETS
|
|
55
|
+
*/
|
|
56
|
+
property?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Icon name to display in legend and tooltips
|
|
59
|
+
* Overrides property preset icon
|
|
60
|
+
*/
|
|
61
|
+
icon?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Unit of measurement (e.g., '°C', 'W', '%')
|
|
64
|
+
* Overrides property preset unit
|
|
65
|
+
*/
|
|
66
|
+
unit?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Status thresholds for auto-deriving status from latest value
|
|
69
|
+
* Overrides property preset thresholds
|
|
70
|
+
*/
|
|
71
|
+
thresholds?: {
|
|
72
|
+
/** Value at or above which status becomes 'critical' */
|
|
73
|
+
critical?: number;
|
|
74
|
+
/** Value at or above which status becomes 'serious' */
|
|
75
|
+
serious?: number;
|
|
76
|
+
/** Value at or above which status becomes 'caution' */
|
|
77
|
+
caution?: number;
|
|
78
|
+
/** Value at or below which status becomes 'caution' */
|
|
79
|
+
cautionLow?: number;
|
|
80
|
+
/** Value at or below which status becomes 'critical' */
|
|
81
|
+
criticalLow?: number;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Override status (bypasses auto-derivation)
|
|
85
|
+
*/
|
|
86
|
+
status?: 'off' | 'standby' | 'normal' | 'caution' | 'serious' | 'critical';
|
|
87
|
+
}
|
|
88
|
+
export interface LineStyleOptions {
|
|
89
|
+
width?: number;
|
|
90
|
+
type?: 'solid' | 'dashed' | 'dotted';
|
|
91
|
+
opacity?: number;
|
|
92
|
+
dashOffset?: number;
|
|
93
|
+
}
|
|
94
|
+
export interface AreaStyleOptions {
|
|
95
|
+
opacity?: number;
|
|
96
|
+
color?: string | GradientOptions;
|
|
97
|
+
}
|
|
98
|
+
export interface GradientOptions {
|
|
99
|
+
type: 'linear' | 'radial';
|
|
100
|
+
colorStops: Array<{
|
|
101
|
+
offset: number;
|
|
102
|
+
color: string;
|
|
103
|
+
}>;
|
|
104
|
+
direction?: 'vertical' | 'horizontal';
|
|
105
|
+
}
|
|
106
|
+
export interface SymbolOptions {
|
|
107
|
+
type?: 'circle' | 'rect' | 'roundRect' | 'triangle' | 'diamond' | 'pin' | 'arrow' | 'none';
|
|
108
|
+
size?: number | [number, number];
|
|
109
|
+
color?: string;
|
|
110
|
+
borderColor?: string;
|
|
111
|
+
borderWidth?: number;
|
|
112
|
+
}
|
|
113
|
+
export interface AxisOptions {
|
|
114
|
+
/** Axis type */
|
|
115
|
+
type?: 'value' | 'category' | 'time' | 'log';
|
|
116
|
+
/** Axis name/label */
|
|
117
|
+
name?: string;
|
|
118
|
+
/** Name location */
|
|
119
|
+
nameLocation?: 'start' | 'middle' | 'end';
|
|
120
|
+
/** Minimum value (auto if not specified) */
|
|
121
|
+
min?: number | 'auto' | 'dataMin';
|
|
122
|
+
/** Maximum value (auto if not specified) */
|
|
123
|
+
max?: number | 'auto' | 'dataMax';
|
|
124
|
+
/** Axis position */
|
|
125
|
+
position?: 'left' | 'right' | 'top' | 'bottom';
|
|
126
|
+
/** Show grid lines */
|
|
127
|
+
showGrid?: boolean;
|
|
128
|
+
/** Show axis line */
|
|
129
|
+
showLine?: boolean;
|
|
130
|
+
/** Show axis labels */
|
|
131
|
+
showLabels?: boolean;
|
|
132
|
+
/** Label formatter */
|
|
133
|
+
labelFormatter?: (value: number | string) => string;
|
|
134
|
+
/** Split number (approximate tick count) */
|
|
135
|
+
splitNumber?: number;
|
|
136
|
+
/** Inverse axis direction */
|
|
137
|
+
inverse?: boolean;
|
|
138
|
+
/** Unit suffix for labels */
|
|
139
|
+
unit?: string;
|
|
140
|
+
/** Split line (grid) options */
|
|
141
|
+
splitLine?: {
|
|
142
|
+
show?: boolean;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
export interface ZoomOptions {
|
|
146
|
+
/** Enable zoom */
|
|
147
|
+
enabled?: boolean;
|
|
148
|
+
/** Zoom type */
|
|
149
|
+
type?: 'inside' | 'slider' | 'both';
|
|
150
|
+
/** Zoom axis */
|
|
151
|
+
axis?: 'x' | 'y' | 'both';
|
|
152
|
+
/** Initial zoom range (0-100) */
|
|
153
|
+
start?: number;
|
|
154
|
+
end?: number;
|
|
155
|
+
/** Minimum zoom span */
|
|
156
|
+
minSpan?: number;
|
|
157
|
+
/** Maximum zoom span */
|
|
158
|
+
maxSpan?: number;
|
|
159
|
+
}
|
|
160
|
+
export interface TooltipOptions {
|
|
161
|
+
/** Enable tooltip */
|
|
162
|
+
enabled?: boolean;
|
|
163
|
+
/** Trigger type */
|
|
164
|
+
trigger?: 'item' | 'axis' | 'none';
|
|
165
|
+
/** Show crosshair */
|
|
166
|
+
crosshair?: boolean | 'x' | 'y' | 'both';
|
|
167
|
+
/** Custom formatter */
|
|
168
|
+
formatter?: (params: unknown) => string;
|
|
169
|
+
/** Confine tooltip to chart area */
|
|
170
|
+
confine?: boolean;
|
|
171
|
+
}
|
|
172
|
+
export interface LegendOptions {
|
|
173
|
+
/** Show legend */
|
|
174
|
+
show?: boolean;
|
|
175
|
+
/** Legend position */
|
|
176
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
177
|
+
/** Legend orientation */
|
|
178
|
+
orient?: 'horizontal' | 'vertical';
|
|
179
|
+
/** Allow clicking to toggle series */
|
|
180
|
+
interactive?: boolean;
|
|
181
|
+
/** Maximum items per row/column */
|
|
182
|
+
itemsPerLine?: number;
|
|
183
|
+
}
|
|
184
|
+
export interface BrushOptions {
|
|
185
|
+
/** Enable brush selection */
|
|
186
|
+
enabled?: boolean;
|
|
187
|
+
/** Brush type */
|
|
188
|
+
type?: 'rect' | 'polygon' | 'lineX' | 'lineY';
|
|
189
|
+
/** Brush mode */
|
|
190
|
+
mode?: 'single' | 'multiple';
|
|
191
|
+
}
|
|
192
|
+
export interface MarkLineOptions {
|
|
193
|
+
/** Mark line data */
|
|
194
|
+
data: Array<{
|
|
195
|
+
/** Line type */
|
|
196
|
+
type?: 'min' | 'max' | 'average' | 'median';
|
|
197
|
+
/** Fixed Y value */
|
|
198
|
+
yAxis?: number;
|
|
199
|
+
/** Fixed X value */
|
|
200
|
+
xAxis?: number | string;
|
|
201
|
+
/** Label */
|
|
202
|
+
label?: string;
|
|
203
|
+
/** Line style */
|
|
204
|
+
lineStyle?: LineStyleOptions;
|
|
205
|
+
/** Line color */
|
|
206
|
+
color?: string;
|
|
207
|
+
}>;
|
|
208
|
+
}
|
|
209
|
+
export interface MarkAreaOptions {
|
|
210
|
+
/** Mark area data */
|
|
211
|
+
data: Array<[
|
|
212
|
+
{
|
|
213
|
+
xAxis?: number | string;
|
|
214
|
+
yAxis?: number;
|
|
215
|
+
name?: string;
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
xAxis?: number | string;
|
|
219
|
+
yAxis?: number;
|
|
220
|
+
}
|
|
221
|
+
]>;
|
|
222
|
+
/** Area style */
|
|
223
|
+
itemStyle?: {
|
|
224
|
+
color?: string;
|
|
225
|
+
opacity?: number;
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
export interface AnnotationOptions {
|
|
229
|
+
/** Mark lines (thresholds, averages) */
|
|
230
|
+
markLines?: MarkLineOptions;
|
|
231
|
+
/** Mark areas (regions, events) */
|
|
232
|
+
markAreas?: MarkAreaOptions;
|
|
233
|
+
/** Mark points */
|
|
234
|
+
markPoints?: Array<{
|
|
235
|
+
coord: [number | string, number];
|
|
236
|
+
name?: string;
|
|
237
|
+
symbol?: string;
|
|
238
|
+
symbolSize?: number;
|
|
239
|
+
itemStyle?: {
|
|
240
|
+
color?: string;
|
|
241
|
+
};
|
|
242
|
+
}>;
|
|
243
|
+
}
|
|
244
|
+
export interface RealTimeOptions {
|
|
245
|
+
/** Enable real-time mode */
|
|
246
|
+
enabled?: boolean;
|
|
247
|
+
/** Maximum data points to keep */
|
|
248
|
+
maxPoints?: number;
|
|
249
|
+
/** Time window in milliseconds */
|
|
250
|
+
timeWindow?: number;
|
|
251
|
+
/** Animation duration for updates */
|
|
252
|
+
animationDuration?: number;
|
|
253
|
+
/** Whether to shift data (sliding window) */
|
|
254
|
+
shift?: boolean;
|
|
255
|
+
}
|
|
256
|
+
/** Context passed to getExportFileName for dynamic filename generation */
|
|
257
|
+
export interface ExportFileNameContext {
|
|
258
|
+
/** Chart title */
|
|
259
|
+
title?: string;
|
|
260
|
+
/** Chart subtitle */
|
|
261
|
+
subtitle?: string;
|
|
262
|
+
/** Series display names in order */
|
|
263
|
+
seriesNames: string[];
|
|
264
|
+
/** Chart type (line, area, bar, etc.) */
|
|
265
|
+
chartType: string;
|
|
266
|
+
}
|
|
267
|
+
export interface ExportOptions {
|
|
268
|
+
/** Enable export button */
|
|
269
|
+
enabled?: boolean;
|
|
270
|
+
/** Export formats (png, jpeg, svg for image; csv, json for data) */
|
|
271
|
+
formats?: ('png' | 'jpeg' | 'jpg' | 'svg' | 'csv' | 'json')[];
|
|
272
|
+
/** Static file name prefix (overridden by getExportFileName if provided) */
|
|
273
|
+
fileName?: string;
|
|
274
|
+
/** Dynamic filename from chart title, series names, and type */
|
|
275
|
+
getExportFileName?: (context: ExportFileNameContext) => string;
|
|
276
|
+
/** Image scale factor */
|
|
277
|
+
pixelRatio?: number;
|
|
278
|
+
/** Background color for export */
|
|
279
|
+
backgroundColor?: string;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Info tooltip configuration for chart header
|
|
283
|
+
* Shows an info icon (ⓘ) in top-right corner that reveals helpful information
|
|
284
|
+
*/
|
|
285
|
+
export interface InfoTooltipOptions {
|
|
286
|
+
/** Tooltip content - can be string or React node */
|
|
287
|
+
content: string | React.ReactNode;
|
|
288
|
+
/** Custom icon (defaults to info circle) */
|
|
289
|
+
icon?: React.ReactNode;
|
|
290
|
+
/** Tooltip position */
|
|
291
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
292
|
+
/** Maximum width of tooltip content */
|
|
293
|
+
maxWidth?: number;
|
|
294
|
+
}
|
|
295
|
+
/** Status types for chart header icon */
|
|
296
|
+
export type ChartStatus = 'off' | 'standby' | 'normal' | 'caution' | 'serious' | 'critical';
|
|
297
|
+
export interface AstroChartProps {
|
|
298
|
+
/** Chart type */
|
|
299
|
+
type: ChartType;
|
|
300
|
+
/** Series data */
|
|
301
|
+
series: SeriesData[];
|
|
302
|
+
/** Chart title */
|
|
303
|
+
title?: string;
|
|
304
|
+
/** Chart subtitle */
|
|
305
|
+
subtitle?: string;
|
|
306
|
+
/**
|
|
307
|
+
* Icon name to display in chart header (uses AstroIcon)
|
|
308
|
+
* Shows before the chart title
|
|
309
|
+
*/
|
|
310
|
+
icon?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Status for the header icon (shows as colored dot)
|
|
313
|
+
* Uses AstroUXDS status colors
|
|
314
|
+
*/
|
|
315
|
+
iconStatus?: ChartStatus;
|
|
316
|
+
/**
|
|
317
|
+
* Status message shown on hover over the status icon
|
|
318
|
+
*/
|
|
319
|
+
statusMessage?: string;
|
|
320
|
+
/**
|
|
321
|
+
* Show status badge in header (for bold/minimal themes)
|
|
322
|
+
* Displays status label text alongside the accent line
|
|
323
|
+
* @default false
|
|
324
|
+
*/
|
|
325
|
+
showStatusBadge?: boolean;
|
|
326
|
+
/** Chart width (default: 100%) */
|
|
327
|
+
width?: number | string;
|
|
328
|
+
/** Chart height (default: 400px) */
|
|
329
|
+
height?: number | string;
|
|
330
|
+
/** X-axis options */
|
|
331
|
+
xAxis?: AxisOptions;
|
|
332
|
+
/** Y-axis options (single or array for dual axis) */
|
|
333
|
+
yAxis?: AxisOptions | AxisOptions[];
|
|
334
|
+
/** Tooltip options */
|
|
335
|
+
tooltip?: TooltipOptions;
|
|
336
|
+
/** Legend options */
|
|
337
|
+
legend?: LegendOptions;
|
|
338
|
+
/** Zoom/pan options */
|
|
339
|
+
zoom?: ZoomOptions;
|
|
340
|
+
/** Brush selection options */
|
|
341
|
+
brush?: BrushOptions;
|
|
342
|
+
/** Annotations (mark lines, areas, points) */
|
|
343
|
+
annotations?: AnnotationOptions;
|
|
344
|
+
/** Real-time streaming options */
|
|
345
|
+
realTime?: RealTimeOptions;
|
|
346
|
+
/** Export options */
|
|
347
|
+
export?: ExportOptions;
|
|
348
|
+
/** Loading state */
|
|
349
|
+
loading?: boolean;
|
|
350
|
+
/** Empty state message */
|
|
351
|
+
emptyMessage?: string;
|
|
352
|
+
/** Theme override */
|
|
353
|
+
theme?: ChartTheme;
|
|
354
|
+
/**
|
|
355
|
+
* Info tooltip shown as ⓘ icon in top-right corner
|
|
356
|
+
* SDK developers can define this to provide contextual help
|
|
357
|
+
*/
|
|
358
|
+
infoTooltip?: InfoTooltipOptions;
|
|
359
|
+
/**
|
|
360
|
+
* Hide chart axes (useful for pie, donut, gauge, radar)
|
|
361
|
+
* When true, removes axis lines, labels, and grid
|
|
362
|
+
*/
|
|
363
|
+
hideAxes?: boolean;
|
|
364
|
+
/**
|
|
365
|
+
* Compact axis mode - hides axis name labels by default for more chart space.
|
|
366
|
+
* Axis names are shown on hover tooltip instead.
|
|
367
|
+
* Set to false to always show axis name labels.
|
|
368
|
+
* @default true
|
|
369
|
+
*/
|
|
370
|
+
compactAxes?: boolean;
|
|
371
|
+
/** Custom ECharts options (advanced) */
|
|
372
|
+
echartsOptions?: Partial<EChartsOption>;
|
|
373
|
+
/**
|
|
374
|
+
* ECharts renderer: 'svg' gives sharper text (recommended); 'canvas' can be faster for very large datasets.
|
|
375
|
+
* @default 'svg'
|
|
376
|
+
*/
|
|
377
|
+
renderer?: 'canvas' | 'svg';
|
|
378
|
+
/** Chart instance ref callback */
|
|
379
|
+
onChartReady?: (chart: unknown) => void;
|
|
380
|
+
/** Click handler */
|
|
381
|
+
onClick?: (params: ChartEventParams) => void;
|
|
382
|
+
/** Hover handler */
|
|
383
|
+
onHover?: (params: ChartEventParams) => void;
|
|
384
|
+
/** Zoom change handler */
|
|
385
|
+
onZoomChange?: (params: ZoomEventParams) => void;
|
|
386
|
+
/** Brush selection handler */
|
|
387
|
+
onBrushSelect?: (params: BrushEventParams) => void;
|
|
388
|
+
/** Custom CSS class */
|
|
389
|
+
className?: string;
|
|
390
|
+
/** Custom inline styles */
|
|
391
|
+
style?: React.CSSProperties;
|
|
392
|
+
/** ARIA label for accessibility */
|
|
393
|
+
ariaLabel?: string;
|
|
394
|
+
}
|
|
395
|
+
export interface ChartEventParams {
|
|
396
|
+
/** Event type */
|
|
397
|
+
type: string;
|
|
398
|
+
/** Series index */
|
|
399
|
+
seriesIndex?: number;
|
|
400
|
+
/** Series name */
|
|
401
|
+
seriesName?: string;
|
|
402
|
+
/** Data index */
|
|
403
|
+
dataIndex?: number;
|
|
404
|
+
/** Data value */
|
|
405
|
+
value?: number | string | number[];
|
|
406
|
+
/** Data name */
|
|
407
|
+
name?: string;
|
|
408
|
+
/** Original event */
|
|
409
|
+
event?: MouseEvent;
|
|
410
|
+
}
|
|
411
|
+
export interface ZoomEventParams {
|
|
412
|
+
/** Start percentage (0-100) */
|
|
413
|
+
start: number;
|
|
414
|
+
/** End percentage (0-100) */
|
|
415
|
+
end: number;
|
|
416
|
+
/** Start value */
|
|
417
|
+
startValue?: number | string;
|
|
418
|
+
/** End value */
|
|
419
|
+
endValue?: number | string;
|
|
420
|
+
}
|
|
421
|
+
export interface BrushEventParams {
|
|
422
|
+
/** Selected areas */
|
|
423
|
+
areas: Array<{
|
|
424
|
+
coordRange: [number, number][];
|
|
425
|
+
coordRanges: [number, number][][];
|
|
426
|
+
}>;
|
|
427
|
+
/** Selected series data */
|
|
428
|
+
selected: Array<{
|
|
429
|
+
seriesIndex: number;
|
|
430
|
+
dataIndex: number[];
|
|
431
|
+
}>;
|
|
432
|
+
}
|
|
433
|
+
export interface ChartPreset {
|
|
434
|
+
/** Preset name */
|
|
435
|
+
name: string;
|
|
436
|
+
/** Base chart type */
|
|
437
|
+
type: ChartType;
|
|
438
|
+
/** Default options */
|
|
439
|
+
defaults: Partial<AstroChartProps>;
|
|
440
|
+
/** Series transformer */
|
|
441
|
+
transformSeries?: (series: SeriesData[]) => SeriesData[];
|
|
442
|
+
/** Options transformer */
|
|
443
|
+
transformOptions?: (options: EChartsOption) => EChartsOption;
|
|
444
|
+
}
|
|
445
|
+
/** Power system chart data */
|
|
446
|
+
export interface PowerChartData {
|
|
447
|
+
time: number;
|
|
448
|
+
solarPower: number;
|
|
449
|
+
batteryPercent: number;
|
|
450
|
+
netPower: number;
|
|
451
|
+
consumption: number;
|
|
452
|
+
eclipse?: boolean;
|
|
453
|
+
voltage?: number;
|
|
454
|
+
}
|
|
455
|
+
/** Attitude chart data */
|
|
456
|
+
export interface AttitudeChartData {
|
|
457
|
+
time: number;
|
|
458
|
+
roll: number;
|
|
459
|
+
pitch: number;
|
|
460
|
+
yaw: number;
|
|
461
|
+
pointingError?: number;
|
|
462
|
+
angularVelocity?: number;
|
|
463
|
+
}
|
|
464
|
+
/** Thermal chart data */
|
|
465
|
+
export interface ThermalChartData {
|
|
466
|
+
time: number;
|
|
467
|
+
zones: Record<string, number>;
|
|
468
|
+
averageTemp?: number;
|
|
469
|
+
}
|
|
470
|
+
/** Link budget chart data */
|
|
471
|
+
export interface LinkBudgetChartData {
|
|
472
|
+
time: number;
|
|
473
|
+
signalStrength: number;
|
|
474
|
+
noiseFloor: number;
|
|
475
|
+
margin: number;
|
|
476
|
+
elevation?: number;
|
|
477
|
+
}
|
|
478
|
+
/** Telemetry stream point */
|
|
479
|
+
export interface TelemetryStreamPoint {
|
|
480
|
+
timestamp: number;
|
|
481
|
+
parameter: string;
|
|
482
|
+
value: number;
|
|
483
|
+
unit?: string;
|
|
484
|
+
/** Status using AstroUXDS terminology */
|
|
485
|
+
status?: 'normal' | 'caution' | 'serious' | 'critical';
|
|
486
|
+
}
|
|
487
|
+
/** Contact window / pass data (Gantt-style) */
|
|
488
|
+
export interface ContactWindowData {
|
|
489
|
+
/** Ground station or asset ID */
|
|
490
|
+
id: string;
|
|
491
|
+
/** Display name */
|
|
492
|
+
name: string;
|
|
493
|
+
/** Contact windows */
|
|
494
|
+
windows: {
|
|
495
|
+
start: number;
|
|
496
|
+
end: number;
|
|
497
|
+
elevation?: number;
|
|
498
|
+
signalQuality?: 'good' | 'marginal' | 'poor';
|
|
499
|
+
label?: string;
|
|
500
|
+
}[];
|
|
501
|
+
}
|
|
502
|
+
/** Spectrum / waterfall data point */
|
|
503
|
+
export interface SpectrumDataPoint {
|
|
504
|
+
/** Frequency bin (Hz or normalized) */
|
|
505
|
+
frequency: number;
|
|
506
|
+
/** Power/amplitude (dBm or dB) */
|
|
507
|
+
power: number;
|
|
508
|
+
/** Timestamp for waterfall */
|
|
509
|
+
time?: number;
|
|
510
|
+
}
|
|
511
|
+
/** Maneuver / delta-V budget data */
|
|
512
|
+
export interface ManeuverBudgetData {
|
|
513
|
+
/** Maneuver name */
|
|
514
|
+
name: string;
|
|
515
|
+
/** Delta-V (m/s) */
|
|
516
|
+
deltaV: number;
|
|
517
|
+
/** Type category */
|
|
518
|
+
type: 'planned' | 'executed' | 'remaining' | 'margin';
|
|
519
|
+
/** Optional date */
|
|
520
|
+
date?: number;
|
|
521
|
+
}
|
|
522
|
+
/** Eclipse / sunlight timeline data */
|
|
523
|
+
export interface EclipseTimelineData {
|
|
524
|
+
/** Start time (ms) */
|
|
525
|
+
start: number;
|
|
526
|
+
/** End time (ms) */
|
|
527
|
+
end: number;
|
|
528
|
+
/** Eclipse type */
|
|
529
|
+
type: 'umbra' | 'penumbra' | 'sunlight';
|
|
530
|
+
/** Orbit number */
|
|
531
|
+
orbitNumber?: number;
|
|
532
|
+
}
|
|
533
|
+
/** Bubble chart data point */
|
|
534
|
+
export interface BubbleDataPoint {
|
|
535
|
+
/** X value */
|
|
536
|
+
x: number | string | Date;
|
|
537
|
+
/** Y value */
|
|
538
|
+
y: number;
|
|
539
|
+
/** Bubble size */
|
|
540
|
+
size: number;
|
|
541
|
+
/** Optional color category */
|
|
542
|
+
category?: string;
|
|
543
|
+
/** Label */
|
|
544
|
+
label?: string;
|
|
545
|
+
}
|
|
546
|
+
/** Rose diagram data (polar histogram for directional data) */
|
|
547
|
+
export interface RoseDiagramData {
|
|
548
|
+
/** Direction/angle (degrees, 0-360) */
|
|
549
|
+
direction: number;
|
|
550
|
+
/** Magnitude/frequency */
|
|
551
|
+
magnitude: number;
|
|
552
|
+
/** Optional category label */
|
|
553
|
+
category?: string;
|
|
554
|
+
}
|
|
555
|
+
/** Heliocentric orbit data */
|
|
556
|
+
export interface HeliocentricOrbitData {
|
|
557
|
+
/** Body/spacecraft name */
|
|
558
|
+
name: string;
|
|
559
|
+
/** X coordinate (AU or km) */
|
|
560
|
+
x: number;
|
|
561
|
+
/** Y coordinate (AU or km) */
|
|
562
|
+
y: number;
|
|
563
|
+
/** Z coordinate (AU or km) - for 3D visualization */
|
|
564
|
+
z?: number;
|
|
565
|
+
/** Orbit path points (for ellipse) - 2D or 3D */
|
|
566
|
+
orbitPath?: {
|
|
567
|
+
x: number;
|
|
568
|
+
y: number;
|
|
569
|
+
z?: number;
|
|
570
|
+
}[];
|
|
571
|
+
/** Body type */
|
|
572
|
+
type?: 'planet' | 'spacecraft' | 'comet' | 'asteroid' | 'satellite' | 'station' | 'probe' | 'debris';
|
|
573
|
+
/** Optional color */
|
|
574
|
+
color?: string;
|
|
575
|
+
/** Optional size */
|
|
576
|
+
size?: number;
|
|
577
|
+
/** Optional description/metadata for tooltip */
|
|
578
|
+
description?: string;
|
|
579
|
+
/** Semi-major axis (AU) - for orbital info */
|
|
580
|
+
semiMajorAxis?: number;
|
|
581
|
+
/** Orbital period (days) */
|
|
582
|
+
period?: number;
|
|
583
|
+
/** Inclination (degrees) - for 3D orbit tilt */
|
|
584
|
+
inclination?: number;
|
|
585
|
+
}
|
|
586
|
+
/** 3D data point for scatter3D, bar3D, etc. */
|
|
587
|
+
export interface Data3DPoint {
|
|
588
|
+
/** X coordinate */
|
|
589
|
+
x: number;
|
|
590
|
+
/** Y coordinate */
|
|
591
|
+
y: number;
|
|
592
|
+
/** Z coordinate */
|
|
593
|
+
z: number;
|
|
594
|
+
/** Optional value (for color mapping, sizing) */
|
|
595
|
+
value?: number;
|
|
596
|
+
/** Optional label */
|
|
597
|
+
label?: string;
|
|
598
|
+
/** Optional category */
|
|
599
|
+
category?: string;
|
|
600
|
+
/** Optional color override */
|
|
601
|
+
color?: string;
|
|
602
|
+
/** Optional size override */
|
|
603
|
+
size?: number;
|
|
604
|
+
/** Optional metadata */
|
|
605
|
+
meta?: Record<string, unknown>;
|
|
606
|
+
}
|
|
607
|
+
/** Scatter3D chart data - for constellation visualization, debris fields */
|
|
608
|
+
export interface Scatter3DData {
|
|
609
|
+
/** Unique identifier */
|
|
610
|
+
id: string;
|
|
611
|
+
/** Display name */
|
|
612
|
+
name: string;
|
|
613
|
+
/** 3D data points */
|
|
614
|
+
data: Data3DPoint[];
|
|
615
|
+
/** Optional symbol size (or function) */
|
|
616
|
+
symbolSize?: number | ((value: number[]) => number);
|
|
617
|
+
/** Optional color (or gradient) */
|
|
618
|
+
color?: string;
|
|
619
|
+
/** Category for grouping */
|
|
620
|
+
category?: string;
|
|
621
|
+
}
|
|
622
|
+
/** Bar3D chart data - for telemetry comparisons across satellites/time */
|
|
623
|
+
export interface Bar3DData {
|
|
624
|
+
/** X-axis value (category: satellite name, subsystem, etc.) */
|
|
625
|
+
x: string | number;
|
|
626
|
+
/** Y-axis value (category: time period, parameter, etc.) */
|
|
627
|
+
y: string | number;
|
|
628
|
+
/** Z-axis value (height/magnitude) */
|
|
629
|
+
z: number;
|
|
630
|
+
/** Optional color */
|
|
631
|
+
color?: string;
|
|
632
|
+
/** Optional label */
|
|
633
|
+
label?: string;
|
|
634
|
+
}
|
|
635
|
+
/** Surface3D chart data - for signal strength maps, thermal surfaces */
|
|
636
|
+
export interface Surface3DData {
|
|
637
|
+
/** 2D array of z-values [x][y] -> z */
|
|
638
|
+
data: number[][];
|
|
639
|
+
/** X-axis range [min, max] */
|
|
640
|
+
xRange?: [number, number];
|
|
641
|
+
/** Y-axis range [min, max] */
|
|
642
|
+
yRange?: [number, number];
|
|
643
|
+
/** Color map name */
|
|
644
|
+
colorMap?: 'jet' | 'viridis' | 'plasma' | 'inferno' | 'magma' | 'thermal' | 'custom';
|
|
645
|
+
/** Custom color stops for 'custom' colorMap */
|
|
646
|
+
colorStops?: Array<{
|
|
647
|
+
offset: number;
|
|
648
|
+
color: string;
|
|
649
|
+
}>;
|
|
650
|
+
/** Wireframe mode */
|
|
651
|
+
wireframe?: boolean;
|
|
652
|
+
}
|
|
653
|
+
/** Globe chart data - for Earth visualization with satellites */
|
|
654
|
+
export interface GlobeData {
|
|
655
|
+
/** Satellites/objects in orbit */
|
|
656
|
+
satellites?: Array<{
|
|
657
|
+
id: string;
|
|
658
|
+
name: string;
|
|
659
|
+
latitude: number;
|
|
660
|
+
longitude: number;
|
|
661
|
+
altitude: number;
|
|
662
|
+
color?: string;
|
|
663
|
+
size?: number;
|
|
664
|
+
category?: string;
|
|
665
|
+
}>;
|
|
666
|
+
/** Ground stations */
|
|
667
|
+
groundStations?: Array<{
|
|
668
|
+
id: string;
|
|
669
|
+
name: string;
|
|
670
|
+
latitude: number;
|
|
671
|
+
longitude: number;
|
|
672
|
+
color?: string;
|
|
673
|
+
size?: number;
|
|
674
|
+
}>;
|
|
675
|
+
/** Ground tracks (satellite paths) */
|
|
676
|
+
groundTracks?: Array<{
|
|
677
|
+
id: string;
|
|
678
|
+
name: string;
|
|
679
|
+
path: Array<{
|
|
680
|
+
latitude: number;
|
|
681
|
+
longitude: number;
|
|
682
|
+
}>;
|
|
683
|
+
color?: string;
|
|
684
|
+
}>;
|
|
685
|
+
/** Coverage areas (footprints) */
|
|
686
|
+
coverageAreas?: Array<{
|
|
687
|
+
id: string;
|
|
688
|
+
name: string;
|
|
689
|
+
polygon: Array<{
|
|
690
|
+
latitude: number;
|
|
691
|
+
longitude: number;
|
|
692
|
+
}>;
|
|
693
|
+
color?: string;
|
|
694
|
+
opacity?: number;
|
|
695
|
+
}>;
|
|
696
|
+
/** Communication/link lines */
|
|
697
|
+
links?: Array<{
|
|
698
|
+
from: {
|
|
699
|
+
latitude: number;
|
|
700
|
+
longitude: number;
|
|
701
|
+
altitude?: number;
|
|
702
|
+
};
|
|
703
|
+
to: {
|
|
704
|
+
latitude: number;
|
|
705
|
+
longitude: number;
|
|
706
|
+
altitude?: number;
|
|
707
|
+
};
|
|
708
|
+
color?: string;
|
|
709
|
+
lineWidth?: number;
|
|
710
|
+
}>;
|
|
711
|
+
}
|
|
712
|
+
/** Lines3D chart data - for debris trajectories, satellite links */
|
|
713
|
+
export interface Lines3DData {
|
|
714
|
+
/** Unique identifier */
|
|
715
|
+
id: string;
|
|
716
|
+
/** Display name */
|
|
717
|
+
name: string;
|
|
718
|
+
/** 3D path points */
|
|
719
|
+
path: Array<{
|
|
720
|
+
x: number;
|
|
721
|
+
y: number;
|
|
722
|
+
z: number;
|
|
723
|
+
}>;
|
|
724
|
+
/** Line color */
|
|
725
|
+
color?: string;
|
|
726
|
+
/** Line width */
|
|
727
|
+
lineWidth?: number;
|
|
728
|
+
/** Line style */
|
|
729
|
+
lineStyle?: 'solid' | 'dashed' | 'dotted';
|
|
730
|
+
/** Show endpoints */
|
|
731
|
+
showEndpoints?: boolean;
|
|
732
|
+
/** Category for grouping */
|
|
733
|
+
category?: string;
|
|
734
|
+
}
|
|
735
|
+
export interface ChartRegistry {
|
|
736
|
+
presets: Map<string, ChartPreset>;
|
|
737
|
+
themes: Map<string, unknown>;
|
|
738
|
+
register: (name: string, preset: ChartPreset) => void;
|
|
739
|
+
get: (name: string) => ChartPreset | undefined;
|
|
740
|
+
}
|
|
741
|
+
export interface ChartSyncGroup {
|
|
742
|
+
/** Group ID */
|
|
743
|
+
id: string;
|
|
744
|
+
/** Chart instances */
|
|
745
|
+
charts: Set<unknown>;
|
|
746
|
+
/** Sync tooltip */
|
|
747
|
+
syncTooltip?: boolean;
|
|
748
|
+
/** Sync zoom */
|
|
749
|
+
syncZoom?: boolean;
|
|
750
|
+
/** Sync crosshair */
|
|
751
|
+
syncCrosshair?: boolean;
|
|
752
|
+
}
|
|
753
|
+
export interface ChartSyncOptions {
|
|
754
|
+
/** Group ID to join */
|
|
755
|
+
groupId?: string;
|
|
756
|
+
/** Sync features */
|
|
757
|
+
sync?: {
|
|
758
|
+
tooltip?: boolean;
|
|
759
|
+
zoom?: boolean;
|
|
760
|
+
crosshair?: boolean;
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
/** Single data point for waterfall/spectrogram display */
|
|
764
|
+
export interface WaterfallDataPoint {
|
|
765
|
+
/** Timestamp */
|
|
766
|
+
time: number | Date;
|
|
767
|
+
/** Frequency values (Hz) */
|
|
768
|
+
frequencies: number[];
|
|
769
|
+
/** Power levels (dBm) at each frequency */
|
|
770
|
+
powers: number[];
|
|
771
|
+
}
|
|
772
|
+
/** Signal marker for waterfall display */
|
|
773
|
+
export interface WaterfallSignalMarker {
|
|
774
|
+
/** Marker ID */
|
|
775
|
+
id: string;
|
|
776
|
+
/** Frequency (Hz) */
|
|
777
|
+
frequency: number;
|
|
778
|
+
/** Bandwidth (Hz) */
|
|
779
|
+
bandwidth?: number;
|
|
780
|
+
/** Signal name/label */
|
|
781
|
+
label: string;
|
|
782
|
+
/** Marker color */
|
|
783
|
+
color?: string;
|
|
784
|
+
}
|
|
785
|
+
/** Doppler track data point */
|
|
786
|
+
export interface DopplerTrackPoint {
|
|
787
|
+
/** Timestamp */
|
|
788
|
+
time: number | Date;
|
|
789
|
+
/** Doppler shift (Hz) */
|
|
790
|
+
dopplerShift: number;
|
|
791
|
+
/** Optional elevation angle */
|
|
792
|
+
elevation?: number;
|
|
793
|
+
}
|
|
794
|
+
/** Satellite pass info for Doppler tracking */
|
|
795
|
+
export interface SatellitePassInfo {
|
|
796
|
+
/** Satellite name */
|
|
797
|
+
name: string;
|
|
798
|
+
/** Acquisition of signal */
|
|
799
|
+
aos: Date;
|
|
800
|
+
/** Loss of signal */
|
|
801
|
+
los: Date;
|
|
802
|
+
/** Time of closest approach */
|
|
803
|
+
tca?: Date;
|
|
804
|
+
/** Max elevation angle */
|
|
805
|
+
maxElevation?: number;
|
|
806
|
+
}
|
|
807
|
+
/** Link margin data point */
|
|
808
|
+
export interface LinkMarginPoint {
|
|
809
|
+
/** Elevation angle (degrees) */
|
|
810
|
+
elevation: number;
|
|
811
|
+
/** Uplink margin (dB) */
|
|
812
|
+
uplinkMargin?: number;
|
|
813
|
+
/** Downlink margin (dB) */
|
|
814
|
+
downlinkMargin?: number;
|
|
815
|
+
}
|
|
816
|
+
/** Coverage grid data for constellation coverage analysis */
|
|
817
|
+
export interface CoverageGridData {
|
|
818
|
+
/** Latitude values */
|
|
819
|
+
latitudes: number[];
|
|
820
|
+
/** Longitude values */
|
|
821
|
+
longitudes: number[];
|
|
822
|
+
/** Coverage values (2D array) */
|
|
823
|
+
coverage: number[][];
|
|
824
|
+
/** Unit for coverage values */
|
|
825
|
+
unit?: string;
|
|
826
|
+
}
|