@marinoscar/platform-web 0.0.0-stage → 0.1.0-next.3
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 +42 -0
- package/LICENSE +21 -0
- package/README.md +96 -2
- package/dist/core/api-client.d.ts +112 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/api-client.js +24 -0
- package/dist/core/api-client.js.map +1 -0
- package/dist/core/host.d.ts +74 -0
- package/dist/core/host.d.ts.map +1 -0
- package/dist/core/host.js +84 -0
- package/dist/core/host.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/settings-page.d.ts +47 -0
- package/dist/core/settings-page.d.ts.map +1 -0
- package/dist/core/settings-page.js +5 -0
- package/dist/core/settings-page.js.map +1 -0
- package/dist/core/viewer.d.ts +14 -0
- package/dist/core/viewer.d.ts.map +1 -0
- package/dist/core/viewer.js +4 -0
- package/dist/core/viewer.js.map +1 -0
- package/dist/doctor/headless/categories.d.ts +31 -0
- package/dist/doctor/headless/categories.d.ts.map +1 -0
- package/dist/doctor/headless/categories.js +41 -0
- package/dist/doctor/headless/categories.js.map +1 -0
- package/dist/doctor/headless/client.d.ts +33 -0
- package/dist/doctor/headless/client.d.ts.map +1 -0
- package/dist/doctor/headless/client.js +31 -0
- package/dist/doctor/headless/client.js.map +1 -0
- package/dist/doctor/headless/contract.d.ts +18 -0
- package/dist/doctor/headless/contract.d.ts.map +1 -0
- package/dist/doctor/headless/contract.js +15 -0
- package/dist/doctor/headless/contract.js.map +1 -0
- package/dist/doctor/headless/index.d.ts +12 -0
- package/dist/doctor/headless/index.d.ts.map +1 -0
- package/dist/doctor/headless/index.js +8 -0
- package/dist/doctor/headless/index.js.map +1 -0
- package/dist/doctor/headless/use-doctor.d.ts +36 -0
- package/dist/doctor/headless/use-doctor.d.ts.map +1 -0
- package/dist/doctor/headless/use-doctor.js +80 -0
- package/dist/doctor/headless/use-doctor.js.map +1 -0
- package/dist/doctor/headless/use-support-bundle-download.d.ts +68 -0
- package/dist/doctor/headless/use-support-bundle-download.d.ts.map +1 -0
- package/dist/doctor/headless/use-support-bundle-download.js +135 -0
- package/dist/doctor/headless/use-support-bundle-download.js.map +1 -0
- package/dist/doctor/internal/relative-time.d.ts +2 -0
- package/dist/doctor/internal/relative-time.d.ts.map +1 -0
- package/dist/doctor/internal/relative-time.js +29 -0
- package/dist/doctor/internal/relative-time.js.map +1 -0
- package/dist/doctor/internal/status-colors.d.ts +5 -0
- package/dist/doctor/internal/status-colors.d.ts.map +1 -0
- package/dist/doctor/internal/status-colors.js +29 -0
- package/dist/doctor/internal/status-colors.js.map +1 -0
- package/dist/doctor/internal/use-is-mounted.d.ts +2 -0
- package/dist/doctor/internal/use-is-mounted.d.ts.map +1 -0
- package/dist/doctor/internal/use-is-mounted.js +15 -0
- package/dist/doctor/internal/use-is-mounted.js.map +1 -0
- package/dist/doctor/ui/check-row.d.ts +54 -0
- package/dist/doctor/ui/check-row.d.ts.map +1 -0
- package/dist/doctor/ui/check-row.js +100 -0
- package/dist/doctor/ui/check-row.js.map +1 -0
- package/dist/doctor/ui/copy.d.ts +3 -0
- package/dist/doctor/ui/copy.d.ts.map +1 -0
- package/dist/doctor/ui/copy.js +6 -0
- package/dist/doctor/ui/copy.js.map +1 -0
- package/dist/doctor/ui/doctor-page.d.ts +50 -0
- package/dist/doctor/ui/doctor-page.d.ts.map +1 -0
- package/dist/doctor/ui/doctor-page.js +152 -0
- package/dist/doctor/ui/doctor-page.js.map +1 -0
- package/dist/doctor/ui/index.d.ts +8 -0
- package/dist/doctor/ui/index.d.ts.map +1 -0
- package/dist/doctor/ui/index.js +7 -0
- package/dist/doctor/ui/index.js.map +1 -0
- package/dist/doctor/ui/settings-page.d.ts +20 -0
- package/dist/doctor/ui/settings-page.d.ts.map +1 -0
- package/dist/doctor/ui/settings-page.js +32 -0
- package/dist/doctor/ui/settings-page.js.map +1 -0
- package/dist/doctor/ui/support-bundle-button.d.ts +37 -0
- package/dist/doctor/ui/support-bundle-button.d.ts.map +1 -0
- package/dist/doctor/ui/support-bundle-button.js +39 -0
- package/dist/doctor/ui/support-bundle-button.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts +106 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts.map +1 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js +58 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js.map +1 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts +43 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts.map +1 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.js +24 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.js.map +1 -0
- package/dist/telemetry/headless/context/telemetryConfig.d.ts +68 -0
- package/dist/telemetry/headless/context/telemetryConfig.d.ts.map +1 -0
- package/dist/telemetry/headless/context/telemetryConfig.js +119 -0
- package/dist/telemetry/headless/context/telemetryConfig.js.map +1 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts +35 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts.map +1 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js +44 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts +40 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.js +111 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts +120 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.js +185 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts +12 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js +36 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts +46 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.js +133 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +147 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.js +231 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts +95 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.js +197 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts +69 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.js +129 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.js.map +1 -0
- package/dist/telemetry/headless/index.d.ts +34 -0
- package/dist/telemetry/headless/index.d.ts.map +1 -0
- package/dist/telemetry/headless/index.js +34 -0
- package/dist/telemetry/headless/index.js.map +1 -0
- package/dist/telemetry/headless/lib/assistantExport.d.ts +12 -0
- package/dist/telemetry/headless/lib/assistantExport.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/assistantExport.js +116 -0
- package/dist/telemetry/headless/lib/assistantExport.js.map +1 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts +91 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js +246 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js.map +1 -0
- package/dist/telemetry/headless/lib/dashboardState.d.ts +58 -0
- package/dist/telemetry/headless/lib/dashboardState.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/dashboardState.js +153 -0
- package/dist/telemetry/headless/lib/dashboardState.js.map +1 -0
- package/dist/telemetry/headless/lib/explorerHandoff.d.ts +62 -0
- package/dist/telemetry/headless/lib/explorerHandoff.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/explorerHandoff.js +77 -0
- package/dist/telemetry/headless/lib/explorerHandoff.js.map +1 -0
- package/dist/telemetry/headless/lib/format.d.ts +113 -0
- package/dist/telemetry/headless/lib/format.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/format.js +280 -0
- package/dist/telemetry/headless/lib/format.js.map +1 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.d.ts +44 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.js +61 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.js.map +1 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts +15 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.js +33 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.js.map +1 -0
- package/dist/telemetry/headless/lib/queryHistory.d.ts +20 -0
- package/dist/telemetry/headless/lib/queryHistory.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/queryHistory.js +53 -0
- package/dist/telemetry/headless/lib/queryHistory.js.map +1 -0
- package/dist/telemetry/headless/lib/starterQueries.d.ts +48 -0
- package/dist/telemetry/headless/lib/starterQueries.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/starterQueries.js +84 -0
- package/dist/telemetry/headless/lib/starterQueries.js.map +1 -0
- package/dist/telemetry/headless/lib/traceLink.d.ts +26 -0
- package/dist/telemetry/headless/lib/traceLink.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/traceLink.js +32 -0
- package/dist/telemetry/headless/lib/traceLink.js.map +1 -0
- package/dist/telemetry/headless/lib/unknownRoutes.d.ts +23 -0
- package/dist/telemetry/headless/lib/unknownRoutes.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/unknownRoutes.js +35 -0
- package/dist/telemetry/headless/lib/unknownRoutes.js.map +1 -0
- package/dist/telemetry/headless/services/client.d.ts +144 -0
- package/dist/telemetry/headless/services/client.d.ts.map +1 -0
- package/dist/telemetry/headless/services/client.js +144 -0
- package/dist/telemetry/headless/services/client.js.map +1 -0
- package/dist/telemetry/headless/services/telemetry.d.ts +483 -0
- package/dist/telemetry/headless/services/telemetry.d.ts.map +1 -0
- package/dist/telemetry/headless/services/telemetry.js +190 -0
- package/dist/telemetry/headless/services/telemetry.js.map +1 -0
- package/dist/telemetry/headless/services/telemetryDashboard.d.ts +321 -0
- package/dist/telemetry/headless/services/telemetryDashboard.d.ts.map +1 -0
- package/dist/telemetry/headless/services/telemetryDashboard.js +103 -0
- package/dist/telemetry/headless/services/telemetryDashboard.js.map +1 -0
- package/dist/telemetry/internal/useIsMounted.d.ts +9 -0
- package/dist/telemetry/internal/useIsMounted.d.ts.map +1 -0
- package/dist/telemetry/internal/useIsMounted.js +19 -0
- package/dist/telemetry/internal/useIsMounted.js.map +1 -0
- package/dist/telemetry/internal/useVisiblePolling.d.ts +55 -0
- package/dist/telemetry/internal/useVisiblePolling.d.ts.map +1 -0
- package/dist/telemetry/internal/useVisiblePolling.js +96 -0
- package/dist/telemetry/internal/useVisiblePolling.js.map +1 -0
- package/dist/telemetry/internal/visuallyHidden.d.ts +12 -0
- package/dist/telemetry/internal/visuallyHidden.d.ts.map +1 -0
- package/dist/telemetry/internal/visuallyHidden.js +15 -0
- package/dist/telemetry/internal/visuallyHidden.js.map +1 -0
- package/dist/telemetry/theme/augment.d.ts +65 -0
- package/dist/telemetry/theme/augment.d.ts.map +1 -0
- package/dist/telemetry/theme/augment.js +37 -0
- package/dist/telemetry/theme/augment.js.map +1 -0
- package/dist/telemetry/theme/telemetryTokens.d.ts +121 -0
- package/dist/telemetry/theme/telemetryTokens.d.ts.map +1 -0
- package/dist/telemetry/theme/telemetryTokens.js +129 -0
- package/dist/telemetry/theme/telemetryTokens.js.map +1 -0
- package/dist/telemetry/ui/admin.d.ts +35 -0
- package/dist/telemetry/ui/admin.d.ts.map +1 -0
- package/dist/telemetry/ui/admin.js +58 -0
- package/dist/telemetry/ui/admin.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantContainer.d.ts +35 -0
- package/dist/telemetry/ui/components/AssistantContainer.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantContainer.js +83 -0
- package/dist/telemetry/ui/components/AssistantContainer.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantPanel.d.ts +22 -0
- package/dist/telemetry/ui/components/AssistantPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantPanel.js +150 -0
- package/dist/telemetry/ui/components/AssistantPanel.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantReport.d.ts +13 -0
- package/dist/telemetry/ui/components/AssistantReport.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantReport.js +89 -0
- package/dist/telemetry/ui/components/AssistantReport.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantTimeline.d.ts +10 -0
- package/dist/telemetry/ui/components/AssistantTimeline.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantTimeline.js +84 -0
- package/dist/telemetry/ui/components/AssistantTimeline.js.map +1 -0
- package/dist/telemetry/ui/components/ResultsGrid.d.ts +10 -0
- package/dist/telemetry/ui/components/ResultsGrid.d.ts.map +1 -0
- package/dist/telemetry/ui/components/ResultsGrid.js +71 -0
- package/dist/telemetry/ui/components/ResultsGrid.js.map +1 -0
- package/dist/telemetry/ui/components/SchemaPanel.d.ts +9 -0
- package/dist/telemetry/ui/components/SchemaPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/SchemaPanel.js +42 -0
- package/dist/telemetry/ui/components/SchemaPanel.js.map +1 -0
- package/dist/telemetry/ui/components/SqlEditor.d.ts +21 -0
- package/dist/telemetry/ui/components/SqlEditor.d.ts.map +1 -0
- package/dist/telemetry/ui/components/SqlEditor.js +60 -0
- package/dist/telemetry/ui/components/SqlEditor.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts +14 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.js +243 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts +12 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.js +21 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts +23 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.js +138 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.d.ts +3 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.js +14 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts +17 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +70 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts +39 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +143 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts +58 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.js +62 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts +21 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.js +96 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts +13 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.js +82 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts +8 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +34 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts +19 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.js +61 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts +12 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js +36 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts +35 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.js +68 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts +9 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.js +96 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +75 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +247 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts +19 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +64 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts +74 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +126 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/severity.d.ts +43 -0
- package/dist/telemetry/ui/components/dashboard/severity.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/severity.js +66 -0
- package/dist/telemetry/ui/components/dashboard/severity.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts +11 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.js +20 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.js.map +1 -0
- package/dist/telemetry/ui/dashboard-page.d.ts +2 -0
- package/dist/telemetry/ui/dashboard-page.d.ts.map +1 -0
- package/dist/telemetry/ui/dashboard-page.js +6 -0
- package/dist/telemetry/ui/dashboard-page.js.map +1 -0
- package/dist/telemetry/ui/explorer-page.d.ts +2 -0
- package/dist/telemetry/ui/explorer-page.d.ts.map +1 -0
- package/dist/telemetry/ui/explorer-page.js +6 -0
- package/dist/telemetry/ui/explorer-page.js.map +1 -0
- package/dist/telemetry/ui/index.d.ts +6 -0
- package/dist/telemetry/ui/index.d.ts.map +1 -0
- package/dist/telemetry/ui/index.js +10 -0
- package/dist/telemetry/ui/index.js.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts +14 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.js +286 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.js.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts +15 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.js +197 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.js.map +1 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts +28 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +278 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -0
- package/dist/telemetry/ui/settings-page.d.ts +2 -0
- package/dist/telemetry/ui/settings-page.d.ts.map +1 -0
- package/dist/telemetry/ui/settings-page.js +6 -0
- package/dist/telemetry/ui/settings-page.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +4 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/test-platform-host.d.ts +108 -0
- package/dist/testing/test-platform-host.d.ts.map +1 -0
- package/dist/testing/test-platform-host.js +101 -0
- package/dist/testing/test-platform-host.js.map +1 -0
- package/package.json +132 -4
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The GreptimeDB connection — a SECTION of `/admin/settings/telemetry`
|
|
4
|
+
* (issue #558, epic #528), not a card or a tab of its own.
|
|
5
|
+
*
|
|
6
|
+
* Two modes, chosen by the Host field alone:
|
|
7
|
+
*
|
|
8
|
+
* - AUTOMATIC (host blank, issues #562, #570): the GreptimeDB deployed with
|
|
9
|
+
* this application. The deployment supplies its address, database and both
|
|
10
|
+
* logins, so the form collects NOTHING else — the port, database and login
|
|
11
|
+
* fields are not rendered, a read-only summary of `deployment` is shown
|
|
12
|
+
* instead, and Test/Save send exactly `{ host: null }`.
|
|
13
|
+
* - CUSTOM (a host typed): an external GreptimeDB. Port, database and both
|
|
14
|
+
* logins are entered here. The passwords are write-only — the fields always
|
|
15
|
+
* render empty, and the helper text says whether blank means "keep the
|
|
16
|
+
* saved one" or "required".
|
|
17
|
+
*
|
|
18
|
+
* Values typed into the custom fields survive clearing the host (so retyping
|
|
19
|
+
* it brings them back) but are never sent while the host is blank.
|
|
20
|
+
*
|
|
21
|
+
* What is NOT here, on purpose: the GreptimeDB server itself (a deployment
|
|
22
|
+
* concern), and the writer login and HTTP port, which only the OTel collector
|
|
23
|
+
* uses and which stay deployment settings.
|
|
24
|
+
*
|
|
25
|
+
* Every write sends `If-Match: <connection version>`; a 409 offers a reload.
|
|
26
|
+
* All controls are disabled without `telemetry:write` — the API is the gate.
|
|
27
|
+
*/
|
|
28
|
+
import { useEffect, useState } from 'react';
|
|
29
|
+
import { Alert, AlertTitle, Box, Button, Chip, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Grid, Paper, Stack, TextField, Typography, } from '@mui/material';
|
|
30
|
+
import { useTelemetryConnection } from '../../headless/hooks/useTelemetryConnection.js';
|
|
31
|
+
import { isTelemetryProbeSkipped, TELEMETRY_CONNECTION_DEFAULTS, } from '../../headless/services/telemetry.js';
|
|
32
|
+
/** The element id the page's other alerts link to. */
|
|
33
|
+
export const TELEMETRY_CONNECTION_SECTION_ID = 'telemetry-connection';
|
|
34
|
+
const SOURCE_LABELS = {
|
|
35
|
+
stored: 'Saved in admin settings',
|
|
36
|
+
environment: 'Deployment default (environment)',
|
|
37
|
+
none: 'Not configured',
|
|
38
|
+
};
|
|
39
|
+
const SOURCE_COLORS = {
|
|
40
|
+
stored: 'success',
|
|
41
|
+
environment: 'info',
|
|
42
|
+
none: 'default',
|
|
43
|
+
};
|
|
44
|
+
const DATABASE_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
45
|
+
function isCustom(connection) {
|
|
46
|
+
return connection.hostMode === 'custom';
|
|
47
|
+
}
|
|
48
|
+
/** A custom connection saved on this page — the only thing "revert" undoes. */
|
|
49
|
+
function isStoredCustom(connection) {
|
|
50
|
+
return connection.source === 'stored' && isCustom(connection);
|
|
51
|
+
}
|
|
52
|
+
function isAutomatic(form) {
|
|
53
|
+
return !form.host.trim();
|
|
54
|
+
}
|
|
55
|
+
function toForm(connection) {
|
|
56
|
+
// Automatic: every custom field starts from the defaults and empty logins —
|
|
57
|
+
// the deployment's logins are not the administrator's to copy.
|
|
58
|
+
const custom = isCustom(connection);
|
|
59
|
+
return {
|
|
60
|
+
host: custom ? (connection.host ?? '') : '',
|
|
61
|
+
pgPort: String((custom && connection.pgPort) || TELEMETRY_CONNECTION_DEFAULTS.pgPort),
|
|
62
|
+
database: (custom && connection.database) || TELEMETRY_CONNECTION_DEFAULTS.database,
|
|
63
|
+
readerUser: custom ? connection.readerUser : '',
|
|
64
|
+
readerPassword: '',
|
|
65
|
+
adminUser: custom ? (connection.adminUser ?? '') : '',
|
|
66
|
+
adminPassword: '',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** A password is saved in the credential store — blank then means "keep it". */
|
|
70
|
+
function hasStoredPassword(connection, role) {
|
|
71
|
+
return isStoredCustom(connection) && connection.credentials[role].configured;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Thin client-side checks so the obvious typo does not round-trip; the API
|
|
75
|
+
* validates for real. `forSave` adds the required-password rules — a TEST may
|
|
76
|
+
* leave a password blank ("use the connection in force's").
|
|
77
|
+
*/
|
|
78
|
+
function validate(form, connection, forSave) {
|
|
79
|
+
const errors = {};
|
|
80
|
+
// Automatic: the deployment supplies everything, so there is nothing to check.
|
|
81
|
+
if (isAutomatic(form))
|
|
82
|
+
return errors;
|
|
83
|
+
const host = form.host.trim();
|
|
84
|
+
if (/[\s/:]/.test(host) && !/^[0-9a-fA-F:]+$/.test(host)) {
|
|
85
|
+
errors.host = 'Host name or IP address only — no scheme, port or path.';
|
|
86
|
+
}
|
|
87
|
+
const port = form.pgPort.trim();
|
|
88
|
+
if (!/^\d+$/.test(port) || Number(port) < 1 || Number(port) > 65535) {
|
|
89
|
+
errors.pgPort = 'Enter a port from 1 to 65535.';
|
|
90
|
+
}
|
|
91
|
+
if (!DATABASE_PATTERN.test(form.database.trim())) {
|
|
92
|
+
errors.database = 'Letters, digits and underscores, not starting with a digit.';
|
|
93
|
+
}
|
|
94
|
+
if (!form.readerUser.trim()) {
|
|
95
|
+
errors.readerUser = 'Enter the read-only user.';
|
|
96
|
+
}
|
|
97
|
+
if (forSave) {
|
|
98
|
+
if (!form.readerPassword && !hasStoredPassword(connection, 'reader')) {
|
|
99
|
+
errors.readerPassword = 'Required — no reader password is saved in admin settings yet.';
|
|
100
|
+
}
|
|
101
|
+
if (form.adminUser.trim() && !form.adminPassword && !hasStoredPassword(connection, 'admin')) {
|
|
102
|
+
errors.adminPassword = 'Required with an admin user — no admin password is saved yet.';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return errors;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* A blank host is AUTOMATIC and sends exactly `{ host: null }` — whatever the
|
|
109
|
+
* hidden custom fields hold. For a custom host, blank passwords are OMITTED —
|
|
110
|
+
* never sent as `""` — so the stored one is kept.
|
|
111
|
+
*/
|
|
112
|
+
function toInput(form) {
|
|
113
|
+
if (isAutomatic(form))
|
|
114
|
+
return { host: null };
|
|
115
|
+
const adminUser = form.adminUser.trim() || null;
|
|
116
|
+
const input = {
|
|
117
|
+
host: form.host.trim(),
|
|
118
|
+
pgPort: Number(form.pgPort.trim()),
|
|
119
|
+
database: form.database.trim(),
|
|
120
|
+
readerUser: form.readerUser.trim(),
|
|
121
|
+
adminUser,
|
|
122
|
+
};
|
|
123
|
+
if (form.readerPassword)
|
|
124
|
+
input.readerPassword = form.readerPassword;
|
|
125
|
+
if (adminUser && form.adminPassword)
|
|
126
|
+
input.adminPassword = form.adminPassword;
|
|
127
|
+
return input;
|
|
128
|
+
}
|
|
129
|
+
function passwordHelper(connection, role, status) {
|
|
130
|
+
if (hasStoredPassword(connection, role)) {
|
|
131
|
+
const which = status.hint ? ` (${status.hint})` : '';
|
|
132
|
+
return `Saved${which} — leave blank to keep it, or type a new one to replace it.`;
|
|
133
|
+
}
|
|
134
|
+
return 'Required to save.';
|
|
135
|
+
}
|
|
136
|
+
/** What a blank host means: the deployment host, always known (`deployment.host`). */
|
|
137
|
+
function automaticHostLabel(connection) {
|
|
138
|
+
return connection.deployment.host ? `Automatic: ${connection.deployment.host}` : 'Automatic';
|
|
139
|
+
}
|
|
140
|
+
function hostHelper(connection, automatic) {
|
|
141
|
+
const lead = automatic ? automaticHostLabel(connection) : 'Leave blank for automatic';
|
|
142
|
+
return `${lead} — the GreptimeDB deployed with this application. Set a host only for an external GreptimeDB.`;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The read-only summary of the deployment's GreptimeDB, shown while the host
|
|
146
|
+
* is automatic. Whether a login is provided, never a password or a hint.
|
|
147
|
+
*/
|
|
148
|
+
function DeploymentManagedPanel({ connection }) {
|
|
149
|
+
const { deployment } = connection;
|
|
150
|
+
const rows = [
|
|
151
|
+
['Address', `${deployment.host}:${deployment.pgPort}`],
|
|
152
|
+
['Database', deployment.database],
|
|
153
|
+
['Reader login', deployment.readerConfigured ? 'Provided' : 'Missing'],
|
|
154
|
+
['Admin login', deployment.adminConfigured ? 'Provided' : 'Not provisioned'],
|
|
155
|
+
];
|
|
156
|
+
return (_jsxs(Alert, { severity: "info", sx: { mt: 2, '& .MuiAlert-message': { minWidth: 0, flex: 1 } }, "data-testid": "telemetry-connection-deployment-managed", children: [_jsx(AlertTitle, { children: "Managed by the deployment" }), "GreptimeDB is deployed with this application. Its address and logins are managed for you \u2014 nothing to configure here.", _jsx(Box, { component: "dl", "data-testid": "telemetry-connection-deployment-summary", sx: {
|
|
157
|
+
display: 'grid',
|
|
158
|
+
gridTemplateColumns: 'auto minmax(0, 1fr)',
|
|
159
|
+
columnGap: 2,
|
|
160
|
+
rowGap: 0.5,
|
|
161
|
+
mt: 1.5,
|
|
162
|
+
mb: 0,
|
|
163
|
+
}, children: rows.map(([term, value]) => (_jsxs(Box, { sx: { display: 'contents' }, children: [_jsx(Typography, { component: "dt", variant: "body2", sx: { fontWeight: 500 }, children: term }), _jsx(Typography, { component: "dd", variant: "body2", sx: { m: 0, overflowWrap: 'anywhere' }, children: value })] }, term))) })] }));
|
|
164
|
+
}
|
|
165
|
+
function TestResultView({ result }) {
|
|
166
|
+
const { host, reader, admin } = result;
|
|
167
|
+
return (_jsxs(Stack, { spacing: 1, sx: { mt: 2 }, "data-testid": "telemetry-connection-test-result", children: [host && (_jsxs(Typography, { variant: "body2", color: "text.secondary", children: ["Tested ", _jsx("code", { children: host })] })), _jsxs(Alert, { severity: reader.success ? 'success' : 'error', children: [_jsx(AlertTitle, { children: reader.success ? 'Reader login connected' : 'Reader login failed' }), reader.success
|
|
168
|
+
? `${reader.version ?? 'Connected'} · ${reader.latencyMs} ms`
|
|
169
|
+
: `${reader.error ?? 'The connection failed'} (${reader.latencyMs} ms)`] }), isTelemetryProbeSkipped(admin) ? (_jsxs(Alert, { severity: "info", children: [_jsx(AlertTitle, { children: "Admin login skipped" }), "No admin user is set, so the admin login was not checked. Retention cannot be applied without one."] })) : (_jsxs(Alert, { severity: admin.success ? 'success' : 'error', children: [_jsx(AlertTitle, { children: admin.success ? 'Admin login connected' : 'Admin login failed' }), admin.success
|
|
170
|
+
? `${admin.latencyMs} ms`
|
|
171
|
+
: `${admin.error ?? 'The connection failed'} (${admin.latencyMs} ms)`] }))] }));
|
|
172
|
+
}
|
|
173
|
+
export function TelemetryConnectionSection({ canWrite, onChanged, refreshToken = 0, }) {
|
|
174
|
+
const { connection, isLoading, loadError, isSaving, saveError, conflict, isTesting, testResult, testError, reload, save, revert, test, clearTestResult, } = useTelemetryConnection();
|
|
175
|
+
// Not on mount: the hook already loads once.
|
|
176
|
+
useEffect(() => {
|
|
177
|
+
if (refreshToken === 0)
|
|
178
|
+
return;
|
|
179
|
+
clearTestResult();
|
|
180
|
+
void reload();
|
|
181
|
+
}, [refreshToken, clearTestResult, reload]);
|
|
182
|
+
const [form, setForm] = useState(null);
|
|
183
|
+
const [showErrors, setShowErrors] = useState(false);
|
|
184
|
+
const [confirmRevert, setConfirmRevert] = useState(false);
|
|
185
|
+
useEffect(() => {
|
|
186
|
+
if (connection) {
|
|
187
|
+
setForm(toForm(connection));
|
|
188
|
+
setShowErrors(false);
|
|
189
|
+
}
|
|
190
|
+
}, [connection]);
|
|
191
|
+
const title = 'Connection';
|
|
192
|
+
const automatic = form ? isAutomatic(form) : true;
|
|
193
|
+
const storedCustom = connection ? isStoredCustom(connection) : false;
|
|
194
|
+
const busy = isSaving || isTesting;
|
|
195
|
+
const locked = !canWrite || busy;
|
|
196
|
+
const update = (field, value) => setForm((prev) => (prev ? { ...prev, [field]: value } : prev));
|
|
197
|
+
const saveErrors = form && connection ? validate(form, connection, true) : {};
|
|
198
|
+
const testErrors = form && connection ? validate(form, connection, false) : {};
|
|
199
|
+
const visibleErrors = showErrors ? saveErrors : testErrors;
|
|
200
|
+
const handleSave = async (event) => {
|
|
201
|
+
event.preventDefault();
|
|
202
|
+
if (!form || !connection || !canWrite)
|
|
203
|
+
return;
|
|
204
|
+
if (Object.keys(saveErrors).length > 0) {
|
|
205
|
+
setShowErrors(true);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const ok = await save(toInput(form));
|
|
209
|
+
if (ok)
|
|
210
|
+
onChanged('Telemetry connection saved');
|
|
211
|
+
};
|
|
212
|
+
const handleTest = () => {
|
|
213
|
+
if (!form || !canWrite || Object.keys(testErrors).length > 0)
|
|
214
|
+
return;
|
|
215
|
+
void test(toInput(form));
|
|
216
|
+
};
|
|
217
|
+
const handleRevert = async () => {
|
|
218
|
+
setConfirmRevert(false);
|
|
219
|
+
const ok = await revert();
|
|
220
|
+
if (ok)
|
|
221
|
+
onChanged('Telemetry connection reverted to the deployment default');
|
|
222
|
+
};
|
|
223
|
+
const field = (name, label, helper, extra = {}) => (_jsx(TextField, { fullWidth: true, size: "small", label: label, value: form?.[name] ?? '', onChange: (event) => update(name, event.target.value), disabled: locked, error: !!visibleErrors[name], helperText: visibleErrors[name] ?? helper, ...extra }));
|
|
224
|
+
return (_jsxs(Paper, { sx: { p: { xs: 2, sm: 3 }, mb: 3 }, component: "section", "aria-label": title, id: TELEMETRY_CONNECTION_SECTION_ID, children: [_jsxs(Stack, { direction: { xs: 'column', sm: 'row' }, spacing: 1, sx: { alignItems: { sm: 'center' }, justifyContent: 'space-between', mb: 1 }, children: [_jsx(Typography, { variant: "h6", component: "h2", children: title }), connection && (_jsx(Chip, { size: "small", color: SOURCE_COLORS[connection.source], label: SOURCE_LABELS[connection.source], "data-testid": "telemetry-connection-source", sx: { alignSelf: { xs: 'flex-start', sm: 'auto' } } }))] }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, "data-testid": "telemetry-connection-description", children: "How the API reaches GreptimeDB to read telemetry and apply retention. GreptimeDB is deployed with this application, and the Automatic host finds it \u2014 leave the host blank. Enter a host only to use an external GreptimeDB. The collector's writer login is managed by the deployment." }), loadError && (_jsx(Alert, { severity: "error", sx: { mb: 2 }, children: loadError })), isLoading && !connection && (_jsx(Typography, { variant: "body2", color: "text.secondary", children: "Loading the connection\u2026" })), connection && connection.source === 'none' && (_jsx(Alert, { severity: "warning", sx: { mb: 2 }, "data-testid": "telemetry-connection-none", children: "No GreptimeDB connection is configured. Leave the host blank and save to use the GreptimeDB deployed with this application, or enter the host of an external one." })), form && connection && (_jsxs(Box, { component: "form", onSubmit: handleSave, noValidate: true, children: [_jsxs(Grid, { container: true, spacing: 2, children: [_jsx(Grid, { size: { xs: 12, sm: automatic ? 12 : 6 }, children: field('host', 'Host', hostHelper(connection, automatic), {
|
|
225
|
+
placeholder: automaticHostLabel(connection),
|
|
226
|
+
slotProps: {
|
|
227
|
+
inputLabel: { shrink: true },
|
|
228
|
+
htmlInput: { autoCapitalize: 'none', spellCheck: false },
|
|
229
|
+
},
|
|
230
|
+
}) }), !automatic && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, sm: 3 }, children: field('pgPort', 'PostgreSQL port', `Default ${TELEMETRY_CONNECTION_DEFAULTS.pgPort}.`, {
|
|
231
|
+
type: 'number',
|
|
232
|
+
slotProps: {
|
|
233
|
+
htmlInput: { min: 1, max: 65535, step: 1, inputMode: 'numeric' },
|
|
234
|
+
},
|
|
235
|
+
}) }), _jsx(Grid, { size: { xs: 12, sm: 3 }, children: field('database', 'Database', `Default ${TELEMETRY_CONNECTION_DEFAULTS.database}.`) }), _jsx(Grid, { size: 12, children: _jsx(Typography, { variant: "body2", color: "text.secondary", "data-testid": "telemetry-connection-custom-note", children: "Connecting to an external GreptimeDB \u2014 enter its logins." }) }), _jsx(Grid, { size: { xs: 12, sm: 6 }, children: field('readerUser', 'Reader user', 'The read-only login the explorer and status use.', { autoComplete: 'off' }) }), _jsx(Grid, { size: { xs: 12, sm: 6 }, children: field('readerPassword', 'Reader password', passwordHelper(connection, 'reader', connection.credentials.reader), { type: 'password', autoComplete: 'new-password' }) }), _jsx(Grid, { size: { xs: 12, sm: 6 }, children: field('adminUser', 'Admin user (optional)', 'The DDL-capable login retention needs. Leave blank for none.', { autoComplete: 'off' }) }), _jsx(Grid, { size: { xs: 12, sm: 6 }, children: field('adminPassword', 'Admin password', form.adminUser.trim()
|
|
236
|
+
? passwordHelper(connection, 'admin', connection.credentials.admin)
|
|
237
|
+
: 'Only with an admin user.', {
|
|
238
|
+
type: 'password',
|
|
239
|
+
autoComplete: 'new-password',
|
|
240
|
+
disabled: locked || !form.adminUser.trim(),
|
|
241
|
+
}) })] }))] }), automatic && _jsx(DeploymentManagedPanel, { connection: connection }), automatic && connection.problem && (_jsx(Alert, { severity: "warning", sx: { mt: 2 }, "data-testid": "telemetry-connection-problem", children: connection.problem })), conflict && (_jsx(Alert, { severity: "warning", sx: { mt: 2 }, "data-testid": "telemetry-connection-conflict", action: _jsx(Button, { color: "inherit", size: "small", onClick: () => void reload(), children: "Reload" }), children: "The connection was changed by someone else since you opened this page. Reload to see the current values, then re-apply your changes." })), saveError && (_jsx(Alert, { severity: "error", sx: { mt: 2 }, children: saveError })), testError && (_jsx(Alert, { severity: "error", sx: { mt: 2 }, children: testError })), testResult && _jsx(TestResultView, { result: testResult }), _jsxs(Stack, { direction: { xs: 'column', sm: 'row' }, spacing: 1, useFlexGap: true, sx: { mt: 3, flexWrap: 'wrap' }, children: [_jsx(Button, { variant: "outlined", onClick: handleTest, disabled: locked || Object.keys(testErrors).length > 0, children: isTesting ? 'Testing…' : 'Test connection' }), _jsx(Button, { type: "submit", variant: "contained", disabled: locked, children: isSaving ? 'Saving…' : 'Save connection' }), storedCustom && (_jsx(Button, { color: "warning", onClick: () => setConfirmRevert(true), disabled: locked, children: "Revert to deployment default" }))] }), storedCustom && (_jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mt: 1 }, "data-testid": "telemetry-connection-revert-hint", children: "Reverting forgets the external GreptimeDB and its saved logins, and uses the GreptimeDB deployed with this application again." })), connection.updatedBy && connection.updatedAt && (_jsxs(Typography, { variant: "body2", color: "text.secondary", sx: { mt: 2 }, children: ["Connection last saved by ", connection.updatedBy.email, " on", ' ', new Date(connection.updatedAt).toLocaleString()] }))] })), _jsxs(Dialog, { open: confirmRevert, onClose: () => setConfirmRevert(false), "aria-labelledby": "telemetry-connection-revert-title", children: [_jsx(DialogTitle, { id: "telemetry-connection-revert-title", children: "Revert to the deployment default?" }), _jsx(DialogContent, { children: _jsx(DialogContentText, { children: "The saved external host and its passwords are deleted. The API then uses the GreptimeDB deployed with this application, with the logins the deployment provides." }) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: () => setConfirmRevert(false), children: "Cancel" }), _jsx(Button, { color: "warning", variant: "contained", onClick: () => void handleRevert(), children: "Revert" })] })] })] }));
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=TelemetryConnectionSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryConnectionSection.js","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetryConnectionSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface TelemetryCrossLinkProps {
|
|
3
|
+
to: string;
|
|
4
|
+
/** The visible label from `sm` up. */
|
|
5
|
+
label: string;
|
|
6
|
+
/** The accessible name of the phone icon button (a full sentence of a name). */
|
|
7
|
+
compactLabel: string;
|
|
8
|
+
icon: ReactNode;
|
|
9
|
+
compact: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function TelemetryCrossLink({ to, label, compactLabel, icon, compact }: TelemetryCrossLinkProps): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=TelemetryCrossLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryCrossLink.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetryCrossLink.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,uBAAuB,+BAerG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A header link between the telemetry pages — issue #579, epic #576: the
|
|
4
|
+
* Dashboard's "Explorer", the Explorer's "Dashboard", and the Telemetry
|
|
5
|
+
* settings page's "Open dashboard".
|
|
6
|
+
*
|
|
7
|
+
* A LINK (it navigates), styled as a text button from `sm` up and as a 44px
|
|
8
|
+
* icon button with an `aria-label` on phones. The icon is the destination's
|
|
9
|
+
* registry card icon (`config/adminSections.tsx`), so the two read as one.
|
|
10
|
+
* Showing it is the caller's decision; the destination route is still gated
|
|
11
|
+
* by its own permission and feature, and the API by its own.
|
|
12
|
+
*/
|
|
13
|
+
import { Button, IconButton, Tooltip } from '@mui/material';
|
|
14
|
+
import { Link as RouterLink } from 'react-router-dom';
|
|
15
|
+
export function TelemetryCrossLink({ to, label, compactLabel, icon, compact }) {
|
|
16
|
+
if (compact) {
|
|
17
|
+
return (_jsx(Tooltip, { title: compactLabel, children: _jsx(IconButton, { component: RouterLink, to: to, "aria-label": compactLabel, sx: { width: 44, height: 44, flexShrink: 0 }, children: icon }) }));
|
|
18
|
+
}
|
|
19
|
+
return (_jsx(Button, { component: RouterLink, to: to, startIcon: icon, sx: { flexShrink: 0, minHeight: 36 }, children: label }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=TelemetryCrossLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryCrossLink.js","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetryCrossLink.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYtD,MAAM,UAAU,kBAAkB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAA2B;IACpG,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAE,YAAY,YAC1B,KAAC,UAAU,IAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,gBAAc,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,YAC9G,IAAI,GACM,GACL,CACX,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,MAAM,IAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,YACzF,KAAK,GACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type UseTelemetryStackOptions } from '../../headless/hooks/useTelemetryStack.js';
|
|
2
|
+
import type { TelemetryStackService } from '../../headless/services/telemetry.js';
|
|
3
|
+
export declare const TELEMETRY_SERVICES_SECTION_ID = "telemetry-services";
|
|
4
|
+
type ChipColor = 'success' | 'info' | 'warning' | 'error' | 'default';
|
|
5
|
+
export declare function serviceLabel(name: string): string;
|
|
6
|
+
/** The chip for one container: its label and colour. */
|
|
7
|
+
export declare function serviceChip(service: TelemetryStackService): {
|
|
8
|
+
label: string;
|
|
9
|
+
color: ChipColor;
|
|
10
|
+
};
|
|
11
|
+
export declare const UNAVAILABLE_MESSAGE: string;
|
|
12
|
+
export declare const AGENT_DOWN_MESSAGE: string;
|
|
13
|
+
export interface TelemetryServicesSectionProps {
|
|
14
|
+
/** `system_settings:write` — what `POST /admin/telemetry/stack/deploy` enforces. */
|
|
15
|
+
canDeploy: boolean;
|
|
16
|
+
/** Called once when a deploy this page followed succeeds. */
|
|
17
|
+
onDeployed?: () => void;
|
|
18
|
+
/** Poll intervals; tests shorten them. */
|
|
19
|
+
pollOptions?: UseTelemetryStackOptions;
|
|
20
|
+
}
|
|
21
|
+
export declare function TelemetryServicesSection({ canDeploy, onDeployed, pollOptions, }: TelemetryServicesSectionProps): import("react").JSX.Element;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=TelemetryServicesSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryServicesSection.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetryServicesSection.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAElF,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AASlE,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAqB/F;AAED,eAAO,MAAM,mBAAmB,QAE4C,CAAC;AAE7E,eAAO,MAAM,kBAAkB,QAEQ,CAAC;AAuBxC,MAAM,WAAW,6BAA6B;IAC5C,oFAAoF;IACpF,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,UAAU,EACV,WAAW,GACZ,EAAE,6BAA6B,+BAoN/B"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Telemetry services — a SECTION of `/admin/settings/telemetry` (issue #567),
|
|
4
|
+
* not a card or a tab of its own.
|
|
5
|
+
*
|
|
6
|
+
* Shows the telemetry containers (GreptimeDB and the OpenTelemetry collector)
|
|
7
|
+
* as the API reports them, and lets an administrator (re)deploy them with one
|
|
8
|
+
* click. The deployment is a queue job the API runs; this section only asks
|
|
9
|
+
* for it and follows it (`useTelemetryStack` polls every 3 s while a job is
|
|
10
|
+
* active, every 30 s otherwise). When a deploy succeeds, `onDeployed` lets the
|
|
11
|
+
* page refresh its connection and status.
|
|
12
|
+
*
|
|
13
|
+
* Gates are the API's: the section is mounted for `system_settings:read`, and
|
|
14
|
+
* the deploy button is disabled without `system_settings:write` (`canDeploy`).
|
|
15
|
+
*/
|
|
16
|
+
import { useEffect, useRef, useState } from 'react';
|
|
17
|
+
import { Alert, AlertTitle, Box, Button, Chip, CircularProgress, Collapse, Paper, Stack, Typography, } from '@mui/material';
|
|
18
|
+
import { visuallyHidden } from '../../internal/visuallyHidden.js';
|
|
19
|
+
import { isDeployActive, useTelemetryStack, } from '../../headless/hooks/useTelemetryStack.js';
|
|
20
|
+
export const TELEMETRY_SERVICES_SECTION_ID = 'telemetry-services';
|
|
21
|
+
const SECTION_TITLE = 'Telemetry services';
|
|
22
|
+
const SERVICE_LABELS = {
|
|
23
|
+
greptimedb: 'GreptimeDB (telemetry store)',
|
|
24
|
+
'otel-collector': 'OpenTelemetry collector',
|
|
25
|
+
};
|
|
26
|
+
export function serviceLabel(name) {
|
|
27
|
+
return SERVICE_LABELS[name] ?? name;
|
|
28
|
+
}
|
|
29
|
+
/** The chip for one container: its label and colour. */
|
|
30
|
+
export function serviceChip(service) {
|
|
31
|
+
switch (service.state) {
|
|
32
|
+
case 'running':
|
|
33
|
+
if (service.health === 'starting')
|
|
34
|
+
return { label: 'Starting', color: 'info' };
|
|
35
|
+
if (service.health === 'unhealthy')
|
|
36
|
+
return { label: 'Unhealthy', color: 'warning' };
|
|
37
|
+
return { label: service.health === 'healthy' ? 'Running · healthy' : 'Running', color: 'success' };
|
|
38
|
+
case 'restarting':
|
|
39
|
+
return { label: 'Restarting', color: 'info' };
|
|
40
|
+
case 'created':
|
|
41
|
+
return { label: 'Created', color: 'default' };
|
|
42
|
+
case 'paused':
|
|
43
|
+
return { label: 'Paused', color: 'warning' };
|
|
44
|
+
case 'missing':
|
|
45
|
+
return { label: 'Not deployed', color: 'error' };
|
|
46
|
+
case 'exited':
|
|
47
|
+
return { label: 'Stopped', color: 'error' };
|
|
48
|
+
case 'dead':
|
|
49
|
+
return { label: 'Failed', color: 'error' };
|
|
50
|
+
default:
|
|
51
|
+
return { label: service.state, color: 'default' };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export const UNAVAILABLE_MESSAGE = "Automatic deployment isn't available in this environment (it's available on server deployments). " +
|
|
55
|
+
'In development, the telemetry services start with the rest of the stack.';
|
|
56
|
+
export const AGENT_DOWN_MESSAGE = "The deployment agent isn't responding, so these services can't be redeployed from here. " +
|
|
57
|
+
'Telemetry collection is unaffected.';
|
|
58
|
+
/** The agent's own error, verbatim, in a small monospace line. */
|
|
59
|
+
function AgentErrorLine({ error, testId }) {
|
|
60
|
+
if (!error)
|
|
61
|
+
return null;
|
|
62
|
+
return (_jsx(Box, { component: "code", "data-testid": testId, sx: {
|
|
63
|
+
display: 'block',
|
|
64
|
+
mt: 1,
|
|
65
|
+
fontFamily: 'monospace',
|
|
66
|
+
fontSize: '0.8125rem',
|
|
67
|
+
wordBreak: 'break-word',
|
|
68
|
+
whiteSpace: 'pre-wrap',
|
|
69
|
+
}, children: error }));
|
|
70
|
+
}
|
|
71
|
+
export function TelemetryServicesSection({ canDeploy, onDeployed, pollOptions, }) {
|
|
72
|
+
const { stack, isLoading, loadError, deployError, isDeploying, requestedJobId, deploy } = useTelemetryStack(pollOptions);
|
|
73
|
+
const [succeeded, setSucceeded] = useState(false);
|
|
74
|
+
const [detailsOpen, setDetailsOpen] = useState(false);
|
|
75
|
+
// The job this page watched go through pending/running. Only ITS success is
|
|
76
|
+
// announced — an old succeeded job seen on load is not news.
|
|
77
|
+
const watchedJobId = useRef(null);
|
|
78
|
+
const onDeployedRef = useRef(onDeployed);
|
|
79
|
+
onDeployedRef.current = onDeployed;
|
|
80
|
+
const latest = stack?.deploy ?? null;
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
if (requestedJobId)
|
|
83
|
+
watchedJobId.current = requestedJobId;
|
|
84
|
+
}, [requestedJobId]);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
if (!latest)
|
|
87
|
+
return;
|
|
88
|
+
if (isDeployActive(latest)) {
|
|
89
|
+
watchedJobId.current = latest.jobId;
|
|
90
|
+
setSucceeded(false);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (watchedJobId.current !== latest.jobId)
|
|
94
|
+
return;
|
|
95
|
+
watchedJobId.current = null;
|
|
96
|
+
if (latest.status === 'succeeded') {
|
|
97
|
+
setSucceeded(true);
|
|
98
|
+
onDeployedRef.current?.();
|
|
99
|
+
}
|
|
100
|
+
}, [latest]);
|
|
101
|
+
const agent = stack?.agent;
|
|
102
|
+
const agentAvailable = agent === 'available';
|
|
103
|
+
const services = stack?.services ?? [];
|
|
104
|
+
const allRunning = services.length > 0 && services.every((service) => service.state === 'running');
|
|
105
|
+
const failed = !isDeploying && latest?.status === 'failed';
|
|
106
|
+
const handleDeploy = async () => {
|
|
107
|
+
setSucceeded(false);
|
|
108
|
+
setDetailsOpen(false);
|
|
109
|
+
await deploy();
|
|
110
|
+
};
|
|
111
|
+
const announcement = isDeploying
|
|
112
|
+
? 'Deploying the telemetry services.'
|
|
113
|
+
: succeeded
|
|
114
|
+
? 'The telemetry services were deployed.'
|
|
115
|
+
: failed
|
|
116
|
+
? 'The telemetry services deployment failed.'
|
|
117
|
+
: '';
|
|
118
|
+
return (_jsxs(Paper, { sx: { p: { xs: 2, sm: 3 }, mb: 3 }, component: "section", "aria-label": SECTION_TITLE, id: TELEMETRY_SERVICES_SECTION_ID, children: [_jsx(Typography, { variant: "h6", component: "h2", gutterBottom: true, children: SECTION_TITLE }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: "The containers that store and collect telemetry for this application." }), _jsx(Box, { role: "status", "aria-live": "polite", sx: visuallyHidden, "data-testid": "telemetry-services-live", children: announcement }), isLoading && !stack && (_jsx(Box, { sx: { display: 'flex', justifyContent: 'center', py: 2 }, children: _jsx(CircularProgress, { size: 24, "aria-label": "Loading the telemetry services" }) })), loadError && (_jsx(Alert, { severity: "error", sx: { mb: 2 }, children: loadError })), agent === 'not_configured' && (_jsx(Alert, { severity: "info", sx: { mb: 2 }, "data-testid": "telemetry-services-unavailable", children: UNAVAILABLE_MESSAGE })), agent === 'unavailable' && (_jsxs(Alert, { severity: "info", sx: { mb: 2 }, "data-testid": "telemetry-services-agent-down", children: [AGENT_DOWN_MESSAGE, _jsx(AgentErrorLine, { error: stack?.agentError, testId: "telemetry-services-agent-error" })] })), agent === 'unauthorized' && (_jsxs(Alert, { severity: "error", sx: { mb: 2 }, "data-testid": "telemetry-services-unauthorized", children: [_jsx(AlertTitle, { children: "Deployment refused" }), "This deployment's internal service credentials don't match, so the telemetry services can't be managed from here. Update the application to bring them back in line.", _jsx(AgentErrorLine, { error: stack?.agentError, testId: "telemetry-services-agent-error" })] })), services.length > 0 && (_jsx(Stack, { component: "ul", spacing: 1, sx: { listStyle: 'none', p: 0, m: 0, mb: 2 }, children: services.map((service) => {
|
|
119
|
+
const chip = serviceChip(service);
|
|
120
|
+
return (_jsxs(Box, { component: "li", sx: {
|
|
121
|
+
display: 'flex',
|
|
122
|
+
flexWrap: 'wrap',
|
|
123
|
+
alignItems: 'center',
|
|
124
|
+
justifyContent: 'space-between',
|
|
125
|
+
gap: 1,
|
|
126
|
+
}, children: [_jsx(Typography, { variant: "body1", sx: { wordBreak: 'break-word' }, children: serviceLabel(service.name) }), _jsx(Chip, { size: "small", color: chip.color, label: chip.label })] }, service.name));
|
|
127
|
+
}) })), isDeploying && (_jsx(Alert, { severity: "info", icon: _jsx(CircularProgress, { size: 20, "aria-hidden": true }), sx: { mb: 2 }, "data-testid": "telemetry-services-deploying", children: "Deploying\u2026 this can take a few minutes the first time while the image downloads." })), succeeded && !isDeploying && (_jsx(Alert, { severity: "success", sx: { mb: 2 }, "data-testid": "telemetry-services-succeeded", children: "The telemetry services were deployed. The connection and status below have been refreshed." })), failed && latest && (_jsxs(Alert, { severity: "error", sx: { mb: 2 }, "data-testid": "telemetry-services-failed", children: [_jsx(AlertTitle, { children: "Deployment failed" }), _jsx(Box, { sx: { wordBreak: 'break-word' }, children: latest.error ?? 'The deployment did not complete.' }), latest.output && (_jsxs(_Fragment, { children: [_jsx(Button, { size: "small", color: "inherit", onClick: () => setDetailsOpen((open) => !open), "aria-expanded": detailsOpen, "aria-controls": "telemetry-services-details", sx: { mt: 1, px: 0 }, children: detailsOpen ? 'Hide details' : 'Details' }), _jsx(Collapse, { in: detailsOpen, unmountOnExit: true, children: _jsx(Box, { component: "pre", id: "telemetry-services-details", sx: {
|
|
128
|
+
fontFamily: 'monospace',
|
|
129
|
+
fontSize: '0.8125rem',
|
|
130
|
+
whiteSpace: 'pre-wrap',
|
|
131
|
+
wordBreak: 'break-word',
|
|
132
|
+
maxHeight: 320,
|
|
133
|
+
overflow: 'auto',
|
|
134
|
+
m: 0,
|
|
135
|
+
mt: 1,
|
|
136
|
+
}, children: latest.output }) })] }))] })), deployError && (_jsx(Alert, { severity: "error", sx: { mb: 2 }, children: deployError })), agentAvailable && (_jsx(Button, { variant: allRunning ? 'outlined' : 'contained', onClick: () => void handleDeploy(), disabled: !canDeploy || isDeploying, sx: { width: { xs: '100%', sm: 'auto' } }, children: allRunning ? 'Redeploy' : 'Deploy GreptimeDB' })), agentAvailable && !canDeploy && (_jsxs(Typography, { variant: "body2", color: "text.secondary", sx: { mt: 1 }, children: ["Deploying needs ", _jsx("code", { children: "system_settings:write" }), "."] }))] }));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=TelemetryServicesSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryServicesSection.js","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetryServicesSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetrySpinner.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetrySpinner.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,wBAAgB,gBAAgB,IAAI,YAAY,CAQ/C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// The telemetry pages' loading indicator (issue #704): the app's spinner when
|
|
3
|
+
// it hands one in (`TelemetryWebAdapters.Spinner`; the reference app passes
|
|
4
|
+
// its `LoadingSpinner`), else a centred MUI `CircularProgress` that matches
|
|
5
|
+
// it. Not exported.
|
|
6
|
+
import { Box, CircularProgress } from '@mui/material';
|
|
7
|
+
import { useTelemetryWebAdapters } from '../../headless/adapters/TelemetryWebAdapters.js';
|
|
8
|
+
export function TelemetrySpinner() {
|
|
9
|
+
const { Spinner } = useTelemetryWebAdapters();
|
|
10
|
+
if (Spinner)
|
|
11
|
+
return _jsx(Spinner, {});
|
|
12
|
+
return (_jsx(Box, { sx: { display: 'flex', justifyContent: 'center', p: 3 }, children: _jsx(CircularProgress, { size: 40 }) }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=TelemetrySpinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetrySpinner.js","sourceRoot":"","sources":["../../../../src/telemetry/ui/components/TelemetrySpinner.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,oBAAoB;AAEpB,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAC9C,IAAI,OAAO;QAAE,OAAO,KAAC,OAAO,KAAG,CAAC;IAChC,OAAO,CACL,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,YAC1D,KAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,GAAI,GAC1B,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DashboardApiBucket } from '../../../headless/services/telemetryDashboard.js';
|
|
2
|
+
export interface TimelineChartProps {
|
|
3
|
+
height: number;
|
|
4
|
+
spanMs: number;
|
|
5
|
+
/** Phone: legend below and at most 4 x labels. */
|
|
6
|
+
compact: boolean;
|
|
7
|
+
zoom: {
|
|
8
|
+
drag: boolean;
|
|
9
|
+
tap: boolean;
|
|
10
|
+
};
|
|
11
|
+
onZoomBuckets: (startIndex: number, endIndex: number) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface ApiTimelineChartProps extends TimelineChartProps {
|
|
14
|
+
buckets: DashboardApiBucket[];
|
|
15
|
+
}
|
|
16
|
+
export declare function ApiTimelineChart({ buckets, height, spanMs, compact, zoom, onZoomBuckets }: ApiTimelineChartProps): import("react").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=ApiTimelineChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiTimelineChart.d.ts","sourceRoot":"","sources":["../../../../../src/telemetry/ui/components/dashboard/ApiTimelineChart.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAM3F,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,qBAAqB,+BAsEhH"}
|