@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,126 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A `/metrics` table, formatted by column unit — issue #602, epic #576.
|
|
4
|
+
*
|
|
5
|
+
* The API decides the rows and columns (`tables[]`: a key column, one column
|
|
6
|
+
* per catalog part, `lastSeenAt`); this only presents them. Each cell is
|
|
7
|
+
* formatted by its column's unit (`format.ts`), `null` reads "—", and a column
|
|
8
|
+
* the caller asks for but the response lacks is skipped rather than shown
|
|
9
|
+
* empty. A caller may override a column's rendering (a utilization bar, an
|
|
10
|
+
* Up/Down status) or add a virtual column (slots "used / total").
|
|
11
|
+
*
|
|
12
|
+
* The table is labelled by its caption; it scrolls sideways inside its own
|
|
13
|
+
* box on a narrow screen, never the page.
|
|
14
|
+
*
|
|
15
|
+
* Opt-in "Top N" (issue #632): with `topN`, a compact select on the caption
|
|
16
|
+
* row limits how many rows are drawn (after `sortRows`, so the API's order is
|
|
17
|
+
* kept) and a line under the table says how many of how many are shown. The
|
|
18
|
+
* select appears only when the table has more rows than the smallest option —
|
|
19
|
+
* a small table has nothing to cut. The choice is per viewer, in
|
|
20
|
+
* `localStorage` (`topNPreference.ts`).
|
|
21
|
+
*/
|
|
22
|
+
import { useState } from 'react';
|
|
23
|
+
import { Box, LinearProgress, MenuItem, Select, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Typography, } from '@mui/material';
|
|
24
|
+
import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutlined';
|
|
25
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutlineOutlined';
|
|
26
|
+
import { formatMetricValue, formatTimestamp } from '../../../../headless/lib/format.js';
|
|
27
|
+
import { readTopN, writeTopN } from '../../../../headless/lib/metrics/topNPreference.js';
|
|
28
|
+
import { useTelemetryTokens } from '../../../../theme/telemetryTokens.js';
|
|
29
|
+
const topNLabel = (option) => (option === 'all' ? 'All' : `Top ${option}`);
|
|
30
|
+
function useTopN(tableKey, topN) {
|
|
31
|
+
const [value, setValue] = useState(() => (topN ? (readTopN(tableKey, topN.options) ?? topN.default) : null));
|
|
32
|
+
const choose = (next) => {
|
|
33
|
+
setValue(next);
|
|
34
|
+
writeTopN(tableKey, next);
|
|
35
|
+
};
|
|
36
|
+
return [value, choose];
|
|
37
|
+
}
|
|
38
|
+
const NUMERIC_UNITS = new Set(['%', 'bytes', 'bytes/s', 'count', 'per_s', 'per_min', 'ms', 'seconds', 'hours', 'days', 'cores', 'load']);
|
|
39
|
+
function formatCell(value, column, now) {
|
|
40
|
+
if (!column)
|
|
41
|
+
return formatMetricValue(value, 'text', now);
|
|
42
|
+
if (column.unit === 'timestamp') {
|
|
43
|
+
if (typeof value !== 'string')
|
|
44
|
+
return '—';
|
|
45
|
+
return (_jsx(Box, { component: "span", title: formatTimestamp(value), children: formatMetricValue(value, 'timestamp', now) }));
|
|
46
|
+
}
|
|
47
|
+
return formatMetricValue(value, column.unit, now);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A utilization bar with its number beside it: the text carries the value,
|
|
51
|
+
* the bar only echoes it (warning from `warnAt`, error from `criticalAt`,
|
|
52
|
+
* which mirror the verdict thresholds).
|
|
53
|
+
*/
|
|
54
|
+
export function UtilizationBar({ value, label, warnAt = 85, criticalAt = 95, }) {
|
|
55
|
+
if (typeof value !== 'number')
|
|
56
|
+
return _jsx(_Fragment, { children: "\u2014" });
|
|
57
|
+
const pct = Math.min(Math.max(value, 0), 100);
|
|
58
|
+
const color = value >= criticalAt ? 'error' : value >= warnAt ? 'warning' : 'primary';
|
|
59
|
+
return (_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, minWidth: 120 }, children: [_jsx(LinearProgress, { variant: "determinate", value: pct, color: color, "aria-label": label, sx: { flex: 1, height: 8, borderRadius: 1 } }), _jsx(Box, { component: "span", sx: { minWidth: 48, textAlign: 'right' }, children: formatMetricValue(value, '%') })] }));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A status as an icon AND a word, never colour alone: `ok` true → `okText`,
|
|
63
|
+
* false → `badText`, null → "—".
|
|
64
|
+
*/
|
|
65
|
+
export function StatusCell({ ok, okText, badText }) {
|
|
66
|
+
const tokens = useTelemetryTokens();
|
|
67
|
+
if (typeof ok !== 'boolean')
|
|
68
|
+
return _jsx(_Fragment, { children: "\u2014" });
|
|
69
|
+
const Icon = ok ? CheckCircleOutlineIcon : ErrorOutlineIcon;
|
|
70
|
+
return (_jsxs(Box, { component: "span", sx: {
|
|
71
|
+
display: 'inline-flex',
|
|
72
|
+
alignItems: 'center',
|
|
73
|
+
gap: 0.5,
|
|
74
|
+
color: ok ? tokens.status.ok : tokens.status.crit,
|
|
75
|
+
fontWeight: ok ? 400 : 600,
|
|
76
|
+
whiteSpace: 'nowrap',
|
|
77
|
+
}, children: [_jsx(Icon, { "aria-hidden": true, sx: { fontSize: 16 } }), ok ? okText : badText] }));
|
|
78
|
+
}
|
|
79
|
+
export function MetricTable({ table, columns, sortRows, emptyMessage = 'nothing reported in this window.', now = Date.now(), topN, }) {
|
|
80
|
+
const byKey = new Map(table.columns.map((column) => [column.key, column]));
|
|
81
|
+
const specs = (columns ?? table.columns.map((column) => ({ key: column.key }))).filter((spec) => (spec.render ? (spec.requires ?? []).every((key) => byKey.has(key)) : byKey.has(spec.key)));
|
|
82
|
+
const allRows = sortRows ? [...table.rows].sort(sortRows) : table.rows;
|
|
83
|
+
const captionId = `metric-table-${table.key}`;
|
|
84
|
+
const [limit, setLimit] = useTopN(table.key, topN);
|
|
85
|
+
const smallest = topN?.options.find((option) => typeof option === 'number');
|
|
86
|
+
const offerTopN = topN !== undefined && limit !== null && smallest !== undefined && allRows.length > smallest;
|
|
87
|
+
const rows = offerTopN && limit !== 'all' ? allRows.slice(0, limit) : allRows;
|
|
88
|
+
const selectLabel = `Rows to show for ${table.label}`;
|
|
89
|
+
const shownNote = rows.length < allRows.length ? `Showing ${rows.length} of ${allRows.length}` : null;
|
|
90
|
+
if (rows.length === 0) {
|
|
91
|
+
return (_jsxs(Typography, { variant: "body2", color: "text.secondary", sx: { py: 2, textAlign: 'center' }, children: [table.label, ": ", emptyMessage] }));
|
|
92
|
+
}
|
|
93
|
+
return (_jsxs(Box, { sx: { minWidth: 0 }, children: [_jsxs(Box, { sx: {
|
|
94
|
+
display: 'flex',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
justifyContent: 'space-between',
|
|
97
|
+
flexWrap: 'wrap',
|
|
98
|
+
columnGap: 1,
|
|
99
|
+
rowGap: 0.5,
|
|
100
|
+
mb: 0.5,
|
|
101
|
+
minHeight: offerTopN ? 32 : undefined,
|
|
102
|
+
}, children: [_jsx(Typography, { id: captionId, variant: "subtitle2", component: "h3", sx: { minWidth: 0, overflowWrap: 'anywhere' }, children: table.label }), offerTopN && (_jsx(Select, { size: "small", value: limit, onChange: (event) => {
|
|
103
|
+
const raw = event.target.value;
|
|
104
|
+
setLimit(raw === 'all' ? 'all' : Number(raw));
|
|
105
|
+
}, inputProps: { 'aria-label': selectLabel, 'aria-controls': `${captionId}-table` }, "data-testid": `metric-table-topn-${table.key}`, sx: { ml: 'auto', fontSize: 'body2.fontSize', '& .MuiSelect-select': { py: 0.5 } }, children: topN.options.map((option) => (_jsx(MenuItem, { value: option, children: topNLabel(option) }, String(option)))) }))] }), _jsx(TableContainer, { sx: { overflowX: 'auto', maxWidth: '100%' }, children: _jsxs(Table, { id: `${captionId}-table`, size: "small", "aria-labelledby": captionId, "data-testid": `metric-table-${table.key}`, children: [_jsx(TableHead, { children: _jsx(TableRow, { children: specs.map((spec) => {
|
|
106
|
+
const column = byKey.get(spec.key);
|
|
107
|
+
return (_jsx(TableCell, { align: column && NUMERIC_UNITS.has(column.unit) && !spec.render ? 'right' : 'left', sx: { whiteSpace: 'nowrap' }, children: spec.label ?? column?.label ?? spec.key }, spec.key));
|
|
108
|
+
}) }) }), _jsx(TableBody, { children: rows.map((row, index) => (_jsx(TableRow, { children: specs.map((spec, columnIndex) => {
|
|
109
|
+
const column = byKey.get(spec.key);
|
|
110
|
+
const content = spec.render ? spec.render(row, column) : formatCell(row[spec.key] ?? null, column, now);
|
|
111
|
+
const numeric = column && NUMERIC_UNITS.has(column.unit) && !spec.render;
|
|
112
|
+
return (_jsx(TableCell, { component: columnIndex === 0 ? 'th' : 'td', scope: columnIndex === 0 ? 'row' : undefined, align: numeric ? 'right' : 'left', sx: {
|
|
113
|
+
whiteSpace: numeric ? 'nowrap' : 'normal',
|
|
114
|
+
// The key (a URL, a job type) keeps a readable width and wraps only past it.
|
|
115
|
+
...(columnIndex === 0 && {
|
|
116
|
+
minWidth: { xs: 120, sm: 160 },
|
|
117
|
+
maxWidth: 320,
|
|
118
|
+
overflowWrap: 'anywhere',
|
|
119
|
+
fontWeight: 500,
|
|
120
|
+
}),
|
|
121
|
+
...(column?.unit === 'text' &&
|
|
122
|
+
columnIndex !== 0 && { minWidth: 80, maxWidth: 280, overflowWrap: 'anywhere' }),
|
|
123
|
+
}, children: content }, spec.key));
|
|
124
|
+
}) }, `${String(row.key)}-${index}`))) })] }) }), shownNote && (_jsx(Typography, { variant: "caption", color: "text.secondary", component: "p", sx: { mt: 0.5, mb: 0 }, "data-testid": `metric-table-shown-${table.key}`, children: shownNote }))] }));
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=MetricTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricTable.js","sourceRoot":"","sources":["../../../../../../src/telemetry/ui/components/dashboard/metrics/MetricTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Severity presentation for the Telemetry Dashboard (#578). Severity is NEVER
|
|
3
|
+
* colour alone: every mark carries an icon and a word ("Error", "Warn",
|
|
4
|
+
* "Info"), so it reads in greyscale, to a screen reader and to a colour-blind
|
|
5
|
+
* operator alike.
|
|
6
|
+
*/
|
|
7
|
+
import { type SxProps, type Theme } from '@mui/material';
|
|
8
|
+
import type { SvgIconComponent } from '@mui/icons-material';
|
|
9
|
+
import { type DashboardSeverity } from '../../../headless/services/telemetryDashboard.js';
|
|
10
|
+
export type SeverityKind = DashboardSeverity | 'other';
|
|
11
|
+
interface SeverityMeta {
|
|
12
|
+
label: string;
|
|
13
|
+
Icon: SvgIconComponent;
|
|
14
|
+
color: 'error' | 'warning' | 'info' | 'default';
|
|
15
|
+
}
|
|
16
|
+
export declare const SEVERITY_META: Record<SeverityKind, SeverityMeta>;
|
|
17
|
+
/** Map an event's severity text (`error`, `fatal`, `warning`, `debug`, …) to a band. */
|
|
18
|
+
export declare function severityKind(severity: string | null | undefined): SeverityKind;
|
|
19
|
+
/** A small icon + word label for one severity. */
|
|
20
|
+
export declare function SeverityLabel({ severity }: {
|
|
21
|
+
severity: string;
|
|
22
|
+
}): import("react").JSX.Element;
|
|
23
|
+
/** A compact chip for list rows (phone events). */
|
|
24
|
+
export declare function SeverityChip({ severity }: {
|
|
25
|
+
severity: string;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
interface SeverityChipsProps {
|
|
28
|
+
value: DashboardSeverity[];
|
|
29
|
+
onChange: (next: DashboardSeverity[]) => void;
|
|
30
|
+
/** Touch targets of 44px on phones. */
|
|
31
|
+
large?: boolean;
|
|
32
|
+
sx?: SxProps<Theme>;
|
|
33
|
+
/** Names the group for assistive tech. */
|
|
34
|
+
label?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Toggle chips for the `sev` filter. The last selected chip cannot be turned
|
|
38
|
+
* off — an empty filter is not a view anyone means, and the API would fall
|
|
39
|
+
* back to its default anyway.
|
|
40
|
+
*/
|
|
41
|
+
export declare function SeverityChips({ value, onChange, large, sx, label }: SeverityChipsProps): import("react").JSX.Element;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=severity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"severity.d.ts","sourceRoot":"","sources":["../../../../../src/telemetry/ui/components/dashboard/severity.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAEhH,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,OAAO,CAAC;AAEvD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;CACjD;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY,CAK5D,CAAC;AAEF,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAM9E;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,+BAe/D;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,+BAa9D;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAC9C,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAa,EAAE,EAAE,EAAE,KAAyB,EAAE,EAAE,kBAAkB,+BA2BlH"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Severity presentation for the Telemetry Dashboard (#578). Severity is NEVER
|
|
4
|
+
* colour alone: every mark carries an icon and a word ("Error", "Warn",
|
|
5
|
+
* "Info"), so it reads in greyscale, to a screen reader and to a colour-blind
|
|
6
|
+
* operator alike.
|
|
7
|
+
*/
|
|
8
|
+
import { Box, Chip, Stack } from '@mui/material';
|
|
9
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutlineOutlined';
|
|
10
|
+
import WarningAmberIcon from '@mui/icons-material/WarningAmber';
|
|
11
|
+
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|
12
|
+
import HelpOutlineIcon from '@mui/icons-material/HelpOutlineOutlined';
|
|
13
|
+
import { DASHBOARD_SEVERITIES } from '../../../headless/services/telemetryDashboard.js';
|
|
14
|
+
export const SEVERITY_META = {
|
|
15
|
+
error: { label: 'Error', Icon: ErrorOutlineIcon, color: 'error' },
|
|
16
|
+
warn: { label: 'Warn', Icon: WarningAmberIcon, color: 'warning' },
|
|
17
|
+
info: { label: 'Info', Icon: InfoOutlinedIcon, color: 'info' },
|
|
18
|
+
other: { label: 'Other', Icon: HelpOutlineIcon, color: 'default' },
|
|
19
|
+
};
|
|
20
|
+
/** Map an event's severity text (`error`, `fatal`, `warning`, `debug`, …) to a band. */
|
|
21
|
+
export function severityKind(severity) {
|
|
22
|
+
const text = (severity ?? '').toLowerCase();
|
|
23
|
+
if (text.startsWith('err') || text.startsWith('fatal') || text.startsWith('crit'))
|
|
24
|
+
return 'error';
|
|
25
|
+
if (text.startsWith('warn'))
|
|
26
|
+
return 'warn';
|
|
27
|
+
if (text.startsWith('info'))
|
|
28
|
+
return 'info';
|
|
29
|
+
return 'other';
|
|
30
|
+
}
|
|
31
|
+
/** A small icon + word label for one severity. */
|
|
32
|
+
export function SeverityLabel({ severity }) {
|
|
33
|
+
const kind = severityKind(severity);
|
|
34
|
+
const meta = SEVERITY_META[kind];
|
|
35
|
+
// An unknown band keeps its own word ("debug", "trace"), capitalised.
|
|
36
|
+
const label = kind === 'other' && severity ? severity.charAt(0).toUpperCase() + severity.slice(1) : meta.label;
|
|
37
|
+
const color = meta.color === 'default' ? 'text.secondary' : `${meta.color}.main`;
|
|
38
|
+
return (_jsxs(Box, { component: "span", sx: { display: 'inline-flex', alignItems: 'center', gap: 0.5, color, fontWeight: 500, whiteSpace: 'nowrap' }, children: [_jsx(meta.Icon, { fontSize: "small", "aria-hidden": true }), _jsx("span", { children: label })] }));
|
|
39
|
+
}
|
|
40
|
+
/** A compact chip for list rows (phone events). */
|
|
41
|
+
export function SeverityChip({ severity }) {
|
|
42
|
+
const kind = severityKind(severity);
|
|
43
|
+
const meta = SEVERITY_META[kind];
|
|
44
|
+
const label = kind === 'other' && severity ? severity.charAt(0).toUpperCase() + severity.slice(1) : meta.label;
|
|
45
|
+
return (_jsx(Chip, { size: "small", variant: "outlined", color: meta.color, icon: _jsx(meta.Icon, { "aria-hidden": true }), label: label }));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Toggle chips for the `sev` filter. The last selected chip cannot be turned
|
|
49
|
+
* off — an empty filter is not a view anyone means, and the API would fall
|
|
50
|
+
* back to its default anyway.
|
|
51
|
+
*/
|
|
52
|
+
export function SeverityChips({ value, onChange, large = false, sx, label = 'Severity filter' }) {
|
|
53
|
+
const toggle = (severity) => {
|
|
54
|
+
const selected = value.includes(severity);
|
|
55
|
+
if (selected && value.length === 1)
|
|
56
|
+
return;
|
|
57
|
+
const next = selected ? value.filter((s) => s !== severity) : [...value, severity];
|
|
58
|
+
onChange(DASHBOARD_SEVERITIES.filter((s) => next.includes(s)));
|
|
59
|
+
};
|
|
60
|
+
return (_jsx(Stack, { direction: "row", spacing: 1, useFlexGap: true, role: "group", "aria-label": label, sx: { flexWrap: 'wrap', ...sx }, children: DASHBOARD_SEVERITIES.map((severity) => {
|
|
61
|
+
const meta = SEVERITY_META[severity];
|
|
62
|
+
const selected = value.includes(severity);
|
|
63
|
+
return (_jsx(Chip, { icon: _jsx(meta.Icon, { "aria-hidden": true }), label: meta.label, color: meta.color === 'default' ? undefined : meta.color, variant: selected ? 'filled' : 'outlined', onClick: () => toggle(severity), "aria-pressed": selected, sx: large ? { minHeight: 44, borderRadius: 22, px: 0.5 } : undefined }, severity));
|
|
64
|
+
}) }));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=severity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"severity.js","sourceRoot":"","sources":["../../../../../src/telemetry/ui/components/dashboard/severity.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The time (x) axis the two dashboard timelines share (#578): a band axis of
|
|
3
|
+
* bucket starts, labelled by time of day (plus the date past 24 h), with at
|
|
4
|
+
* most `maxTicks` labels on phones.
|
|
5
|
+
*/
|
|
6
|
+
import type { XAxis } from '@mui/x-charts/models';
|
|
7
|
+
export declare const TIMELINE_AXIS_ID = "time";
|
|
8
|
+
export declare function timelineXAxis(starts: string[], spanMs: number, maxTicks?: number): XAxis<'band'>;
|
|
9
|
+
/** Timeline height per layout: desktop 320, tablet 280, phone 200. */
|
|
10
|
+
export declare function timelineHeight(layout: 'phone' | 'tablet' | 'desktop'): number;
|
|
11
|
+
//# sourceMappingURL=timelineAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelineAxis.d.ts","sourceRoot":"","sources":["../../../../../src/telemetry/ui/components/dashboard/timelineAxis.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAahG;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAE7E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { formatBucketLabel, formatTimestamp } from '../../../headless/lib/format.js';
|
|
2
|
+
export const TIMELINE_AXIS_ID = 'time';
|
|
3
|
+
export function timelineXAxis(starts, spanMs, maxTicks) {
|
|
4
|
+
const step = maxTicks ? Math.max(1, Math.ceil(starts.length / maxTicks)) : 1;
|
|
5
|
+
return {
|
|
6
|
+
id: TIMELINE_AXIS_ID,
|
|
7
|
+
scaleType: 'band',
|
|
8
|
+
data: starts,
|
|
9
|
+
valueFormatter: (value, context) => context.location === 'tick' ? formatBucketLabel(value, spanMs) : formatTimestamp(value),
|
|
10
|
+
...(maxTicks
|
|
11
|
+
? { tickInterval: (_value, index) => index % step === 0 }
|
|
12
|
+
: { tickLabelInterval: 'auto' }),
|
|
13
|
+
height: 28,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Timeline height per layout: desktop 320, tablet 280, phone 200. */
|
|
17
|
+
export function timelineHeight(layout) {
|
|
18
|
+
return layout === 'desktop' ? 320 : layout === 'tablet' ? 280 : 200;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=timelineAxis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelineAxis.js","sourceRoot":"","sources":["../../../../../src/telemetry/ui/components/dashboard/timelineAxis.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAErF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,MAAgB,EAAE,MAAc,EAAE,QAAiB;IAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE,MAAM;QACZ,cAAc,EAAE,CAAC,KAAa,EAAE,OAAO,EAAE,EAAE,CACzC,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;QACzF,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;YACzE,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAe,EAAE,CAAC;QAC3C,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,MAAsC;IACnE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-page.d.ts","sourceRoot":"","sources":["../../../src/telemetry/ui/dashboard-page.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// `@marinoscar/platform-web/telemetry/ui/dashboard-page`: the TelemetryDashboardPage
|
|
2
|
+
// route component alone (issue #704), as a default and a named export, so
|
|
3
|
+
// the app keeps `lazy(() => import('@marinoscar/platform-web/telemetry/ui/dashboard-page'))`
|
|
4
|
+
// and the page stays in a chunk of its own. Documented in ../README.md.
|
|
5
|
+
export { default, default as TelemetryDashboardPage } from './pages/TelemetryDashboardPage.js';
|
|
6
|
+
//# sourceMappingURL=dashboard-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-page.js","sourceRoot":"","sources":["../../../src/telemetry/ui/dashboard-page.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,0EAA0E;AAC1E,6FAA6F;AAC7F,wEAAwE;AAExE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explorer-page.d.ts","sourceRoot":"","sources":["../../../src/telemetry/ui/explorer-page.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// `@marinoscar/platform-web/telemetry/ui/explorer-page`: the TelemetryExplorerPage
|
|
2
|
+
// route component alone (issue #704), as a default and a named export, so
|
|
3
|
+
// the app keeps `lazy(() => import('@marinoscar/platform-web/telemetry/ui/explorer-page'))`
|
|
4
|
+
// and the page stays in a chunk of its own. Documented in ../README.md.
|
|
5
|
+
export { default, default as TelemetryExplorerPage } from './pages/TelemetryExplorerPage.js';
|
|
6
|
+
//# sourceMappingURL=explorer-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explorer-page.js","sourceRoot":"","sources":["../../../src/telemetry/ui/explorer-page.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,0EAA0E;AAC1E,4FAA4F;AAC5F,wEAAwE;AAExE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { telemetryAdminCards } from './admin.js';
|
|
2
|
+
export type { TelemetryAdminCard } from './admin.js';
|
|
3
|
+
export { default as TelemetrySettingsPage } from './pages/TelemetrySettingsPage.js';
|
|
4
|
+
export { default as TelemetryExplorerPage } from './pages/TelemetryExplorerPage.js';
|
|
5
|
+
export { default as TelemetryDashboardPage } from './pages/TelemetryDashboardPage.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/ui/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// `@marinoscar/platform-web/telemetry/ui`: the three telemetry route
|
|
2
|
+
// components and the admin registry cards (issue #704). For lazy routes,
|
|
3
|
+
// import a page from its own subpath (`./settings-page`, `./explorer-page`,
|
|
4
|
+
// `./dashboard-page`) so each stays in a chunk of its own. Documented in
|
|
5
|
+
// ../README.md.
|
|
6
|
+
export { telemetryAdminCards } from './admin.js';
|
|
7
|
+
export { default as TelemetrySettingsPage } from './pages/TelemetrySettingsPage.js';
|
|
8
|
+
export { default as TelemetryExplorerPage } from './pages/TelemetryExplorerPage.js';
|
|
9
|
+
export { default as TelemetryDashboardPage } from './pages/TelemetryDashboardPage.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/ui/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,yEAAyE;AACzE,4EAA4E;AAC5E,yEAAyE;AACzE,gBAAgB;AAEhB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Telemetry Dashboard (`/admin/settings/telemetry/dashboard`): the
|
|
3
|
+
* verdict, KPI tiles, API and log timelines, top problems, events and one
|
|
4
|
+
* section per metric group the API reports (an app's own groups included,
|
|
5
|
+
* titled from their metadata). Its state lives in the URL. Route it behind the
|
|
6
|
+
* app's permission gate for `telemetry:query` and `RequireTelemetryEnabled`.
|
|
7
|
+
*
|
|
8
|
+
* @returns the page.
|
|
9
|
+
*
|
|
10
|
+
* @extensionPoint component
|
|
11
|
+
* @stability experimental
|
|
12
|
+
*/
|
|
13
|
+
export default function TelemetryDashboardPage(): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=TelemetryDashboardPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryDashboardPage.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/ui/pages/TelemetryDashboardPage.tsx"],"names":[],"mappings":"AA0QA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,gCAsZ7C"}
|